Skip to content

Commit abd70b2

Browse files
Replaced lvk::AccelStructGeomType with VkGeometryTypeKHR
1 parent 1c2863a commit abd70b2

File tree

6 files changed

+22
-58
lines changed

6 files changed

+22
-58
lines changed

lvk/LVK.h

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -718,20 +718,6 @@ enum AccelStructType : uint8_t {
718718
AccelStructType_BLAS = 2,
719719
};
720720

721-
enum AccelStructGeomType : uint8_t {
722-
AccelStructGeomType_Triangles = 0,
723-
AccelStructGeomType_AABBs = 1,
724-
AccelStructGeomType_Instances = 2,
725-
};
726-
727-
enum AccelStructBuildFlagBits : uint8_t {
728-
AccelStructBuildFlagBits_AllowUpdate = 1 << 0,
729-
AccelStructBuildFlagBits_AllowCompaction = 1 << 1,
730-
AccelStructBuildFlagBits_PreferFastTrace = 1 << 2,
731-
AccelStructBuildFlagBits_PreferFastBuild = 1 << 3,
732-
AccelStructBuildFlagBits_LowMemory = 1 << 4,
733-
};
734-
735721
enum AccelStructGeometryFlagBits : uint8_t {
736722
AccelStructGeometryFlagBits_Opaque = 1 << 0,
737723
AccelStructGeometryFlagBits_NoDuplicateAnyHit = 1 << 1,
@@ -772,7 +758,7 @@ struct AccelStructInstance {
772758

773759
struct AccelStructDesc {
774760
AccelStructType type = AccelStructType_Invalid;
775-
AccelStructGeomType geometryType = AccelStructGeomType_Triangles;
761+
VkGeometryTypeKHR geometryType = VK_GEOMETRY_TYPE_TRIANGLES_KHR;
776762
uint8_t geometryFlags = AccelStructGeometryFlagBits_Opaque;
777763

778764
VkFormat vertexFormat = VK_FORMAT_UNDEFINED;
@@ -784,7 +770,7 @@ struct AccelStructDesc {
784770
BufferHandle transformBuffer;
785771
BufferHandle instancesBuffer;
786772
AccelStructBuildRange buildRange = {};
787-
uint8_t buildFlags = AccelStructBuildFlagBits_PreferFastTrace;
773+
VkBuildAccelerationStructureFlagsKHR buildFlags = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR;
788774
const char* debugName = "";
789775
};
790776

lvk/vulkan/VulkanClasses.cpp

Lines changed: 6 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -247,28 +247,6 @@ VkMemoryPropertyFlags storageTypeToVkMemoryPropertyFlags(lvk::StorageType storag
247247
return memFlags;
248248
}
249249

250-
VkBuildAccelerationStructureFlagsKHR buildFlagsToVkBuildAccelerationStructureFlags(uint8_t buildFlags) {
251-
VkBuildAccelerationStructureFlagsKHR flags = 0;
252-
253-
if (buildFlags & lvk::AccelStructBuildFlagBits_AllowUpdate) {
254-
flags |= VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR;
255-
}
256-
if (buildFlags & lvk::AccelStructBuildFlagBits_AllowCompaction) {
257-
flags |= VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR;
258-
}
259-
if (buildFlags & lvk::AccelStructBuildFlagBits_PreferFastTrace) {
260-
flags |= VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR;
261-
}
262-
if (buildFlags & lvk::AccelStructBuildFlagBits_PreferFastBuild) {
263-
flags |= VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR;
264-
}
265-
if (buildFlags & lvk::AccelStructBuildFlagBits_LowMemory) {
266-
flags |= VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR;
267-
}
268-
269-
return flags;
270-
}
271-
272250
bool supportsFormat(VkPhysicalDevice physicalDevice, VkFormat format) {
273251
VkFormatProperties properties;
274252
vkGetPhysicalDeviceFormatProperties(physicalDevice, format, &properties);
@@ -4204,7 +4182,7 @@ lvk::AccelStructHandle lvk::VulkanContext::createBLAS(const AccelStructDesc& des
42044182
const VkAccelerationStructureBuildGeometryInfoKHR accelerationBuildGeometryInfo{
42054183
.sType = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR,
42064184
.type = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR,
4207-
.flags = buildFlagsToVkBuildAccelerationStructureFlags(desc.buildFlags),
4185+
.flags = desc.buildFlags,
42084186
.mode = VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR,
42094187
.dstAccelerationStructure = accelStruct.vkHandle,
42104188
.geometryCount = 1,
@@ -4279,15 +4257,15 @@ lvk::AccelStructHandle lvk::VulkanContext::createTLAS(const AccelStructDesc& des
42794257
const VkAccelerationStructureBuildGeometryInfoKHR accelerationBuildGeometryInfo = {
42804258
.sType = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR,
42814259
.type = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR,
4282-
.flags = buildFlagsToVkBuildAccelerationStructureFlags(desc.buildFlags),
4260+
.flags = desc.buildFlags,
42834261
.mode = VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR,
42844262
.dstAccelerationStructure = accelStruct.vkHandle,
42854263
.geometryCount = 1,
42864264
.pGeometries = &accelerationStructureGeometry,
42874265
.scratchData = {.deviceAddress = getAlignedAddress(gpuAddress(scratchBuffer),
42884266
accelerationStructureProperties_.minAccelerationStructureScratchOffsetAlignment)},
42894267
};
4290-
if (desc.buildFlags & lvk::AccelStructBuildFlagBits_AllowUpdate) {
4268+
if (desc.buildFlags & VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR) {
42914269
// Store scratch buffer for future updates
42924270
accelStruct.scratchBuffer = std::move(scratchBuffer);
42934271
}
@@ -6138,7 +6116,7 @@ void lvk::VulkanContext::getBuildInfoBLAS(const AccelStructDesc& desc,
61386116
VkAccelerationStructureGeometryKHR& outGeometry,
61396117
VkAccelerationStructureBuildSizesInfoKHR& outSizesInfo) const {
61406118
LVK_ASSERT(desc.type == AccelStructType_BLAS);
6141-
LVK_ASSERT(desc.geometryType == AccelStructGeomType_Triangles);
6119+
LVK_ASSERT(desc.geometryType == VK_GEOMETRY_TYPE_TRIANGLES_KHR);
61426120
LVK_ASSERT(desc.numVertices);
61436121
LVK_ASSERT(desc.indexBuffer.valid());
61446122
LVK_ASSERT(desc.vertexBuffer.valid());
@@ -6202,7 +6180,7 @@ void lvk::VulkanContext::getBuildInfoTLAS(const AccelStructDesc& desc,
62026180
VkAccelerationStructureGeometryKHR& outGeometry,
62036181
VkAccelerationStructureBuildSizesInfoKHR& outSizesInfo) const {
62046182
LVK_ASSERT(desc.type == AccelStructType_TLAS);
6205-
LVK_ASSERT(desc.geometryType == AccelStructGeomType_Instances);
6183+
LVK_ASSERT(desc.geometryType == VK_GEOMETRY_TYPE_INSTANCES_KHR);
62066184
LVK_ASSERT(desc.numVertices == 0);
62076185
LVK_ASSERT(desc.instancesBuffer.valid());
62086186
LVK_ASSERT(desc.buildRange.primitiveCount);
@@ -6235,7 +6213,7 @@ void lvk::VulkanContext::getBuildInfoTLAS(const AccelStructDesc& desc,
62356213
const VkAccelerationStructureBuildGeometryInfoKHR accelerationStructureBuildGeometryInfo = {
62366214
.sType = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR,
62376215
.type = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR,
6238-
.flags = buildFlagsToVkBuildAccelerationStructureFlags(desc.buildFlags),
6216+
.flags = desc.buildFlags,
62396217
.geometryCount = 1,
62406218
.pGeometries = &outGeometry,
62416219
};

samples/RTX_001_Hello.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,7 @@ void createBottomLevelAccelerationStructure() {
240240

241241
res.BLAS = ctx_->createAccelerationStructure({
242242
.type = lvk::AccelStructType_BLAS,
243-
.geometryType = lvk::AccelStructGeomType_Triangles,
243+
.geometryType = VK_GEOMETRY_TYPE_TRIANGLES_KHR,
244244
.vertexFormat = VK_FORMAT_R32G32B32_SFLOAT,
245245
.vertexBuffer = res.vertexBuffer,
246246
.numVertices = (uint32_t)LVK_ARRAY_NUM_ELEMENTS(vertices),
@@ -277,10 +277,10 @@ void createTopLevelAccelerationStructure() {
277277

278278
res.TLAS = ctx_->createAccelerationStructure({
279279
.type = lvk::AccelStructType_TLAS,
280-
.geometryType = lvk::AccelStructGeomType_Instances,
280+
.geometryType = VK_GEOMETRY_TYPE_INSTANCES_KHR,
281281
.instancesBuffer = res.instancesBuffer,
282282
.buildRange = {.primitiveCount = 1},
283-
.buildFlags = lvk::AccelStructBuildFlagBits_PreferFastTrace | lvk::AccelStructBuildFlagBits_AllowUpdate,
283+
.buildFlags = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR | VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,
284284
});
285285
}
286286

samples/RTX_002_AO.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -763,7 +763,7 @@ bool initModel(const std::string& folderContentRoot) {
763763
const uint32_t totalPrimitiveCount = (uint32_t)indexData_.size() / 3;
764764
lvk::AccelStructDesc blasDesc{
765765
.type = lvk::AccelStructType_BLAS,
766-
.geometryType = lvk::AccelStructGeomType_Triangles,
766+
.geometryType = VK_GEOMETRY_TYPE_TRIANGLES_KHR,
767767
.vertexFormat = VK_FORMAT_R32G32B32_SFLOAT,
768768
.vertexBuffer = res.vb0_,
769769
.vertexStride = sizeof(VertexData),
@@ -772,7 +772,7 @@ bool initModel(const std::string& folderContentRoot) {
772772
.indexBuffer = res.ib0_,
773773
.transformBuffer = transformBuffer,
774774
.buildRange = {.primitiveCount = totalPrimitiveCount},
775-
.buildFlags = lvk::AccelStructBuildFlagBits_PreferFastTrace,
775+
.buildFlags = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,
776776
.debugName = "BLAS",
777777
};
778778
const lvk::AccelStructSizes blasSizes = ctx_->getAccelStructSizes(blasDesc);
@@ -824,10 +824,10 @@ bool initModel(const std::string& folderContentRoot) {
824824

825825
res.TLAS = ctx_->createAccelerationStructure({
826826
.type = lvk::AccelStructType_TLAS,
827-
.geometryType = lvk::AccelStructGeomType_Instances,
827+
.geometryType = VK_GEOMETRY_TYPE_INSTANCES_KHR,
828828
.instancesBuffer = res.sbInstances_,
829829
.buildRange = {.primitiveCount = (uint32_t)instances.size()},
830-
.buildFlags = lvk::AccelStructBuildFlagBits_PreferFastTrace,
830+
.buildFlags = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,
831831
});
832832

833833
return true;

samples/RTX_003_Pipeline.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -522,7 +522,7 @@ bool initModel(const std::string& folderContentRoot) {
522522
const auto totalPrimitiveCount = (uint32_t)indexData_.size() / 3;
523523
lvk::AccelStructDesc blasDesc{
524524
.type = lvk::AccelStructType_BLAS,
525-
.geometryType = lvk::AccelStructGeomType_Triangles,
525+
.geometryType = VK_GEOMETRY_TYPE_TRIANGLES_KHR,
526526
.vertexFormat = VK_FORMAT_R32G32B32_SFLOAT,
527527
.vertexBuffer = res.vb0_,
528528
.vertexStride = sizeof(VertexData),
@@ -531,7 +531,7 @@ bool initModel(const std::string& folderContentRoot) {
531531
.indexBuffer = res.ib0_,
532532
.transformBuffer = transformBuffer,
533533
.buildRange = {.primitiveCount = totalPrimitiveCount},
534-
.buildFlags = lvk::AccelStructBuildFlagBits_PreferFastTrace,
534+
.buildFlags = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,
535535
.debugName = "BLAS",
536536
};
537537
const lvk::AccelStructSizes blasSizes = ctx_->getAccelStructSizes(blasDesc);
@@ -583,10 +583,10 @@ bool initModel(const std::string& folderContentRoot) {
583583

584584
res.TLAS_ = ctx_->createAccelerationStructure({
585585
.type = lvk::AccelStructType_TLAS,
586-
.geometryType = lvk::AccelStructGeomType_Instances,
586+
.geometryType = VK_GEOMETRY_TYPE_INSTANCES_KHR,
587587
.instancesBuffer = res.sbInstances_,
588588
.buildRange = {.primitiveCount = (uint32_t)instances.size()},
589-
.buildFlags = lvk::AccelStructBuildFlagBits_PreferFastTrace,
589+
.buildFlags = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,
590590
});
591591

592592
return true;

samples/RTX_004_Textures.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -312,7 +312,7 @@ void createBottomLevelAccelerationStructure() {
312312

313313
res.BLAS = ctx_->createAccelerationStructure({
314314
.type = lvk::AccelStructType_BLAS,
315-
.geometryType = lvk::AccelStructGeomType_Triangles,
315+
.geometryType = VK_GEOMETRY_TYPE_TRIANGLES_KHR,
316316
.vertexFormat = VK_FORMAT_R32G32B32_SFLOAT,
317317
.vertexBuffer = res.vertexBuffer,
318318
.numVertices = (uint32_t)LVK_ARRAY_NUM_ELEMENTS(vertices),
@@ -349,10 +349,10 @@ void createTopLevelAccelerationStructure() {
349349

350350
res.TLAS = ctx_->createAccelerationStructure({
351351
.type = lvk::AccelStructType_TLAS,
352-
.geometryType = lvk::AccelStructGeomType_Instances,
352+
.geometryType = VK_GEOMETRY_TYPE_INSTANCES_KHR,
353353
.instancesBuffer = res.instancesBuffer,
354354
.buildRange = {.primitiveCount = 1},
355-
.buildFlags = lvk::AccelStructBuildFlagBits_PreferFastTrace | lvk::AccelStructBuildFlagBits_AllowUpdate,
355+
.buildFlags = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR | VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,
356356
});
357357
}
358358

0 commit comments

Comments
 (0)