Closed aurolou closed 10 months ago
Hi Lou,
There should be no differences between the debug / release Vulkan layer in terms of what's injected and what's not. However, the callstack above seems indicative of an assert of mine hitting, so it's catching something bad. Anything in the output log?
Callstack from GPUReshape:
KernelBase.dll!00007ffd6577bdd2() Unknown GRS.Backends.Vulkan.Layer.dll!Detail::Break(const char message) Line 52 C++ GRS.Backends.Vulkan.Layer.dll!PhysicalResourceMappingTable::Defragment() Line 305 C++ GRS.Backends.Vulkan.Layer.dll!PhysicalResourceMappingTable::Update(VkCommandBuffer_T commandBuffer) Line 217 C++ GRS.Backends.Vulkan.Layer.dll!ShaderExportStreamer::RecordPreCommandBuffer(ShaderExportQueueState state, ShaderExportStreamSegment segment) Line 693 C++ GRS.Backends.Vulkan.Layer.dll!Hook_vkQueueSubmit(VkQueue_T queue, unsigned int submitCount, const VkSubmitInfo pSubmits, VkFence_T * userFence) Line 181 C++
It's hitting the ASSERT in PhysicalResourceMappingTable::Defragment(), line 302. liveHead = 56 liveSegmentCount = 57
Ah it's the defragmentation that fails, that can lead to a heap of false positives. Thanks!
I assume this is a NDA'd application, and not something public?
It's the game Strange Brigade, Vulkan version.
Would it be possible to test against latest?
Descriptor defragmentation issues should be fixed now.
When I have a debug build of GPUReshape running with discoverability enabled, my Vulkan application crashes with following callstack:
Crash detected, current frames: [00007FFC9DA4BDD0] DebugBreak C:\Windows\System32\KERNELBASE.dll [00007FFBBA43D92B] Hook_vkGetDeviceProcAddr D:\Tools\GPU Reshape\23-6-28\artifacts-debug\Bin\MSVC\Debug\GRS.Backends.Vulkan.Layer.dll [00007FFBBA43D92B] Hook_vkGetDeviceProcAddr D:\Tools\GPU Reshape\23-6-28\artifacts-debug\Bin\MSVC\Debug\GRS.Backends.Vulkan.Layer.dll [00007FFBBA43D92B] Hook_vkGetDeviceProcAddr [00007FFBBA43D92B] Hook_vkGetDeviceProcAddr [00007FFBBA43D92B] Hook_vkGetDeviceProcAddr [00007FFC0D63EAF0] vkDestroyDescriptorPool [00007FFC0D63EAF0] vkDestroyDescriptorPool [00007FFC0D63EAF0] vkDestroyDescriptorPool [00007FFC0D63EAF0] vkDestroyDescriptorPool [00007FFC0D63EAF0] vkDestroyDescriptorPool [00007FFC0D63EAF0] vkDestroyDescriptorPool [00007FFC0D63EAF0] vkDestroyDescriptorPool [00007FFC0D63EAF0] vkDestroyDescriptorPool [00007FFC0D63EAF0] vkDestroyDescriptorPool [00007FFC9F792690] BaseThreadInitThunk [00007FFCA034A9D0] RtlUserThreadStart
Waiting for debugger to attach...
This does not happen with the release build of GPUReshape. Also note, that at this point I have not added the Vulkan application to my workspace nor instrumented anything. Are there any validation layers enabled in debug mode that are not enabled in release mode?