| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| DiligentEngine_v2.5.3.zip | 2022-12-05 | 277.3 MB | |
| Diligent Engine - v2.5.3 source code.tar.gz | 2022-12-04 | 142.0 kB | |
| Diligent Engine - v2.5.3 source code.zip | 2022-12-04 | 149.5 kB | |
| README.md | 2022-12-04 | 3.1 kB | |
| Totals: 4 Items | 277.6 MB | 0 | |
This release introduces a new major feature - render state cache.
The cache object (IRenderStateCache) provides methods to create shaders and pipeline states that are identical to the methods of the render device. However, for each call the cache attempts to find the object data (e.g. compiled shader bytecode, pipeline state data etc.) to avoid expensive operations (such as shader compilation). If the data is not found, the object is created and its data is added to the cache. The cache data can be requested from the cache, stored in a file and loaded next time.
Another major capability of the render state cache is hot shader reloading. The cache stores all data required to create shader objects, and when Reload method is called, the cache automatically detects which shaders need to be recompiled and which pipeline states need to be updated. The pipelines are updated transparently for the application.
Tutorials
Two new tutorials have been added.
Tutorial 25 - Render State Packager shows how to create and archive pipeline states with the render state packager off-line tool on the example of a simple path tracer.

Tutorial 26 - Render State Cache expands the path tracing technique implemented in previous tutorial and demonstrates how to use the render state cache to save pipeline states created at run time and load them when the application starts.

API Changes
- Added
RENDER_STATE_CACHE_LOG_LEVELenum, replacedEnableLoggingmember ofRenderStateCacheCreateInfostruct withLoggingLevel(API252009) - Added
IPipelineResourceSignature::CopyStaticResourcesandIPipelineState::CopyStaticResourcesmethods (API252008) - Added render state cache (
IRenderStateCacheinterface and related data types) (API252007) - Moved
UseCombinedTextureSamplersandCombinedSamplerSuffixmembers fromShaderCreateInfotoShaderDesc(API252006) - Added
IntanceLayerCountandppInstanceLayerNamesmembers to EngineVkCreateInfo struct (API252005) - Added
IgnoreDebugMessageCountandppIgnoreDebugMessageNamestoEngineVkCreateInfostruct (API252004) - Refactored archiver API (removed
IDeviceObjectArchiveandIArchive; enabled dearchiver to load multiple archives to allow storing signatures and pipelines separately) (API252003) - Added
SET_SHADER_RESOURCES_FLAGSenum andFlagsparameter toIShaderResourceVariable::SetandIShaderResourceVariable::SetArraymethods (API252002) - Added primitive topologies with adjacency (API252001)