diff --git a/docs/envvars.rst b/docs/envvars.rst index ddcd3515785fa..a68483ae35248 100644 --- a/docs/envvars.rst +++ b/docs/envvars.rst @@ -1279,6 +1279,8 @@ RADV driver environment variables disable Delta Color Compression (DCC) on displayable images ``nodynamicbounds`` do not check OOB access for dynamic descriptors + ``noeso`` + disable VK_EXT_shader_object ``nofastclears`` disable fast color/depthstencil clears ``nofmask`` @@ -1378,8 +1380,6 @@ RADV driver environment variables enable wave64 for ray tracing shaders (GFX10-10.3) ``sam`` enable optimizations to move more driver internal objects to VRAM. - ``shader_object`` - enable experimental implementation of VK_EXT_shader_object ``transfer_queue`` enable experimental transfer queue support (GFX9+, not yet spec compliant) ``video_decode`` diff --git a/docs/features.txt b/docs/features.txt index fce30df364a3c..2e0d3d2e11b69 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -619,7 +619,7 @@ Khronos extensions that are not part of any Vulkan version: VK_EXT_shader_atomic_float DONE (anv, hasvk, lvp, radv) VK_EXT_shader_atomic_float2 DONE (anv, lvp, radv) VK_EXT_shader_image_atomic_int64 DONE (nvk, radv) - VK_EXT_shader_object DONE (lvp, nvk) + VK_EXT_shader_object DONE (lvp, nvk, radv) VK_EXT_shader_stencil_export DONE (anv, lvp, radv, tu, vn) VK_EXT_shader_subgroup_ballot DONE (anv, dzn, hasvk, lvp, nvk, radv, vn) VK_EXT_shader_subgroup_vote DONE (anv, dzn, hasvk, lvp, nvk, radv) diff --git a/docs/relnotes/new_features.txt b/docs/relnotes/new_features.txt index cc4df8447198e..228f5e132e303 100644 --- a/docs/relnotes/new_features.txt +++ b/docs/relnotes/new_features.txt @@ -15,3 +15,4 @@ alphaToOne/extendedDynamicState3AlphaToOneEnable on RADV VK_EXT_device_address_binding_report on RADV VK_EXT_external_memory_dma_buf for lavapipe VK_EXT_queue_family_foreign for lavapipe +VK_EXT_shader_object on RADV diff --git a/src/amd/ci/gitlab-ci.yml b/src/amd/ci/gitlab-ci.yml index dbdbd1e57f47d..d92df6c0fdc2f 100644 --- a/src/amd/ci/gitlab-ci.yml +++ b/src/amd/ci/gitlab-ci.yml @@ -172,7 +172,6 @@ vkcts-tahiti-valve: B2C_TIMEOUT_BOOT_MINUTES: 350 B2C_TIMEOUT_OVERALL_MINUTES: 350 B2C_TIMEOUT_BOOT_RETRIES: 0 - RADV_PERFTEST: shader_object vkcts-polaris10-valve: extends: @@ -184,7 +183,6 @@ vkcts-polaris10-valve: GPU_VERSION: radv-polaris10-aco B2C_TIMEOUT_BOOT_MINUTES: 70 B2C_TIMEOUT_OVERALL_MINUTES: 70 - RADV_PERFTEST: shader_object vkcts-vega10-valve: extends: @@ -196,7 +194,6 @@ vkcts-vega10-valve: GPU_VERSION: radv-vega10-aco B2C_TIMEOUT_BOOT_MINUTES: 70 B2C_TIMEOUT_OVERALL_MINUTES: 70 - RADV_PERFTEST: shader_object vkcts-renoir-valve: extends: @@ -208,7 +205,6 @@ vkcts-renoir-valve: GPU_VERSION: radv-renoir-aco B2C_TIMEOUT_BOOT_MINUTES: 130 B2C_TIMEOUT_OVERALL_MINUTES: 130 - RADV_PERFTEST: shader_object vkcts-navi10-valve: parallel: 2 @@ -218,7 +214,6 @@ vkcts-navi10-valve: - .radv-valve-manual-rules variables: GPU_VERSION: radv-navi10-aco - RADV_PERFTEST: shader_object vkcts-navi21-valve: timeout: 35m @@ -231,7 +226,6 @@ vkcts-navi21-valve: GPU_VERSION: radv-navi21-aco B2C_TIMEOUT_BOOT_MINUTES: 30 B2C_TIMEOUT_OVERALL_MINUTES: 30 - RADV_PERFTEST: shader_object # Disabled due to its extremelly-broken nature .vkcts-navi21-llvm-valve: @@ -252,7 +246,6 @@ vkcts-vangogh-valve: timeout: 2h 10m variables: GPU_VERSION: radv-vangogh-aco - RADV_PERFTEST: shader_object glcts-vangogh-valve: extends: @@ -273,7 +266,6 @@ vkcts-navi31-valve: variables: GPU_VERSION: radv-navi31-aco RADV_DEBUG: nomeshshader # Disable mesh shaders until task shaders stop hanging - RADV_PERFTEST: shader_object ############### Fossilize radv-fossils: diff --git a/src/amd/vulkan/radv_debug.h b/src/amd/vulkan/radv_debug.h index 2e78371d6a733..5eda709af9067 100644 --- a/src/amd/vulkan/radv_debug.h +++ b/src/amd/vulkan/radv_debug.h @@ -58,6 +58,7 @@ enum { RADV_DEBUG_NO_MESH_SHADER = 1ull << 42, RADV_DEBUG_NO_NGG_GS = 1ull << 43, RADV_DEBUG_NO_GS_FAST_LAUNCH_2 = 1ull << 44, + RADV_DEBUG_NO_ESO = 1ull << 45, }; enum { @@ -75,9 +76,8 @@ enum { RADV_PERFTEST_VIDEO_DECODE = 1u << 11, RADV_PERFTEST_DMA_SHADERS = 1u << 12, RADV_PERFTEST_TRANSFER_QUEUE = 1u << 13, - RADV_PERFTEST_SHADER_OBJECT = 1u << 14, - RADV_PERFTEST_NIR_CACHE = 1u << 15, - RADV_PERFTEST_RT_WAVE_32 = 1u << 16, + RADV_PERFTEST_NIR_CACHE = 1u << 14, + RADV_PERFTEST_RT_WAVE_32 = 1u << 15, }; bool radv_init_trace(struct radv_device *device); diff --git a/src/amd/vulkan/radv_instance.c b/src/amd/vulkan/radv_instance.c index f3b03e7fc154b..70525478e3400 100644 --- a/src/amd/vulkan/radv_instance.c +++ b/src/amd/vulkan/radv_instance.c @@ -72,6 +72,7 @@ static const struct debug_control radv_debug_options[] = {{"nofastclears", RADV_ {"nomeshshader", RADV_DEBUG_NO_MESH_SHADER}, {"nongg_gs", RADV_DEBUG_NO_NGG_GS}, {"nogsfastlaunch2", RADV_DEBUG_NO_GS_FAST_LAUNCH_2}, + {"noeso", RADV_DEBUG_NO_ESO}, {NULL, 0}}; const char * @@ -95,7 +96,6 @@ static const struct debug_control radv_perftest_options[] = {{"localbos", RADV_P {"video_decode", RADV_PERFTEST_VIDEO_DECODE}, {"dmashaders", RADV_PERFTEST_DMA_SHADERS}, {"transfer_queue", RADV_PERFTEST_TRANSFER_QUEUE}, - {"shader_object", RADV_PERFTEST_SHADER_OBJECT}, {"nircache", RADV_PERFTEST_NIR_CACHE}, {"rtwave32", RADV_PERFTEST_RT_WAVE_32}, {NULL, 0}}; diff --git a/src/amd/vulkan/radv_physical_device.c b/src/amd/vulkan/radv_physical_device.c index 0a165bb0a32ae..3654cf5aa141f 100644 --- a/src/amd/vulkan/radv_physical_device.c +++ b/src/amd/vulkan/radv_physical_device.c @@ -99,13 +99,6 @@ radv_calibrated_timestamps_enabled(const struct radv_physical_device *pdev) return RADV_SUPPORT_CALIBRATED_TIMESTAMPS && !(pdev->info.family == CHIP_RAVEN || pdev->info.family == CHIP_RAVEN2); } -static bool -radv_shader_object_enabled(const struct radv_physical_device *pdev) -{ - const struct radv_instance *instance = radv_physical_device_instance(pdev); - return !pdev->use_llvm && instance->perftest_flags & RADV_PERFTEST_SHADER_OBJECT; -} - bool radv_enable_rt(const struct radv_physical_device *pdev, bool rt_pipelines) { @@ -655,7 +648,7 @@ radv_physical_device_get_supported_extensions(const struct radv_physical_device .EXT_shader_demote_to_helper_invocation = true, .EXT_shader_image_atomic_int64 = true, .EXT_shader_module_identifier = true, - .EXT_shader_object = radv_shader_object_enabled(pdev), + .EXT_shader_object = !pdev->use_llvm && !(instance->debug_flags & RADV_DEBUG_NO_ESO), .EXT_shader_stencil_export = true, .EXT_shader_subgroup_ballot = true, .EXT_shader_subgroup_vote = true, diff --git a/src/gallium/drivers/zink/ci/gitlab-ci.yml b/src/gallium/drivers/zink/ci/gitlab-ci.yml index 555c51bde8f2c..5713b2ac5ad3d 100644 --- a/src/gallium/drivers/zink/ci/gitlab-ci.yml +++ b/src/gallium/drivers/zink/ci/gitlab-ci.yml @@ -110,7 +110,6 @@ zink-radv-polaris10-valve: variables: GPU_VERSION: zink-radv-polaris10 ZINK_DEBUG: quiet - RADV_PERFTEST: shader_object zink-radv-navi10-valve: extends: @@ -121,7 +120,6 @@ zink-radv-navi10-valve: variables: B2C_TIMEOUT_OVERALL_MINUTES: 30 GPU_VERSION: zink-radv-navi10 - RADV_PERFTEST: shader_object zink-radv-vangogh-valve: timeout: 35m @@ -137,7 +135,6 @@ zink-radv-vangogh-valve: B2C_TIMEOUT_BOOT_MINUTES: 30 B2C_TIMEOUT_OVERALL_MINUTES: 30 FDO_CI_CONCURRENT: 6 - RADV_PERFTEST: shader_object # Override the list of tags to drop `priority:low` tags: - farm:$RUNNER_FARM_LOCATION @@ -153,4 +150,3 @@ zink-radv-navi31-valve: GPU_VERSION: zink-radv-navi31 B2C_TIMEOUT_BOOT_MINUTES: 75 B2C_TIMEOUT_OVERALL_MINUTES: 75 - RADV_PERFTEST: shader_object