spirv/nir: handle location decorations on block interface members
[mesa.git] / src / compiler / spirv / vtn_private.h
index 3a5c5f32224b73649ae52614c365b17b083b68ad..748a2a2e7422a96ffae9d9b7f6527e49c55ce1c5 100644 (file)
@@ -417,6 +417,7 @@ enum vtn_variable_mode {
    vtn_variable_mode_uniform,
    vtn_variable_mode_ubo,
    vtn_variable_mode_ssbo,
+   vtn_variable_mode_phys_ssbo,
    vtn_variable_mode_push_constant,
    vtn_variable_mode_workgroup,
    vtn_variable_mode_cross_workgroup,
@@ -474,6 +475,12 @@ struct vtn_variable {
 
    nir_variable *var;
 
+   /* If the variable is a struct with a location set on it then this will be
+    * stored here. This will be used to calculate locations for members that
+    * don’t have their own explicit location.
+    */
+   int base_location;
+
    int shared_location;
 
    /**