The mismatch below caused ActiveProgram to be incorrectly saved/restored:

    _meas_meta_begin:
        line 465) ActiveShader := gl_shader_state::CurrentFragmentProgram
    _mesa_meta_end:
        line 741) gl_shader_state::ActiveProgram := ActiveShader

This patch fixes it to be:

    _meas_meta_begin:
        line 465) ActiveShader := gl_shader_state::ActiveProgram
    _mesa_meta_end:
        line 741) gl_shader_state::ActiveProgram := ActiveShader

I discovered this bug by inspection.

Signed-off-by: Chad Versace <c...@chad-versace.us>
---
 src/mesa/drivers/common/meta.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c
index 1b71aa1..2ac81ac 100644
--- a/src/mesa/drivers/common/meta.c
+++ b/src/mesa/drivers/common/meta.c
@@ -463,7 +463,7 @@ _mesa_meta_begin(struct gl_context *ctx, GLbitfield state)
         _mesa_reference_shader_program(ctx, &save->FragmentShader,
                                        ctx->Shader.CurrentFragmentProgram);
         _mesa_reference_shader_program(ctx, &save->ActiveShader,
-                                       ctx->Shader.CurrentFragmentProgram);
+                                       ctx->Shader.ActiveProgram);
 
          _mesa_UseProgramObjectARB(0);
       }
-- 
1.7.6

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to