Skip to content

Commit c2ce196

Browse files
Replaced lvk::AccelStructGeomType with VkGeometryTypeKHR
1 parent a675dbd commit c2ce196

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
@@ -727,20 +727,6 @@ enum AccelStructType : uint8_t {
727727
AccelStructType_BLAS = 2,
728728
};
729729

730-
enum AccelStructGeomType : uint8_t {
731-
AccelStructGeomType_Triangles = 0,
732-
AccelStructGeomType_AABBs = 1,
733-
AccelStructGeomType_Instances = 2,
734-
};
735-
736-
enum AccelStructBuildFlagBits : uint8_t {
737-
AccelStructBuildFlagBits_AllowUpdate = 1 << 0,
738-
AccelStructBuildFlagBits_AllowCompaction = 1 << 1,
739-
AccelStructBuildFlagBits_PreferFastTrace = 1 << 2,
740-
AccelStructBuildFlagBits_PreferFastBuild = 1 << 3,
741-
AccelStructBuildFlagBits_LowMemory = 1 << 4,
742-
};
743-
744730
enum AccelStructGeometryFlagBits : uint8_t {
745731
AccelStructGeometryFlagBits_Opaque = 1 << 0,
746732
AccelStructGeometryFlagBits_NoDuplicateAnyHit = 1 << 1,
@@ -781,7 +767,7 @@ struct AccelStructInstance {
781767

782768
struct AccelStructDesc {
783769
AccelStructType type = AccelStructType_Invalid;
784-
AccelStructGeomType geometryType = AccelStructGeomType_Triangles;
770+
VkGeometryTypeKHR geometryType = VK_GEOMETRY_TYPE_TRIANGLES_KHR;
785771
uint8_t geometryFlags = AccelStructGeometryFlagBits_Opaque;
786772

787773
VkFormat vertexFormat = VK_FORMAT_UNDEFINED;
@@ -793,7 +779,7 @@ struct AccelStructDesc {
793779
BufferHandle transformBuffer;
794780
BufferHandle instancesBuffer;
795781
AccelStructBuildRange buildRange = {};
796-
uint8_t buildFlags = AccelStructBuildFlagBits_PreferFastTrace;
782+
VkBuildAccelerationStructureFlagsKHR buildFlags = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR;
797783
const char* debugName = "";
798784
};
799785

lvk/vulkan/VulkanClasses.cpp

Lines changed: 6 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -229,28 +229,6 @@ VkMemoryPropertyFlags storageTypeToVkMemoryPropertyFlags(lvk::StorageType storag
229229
return memFlags;
230230
}
231231

232-
VkBuildAccelerationStructureFlagsKHR buildFlagsToVkBuildAccelerationStructureFlags(uint8_t buildFlags) {
233-
VkBuildAccelerationStructureFlagsKHR flags = 0;
234-
235-
if (buildFlags & lvk::AccelStructBuildFlagBits_AllowUpdate) {
236-
flags |= VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR;
237-
}
238-
if (buildFlags & lvk::AccelStructBuildFlagBits_AllowCompaction) {
239-
flags |= VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR;
240-
}
241-
if (buildFlags & lvk::AccelStructBuildFlagBits_PreferFastTrace) {
242-
flags |= VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR;
243-
}
244-
if (buildFlags & lvk::AccelStructBuildFlagBits_PreferFastBuild) {
245-
flags |= VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR;
246-
}
247-
if (buildFlags & lvk::AccelStructBuildFlagBits_LowMemory) {
248-
flags |= VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR;
249-
}
250-
251-
return flags;
252-
}
253-
254232
bool supportsFormat(VkPhysicalDevice physicalDevice, VkFormat format) {
255233
VkFormatProperties properties;
256234
vkGetPhysicalDeviceFormatProperties(physicalDevice, format, &properties);
@@ -4290,7 +4268,7 @@ lvk::AccelStructHandle lvk::VulkanContext::createBLAS(const AccelStructDesc& des
42904268
const VkAccelerationStructureBuildGeometryInfoKHR accelerationBuildGeometryInfo{
42914269
.sType = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR,
42924270
.type = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR,
4293-
.flags = buildFlagsToVkBuildAccelerationStructureFlags(desc.buildFlags),
4271+
.flags = desc.buildFlags,
42944272
.mode = VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR,
42954273
.dstAccelerationStructure = accelStruct.vkHandle,
42964274
.geometryCount = 1,
@@ -4365,15 +4343,15 @@ lvk::AccelStructHandle lvk::VulkanContext::createTLAS(const AccelStructDesc& des
43654343
const VkAccelerationStructureBuildGeometryInfoKHR accelerationBuildGeometryInfo = {
43664344
.sType = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR,
43674345
.type = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR,
4368-
.flags = buildFlagsToVkBuildAccelerationStructureFlags(desc.buildFlags),
4346+
.flags = desc.buildFlags,
43694347
.mode = VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR,
43704348
.dstAccelerationStructure = accelStruct.vkHandle,
43714349
.geometryCount = 1,
43724350
.pGeometries = &accelerationStructureGeometry,
43734351
.scratchData = {.deviceAddress = getAlignedAddress(gpuAddress(scratchBuffer),
43744352
accelerationStructureProperties_.minAccelerationStructureScratchOffsetAlignment)},
43754353
};
4376-
if (desc.buildFlags & lvk::AccelStructBuildFlagBits_AllowUpdate) {
4354+
if (desc.buildFlags & VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR) {
43774355
// Store scratch buffer for future updates
43784356
accelStruct.scratchBuffer = std::move(scratchBuffer);
43794357
}
@@ -6216,7 +6194,7 @@ void lvk::VulkanContext::getBuildInfoBLAS(const AccelStructDesc& desc,
62166194
VkAccelerationStructureGeometryKHR& outGeometry,
62176195
VkAccelerationStructureBuildSizesInfoKHR& outSizesInfo) const {
62186196
LVK_ASSERT(desc.type == AccelStructType_BLAS);
6219-
LVK_ASSERT(desc.geometryType == AccelStructGeomType_Triangles);
6197+
LVK_ASSERT(desc.geometryType == VK_GEOMETRY_TYPE_TRIANGLES_KHR);
62206198
LVK_ASSERT(desc.numVertices);
62216199
LVK_ASSERT(desc.indexBuffer.valid());
62226200
LVK_ASSERT(desc.vertexBuffer.valid());
@@ -6280,7 +6258,7 @@ void lvk::VulkanContext::getBuildInfoTLAS(const AccelStructDesc& desc,
62806258
VkAccelerationStructureGeometryKHR& outGeometry,
62816259
VkAccelerationStructureBuildSizesInfoKHR& outSizesInfo) const {
62826260
LVK_ASSERT(desc.type == AccelStructType_TLAS);
6283-
LVK_ASSERT(desc.geometryType == AccelStructGeomType_Instances);
6261+
LVK_ASSERT(desc.geometryType == VK_GEOMETRY_TYPE_INSTANCES_KHR);
62846262
LVK_ASSERT(desc.numVertices == 0);
62856263
LVK_ASSERT(desc.instancesBuffer.valid());
62866264
LVK_ASSERT(desc.buildRange.primitiveCount);
@@ -6313,7 +6291,7 @@ void lvk::VulkanContext::getBuildInfoTLAS(const AccelStructDesc& desc,
63136291
const VkAccelerationStructureBuildGeometryInfoKHR accelerationStructureBuildGeometryInfo = {
63146292
.sType = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR,
63156293
.type = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR,
6316-
.flags = buildFlagsToVkBuildAccelerationStructureFlags(desc.buildFlags),
6294+
.flags = desc.buildFlags,
63176295
.geometryCount = 1,
63186296
.pGeometries = &outGeometry,
63196297
};

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)