nvk: Advertise VK_EXT_device_generated_commands

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31394>
This commit is contained in:
Faith Ekstrand 2024-08-22 13:37:58 -05:00 committed by Marge Bot
parent 347e6b493b
commit 83b220f833
3 changed files with 27 additions and 0 deletions

View File

@ -583,6 +583,7 @@ Khronos extensions that are not part of any Vulkan version:
VK_EXT_descriptor_buffer DONE (anv, lvp, nvk, radv, tu)
VK_EXT_device_address_binding_report DONE (radv, tu)
VK_EXT_device_fault DONE (radv)
VK_EXT_device_generated_commands DONE (nvk/Turing+)
VK_EXT_device_memory_report DONE (vn)
VK_EXT_direct_mode_display DONE (anv, lvp, nvk, radv, tu, v3dv)
VK_EXT_discard_rectangles DONE (radv)

View File

@ -17,3 +17,4 @@ VK_KHR_shader_relaxed_extended_instruction on anv, hasvk, hk, nvk, radv, tu, v3d
GL_OVR_multiview and GL_OVR_multiview2 on zink
VK_KHR_shader_float_controls2 on radv
VK_KHR_shader_float_controls2 on nvk
VK_EXT_device_generated_commands on nvk

View File

@ -28,6 +28,7 @@
#include <sys/sysmacros.h>
#include "nv_push.h"
#include "cl90c0.h"
#include "cl91c0.h"
#include "cla097.h"
@ -191,6 +192,7 @@ nvk_get_device_extensions(const struct nvk_instance *instance,
.EXT_depth_range_unrestricted = info->cls_eng3d >= VOLTA_A,
.EXT_descriptor_buffer = true,
.EXT_descriptor_indexing = true,
.EXT_device_generated_commands = true,
#ifdef VK_USE_PLATFORM_DISPLAY_KHR
.EXT_display_control = true,
#endif
@ -515,6 +517,10 @@ nvk_get_device_features(const struct nv_device_info *info,
.descriptorBufferImageLayoutIgnored = true,
.descriptorBufferPushDescriptors = false,
/* VK_EXT_device_generated_commands */
.deviceGeneratedCommands = true,
.dynamicGeneratedPipelineLayout = true,
/* VK_EXT_dynamic_rendering_unused_attachments */
.dynamicRenderingUnusedAttachments = true,
@ -962,6 +968,25 @@ nvk_get_device_properties(const struct nvk_instance *instance,
.resourceDescriptorBufferAddressSpaceSize = UINT32_MAX,
.descriptorBufferAddressSpaceSize = UINT32_MAX,
/* VK_EXT_device_generated_commands */
.maxIndirectPipelineCount = UINT32_MAX,
.maxIndirectShaderObjectCount = UINT32_MAX,
.maxIndirectSequenceCount = 1 << 20,
.maxIndirectCommandsTokenCount = 16,
.maxIndirectCommandsTokenOffset = 2047,
.maxIndirectCommandsIndirectStride = 1 << 12,
.supportedIndirectCommandsInputModes =
VK_INDIRECT_COMMANDS_INPUT_MODE_VULKAN_INDEX_BUFFER_EXT |
VK_INDIRECT_COMMANDS_INPUT_MODE_DXGI_INDEX_BUFFER_EXT,
.supportedIndirectCommandsShaderStages =
NVK_SHADER_STAGE_GRAPHICS_BITS | VK_SHADER_STAGE_COMPUTE_BIT,
.supportedIndirectCommandsShaderStagesPipelineBinding =
NVK_SHADER_STAGE_GRAPHICS_BITS | VK_SHADER_STAGE_COMPUTE_BIT,
.supportedIndirectCommandsShaderStagesShaderBinding =
NVK_SHADER_STAGE_GRAPHICS_BITS | VK_SHADER_STAGE_COMPUTE_BIT,
.deviceGeneratedCommandsTransformFeedback = true,
.deviceGeneratedCommandsMultiDrawIndirectCount = true,
/* VK_EXT_extended_dynamic_state3 */
.dynamicPrimitiveTopologyUnrestricted = true,