Skip to content

D3D12 shader-visible sampler descriptors is limited by 2048 #94

@SoapyMan

Description

@SoapyMan

Problem:
Current implementation of descriptors allocation is fine for small and static scenes but on large scenes where there are large amounts of shader permutations, data streaming etc it can quickly become a problem.
It's possible to optimize this externally by reducing binding sets and samplers respectively but still not enough to overcome the problem - even in bindless. Allocation fragmentation is an issue there too in current implementation.

Potential improvements:
I have tried to address allocation fragmentation by utilizing OffsetAllocator which also helped with descriptor limit at some extent but still hitting descriptor allocation error.

Other rendering libraries provide solutions like explained here in Diligent engine or like WebGPU Dawn's ShaderVisibleDescriptorAllocator which use descriptor pools for allocating more and copying only needed descriptors to shader-visible heap for command list execution

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions