Hello, I am implementing a ray tracing pipeline using Odin and Vulkan, and I can't get it to work and I think it might be a problem comming from the bindings related to the acceleration structure construction
typedef struct VkAccelerationStructureInstanceKHR {
VkTransformMatrixKHR transform;
uint32_t instanceCustomIndex:24;
uint32_t mask:8;
uint32_t instanceShaderBindingTableRecordOffset:24;
VkGeometryInstanceFlagsKHR flags:8;
uint64_t accelerationStructureReference;
} VkAccelerationStructureInstanceKHR;
AccelerationStructureInstanceKHR :: struct {
transform: TransformMatrixKHR,
instanceCustomIndexAndMask: u32, // Most significant byte is mask
instanceShaderBindingTableRecordOffsetAndFlags: u32, // Most significant byte is flags
accelerationStructureReference: u64,
}
I dont think they are compatible in size. Even the comments I dont think they are correct, wouldnt in this case the mask be the least significant byte or am I missing something?