mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 02:58:05 +02:00
lavapipe: Advertise VK_KHR_acceleration_structure
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25616>
This commit is contained in:
parent
09bf35e3c4
commit
32e86e1bff
2 changed files with 41 additions and 1 deletions
|
|
@ -96,6 +96,7 @@ static const struct vk_instance_extension_table lvp_instance_extensions_supporte
|
|||
static const struct vk_device_extension_table lvp_device_extensions_supported = {
|
||||
.KHR_8bit_storage = true,
|
||||
.KHR_16bit_storage = true,
|
||||
.KHR_acceleration_structure = true,
|
||||
.KHR_bind_memory2 = true,
|
||||
.KHR_buffer_device_address = true,
|
||||
.KHR_create_renderpass2 = true,
|
||||
|
|
@ -396,6 +397,13 @@ lvp_get_features(const struct lvp_physical_device *pdevice,
|
|||
.shaderIntegerDotProduct = true,
|
||||
.maintenance4 = true,
|
||||
|
||||
/* VK_KHR_acceleration_structure */
|
||||
.accelerationStructure = true,
|
||||
.accelerationStructureCaptureReplay = false,
|
||||
.accelerationStructureIndirectBuild = false,
|
||||
.accelerationStructureHostCommands = false,
|
||||
.descriptorBindingAccelerationStructureUpdateAfterBind = true,
|
||||
|
||||
/* VK_EXT_descriptor_buffer */
|
||||
.descriptorBuffer = true,
|
||||
.descriptorBufferCaptureReplay = false,
|
||||
|
|
@ -994,7 +1002,7 @@ lvp_get_properties(const struct lvp_physical_device *device, struct vk_propertie
|
|||
.storageBufferDescriptorSize = sizeof(struct lp_descriptor),
|
||||
.robustStorageBufferDescriptorSize = sizeof(struct lp_descriptor),
|
||||
.inputAttachmentDescriptorSize = sizeof(struct lp_descriptor),
|
||||
.accelerationStructureDescriptorSize = 0,
|
||||
.accelerationStructureDescriptorSize = sizeof(struct lp_descriptor),
|
||||
.maxSamplerDescriptorBufferRange = UINT32_MAX,
|
||||
.maxResourceDescriptorBufferRange = UINT32_MAX,
|
||||
.resourceDescriptorBufferAddressSpaceSize = UINT32_MAX,
|
||||
|
|
@ -1053,6 +1061,16 @@ lvp_get_properties(const struct lvp_physical_device *device, struct vk_propertie
|
|||
.maxExecutionGraphShaderPayloadCount = LVP_MAX_EXEC_GRAPH_PAYLOADS,
|
||||
.executionGraphDispatchAddressAlignment = 4,
|
||||
#endif
|
||||
|
||||
/* VK_KHR_acceleration_structure */
|
||||
.maxGeometryCount = (1 << 24) - 1,
|
||||
.maxInstanceCount = (1 << 24) - 1,
|
||||
.maxPrimitiveCount = (1 << 24) - 1,
|
||||
.maxPerStageDescriptorAccelerationStructures = MAX_DESCRIPTORS,
|
||||
.maxPerStageDescriptorUpdateAfterBindAccelerationStructures = MAX_DESCRIPTORS,
|
||||
.maxDescriptorSetAccelerationStructures = MAX_DESCRIPTORS,
|
||||
.maxDescriptorSetUpdateAfterBindAccelerationStructures = MAX_DESCRIPTORS,
|
||||
.minAccelerationStructureScratchOffsetAlignment = 128,
|
||||
};
|
||||
|
||||
/* Vulkan 1.0 */
|
||||
|
|
|
|||
|
|
@ -204,6 +204,28 @@ lvp_physical_device_get_format_properties(struct lvp_physical_device *physical_d
|
|||
VK_FORMAT_FEATURE_2_BLIT_DST_BIT);
|
||||
}
|
||||
|
||||
switch (format) {
|
||||
case VK_FORMAT_R32G32_SFLOAT:
|
||||
case VK_FORMAT_R32G32B32_SFLOAT:
|
||||
case VK_FORMAT_R32G32B32A32_SFLOAT:
|
||||
case VK_FORMAT_R16G16_SFLOAT:
|
||||
case VK_FORMAT_R16G16B16_SFLOAT:
|
||||
case VK_FORMAT_R16G16B16A16_SFLOAT:
|
||||
case VK_FORMAT_R16G16_SNORM:
|
||||
case VK_FORMAT_R16G16_UNORM:
|
||||
case VK_FORMAT_R16G16B16A16_SNORM:
|
||||
case VK_FORMAT_R16G16B16A16_UNORM:
|
||||
case VK_FORMAT_R8G8_SNORM:
|
||||
case VK_FORMAT_R8G8_UNORM:
|
||||
case VK_FORMAT_R8G8B8A8_SNORM:
|
||||
case VK_FORMAT_R8G8B8A8_UNORM:
|
||||
case VK_FORMAT_A2B10G10R10_UNORM_PACK32:
|
||||
buffer_features |= VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
out_properties->linearTilingFeatures = features;
|
||||
out_properties->optimalTilingFeatures = features;
|
||||
out_properties->bufferFeatures = buffer_features;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue