From 3ddbf64e417c6ba22928e17685c4db734a22af1f Mon Sep 17 00:00:00 2001 From: Gert Wollny Date: Mon, 27 Feb 2023 17:17:54 +0100 Subject: [PATCH] virgl: Lower binding start into buffer indices This requires that we limit the number of max combinded SSBOs to 31, otherwisewe shaders that use SSBO binding points with higher values will break on the host. Fixes CTS: KHR-GL43.shader_storage_buffer_object.basic-atomic-case1 KHR-GL43.shader_storage_buffer_object.basic-atomic-case2 KHR-GL43.shader_storage_buffer_object.advanced-indirectAddressing-case2 KHR-GL43.shader_storage_buffer_object.advanced-usage-case1 KHR-GL43.shader_storage_buffer_object.advanced-usage-sync KHR-GL43.shader_storage_buffer_object.advanced-matrix Signed-off-by: Gert Wollny Part-of: --- src/gallium/drivers/virgl/ci/virpipe-gl-fails.txt | 5 ----- src/gallium/drivers/virgl/virgl_context.c | 4 +++- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/gallium/drivers/virgl/ci/virpipe-gl-fails.txt b/src/gallium/drivers/virgl/ci/virpipe-gl-fails.txt index 40e7b45e508..3d810ff0332 100644 --- a/src/gallium/drivers/virgl/ci/virpipe-gl-fails.txt +++ b/src/gallium/drivers/virgl/ci/virpipe-gl-fails.txt @@ -44,11 +44,6 @@ KHR-GL43.shader_image_load_store.basic-allFormats-loadGeometryStages,Fail KHR-GL43.shader_image_load_store.basic-allFormats-storeGeometryStages,Fail KHR-GL43.shader_image_load_store.basic-allTargets-store,Fail KHR-GL43.shader_image_load_store.incomplete_textures,Fail -KHR-GL43.shader_storage_buffer_object.advanced-indirectAddressing-case2,Fail -KHR-GL43.shader_storage_buffer_object.advanced-usage-case1,Fail -KHR-GL43.shader_storage_buffer_object.advanced-usage-sync,Fail -KHR-GL43.shader_storage_buffer_object.basic-atomic-case1,Fail -KHR-GL43.shader_storage_buffer_object.basic-atomic-case2,Fail KHR-GL43.shader_subroutine.ssbo_atomic_image_load_store,Fail KHR-Single-GL43.arrays_of_arrays_gl.InteractionArgumentAliasing1,Fail diff --git a/src/gallium/drivers/virgl/virgl_context.c b/src/gallium/drivers/virgl/virgl_context.c index 40d1155bea7..8bd8b278980 100644 --- a/src/gallium/drivers/virgl/virgl_context.c +++ b/src/gallium/drivers/virgl/virgl_context.c @@ -714,7 +714,9 @@ static void *virgl_shader_encoder(struct pipe_context *ctx, if (shader->type == PIPE_SHADER_IR_NIR) { struct nir_to_tgsi_options options = { .unoptimized_ra = true, - .lower_fabs = true + .lower_fabs = true, + .lower_ssbo_bindings = + rs->caps.caps.v2.host_feature_check_version >= 16 }; if (!(rs->caps.caps.v2.capability_bits_v2 & VIRGL_CAP_V2_TEXTURE_SHADOW_LOD) &&