Files
UnrealEngineUWP/Engine/Config/Windows/WindowsEngine.ini
christopher waters 565a78058a D3D12 Bindless Resources with CPU managed descriptor heap updates
- D3D12 PC Bindless needs descriptor heaps managed on the CPU; we cannot update them on the GPU timeline.
- Each context now has a FD3D12ContextBindlessState that contains the per-context GPU descriptor heap as well as descriptor rollbacks to apply to the heap before submission.
- We have to roll descriptors back to their values before the incoming view updates were applied so that we can leverage the CPU heap copy at all times. This isn't deferring the updates; it's storing the values before the updates and making sure the heap is used with those values.
- When a context encounters a draw/dispatch and there were any descriptor updates, the previously used heap is updated with the correct set of descriptors before a new heap is created for the subsequent draws/dispatches.

Additional changes
- Allowing RHIs to override FRHITextureReference for custom bindless implementations.
- Adding FRHIDescriptorAllocator::GetAllocatedRange to allow managers to find the smallest range of descriptors that need to be copied to new heaps.
- DescriptorCache now holds reference counted pointers to the bindless heaps to avoid potential use after free scenarios.
- Adding ED3D12DescriptorHeapFlags to mirror D3D12_DESCRIPTOR_HEAP_FLAGS while adding new flags.
- Adding ability to pool descriptor heaps to avoid high OS overhead when constantly allocating new ones.
- Pooling descriptor heaps required more descriptor heap managers to implement CleanupResources.

#jira UE-162014
#rb Luke.Thatcher

[CL 30183702 by christopher waters in ue5-main branch]
2023-12-07 12:30:21 -05:00

30 lines
1.1 KiB
INI

[Audio]
; Defining below allows switching to audio mixer using -audiomixer commandline
AudioMixerModuleName=AudioMixerXAudio2
PlatformFormat=OGG
PlatformStreamingFormat=OGG
; Defines a platform-specific volume headroom (in dB) for audio to provide better platform consistency with respect to volume levels.
PlatformHeadroomDB=-3
[TextureStreaming]
; PoolSizeVRAMPercentage is how much percentage of GPU Dedicated VRAM should be used as a TexturePool cache for streaming textures (0 - unlimited streaming)
PoolSizeVRAMPercentage=70
[SystemSettings]
r.setres=1280x720
framepro.ScopeMinTimeMicroseconds=10
fx.NiagaraAllowRuntimeScalabilityChanges=1
;Perplatform to PerQualityLevel conversion mapping for platform groups
QualityLevelMapping="high"
; Enable single RHI thread stall for D3D11
r.Occlusion.SingleRHIThreadStall=1
r.Shadow.DetectVertexShaderLayerAtRuntime=1
D3D12.Bindless.ResourceDescriptorHeapSize=100000
D3D12.Bindless.SamplerDescriptorHeapSize=2048
[PlatformCrypto]
PlatformRequiresDataCrypto=True
[/Script/Engine.RendererSettings]
r.Shaders.RemoveUnusedInterpolators=1