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

Author: Samuel Pitoiset <samuel.pitoi...@gmail.com>
Date:   Tue Dec  5 17:59:26 2023 +0100

radv: advertise VK_KHR_vertex_attribute_divisor

This is a promotion from the EXT, except the new property
supportsNonZeroFirstInstance which should already be supported.

Signed-off-by: Samuel Pitoiset <samuel.pitoi...@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26595>

---

 docs/features.txt                     | 1 +
 docs/relnotes/new_features.txt        | 1 +
 src/amd/vulkan/radv_physical_device.c | 6 ++++--
 3 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/docs/features.txt b/docs/features.txt
index 002fd534898..12079e187b4 100644
--- a/docs/features.txt
+++ b/docs/features.txt
@@ -536,6 +536,7 @@ Khronos extensions that are not part of any Vulkan version:
   VK_KHR_surface_protected_capabilities                 DONE (anv, lvp, nvk, 
radv, v3dv, vn)
   VK_KHR_swapchain                                      DONE (anv, dzn, hasvk, 
lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
   VK_KHR_swapchain_mutable_format                       DONE (anv, hasvk, lvp, 
nvk, radv, tu, v3dv, vn)
+  VK_KHR_vertex_attribute_divisor                       DONE (radv)
   VK_KHR_wayland_surface                                DONE (anv, dzn, lvp, 
nvk, panvk, radv, tu, v3dv, vn)
   VK_KHR_workgroup_memory_explicit_layout               DONE (anv, nvk, hasvk, 
radv, v3dv)
   VK_KHR_win32_keyed_mutex                              not started
diff --git a/docs/relnotes/new_features.txt b/docs/relnotes/new_features.txt
index b5acc8181ca..2507b962bae 100644
--- a/docs/relnotes/new_features.txt
+++ b/docs/relnotes/new_features.txt
@@ -17,3 +17,4 @@ GL_ARB_viewport_array on Asahi
 GL_ARB_fragment_layer_viewport on Asahi
 GL_ARB_cull_distance on Asahi
 VK_KHR_calibrated_timestamps on RADV
+VK_KHR_vertex_attribute_divisor on RADV
diff --git a/src/amd/vulkan/radv_physical_device.c 
b/src/amd/vulkan/radv_physical_device.c
index b891ffde298..aaa03f624f1 100644
--- a/src/amd/vulkan/radv_physical_device.c
+++ b/src/amd/vulkan/radv_physical_device.c
@@ -478,6 +478,7 @@ radv_physical_device_get_supported_extensions(const struct 
radv_physical_device
       .KHR_timeline_semaphore = true,
       .KHR_uniform_buffer_standard_layout = true,
       .KHR_variable_pointers = true,
+      .KHR_vertex_attribute_divisor = true,
       .KHR_video_queue = !!(device->instance->perftest_flags & 
RADV_PERFTEST_VIDEO_DECODE),
       .KHR_video_decode_queue = !!(device->instance->perftest_flags & 
RADV_PERFTEST_VIDEO_DECODE),
       .KHR_video_decode_h264 = VIDEO_CODEC_H264DEC && 
!!(device->instance->perftest_flags & RADV_PERFTEST_VIDEO_DECODE),
@@ -761,7 +762,7 @@ radv_physical_device_get_features(const struct 
radv_physical_device *pdevice, st
       .conditionalRendering = true,
       .inheritedConditionalRendering = false,
 
-      /* VK_EXT_vertex_attribute_divisor */
+      /* VK_KHR_vertex_attribute_divisor */
       .vertexAttributeInstanceRateDivisor = true,
       .vertexAttributeInstanceRateZeroDivisor = true,
 
@@ -1502,8 +1503,9 @@ radv_get_physical_device_properties(struct 
radv_physical_device *pdevice)
    p->shaderCoreFeatures = 0;
    p->activeComputeUnitCount = pdevice->rad_info.num_cu;
 
-   /* VK_EXT_vertex_attribute_divisor */
+   /* VK_KHR_vertex_attribute_divisor */
    p->maxVertexAttribDivisor = UINT32_MAX;
+   p->supportsNonZeroFirstInstance = true;
 
    /* VK_EXT_conservative_rasterization */
    p->primitiveOverestimationSize = 0;

Reply via email to