diff options
author | Timothy Arceri <[email protected]> | 2017-01-26 19:29:20 +1100 |
---|---|---|
committer | Timothy Arceri <[email protected]> | 2017-02-16 15:01:41 +1100 |
commit | e6506b3cd2382a9a7e0a3494a964d2bafb3bebc3 (patch) | |
tree | 2b4a50bf5da75da19f94c72dac3fb2f1e7ae0a65 /src/mesa/main/shaderapi.h | |
parent | 300900516d1e15edd86ea0512f9b5ccda85d150e (diff) |
mesa: retain gl_shader_programs after glDeleteProgram if they are in use
Fixes regressions from c505d6d852220f4aaaee161465dd2c579647e672.
Switching from using gl_shader_program to gl_program for the pipline
objects CurrentProgram array meant we were freeing gl_shader_programs
immediately after glDeleteProgram was called, but the spec states
the program should only get deleted once it is no longer in use.
To work around this we add a new ReferencedPrograms array to track
gl_shader_programs in use.
Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/mesa/main/shaderapi.h')
-rw-r--r-- | src/mesa/main/shaderapi.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/mesa/main/shaderapi.h b/src/mesa/main/shaderapi.h index a89dbfb564c..99b4fe84d82 100644 --- a/src/mesa/main/shaderapi.h +++ b/src/mesa/main/shaderapi.h @@ -215,7 +215,7 @@ _mesa_ProgramParameteri(GLuint program, GLenum pname, GLint value); void _mesa_use_program(struct gl_context *ctx, gl_shader_stage stage, - struct gl_program *prog, + struct gl_shader_program *shProg, struct gl_program *prog, struct gl_pipeline_object *shTarget); extern void |