glsl/nir: Add a pass to lower UBO and SSBO access
[mesa.git] / src / compiler / glsl / ir_uniform.h
index e72e7b42c57735683c44acce7ed721c98d659e01..9770790cb260f1ef97f1e00a9e6aa62818b2439a 100644 (file)
@@ -21,7 +21,6 @@
  * DEALINGS IN THE SOFTWARE.
  */
 
-#pragma once
 #ifndef IR_UNIFORM_H
 #define IR_UNIFORM_H
 
@@ -29,7 +28,7 @@
 /* stdbool.h is necessary because this file is included in both C and C++ code.
  */
 #include <stdbool.h>
-
+#include "util/macros.h"
 #include "program/prog_parameter.h"  /* For union gl_constant_value. */
 
 /**
@@ -107,6 +106,11 @@ struct gl_uniform_storage {
 
    struct gl_opaque_uniform_index opaque[MESA_SHADER_STAGES];
 
+   /**
+    * Mask of shader stages (1 << MESA_SHADER_xxx) where this uniform is used.
+    */
+   unsigned active_shader_mask;
+
    /**
     * Storage used by the driver for the uniform
     */
@@ -202,6 +206,12 @@ struct gl_uniform_storage {
     * top-level shader storage block member. (GL_TOP_LEVEL_ARRAY_STRIDE).
     */
    unsigned top_level_array_stride;
+
+   /**
+    * Whether this uniform variable has the bindless_sampler or bindless_image
+    * layout qualifier as specified by ARB_bindless_texture.
+    */
+   bool is_bindless;
 };
 
 #ifdef __cplusplus