[Mesa-dev] [PATCH 2/2] i965/blorp: Make BlitFramebuffer() do sRGB encoding in ES 3.x.

Pohjolainen, Topi topi.pohjolainen at intel.com
Mon Mar 21 07:03:25 UTC 2016


On Fri, Mar 18, 2016 at 04:51:05PM -0700, Kenneth Graunke wrote:
> According to the ES 3.0 and GL 4.4 specifications, glBlitFramebuffer
> is supposed to perform sRGB decoding and encoding whenever sRGB formats
> are in use.  The ES 3.0 specification is completely clear, and has
> always stated this.
> 
> However, the GL specification has changed behavior in 4.1, 4.2, and
> 4.4.  The original behavior stated that no sRGB encoding should occur.
> The 4.4 behavior matches ES 3.0's wording.  However, implementing the
> new behavior appears to break applications such as Left 4 Dead 2.
> 
> This patch changes Meta to apply the ES 3.x rules in ES 3.x, but
> leaves OpenGL alone for now, to avoid breaking applications.
> 
> Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
> ---
>  src/mesa/drivers/dri/i965/brw_blorp_blit.cpp | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp b/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp
> index df5d7ac..f8b48f5 100644
> --- a/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp
> +++ b/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp
> @@ -21,6 +21,7 @@
>   * IN THE SOFTWARE.
>   */
>  
> +#include "main/context.h"
>  #include "main/teximage.h"
>  #include "main/fbobject.h"
>  
> @@ -121,6 +122,8 @@ do_blorp_blit(struct brw_context *brw, GLbitfield buffer_bit,
>     struct intel_mipmap_tree *src_mt = find_miptree(buffer_bit, src_irb);
>     struct intel_mipmap_tree *dst_mt = find_miptree(buffer_bit, dst_irb);
>  
> +   bool es3 = _mesa_is_gles3(&brw->ctx);

Could be const. Either way both patches are:

Reviewed-by: Topi Pohjolainen <topi.pohjolainen at intel.com>

> +
>     /* Do the blit */
>     brw_blorp_blit_miptrees(brw,
>                             src_mt, src_irb->mt_level, src_irb->mt_layer,
> @@ -130,7 +133,7 @@ do_blorp_blit(struct brw_context *brw, GLbitfield buffer_bit,
>                             srcX0, srcY0, srcX1, srcY1,
>                             dstX0, dstY0, dstX1, dstY1,
>                             filter, mirror_x, mirror_y,
> -                           false, false);
> +                           es3, es3);
>  
>     dst_irb->need_downsample = true;
>  }
> -- 
> 2.7.3
> 
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list