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

Reply via email to