I am afraid that I am not the original author of the gles3_srgb_workaround, and from the comments it appears to only apply for argb formats, so I am not sure if extending it to all other formats would cause behavioral regression. On Apr 6, 2016 10:13 PM, "Jason Ekstrand" <[email protected]> wrote:
> > On Apr 6, 2016 7:23 PM, "Kenneth Graunke" <[email protected]> wrote: > > > > 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 <[email protected]> > > > Reviewed-by: Stéphane Marchesin <[email protected]> > > > Cc: [email protected] > > > > > > 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. > > I'll second that. > > > _______________________________________________ > > mesa-dev mailing list > > [email protected] > > https://lists.freedesktop.org/mailman/listinfo/mesa-dev > > >
_______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
