[Mesa-dev] [PATCH] attrib: push/pop FRAGMENT_PROGRAM_ARB state

Brian Paul brianp at vmware.com
Thu Feb 28 08:34:40 PST 2013


On 02/28/2013 09:29 AM, Jordan Justen wrote:
> This requirement was added by ARB_fragment_program
>
> When the Steam overlay is enabled, this fixes:
> * Menu corruption with the Puddle game
> * The screen going black on Rochard when
>    the Steam overlay is accessed
>
> NOTE: This is a candidate for the 9.0 and 9.1 branches.
>
> Signed-off-by: Jordan Justen<jordan.l.justen at intel.com>
> ---
>   src/mesa/main/attrib.c |   12 ++++++++++++
>   1 file changed, 12 insertions(+)
>
> diff --git a/src/mesa/main/attrib.c b/src/mesa/main/attrib.c
> index a951283..6d91534 100644
> --- a/src/mesa/main/attrib.c
> +++ b/src/mesa/main/attrib.c
> @@ -130,6 +130,9 @@ struct gl_enable_attrib
>      GLboolean VertexProgramPointSize;
>      GLboolean VertexProgramTwoSide;
>
> +   /* GL_ARB_fragment_program */
> +   GLboolean FragmentProgram;
> +
>      /* GL_ARB_point_sprite / GL_NV_point_sprite */
>      GLboolean PointSprite;
>      GLboolean FragmentShaderATI;
> @@ -316,6 +319,10 @@ _mesa_PushAttrib(GLbitfield mask)
>         attr->VertexProgram = ctx->VertexProgram.Enabled;
>         attr->VertexProgramPointSize = ctx->VertexProgram.PointSizeEnabled;
>         attr->VertexProgramTwoSide = ctx->VertexProgram.TwoSideEnabled;
> +
> +      /* GL_ARB_fragment_program */
> +      attr->FragmentProgram = ctx->FragmentProgram.Enabled;
> +
>         save_attrib_data(&head, GL_ENABLE_BIT, attr);
>
>         /* GL_ARB_framebuffer_sRGB / GL_EXT_framebuffer_sRGB */
> @@ -607,6 +614,11 @@ pop_enable_group(struct gl_context *ctx, const struct gl_enable_attrib *enable)
>                      enable->VertexProgramTwoSide,
>                      GL_VERTEX_PROGRAM_TWO_SIDE_ARB);
>
> +   /* GL_ARB_fragment_program */
> +   TEST_AND_UPDATE(ctx->FragmentProgram.Enabled,
> +                   enable->FragmentProgram,
> +                   GL_FRAGMENT_PROGRAM_ARB);
> +
>      /* GL_ARB_framebuffer_sRGB / GL_EXT_framebuffer_sRGB */
>      TEST_AND_UPDATE(ctx->Color.sRGBEnabled, enable->sRGBEnabled,
>                      GL_FRAMEBUFFER_SRGB);

Reviewed-by: Brian Paul <brianp at vmware.com>


More information about the mesa-dev mailing list