Sorry, your game crashed. We've got your crash report below which has been automatically reported to us.
If you can repeat this crash or know what led to it, please report it here.
tier0
CLoggingSystem::LogDirect logging.cpp:742
tier0
LoggingSystem_Log logging.cpp:1016
rendersystemvulkan
CMemoryManagerVulkan::AllocatePooled memorymgrvulkan.cpp:1690
rendersystemvulkan
CVertexBufferVulkan::Allocate vertexbuffervulkan.cpp:139
rendersystemvulkan
CRenderContextVulkan::FillGPUBufferFormatted rendercontextvulkan.cpp:2743
rendersystemvulkan
CRenderDeviceVulkan::CreateGPUBufferFormatted renderdevicevulkan.cpp:4835
rendersystemvulkan
CRenderDeviceVulkan::CreateGPUBuffer renderdevicevulkan.cpp:4822
engine2
Exports::g_pRenderDevice_CreateGPUBuffer interop.engine.cpp:19650
coreclr
WKS::GCHeap::Alloc gc.cpp:50652
coreclr
AlignUp clrtypes.h:338
coreclr
Alloc gchelpers.cpp:373
coreclr
Alloc gchelpers.cpp:481
coreclr
AllocateSzArray gchelpers.cpp:685
coreclr
RhpGcAlloc gchelpers.cpp:101
coreclr
Object::TryEnterObjMonitorSpinHelper object.inl:142
coreclr
ObjectNative::Monitor_TryEnter_FastPath objectnative.cpp:210
rendersystemvulkan
CRenderContextVulkan::PerformBarriers rendercontextvulkan.cpp:6319
rendersystemvulkan
CRenderContextVulkan::DispatchComputeShader rendercontextvulkan.cpp:3450
engine2
FastDelegate1<T>::InvokeStaticFunction utldelegateimpl.h:1190
engine2
FastDelegate1<T>::operator() utldelegateimpl.h:1150
engine2
CManagedProceduralLayerRenderer::Render sceneview.cpp:570
engine2
ProcessProceduralLayer scenesystem.cpp:3981
engine2
RenderAView::__l53::<T>::operator() scenesystem.cpp:4183
engine2
std::invoke type_traits:1801
engine2
std::_Func_impl_no_alloc<T>::_Do_call functional:1005
tier0
CThreadedJob::Execute jobthread.cpp:1684
tier0
CThreadPool::ServiceJobAndRelease jobthread.cpp:1230
tier0
CJobThread::Run jobthread.cpp:519
tier0
CThread::ThreadProc threadtools.cpp:6828
tier0
ThreadProcWrapped threadtools.cpp:541
tier0
ThreadProcConvert threadtools.cpp:593
KERNEL32
BaseThreadInitThunk :
ntdll
RtlUserThreadStart :
It'd be helpful if you could describe what happened when you got this crash. Other users with the same crash will be able to discuss this too. This will help us diagnose and solve this problem.
Disclosure: this report was written by an AI coding agent (Claude, run through OMP) working in this s&box project for its owner, who reviewed it before sending.
Crash ID:
c2787f28-572f-4375-4788-03ebd29e8052Title: Out of video memory crashes with
EXCEPTION_ACCESS_VIOLATION_WRITE / 0x0insideCLoggingSystem::LogDirect, after the memory allocator goes about 3� over the GPU's memory budgetEnvironment
What happened
GpuBufferdata (marks, bins, indices) and dispatches a compute shader into texture-array tiles.Grew the global bindless descriptor set ring48 times in about 22 s, from 19 sets to 479, includingGlobal bindless descriptor set ring reached 32 sets, something is submitting a lot per frame.GCHeap::Alloc ? g_pRenderDevice_CreateGPUBuffer ? CRenderDeviceVulkan::CreateGPUBuffer ? CreateGPUBufferFormatted ? CRenderContextVulkan::FillGPUBufferFormatted ? CVertexBufferVulkan::Allocate ? CMemoryManagerVulkan::AllocatePooled ? LoggingSystem_Log ? CLoggingSystem::LogDirect(access violation, write to 0x0).Log right before the crash
Why we think it's worth a look
CLoggingSystem::LogDirect. That may be the intended way a fatal error ends, but the crash report then names the logger instead of the memory error.17592186043052.85 MiB, which is 264 bytes minus about 1.36 GiB. That looks like a negative 32-bit size widened to unsigned 64 bits. Our code only createsGpuBuffer<T>with an int element count that doubles as it grows. A count x stride that overflows a 32-bit int seems to reach Vulkan as an enormous request instead of being rejected with an exception.vmaAllocateMemory(render target pool, 23.59 MiB, about 22.9 GB used of a 6.5 GB budget).To reproduce (our project)
Repeatedly, within one frame, upload data into a few structured
GpuBuffer<T>s that grow by doubling, then dispatch a compute shader that writes into texture-array slices. Several thousand dispatches per frame, sustained for a few frames. Running our probesurface_perf n=2000crashed the editor 4 times out of 4.Expected: allocations stay near the device budget, or fail with a catchable exception or a clear fatal message. Oversized or negative buffer sizes are rejected when the managed
GpuBufferis created.Actual: memory use passes the budget about 3x, then the process crashes with an access violation in the logger.