Skip to content
SiteEmail

Control over new Depth Stencil texture cache stats

Section titled “Control over new Depth Stencil texture cache stats”
Optimized GPU Memory Management for Depth Stencil Textures
Section titled “Optimized GPU Memory Management for Depth Stencil Textures”

By restructuring how Depth Stencil (DS) textures are managed, Gameface now enables efficient sharing of DS textures between render targets. Previously, one Depth Stencil texture was allocated per render target even though that isn't always necessary. Now, as long as texture sizes and sample counts align, multiple render targets can share a single DS texture, significantly reducing memory usage. While the exact savings depend on the specific UI, on average, it achieves at least a 2x reduction in DS-related memory consumption. As a result, Gameface now allows control over the amount of Depth Stencil textures and their total size in bytes. Currently, the default DS textures byte capacity is 8MB, while their count can go up to 32. However, you can configure these to suit your needs using the new enumeration entry cohtml::InternalCaches::ICACHE_DepthStencilTextures with the View::QueueSetCacheCountSize and View::QueueSetCacheBytesSize APIs. The View::QueueClearCaches method can be used to clear the whole DS textures cache. Additionally, the View::GetCacheCountStats and View::GetCacheBytesStats functions can be used to retrieve the DS textures' capacity statistics. Renoir automatically maintains these limits by pruning excess textures at the end of each frame, ensuring that DS textures stay within the defined capacity and memory constraints.


API

Added API for getting and setting the depth stencil textures cache

Enhancement

Introduced a new internal cache and reuse logic for depth-stencil textures

Enhancement

Added warning message when trying to set V8 flag --gc_interval in non-debug configurations

Enhancement

Added new trace events in the inspector that show the creation and destruction of depth-stencil textures

Enhancement Unreal Engine

Support for binary messages in Unreal Engine WebSockets integration

Enhancement Unreal Engine

Added a configurable API for safe zones and letterboxing

Fix Unreal Engine

Fix a crash inside the TextToSpeech plugin that can use code from not yet loaded module

Fix Unreal Engine

Fix shipping compilation due to FRHIBreadcrumbEventScope and FRHIBreadcrumbData not available in some configurations

Fix

Fixed sizing of elements with relative units on viewport change

Fix

Prevent appending of elements in the constructor of a custom element