diff --git a/.pick_status.json b/.pick_status.json index e7835bd5f68..a3a43a2ca2a 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -1624,7 +1624,7 @@ "description": "glsl: respect GL_EXT_shader_image_load_formatted when image is embedded in a struct", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "082d180a22ff14ce455cefba2c525c9857f0d00e", "notes": null diff --git a/src/compiler/glsl/ast_to_hir.cpp b/src/compiler/glsl/ast_to_hir.cpp index 93e989f31b7..12f46442c06 100644 --- a/src/compiler/glsl/ast_to_hir.cpp +++ b/src/compiler/glsl/ast_to_hir.cpp @@ -7902,7 +7902,11 @@ ast_process_struct_or_iface_block_members(exec_list *instructions, fields[i].image_format = qual->image_format; } else { - if (!qual->flags.q.write_only) { + if (state->has_image_load_formatted()) { + if (state->EXT_shader_image_load_formatted_warn) { + _mesa_glsl_warning(&loc, state, "GL_EXT_image_load_formatted used"); + } + } else if (!qual->flags.q.write_only) { _mesa_glsl_error(&loc, state, "image not qualified with " "`writeonly' must have a format layout " "qualifier");