Description

The ctor of FD3D12BindlessResourceManager implies that GPU heap activation is intended to occur lazily with ERHIBindlessConfiguration::RayTracingShaders, however any call to FD3D12BindlessResourceManager::GrowCPUHeap() (as a consequence of needing to allocate additional bindless descriptors) will cause a GPU heap activation, whether it is needed or not.

The negative consequence of this is that we use more GPU memory than necessary with D3D12 RHI.

Perhaps a check on ActiveGpuHeapIndex >= 0 is needed before setting bRequestNewActiveGpuHeap and bCPUHeapResized in FD3D12BindlessResourceManager::GrowCPUHeap()?

Steps to Reproduce

Steps to Reproduce

1. set rhi.Bindless=RayTracing
2. run the Editor or Game

Expected

GPU Heap is activated lazily and only grows when needed

Actual

GPU heap is activated and grows even when not needed and we use more GPU memory than necessary with D3D12.

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-323791 in the post.

0
Login to Vote

Unresolved
ComponentUE - Rendering Architecture - RHI
Affects Versions5.65.7
Target Fix5.7
CreatedSep 11, 2025
UpdatedSep 11, 2025
View Jira Issue