diff options
author | Marek Olšák <[email protected]> | 2017-06-10 17:22:09 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2017-06-22 01:51:02 +0200 |
commit | caf39d6df9de145060d7def72c20ca45e41b1e9c (patch) | |
tree | 2a9c4393040bb19a23e192abf8d9e0a9b183a38d /src/mesa/main/shaderapi.c | |
parent | b7ba745032900643af7bcfdc773a783b73e2735a (diff) |
mesa: don't flag _NEW_PROGRAM_CONSTANTS for GLSL programs for st/mesa
v2: also update _mesa_uniform_handle for bindless textures
Reviewed-by: Nicolai Hähnle <[email protected]> (v1)
Reviewed-by: Brian Paul <[email protected]> (v1)
Reviewed-by: Timothy Arceri <[email protected]> (v1)
Reviewed-by: Samuel Pitoiset <[email protected]>
Diffstat (limited to 'src/mesa/main/shaderapi.c')
-rw-r--r-- | src/mesa/main/shaderapi.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/mesa/main/shaderapi.c b/src/mesa/main/shaderapi.c index 9f0122ad704..5a7124043bb 100644 --- a/src/mesa/main/shaderapi.c +++ b/src/mesa/main/shaderapi.c @@ -2586,6 +2586,7 @@ _mesa_UniformSubroutinesuiv(GLenum shadertype, GLsizei count, } i = 0; + bool flushed = false; do { struct gl_uniform_storage *uni = p->sh.SubroutineUniformRemapTable[i]; if (uni == NULL) { @@ -2593,6 +2594,11 @@ _mesa_UniformSubroutinesuiv(GLenum shadertype, GLsizei count, continue; } + if (!flushed) { + _mesa_flush_vertices_for_uniforms(ctx, uni); + flushed = true; + } + int uni_count = uni->array_elements ? uni->array_elements : 1; int j, k, f; @@ -2625,8 +2631,6 @@ _mesa_UniformSubroutinesuiv(GLenum shadertype, GLsizei count, } i += uni_count; } while(i < count); - - FLUSH_VERTICES(ctx, _NEW_PROGRAM_CONSTANTS); } |