From 6476abd821a0917436452e83b0afffabcf5dec5e Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Fri, 31 Mar 2023 17:48:04 +0200 Subject: [PATCH] radv: enable VK_EXT_graphics_pipeline_library by default You won't get your money back! It's been a very long time but everything should be working great now. This replaces RADV_PERFTEST=gpl by RADV_DEBUG=nogpl to disable the extension for debugging purposes. Signed-off-by: Samuel Pitoiset Part-of: --- docs/envvars.rst | 4 ++-- docs/features.txt | 2 +- docs/relnotes/new_features.txt | 1 + src/amd/ci/gitlab-ci.yml | 1 - src/amd/ci/radv-stoney-aco-fails.txt | 11 +++++++++++ src/amd/vulkan/radv_debug.h | 8 ++++---- src/amd/vulkan/radv_instance.c | 2 +- src/amd/vulkan/radv_physical_device.c | 2 +- 8 files changed, 21 insertions(+), 10 deletions(-) diff --git a/docs/envvars.rst b/docs/envvars.rst index 47ff864..78f2ec4 100644 --- a/docs/envvars.rst +++ b/docs/envvars.rst @@ -1098,6 +1098,8 @@ RADV driver environment variables disable fast color/depthstencil clears ``nofmask`` disable FMASK compression on MSAA images (GFX6-GFX10.3) + ``nogpl`` + disable VK_EXT_graphics_pipeline_library ``nohiz`` disable HIZ for depthstencil images ``noibs`` @@ -1170,8 +1172,6 @@ RADV driver environment variables rt extensions with older hardware. ``gewave32`` enable wave32 for vertex/tess/geometry shaders (GFX10+) - ``gpl`` - enable graphics pipeline library ``localbos`` enable local BOs ``nosam`` diff --git a/docs/features.txt b/docs/features.txt index c0bac07..2fb145c 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -564,7 +564,7 @@ Khronos extensions that are not part of any Vulkan version: VK_EXT_fragment_shader_interlock DONE (anv/gen9+) VK_EXT_global_priority DONE (anv, radv, tu) VK_EXT_global_priority_query DONE (anv, radv, tu) - VK_EXT_graphics_pipeline_library DONE (lvp, tu) + VK_EXT_graphics_pipeline_library DONE (lvp, radv, tu) VK_EXT_image_2d_view_of_3d DONE (anv, radv, tu, lvp) VK_EXT_image_drm_format_modifier DONE (anv, radv/gfx9+, tu, v3dv, vn) VK_EXT_image_sliced_view_of_3d DONE (anv, radv/gfx10+) diff --git a/docs/relnotes/new_features.txt b/docs/relnotes/new_features.txt index 872e504..ed2c7ed 100644 --- a/docs/relnotes/new_features.txt +++ b/docs/relnotes/new_features.txt @@ -3,3 +3,4 @@ VK_EXT_image_sliced_view_of_3d on RADV/GFX10+ VK_KHR_map_memory2 on ANV and RADV fullyCoveredFragmentShaderInputVariable on RADV/GFX9+ VK_EXT_discard_rectangles version 2 on RADV +VK_EXT_graphics_pipeline_library on RADV diff --git a/src/amd/ci/gitlab-ci.yml b/src/amd/ci/gitlab-ci.yml index 15d89ad..4fb208a 100644 --- a/src/amd/ci/gitlab-ci.yml +++ b/src/amd/ci/gitlab-ci.yml @@ -280,7 +280,6 @@ radeonsi-raven-va:amd64: - .deqp-test-valve variables: DEQP_VER: vk - RADV_PERFTEST: gpl # VKCTS never finishes on gfx7 due to all the GPU resets and hangs. # Hence, disable it for now. diff --git a/src/amd/ci/radv-stoney-aco-fails.txt b/src/amd/ci/radv-stoney-aco-fails.txt index 4d05940..e08fd2b 100644 --- a/src/amd/ci/radv-stoney-aco-fails.txt +++ b/src/amd/ci/radv-stoney-aco-fails.txt @@ -101,3 +101,14 @@ dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_32_32.samples_2.d32_sfloat_s8 dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_32_32.samples_2.d32_sfloat_s8_uint.depth_none_stencil_min_testing_stencil,Fail dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_32_32.samples_2.d32_sfloat_s8_uint.depth_none_stencil_zero_testing_stencil,Fail dEQP-VK.renderpass2.depth_stencil_resolve.image_2d_49_13.samples_8.d32_sfloat_s8_uint.depth_none_stencil_max_testing_stencil,Fail + +# Test bugs with GPL (all of them should be fixed with recent CTS). +dEQP-VK.pipeline.pipeline_library.creation_feedback.graphics_tests.vertex_stage_fragment_stage,Crash +dEQP-VK.pipeline.pipeline_library.creation_feedback.graphics_tests.vertex_stage_fragment_stage_delayed_destroy,Crash +dEQP-VK.pipeline.pipeline_library.creation_feedback.graphics_tests.vertex_stage_fragment_stage_no_cache,Crash +dEQP-VK.pipeline.pipeline_library.creation_feedback.graphics_tests.vertex_stage_geometry_stage_fragment_stage,Crash +dEQP-VK.pipeline.pipeline_library.creation_feedback.graphics_tests.vertex_stage_geometry_stage_fragment_stage_delayed_destroy,Crash +dEQP-VK.pipeline.pipeline_library.creation_feedback.graphics_tests.vertex_stage_geometry_stage_fragment_stage_no_cache,Crash +dEQP-VK.pipeline.pipeline_library.creation_feedback.graphics_tests.vertex_stage_tessellation_control_stage_tessellation_evaluation_stage_fragment_stage,Crash +dEQP-VK.pipeline.pipeline_library.creation_feedback.graphics_tests.vertex_stage_tessellation_control_stage_tessellation_evaluation_stage_fragment_stage_delayed_destroy,Crash +dEQP-VK.pipeline.pipeline_library.creation_feedback.graphics_tests.vertex_stage_tessellation_control_stage_tessellation_evaluation_stage_fragment_stage_no_cache,Crash diff --git a/src/amd/vulkan/radv_debug.h b/src/amd/vulkan/radv_debug.h index 7d336d6..b15149d 100644 --- a/src/amd/vulkan/radv_debug.h +++ b/src/amd/vulkan/radv_debug.h @@ -69,6 +69,7 @@ enum { RADV_DEBUG_NO_FMASK = 1ull << 38, RADV_DEBUG_SHADOW_REGS = 1ull << 39, RADV_DEBUG_EXTRA_MD = 1ull << 40, + RADV_DEBUG_NO_GPL = 1ull << 41, }; enum { @@ -84,10 +85,9 @@ enum { RADV_PERFTEST_NGGC = 1u << 9, RADV_PERFTEST_EMULATE_RT = 1u << 10, RADV_PERFTEST_RT_WAVE_64 = 1u << 11, - RADV_PERFTEST_GPL = 1u << 12, - RADV_PERFTEST_NGG_STREAMOUT = 1u << 13, - RADV_PERFTEST_VIDEO_DECODE = 1u << 14, - RADV_PERFTEST_DMA_SHADERS = 1u << 15, + RADV_PERFTEST_NGG_STREAMOUT = 1u << 12, + RADV_PERFTEST_VIDEO_DECODE = 1u << 13, + RADV_PERFTEST_DMA_SHADERS = 1u << 14, }; 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 78f145c..e2431e0 100644 --- a/src/amd/vulkan/radv_instance.c +++ b/src/amd/vulkan/radv_instance.c @@ -75,6 +75,7 @@ static const struct debug_control radv_debug_options[] = { {"nofmask", RADV_DEBUG_NO_FMASK}, {"shadowregs", RADV_DEBUG_SHADOW_REGS}, {"extra_md", RADV_DEBUG_EXTRA_MD}, + {"nogpl", RADV_DEBUG_NO_GPL}, {NULL, 0}}; const char * @@ -97,7 +98,6 @@ static const struct debug_control radv_perftest_options[] = { {"nggc", RADV_PERFTEST_NGGC}, {"emulate_rt", RADV_PERFTEST_EMULATE_RT}, {"rtwave64", RADV_PERFTEST_RT_WAVE_64}, - {"gpl", RADV_PERFTEST_GPL}, {"ngg_streamout", RADV_PERFTEST_NGG_STREAMOUT}, {"video_decode", RADV_PERFTEST_VIDEO_DECODE}, {"dmashaders", RADV_PERFTEST_DMA_SHADERS}, diff --git a/src/amd/vulkan/radv_physical_device.c b/src/amd/vulkan/radv_physical_device.c index 86df9f8..b1b7ec0 100644 --- a/src/amd/vulkan/radv_physical_device.c +++ b/src/amd/vulkan/radv_physical_device.c @@ -522,7 +522,7 @@ radv_physical_device_get_supported_extensions(const struct radv_physical_device .EXT_global_priority = true, .EXT_global_priority_query = true, .EXT_graphics_pipeline_library = - !device->use_llvm && !!(device->instance->perftest_flags & RADV_PERFTEST_GPL), + !device->use_llvm && !(device->instance->debug_flags & RADV_DEBUG_NO_GPL), .EXT_host_query_reset = true, .EXT_image_2d_view_of_3d = true, .EXT_image_drm_format_modifier = device->rad_info.gfx_level >= GFX9, -- 2.7.4