You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Code Violet (PPSA26528): abort at compute shader 0x147b9e400, "buffer descriptor has reserved bits set", new between d92a8dad3 and 51acb79ac #7051
Since a change between d92a8da and 51acb79, Code Violet (PPSA26528, Unreal Engine 5.5) aborts before its title screen in ShaderResources::addGuestBuffer:
[videoout] presentation failed: compute shader 0x147b9e400: AGC graphics: buffer descriptor has reserved bits set
[gpu] driver failure: compute shader 0x147b9e400: AGC graphics: buffer descriptor has reserved bits set
terminate called after throwing an instance of 'std::runtime_error'
FATAL: abort() (SIGABRT) on thread 25168
That is Require((words[1] & 0x40000000u) == 0, "buffer descriptor has reserved bits set") at the top of addGuestBuffer: bit 30 of the V#'s second dword. The check itself predates d92a8da (#5049 normalises those bits before scalar binding; vector and mixed bindings still require them clear), so what changed is that this shader's buffer now reaches it with the bit set.
Windows 11 (10.0.22631), RTX PRO 6000 Blackwell Workstation Edition (NVIDIA 597.16), WinLibs GCC 15.2.0 r7, Release. The failing run had only APS5_TRACE_BIGBUF=1 and APS5_TRACE_HOST_IMPORT=1 set, which add log lines only.
stops seconds after start at the NVIDIA compiler crash nvgpucomp64.dll+0x28072a1, which one of the bring-up commits handles
The bring-up commits are #6258 and the branches feat/shader-table-call-constant-pointer, feat/libkernel-system-gpu-page and fix/shader-fault-record-no-dontinline on erm14254/AnyPS5, listed in #6256. None of them changes how buffer descriptors are bound: they touch AppendConsume, ShaderRegistry.cpp, the control-flow graph builder, the libc guest arena, libkernel direct memory and SpirvBdaFault.cpp.
Not bisected (490 commits, 161 merges). The merges in the range that touch the files where buffer descriptors are bound (ShaderResources.cpp, ShaderResources.hpp, ResourceMaterializer.cpp, SpirvRuntimeBuffer.cpp) are #5828, #5841, #5778, #5473, #5509, #4794, #1201, #1193, #454 and #5496.
The message does not print the descriptor's dwords; I can capture them if that helps.
Taking this up. I will normalize / mask reserved bit 30 in \ShaderResources::addGuestBuffer\ and add host execution test coverage in \BufferDescriptorRuntime.cpp\ to accept descriptors with bit 30 set, following the pattern from #5049. Will open a PR shortly.
Activity
pushkarreddyy commentedon Oct 17, 2026
Taking this up. I will normalize / mask reserved bit 30 in \ShaderResources::addGuestBuffer\ and add host execution test coverage in \BufferDescriptorRuntime.cpp\ to accept descriptors with bit 30 set, following the pattern from #5049. Will open a PR shortly.
pushkarreddyy commentedon Oct 17, 2026
PR opened: #7089