radv: advertise VK_EXT_device_generated_commands on GFX8+
GFX6-7 can't really support it and it's not worth the effort anyways. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31383>
This commit is contained in:

committed by
Marge Bot

parent
9f8684359f
commit
8300378bf3
@@ -584,7 +584,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_generated_commands DONE (nvk/Turing+, radv/gfx8+)
|
||||
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)
|
||||
|
@@ -17,7 +17,7 @@ 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
|
||||
VK_EXT_device_generated_commands on nvk, radv
|
||||
VK_EXT_host_image_copy on nvk/Turing+
|
||||
VK_EXT_depth_clamp_control on anv, hasvk, nvk, radv
|
||||
VK_KHR_shader_quad_control on nvk
|
||||
|
@@ -48,3 +48,6 @@ dEQP-VK.api.device_init.create_instance_device_intentional_alloc_fail.basic
|
||||
# Some reconvergence tests are very slow.
|
||||
dEQP-VK.reconvergence.(subgroup|workgroup)_uniform_control_flow_(ballot|elect).compute.nesting4.*
|
||||
dEQP-VK.reconvergence.maximal.compute.nesting4.7.38
|
||||
|
||||
# RADV bug
|
||||
dEQP-VK.dgc.ext.misc.properties.maxIndirectSequenceCount
|
||||
|
@@ -644,6 +644,7 @@ radv_physical_device_get_supported_extensions(const struct radv_physical_device
|
||||
.EXT_descriptor_indexing = true,
|
||||
.EXT_device_address_binding_report = true,
|
||||
.EXT_device_fault = pdev->info.has_gpuvm_fault_query,
|
||||
.EXT_device_generated_commands = pdev->info.gfx_level >= GFX8,
|
||||
.EXT_discard_rectangles = true,
|
||||
#ifdef VK_USE_PLATFORM_DISPLAY_KHR
|
||||
.EXT_display_control = true,
|
||||
@@ -1277,6 +1278,10 @@ radv_physical_device_get_features(const struct radv_physical_device *pdev, struc
|
||||
|
||||
/* VK_EXT_depth_clamp_control */
|
||||
.depthClampControl = true,
|
||||
|
||||
/* VK_EXT_device_generated_commands */
|
||||
.deviceGeneratedCommands = true,
|
||||
.dynamicGeneratedPipelineLayout = true,
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1965,6 +1970,22 @@ radv_get_physical_device_properties(struct radv_physical_device *pdev)
|
||||
|
||||
/* VK_KHR_compute_shader_derivatives */
|
||||
p->meshAndTaskShaderDerivatives = radv_taskmesh_enabled(pdev);
|
||||
|
||||
/* VK_EXT_device_generated_commands */
|
||||
p->maxIndirectPipelineCount = 4096;
|
||||
p->maxIndirectShaderObjectCount = 4096;
|
||||
p->maxIndirectSequenceCount = 1048576;
|
||||
p->maxIndirectCommandsTokenCount = 128;
|
||||
p->maxIndirectCommandsTokenOffset = 2047;
|
||||
p->maxIndirectCommandsIndirectStride = 2048;
|
||||
p->supportedIndirectCommandsInputModes =
|
||||
VK_INDIRECT_COMMANDS_INPUT_MODE_VULKAN_INDEX_BUFFER_EXT | VK_INDIRECT_COMMANDS_INPUT_MODE_DXGI_INDEX_BUFFER_EXT;
|
||||
p->supportedIndirectCommandsShaderStages =
|
||||
RADV_GRAPHICS_STAGE_BITS | VK_SHADER_STAGE_COMPUTE_BIT | RADV_RT_STAGE_BITS;
|
||||
p->supportedIndirectCommandsShaderStagesPipelineBinding = VK_SHADER_STAGE_COMPUTE_BIT;
|
||||
p->supportedIndirectCommandsShaderStagesShaderBinding = 0;
|
||||
p->deviceGeneratedCommandsTransformFeedback = true;
|
||||
p->deviceGeneratedCommandsMultiDrawIndirectCount = true;
|
||||
}
|
||||
|
||||
static VkResult
|
||||
|
Reference in New Issue
Block a user