Mesa (master): radv: implement VK_KHR_shader_clock

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Oct 9 06:41:41 UTC 2019


Module: Mesa
Branch: master
Commit: cbd6f0a0c2d04b4621f8d9002f7f28e5521d18c1
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=cbd6f0a0c2d04b4621f8d9002f7f28e5521d18c1

Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Date:   Mon Oct  7 10:26:22 2019 +0200

radv: implement VK_KHR_shader_clock

NIR->LLVM and ACO already support nir_intrinsic_shader_clock.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>

---

 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,




More information about the mesa-commit mailing list