On Wednesday, April 6, 2016 4:43:39 PM PDT Haixia Shi wrote: > It is incorrect to assume BGRA byte order for the GLES3 sRGB workaround. > > Signed-off-by: Haixia Shi <h...@chromium.org> > Reviewed-by: Stéphane Marchesin <marc...@chromium.org> > Cc: kenneth.w.grau...@intel.com > > Change-Id: I5a081d7eaa7544afff0e7874cffef80d3f69a401 > --- > src/mesa/drivers/dri/i965/brw_context.c | 18 ++++++++++++++++-- > 1 file changed, 16 insertions(+), 2 deletions(-) > > diff --git a/src/mesa/drivers/dri/i965/brw_context.c b/src/mesa/drivers/dri/ i965/brw_context.c > index 2d480d0..cebfbda 100644 > --- a/src/mesa/drivers/dri/i965/brw_context.c > +++ b/src/mesa/drivers/dri/i965/brw_context.c > @@ -1151,9 +1151,23 @@ intel_gles3_srgb_workaround(struct brw_context *brw, > */ > fb->Visual.sRGBCapable = false; > for (int i = 0; i < BUFFER_COUNT; i++) { > - if (fb->Attachment[i].Renderbuffer && > - fb->Attachment[i].Renderbuffer->Format == MESA_FORMAT_B8G8R8A8_SRGB) { > + if (!fb->Attachment[i].Renderbuffer) > + continue; > + switch (fb->Attachment[i].Renderbuffer->Format) { > + case MESA_FORMAT_A8B8G8R8_SRGB: > + fb->Attachment[i].Renderbuffer->Format = MESA_FORMAT_A8B8G8R8_UNORM; > + break; > + case MESA_FORMAT_B8G8R8A8_SRGB: > fb->Attachment[i].Renderbuffer->Format = MESA_FORMAT_B8G8R8A8_UNORM; > + break; > + case MESA_FORMAT_A8R8G8B8_SRGB: > + fb->Attachment[i].Renderbuffer->Format = MESA_FORMAT_A8R8G8B8_UNORM; > + break; > + case MESA_FORMAT_R8G8B8A8_SRGB: > + fb->Attachment[i].Renderbuffer->Format = MESA_FORMAT_R8G8B8A8_UNORM; > + break; > + default: > + break; > } > } > } >
Why don't we simply do: struct gl_renderbuffer *rb = fb->Attachment[i].Renderbuffer; rb->Format = _mesa_get_srgb_format_linear(rb->Format); This would handle far more formats than we need to, but that shouldn't be a problem.
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev