Compute
Bindless Descriptors
One global descriptor heap. 65,536 SSBO slots. UPDATE_AFTER_BIND. Every buffer gets a bindless index at creation time.
Architecture
- One global descriptor pool + one global descriptor set
- One pipeline layout shared by ALL compute pipelines
OaEngine::RegisterBuffer(buf)assigns the bindless index
Auto-Registration
Most buffers are auto-registered:
OaTensor::Empty()— auto viaRegisterBuffer()OaModule::Alloc()— auto viaRegisterBuffer()- Low-level
AllocHostVisible()— manual call required
Push Constant Layout
Max 128 bytes. Buffer index fields come FIRST, then shader parameters. The C++ dispatch code auto-packs OaBuffer::BindlessIndexvalues before the caller's push data.