This makes our driver robust to changes in spirv_to_nir which would set
this flag on the variable. Right now, our driver relies on spirv_to_nir
*not* setting var->data.image.write_only for correctness. Any patch
which implements the shaderStorageImageWriteWithoutFormat will need to
effectively revert this commit.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
unsigned binding = var->data.binding;
unsigned image_index = state.set[set].image_offsets[binding];
+ /* We have a very tight coupling between back-end compiler and
+ * state setup which requires us to fill the image surface state
+ * out differently if and only if the image is declared write-only.
+ * Right now, our state setup code sets up all images as if they
+ * are read-write. This means that the compiler needs to see
+ * read-only as well.
+ *
+ * Whenever we implement shaderStorageImageWriteWithoutFormat, we
+ * need to delete this.
+ */
+ var->data.image.write_only = false;
+
var->data.driver_location = shader->num_uniforms +
image_index * BRW_IMAGE_PARAM_SIZE * 4;
}