You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
- Make VSM HZB persistent, reallocated on pool size change. - Enable two-pass HZB by default for Nanite VSM (r.Shadow.Virtual.UseHZB == 2) #rb andrew.lauritzen #preflight 623b1c6088538cd45e0ce824 #ROBOMERGE-AUTHOR: ola.olsson #ROBOMERGE-SOURCE: CL 19478487 via CL 19481406 via CL 19481553 #ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v936-19480137) [CL 19484029 by ola olsson in ue5-main branch]
55 lines
1.5 KiB
Plaintext
55 lines
1.5 KiB
Plaintext
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
/*=============================================================================
|
|
VirtualShadowMapStats.ush:
|
|
=============================================================================*/
|
|
|
|
#include "../Common.ush"
|
|
#include "../WaveOpUtil.ush"
|
|
|
|
|
|
#define VSM_STAT_ALLOCATED_PAGES 0
|
|
#define VSM_STAT_STATIC_CACHED_PAGES 1
|
|
#define VSM_STAT_STATIC_INVALIDATED_BY_DYNAMIC_PAGES 2
|
|
#define VSM_STAT_DYNAMIC_CACHED_PAGES 3
|
|
#define VSM_STAT_DYNAMIC_INVALIDATED_BY_DYNAMIC_PAGES 4
|
|
#define VSM_STAT_NUM_SMS 5
|
|
#define VSM_STAT_NON_NANITE_INSTANCES_TOTAL 6
|
|
#define VSM_STAT_NON_NANITE_INSTANCES_DRAWN 7
|
|
#define VSM_STAT_NON_NANITE_INSTANCES_HZB_CULLED 8
|
|
#define VSM_STAT_NON_NANITE_INSTANCES_PAGE_MASK_CULLED 9
|
|
#define VSM_STAT_NON_NANITE_INSTANCES_EMPTY_RECT_CULLED 10
|
|
#define VSM_STAT_NON_NANITE_INSTANCES_FRUSTUM_CULLED 11
|
|
#define VSM_STAT_NUM_PAGES_TO_MERGE 12
|
|
#define VSM_STAT_NUM_PAGES_TO_CLEAR 13
|
|
#define VSM_STAT_NUM_HZB_PAGES_BUILT 14
|
|
|
|
#ifndef VSM_GENERATE_STATS
|
|
#define VSM_GENERATE_STATS 0
|
|
#endif // VSM_GENERATE_STATS
|
|
|
|
#if VSM_GENERATE_STATS
|
|
RWStructuredBuffer<uint> OutStatsBuffer;
|
|
#endif // VSM_GENERATE_STATS
|
|
|
|
void StatsBufferWrite(uint Index, uint Value)
|
|
{
|
|
#if VSM_GENERATE_STATS
|
|
OutStatsBuffer[Index] = Value;
|
|
#endif
|
|
}
|
|
|
|
void StatsBufferInterlockedAdd(uint Index, uint Value)
|
|
{
|
|
#if VSM_GENERATE_STATS
|
|
InterlockedAdd(OutStatsBuffer[Index], Value);
|
|
#endif
|
|
}
|
|
|
|
void StatsBufferInterlockedInc(uint Index)
|
|
{
|
|
#if VSM_GENERATE_STATS
|
|
WaveInterlockedAddScalar(OutStatsBuffer[Index], 1U);
|
|
#endif
|
|
}
|