Module: Mesa Branch: vulkan Commit: 79c0781f44af2a93473c68cf317bb6844f31cfc8 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=79c0781f44af2a93473c68cf317bb6844f31cfc8
Author: Jason Ekstrand <[email protected]> Date: Thu Feb 18 11:42:36 2016 -0800 nir/gather_info: Count textures and images --- src/compiler/nir/nir_gather_info.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/compiler/nir/nir_gather_info.c b/src/compiler/nir/nir_gather_info.c index b84915c..8f0abd3 100644 --- a/src/compiler/nir/nir_gather_info.c +++ b/src/compiler/nir/nir_gather_info.c @@ -105,5 +105,22 @@ nir_shader_gather_info(nir_shader *shader, nir_function_impl *entrypoint) foreach_list_typed(nir_variable, var, node, &shader->system_values) shader->info.system_values_read |= nir_variable_get_io_mask(var, shader->stage); + shader->info.num_textures = 0; + shader->info.num_images = 0; + nir_foreach_variable(var, &shader->uniforms) { + const struct glsl_type *type = var->type; + unsigned count = 1; + if (glsl_type_is_array(type)) { + count = glsl_get_length(type); + type = glsl_get_array_element(type); + } + + if (glsl_type_is_image(type)) { + shader->info.num_images += count; + } else if (glsl_type_is_sampler(type)) { + shader->info.num_textures += count; + } + } + nir_foreach_block(entrypoint, gather_info_block, shader); } _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
