lavapipe: Advertise vulkan 1.4
Only advertise 1.4 for LLVM_VERSION_MAJOR>=10 because some subgroup operations were promoted. Closes: #12241 Reviewed-by: Dave Airlie <airlied@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32489>
This commit is contained in:

committed by
Marge Bot

parent
d09ba36f98
commit
38c4548290
@@ -505,7 +505,7 @@ Vulkan 1.3 -- all DONE: anv, lvp, nvk, radv, tu, vn, v3dv
|
|||||||
VK_EXT_tooling_info DONE (anv, hasvk, nvk, panvk, pvr, radv, tu, v3dv, vn)
|
VK_EXT_tooling_info DONE (anv, hasvk, nvk, panvk, pvr, radv, tu, v3dv, vn)
|
||||||
VK_EXT_ycbcr_2plane_444_formats DONE (anv, lvp, nvk, vn)
|
VK_EXT_ycbcr_2plane_444_formats DONE (anv, lvp, nvk, vn)
|
||||||
|
|
||||||
Vulkan 1.4 -- all DONE: anv, nvk, radv/gfx8+, tu/a7xx+
|
Vulkan 1.4 -- all DONE: anv, lvp, nvk, radv/gfx8+, tu/a7xx+
|
||||||
|
|
||||||
VK_KHR_dynamic_rendering_local_read DONE (anv, lvp, nvk, radv, tu)
|
VK_KHR_dynamic_rendering_local_read DONE (anv, lvp, nvk, radv, tu)
|
||||||
VK_KHR_global_priority DONE (anv, lvp, nvk, panvk, radv, tu)
|
VK_KHR_global_priority DONE (anv, lvp, nvk, panvk, radv, tu)
|
||||||
@@ -514,7 +514,7 @@ Vulkan 1.4 -- all DONE: anv, nvk, radv/gfx8+, tu/a7xx+
|
|||||||
VK_KHR_load_store_op_none DONE (anv, lvp, nvk, radv, tu, v3dv)
|
VK_KHR_load_store_op_none DONE (anv, lvp, nvk, radv, tu, v3dv)
|
||||||
VK_KHR_maintenance5 DONE (anv, lvp, nvk, radv, tu, v3dv, vn)
|
VK_KHR_maintenance5 DONE (anv, lvp, nvk, radv, tu, v3dv, vn)
|
||||||
VK_KHR_maintenance6 DONE (anv, lvp, nvk, radv, tu)
|
VK_KHR_maintenance6 DONE (anv, lvp, nvk, radv, tu)
|
||||||
VK_KHR_map_memory2 DONE (anv, nvk, panvk, radv, tu)
|
VK_KHR_map_memory2 DONE (anv, lvp, nvk, panvk, radv, tu)
|
||||||
VK_KHR_push_descriptor DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, vn)
|
VK_KHR_push_descriptor DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, vn)
|
||||||
VK_KHR_shader_expect_assume DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
|
VK_KHR_shader_expect_assume DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
|
||||||
VK_KHR_shader_float_controls2 DONE (anv, lvp, nvk, radv, tu)
|
VK_KHR_shader_float_controls2 DONE (anv, lvp, nvk, radv, tu)
|
||||||
|
@@ -61,7 +61,12 @@
|
|||||||
defined(VK_USE_PLATFORM_METAL_EXT)
|
defined(VK_USE_PLATFORM_METAL_EXT)
|
||||||
#define LVP_USE_WSI_PLATFORM
|
#define LVP_USE_WSI_PLATFORM
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if LLVM_VERSION_MAJOR >= 10
|
||||||
|
#define LVP_API_VERSION VK_MAKE_VERSION(1, 4, VK_HEADER_VERSION)
|
||||||
|
#else
|
||||||
#define LVP_API_VERSION VK_MAKE_VERSION(1, 3, VK_HEADER_VERSION)
|
#define LVP_API_VERSION VK_MAKE_VERSION(1, 3, VK_HEADER_VERSION)
|
||||||
|
#endif
|
||||||
|
|
||||||
VKAPI_ATTR VkResult VKAPI_CALL lvp_EnumerateInstanceVersion(uint32_t* pApiVersion)
|
VKAPI_ATTR VkResult VKAPI_CALL lvp_EnumerateInstanceVersion(uint32_t* pApiVersion)
|
||||||
{
|
{
|
||||||
@@ -453,6 +458,28 @@ lvp_get_features(const struct lvp_physical_device *pdevice,
|
|||||||
.shaderIntegerDotProduct = true,
|
.shaderIntegerDotProduct = true,
|
||||||
.maintenance4 = true,
|
.maintenance4 = true,
|
||||||
|
|
||||||
|
/* Vulkan 1.4 */
|
||||||
|
.globalPriorityQuery = true,
|
||||||
|
.shaderSubgroupRotate = true,
|
||||||
|
.shaderSubgroupRotateClustered = true,
|
||||||
|
.shaderFloatControls2 = true,
|
||||||
|
.shaderExpectAssume = true,
|
||||||
|
.rectangularLines = true,
|
||||||
|
.bresenhamLines = true,
|
||||||
|
.smoothLines = true,
|
||||||
|
.stippledRectangularLines = true,
|
||||||
|
.stippledBresenhamLines = true,
|
||||||
|
.stippledSmoothLines = true,
|
||||||
|
.vertexAttributeInstanceRateDivisor = instance_divisor,
|
||||||
|
.vertexAttributeInstanceRateZeroDivisor = instance_divisor,
|
||||||
|
.indexTypeUint8 = true,
|
||||||
|
.dynamicRenderingLocalRead = true,
|
||||||
|
.maintenance5 = true,
|
||||||
|
.maintenance6 = true,
|
||||||
|
.pipelineRobustness = true,
|
||||||
|
.hostImageCopy = true,
|
||||||
|
.pushDescriptor = true,
|
||||||
|
|
||||||
/* VK_KHR_acceleration_structure */
|
/* VK_KHR_acceleration_structure */
|
||||||
.accelerationStructure = true,
|
.accelerationStructure = true,
|
||||||
.accelerationStructureCaptureReplay = false,
|
.accelerationStructureCaptureReplay = false,
|
||||||
@@ -478,9 +505,6 @@ lvp_get_features(const struct lvp_physical_device *pdevice,
|
|||||||
/* VK_EXT_non_seamless_cube_map */
|
/* VK_EXT_non_seamless_cube_map */
|
||||||
.nonSeamlessCubeMap = true,
|
.nonSeamlessCubeMap = true,
|
||||||
|
|
||||||
/* VK_KHR_global_priority */
|
|
||||||
.globalPriorityQuery = true,
|
|
||||||
|
|
||||||
/* VK_EXT_attachment_feedback_loop_layout */
|
/* VK_EXT_attachment_feedback_loop_layout */
|
||||||
.attachmentFeedbackLoopLayout = true,
|
.attachmentFeedbackLoopLayout = true,
|
||||||
|
|
||||||
@@ -492,27 +516,12 @@ lvp_get_features(const struct lvp_physical_device *pdevice,
|
|||||||
.rasterizationOrderDepthAttachmentAccess = true,
|
.rasterizationOrderDepthAttachmentAccess = true,
|
||||||
.rasterizationOrderStencilAttachmentAccess = true,
|
.rasterizationOrderStencilAttachmentAccess = true,
|
||||||
|
|
||||||
/* VK_EXT_line_rasterization */
|
|
||||||
.rectangularLines = true,
|
|
||||||
.bresenhamLines = true,
|
|
||||||
.smoothLines = true,
|
|
||||||
.stippledRectangularLines = true,
|
|
||||||
.stippledBresenhamLines = true,
|
|
||||||
.stippledSmoothLines = true,
|
|
||||||
|
|
||||||
/* VK_EXT_vertex_attribute_divisor */
|
|
||||||
.vertexAttributeInstanceRateZeroDivisor = instance_divisor,
|
|
||||||
.vertexAttributeInstanceRateDivisor = instance_divisor,
|
|
||||||
|
|
||||||
/* VK_EXT_multisampled_render_to_single_sampled */
|
/* VK_EXT_multisampled_render_to_single_sampled */
|
||||||
.multisampledRenderToSingleSampled = true,
|
.multisampledRenderToSingleSampled = true,
|
||||||
|
|
||||||
/* VK_EXT_mutable_descriptor_type */
|
/* VK_EXT_mutable_descriptor_type */
|
||||||
.mutableDescriptorType = true,
|
.mutableDescriptorType = true,
|
||||||
|
|
||||||
/* VK_EXT_index_type_uint8 */
|
|
||||||
.indexTypeUint8 = true,
|
|
||||||
|
|
||||||
/* VK_EXT_vertex_input_dynamic_state */
|
/* VK_EXT_vertex_input_dynamic_state */
|
||||||
.vertexInputDynamicState = true,
|
.vertexInputDynamicState = true,
|
||||||
|
|
||||||
@@ -591,9 +600,6 @@ lvp_get_features(const struct lvp_physical_device *pdevice,
|
|||||||
/* VK_EXT_multi_draw */
|
/* VK_EXT_multi_draw */
|
||||||
.multiDraw = true,
|
.multiDraw = true,
|
||||||
|
|
||||||
/* VK_EXT_pipeline_robustness */
|
|
||||||
.pipelineRobustness = true,
|
|
||||||
|
|
||||||
/* VK_EXT_depth_clip_enable */
|
/* VK_EXT_depth_clip_enable */
|
||||||
.depthClipEnable = (pdevice->pscreen->get_param(pdevice->pscreen, PIPE_CAP_DEPTH_CLAMP_ENABLE) != 0),
|
.depthClipEnable = (pdevice->pscreen->get_param(pdevice->pscreen, PIPE_CAP_DEPTH_CLAMP_ENABLE) != 0),
|
||||||
|
|
||||||
@@ -699,9 +705,6 @@ lvp_get_features(const struct lvp_physical_device *pdevice,
|
|||||||
.nestedCommandBufferRendering = true,
|
.nestedCommandBufferRendering = true,
|
||||||
.nestedCommandBufferSimultaneousUse = true,
|
.nestedCommandBufferSimultaneousUse = true,
|
||||||
|
|
||||||
/* VK_KHR_dynamic_rendering_local_read */
|
|
||||||
.dynamicRenderingLocalRead = true,
|
|
||||||
|
|
||||||
/* VK_EXT_mesh_shader */
|
/* VK_EXT_mesh_shader */
|
||||||
.taskShader = true,
|
.taskShader = true,
|
||||||
.meshShader = true,
|
.meshShader = true,
|
||||||
@@ -709,26 +712,15 @@ lvp_get_features(const struct lvp_physical_device *pdevice,
|
|||||||
.primitiveFragmentShadingRateMeshShader = false,
|
.primitiveFragmentShadingRateMeshShader = false,
|
||||||
.meshShaderQueries = true,
|
.meshShaderQueries = true,
|
||||||
|
|
||||||
/* host_image_copy */
|
|
||||||
.hostImageCopy = true,
|
|
||||||
|
|
||||||
/* maintenance5 */
|
|
||||||
.maintenance5 = true,
|
|
||||||
|
|
||||||
/* VK_EXT_ycbcr_2plane_444_formats */
|
/* VK_EXT_ycbcr_2plane_444_formats */
|
||||||
.ycbcr2plane444Formats = true,
|
.ycbcr2plane444Formats = true,
|
||||||
|
|
||||||
/* VK_EXT_ycbcr_image_arrays */
|
/* VK_EXT_ycbcr_image_arrays */
|
||||||
.ycbcrImageArrays = true,
|
.ycbcrImageArrays = true,
|
||||||
|
|
||||||
/* maintenance6 */
|
|
||||||
.maintenance6 = true,
|
|
||||||
/* maintenance7 */
|
/* maintenance7 */
|
||||||
.maintenance7 = true,
|
.maintenance7 = true,
|
||||||
|
|
||||||
/* VK_KHR_shader_expect_assume */
|
|
||||||
.shaderExpectAssume = true,
|
|
||||||
|
|
||||||
/* VK_KHR_shader_maximal_reconvergence */
|
/* VK_KHR_shader_maximal_reconvergence */
|
||||||
.shaderMaximalReconvergence = true,
|
.shaderMaximalReconvergence = true,
|
||||||
|
|
||||||
@@ -749,9 +741,6 @@ lvp_get_features(const struct lvp_physical_device *pdevice,
|
|||||||
.shaderSubgroupRotate = true,
|
.shaderSubgroupRotate = true,
|
||||||
.shaderSubgroupRotateClustered = true,
|
.shaderSubgroupRotateClustered = true,
|
||||||
|
|
||||||
/* KHR_shader_float_controls2 */
|
|
||||||
.shaderFloatControls2 = true,
|
|
||||||
|
|
||||||
/* VK_KHR_compute_shader_derivatives */
|
/* VK_KHR_compute_shader_derivatives */
|
||||||
.computeDerivativeGroupQuads = true,
|
.computeDerivativeGroupQuads = true,
|
||||||
.computeDerivativeGroupLinear = true,
|
.computeDerivativeGroupLinear = true,
|
||||||
@@ -1030,10 +1019,22 @@ lvp_get_properties(const struct lvp_physical_device *device, struct vk_propertie
|
|||||||
.uniformTexelBufferOffsetSingleTexelAlignment = true,
|
.uniformTexelBufferOffsetSingleTexelAlignment = true,
|
||||||
.maxBufferSize = UINT32_MAX,
|
.maxBufferSize = UINT32_MAX,
|
||||||
|
|
||||||
/* VK_KHR_push_descriptor */
|
/* Vulkan 1.4 */
|
||||||
|
.lineSubPixelPrecisionBits = device->pscreen->get_param(device->pscreen, PIPE_CAP_RASTERIZER_SUBPIXEL_BITS),
|
||||||
.maxPushDescriptors = MAX_PUSH_DESCRIPTORS,
|
.maxPushDescriptors = MAX_PUSH_DESCRIPTORS,
|
||||||
|
/* FIXME No idea about most of these ones. */
|
||||||
/* VK_EXT_host_image_copy */
|
.earlyFragmentMultisampleCoverageAfterSampleCounting = true,
|
||||||
|
.earlyFragmentSampleMaskTestBeforeSampleCounting = false,
|
||||||
|
.depthStencilSwizzleOneSupport = false,
|
||||||
|
.polygonModePointSize = true, /* This one is correct. */
|
||||||
|
.nonStrictSinglePixelWideLinesUseParallelogram = false,
|
||||||
|
.nonStrictWideLinesUseParallelogram = false,
|
||||||
|
.blockTexelViewCompatibleMultipleLayers = true,
|
||||||
|
.maxCombinedImageSamplerDescriptorCount = 3,
|
||||||
|
.defaultRobustnessStorageBuffers = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT,
|
||||||
|
.defaultRobustnessUniformBuffers = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT,
|
||||||
|
.defaultRobustnessVertexInputs = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT,
|
||||||
|
.defaultRobustnessImages = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT,
|
||||||
.pCopySrcLayouts = lvp_host_copy_image_layouts,
|
.pCopySrcLayouts = lvp_host_copy_image_layouts,
|
||||||
.copySrcLayoutCount = ARRAY_SIZE(lvp_host_copy_image_layouts),
|
.copySrcLayoutCount = ARRAY_SIZE(lvp_host_copy_image_layouts),
|
||||||
.pCopyDstLayouts = lvp_host_copy_image_layouts,
|
.pCopyDstLayouts = lvp_host_copy_image_layouts,
|
||||||
@@ -1052,24 +1053,9 @@ lvp_get_properties(const struct lvp_physical_device *device, struct vk_propertie
|
|||||||
.transformFeedbackRasterizationStreamSelect = false,
|
.transformFeedbackRasterizationStreamSelect = false,
|
||||||
.transformFeedbackDraw = true,
|
.transformFeedbackDraw = true,
|
||||||
|
|
||||||
/* VK_KHR_maintenance5 */
|
|
||||||
/* FIXME No idea about most of these ones. */
|
|
||||||
.earlyFragmentMultisampleCoverageAfterSampleCounting = true,
|
|
||||||
.earlyFragmentSampleMaskTestBeforeSampleCounting = false,
|
|
||||||
.depthStencilSwizzleOneSupport = false,
|
|
||||||
.polygonModePointSize = true, /* This one is correct. */
|
|
||||||
.nonStrictSinglePixelWideLinesUseParallelogram = false,
|
|
||||||
.nonStrictWideLinesUseParallelogram = false,
|
|
||||||
|
|
||||||
/* maintenance6 */
|
|
||||||
.maxCombinedImageSamplerDescriptorCount = 3,
|
|
||||||
|
|
||||||
/* VK_EXT_extended_dynamic_state3 */
|
/* VK_EXT_extended_dynamic_state3 */
|
||||||
.dynamicPrimitiveTopologyUnrestricted = VK_TRUE,
|
.dynamicPrimitiveTopologyUnrestricted = VK_TRUE,
|
||||||
|
|
||||||
/* VK_EXT_line_rasterization */
|
|
||||||
.lineSubPixelPrecisionBits = device->pscreen->get_param(device->pscreen, PIPE_CAP_RASTERIZER_SUBPIXEL_BITS),
|
|
||||||
|
|
||||||
/* VK_NV_device_generated_commands */
|
/* VK_NV_device_generated_commands */
|
||||||
.maxGraphicsShaderGroupCount = 1<<12,
|
.maxGraphicsShaderGroupCount = 1<<12,
|
||||||
.maxIndirectSequenceCount = 1<<20,
|
.maxIndirectSequenceCount = 1<<20,
|
||||||
@@ -1105,12 +1091,6 @@ lvp_get_properties(const struct lvp_physical_device *device, struct vk_propertie
|
|||||||
/* VK_EXT_multi_draw */
|
/* VK_EXT_multi_draw */
|
||||||
.maxMultiDrawCount = 2048,
|
.maxMultiDrawCount = 2048,
|
||||||
|
|
||||||
/* VK_EXT_pipeline_robustness */
|
|
||||||
.defaultRobustnessStorageBuffers = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT,
|
|
||||||
.defaultRobustnessUniformBuffers = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT,
|
|
||||||
.defaultRobustnessVertexInputs = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT,
|
|
||||||
.defaultRobustnessImages = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT,
|
|
||||||
|
|
||||||
/* VK_EXT_descriptor_buffer */
|
/* VK_EXT_descriptor_buffer */
|
||||||
.combinedImageSamplerDescriptorSingleArray = VK_TRUE,
|
.combinedImageSamplerDescriptorSingleArray = VK_TRUE,
|
||||||
.bufferlessPushDescriptors = VK_TRUE,
|
.bufferlessPushDescriptors = VK_TRUE,
|
||||||
@@ -1249,20 +1229,17 @@ lvp_get_properties(const struct lvp_physical_device *device, struct vk_propertie
|
|||||||
#endif
|
#endif
|
||||||
);
|
);
|
||||||
|
|
||||||
/* VK_EXT_nested_command_buffer */
|
/* Vulkan 1.4 */
|
||||||
p->maxCommandBufferNestingLevel = UINT32_MAX;
|
|
||||||
|
|
||||||
/* VK_EXT_host_image_copy */
|
|
||||||
lvp_device_get_cache_uuid(p->optimalTilingLayoutUUID);
|
|
||||||
|
|
||||||
/* VK_EXT_vertex_attribute_divisor */
|
|
||||||
if (device->pscreen->get_param(device->pscreen, PIPE_CAP_VERTEX_ELEMENT_INSTANCE_DIVISOR) != 0)
|
if (device->pscreen->get_param(device->pscreen, PIPE_CAP_VERTEX_ELEMENT_INSTANCE_DIVISOR) != 0)
|
||||||
p->maxVertexAttribDivisor = UINT32_MAX;
|
p->maxVertexAttribDivisor = UINT32_MAX;
|
||||||
else
|
else
|
||||||
p->maxVertexAttribDivisor = 1;
|
p->maxVertexAttribDivisor = 1;
|
||||||
|
|
||||||
/* maintenance6 */
|
/* VK_EXT_nested_command_buffer */
|
||||||
p->blockTexelViewCompatibleMultipleLayers = true,
|
p->maxCommandBufferNestingLevel = UINT32_MAX;
|
||||||
|
|
||||||
|
/* VK_EXT_host_image_copy */
|
||||||
|
lvp_device_get_cache_uuid(p->optimalTilingLayoutUUID);
|
||||||
|
|
||||||
/* maintenance7 */
|
/* maintenance7 */
|
||||||
p->robustFragmentShadingRateAttachmentAccess = false;
|
p->robustFragmentShadingRateAttachmentAccess = false;
|
||||||
|
@@ -28,7 +28,7 @@ endif
|
|||||||
|
|
||||||
icd_command = [
|
icd_command = [
|
||||||
prog_python, '@INPUT0@',
|
prog_python, '@INPUT0@',
|
||||||
'--api-version', '1.3', '--xml', '@INPUT1@',
|
'--api-version', '1.4', '--xml', '@INPUT1@',
|
||||||
'--lib-path', join_paths(icd_lib_path, icd_file_name),
|
'--lib-path', join_paths(icd_lib_path, icd_file_name),
|
||||||
'--out', '@OUTPUT@',
|
'--out', '@OUTPUT@',
|
||||||
]
|
]
|
||||||
@@ -54,7 +54,7 @@ _dev_icd = custom_target(
|
|||||||
output : _dev_icdname,
|
output : _dev_icdname,
|
||||||
command : [
|
command : [
|
||||||
prog_python, '@INPUT0@',
|
prog_python, '@INPUT0@',
|
||||||
'--api-version', '1.1', '--xml', '@INPUT1@',
|
'--api-version', '1.4', '--xml', '@INPUT1@',
|
||||||
'--lib-path', meson.current_build_dir() / icd_file_name,
|
'--lib-path', meson.current_build_dir() / icd_file_name,
|
||||||
'--out', '@OUTPUT@',
|
'--out', '@OUTPUT@',
|
||||||
],
|
],
|
||||||
|
Reference in New Issue
Block a user