gen7/pipeline: Actually use inputs_read from the VS for laying out inputs
[mesa.git] / src / glsl / ir_uniform.h
index 2f73528257ed69b4faf5d8e87a4dc049c5d24dd9..1854279925bf4ff8aea55a6ad6bcba3a643fc96a 100644 (file)
@@ -45,17 +45,6 @@ extern "C" {
 enum PACKED gl_uniform_driver_format {
    uniform_native = 0,          /**< Store data in the native format. */
    uniform_int_float,           /**< Store integer data as floats. */
-   uniform_bool_float,          /**< Store boolean data as floats. */
-
-   /**
-    * Store boolean data as integer using 1 for \c true.
-    */
-   uniform_bool_int_0_1,
-
-   /**
-    * Store boolean data as integer using ~0 for \c true.
-    */
-   uniform_bool_int_0_not0
 };
 
 struct gl_uniform_driver_storage {
@@ -121,9 +110,7 @@ struct gl_uniform_storage {
     */
    bool initialized;
 
-   struct gl_opaque_uniform_index sampler[MESA_SHADER_STAGES];
-
-   struct gl_opaque_uniform_index image[MESA_SHADER_STAGES];
+   struct gl_opaque_uniform_index opaque[MESA_SHADER_STAGES];
 
    /**
     * Storage used by the driver for the uniform
@@ -174,6 +161,22 @@ struct gl_uniform_storage {
 
    /** @} */
 
+   /**
+    * This is a compiler-generated uniform that should not be advertised
+    * via the API.
+    */
+   bool hidden;
+
+   /**
+    * This is a built-in uniform that should not be modified through any gl API.
+    */
+   bool builtin;
+
+   /**
+    * This is a shader storage buffer variable, not an uniform.
+    */
+   bool is_shader_storage;
+
    /**
     * Index within gl_shader_program::AtomicBuffers[] of the atomic
     * counter buffer this uniform is stored in, or -1 if this is not
@@ -184,8 +187,26 @@ struct gl_uniform_storage {
    /**
     * The 'base location' for this uniform in the uniform remap table. For
     * arrays this is the first element in the array.
+    * for subroutines this is in shader subroutine uniform remap table.
     */
    unsigned remap_location;
+
+   /**
+    * The number of compatible subroutines with this subroutine uniform.
+    */
+   unsigned num_compatible_subroutines;
+
+   /**
+    * A single integer identifying the number of active array elements of
+    * the top-level shader storage block member (GL_TOP_LEVEL_ARRAY_SIZE).
+    */
+   unsigned top_level_array_size;
+
+   /**
+    * A single integer identifying the stride between array elements of the
+    * top-level shader storage block member. (GL_TOP_LEVEL_ARRAY_STRIDE).
+    */
+   unsigned top_level_array_stride;
 };
 
 #ifdef __cplusplus