diff --git a/docs/envvars.rst b/docs/envvars.rst index 47ff864029d..78f2ec4ad31 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 c0bac075e71..2fb145c2d5a 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 872e5046f4b..ed2c7ed70a8 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 15d89ad856f..4fb208a5a7e 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 4d05940dde9..e08fd2b4c4e 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 7d336d602ca..b15149d31e9 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 78f145c7c05..e2431e0b789 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 86df9f8e59b..b1b7ec02e56 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,