Нема описа
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

GPUResidentDrawerDebug.cs 2.3KB

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