Skip to content

False error with acceleration structure and descriptor heap #12068

@Onhi

Description

@Onhi

Environment:

  • OS: window 11
  • GPU and driver version: rtx4090 595.97
  • SDK or header version if building from repo: vulkan-sdk-1.4.341
  • Options enabled (synchronization, best practices, etc.): validation layer

Describe the Issue

Creating 2 top level acceleration structures sharing the same device address at different offsets. Destroying one of the 2 then creating a descriptor of the other one result in a validation error.

(the validator is probably using bound buffer's "address" instead of "address+offset" as discriminant)
(check vkBindBufferMemory in the API dump)

Pseudo code:

{
	auto tlas_a{ GPU::Device::singleton().createAccelerationStructure(GPU::topLevelAccelerationStructureInfo(0)) };
	auto tlas_b{ GPU::Device::singleton().createAccelerationStructure(GPU::topLevelAccelerationStructureInfo(0)) };
	tlas_a = {};
	GPU::Device::singleton().waitForIdle();
	GPU::Device::singleton().executeCallbacks(); // calls the destruction of tlas_a
	auto asd{ GPU::accelerationStructureDescriptor(tlas_b) };
	auto rd{ GPU::resourceDescriptor(&asd) };
	auto desc{ GPU::Device::singleton().createDescriptors(1, &rd) };
}

Expected behavior

This should not result in a validation error

Additional context

code or terminal output - repro API dump
vkWriteResourceDescriptorsEXT(): pResources[0].data.pAddressRange->address is 0xc200400 which is not an address obtained from a currently existing VkAccelerationStructureKHR after a call to vkGetAccelerationStructureDeviceAddressKHR.
The Vulkan spec states: If type is VK_DESCRIPTOR_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_NV or VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR, and data.pAddressRange is not NULL, data.pAddressRange->address must be an acceleration structure address retrieved from a VkAccelerationStructureKHR object via vkGetAccelerationStructureDeviceAddressKHR (https://docs.vulkan.org/spec/latest/chapters/descriptorheaps.html#VUID-VkResourceDescriptorInfoEXT-type-11483)
Thread 2, Frame 0:
vkGetAccelerationStructureBuildSizesKHR(device, buildType, pBuildInfo, pMaxPrimitiveCounts, pSizeInfo) returns void:
    device:                         VkDevice = 0000017942BEB270
    buildType:                      VkAccelerationStructureBuildTypeKHR = VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR (1)
    pBuildInfo:                     const VkAccelerationStructureBuildGeometryInfoKHR* = 00000065879FB060:
        sType:                          VkStructureType = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR (1000150000)
        pNext:                          const void* = NULL
        type:                           VkAccelerationStructureTypeKHR = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR (0)
        flags:                          VkBuildAccelerationStructureFlagsKHR = 4 (VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR)
        mode:                           VkBuildAccelerationStructureModeKHR = VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR (0)
        srcAccelerationStructure:       VkAccelerationStructureKHR = 0000000000000000
        dstAccelerationStructure:       VkAccelerationStructureKHR = 0000000000000000
        geometryCount:                  uint32_t = 1
        pGeometries:                    const VkAccelerationStructureGeometryKHR* = 00000065879FB640
            pGeometries[0]:                 const VkAccelerationStructureGeometryKHR = 00000065879FB640:
                sType:                          VkStructureType = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR (1000150006)
                pNext:                          const void* = NULL
                geometryType:                   VkGeometryTypeKHR = VK_GEOMETRY_TYPE_INSTANCES_KHR (2)
                geometry:                       VkAccelerationStructureGeometryDataKHR = 0000000000000000 (Union):
                    triangles:                      VkAccelerationStructureGeometryTrianglesDataKHR = 0000000000000000:
                        sType:                          VkStructureType = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR (1000150004)
                        pNext:                          const void* = NULL
                        vertexFormat:                   VkFormat = VK_FORMAT_UNDEFINED (0)
                        vertexData:                     VkDeviceOrHostAddressConstKHR = 0000000000000000 (Union):
                            deviceAddress:                  VkDeviceAddress = 0x0
                            hostAddress:                    const void* = NULL
                        vertexStride:                   VkDeviceSize = 0
                        maxVertex:                      uint32_t = 0
                        indexType:                      VkIndexType = VK_INDEX_TYPE_UINT16 (0)
                        indexData:                      VkDeviceOrHostAddressConstKHR = 0000000000000000 (Union):
                            deviceAddress:                  VkDeviceAddress = 0x0
                            hostAddress:                    const void* = NULL
                        transformData:                  VkDeviceOrHostAddressConstKHR = 0000000000000000 (Union):
                            deviceAddress:                  VkDeviceAddress = 0x0
                            hostAddress:                    const void* = NULL
                    aabbs:                          VkAccelerationStructureGeometryAabbsDataKHR = 0000000000000000:
                        sType:                          VkStructureType = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR (1000150004)
                        pNext:                          const void* = NULL
                        data:                           VkDeviceOrHostAddressConstKHR = 0000000000000000 (Union):
                            deviceAddress:                  VkDeviceAddress = 0x0
                            hostAddress:                    const void* = NULL
                        stride:                         VkDeviceSize = 0
                    instances:                      VkAccelerationStructureGeometryInstancesDataKHR = 0000000000000000:
                        sType:                          VkStructureType = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR (1000150004)
                        pNext:                          const void* = NULL
                        arrayOfPointers:                VkBool32 = 0
                        data:                           VkDeviceOrHostAddressConstKHR = 0000000000000000 (Union):
                            deviceAddress:                  VkDeviceAddress = 0x0
                            hostAddress:                    const void* = NULL
                flags:                          VkGeometryFlagsKHR = 0
        ppGeometries:                   const VkAccelerationStructureGeometryKHR* const* = NULL
        scratchData:                    VkDeviceOrHostAddressKHR = 0000000000000000 (Union):
            deviceAddress:                  VkDeviceAddress = 0x0
            hostAddress:                    void* = NULL
    pMaxPrimitiveCounts:            const uint32_t* = 00000065879FB6B4
        pMaxPrimitiveCounts[0]:         const uint32_t = 0
    pSizeInfo:                      VkAccelerationStructureBuildSizesInfoKHR* = 00000065879FB7D0:
        sType:                          VkStructureType = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR (1000150020)
        pNext:                          void* = NULL
        accelerationStructureSize:      VkDeviceSize = 640
        updateScratchSize:              VkDeviceSize = 0
        buildScratchSize:               VkDeviceSize = 1792

Thread 2, Frame 0:
vkCreateBuffer(device, pCreateInfo, pAllocator, pBuffer) returns VkResult VK_SUCCESS (0):
    device:                         VkDevice = 0000017942BEB270
    pCreateInfo:                    const VkBufferCreateInfo* = 00000065879FAD58:
        sType:                          VkStructureType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO (12)
        pNext:                          const void* = NULL
        flags:                          VkBufferCreateFlags = 0
        size:                           VkDeviceSize = 640
        usage:                          VkBufferUsageFlags = 1179648 (VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT | VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR)
        sharingMode:                    VkSharingMode = VK_SHARING_MODE_CONCURRENT (1)
        queueFamilyIndexCount:          uint32_t = 2
        pQueueFamilyIndices:            const uint32_t* = 00000065868FF3F4
            pQueueFamilyIndices[0]:         const uint32_t = 0
            pQueueFamilyIndices[1]:         const uint32_t = 2
    pAllocator:                     const VkAllocationCallbacks* = NULL
    pBuffer:                        VkBuffer* = 000002B954F6DC90

Thread 2, Frame 0:
vkGetBufferMemoryRequirements(device, buffer, pMemoryRequirements) returns void:
    device:                         VkDevice = 0000017942BEB270
    buffer:                         VkBuffer = 000002B954F6DC90
    pMemoryRequirements:            VkMemoryRequirements* = 00000065879FB428:
        size:                           VkDeviceSize = 768
        alignment:                      VkDeviceSize = 256
        memoryTypeBits:                 uint32_t = 31

Thread 3, Frame 0:
vkGetSemaphoreCounterValue(device, semaphore, pValue) returns VkResult VK_SUCCESS (0):
    device:                         VkDevice = 0000017942BEB270
    semaphore:                      VkSemaphore = 000002B9510BAB70
    pValue:                         uint64_t* = 0

Thread 3, Frame 0:
vkGetSemaphoreCounterValue(device, semaphore, pValue) returns VkResult VK_SUCCESS (0):
    device:                         VkDevice = 0000017942BEB270
    semaphore:                      VkSemaphore = 000002B9510BC330
    pValue:                         uint64_t* = 0

Thread 3, Frame 0:
vkGetSemaphoreCounterValue(device, semaphore, pValue) returns VkResult VK_SUCCESS (0):
    device:                         VkDevice = 0000017942BEB270
    semaphore:                      VkSemaphore = 000002B9510BB880
    pValue:                         uint64_t* = 0

Thread 2, Frame 0:
vkAllocateMemory(device, pAllocateInfo, pAllocator, pMemory) returns VkResult VK_SUCCESS (0):
    device:                         VkDevice = 0000017942BEB270
    pAllocateInfo:                  const VkMemoryAllocateInfo* = 00000065879FA1E8:
        sType:                          VkStructureType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO (5)
        pNext:                          const void* = VkMemoryAllocateFlagsInfo
        allocationSize:                 VkDeviceSize = 268435456
        memoryTypeIndex:                uint32_t = 1
        pNext:                          VkMemoryAllocateFlagsInfo = 00000065879FA1B8:
            sType:                          VkStructureType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO (1000060000)
            pNext:                          const void* = NULL
            flags:                          VkMemoryAllocateFlags = 2 (VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT)
            deviceMask:                     uint32_t = 0
    pAllocator:                     const VkAllocationCallbacks* = NULL
    pMemory:                        VkDeviceMemory* = 000002B954F6E080

Thread 2, Frame 0:
vkBindBufferMemory(device, buffer, memory, memoryOffset) returns VkResult VK_SUCCESS (0):
    device:                         VkDevice = 0000017942BEB270
    buffer:                         VkBuffer = 000002B954F6DC90
    memory:                         VkDeviceMemory = 000002B954F6E080
    memoryOffset:                   VkDeviceSize = 0

Thread 2, Frame 0:
vkCreateAccelerationStructureKHR(device, pCreateInfo, pAllocator, pAccelerationStructure) returns VkResult VK_SUCCESS (0):
    device:                         VkDevice = 0000017942BEB270
    pCreateInfo:                    const VkAccelerationStructureCreateInfoKHR* = 00000065879FB0D0:
        sType:                          VkStructureType = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR (1000150017)
        pNext:                          const void* = NULL
        createFlags:                    VkAccelerationStructureCreateFlagsKHR = 0
        buffer:                         VkBuffer = 000002B954F6DC90
        offset:                         VkDeviceSize = 0
        size:                           VkDeviceSize = 640
        type:                           VkAccelerationStructureTypeKHR = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR (0)
        deviceAddress:                  VkDeviceAddress = 0x0
    pAllocator:                     const VkAllocationCallbacks* = NULL
    pAccelerationStructure:         VkAccelerationStructureKHR* = 000002B956862300

Thread 2, Frame 0:
vkGetAccelerationStructureDeviceAddressKHR(device, pInfo) returns VkDeviceAddress 0xc200000:
    device:                         VkDevice = 0000017942BEB270
    pInfo:                          const VkAccelerationStructureDeviceAddressInfoKHR* = 00000065879FB248:
        sType:                          VkStructureType = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR (1000150002)
        pNext:                          const void* = NULL
        accelerationStructure:          VkAccelerationStructureKHR = 000002B956862300

Thread 2, Frame 0:
vkGetAccelerationStructureBuildSizesKHR(device, buildType, pBuildInfo, pMaxPrimitiveCounts, pSizeInfo) returns void:
    device:                         VkDevice = 0000017942BEB270
    buildType:                      VkAccelerationStructureBuildTypeKHR = VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR (1)
    pBuildInfo:                     const VkAccelerationStructureBuildGeometryInfoKHR* = 00000065879FB060:
        sType:                          VkStructureType = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR (1000150000)
        pNext:                          const void* = NULL
        type:                           VkAccelerationStructureTypeKHR = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR (0)
        flags:                          VkBuildAccelerationStructureFlagsKHR = 4 (VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR)
        mode:                           VkBuildAccelerationStructureModeKHR = VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR (0)
        srcAccelerationStructure:       VkAccelerationStructureKHR = 0000000000000000
        dstAccelerationStructure:       VkAccelerationStructureKHR = 0000000000000000
        geometryCount:                  uint32_t = 1
        pGeometries:                    const VkAccelerationStructureGeometryKHR* = 00000065879FB640
            pGeometries[0]:                 const VkAccelerationStructureGeometryKHR = 00000065879FB640:
                sType:                          VkStructureType = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR (1000150006)
                pNext:                          const void* = NULL
                geometryType:                   VkGeometryTypeKHR = VK_GEOMETRY_TYPE_INSTANCES_KHR (2)
                geometry:                       VkAccelerationStructureGeometryDataKHR = 0000000000000000 (Union):
                    triangles:                      VkAccelerationStructureGeometryTrianglesDataKHR = 0000000000000000:
                        sType:                          VkStructureType = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR (1000150004)
                        pNext:                          const void* = NULL
                        vertexFormat:                   VkFormat = VK_FORMAT_UNDEFINED (0)
                        vertexData:                     VkDeviceOrHostAddressConstKHR = 0000000000000000 (Union):
                            deviceAddress:                  VkDeviceAddress = 0x0
                            hostAddress:                    const void* = NULL
                        vertexStride:                   VkDeviceSize = 0
                        maxVertex:                      uint32_t = 0
                        indexType:                      VkIndexType = VK_INDEX_TYPE_UINT16 (0)
                        indexData:                      VkDeviceOrHostAddressConstKHR = 0000000000000000 (Union):
                            deviceAddress:                  VkDeviceAddress = 0x0
                            hostAddress:                    const void* = NULL
                        transformData:                  VkDeviceOrHostAddressConstKHR = 0000000000000000 (Union):
                            deviceAddress:                  VkDeviceAddress = 0x0
                            hostAddress:                    const void* = NULL
                    aabbs:                          VkAccelerationStructureGeometryAabbsDataKHR = 0000000000000000:
                        sType:                          VkStructureType = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR (1000150004)
                        pNext:                          const void* = NULL
                        data:                           VkDeviceOrHostAddressConstKHR = 0000000000000000 (Union):
                            deviceAddress:                  VkDeviceAddress = 0x0
                            hostAddress:                    const void* = NULL
                        stride:                         VkDeviceSize = 0
                    instances:                      VkAccelerationStructureGeometryInstancesDataKHR = 0000000000000000:
                        sType:                          VkStructureType = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR (1000150004)
                        pNext:                          const void* = NULL
                        arrayOfPointers:                VkBool32 = 0
                        data:                           VkDeviceOrHostAddressConstKHR = 0000000000000000 (Union):
                            deviceAddress:                  VkDeviceAddress = 0x0
                            hostAddress:                    const void* = NULL
                flags:                          VkGeometryFlagsKHR = 0
        ppGeometries:                   const VkAccelerationStructureGeometryKHR* const* = NULL
        scratchData:                    VkDeviceOrHostAddressKHR = 0000000000000000 (Union):
            deviceAddress:                  VkDeviceAddress = 0x0
            hostAddress:                    void* = NULL
    pMaxPrimitiveCounts:            const uint32_t* = 00000065879FB6B4
        pMaxPrimitiveCounts[0]:         const uint32_t = 0
    pSizeInfo:                      VkAccelerationStructureBuildSizesInfoKHR* = 00000065879FB7D0:
        sType:                          VkStructureType = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR (1000150020)
        pNext:                          void* = NULL
        accelerationStructureSize:      VkDeviceSize = 640
        updateScratchSize:              VkDeviceSize = 0
        buildScratchSize:               VkDeviceSize = 1792

Thread 2, Frame 0:
vkCreateBuffer(device, pCreateInfo, pAllocator, pBuffer) returns VkResult VK_SUCCESS (0):
    device:                         VkDevice = 0000017942BEB270
    pCreateInfo:                    const VkBufferCreateInfo* = 00000065879FAD58:
        sType:                          VkStructureType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO (12)
        pNext:                          const void* = NULL
        flags:                          VkBufferCreateFlags = 0
        size:                           VkDeviceSize = 640
        usage:                          VkBufferUsageFlags = 1179648 (VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT | VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR)
        sharingMode:                    VkSharingMode = VK_SHARING_MODE_CONCURRENT (1)
        queueFamilyIndexCount:          uint32_t = 2
        pQueueFamilyIndices:            const uint32_t* = 00000065868FF3F4
            pQueueFamilyIndices[0]:         const uint32_t = 0
            pQueueFamilyIndices[1]:         const uint32_t = 2
    pAllocator:                     const VkAllocationCallbacks* = NULL
    pBuffer:                        VkBuffer* = 000002B954F6D4C0

Thread 2, Frame 0:
vkGetBufferMemoryRequirements(device, buffer, pMemoryRequirements) returns void:
    device:                         VkDevice = 0000017942BEB270
    buffer:                         VkBuffer = 000002B954F6D4C0
    pMemoryRequirements:            VkMemoryRequirements* = 00000065879FB428:
        size:                           VkDeviceSize = 768
        alignment:                      VkDeviceSize = 256
        memoryTypeBits:                 uint32_t = 31

Thread 2, Frame 0:
vkBindBufferMemory(device, buffer, memory, memoryOffset) returns VkResult VK_SUCCESS (0):
    device:                         VkDevice = 0000017942BEB270
    buffer:                         VkBuffer = 000002B954F6D4C0
    memory:                         VkDeviceMemory = 000002B954F6E080
    memoryOffset:                   VkDeviceSize = 1024

Thread 2, Frame 0:
vkCreateAccelerationStructureKHR(device, pCreateInfo, pAllocator, pAccelerationStructure) returns VkResult VK_SUCCESS (0):
    device:                         VkDevice = 0000017942BEB270
    pCreateInfo:                    const VkAccelerationStructureCreateInfoKHR* = 00000065879FB0D0:
        sType:                          VkStructureType = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR (1000150017)
        pNext:                          const void* = NULL
        createFlags:                    VkAccelerationStructureCreateFlagsKHR = 0
        buffer:                         VkBuffer = 000002B954F6D4C0
        offset:                         VkDeviceSize = 0
        size:                           VkDeviceSize = 640
        type:                           VkAccelerationStructureTypeKHR = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR (0)
        deviceAddress:                  VkDeviceAddress = 0x0
    pAllocator:                     const VkAllocationCallbacks* = NULL
    pAccelerationStructure:         VkAccelerationStructureKHR* = 000002B956861610

Thread 2, Frame 0:
vkGetAccelerationStructureDeviceAddressKHR(device, pInfo) returns VkDeviceAddress 0xc200400:
    device:                         VkDevice = 0000017942BEB270
    pInfo:                          const VkAccelerationStructureDeviceAddressInfoKHR* = 00000065879FB248:
        sType:                          VkStructureType = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR (1000150002)
        pNext:                          const void* = NULL
        accelerationStructure:          VkAccelerationStructureKHR = 000002B956861610

Thread 2, Frame 0:
vkDeviceWaitIdle(device) returns VkResult VK_SUCCESS (0):
    device:                         VkDevice = 0000017942BEB270

Thread 2, Frame 0:
vkGetSemaphoreCounterValue(device, semaphore, pValue) returns VkResult VK_SUCCESS (0):
    device:                         VkDevice = 0000017942BEB270
    semaphore:                      VkSemaphore = 000002B9510BAB70
    pValue:                         uint64_t* = 0

Thread 2, Frame 0:
vkGetSemaphoreCounterValue(device, semaphore, pValue) returns VkResult VK_SUCCESS (0):
    device:                         VkDevice = 0000017942BEB270
    semaphore:                      VkSemaphore = 000002B9510BC330
    pValue:                         uint64_t* = 0

Thread 2, Frame 0:
vkGetSemaphoreCounterValue(device, semaphore, pValue) returns VkResult VK_SUCCESS (0):
    device:                         VkDevice = 0000017942BEB270
    semaphore:                      VkSemaphore = 000002B9510BB880
    pValue:                         uint64_t* = 0

Thread 2, Frame 0:
vkDestroyAccelerationStructureKHR(device, accelerationStructure, pAllocator) returns void:
    device:                         VkDevice = 0000017942BEB270
    accelerationStructure:          VkAccelerationStructureKHR = 000002B956862300
    pAllocator:                     const VkAllocationCallbacks* = NULL

Thread 2, Frame 0:
vkDestroyBuffer(device, buffer, pAllocator) returns void:
    device:                         VkDevice = 0000017942BEB270
    buffer:                         VkBuffer = 000002B954F6DC90
    pAllocator:                     const VkAllocationCallbacks* = NULL

Thread 2, Frame 0:
vkWriteResourceDescriptorsEXT(device, resourceCount, pResources, pDescriptors) returns VkResult VK_SUCCESS (0):
    device:                         VkDevice = 0000017942BEB270
    resourceCount:                  uint32_t = 1
    pResources:                     const VkResourceDescriptorInfoEXT* = 00000065879FBA28
        pResources[0]:                  const VkResourceDescriptorInfoEXT = 00000065879FBA28:
            sType:                          VkStructureType = VK_STRUCTURE_TYPE_RESOURCE_DESCRIPTOR_INFO_EXT (1000135002)
            pNext:                          const void* = NULL
            type:                           VkDescriptorType = VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR (1000150000)
            data:                           VkResourceDescriptorDataEXT = 0000000000000000 (Union):
                pAddressRange:                  const VkDeviceAddressRangeEXT* = 00000065879FB9F8:
                    address:                        VkDeviceAddress = 0xc200400
                    size:                           VkDeviceSize = 640
    pDescriptors:                   const VkHostAddressRangeEXT* = 00000065879FB5E8
        pDescriptors[0]:                const VkHostAddressRangeEXT = 00000065879FB5E8:
            address:                        void* = 000002B957300000
            size:                           size_t = 32

Metadata

Metadata

Assignees

Labels

BugSomething isn't workingRTRay Tracing

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions