mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-06-09 23:08:18 +02:00
nvk: Advertises VK_EXT_mesh_shader
Signed-off-by: Mary Guillemard <mary@mary.zone> Reviewed-by: Mel Henning <mhenning@darkrefraction.com> Tested-by: Thomas H.P. Andersen <phomes@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27196>
This commit is contained in:
parent
cdb0dea462
commit
145b8540e5
3 changed files with 44 additions and 7 deletions
|
|
@ -662,7 +662,7 @@ Khronos extensions that are not part of any Vulkan version:
|
|||
VK_EXT_map_memory_placed DONE (anv, hk, nvk, panvk, pvr, radv, tu, vn)
|
||||
VK_EXT_memory_budget DONE (anv, dzn, hasvk, kk, lvp, nvk, panvk, radv, tu, v3dv, vn)
|
||||
VK_EXT_memory_priority DONE (lvp, radv)
|
||||
VK_EXT_mesh_shader DONE (anv/gfx12.5+, lvp, radv, vn)
|
||||
VK_EXT_mesh_shader DONE (anv/gfx12.5+, lvp, nvk, radv, vn)
|
||||
VK_EXT_multi_draw DONE (anv, hasvk, hk, kk, lvp, nvk, radv, tu, vn, v3dv)
|
||||
VK_EXT_multisampled_render_to_single_sampled DONE (lvp, vn, panvk, tu)
|
||||
VK_EXT_mutable_descriptor_type DONE (anv, hk, kk, lvp, nvk, panvk/v9+, radv, tu, vn)
|
||||
|
|
|
|||
|
|
@ -21,3 +21,4 @@ Support for G1-Ultra, G1-Premium and G1-Pro GPUs on Panfrost and PanVK
|
|||
VK_EXT_shader_atomic_float on nvk
|
||||
VK_{KHR,EXT}_index_type_uint8 on pvr
|
||||
VK_EXT_debug_marker in vulkan runtime
|
||||
VK_EXT_mesh_shader on NVK
|
||||
|
|
|
|||
|
|
@ -257,6 +257,7 @@ nvk_get_device_extensions(const struct nvk_instance *instance,
|
|||
.EXT_legacy_vertex_attributes = true,
|
||||
.EXT_line_rasterization = true,
|
||||
.EXT_load_store_op_none = true,
|
||||
.EXT_mesh_shader = info->cls_eng3d >= TURING_A,
|
||||
.EXT_map_memory_placed = true,
|
||||
.EXT_memory_budget = true,
|
||||
.EXT_multi_draw = true,
|
||||
|
|
@ -692,6 +693,14 @@ nvk_get_device_features(const struct nv_device_info *info,
|
|||
.memoryMapRangePlaced = false,
|
||||
.memoryUnmapReserve = true,
|
||||
|
||||
/* VK_EXT_mesh_shader */
|
||||
.taskShader = info->cls_eng3d >= TURING_A,
|
||||
.meshShader = info->cls_eng3d >= TURING_A,
|
||||
.multiviewMeshShader = info->cls_eng3d >= TURING_A,
|
||||
.primitiveFragmentShadingRateMeshShader = info->cls_eng3d >= TURING_A,
|
||||
/* TODO: Implement TASK_SHADER_INVOCATIONS_BIT_EXT & MESH_SHADER_INVOCATIONS_BIT_EXT */
|
||||
.meshShaderQueries = false,
|
||||
|
||||
/* VK_EXT_multi_draw */
|
||||
.multiDraw = true,
|
||||
|
||||
|
|
@ -950,12 +959,9 @@ nvk_get_device_properties(const struct nvk_instance *instance,
|
|||
|
||||
/* Vulkan 1.1 properties */
|
||||
.subgroupSize = 32,
|
||||
.subgroupSupportedStages = VK_SHADER_STAGE_VERTEX_BIT |
|
||||
VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT |
|
||||
VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT |
|
||||
VK_SHADER_STAGE_GEOMETRY_BIT |
|
||||
VK_SHADER_STAGE_FRAGMENT_BIT |
|
||||
VK_SHADER_STAGE_COMPUTE_BIT,
|
||||
.subgroupSupportedStages =
|
||||
VK_SHADER_STAGE_ALL_GRAPHICS | VK_SHADER_STAGE_COMPUTE_BIT |
|
||||
VK_SHADER_STAGE_MESH_BIT_EXT | VK_SHADER_STAGE_TASK_BIT_EXT,
|
||||
.subgroupSupportedOperations = VK_SUBGROUP_FEATURE_ARITHMETIC_BIT |
|
||||
VK_SUBGROUP_FEATURE_BALLOT_BIT |
|
||||
VK_SUBGROUP_FEATURE_BASIC_BIT |
|
||||
|
|
@ -1205,6 +1211,36 @@ nvk_get_device_properties(const struct nvk_instance *instance,
|
|||
/* VK_EXT_multi_draw */
|
||||
.maxMultiDrawCount = UINT32_MAX,
|
||||
|
||||
/* VK_EXT_mesh_shader */
|
||||
.maxTaskWorkGroupTotalCount = 1 << 22,
|
||||
.maxTaskWorkGroupCount = {1 << 22, UINT16_MAX, UINT16_MAX},
|
||||
.maxTaskWorkGroupInvocations = 128,
|
||||
.maxTaskWorkGroupSize = {128, 128, 128},
|
||||
.maxTaskPayloadSize = 1 << 14,
|
||||
.maxTaskSharedMemorySize = 1 << 15,
|
||||
.maxTaskPayloadAndSharedMemorySize = 1 << 15,
|
||||
.maxMeshWorkGroupTotalCount = 1 << 22,
|
||||
.maxMeshWorkGroupCount = {1 << 22, UINT16_MAX, UINT16_MAX},
|
||||
.maxMeshWorkGroupInvocations = 128,
|
||||
.maxMeshWorkGroupSize = {128, 128, 128},
|
||||
.maxMeshSharedMemorySize = 28672,
|
||||
.maxMeshPayloadAndSharedMemorySize = 28672,
|
||||
.maxMeshOutputMemorySize = 1 << 15,
|
||||
.maxMeshPayloadAndOutputMemorySize = 48128,
|
||||
.maxMeshOutputComponents = 128,
|
||||
.maxMeshOutputVertices = 256,
|
||||
.maxMeshOutputPrimitives = 256,
|
||||
.maxMeshOutputLayers = 2048,
|
||||
.maxMeshMultiviewViewCount = 4,
|
||||
.meshOutputPerVertexGranularity = 32,
|
||||
.meshOutputPerPrimitiveGranularity = 32,
|
||||
.maxPreferredTaskWorkGroupInvocations = 32,
|
||||
.maxPreferredMeshWorkGroupInvocations = 32,
|
||||
.prefersLocalInvocationVertexOutput = false,
|
||||
.prefersLocalInvocationPrimitiveOutput = false,
|
||||
.prefersCompactVertexOutput = false,
|
||||
.prefersCompactPrimitiveOutput = true,
|
||||
|
||||
/* VK_EXT_nested_command_buffer */
|
||||
.maxCommandBufferNestingLevel = UINT32_MAX,
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue