From cbd6f0a0c2d04b4621f8d9002f7f28e5521d18c1 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Mon, 7 Oct 2019 10:26:22 +0200 Subject: [PATCH] radv: implement VK_KHR_shader_clock NIR->LLVM and ACO already support nir_intrinsic_shader_clock. Signed-off-by: Samuel Pitoiset --- docs/relnotes/new_features.txt | 2 +- src/amd/vulkan/radv_device.c | 7 +++++++ src/amd/vulkan/radv_extensions.py | 1 + src/amd/vulkan/radv_shader.c | 1 + 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/docs/relnotes/new_features.txt b/docs/relnotes/new_features.txt index 19a958ae4a3..f51a9669bad 100644 --- a/docs/relnotes/new_features.txt +++ b/docs/relnotes/new_features.txt @@ -2,7 +2,7 @@ GL_ARB_gl_spirv on i965, iris. GL_ARB_spirv_extensions on i965, iris. GL_EXT_demote_to_helper_invocation on iris, i965. OpenGL 4.6 on i965, iris. -VK_KHR_shader_clock on Intel. +VK_KHR_shader_clock on Intel, RADV. VK_KHR_shader_float_controls on Intel. VK_EXT_shader_subgroup_ballot on Intel. VK_EXT_shader_subgroup_vote on Intel. diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c index 8965530ef28..efd3eb39417 100644 --- a/src/amd/vulkan/radv_device.c +++ b/src/amd/vulkan/radv_device.c @@ -1063,6 +1063,13 @@ void radv_GetPhysicalDeviceFeatures2( features->pipelineExecutableInfo = true; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR: { + VkPhysicalDeviceShaderClockFeaturesKHR *features = + (VkPhysicalDeviceShaderClockFeaturesKHR *)ext; + features->shaderSubgroupClock = true; + features->shaderDeviceClock = false; + break; + } default: break; } diff --git a/src/amd/vulkan/radv_extensions.py b/src/amd/vulkan/radv_extensions.py index 068ca89ade9..14d139d60b4 100644 --- a/src/amd/vulkan/radv_extensions.py +++ b/src/amd/vulkan/radv_extensions.py @@ -86,6 +86,7 @@ EXTENSIONS = [ Extension('VK_KHR_sampler_mirror_clamp_to_edge', 1, True), Extension('VK_KHR_sampler_ycbcr_conversion', 1, True), Extension('VK_KHR_shader_atomic_int64', 1, 'LLVM_VERSION_MAJOR >= 9'), + Extension('VK_KHR_shader_clock', 1, True), Extension('VK_KHR_shader_draw_parameters', 1, True), Extension('VK_KHR_shader_float16_int8', 1, '!device->use_aco'), Extension('VK_KHR_storage_buffer_storage_class', 1, True), diff --git a/src/amd/vulkan/radv_shader.c b/src/amd/vulkan/radv_shader.c index ee37c06b8ca..91e22c9d68f 100644 --- a/src/amd/vulkan/radv_shader.c +++ b/src/amd/vulkan/radv_shader.c @@ -357,6 +357,7 @@ radv_shader_compile_to_nir(struct radv_device *device, .physical_storage_buffer_address = true, .post_depth_coverage = true, .runtime_descriptor_array = true, + .shader_clock = true, .shader_viewport_index_layer = true, .stencil_export = true, .storage_8bit = !device->physical_device->use_aco, -- 2.30.2