glsl: Allow gl_nir_lower_samplers*() without a gl_shader_program
authorKenneth Graunke <kenneth@whitecape.org>
Wed, 6 Feb 2019 03:08:04 +0000 (19:08 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Tue, 12 Feb 2019 05:34:22 +0000 (21:34 -0800)
commitd34e434989ec8e8ca780421f6909cfd796573520
treebabec75f8c9b2b3245107cf4395357483630ae64
parentf45dd6d31b2ff46a082931386ccd0bf043cfad59
glsl: Allow gl_nir_lower_samplers*() without a gl_shader_program

I would like to be able to run gl_nir_lower_samplers() to turn texture
and sampler variable dereferences into indexes and offsets, even for
ARB programs, and built-in shaders.  This would make sampler handling
more consistent across the various types of shaders.

For GLSL programs, the gl_nir_lower_samplers_as_deref() pass looks up
the variable bindings in the shader program's uniform storage.  But
ARB programs and built-in shaders don't have a gl_shader_program, and
uniform storage doesn't exist.  In this case, we simply skip that
lookup, and trust var->data.binding to be set correctly by whoever
created the shader.

Reviewed-by: Eric Anholt <eric@anholt.net>
src/compiler/glsl/gl_nir_lower_samplers_as_deref.c