A game about forced loneliness, made by TACStudios
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}