using System; namespace UnityEngine.Rendering { /// Class for tracking resources used by the GPUResidentDrawer [Serializable] [SupportedOnRenderPipeline] [Categorization.CategoryInfo(Name = "R: GPU Resident Drawers", Order = 1000), HideInInspector] class GPUResidentDrawerResources : IRenderPipelineResources { public enum Version { Initial, Count, Latest = Count - 1 } [SerializeField, HideInInspector] Version m_Version = Version.Latest; int IRenderPipelineGraphicsSettings.version => (int)m_Version; [SerializeField, ResourcePath("Runtime/RenderPipelineResources/GPUDriven/InstanceDataBufferCopyKernels.compute")] ComputeShader m_InstanceDataBufferCopyKernels; /// InstanceDataBufferCopyKernels compute shader reference public ComputeShader instanceDataBufferCopyKernels { get => m_InstanceDataBufferCopyKernels; set => this.SetValueAndNotify(ref m_InstanceDataBufferCopyKernels, value, nameof(m_InstanceDataBufferCopyKernels)); } [SerializeField, ResourcePath("Runtime/RenderPipelineResources/GPUDriven/InstanceDataBufferUploadKernels.compute")] ComputeShader m_InstanceDataBufferUploadKernels; /// InstanceDataBufferUploadKernels compute shader reference public ComputeShader instanceDataBufferUploadKernels { get => m_InstanceDataBufferUploadKernels; set => this.SetValueAndNotify(ref m_InstanceDataBufferUploadKernels, value, nameof(m_InstanceDataBufferUploadKernels)); } [SerializeField, ResourcePath("Runtime/RenderPipelineResources/GPUDriven/InstanceTransformUpdateKernels.compute")] ComputeShader m_TransformUpdaterKernels; /// TransformUpdaterKernels compute shader reference public ComputeShader transformUpdaterKernels { get => m_TransformUpdaterKernels; set => this.SetValueAndNotify(ref m_TransformUpdaterKernels, value, nameof(m_TransformUpdaterKernels)); } [SerializeField, ResourcePath("Runtime/RenderPipelineResources/GPUDriven/InstanceWindDataUpdateKernels.compute")] public ComputeShader m_WindDataUpdaterKernels; /// /// InstanceWindDataUpdateKernels compute shader reference /// public ComputeShader windDataUpdaterKernels { get => m_WindDataUpdaterKernels; set => this.SetValueAndNotify(ref m_WindDataUpdaterKernels, value, nameof(m_WindDataUpdaterKernels)); } [SerializeField, ResourcePath("Runtime/RenderPipelineResources/GPUDriven/OccluderDepthPyramidKernels.compute")] ComputeShader m_OccluderDepthPyramidKernels; /// /// OccluderDepthPyramidKernels compute shader reference /// public ComputeShader occluderDepthPyramidKernels { get => m_OccluderDepthPyramidKernels; set => this.SetValueAndNotify(ref m_OccluderDepthPyramidKernels, value, nameof(m_OccluderDepthPyramidKernels)); } [SerializeField, ResourcePath("Runtime/RenderPipelineResources/GPUDriven/InstanceOcclusionCullingKernels.compute")] ComputeShader m_InstanceOcclusionCullingKernels; /// /// InstanceOcclusionCullingKernels compute shader reference /// public ComputeShader instanceOcclusionCullingKernels { get => m_InstanceOcclusionCullingKernels; set => this.SetValueAndNotify(ref m_InstanceOcclusionCullingKernels, value, nameof(m_InstanceOcclusionCullingKernels)); } [SerializeField, ResourcePath("Runtime/RenderPipelineResources/GPUDriven/OcclusionCullingDebug.compute")] ComputeShader m_OcclusionCullingDebugKernels; /// /// OcclusionCullingDebugKernels compute shader reference /// public ComputeShader occlusionCullingDebugKernels { get => m_OcclusionCullingDebugKernels; set => this.SetValueAndNotify(ref m_OcclusionCullingDebugKernels, value, nameof(m_OcclusionCullingDebugKernels)); } [SerializeField, ResourcePath("Runtime/RenderPipelineResources/GPUDriven/DebugOcclusionTest.shader")] Shader m_DebugOcclusionTestPS; /// /// DebugOcclusionTestPS pixel shader reference /// public Shader debugOcclusionTestPS { get => m_DebugOcclusionTestPS; set => this.SetValueAndNotify(ref m_DebugOcclusionTestPS, value, nameof(m_DebugOcclusionTestPS)); } [SerializeField, ResourcePath("Runtime/RenderPipelineResources/GPUDriven/DebugOccluder.shader")] Shader m_DebugOccluderPS; /// /// DebugOccluderPS pixel shader reference /// public Shader debugOccluderPS { get => m_DebugOccluderPS; set => this.SetValueAndNotify(ref m_DebugOccluderPS, value, nameof(m_DebugOccluderPS)); } } }