A game about forced loneliness, made by TACStudios
at master 75 lines 2.4 kB view raw
1using System; 2using System.Collections.Generic; 3using Unity.Collections; 4using UnityEngine.Assertions; 5 6namespace UnityEngine.Rendering 7{ 8 internal struct InstanceCullerViewStats 9 { 10 public BatchCullingViewType viewType; 11 public int viewInstanceID; 12 public int splitIndex; 13 public int visibleInstances; 14 public int drawCommands; 15 } 16 17 internal enum InstanceOcclusionEventType 18 { 19 OcclusionTest, 20 OccluderUpdate, 21 } 22 23 internal struct InstanceOcclusionEventStats 24 { 25 public int viewInstanceID; 26 public InstanceOcclusionEventType eventType; 27 public int occluderVersion; 28 public int subviewMask; 29 public OcclusionTest occlusionTest; 30 public int visibleInstances; 31 public int culledInstances; 32 } 33 34 internal struct DebugOccluderStats 35 { 36 public int viewInstanceID; 37 public int subviewCount; 38 public Vector2Int occluderMipLayoutSize; 39 } 40 41 internal class DebugRendererBatcherStats : IDisposable 42 { 43 public bool enabled; 44 public NativeList<InstanceCullerViewStats> instanceCullerStats; 45 public NativeList<InstanceOcclusionEventStats> instanceOcclusionEventStats; 46 public NativeList<DebugOccluderStats> occluderStats; 47 public bool occlusionOverlayEnabled; 48 public bool occlusionOverlayCountVisible; 49 public bool overrideOcclusionTestToAlwaysPass; 50 51 public DebugRendererBatcherStats() 52 { 53 instanceCullerStats = new NativeList<InstanceCullerViewStats>(Allocator.Persistent); 54 instanceOcclusionEventStats = new NativeList<InstanceOcclusionEventStats>(Allocator.Persistent); 55 occluderStats = new NativeList<DebugOccluderStats>(Allocator.Persistent); 56 } 57 58 public void Dispose() 59 { 60 if (instanceCullerStats.IsCreated) 61 instanceCullerStats.Dispose(); 62 if (instanceOcclusionEventStats.IsCreated) 63 instanceOcclusionEventStats.Dispose(); 64 if (occluderStats.IsCreated) 65 occluderStats.Dispose(); 66 } 67 } 68 69 internal struct OcclusionCullingDebugOutput 70 { 71 public RTHandle occluderDepthPyramid; 72 public GraphicsBuffer occlusionDebugOverlay; 73 public OcclusionCullingDebugShaderVariables cb; 74 } 75}