diff --git a/src/compiler/glsl/ast_to_hir.cpp b/src/compiler/glsl/ast_to_hir.cpp index f9ab83860a9..2092fceacce 100644 --- a/src/compiler/glsl/ast_to_hir.cpp +++ b/src/compiler/glsl/ast_to_hir.cpp @@ -3753,6 +3753,22 @@ apply_bindless_qualifier_to_variable(const struct ast_type_qualifier *qual, state->bound_sampler_specified || state->bound_image_specified; } + + /* ARB_bindless_texture spec says: + * + * "When used as shader inputs, outputs, uniform block members, + * or temporaries, the value of the sampler is a 64-bit unsigned + * integer handle and never refers to a texture image unit." + * + * The spec doesn't reference images defined inside structs but it was + * clarified with the authors that bindless images are allowed in structs. + * So we treat these images as implicitly bindless just like the types + * in the spec quote above. + */ + if (!var->data.bindless && var->type->is_struct() && + var->type->contains_image()) { + var->data.bindless = true; + } } static void diff --git a/src/gallium/drivers/zink/ci/zink-radv-navi10-fails.txt b/src/gallium/drivers/zink/ci/zink-radv-navi10-fails.txt index 1c597088538..5cb0f82577b 100644 --- a/src/gallium/drivers/zink/ci/zink-radv-navi10-fails.txt +++ b/src/gallium/drivers/zink/ci/zink-radv-navi10-fails.txt @@ -2,9 +2,6 @@ glx@glx-multi-window-single-context,Crash spec@egl_chromium_sync_control@conformance@eglGetSyncValuesCHROMIUM_ust_test,Fail -# Mesa bug not Zink bug. See piglit MR 824 -spec@arb_bindless_texture@compiler@images@return-struct.frag,Crash - # #6115 spec@arb_tessellation_shader@execution@variable-indexing@tes-both-input-array-float-index-rd,Crash spec@arb_tessellation_shader@execution@variable-indexing@tes-both-input-array-vec2-index-rd,Crash diff --git a/src/gallium/drivers/zink/ci/zink-radv-vangogh-fails.txt b/src/gallium/drivers/zink/ci/zink-radv-vangogh-fails.txt index 07591e233ef..3b9a63a5a37 100644 --- a/src/gallium/drivers/zink/ci/zink-radv-vangogh-fails.txt +++ b/src/gallium/drivers/zink/ci/zink-radv-vangogh-fails.txt @@ -2,9 +2,6 @@ glx@glx-multi-window-single-context,Crash spec@egl_chromium_sync_control@conformance@eglGetSyncValuesCHROMIUM_ust_test,Fail -# Mesa bug not Zink bug. See piglit MR 824 -spec@arb_bindless_texture@compiler@images@return-struct.frag,Crash - # #6115 spec@arb_tessellation_shader@execution@variable-indexing@tes-both-input-array-float-index-rd,Crash spec@arb_tessellation_shader@execution@variable-indexing@tes-both-input-array-vec2-index-rd,Crash