[Mesa-dev] [PATCH 1/2] dri/i965: extend GLES3 sRGB workaround to cover all byte orders

Jason Ekstrand jason at jlekstrand.net
Thu Apr 7 05:13:51 UTC 2016


On Apr 6, 2016 7:23 PM, "Kenneth Graunke" <kenneth at whitecape.org> 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 <hshi at chromium.org>
> > Reviewed-by: St├ęphane Marchesin <marcheu at chromium.org>
> > Cc: kenneth.w.graunke at 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.

I'll second that.

> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20160406/e0b57ab4/attachment.html>


More information about the mesa-dev mailing list