summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimothy Arceri <[email protected]>2016-11-04 11:40:10 +1100
committerTimothy Arceri <[email protected]>2017-01-06 11:21:42 +1100
commit4807a83da0e0f5e3272e85504ee3b2213ef1910a (patch)
tree049b5850dad445b764189b9ba122b6fb51876d63
parentc46a630000a2539e38a448f24a456397ce201a2e (diff)
mesa/glsl: set num_textures per stage directly in shader_info
Reviewed-by: Eric Anholt <[email protected]>
-rw-r--r--src/compiler/glsl/glsl_to_nir.cpp1
-rw-r--r--src/compiler/glsl/link_uniforms.cpp2
-rw-r--r--src/compiler/glsl/linker.cpp3
-rw-r--r--src/mesa/main/mtypes.h1
-rw-r--r--src/mesa/main/uniform_query.cpp2
-rw-r--r--src/mesa/state_tracker/st_glsl_to_tgsi.cpp2
6 files changed, 5 insertions, 6 deletions
diff --git a/src/compiler/glsl/glsl_to_nir.cpp b/src/compiler/glsl/glsl_to_nir.cpp
index cf3511e10b9..6cf4f501ee8 100644
--- a/src/compiler/glsl/glsl_to_nir.cpp
+++ b/src/compiler/glsl/glsl_to_nir.cpp
@@ -149,7 +149,6 @@ glsl_to_nir(const struct gl_shader_program *shader_prog,
shader->info->name = ralloc_asprintf(shader, "GLSL%d", shader_prog->Name);
if (shader_prog->Label)
shader->info->label = ralloc_strdup(shader, shader_prog->Label);
- shader->info->num_textures = util_last_bit(sh->Program->SamplersUsed);
shader->info->clip_distance_array_size = sh->Program->ClipDistanceArraySize;
shader->info->cull_distance_array_size = sh->Program->CullDistanceArraySize;
shader->info->has_transform_feedback_varyings =
diff --git a/src/compiler/glsl/link_uniforms.cpp b/src/compiler/glsl/link_uniforms.cpp
index caee147aa1d..f2fc7161f10 100644
--- a/src/compiler/glsl/link_uniforms.cpp
+++ b/src/compiler/glsl/link_uniforms.cpp
@@ -1315,7 +1315,7 @@ link_assign_uniform_locations(struct gl_shader_program *prog,
uniform_size.process(var);
}
- sh->num_samplers = uniform_size.num_shader_samplers;
+ sh->Program->info.num_textures = uniform_size.num_shader_samplers;
sh->NumImages = uniform_size.num_shader_images;
sh->num_uniform_components = uniform_size.num_shader_uniform_components;
sh->num_combined_uniform_components = sh->num_uniform_components;
diff --git a/src/compiler/glsl/linker.cpp b/src/compiler/glsl/linker.cpp
index 327b7be8006..d4a484fdea0 100644
--- a/src/compiler/glsl/linker.cpp
+++ b/src/compiler/glsl/linker.cpp
@@ -3067,7 +3067,8 @@ check_resources(struct gl_context *ctx, struct gl_shader_program *prog)
if (sh == NULL)
continue;
- if (sh->num_samplers > ctx->Const.Program[i].MaxTextureImageUnits) {
+ if (sh->Program->info.num_textures >
+ ctx->Const.Program[i].MaxTextureImageUnits) {
linker_error(prog, "Too many %s shader texture samplers\n",
_mesa_shader_stage_to_string(i));
}
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index ffd21ecea3b..69241beadd1 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -2356,7 +2356,6 @@ struct gl_linked_shader
* \note Each of these fields is only set post-linking.
*/
/*@{*/
- unsigned num_samplers; /**< Number of samplers used by this shader. */
GLbitfield active_samplers; /**< Bitfield of which samplers are used */
GLbitfield shadow_samplers; /**< Samplers used for shadow sampling. */
/*@}*/
diff --git a/src/mesa/main/uniform_query.cpp b/src/mesa/main/uniform_query.cpp
index ec6d2774844..73e7b0bfdfd 100644
--- a/src/mesa/main/uniform_query.cpp
+++ b/src/mesa/main/uniform_query.cpp
@@ -1141,7 +1141,7 @@ _mesa_sampler_uniforms_pipeline_are_valid(struct gl_pipeline_object *pipeline)
TexturesUsed[unit] |= (1 << tgt);
}
- active_samplers += shader->num_samplers;
+ active_samplers += shader->Program->info.num_textures;
}
if (active_samplers > MAX_COMBINED_TEXTURE_IMAGE_UNITS) {
diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
index b4ccc5f0525..12a53ecb73d 100644
--- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
+++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
@@ -6636,7 +6636,7 @@ set_affected_state_flags(uint64_t *states,
if (prog->Parameters->NumParameters)
*states |= new_constants;
- if (shader->num_samplers)
+ if (prog->info.num_textures)
*states |= new_sampler_views | new_samplers;
if (shader->NumImages)