diff --git a/Packages/com.unity.render-pipelines.core/Documentation~/render-graph-fundamentals.md b/Packages/com.unity.render-pipelines.core/Documentation~/render-graph-fundamentals.md
index 3cd759bb2e9..4e0ae8a85c2 100644
--- a/Packages/com.unity.render-pipelines.core/Documentation~/render-graph-fundamentals.md
+++ b/Packages/com.unity.render-pipelines.core/Documentation~/render-graph-fundamentals.md
@@ -4,7 +4,7 @@ This document describes the main principles of a render graph and an overview of
## Main principles
-Before you can write render passes with the [RenderGraph](../api/UnityEngine.Experimental.Rendering.RenderGraphModule.RenderGraph.html) API, you need to know the following foundational principles:
+Before you can write render passes with the [RenderGraph](../api/UnityEngine.Rendering.RenderGraphModule.RenderGraph.html) API, you need to know the following foundational principles:
- You no longer handle resources directly and instead use render graph system-specific handles. All RenderGraph APIs use these handles to manipulate resources. The resource types a render graph manages are [RTHandles](rthandle-system.md), [ComputeBuffers](https://docs.unity3d.com/ScriptReference/ComputeBuffer.html), and [RendererLists](../api/UnityEngine.Experimental.Rendering.RendererList.html).
- Actual resource references are only accessible within the execution code of a render pass.
diff --git a/Packages/com.unity.render-pipelines.core/Documentation~/render-graph-system.md b/Packages/com.unity.render-pipelines.core/Documentation~/render-graph-system.md
index 25817e69ad6..339c865cf5b 100644
--- a/Packages/com.unity.render-pipelines.core/Documentation~/render-graph-system.md
+++ b/Packages/com.unity.render-pipelines.core/Documentation~/render-graph-system.md
@@ -2,7 +2,7 @@
The render graph system sits on top of Unity's Scriptable Render Pipeline (SRP). It allows you to author a custom SRP in a maintainable and modular way. Unity's High Definition Render Pipeline (HDRP) uses the render graph system.
-You use the [RenderGraph](../api/UnityEngine.Experimental.Rendering.RenderGraphModule.RenderGraph.html) API to create a render graph. A render graph is a high-level representation of the custom SRP's render passes, which explicitly states how the render passes use resources.
+You use the [RenderGraph](../api/UnityEngine.Rendering.RenderGraphModule.RenderGraph.html) API to create a render graph. A render graph is a high-level representation of the custom SRP's render passes, which explicitly states how the render passes use resources.
Describing render passes in this way has two benefits: it simplifies render pipeline configuration, and it allows the render graph system to efficiently manage parts of the render pipeline, which can result in improved runtime performance. For more information on the benefits of the render graph system, see [benefits of the render graph system](render-graph-benefits.md).
@@ -10,8 +10,6 @@ To use the render graph system, you need to write your code in a different way t
For information on the technical principles behind the render graph system, see [render graph fundamentals](render-graph-fundamentals.md).
-**Note**: Render graph is currently experimental which means Unity might change its API during future development.
-
This section contains the following pages:
- [Render graph benefits](render-graph-benefits.md)
diff --git a/Packages/com.unity.render-pipelines.core/Documentation~/render-graph-writing-a-render-pipeline.md b/Packages/com.unity.render-pipelines.core/Documentation~/render-graph-writing-a-render-pipeline.md
index bc7b480a2ed..8904d765f99 100644
--- a/Packages/com.unity.render-pipelines.core/Documentation~/render-graph-writing-a-render-pipeline.md
+++ b/Packages/com.unity.render-pipelines.core/Documentation~/render-graph-writing-a-render-pipeline.md
@@ -4,10 +4,10 @@ This page covers the process of how to use the RenderGraph API to write a render
### Initialization and cleanup of Render Graph
-To begin, your render pipeline needs to maintain at least one instance of [RenderGraph](../api/UnityEngine.Experimental.Rendering.RenderGraphModule.RenderGraph.html). This is the main entry point for the API. You can use more than one instance of a render graph, but be aware that Unity does not share resources across `RenderGraph` instances so for optimal memory usage, only use one instance.
+To begin, your render pipeline needs to maintain at least one instance of [RenderGraph](../api/UnityEngine.Rendering.RenderGraphModule.RenderGraph.html). This is the main entry point for the API. You can use more than one instance of a render graph, but be aware that Unity does not share resources across `RenderGraph` instances so for optimal memory usage, only use one instance.
```c#
-using UnityEngine.Experimental.Rendering.RenderGraphModule;
+using UnityEngine.Rendering.RenderGraphModule;
public class MyRenderPipeline : RenderPipeline
{
@@ -30,22 +30,21 @@ To initialize a `RenderGraph` instance, call the constructor with an optional na
### Starting a render graph
-Before you add any render passes to the render graph, you first need to initialize the render graph. To do this, call the `RecordAndExecute` method. This method will return a disposable struct of type `RenderGraphExecution` that you can use with a scope. When the `RenderGraphExecution` struct exits the scope or its Dispose function is called, the render graph is executed.
-This pattern ensures that the render graph is always executed correctly even in the case of an exception during the recording of the graph.
-For details about this method's parameters, see the [API documentation](../api/UnityEngine.Experimental.Rendering.RenderGraphModule.RenderGraph.html)
+Before you add any render passes to the render graph, you first need to initialize the render graph by calling the `BeginRecording` method. Once all the render passes have been added to the render graph, you can execute it by calling the `EndRecordingAndExecute` method.
+
+For details about the `BeginRecording` method's parameters, see the [API documentation](../api/UnityEngine.Rendering.RenderGraphModule.RenderGraph.html)
```c#
-var renderGraphParams = new RenderGraphExecuteParams()
+var renderGraphParams = new RenderGraphParameters()
{
scriptableRenderContext = renderContext,
commandBuffer = cmd,
currentFrameIndex = frameIndex
};
-using (m_RenderGraph.RecordAndExecute(renderGraphParams))
-{
- // Add your passes here
-}
+m_RenderGraph.BeginRecording(renderGraphParams);
+// Add your passes here
+m_RenderGraph.EndRecordingAndExecute();
```
### Creating resources for the render graph
@@ -69,7 +68,7 @@ public TextureHandle RenderGraph.ImportBackbuffer(RenderTargetIdentifier rt);
public BufferHandle RenderGraph.ImportBuffer(ComputeBuffer computeBuffer);
```
-The main ways to create resources are described above, but there are variations of these functions. For the complete list, see the [API documentation](../api/UnityEngine.Experimental.Rendering.RenderGraphModule.RenderGraph.html). Note that the specific function to use to import the camera back buffer is `RenderTargetIdentifier`.
+The main ways to create resources are described above, but there are variations of these functions. For the complete list, see the [API documentation](../api/UnityEngine.Rendering.RenderGraphModule.RenderGraph.html). Note that the specific function to use to import the camera back buffer is `RenderTargetIdentifier`.
To create resources, each API requires a descriptor structure as a parameter. The properties in these structures are similar to the properties in the resources they represent (respectively [RTHandle](rthandle-system.md), [ComputeBuffer](https://docs.unity3d.com/ScriptReference/ComputeBuffer.html), and [RendererLists](../api/UnityEngine.Experimental.Rendering.RendererList.html)). However, some properties are specific to render graph textures.
diff --git a/Packages/com.unity.render-pipelines.core/Editor/BuildProcessors/CoreBuildData.cs b/Packages/com.unity.render-pipelines.core/Editor/BuildProcessors/CoreBuildData.cs
index ac9b8acf218..521e37d2876 100644
--- a/Packages/com.unity.render-pipelines.core/Editor/BuildProcessors/CoreBuildData.cs
+++ b/Packages/com.unity.render-pipelines.core/Editor/BuildProcessors/CoreBuildData.cs
@@ -6,17 +6,38 @@
namespace UnityEditor.Rendering
{
- class CoreBuildData : IDisposable
+ ///
+ /// Contains a set of needed data for building.
+ /// This might also being called when building Asset Bundles
+ ///
+ public class CoreBuildData : IDisposable
{
static CoreBuildData m_Instance = null;
+
+ ///
+ /// Instance to the current .
+ ///
public static CoreBuildData instance => m_Instance ??= CreateInstance();
+ ///
+ /// If the target build has an SRP configured
+ ///
public bool buildingPlayerForRenderPipeline { get; private set; } = false;
+
+ ///
+ /// A valid type of , that the build is targeting,
+ ///
+ public Type currentRenderPipelineAssetType { get; private set; } = null;
+
+ ///
+ /// A list of , all of them of the same type.
+ ///
public List renderPipelineAssets { get; private set; } = new();
- public Dictionary computeShaderCache { get; private set; } = new();
- public bool pipelineSupportGPUResidentDrawer { get; private set; } = false;
- public bool playerNeedGPUResidentDrawer { get; private set; } = false;
+ internal Dictionary computeShaderCache { get; private set; } = new();
+
+ internal bool pipelineSupportGPUResidentDrawer { get; private set; } = false;
+ internal bool playerNeedGPUResidentDrawer { get; private set; } = false;
private CoreBuildData(BuildTarget buildTarget)
{
@@ -27,16 +48,20 @@ private CoreBuildData(BuildTarget buildTarget)
buildingPlayerForRenderPipeline = true;
- CheckGPUResidentDrawerUsage();
+ //We can check only the first as we don't support multiple pipeline type in player
+ var asset = renderPipelineAssets[0];
+ currentRenderPipelineAssetType = asset.GetType();
+
+ CheckGPUResidentDrawerUsage(asset);
}
- public static CoreBuildData CreateInstance()
+ private static CoreBuildData CreateInstance()
=> new(EditorUserBuildSettings.activeBuildTarget);
- private void CheckGPUResidentDrawerUsage()
+ private void CheckGPUResidentDrawerUsage(RenderPipelineAsset asset)
{
//We can check only the first as we don't support multiple pipeline type in player
- pipelineSupportGPUResidentDrawer = renderPipelineAssets[0] is IGPUResidentRenderPipeline gpuResidentRenderPipeline && gpuResidentRenderPipeline.IsGPUResidentDrawerSupportedBySRP();
+ pipelineSupportGPUResidentDrawer = asset is IGPUResidentRenderPipeline gpuResidentRenderPipeline && gpuResidentRenderPipeline.IsGPUResidentDrawerSupportedBySRP();
if (!pipelineSupportGPUResidentDrawer)
return;
@@ -54,6 +79,9 @@ private void CheckGPUResidentDrawerUsage()
.ForEachFieldOfType(computeShader => computeShaderCache.Add(computeShader.GetInstanceID(), computeShader));
}
+ ///
+ /// Dispose all the gathered data for building
+ ///
public void Dispose()
{
renderPipelineAssets?.Clear();
@@ -61,4 +89,4 @@ public void Dispose()
m_Instance = null;
}
}
-}
\ No newline at end of file
+}
diff --git a/Packages/com.unity.render-pipelines.core/Editor/BuildProcessors/CorePreprocessBuild.cs b/Packages/com.unity.render-pipelines.core/Editor/BuildProcessors/CorePreprocessBuild.cs
index 866ad700d0e..6956df5614d 100644
--- a/Packages/com.unity.render-pipelines.core/Editor/BuildProcessors/CorePreprocessBuild.cs
+++ b/Packages/com.unity.render-pipelines.core/Editor/BuildProcessors/CorePreprocessBuild.cs
@@ -13,7 +13,7 @@ class CorePreprocessBuild : IPreprocessBuildWithReport, IPostprocessBuildWithRep
void IPreprocessBuildWithReport.OnPreprocessBuild(BuildReport report)
{
m_BuildData?.Dispose();
- m_BuildData = CoreBuildData.CreateInstance();
+ m_BuildData = CoreBuildData.instance;
}
void IPostprocessBuildWithReport.OnPostprocessBuild(BuildReport report)
diff --git a/Packages/com.unity.render-pipelines.core/Editor/CommandBuffers/CommandBufferGenerator/CommandBufferGenerator.cs b/Packages/com.unity.render-pipelines.core/Editor/CommandBuffers/CommandBufferGenerator/CommandBufferGenerator.cs
index e3ea1b7c2d7..b1a9c5954f4 100644
--- a/Packages/com.unity.render-pipelines.core/Editor/CommandBuffers/CommandBufferGenerator/CommandBufferGenerator.cs
+++ b/Packages/com.unity.render-pipelines.core/Editor/CommandBuffers/CommandBufferGenerator/CommandBufferGenerator.cs
@@ -17,26 +17,26 @@ class CommandBufferGenerator
// Functions going in all command buffers
static List baseFunctions = new List {
- new FunctionInfo("SetGlobalFloat", "", true),
- new FunctionInfo("SetGlobalInt", "", true),
- new FunctionInfo("SetGlobalInteger", "", true),
- new FunctionInfo("SetGlobalVector", "", true),
- new FunctionInfo("SetGlobalColor", "", true),
- new FunctionInfo("SetGlobalMatrix", "", true),
- new FunctionInfo("SetGlobalFloatArray", "", true),
- new FunctionInfo("SetGlobalVectorArray", "", true),
- new FunctionInfo("SetGlobalMatrixArray", "", true),
- new FunctionInfo("SetGlobalTexture", "value", true),
- new FunctionInfo("SetGlobalBuffer", "", true),
- new FunctionInfo("SetGlobalConstantBuffer", "", true),
+ new FunctionInfo("SetGlobalFloat", textureArg: "", modifiesGlobalState: true),
+ new FunctionInfo("SetGlobalInt", textureArg: "", modifiesGlobalState: true),
+ new FunctionInfo("SetGlobalInteger", textureArg: "", modifiesGlobalState: true),
+ new FunctionInfo("SetGlobalVector", textureArg: "", modifiesGlobalState: true),
+ new FunctionInfo("SetGlobalColor", textureArg: "", modifiesGlobalState: true),
+ new FunctionInfo("SetGlobalMatrix", textureArg: "", modifiesGlobalState: true),
+ new FunctionInfo("SetGlobalFloatArray", textureArg: "", modifiesGlobalState: true),
+ new FunctionInfo("SetGlobalVectorArray", textureArg: "", modifiesGlobalState: true),
+ new FunctionInfo("SetGlobalMatrixArray", textureArg: "", modifiesGlobalState: true),
+ new FunctionInfo("SetGlobalTexture", textureArg: "value", modifiesGlobalState: true),
+ new FunctionInfo("SetGlobalBuffer", textureArg: "", modifiesGlobalState: true),
+ new FunctionInfo("SetGlobalConstantBuffer", textureArg: "", modifiesGlobalState: true),
"SetLateLatchProjectionMatrices",
"MarkLateLatchMatrixShaderPropertyID",
"UnmarkLateLatchMatrix",
- new FunctionInfo("EnableShaderKeyword", "", true),
- new FunctionInfo("EnableKeyword", "", true),
- new FunctionInfo("DisableShaderKeyword", "", true),
- new FunctionInfo("DisableKeyword", "", true),
- new FunctionInfo("SetKeyword", "", true),
+ new FunctionInfo("EnableShaderKeyword", textureArg: "", modifiesGlobalState: true),
+ new FunctionInfo("EnableKeyword", textureArg: "", modifiesGlobalState: true),
+ new FunctionInfo("DisableShaderKeyword", textureArg: "", modifiesGlobalState: true),
+ new FunctionInfo("DisableKeyword", textureArg: "", modifiesGlobalState: true),
+ new FunctionInfo("SetKeyword", textureArg: "", modifiesGlobalState: true),
"SetShadowSamplingMode",
"SetSinglePassStereo",
"IssuePluginEvent",
@@ -65,7 +65,7 @@ class CommandBufferGenerator
"SetComputeMatrixArrayParam",
"SetComputeFloatParams",
"SetComputeIntParams",
- new FunctionInfo("SetComputeTextureParam", "rt"),
+ new FunctionInfo("SetComputeTextureParam", textureArg: "rt"),
"SetComputeBufferParam",
"SetComputeConstantBufferParam",
"SetComputeFloatParam",
@@ -78,7 +78,7 @@ class CommandBufferGenerator
"SetRayTracingAccelerationStructure",
"SetRayTracingBufferParam",
"SetRayTracingConstantBufferParam",
- new FunctionInfo("SetRayTracingTextureParam", "rt"),
+ new FunctionInfo("SetRayTracingTextureParam", textureArg: "rt"),
"SetRayTracingFloatParam",
"SetRayTracingFloatParams",
"SetRayTracingIntParam",
@@ -93,7 +93,7 @@ class CommandBufferGenerator
"CopyCounterValue"
};
- // Fuctions for raster (native render passes) only
+ // Functions for raster (native render passes) only
static List rasterFunctions = new List {
new FunctionInfo("DrawMesh", textureArg : "", modifiesGlobalState : false, triggersRasterization: true),
new FunctionInfo("DrawMultipleMeshes", textureArg : "", modifiesGlobalState : false, triggersRasterization: true),
@@ -105,28 +105,15 @@ class CommandBufferGenerator
new FunctionInfo("DrawMeshInstancedProcedural", textureArg : "", modifiesGlobalState : false, triggersRasterization: true),
new FunctionInfo("DrawMeshInstancedIndirect", textureArg : "", modifiesGlobalState : false, triggersRasterization: true),
new FunctionInfo("DrawOcclusionMesh", textureArg : "", modifiesGlobalState : false, triggersRasterization: true),
- new FunctionInfo("SetInstanceMultiplier", "", true),
+ new FunctionInfo("SetInstanceMultiplier", textureArg: "", modifiesGlobalState: true),
new FunctionInfo("ClearRenderTarget", textureArg : "", modifiesGlobalState : false, triggersRasterization: true),
- new FunctionInfo("SetFoveatedRenderingMode", "", true),
- new FunctionInfo("ConfigureFoveatedRendering", "", true),
- new FunctionInfo("SetWireframe", "", true),
+ new FunctionInfo("SetFoveatedRenderingMode", textureArg: "", modifiesGlobalState: true),
+ new FunctionInfo("ConfigureFoveatedRendering", textureArg: "", modifiesGlobalState: true),
+ new FunctionInfo("SetWireframe", textureArg: "", modifiesGlobalState: true),
};
- // Fuctions for lowlevel (warpper around Commandbuffer) only
- static List lowlevelFunctions = new List {
- "DrawMesh",
- "DrawRenderer",
- "DrawRendererList",
- "DrawProcedural",
- "DrawProceduralIndirect",
- "DrawMeshInstanced",
- "DrawMeshInstancedProcedural",
- "DrawMeshInstancedIndirect",
- "DrawOcclusionMesh",
- new FunctionInfo("SetInstanceMultiplier", "", true),
- "ClearRenderTarget",
- new FunctionInfo("SetFoveatedRenderingMode", "", true),
- new FunctionInfo("ConfigureFoveatedRendering", "", true),
+ // Functions for unsafe (wrapper around Commandbuffer) only
+ static List unsafeFunctions = new List {
"SetRenderTarget",
"Clear"
};
@@ -134,12 +121,11 @@ class CommandBufferGenerator
static string preamble =
@"
using System;
-using UnityEngine.Rendering;
using System.Collections.Generic;
using Unity.Collections;
using UnityEngine.Profiling;
using Unity.Profiling;
-using UnityEngine.Experimental.Rendering.RenderGraphModule;
+using UnityEngine.Rendering.RenderGraphModule;
// NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE
//
@@ -158,9 +144,8 @@ class CommandBufferGenerator
// \Packages\com.unity.render-pipelines.core\Runtime\CommandBuffers\
//
// NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE
-namespace UnityEngine.Experimental.Rendering
+namespace UnityEngine.Rendering
{
- using RendererList = UnityEngine.Rendering.RendererList;
";
// Generated class header
@@ -246,10 +231,12 @@ public static implicit operator FunctionInfo(string value)
/// Generate a commandbuffer type exposing only certain methods of the base commandbuffer class
///
/// Name of the new class
- /// Function used to add the type to the rendergraph
- /// Human readable name of the pass
+ /// Description of the class
+ /// Classes from which this new class inherits
+ /// Whether or not the new class is an interface
+ /// Whether or not the functions in this class should validate that a raster commandbuffer has any render targets
/// List of functions on commandbuffer to expose
- static void GenerateCommandBufferType(string className, string docString, string baseType, bool isInterface, IEnumerable functionList)
+ static void GenerateCommandBufferType(string className, string docString, string baseType, bool isInterface, bool validateRaster, IEnumerable functionList)
{
StringBuilder result = new StringBuilder();
result.Append(preamble);
@@ -292,7 +279,7 @@ static void GenerateCommandBufferType(string className, string docString, string
validationCode.Append("ThrowIfGlobalStateNotAllowed(); ");
}
- if (info.triggersRasterization)
+ if (validateRaster && info.triggersRasterization)
{
validationCode.Append("ThrowIfRasterNotAllowed(); ");
}
@@ -409,7 +396,14 @@ static string DecorateArgumentTypeString(ParameterInfo arg)
return prefix + CSharpFlavour(t.GetElementType()) + "[]";
}
- // Determine whether the type is a reference.
+
+ // Determine whether the type is an 'in' argument,
+ else if (arg.IsIn)
+ {
+ return "in " + CSharpFlavour(t.GetElementType());
+ }
+
+ // Determine whether the type is a reference. 'in' is also a reference but this was already handled above.
else if (t.IsByRef)
{
return "ref " + CSharpFlavour(t.GetElementType());
@@ -447,14 +441,14 @@ static string DecorateArgumentTypeString(ParameterInfo arg)
[MenuItem("Edit/Rendering/Generate Core CommandBuffers")]
static void GenerateCommandBufferTypes()
{
- GenerateCommandBufferType("IBaseCommandBuffer", "This interface declares functions shared by several command buffer types.", "", true, baseFunctions);
- GenerateCommandBufferType("IRasterCommandBuffer", "This interface declares functions that are specific to a rasterization command buffer.", ": IBaseCommandBuffer", true, rasterFunctions);
- GenerateCommandBufferType("IComputeCommandBuffer", "This interface declares functions that are specific to a compute command buffer.", ": IBaseCommandBuffer", true, computeFunctions);
- GenerateCommandBufferType("ILowLevelCommandBuffer", "This interface declares functions that are specific to a lowlevel command buffer.", ": IBaseCommandBuffer", true, lowlevelFunctions);
-
- GenerateCommandBufferType("RasterCommandBuffer", "A command buffer that is used with a rasterization render graph pass.", "BaseCommandBuffer, IRasterCommandBuffer", false, baseFunctions.Concat(rasterFunctions));
- GenerateCommandBufferType("ComputeCommandBuffer", "A command buffer that is used with a compute render graph pass.", "BaseCommandBuffer, IComputeCommandBuffer", false, baseFunctions.Concat(computeFunctions));
- GenerateCommandBufferType("LowLevelCommandBuffer", "A command buffer that is used with a lowlevel render graph pass.", "BaseCommandBuffer, ILowLevelCommandBuffer", false, baseFunctions.Concat(lowlevelFunctions));
+ GenerateCommandBufferType("IBaseCommandBuffer", "This interface declares functions shared by several command buffer types.", "", true, false, baseFunctions);
+ GenerateCommandBufferType("IRasterCommandBuffer", "This interface declares functions that are specific to a rasterization command buffer.", ": IBaseCommandBuffer", true, false, rasterFunctions);
+ GenerateCommandBufferType("IComputeCommandBuffer", "This interface declares functions that are specific to a compute command buffer.", ": IBaseCommandBuffer", true, false, computeFunctions);
+ GenerateCommandBufferType("IUnsafeCommandBuffer", "This interface declares functions that are specific to an unsafe command buffer.", ": IBaseCommandBuffer, IRasterCommandBuffer, IComputeCommandBuffer", true, false, unsafeFunctions);
+
+ GenerateCommandBufferType("RasterCommandBuffer", "A command buffer that is used with a rasterization render graph pass.", "BaseCommandBuffer, IRasterCommandBuffer", false, true, baseFunctions.Concat(rasterFunctions));
+ GenerateCommandBufferType("ComputeCommandBuffer", "A command buffer that is used with a compute render graph pass.", "BaseCommandBuffer, IComputeCommandBuffer", false, false, baseFunctions.Concat(computeFunctions));
+ GenerateCommandBufferType("UnsafeCommandBuffer", "A command buffer that is used with an unsafe render graph pass.", "BaseCommandBuffer, IUnsafeCommandBuffer", false, false, baseFunctions.Concat(unsafeFunctions).Concat(rasterFunctions).Concat(computeFunctions));
}
}
}
diff --git a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipelineResources/Texture/APV.meta b/Packages/com.unity.render-pipelines.core/Editor/GPUDriven.meta
similarity index 77%
rename from Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipelineResources/Texture/APV.meta
rename to Packages/com.unity.render-pipelines.core/Editor/GPUDriven.meta
index 628c5b390af..25946badadf 100644
--- a/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipelineResources/Texture/APV.meta
+++ b/Packages/com.unity.render-pipelines.core/Editor/GPUDriven.meta
@@ -1,5 +1,5 @@
fileFormatVersion: 2
-guid: 87eaabe1c8a73c14cacafeddd011dec1
+guid: 0164231c0dac49459424027de7634828
folderAsset: yes
DefaultImporter:
externalObjects: {}
diff --git a/Packages/com.unity.render-pipelines.core/Editor/GPUDriven/.buginfo b/Packages/com.unity.render-pipelines.core/Editor/GPUDriven/.buginfo
deleted file mode 100644
index 4279cea9058..00000000000
--- a/Packages/com.unity.render-pipelines.core/Editor/GPUDriven/.buginfo
+++ /dev/null
@@ -1 +0,0 @@
-area: Weta Real Time
\ No newline at end of file
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer.meta b/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer.meta
new file mode 100644
index 00000000000..44e5c477873
--- /dev/null
+++ b/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 5536d79734dc8e44e90ec12c771b50cc
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/PassInspector@16.png b/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/PassInspector@16.png
new file mode 100644
index 00000000000..22af1632fbc
Binary files /dev/null and b/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/PassInspector@16.png differ
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/PassInspector@16.png.meta b/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/PassInspector@16.png.meta
new file mode 100644
index 00000000000..78d8a8624cf
--- /dev/null
+++ b/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/PassInspector@16.png.meta
@@ -0,0 +1,348 @@
+fileFormatVersion: 2
+guid: 48b566d9e8cf828409d6879b70fe00b5
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: CloudRendering
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: WebGL
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Android
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: GameCoreXboxOne
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: WindowsStoreApps
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: iOS
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: OSXUniversal
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: VisionOS
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: tvOS
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: PS4
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Switch
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win64
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: QNX
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: EmbeddedLinux
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Linux64
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: PS5
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: GameCoreScarlett
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/PassInspector@32.png b/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/PassInspector@32.png
new file mode 100644
index 00000000000..e2e4c7d55f5
Binary files /dev/null and b/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/PassInspector@32.png differ
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/PassInspector@32.png.meta b/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/PassInspector@32.png.meta
new file mode 100644
index 00000000000..8031f038cb5
--- /dev/null
+++ b/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/PassInspector@32.png.meta
@@ -0,0 +1,348 @@
+fileFormatVersion: 2
+guid: b9ac6ad13d9312941912fc855a3bcc41
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: CloudRendering
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: WebGL
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Android
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: GameCoreXboxOne
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: WindowsStoreApps
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: iOS
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: OSXUniversal
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: VisionOS
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: tvOS
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: PS4
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Switch
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win64
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: QNX
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: EmbeddedLinux
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Linux64
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: PS5
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: GameCoreScarlett
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/Resources@16.png b/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/Resources@16.png
new file mode 100644
index 00000000000..5a2aa98b3bf
Binary files /dev/null and b/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/Resources@16.png differ
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/Resources@16.png.meta b/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/Resources@16.png.meta
new file mode 100644
index 00000000000..d3029f393ce
--- /dev/null
+++ b/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/Resources@16.png.meta
@@ -0,0 +1,348 @@
+fileFormatVersion: 2
+guid: b8c995bb50a162c44b289f34d129328f
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: CloudRendering
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: WebGL
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Android
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: GameCoreXboxOne
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: WindowsStoreApps
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: iOS
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: OSXUniversal
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: VisionOS
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: tvOS
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: PS4
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Switch
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win64
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: QNX
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: EmbeddedLinux
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Linux64
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: PS5
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: GameCoreScarlett
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/Resources@32.png b/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/Resources@32.png
new file mode 100644
index 00000000000..7b621327855
Binary files /dev/null and b/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/Resources@32.png differ
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/Resources@32.png.meta b/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/Resources@32.png.meta
new file mode 100644
index 00000000000..2ff3a1fe67a
--- /dev/null
+++ b/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/Resources@32.png.meta
@@ -0,0 +1,348 @@
+fileFormatVersion: 2
+guid: 8c00ff63cd786b34685fe28d9d37c2b9
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: CloudRendering
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: WebGL
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Android
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: GameCoreXboxOne
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: WindowsStoreApps
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: iOS
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: OSXUniversal
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: VisionOS
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: tvOS
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: PS4
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Switch
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win64
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: QNX
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: EmbeddedLinux
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Linux64
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: PS5
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: GameCoreScarlett
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/d_PassInspector@16.png b/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/d_PassInspector@16.png
new file mode 100644
index 00000000000..9463428aa34
Binary files /dev/null and b/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/d_PassInspector@16.png differ
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/d_PassInspector@16.png.meta b/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/d_PassInspector@16.png.meta
new file mode 100644
index 00000000000..8cd2dfa8015
--- /dev/null
+++ b/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/d_PassInspector@16.png.meta
@@ -0,0 +1,348 @@
+fileFormatVersion: 2
+guid: 179c26b8104e4a84bb9ba82aa6ec463b
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: CloudRendering
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: WebGL
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Android
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: GameCoreXboxOne
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: WindowsStoreApps
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: iOS
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: OSXUniversal
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: VisionOS
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: tvOS
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: PS4
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Switch
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win64
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: QNX
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: EmbeddedLinux
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Linux64
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: PS5
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: GameCoreScarlett
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/d_PassInspector@32.png b/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/d_PassInspector@32.png
new file mode 100644
index 00000000000..4226ca70319
Binary files /dev/null and b/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/d_PassInspector@32.png differ
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/d_PassInspector@32.png.meta b/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/d_PassInspector@32.png.meta
new file mode 100644
index 00000000000..e729ed12f85
--- /dev/null
+++ b/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/d_PassInspector@32.png.meta
@@ -0,0 +1,348 @@
+fileFormatVersion: 2
+guid: b98f3689f42be914d9c9db64ff280951
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: CloudRendering
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: WebGL
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Android
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: GameCoreXboxOne
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: WindowsStoreApps
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: iOS
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: OSXUniversal
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: VisionOS
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: tvOS
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: PS4
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Switch
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win64
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: QNX
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: EmbeddedLinux
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Linux64
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: PS5
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: GameCoreScarlett
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/d_Resources@16.png b/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/d_Resources@16.png
new file mode 100644
index 00000000000..f6a85e7c408
Binary files /dev/null and b/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/d_Resources@16.png differ
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/d_Resources@16.png.meta b/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/d_Resources@16.png.meta
new file mode 100644
index 00000000000..2a811c45f6a
--- /dev/null
+++ b/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/d_Resources@16.png.meta
@@ -0,0 +1,348 @@
+fileFormatVersion: 2
+guid: 2c62c65904d676c489198d40c731befe
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: CloudRendering
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: WebGL
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Android
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: GameCoreXboxOne
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: WindowsStoreApps
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: iOS
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: OSXUniversal
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: VisionOS
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: tvOS
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: PS4
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Switch
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win64
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: QNX
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: EmbeddedLinux
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Linux64
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: PS5
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: GameCoreScarlett
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/d_Resources@32.png b/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/d_Resources@32.png
new file mode 100644
index 00000000000..7f1e789a769
Binary files /dev/null and b/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/d_Resources@32.png differ
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/d_Resources@32.png.meta b/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/d_Resources@32.png.meta
new file mode 100644
index 00000000000..56e0b693f8b
--- /dev/null
+++ b/Packages/com.unity.render-pipelines.core/Editor/Icons/MipLevels/RenderGraphViewer/d_Resources@32.png.meta
@@ -0,0 +1,348 @@
+fileFormatVersion: 2
+guid: 00a734322b2ba1249b58c24b688b3108
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: CloudRendering
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: WebGL
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Android
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: GameCoreXboxOne
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: WindowsStoreApps
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: iOS
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: OSXUniversal
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: VisionOS
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: tvOS
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: PS4
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Switch
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win64
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: QNX
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: EmbeddedLinux
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Linux64
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: PS5
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: GameCoreScarlett
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/Processed/PassInspector Icon.asset b/Packages/com.unity.render-pipelines.core/Editor/Icons/Processed/PassInspector Icon.asset
new file mode 100644
index 00000000000..cc431c6d3b9
--- /dev/null
+++ b/Packages/com.unity.render-pipelines.core/Editor/Icons/Processed/PassInspector Icon.asset
@@ -0,0 +1,48 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!28 &2800000
+Texture2D:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: PassInspector Icon
+ m_ImageContentsHash:
+ serializedVersion: 2
+ Hash: 00000000000000000000000000000000
+ m_IsAlphaChannelOptional: 0
+ serializedVersion: 3
+ m_Width: 32
+ m_Height: 32
+ m_CompleteImageSize: 5460
+ m_MipsStripped: 0
+ m_TextureFormat: 4
+ m_MipCount: 6
+ m_IsReadable: 0
+ m_IsPreProcessed: 0
+ m_IgnoreMipmapLimit: 1
+ m_MipmapLimitGroupName:
+ m_StreamingMipmaps: 0
+ m_StreamingMipmapsPriority: 0
+ m_VTOnly: 0
+ m_AlphaIsTransparency: 0
+ m_ImageCount: 1
+ m_TextureDimension: 2
+ m_TextureSettings:
+ serializedVersion: 2
+ m_FilterMode: 1
+ m_Aniso: 1
+ m_MipBias: 0
+ m_WrapU: 0
+ m_WrapV: 0
+ m_WrapW: 0
+ m_LightmapFormat: 0
+ m_ColorSpace: 1
+ m_PlatformBlob:
+ image data: 5460
+ _typelessdata: 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005555555d555555dc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555ec5555555d00000000000000000000000000000000555555ec555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555dc00000000000000000000000000000000555555fc555555fc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000555555fc555555fc00000000000000000000000000000000555555fc555555fc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000555555fc555555fc00000000000000000000000000000000555555fc555555fc00000000000000000000000000000000000000000000000000000000000000005555555d545454ac545454cc555555fc555555fc555555dc545454ac5555556c5050500d00000000000000000000000000000000000000000000000000000000555555fc555555fc00000000000000000000000000000000555555fc555555fc0000000000000000000000000000000000000000000000005555555d555555dc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555ec5353534d000000000000000000000000000000000000000000000000555555fc555555fc00000000000000000000000000000000555555fc555555fc00000000000000000000000000000000000000005454547d555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc5353538d0000000000000000000000000000000000000000555555fc555555fc00000000000000000000000000000000555555fc555555fc000000000000000000000000000000005353538d555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc5454547d00000000000000000000000000000000555555fc555555fc00000000000000000000000000000000555555fc555555fc0000000000000000000000005353534d555555fc555555fc555555fc555555fc555555fc555555fc00000000000000000000000000000000555555fc555555fc555555fc555555fc555555fc555555fc5656565c000000000000000000000000555555fc555555fc00000000000000000000000000000000555555fc555555fc00000000000000005050500d555555ec555555fc555555fc555555fc555555fc555555fc555555fc00000000000000000000000000000000555555fc555555fc555555fc555555fc555555fc555555fc555555dc000000000000000000000000555555fc555555fc00000000000000000000000000000000555555fc555555fc00000000000000005454546d555555fc555555fc555555fc555555fc555555fc555555fc555555fc00000000000000000000000000000000555555fc555555fc555555fc555555fc555555fc555555fc555555fc5656565c0000000000000000555555fc555555fc00000000000000000000000000000000555555fc555555fc0000000000000000545454ac555555fc555555fc555555fc555555fc555555fc555555fc555555fc00000000000000000000000000000000555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555ad0000000000000000555555fc555555fc00000000000000000000000000000000555555fc555555fc0000000000000000555555dc555555fc555555fc555555fc555555fc555555fc555555fc555555fc00000000000000000000000000000000555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555cc0000000000000000555555fc555555fc00000000000000000000000000000000555555fc555555fc0000000000000000555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc00000000000000000000000000000000555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc0000000000000000555555fc555555fc00000000000000000000000000000000555555fc555555fc0000000000000000555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc00000000000000000000000000000000555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc0000000000000000555555fc555555fc00000000000000000000000000000000555555fc555555fc0000000000000000545454cc555555fc555555fc555555fc555555fc555555fc555555fc555555fc00000000000000000000000000000000555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555dc0000000000000000555555fc555555fc00000000000000000000000000000000555555fc555555fc0000000000000000545454ac555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555ad0000000000000000555555fc555555fc00000000000000000000000000000000555555fc555555fc00000000000000005555555d555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc5454546d0000000000000000555555fc555555fc00000000000000000000000000000000555555fc555555fc000000000000000000000000555555dc555555fc555555fc555555fc555555fc555555fc555555fc5555559c5050501d5050500d5555559c555555fc555555fc555555fc555555fc555555fc555555fc555555ec5050500d0000000000000000555555fc555555fc00000000000000000000000000000000555555fc555555fc0000000000000000000000005555555d555555fc555555fc555555fc555555fc555555fc555555fc5050500d00000000000000005858581d555555fc555555fc555555fc555555fc555555fc555555fc5353534d000000000000000000000000555555fc555555fc00000000000000000000000000000000555555fc555555fc000000000000000000000000000000005656567c555555fc555555fc555555fc555555fc555555fc5050501d00000000000000005050500d555555fc555555fc555555fc555555fc555555fc5656568c00000000000000000000000000000000555555fc555555fc00000000000000000000000000000000555555fc555555fc00000000000000000000000000000000000000005656568c555555fc555555fc555555fc555555fc5454549d5050500d5858581d5454549d555555fc555555fc555555fc555555fc5656567c0000000000000000000000000000000000000000555555fc555555fc00000000000000000000000000000000555555fc555555fc0000000000000000000000000000000000000000000000005353534d555555ec555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555dc5656565c000000000000000000000000000000000000000000000000555555fc555555fc00000000000000000000000000000000555555fc555555fc000000000000000000000000000000000000000000000000000000005050500d5555556c565656ac555555dc555555fc555555fc555555cc565656ac5656565c0000000000000000000000000000000000000000000000000000000000000000555555fc555555fc00000000000000000000000000000000555555fc555555fc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000555555fc555555fc00000000000000000000000000000000555555fc555555fc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000555555fc555555fc00000000000000000000000000000000555555dc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555ec000000000000000000000000000000005656565c555555ec555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555dc5656565c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000555555dc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555dc0000000000000000555555fc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000555555fc0000000000000000555555fc0000000000000000000000005555555d545454bc555555fc555555ec545454bc5454543d000000000000000000000000555555fc0000000000000000555555fc00000000000000005454547d555555fc555555fc555555fc555555fc555555fc555555fc5454547d0000000000000000555555fc0000000000000000555555fc000000005454543d555555fc555555fc555555fc0000000000000000555555fc555555fc555555fc5656565c00000000555555fc0000000000000000555555fc00000000555555bc555555fc555555fc555555fc0000000000000000555555fc555555fc555555fc545454bc00000000555555fc0000000000000000555555fc00000000555555ec555555fc555555fc555555fc0000000000000000555555fc555555fc555555fc555555fc00000000555555fc0000000000000000555555fc00000000555555fc555555fc555555fc555555fc0000000000000000555555fc555555fc555555fc555555ec00000000555555fc0000000000000000555555fc00000000555555bc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555bc00000000555555fc0000000000000000555555fc000000005555555d555555fc555555fc555555fc5050501d5858581d555555fc555555fc555555fc5454543d00000000555555fc0000000000000000555555fc00000000000000005656567c555555fc555555fc5050501d5858581d555555fc555555fc5656567c0000000000000000555555fc0000000000000000555555fc0000000000000000000000005454543d555555bc555555ec555555fc555555bc5656565c000000000000000000000000555555fc0000000000000000555555fc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000555555fc0000000000000000555555dc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555dc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000151515322a2a2a7e2a2a2a7e2a2a2a7e2a2a2a7e2a2a2a7e2a2a2a7e151515322a2a2a7e000000000a0a0a132a2a2a6c2a2a2a6e0f0f0f14000000002a2a2a7e2a2a2a7e0f0f0f144f4f4fdd3f3f3fbd3f3f3fbd4f4f4fdd0a0a0a132a2a2a7e2a2a2a7e2a2a2a6e555555fc2a2a2a7e2a2a2a7e555555fc2a2a2a6c2a2a2a7e2a2a2a7e2a2a2a6c555555fc3f3f3fbd3f3f3fbd555555fc2a2a2a6e2a2a2a7e2a2a2a7e0a0a0a134f4f4fdd494949964a4a4a964f4f4fdd0f0f0f142a2a2a7e2a2a2a7e000000000f0f0f142a2a2a6e2a2a2a6c0a0a0a13000000002a2a2a7e151515322a2a2a7e2a2a2a7e2a2a2a7e2a2a2a7e2a2a2a7e2a2a2a7e151515321a1a1a4b2222225e2323235f1a1a1a4b2323235f434343c5434343c52222225e2222225e4b4b4bca4b4b4bca2323235f1a1a1a4b2323235f2222225e1a1a1a4b28282873282828732a2a2a742a2a2a7429292973
+ m_StreamData:
+ serializedVersion: 2
+ offset: 0
+ size: 0
+ path:
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/Processed/PassInspector Icon.asset.meta b/Packages/com.unity.render-pipelines.core/Editor/Icons/Processed/PassInspector Icon.asset.meta
new file mode 100644
index 00000000000..f79b954acfe
--- /dev/null
+++ b/Packages/com.unity.render-pipelines.core/Editor/Icons/Processed/PassInspector Icon.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: f07c8ecc9e9de7842ab9c99a9256ff7d
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2800000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/Processed/Resources Icon.asset b/Packages/com.unity.render-pipelines.core/Editor/Icons/Processed/Resources Icon.asset
new file mode 100644
index 00000000000..401e54466b2
--- /dev/null
+++ b/Packages/com.unity.render-pipelines.core/Editor/Icons/Processed/Resources Icon.asset
@@ -0,0 +1,48 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!28 &2800000
+Texture2D:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: Resources Icon
+ m_ImageContentsHash:
+ serializedVersion: 2
+ Hash: 00000000000000000000000000000000
+ m_IsAlphaChannelOptional: 0
+ serializedVersion: 3
+ m_Width: 32
+ m_Height: 32
+ m_CompleteImageSize: 5460
+ m_MipsStripped: 0
+ m_TextureFormat: 4
+ m_MipCount: 6
+ m_IsReadable: 0
+ m_IsPreProcessed: 0
+ m_IgnoreMipmapLimit: 1
+ m_MipmapLimitGroupName:
+ m_StreamingMipmaps: 0
+ m_StreamingMipmapsPriority: 0
+ m_VTOnly: 0
+ m_AlphaIsTransparency: 0
+ m_ImageCount: 1
+ m_TextureDimension: 2
+ m_TextureSettings:
+ serializedVersion: 2
+ m_FilterMode: 1
+ m_Aniso: 1
+ m_MipBias: 0
+ m_WrapU: 0
+ m_WrapV: 0
+ m_WrapW: 0
+ m_LightmapFormat: 0
+ m_ColorSpace: 1
+ m_PlatformBlob:
+ image data: 5460
+ _typelessdata: 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005555555d555555dc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555ec5555555d00000000000000000000000000000000555555ec555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555dc00000000000000000000000000000000555555fc555555fc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000555555fc555555fc00000000000000000000000000000000555555fc555555fc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000555555fc555555fc00000000000000000000000000000000555555fc555555fc0000000000000000555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000555555fc555555fc00000000000000000000000000000000555555fc555555fc0000000000000000555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000555555fc555555fc00000000000000000000000000000000555555fc555555fc0000000000000000555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000555555fc555555fc00000000000000000000000000000000555555fc555555fc0000000000000000555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000555555fc555555fc00000000000000000000000000000000555555fc555555fc0000000000000000555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc0000000000000000555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc0000000000000000555555fc555555fc00000000000000000000000000000000555555fc555555fc0000000000000000555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc0000000000000000555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc0000000000000000555555fc555555fc00000000000000000000000000000000555555fc555555fc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc0000000000000000555555fc555555fc00000000000000000000000000000000555555fc555555fc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc0000000000000000555555fc555555fc00000000000000000000000000000000555555fc555555fc0000000000000000555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc0000000000000000555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc0000000000000000555555fc555555fc00000000000000000000000000000000555555fc555555fc0000000000000000555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc0000000000000000555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc0000000000000000555555fc555555fc00000000000000000000000000000000555555fc555555fc0000000000000000555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc0000000000000000555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc0000000000000000555555fc555555fc00000000000000000000000000000000555555fc555555fc0000000000000000555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc0000000000000000555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc0000000000000000555555fc555555fc00000000000000000000000000000000555555fc555555fc0000000000000000555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc0000000000000000555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc0000000000000000555555fc555555fc00000000000000000000000000000000555555fc555555fc0000000000000000555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc0000000000000000555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc0000000000000000555555fc555555fc00000000000000000000000000000000555555fc555555fc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000555555fc555555fc00000000000000000000000000000000555555fc555555fc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000555555fc555555fc00000000000000000000000000000000555555fc555555fc0000000000000000555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000555555fc555555fc00000000000000000000000000000000555555fc555555fc0000000000000000555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000555555fc555555fc00000000000000000000000000000000555555fc555555fc0000000000000000555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000555555fc555555fc00000000000000000000000000000000555555fc555555fc0000000000000000555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000555555fc555555fc00000000000000000000000000000000555555fc555555fc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000555555fc555555fc00000000000000000000000000000000555555fc555555fc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000555555fc555555fc00000000000000000000000000000000555555dc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555ec000000000000000000000000000000005656565c555555ec555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555dc5656565c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000555555dc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555dc0000000000000000555555fc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000555555fc0000000000000000555555fc00000000555555fc555555fc555555fc555555fc00000000000000000000000000000000000000000000000000000000555555fc0000000000000000555555fc00000000555555fc555555fc555555fc555555fc00000000000000000000000000000000000000000000000000000000555555fc0000000000000000555555fc00000000555555fc555555fc555555fc555555fc00000000555555fc555555fc555555fc555555fc555555fc00000000555555fc0000000000000000555555fc000000000000000000000000000000000000000000000000555555fc555555fc555555fc555555fc555555fc00000000555555fc0000000000000000555555fc00000000555555fc555555fc555555fc555555fc00000000555555fc555555fc555555fc555555fc555555fc00000000555555fc0000000000000000555555fc00000000555555fc555555fc555555fc555555fc00000000555555fc555555fc555555fc555555fc555555fc00000000555555fc0000000000000000555555fc00000000555555fc555555fc555555fc555555fc00000000555555fc555555fc555555fc555555fc555555fc00000000555555fc0000000000000000555555fc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000555555fc0000000000000000555555fc00000000555555fc555555fc555555fc555555fc00000000000000000000000000000000000000000000000000000000555555fc0000000000000000555555fc00000000555555fc555555fc555555fc555555fc00000000000000000000000000000000000000000000000000000000555555fc0000000000000000555555fc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000555555fc0000000000000000555555dc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555fc555555dc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000151515322a2a2a7e2a2a2a7e2a2a2a7e2a2a2a7e2a2a2a7e2a2a2a7e151515322a2a2a7e1515153f2a2a2a7e1515153f0000000000000000000000002a2a2a7e2a2a2a7e2a2a2a7e555555fc2a2a2a7e2a2a2a7e2a2a2a7e1515153f2a2a2a7e2a2a2a7e1515153f2a2a2a7e1515153f555555fc555555fc2a2a2a7e2a2a2a7e2a2a2a7e2a2a2a7e555555fc2a2a2a7e555555fc555555fc2a2a2a7e2a2a2a7e2a2a2a7e1515153f2a2a2a7e1515153f0000000000000000000000002a2a2a7e2a2a2a7e1515153f2a2a2a7e1515153f0000000000000000000000002a2a2a7e151515322a2a2a7e2a2a2a7e2a2a2a7e2a2a2a7e2a2a2a7e2a2a2a7e151515321f1f1f5b2424246e1515153f1a1a1a4b2424246e2f2f2f8d3f3f3fbd2424246e2424246e2f2f2f8d2a2a2a7e1f1f1f5e1f1f1f5b2424246e1515153f1a1a1a4b252525702424246d252525701d1d1d5922222269
+ m_StreamData:
+ serializedVersion: 2
+ offset: 0
+ size: 0
+ path:
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/Processed/Resources Icon.asset.meta b/Packages/com.unity.render-pipelines.core/Editor/Icons/Processed/Resources Icon.asset.meta
new file mode 100644
index 00000000000..4d21f41df5a
--- /dev/null
+++ b/Packages/com.unity.render-pipelines.core/Editor/Icons/Processed/Resources Icon.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 0c718439afc500a47899efc9499bc9f5
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2800000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/Processed/d_PassInspector Icon.asset b/Packages/com.unity.render-pipelines.core/Editor/Icons/Processed/d_PassInspector Icon.asset
new file mode 100644
index 00000000000..1f5c81db51b
--- /dev/null
+++ b/Packages/com.unity.render-pipelines.core/Editor/Icons/Processed/d_PassInspector Icon.asset
@@ -0,0 +1,48 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!28 &2800000
+Texture2D:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: d_PassInspector Icon
+ m_ImageContentsHash:
+ serializedVersion: 2
+ Hash: 00000000000000000000000000000000
+ m_IsAlphaChannelOptional: 0
+ serializedVersion: 3
+ m_Width: 32
+ m_Height: 32
+ m_CompleteImageSize: 5460
+ m_MipsStripped: 0
+ m_TextureFormat: 4
+ m_MipCount: 6
+ m_IsReadable: 0
+ m_IsPreProcessed: 0
+ m_IgnoreMipmapLimit: 1
+ m_MipmapLimitGroupName:
+ m_StreamingMipmaps: 0
+ m_StreamingMipmapsPriority: 0
+ m_VTOnly: 0
+ m_AlphaIsTransparency: 0
+ m_ImageCount: 1
+ m_TextureDimension: 2
+ m_TextureSettings:
+ serializedVersion: 2
+ m_FilterMode: 1
+ m_Aniso: 1
+ m_MipBias: 0
+ m_WrapU: 0
+ m_WrapV: 0
+ m_WrapW: 0
+ m_LightmapFormat: 0
+ m_ColorSpace: 1
+ m_PlatformBlob:
+ image data: 5460
+ _typelessdata: 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000efefef5df0f0f0dcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0ecefefef5d00000000000000000000000000000000f0f0f0ecf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0dc00000000000000000000000000000000f0f0f0fcf0f0f0fc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fc0000000000000000000000000000000000000000000000000000000000000000efefef5df0f0f0acf0f0f0ccf0f0f0fcf0f0f0fcf0f0f0dcf0f0f0acf1f1f16cefefef0d00000000000000000000000000000000000000000000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fc000000000000000000000000000000000000000000000000efefef5df0f0f0dcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0ecefefef4d000000000000000000000000000000000000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fc0000000000000000000000000000000000000000efefef7df0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcefefef8d0000000000000000000000000000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000efefef8df0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcefefef7d00000000000000000000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fc000000000000000000000000efefef4df0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf2f2f25c000000000000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fc0000000000000000efefef0df0f0f0ecf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0dc000000000000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fc0000000000000000efefef6df0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf2f2f25c0000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fc0000000000000000f0f0f0acf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcefefefad0000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fc0000000000000000f0f0f0dcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0cc0000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fc0000000000000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc0000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fc0000000000000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc0000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fc0000000000000000f0f0f0ccf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0dc0000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fc0000000000000000f0f0f0acf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcefefefad0000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fc0000000000000000efefef5df0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcefefef6d0000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fc000000000000000000000000f0f0f0dcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf1f1f19cefefef1defefef0df1f1f19cf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0ecefefef0d0000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fc000000000000000000000000efefef5df0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcefefef0d0000000000000000efefef1df0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcefefef4d000000000000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f1f1f17cf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcefefef1d0000000000000000efefef0df0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf1f1f18c00000000000000000000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fc0000000000000000000000000000000000000000f1f1f18cf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcefefef9defefef0defefef1defefef9df0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf1f1f17c0000000000000000000000000000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fc000000000000000000000000000000000000000000000000efefef4df0f0f0ecf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0dcf2f2f25c000000000000000000000000000000000000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000000000000000000000000000efefef0df1f1f16cf0f0f0acf0f0f0dcf0f0f0fcf0f0f0fcf0f0f0ccf0f0f0acf2f2f25c0000000000000000000000000000000000000000000000000000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0dcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0ec00000000000000000000000000000000f2f2f25cf0f0f0ecf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0dcf2f2f25c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0f0f0dcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0dc0000000000000000f0f0f0fc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0f0f0fc0000000000000000f0f0f0fc000000000000000000000000efefef5df0f0f0bcf0f0f0fcf0f0f0ecf0f0f0bcefefef3d000000000000000000000000f0f0f0fc0000000000000000f0f0f0fc0000000000000000efefef7df0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcefefef7d0000000000000000f0f0f0fc0000000000000000f0f0f0fc00000000efefef3df0f0f0fcf0f0f0fcf0f0f0fc0000000000000000f0f0f0fcf0f0f0fcf0f0f0fcf2f2f25c00000000f0f0f0fc0000000000000000f0f0f0fc00000000f0f0f0bcf0f0f0fcf0f0f0fcf0f0f0fc0000000000000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0bc00000000f0f0f0fc0000000000000000f0f0f0fc00000000f0f0f0ecf0f0f0fcf0f0f0fcf0f0f0fc0000000000000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc00000000f0f0f0fc0000000000000000f0f0f0fc00000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc0000000000000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0ec00000000f0f0f0fc0000000000000000f0f0f0fc00000000f0f0f0bcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0bc00000000f0f0f0fc0000000000000000f0f0f0fc00000000efefef5df0f0f0fcf0f0f0fcf0f0f0fcefefef1defefef1df0f0f0fcf0f0f0fcf0f0f0fcefefef3d00000000f0f0f0fc0000000000000000f0f0f0fc0000000000000000f1f1f17cf0f0f0fcf0f0f0fcefefef1defefef1df0f0f0fcf0f0f0fcf1f1f17c0000000000000000f0f0f0fc0000000000000000f0f0f0fc000000000000000000000000efefef3df0f0f0bcf0f0f0ecf0f0f0fcf0f0f0bcf2f2f25c000000000000000000000000f0f0f0fc0000000000000000f0f0f0fc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0f0f0fc0000000000000000f0f0f0dcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0dc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003b3b3b327878787e7878787e7878787e7878787e7878787e7878787e3b3b3b327878787e000000001d1d1d137777776c7878786e2c2c2c14000000007878787e7878787e2c2c2c14e0e0e0ddb4b4b4bdb4b4b4bde0e0e0dd1e1e1e137878787e7878787e7777776ef0f0f0fc7878787e7878787ef0f0f0fc7878786c7878787e7878787e7777776cf0f0f0fcb4b4b4bdb4b4b4bdf0f0f0fc7777776e7878787e7878787e1d1d1d13e1e1e1ddd1d1d196d1d1d196e1e1e1dd2c2c2c147878787e7878787e000000002c2c2c147878786e7878786c1e1e1e13000000007878787e3c3c3c327878787e7878787e7878787e7878787e7878787e7878787e3c3c3c324a4a4a4b6161615e6565655f4a4a4a4b6464645fbfbfbfc5bfbfbfc56161615e6060605ed5d5d5cad5d5d5ca6464645f4b4b4b4b6565655f6161615e4b4b4b4b7373737373737373797979747979797476767673
+ m_StreamData:
+ serializedVersion: 2
+ offset: 0
+ size: 0
+ path:
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/Processed/d_PassInspector Icon.asset.meta b/Packages/com.unity.render-pipelines.core/Editor/Icons/Processed/d_PassInspector Icon.asset.meta
new file mode 100644
index 00000000000..82511e649f0
--- /dev/null
+++ b/Packages/com.unity.render-pipelines.core/Editor/Icons/Processed/d_PassInspector Icon.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: de46f443cc7a01d4a86b2535f132a51d
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2800000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/Processed/d_Resources Icon.asset b/Packages/com.unity.render-pipelines.core/Editor/Icons/Processed/d_Resources Icon.asset
new file mode 100644
index 00000000000..27c47966eaf
--- /dev/null
+++ b/Packages/com.unity.render-pipelines.core/Editor/Icons/Processed/d_Resources Icon.asset
@@ -0,0 +1,48 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!28 &2800000
+Texture2D:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name: d_Resources Icon
+ m_ImageContentsHash:
+ serializedVersion: 2
+ Hash: 00000000000000000000000000000000
+ m_IsAlphaChannelOptional: 0
+ serializedVersion: 3
+ m_Width: 32
+ m_Height: 32
+ m_CompleteImageSize: 5460
+ m_MipsStripped: 0
+ m_TextureFormat: 4
+ m_MipCount: 6
+ m_IsReadable: 0
+ m_IsPreProcessed: 0
+ m_IgnoreMipmapLimit: 1
+ m_MipmapLimitGroupName:
+ m_StreamingMipmaps: 0
+ m_StreamingMipmapsPriority: 0
+ m_VTOnly: 0
+ m_AlphaIsTransparency: 0
+ m_ImageCount: 1
+ m_TextureDimension: 2
+ m_TextureSettings:
+ serializedVersion: 2
+ m_FilterMode: 1
+ m_Aniso: 1
+ m_MipBias: 0
+ m_WrapU: 0
+ m_WrapV: 0
+ m_WrapW: 0
+ m_LightmapFormat: 0
+ m_ColorSpace: 1
+ m_PlatformBlob:
+ image data: 5460
+ _typelessdata: 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000efefef5df0f0f0dcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0ecefefef5d00000000000000000000000000000000f0f0f0ecf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0dc00000000000000000000000000000000f0f0f0fcf0f0f0fc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fc0000000000000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fc0000000000000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fc0000000000000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fc0000000000000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fc0000000000000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc0000000000000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc0000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fc0000000000000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc0000000000000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc0000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc0000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc0000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fc0000000000000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc0000000000000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc0000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fc0000000000000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc0000000000000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc0000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fc0000000000000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc0000000000000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc0000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fc0000000000000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc0000000000000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc0000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fc0000000000000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc0000000000000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc0000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fc0000000000000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc0000000000000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc0000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fc0000000000000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fc0000000000000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fc0000000000000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fc0000000000000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0fcf0f0f0fc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0f0f0fcf0f0f0fc00000000000000000000000000000000f0f0f0dcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0ec00000000000000000000000000000000f2f2f25cf0f0f0ecf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0dcf2f2f25c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0f0f0dcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0dc0000000000000000f0f0f0fc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0f0f0fc0000000000000000f0f0f0fc00000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc00000000000000000000000000000000000000000000000000000000f0f0f0fc0000000000000000f0f0f0fc00000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc00000000000000000000000000000000000000000000000000000000f0f0f0fc0000000000000000f0f0f0fc00000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc00000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc00000000f0f0f0fc0000000000000000f0f0f0fc000000000000000000000000000000000000000000000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc00000000f0f0f0fc0000000000000000f0f0f0fc00000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc00000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc00000000f0f0f0fc0000000000000000f0f0f0fc00000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc00000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc00000000f0f0f0fc0000000000000000f0f0f0fc00000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc00000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc00000000f0f0f0fc0000000000000000f0f0f0fc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0f0f0fc0000000000000000f0f0f0fc00000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc00000000000000000000000000000000000000000000000000000000f0f0f0fc0000000000000000f0f0f0fc00000000f0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fc00000000000000000000000000000000000000000000000000000000f0f0f0fc0000000000000000f0f0f0fc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f0f0f0fc0000000000000000f0f0f0dcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0fcf0f0f0dc00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003b3b3b327878787e7878787e7878787e7878787e7878787e7878787e3b3b3b327878787e3c3c3c3f7878787e3c3c3c3f0000000000000000000000007878787e7878787e7878787ef0f0f0fc7878787e7878787e7878787e3c3c3c3f7878787e7878787e3c3c3c3f7878787e3c3c3c3ff0f0f0fcf0f0f0fc7878787e7878787e7878787e7878787ef0f0f0fc7878787ef0f0f0fcf0f0f0fc7878787e7878787e7878787e3c3c3c3f7878787e3c3c3c3f0000000000000000000000007878787e7878787e3c3c3c3f7878787e3c3c3c3f0000000000000000000000007878787e3c3c3c327878787e7878787e7878787e7878787e7878787e7878787e3c3c3c325959595b6969696e3c3c3c3f4a4a4a4b6969696e8787878db4b4b4bd6969696e6969696e8787878d7878787e5a5a5a5e5a5a5a5b6969696e3c3c3c3f4b4b4b4b6c6c6c706868686d6c6c6c705656565965656569
+ m_StreamData:
+ serializedVersion: 2
+ offset: 0
+ size: 0
+ path:
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/Processed/d_Resources Icon.asset.meta b/Packages/com.unity.render-pipelines.core/Editor/Icons/Processed/d_Resources Icon.asset.meta
new file mode 100644
index 00000000000..0b11f9cd6ec
--- /dev/null
+++ b/Packages/com.unity.render-pipelines.core/Editor/Icons/Processed/d_Resources Icon.asset.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 5f91283c363fa3943844c7b87c3ce64d
+NativeFormatImporter:
+ externalObjects: {}
+ mainObjectFileID: 2800000
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer.meta b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer.meta
new file mode 100644
index 00000000000..cbba3f99246
--- /dev/null
+++ b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: b233366b32d45e8489690036aca26e57
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/AccelerationStructure@2x.png b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/AccelerationStructure@2x.png
new file mode 100644
index 00000000000..cd2e0ef9721
Binary files /dev/null and b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/AccelerationStructure@2x.png differ
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/AccelerationStructure@2x.png.meta b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/AccelerationStructure@2x.png.meta
new file mode 100644
index 00000000000..e0195cc0d4e
--- /dev/null
+++ b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/AccelerationStructure@2x.png.meta
@@ -0,0 +1,166 @@
+fileFormatVersion: 2
+guid: 78c530431f09533469990aeb78f31210
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: CloudRendering
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Switch
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win64
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/Buffer@2x.png b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/Buffer@2x.png
new file mode 100644
index 00000000000..2e6795aec18
Binary files /dev/null and b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/Buffer@2x.png differ
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/Buffer@2x.png.meta b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/Buffer@2x.png.meta
new file mode 100644
index 00000000000..1a4b10253c6
--- /dev/null
+++ b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/Buffer@2x.png.meta
@@ -0,0 +1,166 @@
+fileFormatVersion: 2
+guid: 42f2be07082fcb641bfabb2ccd126ac0
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: CloudRendering
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Switch
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win64
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/FramebufferFetch@2x.png b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/FramebufferFetch@2x.png
new file mode 100644
index 00000000000..6e6e679ad5e
Binary files /dev/null and b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/FramebufferFetch@2x.png differ
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/FramebufferFetch@2x.png.meta b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/FramebufferFetch@2x.png.meta
new file mode 100644
index 00000000000..a5adab190a7
--- /dev/null
+++ b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/FramebufferFetch@2x.png.meta
@@ -0,0 +1,348 @@
+fileFormatVersion: 2
+guid: 35a75acf988224d4da424a5a42cdaaf9
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: CloudRendering
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: WebGL
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Android
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: GameCoreXboxOne
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: WindowsStoreApps
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: iOS
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: OSXUniversal
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: VisionOS
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: tvOS
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: PS4
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Switch
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win64
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: QNX
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: EmbeddedLinux
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Linux64
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: PS5
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: GameCoreScarlett
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/Global@2x.png b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/Global@2x.png
new file mode 100644
index 00000000000..02c06ba242a
Binary files /dev/null and b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/Global@2x.png differ
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/Global@2x.png.meta b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/Global@2x.png.meta
new file mode 100644
index 00000000000..70867af925f
--- /dev/null
+++ b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/Global@2x.png.meta
@@ -0,0 +1,166 @@
+fileFormatVersion: 2
+guid: 13acc8e36620f0c499762b092afc9538
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: CloudRendering
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Switch
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win64
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/Import@2x.png b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/Import@2x.png
new file mode 100644
index 00000000000..f78508c7365
Binary files /dev/null and b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/Import@2x.png differ
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/Import@2x.png.meta b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/Import@2x.png.meta
new file mode 100644
index 00000000000..abd7a8995f3
--- /dev/null
+++ b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/Import@2x.png.meta
@@ -0,0 +1,166 @@
+fileFormatVersion: 2
+guid: 23d6b8595de0e04429daf108638fe785
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: CloudRendering
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Switch
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win64
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/Refresh@2x.png b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/Refresh@2x.png
new file mode 100644
index 00000000000..0d31a75c91e
Binary files /dev/null and b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/Refresh@2x.png differ
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/Refresh@2x.png.meta b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/Refresh@2x.png.meta
new file mode 100644
index 00000000000..f753c41e324
--- /dev/null
+++ b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/Refresh@2x.png.meta
@@ -0,0 +1,166 @@
+fileFormatVersion: 2
+guid: 35eb147be8b67e341a52b0c1d3b4a600
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: CloudRendering
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Switch
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win64
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/Texture@2x.png b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/Texture@2x.png
new file mode 100644
index 00000000000..3f14ed9cf23
Binary files /dev/null and b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/Texture@2x.png differ
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/Texture@2x.png.meta b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/Texture@2x.png.meta
new file mode 100644
index 00000000000..a7919998f64
--- /dev/null
+++ b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/Texture@2x.png.meta
@@ -0,0 +1,166 @@
+fileFormatVersion: 2
+guid: 38d7c20ac7a9de246a75479d66d518fd
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: CloudRendering
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Switch
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win64
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_AccelerationStructure@2x.png b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_AccelerationStructure@2x.png
new file mode 100644
index 00000000000..402e1f99548
Binary files /dev/null and b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_AccelerationStructure@2x.png differ
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_AccelerationStructure@2x.png.meta b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_AccelerationStructure@2x.png.meta
new file mode 100644
index 00000000000..aed946df55c
--- /dev/null
+++ b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_AccelerationStructure@2x.png.meta
@@ -0,0 +1,166 @@
+fileFormatVersion: 2
+guid: ed7bb161ec84da2458e0b8730958a76a
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: CloudRendering
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Switch
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win64
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_Buffer@2x.png b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_Buffer@2x.png
new file mode 100644
index 00000000000..742f68f8e6a
Binary files /dev/null and b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_Buffer@2x.png differ
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_Buffer@2x.png.meta b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_Buffer@2x.png.meta
new file mode 100644
index 00000000000..b06f4bada98
--- /dev/null
+++ b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_Buffer@2x.png.meta
@@ -0,0 +1,166 @@
+fileFormatVersion: 2
+guid: 5b418afba2ea4e542bbc80b91d784d20
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: CloudRendering
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Switch
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win64
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_FramebufferFetch@2x.png b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_FramebufferFetch@2x.png
new file mode 100644
index 00000000000..ead0f87e03f
Binary files /dev/null and b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_FramebufferFetch@2x.png differ
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_FramebufferFetch@2x.png.meta b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_FramebufferFetch@2x.png.meta
new file mode 100644
index 00000000000..c7223db1c94
--- /dev/null
+++ b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_FramebufferFetch@2x.png.meta
@@ -0,0 +1,348 @@
+fileFormatVersion: 2
+guid: 986528338c7e82b42b466e23ac6fbb96
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: CloudRendering
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: WebGL
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Android
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: GameCoreXboxOne
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: WindowsStoreApps
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: iOS
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: OSXUniversal
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: VisionOS
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: tvOS
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: PS4
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Switch
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win64
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: QNX
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: EmbeddedLinux
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Linux64
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: PS5
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: GameCoreScarlett
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_Global@2x.png b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_Global@2x.png
new file mode 100644
index 00000000000..b4aa84a2cac
Binary files /dev/null and b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_Global@2x.png differ
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_Global@2x.png.meta b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_Global@2x.png.meta
new file mode 100644
index 00000000000..8e999f32cc9
--- /dev/null
+++ b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_Global@2x.png.meta
@@ -0,0 +1,166 @@
+fileFormatVersion: 2
+guid: 31d206dcb4d01ca4295149458ec19c38
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: CloudRendering
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Switch
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win64
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_Import@2x.png b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_Import@2x.png
new file mode 100644
index 00000000000..8a183d50911
Binary files /dev/null and b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_Import@2x.png differ
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_Import@2x.png.meta b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_Import@2x.png.meta
new file mode 100644
index 00000000000..d49601334ab
--- /dev/null
+++ b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_Import@2x.png.meta
@@ -0,0 +1,166 @@
+fileFormatVersion: 2
+guid: 33191aa3ed97cff4aa04bf4719f713ed
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: CloudRendering
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Switch
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win64
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_PassInspector@2x.png b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_PassInspector@2x.png
new file mode 100644
index 00000000000..0e5e6fb7f43
Binary files /dev/null and b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_PassInspector@2x.png differ
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_PassInspector@2x.png.meta b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_PassInspector@2x.png.meta
new file mode 100644
index 00000000000..bd90fedeba6
--- /dev/null
+++ b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_PassInspector@2x.png.meta
@@ -0,0 +1,166 @@
+fileFormatVersion: 2
+guid: 4e0d4fae0554052489fc6918c357d43c
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: CloudRendering
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Switch
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win64
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_Refresh@2x.png b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_Refresh@2x.png
new file mode 100644
index 00000000000..dd4f0ff48bb
Binary files /dev/null and b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_Refresh@2x.png differ
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_Refresh@2x.png.meta b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_Refresh@2x.png.meta
new file mode 100644
index 00000000000..a521bcbca4e
--- /dev/null
+++ b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_Refresh@2x.png.meta
@@ -0,0 +1,166 @@
+fileFormatVersion: 2
+guid: d285b5fd5692f2546884cd28a928e1da
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: CloudRendering
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Switch
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win64
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_Resources@2x.png b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_Resources@2x.png
new file mode 100644
index 00000000000..310cb39b90f
Binary files /dev/null and b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_Resources@2x.png differ
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_Resources@2x.png.meta b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_Resources@2x.png.meta
new file mode 100644
index 00000000000..ac6d09dc7e5
--- /dev/null
+++ b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_Resources@2x.png.meta
@@ -0,0 +1,166 @@
+fileFormatVersion: 2
+guid: 6eb2e156a8a1f8149b02f135509f10ea
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: CloudRendering
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Switch
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win64
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_Texture@2x.png b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_Texture@2x.png
new file mode 100644
index 00000000000..562a7f44dff
Binary files /dev/null and b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_Texture@2x.png differ
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_Texture@2x.png.meta b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_Texture@2x.png.meta
new file mode 100644
index 00000000000..8fb5565b775
--- /dev/null
+++ b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/d_Texture@2x.png.meta
@@ -0,0 +1,166 @@
+fileFormatVersion: 2
+guid: 126e291066d6c934e99b244ec88e813a
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: CloudRendering
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Switch
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win64
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/dash.png b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/dash.png
new file mode 100644
index 00000000000..c4872ea2dd8
Binary files /dev/null and b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/dash.png differ
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/dash.png.meta b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/dash.png.meta
new file mode 100644
index 00000000000..2bb94784ba7
--- /dev/null
+++ b/Packages/com.unity.render-pipelines.core/Editor/Icons/RenderGraphViewer/dash.png.meta
@@ -0,0 +1,166 @@
+fileFormatVersion: 2
+guid: 33ff6e2aa12671544bb4df30e6443789
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 13
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ flipGreenChannel: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ ignoreMipmapLimit: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapU: 0
+ wrapV: 0
+ wrapW: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 0
+ spriteTessellationDetail: -1
+ textureType: 0
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ swizzle: 50462976
+ cookieLightType: 0
+ platformSettings:
+ - serializedVersion: 4
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: CloudRendering
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Switch
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Win64
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 4
+ buildTarget: Standalone
+ maxTextureSize: 2048
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ ignorePlatformSupport: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID:
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ nameFileIdTable: {}
+ mipmapLimitGroupName:
+ pSDRemoveMatte: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/DynamicGI/DynamicGISkyOcclusion.hlsl b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/DynamicGI/DynamicGISkyOcclusion.hlsl
index b9d15fc0672..2cdb232b7b9 100644
--- a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/DynamicGI/DynamicGISkyOcclusion.hlsl
+++ b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/DynamicGI/DynamicGISkyOcclusion.hlsl
@@ -1,10 +1,11 @@
#include "Packages/com.unity.rendering.light-transport/Runtime/UnifiedRayTracing/FetchGeometry.hlsl"
#include "Packages/com.unity.rendering.light-transport/Runtime/UnifiedRayTracing/TraceRay.hlsl"
+#include "Packages/com.unity.rendering.light-transport/Runtime/UnifiedRayTracing/Common.hlsl"
#define RNG_METHOD 5 // SOBOL
#define RAND_SAMPLES_PER_BOUNCE 2
-#include "Packages/com.unity.rendering.light-transport/Runtime/UnifiedRayTracing/Random.hlsl"
-#include "Packages/com.unity.rendering.light-transport/Runtime/UnifiedRayTracing/Common.hlsl"
+#include "Packages/com.unity.rendering.light-transport/Runtime/Sampling/Random.hlsl"
+#include "Packages/com.unity.rendering.light-transport/Runtime/Sampling/Common.hlsl"
UNITY_DECLARE_RT_ACCEL_STRUCT(_AccelStruct);
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.Invalidation.cs b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.Invalidation.cs
index 5fb83169605..1451f769176 100644
--- a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.Invalidation.cs
+++ b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.Invalidation.cs
@@ -285,7 +285,7 @@ internal static void RecomputeValidityAfterBake()
foreach (var sceneData in prv.perSceneDataList)
{
- prv.AddPendingSceneLoading(sceneData.sceneGUID);
+ prv.AddPendingSceneLoading(sceneData.sceneGUID, sceneData.bakingSet);
}
prv.PerformPendingOperations();
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.SkyOcclusion.cs b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.SkyOcclusion.cs
index 6b1a6c68d60..1c952a504e5 100644
--- a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.SkyOcclusion.cs
+++ b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.SkyOcclusion.cs
@@ -1,6 +1,7 @@
using UnityEngine;
using UnityEngine.Rendering;
using UnityEngine.Rendering.UnifiedRayTracing;
+using UnityEngine.Rendering.Sampling;
using System.Runtime.InteropServices;
using UnityEditor;
@@ -102,12 +103,12 @@ static void StartBakeSkyOcclusion()
skyShadingBuffer = new GraphicsBuffer(GraphicsBuffer.Target.Structured, (bakeSkyShadingDirection > 0) ? numProbes : 1, Marshal.SizeOf());
skyShadingIndexBuffer = new GraphicsBuffer(GraphicsBuffer.Target.Structured, (bakeSkyShadingDirection > 0) ? numProbes : 1, Marshal.SizeOf());
- int sobolBufferSize = (int)(UnityEngine.Rendering.UnifiedRayTracing.SobolData.SobolDims * UnityEngine.Rendering.UnifiedRayTracing.SobolData.SobolSize);
+ int sobolBufferSize = (int)(UnityEngine.Rendering.Sampling.SobolData.SobolDims * UnityEngine.Rendering.Sampling.SobolData.SobolSize);
sobolBuffer = new GraphicsBuffer(GraphicsBuffer.Target.Structured, sobolBufferSize, Marshal.SizeOf());
- sobolBuffer.SetData(UnityEngine.Rendering.UnifiedRayTracing.SobolData.SobolMatrices);
+ sobolBuffer.SetData(UnityEngine.Rendering.Sampling.SobolData.SobolMatrices);
- cprBuffer = new GraphicsBuffer(GraphicsBuffer.Target.Structured, UnityEngine.Rendering.UnifiedRayTracing.SamplingResources.cranleyPattersonRotationBufferSize, Marshal.SizeOf());
- cprBuffer.SetData(UnityEngine.Rendering.UnifiedRayTracing.SamplingResources.GetCranleyPattersonRotations());
+ cprBuffer = new GraphicsBuffer(GraphicsBuffer.Target.Structured, UnityEngine.Rendering.Sampling.SamplingResources.cranleyPattersonRotationBufferSize, Marshal.SizeOf());
+ cprBuffer.SetData(UnityEngine.Rendering.Sampling.SamplingResources.GetCranleyPattersonRotations());
if (bakeSkyShadingDirection > 0)
{
@@ -217,7 +218,7 @@ static void GatherSkyOcclusionGPU(RayTracingContext context,
for (int sampleId = startSampleId; sampleId < startSampleId + sampleCount; sampleId+= sampleCountPerDispatch)
{
skyOccShader.SetAccelerationStructure(cmd, "_AccelStruct", ProbeGIBaking.m_SkyOcclusionRayTracingAccelerationStructure);
- RayTracingContext.BindSamplingTextures(cmd, ProbeGIBaking.m_SamplingResources);
+ SamplingResources.BindSamplingTextures(cmd, ProbeGIBaking.m_SamplingResources);
skyOccShader.SetIntParam(cmd, _SampleCount, maxSampleCount);
skyOccShader.SetIntParam(cmd, _SampleId, sampleId);
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.VirtualOffset.cs b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.VirtualOffset.cs
index c897f0f2ae3..2ba3cdb95c3 100644
--- a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.VirtualOffset.cs
+++ b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.VirtualOffset.cs
@@ -311,7 +311,7 @@ static internal void RecomputeVOForDebugOnly()
foreach (var sceneData in prv.perSceneDataList)
{
- prv.AddPendingSceneLoading(sceneData.sceneGUID);
+ prv.AddPendingSceneLoading(sceneData.sceneGUID, sceneData.bakingSet);
}
prv.PerformPendingOperations();
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.cs b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.cs
index fd30b48e0d7..6c8ce38551d 100644
--- a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.cs
+++ b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.cs
@@ -305,7 +305,7 @@ internal static List GetPerSceneDataList()
List usedPerSceneDataList = new ();
foreach (var sceneData in fullPerSceneDataList)
{
- if (partialBakeSceneList.Contains(ProbeVolumeSceneData.GetSceneGUID(sceneData.gameObject.scene)))
+ if (partialBakeSceneList.Contains(ProbeReferenceVolume.GetSceneGUID(sceneData.gameObject.scene)))
usedPerSceneDataList.Add(sceneData);
}
return usedPerSceneDataList;
@@ -321,7 +321,7 @@ internal static List GetProbeVolumeList()
usedPVList = new List();
foreach (var pv in fullPvList)
{
- if (pv.isActiveAndEnabled && partialBakeSceneList.Contains(ProbeVolumeSceneData.GetSceneGUID(pv.gameObject.scene)))
+ if (pv.isActiveAndEnabled && partialBakeSceneList.Contains(ProbeReferenceVolume.GetSceneGUID(pv.gameObject.scene)))
usedPVList.Add(pv);
}
}
@@ -379,7 +379,7 @@ static void ClearBakingBatch()
static public void Clear()
{
- var activeSet = ProbeReferenceVolume.instance.sceneData.GetBakingSetForScene(SceneManager.GetActiveScene());
+ var activeSet = ProbeVolumeBakingSet.GetBakingSetForScene(SceneManager.GetActiveScene());
foreach (var data in ProbeReferenceVolume.instance.perSceneDataList)
data.Clear();
@@ -422,34 +422,27 @@ internal static void GetProbeAndChunkIndex(int globalProbeIndex, out int chunkIn
public static void FindWorldBounds()
{
- ProbeReferenceVolume.instance.clearAssetsOnVolumeClear = true;
-
- var sceneData = ProbeReferenceVolume.instance.sceneData;
- HashSet scenesToConsider = new HashSet();
+ var prv = ProbeReferenceVolume.instance;
+ prv.clearAssetsOnVolumeClear = true;
var activeScene = SceneManager.GetActiveScene();
- var activeSet = sceneData.GetBakingSetForScene(activeScene);
+ var activeSet = ProbeVolumeBakingSet.GetBakingSetForScene(activeScene);
bool hasFoundBounds = false;
foreach (var sceneGUID in activeSet.sceneGUIDs)
{
- if (sceneData.hasProbeVolumes.TryGetValue(sceneGUID, out bool hasProbeVolumes))
+ var bakeData = activeSet.GetSceneBakeData(sceneGUID);
+ if (bakeData.hasProbeVolume)
{
- if (hasProbeVolumes)
+ if (hasFoundBounds)
{
- if (sceneData.sceneBounds.TryGetValue(sceneGUID, out var localBound))
- {
- if (hasFoundBounds)
- {
- globalBounds.Encapsulate(localBound);
- }
- else
- {
- globalBounds = localBound;
- hasFoundBounds = true;
- }
- }
+ globalBounds.Encapsulate(bakeData.bounds);
+ }
+ else
+ {
+ globalBounds = bakeData.bounds;
+ hasFoundBounds = true;
}
}
}
@@ -459,12 +452,13 @@ public static void FindWorldBounds()
static bool SetBakingContext(List perSceneData)
{
+ var prv = ProbeReferenceVolume.instance;
bool isBakingSingleScene = false;
for (int i = 0; i < perSceneData.Count; ++i)
{
var data = perSceneData[i];
var scene = data.gameObject.scene;
- var bakingSet = ProbeReferenceVolume.instance.sceneData.GetBakingSetForScene(scene);
+ var bakingSet = ProbeVolumeBakingSet.GetBakingSetForScene(scene);
if (bakingSet != null && bakingSet.singleSceneMode)
{
isBakingSingleScene = true;
@@ -478,7 +472,8 @@ static bool SetBakingContext(List perSceneData)
{
var data = perSceneData[i];
var scene = data.gameObject.scene;
- var bakingSet = ProbeReferenceVolume.instance.sceneData.GetBakingSetForScene(scene);
+ var sceneGUID = scene.GetGUID();
+ var bakingSet = ProbeVolumeBakingSet.GetBakingSetForScene(sceneGUID);
if (bakingSet == null)
{
@@ -493,15 +488,13 @@ static bool SetBakingContext(List perSceneData)
bakingSet.BlendLightingScenario(null, 0.0f);
// In case a scene is duplicated, we need to store the right scene GUID
- if (data.sceneGUID != data.gameObject.scene.GetGUID())
+ if (data.sceneGUID != sceneGUID)
{
- data.sceneGUID = data.gameObject.scene.GetGUID();
+ data.sceneGUID = sceneGUID;
}
if (i == 0)
- {
m_BakingSet = bakingSet;
- }
else if (!m_BakingSet.IsEquivalent(bakingSet))
return false;
}
@@ -511,7 +504,7 @@ static bool SetBakingContext(List perSceneData)
static void EnsurePerSceneDataInOpenScenes()
{
- var sceneData = ProbeReferenceVolume.instance.sceneData;
+ var prv = ProbeReferenceVolume.instance;
var activeScene = SceneManager.GetActiveScene();
// We assume that all the per scene data for all the scenes in the set have been set with the scene been saved at least once. However we also update the scenes that are currently loaded anyway for security.
@@ -522,10 +515,12 @@ static void EnsurePerSceneDataInOpenScenes()
var scene = SceneManager.GetSceneAt(i);
if (!scene.isLoaded)
continue;
- sceneData.OnSceneSaving(scene); // We need to perform the same actions we do when the scene is saved.
- var activeSet = sceneData.GetBakingSetForScene(activeScene); // Must be done after OnSceneSaved because it can put the set in the default baking set if needed.
- var sceneBakingSet = sceneData.GetBakingSetForScene(scene);
- if (sceneBakingSet != null && sceneBakingSet != activeSet && sceneData.SceneHasProbeVolumes(scene))
+
+ ProbeVolumeBakingSet.OnSceneSaving(scene); // We need to perform the same actions we do when the scene is saved.
+ prv.TryGetBakingSetForLoadedScene(activeScene, out var activeSet); // Must be done after OnSceneSaved because it can put the set in the default baking set if needed.
+ prv.TryGetBakingSetForLoadedScene(scene, out var sceneBakingSet);
+
+ if (sceneBakingSet != null && sceneBakingSet != activeSet && ProbeVolumeBakingSet.SceneHasProbeVolumes(ProbeReferenceVolume.GetSceneGUID(scene)))
{
Debug.LogError($"Scene at {scene.path} is loaded and has probe volumes, but not part of the same baking set as the active scene. This will result in an error. Please make sure all loaded scenes are part of the same baking sets.");
}
@@ -536,7 +531,7 @@ static void EnsurePerSceneDataInOpenScenes()
for (int i = ProbeReferenceVolume.instance.perSceneDataList.Count - 1; i >= 0; i--)
{
var perSceneData = ProbeReferenceVolume.instance.perSceneDataList[i];
- if (!sceneData.SceneHasProbeVolumes(perSceneData.gameObject.scene))
+ if (!ProbeVolumeBakingSet.SceneHasProbeVolumes(perSceneData.sceneGUID))
CoreUtils.Destroy(perSceneData.gameObject);
}
}
@@ -616,7 +611,6 @@ static public bool InitializeBake()
m_TotalCellCounts = new CellCounts();
m_ProfileInfo = GetProfileInfoFromBakingSet(m_BakingSet);
-
if (isFreezingPlacement)
{
ModifyProfileFromLoadedData(m_BakingSet);
@@ -648,7 +642,7 @@ static public bool InitializeBake()
foreach (var data in ProbeReferenceVolume.instance.perSceneDataList)
{
// It can be null if the scene was never added to a baking set and we are baking in single scene mode, in that case we don't have a baking set for it yet and we need to skip
- if (ProbeReferenceVolume.instance.sceneData.GetBakingSetForScene(data.gameObject.scene))
+ if (data.bakingSet != null)
data.Initialize();
}
@@ -939,11 +933,14 @@ static void GenerateScenesCellLists(List bakedSceneData
var bakedSceneGUIDList = new List();
foreach (var data in bakedSceneDataList)
{
- Debug.Assert(ProbeReferenceVolume.instance.sceneData.SceneHasProbeVolumes(data.sceneGUID));
+ Debug.Assert(ProbeVolumeBakingSet.SceneHasProbeVolumes(data.sceneGUID));
bakedSceneGUIDList.Add(data.sceneGUID);
- data.bakingSet = m_BakingSet;
- EditorUtility.SetDirty(data);
+ if (m_BakingSet != data.bakingSet)
+ {
+ data.bakingSet = m_BakingSet;
+ EditorUtility.SetDirty(data);
+ }
}
var currentPerSceneCellList = m_BakingSet.perSceneCellLists; // Cell lists from last baking.
@@ -1016,7 +1013,7 @@ static void PrepareCellsForWriting(bool isBakingSubset)
if (!loadedSceneDataList.Exists((x) => x.sceneGUID == sceneGUID) && cellList.Count != 0)
{
// Resolve its data in CPU memory.
- bool resolved = m_BakingSet.ResolveCellData(sceneGUID);
+ bool resolved = m_BakingSet.ResolveCellData(cellList);
Debug.Assert(resolved, "Could not resolve unloaded scene data");
}
}
@@ -1254,12 +1251,12 @@ static public void ApplyPostBakeOperations(NativeArray sh,
fetchScope.Dispose();
m_BakingBatchIndex = 0;
-
+
+ // Don't use Disk streaming to avoid having to wait for it when doing dilation.
+ ProbeReferenceVolume.instance.ForceNoDiskStreaming(true);
// Force maximum sh bands to perform baking, we need to store what sh bands was selected from the settings as we need to restore it after.
var prevSHBands = ProbeReferenceVolume.instance.shBands;
ProbeReferenceVolume.instance.ForceSHBand(ProbeVolumeSHBands.SphericalHarmonicsL2);
- // Don't use Disk streaming to avoid having to wait for it when doing dilation.
- ProbeReferenceVolume.instance.ForceNoDiskStreaming(true);
PrepareCellsForWriting(isBakingSceneSubset);
@@ -1311,8 +1308,8 @@ static public void ApplyPostBakeOperations(NativeArray sh,
PerformDilation();
// Need to restore the original sh bands
- ProbeReferenceVolume.instance.ForceSHBand(prevSHBands);
ProbeReferenceVolume.instance.ForceNoDiskStreaming(false);
+ ProbeReferenceVolume.instance.ForceSHBand(prevSHBands);
// Mark old bakes as out of date if needed
ProbeVolumeLightingTab.instance?.UpdateScenarioStatuses(ProbeReferenceVolume.instance.lightingScenario);
@@ -2299,7 +2296,7 @@ public static ProbeSubdivisionResult BakeBricks(ProbeSubdivisionContext ctx)
if (ProbeVolumePositioning.OBBAABBIntersect(probeVolume.volume, cell.bounds, probeVolume.bounds))
{
overlappingProbeVolumes.Add(probeVolume);
- scenesInCell.Add(ProbeVolumeSceneData.GetSceneGUID(probeVolume.component.gameObject.scene));
+ scenesInCell.Add(ProbeReferenceVolume.GetSceneGUID(probeVolume.component.gameObject.scene));
}
}
@@ -2314,9 +2311,9 @@ public static ProbeSubdivisionResult BakeBricks(ProbeSubdivisionContext ctx)
continue;
foreach (var renderer in filteredContributors.renderers)
- scenesInCell.Add(ProbeVolumeSceneData.GetSceneGUID(renderer.component.gameObject.scene));
+ scenesInCell.Add(ProbeReferenceVolume.GetSceneGUID(renderer.component.gameObject.scene));
foreach (var terrain in filteredContributors.terrains)
- scenesInCell.Add(ProbeVolumeSceneData.GetSceneGUID(terrain.component.gameObject.scene));
+ scenesInCell.Add(ProbeReferenceVolume.GetSceneGUID(terrain.component.gameObject.scene));
result.cells.Add((cell.position, cell.bounds, bricks));
result.scenesPerCells[cell.position] = scenesInCell;
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbePlacement.cs b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbePlacement.cs
index 50025e8033b..ed8f09107ea 100644
--- a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbePlacement.cs
+++ b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbePlacement.cs
@@ -592,7 +592,7 @@ static void VoxelizeProbeVolumeData(CommandBuffer cmd, Bounds cellAABB,
pvAABB.max = Vector3.Min(pvAABB.max, cellAABB.max);
// Compute the max size of a brick that can fit in the biggest dimension of a probe volume
- int subdivLevel = ProbeVolumeSceneData.MaxSubdivLevelInProbeVolume(pvAABB.size, maxSubdiv);
+ int subdivLevel = ProbeVolumeBakingSet.MaxSubdivLevelInProbeVolume(pvAABB.size, maxSubdiv);
if (kp.component.fillEmptySpaces)
subdivLevel = ctx.maxSubdivisionLevelInSubCell - minSubdiv;
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeSubdivisionContext.cs b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeSubdivisionContext.cs
index 5783f034353..1297db2d98c 100644
--- a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeSubdivisionContext.cs
+++ b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeSubdivisionContext.cs
@@ -43,10 +43,10 @@ static void UpdateRealtimeSubdivisionDebug()
if (Time.realtimeSinceStartupAsDouble - s_LastSubdivisionTime > debugDisplay.subdivisionDelayInSeconds)
{
var probeVolume = GameObject.FindFirstObjectByType();
- if (probeVolume == null || !probeVolume.isActiveAndEnabled || ProbeReferenceVolume.instance.sceneData == null)
+ if (probeVolume == null || !probeVolume.isActiveAndEnabled)
return;
- var profile = ProbeReferenceVolume.instance.sceneData.GetBakingSetForScene(probeVolume.gameObject.scene);
+ var profile = ProbeVolumeBakingSet.GetBakingSetForScene(probeVolume.gameObject.scene);
if (profile == null)
return;
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeTouchupVolumeEditor.cs b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeTouchupVolumeEditor.cs
index 23952a38af5..86825d939ab 100644
--- a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeTouchupVolumeEditor.cs
+++ b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeTouchupVolumeEditor.cs
@@ -126,7 +126,7 @@ public static void DrawTouchupContent(SerializedProbeTouchupVolume serialized, E
{
ProbeTouchupVolume ptv = (serialized.serializedObject.targetObject as ProbeTouchupVolume);
- var bakingSet = ProbeReferenceVolume.instance.sceneData.GetBakingSetForScene(ptv.gameObject.scene);
+ var bakingSet = ProbeVolumeBakingSet.GetBakingSetForScene(ptv.gameObject.scene);
bool useVirtualOffset = bakingSet != null ? bakingSet.settings.virtualOffsetSettings.useVirtualOffset : false;
bool useSkyOcclusion = bakingSet.bakedSkyShadingDirection && bakingSet.bakedSkyOcclusion;
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeVolumeBakingSetEditor.cs b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeVolumeBakingSetEditor.cs
index 391b367e7fb..2bfa5cb675b 100644
--- a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeVolumeBakingSetEditor.cs
+++ b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeVolumeBakingSetEditor.cs
@@ -106,7 +106,7 @@ void OnEnable()
m_SkyOcclusionBackFaceCulling = serializedObject.FindProperty(nameof(ProbeVolumeBakingSet.skyOcclusionBackFaceCulling));
m_SkyOcclusionShadingDirection = serializedObject.FindProperty(nameof(ProbeVolumeBakingSet.skyOcclusionShadingDirection));
- if (ProbeReferenceVolume.instance.enableScenarioBlending)
+ if (ProbeReferenceVolume.instance.supportScenarioBlending)
{
hasPendingScenarioUpdate = true;
Lightmapping.lightingDataCleared += UpdateScenarioStatuses;
@@ -345,9 +345,9 @@ void SetActiveScenario(string scenario)
if (scenario == ProbeReferenceVolume.instance.lightingScenario)
return;
- Undo.RegisterCompleteObjectUndo(ProbeReferenceVolume.instance.sceneData.parentAsset, "Change active scenario");
- ProbeReferenceVolume.instance.SetActiveScenario(scenario, false);
- EditorUtility.SetDirty(ProbeReferenceVolume.instance.sceneData.parentAsset);
+ Undo.RegisterCompleteObjectUndo(bakingSet, "Change active scenario");
+ bakingSet.SetActiveScenario(scenario, false);
+ EditorUtility.SetDirty(bakingSet);
SceneView.RepaintAll();
}
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeVolumeBuildProcessor.cs b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeVolumeBuildProcessor.cs
index 36dc5f1816e..2f54202078b 100644
--- a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeVolumeBuildProcessor.cs
+++ b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeVolumeBuildProcessor.cs
@@ -16,6 +16,14 @@ string GetTempAPVStreamingAssetsPath()
return Path.Combine(libraryPath, kTempAPVStreamingAssetsPath);
}
+ void PrepareStreamableAsset(ProbeVolumeStreamableAsset asset, string basePath, bool useStreamingAsset)
+ {
+ asset.UpdateAssetReference(useStreamingAsset);
+
+ if (useStreamingAsset)
+ CopyStreamableAsset(asset, basePath);
+ }
+
void CopyStreamableAsset(ProbeVolumeStreamableAsset asset, string basePath)
{
var assetPath = asset.GetAssetPath();
@@ -27,14 +35,14 @@ void CopyStreamableAsset(ProbeVolumeStreamableAsset asset, string basePath)
File.Copy(assetPath, Path.Combine(basePath, asset.assetGUID + ".bytes"));
}
- void GetProbeVolumeProjectSettings(BuildPlayerContext buildPlayerContext, out ProbeVolumeSHBands maxSHBands, out ProbeVolumeSceneData sceneData)
+ void GetProbeVolumeProjectSettings(BuildPlayerContext buildPlayerContext, out bool supportProbeVolume, out ProbeVolumeSHBands maxSHBands)
{
// Grab all assets used for the build.
List srpAssets = new List();
buildPlayerContext.BuildPlayerOptions.target.TryGetRenderPipelineAssets(srpAssets);
maxSHBands = ProbeVolumeSHBands.SphericalHarmonicsL1;
- sceneData = null;
+ supportProbeVolume = false;
foreach (var asset in srpAssets)
{
@@ -42,22 +50,25 @@ void GetProbeVolumeProjectSettings(BuildPlayerContext buildPlayerContext, out Pr
// If at least one asset needs L2 then we can return.
if (probeVolumeEnabledRenderPipeline != null)
{
+ supportProbeVolume |= probeVolumeEnabledRenderPipeline.supportProbeVolume;
+
if (probeVolumeEnabledRenderPipeline.maxSHBands == ProbeVolumeSHBands.SphericalHarmonicsL2)
maxSHBands = ProbeVolumeSHBands.SphericalHarmonicsL2;
-
- sceneData = probeVolumeEnabledRenderPipeline.probeVolumeSceneData;
}
}
}
public override void PrepareForBuild(BuildPlayerContext buildPlayerContext)
{
- GetProbeVolumeProjectSettings(buildPlayerContext, out var maxSHBands, out var probeVolumeSceneData);
+ GetProbeVolumeProjectSettings(buildPlayerContext, out bool supportProbeVolume, out var maxSHBands);
- // No APV in the project.
- if (probeVolumeSceneData == null)
+ if (!supportProbeVolume)
return;
+ // We need to make sure the baking set map is properly initialized.
+ // Since it's done only at APV init, we call it explicitely here in case APV was not used yet in this session.
+ ProbeVolumeBakingSet.SyncBakingSets();
+
var tempStreamingAssetsPath = GetTempAPVStreamingAssetsPath();
// Delete previously built data. This way we remove any data from scenes that are no longer in the build.
@@ -71,7 +82,7 @@ public override void PrepareForBuild(BuildPlayerContext buildPlayerContext)
foreach (var scene in buildPlayerContext.BuildPlayerOptions.scenes)
{
var sceneGUID = AssetDatabase.AssetPathToGUID(scene);
- var bakingSet = probeVolumeSceneData.GetBakingSetForScene(sceneGUID);
+ var bakingSet = ProbeVolumeBakingSet.GetBakingSetForScene(sceneGUID);
if (bakingSet != null)
{
// Already processed (different scenes can belong to the same baking set).
@@ -86,19 +97,21 @@ public override void PrepareForBuild(BuildPlayerContext buildPlayerContext)
Directory.CreateDirectory(basePath);
- CopyStreamableAsset(bakingSet.cellSharedDataAsset, basePath);
- CopyStreamableAsset(bakingSet.cellBricksDataAsset, basePath);
+ bool useStreamingAsset = !GraphicsSettings.GetRenderPipelineSettings().probeVolumeDisableStreamingAssets;
+
+ PrepareStreamableAsset(bakingSet.cellSharedDataAsset, basePath, useStreamingAsset);
+ PrepareStreamableAsset(bakingSet.cellBricksDataAsset, basePath, useStreamingAsset);
// For now we always strip support data in build as it's mostly unsupported.
// Later we'll need a proper option to strip it or not.
bool stripSupportData = true;
if (!stripSupportData)
- CopyStreamableAsset(bakingSet.cellSupportDataAsset, basePath);
+ PrepareStreamableAsset(bakingSet.cellSupportDataAsset, basePath, useStreamingAsset);
foreach (var scenario in bakingSet.scenarios)
{
- CopyStreamableAsset(scenario.Value.cellDataAsset, basePath);
+ PrepareStreamableAsset(scenario.Value.cellDataAsset, basePath, useStreamingAsset);
if (maxSHBands == ProbeVolumeSHBands.SphericalHarmonicsL2)
- CopyStreamableAsset(scenario.Value.cellOptionalDataAsset, basePath);
+ PrepareStreamableAsset(scenario.Value.cellOptionalDataAsset, basePath, useStreamingAsset);
}
processedBakingSets.Add(bakingSet);
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeVolumeLightingTab.cs b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeVolumeLightingTab.cs
index 76960f4206f..5cdf4435933 100644
--- a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeVolumeLightingTab.cs
+++ b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeVolumeLightingTab.cs
@@ -113,8 +113,6 @@ static ProbeVolumeBakingSet defaultSet
bool m_TempBakingSet = false;
bool m_Initialized = false;
- ProbeVolumeSceneData sceneData => ProbeReferenceVolume.instance.sceneData;
-
ProbeVolumeBakingSet m_ActiveSet;
ProbeVolumeBakingSet activeSet
{
@@ -174,9 +172,9 @@ bool FindActiveSet()
{
if (m_ActiveSet == null)
{
- activeSet = sceneData.GetBakingSetForScene(SceneManager.GetActiveScene());
+ activeSet = ProbeVolumeBakingSet.GetBakingSetForScene(SceneManager.GetActiveScene());
for (int i = 0; activeSet == null && i < SceneManager.sceneCount; i++)
- activeSet = sceneData.GetBakingSetForScene(SceneManager.GetSceneAt(i));
+ activeSet = ProbeVolumeBakingSet.GetBakingSetForScene(SceneManager.GetSceneAt(i));
}
return m_ActiveSet != null;
@@ -228,18 +226,19 @@ public override void OnGUI()
Initialize();
+ var prv = ProbeReferenceVolume.instance;
// In single scene mode, user can't control active set, so we automatically create a new one
// in case the active scene doesn't have a baking set so that we can display baking settings
// Clone the current activeSet if possible so that it's seamless when eg. duplicating a scene
if (activeSet != null && m_SingleSceneMode)
{
var activeScene = SceneManager.GetActiveScene();
- var set = sceneData.GetBakingSetForScene(activeScene);
+ var set = ProbeVolumeBakingSet.GetBakingSetForScene(activeScene);
if (set == null)
UseTemporaryBakingSet(activeScene.GetGUID(), activeSet ? activeSet.Clone() : null);
}
- using (new EditorGUI.DisabledScope(!ProbeReferenceVolume.instance.isInitialized || !ProbeReferenceVolume.instance.enabledBySRP))
+ using (new EditorGUI.DisabledScope(!prv.isInitialized || !prv.enabledBySRP))
{
m_ScrollPosition = EditorGUILayout.BeginScrollView(m_ScrollPosition);
@@ -385,8 +384,8 @@ void SingleSceneUI()
if (m_Initialized)
{
var activeScene = SceneManager.GetActiveScene();
- var activeSceneGUID = ProbeVolumeSceneData.GetSceneGUID(activeScene);
- var activeSceneSet = sceneData.GetBakingSetForScene(activeSceneGUID);
+ var activeSceneGUID = ProbeReferenceVolume.GetSceneGUID(activeScene);
+ var activeSceneSet = ProbeVolumeBakingSet.GetBakingSetForScene(activeSceneGUID);
if (activeSceneSet && activeSceneSet.sceneGUIDs.Count == 1)
{
if (!activeSceneSet.singleSceneMode)
@@ -426,7 +425,7 @@ void ShowWarnings()
for (int i = 0; i < SceneManager.sceneCount; i++)
{
var scene = SceneManager.GetSceneAt(i);
- if (scene.isLoaded && sceneData.GetBakingSetForScene(scene) != activeSet)
+ if (scene.isLoaded && ProbeVolumeBakingSet.GetBakingSetForScene(scene) != activeSet)
scenesToUnload.Add(scene);
}
@@ -475,7 +474,7 @@ void ShowWarnings()
if (RightAlignedButton("Enable All Scenes"))
{
foreach (var scene in scenesToEnable)
- activeSet.scenesToNotBake.Remove(scene.guid);
+ activeSet.SetSceneBaking(scene.guid, true);
}
}
}
@@ -515,7 +514,7 @@ void SaveTempBakingSetIfNeeded()
AssetDatabase.CreateAsset(activeSet, path);
AssetDatabase.SaveAssets();
AssetDatabase.Refresh();
- ProbeReferenceVolume.instance.sceneData?.SyncBakingSets();
+ ProbeVolumeBakingSet.SyncBakingSets();
m_TempBakingSet = false;
}
@@ -561,23 +560,15 @@ bool TryMoveSceneToActiveSet(string sceneName, string sceneGUID, ProbeVolumeBaki
if (!EditorUtility.DisplayDialog("Move Scene to baking set", $"The scene '{sceneName}' was already added in the baking set '{oldSet.name}'. Do you want to move it to the current set?", "Yes", "Cancel"))
return false;
- Undo.RegisterCompleteObjectUndo(new Object[] { activeSet, oldSet, sceneData.parentAsset }, "Moved scene to baking set");
- if (oldSet.singleSceneMode)
- AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(oldSet));
- else
- {
- oldSet.RemoveScene(sceneGUID);
- }
- if (index == -1)
- activeSet.AddScene(sceneGUID);
- else
- activeSet.SetScene(sceneGUID, index);
+ Undo.RegisterCompleteObjectUndo(new Object[] { activeSet, oldSet }, "Moved scene to baking set");
+ activeSet.MoveSceneToBakingSet(sceneGUID, index);
+
return true;
}
void TrySetSceneInSet(SceneData scene, int index)
{
- var sceneSet = sceneData.GetBakingSetForScene(scene.guid);
+ var sceneSet = ProbeVolumeBakingSet.GetBakingSetForScene(scene.guid);
if (scene.guid == null || sceneSet == activeSet)
return;
if (sceneSet != null)
@@ -587,7 +578,7 @@ void TrySetSceneInSet(SceneData scene, int index)
}
else
{
- Undo.RegisterCompleteObjectUndo(new Object[] { activeSet, sceneData.parentAsset }, "Updated scene in baking set");
+ Undo.RegisterCompleteObjectUndo(new Object[] { activeSet }, "Updated scene in baking set");
activeSet.SetScene(scene.guid, index);
}
@@ -600,7 +591,7 @@ void TrySetSceneInSet(SceneData scene, int index)
void TryAddSceneToSet(string sceneName, string sceneGUID)
{
// Don't allow the same scene in two different sets
- var sceneSet = sceneData.GetBakingSetForScene(sceneGUID);
+ var sceneSet = ProbeVolumeBakingSet.GetBakingSetForScene(sceneGUID);
if (sceneSet == activeSet)
return;
if (sceneSet != null)
@@ -610,7 +601,7 @@ void TryAddSceneToSet(string sceneName, string sceneGUID)
}
else
{
- Undo.RegisterCompleteObjectUndo(new Object[] { activeSet, sceneData.parentAsset }, "Added scene in baking set");
+ Undo.RegisterCompleteObjectUndo(new Object[] { activeSet }, "Added scene in baking set");
activeSet.AddScene(sceneGUID);
}
@@ -632,11 +623,7 @@ void InitializeSceneList()
onRemoveCallback = (list) =>
{
- Undo.RegisterCompleteObjectUndo(new Object[] { activeSet, sceneData.parentAsset }, "Deleted scene in baking set");
-
- int[] deleteIndexes = list.selectedIndices.Count > 0 ? list.selectedIndices.ToArray() : new[] { list.index };
- foreach (var i in deleteIndexes)
- sceneData.OnSceneRemovedFromSet(activeSet.sceneGUIDs[i]);
+ Undo.RegisterCompleteObjectUndo(new Object[] { activeSet }, "Deleted scene in baking set");
ReorderableList.defaultBehaviours.DoRemoveButton(list);
EditorUtility.SetDirty(activeSet);
@@ -663,8 +650,8 @@ void InitializeSceneList()
}
});
menu.AddSeparator(string.Empty);
- menu.AddItem(Styles.toggleBakeAll, false, () => activeSet.scenesToNotBake.Clear());
- menu.AddItem(Styles.toggleBakeNone, false, () => activeSet.scenesToNotBake = new List(activeSet.sceneGUIDs));
+ menu.AddItem(Styles.toggleBakeAll, false, () => activeSet.SetAllSceneBaking(true));
+ menu.AddItem(Styles.toggleBakeNone, false, () => activeSet.SetAllSceneBaking(false));
menu.DropDown(contextMenuRect);
}
@@ -695,18 +682,20 @@ void InitializeSceneList()
bakeRect.width = 21;
bool bake = true;
- if (scene.guid != null && sceneData.SceneHasProbeVolumes(scene.guid))
+ if (scene.guid != null)
{
- EditorGUI.BeginChangeCheck();
- EditorGUI.LabelField(bakeRect, Styles.bakeBox); // Show a tooltip on the checkbox
- bake = EditorGUI.Toggle(bakeRect, !activeSet.scenesToNotBake.Contains(scene.guid) && isLoaded);
- if (EditorGUI.EndChangeCheck())
+ var bakeData = activeSet.GetSceneBakeData(scene.guid);
+ if (bakeData.hasProbeVolume)
{
- Undo.RegisterCompleteObjectUndo(activeSet, "Set scene bake status");
- EditorUtility.SetDirty(activeSet);
-
- if (bake) activeSet.scenesToNotBake.Remove(scene.guid);
- else activeSet.scenesToNotBake.Add(scene.guid);
+ EditorGUI.BeginChangeCheck();
+ EditorGUI.LabelField(bakeRect, Styles.bakeBox); // Show a tooltip on the checkbox
+ bake = EditorGUI.Toggle(bakeRect, bakeData.bakeScene && isLoaded);
+ if (EditorGUI.EndChangeCheck())
+ {
+ Undo.RegisterCompleteObjectUndo(activeSet, "Set scene bake status");
+ EditorUtility.SetDirty(activeSet);
+ bakeData.bakeScene = bake;
+ }
}
}
@@ -802,16 +791,17 @@ internal void OnSceneOpened(Scene scene, OpenSceneMode mode)
{
if (scene == SceneManager.GetActiveScene())
{
+ var prv = ProbeReferenceVolume.instance;
// Find the set in which the new active scene belongs
- var set = sceneData.GetBakingSetForScene(scene);
+ var set = ProbeVolumeBakingSet.GetBakingSetForScene(scene);
if (set != null)
{
activeSet = set;
// If we load a new scene that doesn't have the current scenario, change it
- if (!set.m_LightingScenarios.Contains(ProbeReferenceVolume.instance.lightingScenario))
- ProbeReferenceVolume.instance.SetActiveScenario(set.m_LightingScenarios[0], false);
+ if (!set.m_LightingScenarios.Contains(prv.lightingScenario))
+ prv.SetActiveScenario(set.m_LightingScenarios[0], false);
}
}
@@ -824,9 +814,6 @@ internal void OnSceneOpened(Scene scene, OpenSceneMode mode)
void UpdateSceneData()
{
- // Should not be needed on top of the Update call.
- EditorUtility.SetDirty(sceneData.parentAsset);
-
activeSetEditor.UpdateScenarioStatuses();
}
@@ -877,7 +864,7 @@ internal static bool AllSetScenesAreLoaded(ProbeVolumeBakingSet set)
var dataList = ProbeReferenceVolume.instance.perSceneDataList;
foreach (var guid in set.sceneGUIDs)
{
- if (!ProbeReferenceVolume.instance.sceneData.SceneHasProbeVolumes(guid))
+ if (!ProbeVolumeBakingSet.SceneHasProbeVolumes(guid))
continue;
if (dataList.All(data => data.gameObject.scene.GetGUID() != guid))
return false;
@@ -954,7 +941,8 @@ static bool BakeAllReflectionProbes()
internal bool PrepareAPVBake()
{
- if (!ProbeReferenceVolume.instance.isInitialized || !ProbeReferenceVolume.instance.enabledBySRP || sceneData == null)
+ var prv = ProbeReferenceVolume.instance;
+ if (!prv.isInitialized || !prv.enabledBySRP)
return false;
// In case UI was never opened we have to setup some stuff
@@ -964,7 +952,7 @@ internal bool PrepareAPVBake()
{
// APV was never setup by the user, try to do it for him by creating a default baking set
var activeScene = SceneManager.GetActiveScene();
- var activeSceneGUID = ProbeVolumeSceneData.GetSceneGUID(activeScene);
+ var activeSceneGUID = ProbeReferenceVolume.GetSceneGUID(activeScene);
UseTemporaryBakingSet(activeSceneGUID);
}
@@ -1002,9 +990,11 @@ internal bool PrepareAPVBake()
for (int i = 0; i < SceneManager.sceneCount; i++)
{
var scene = SceneManager.GetSceneAt(i);
- var guid = ProbeVolumeSceneData.GetSceneGUID(scene);
- if (!scene.isLoaded || sceneData.GetBakingSetForScene(guid) != activeSet) continue;
- if (sceneData.SceneHasProbeVolumes(guid) && activeSet.scenesToNotBake.Contains(guid)) continue;
+ var guid = ProbeReferenceVolume.GetSceneGUID(scene);
+ var sceneBakingSet = ProbeVolumeBakingSet.GetBakingSetForScene(guid);
+ if (!scene.isLoaded || sceneBakingSet != activeSet) continue;
+ var sceneBakeData = sceneBakingSet.GetSceneBakeData(guid);
+ if (sceneBakeData.hasProbeVolume && !sceneBakeData.bakeScene) continue;
ProbeGIBaking.partialBakeSceneList.Add(guid);
}
@@ -1345,12 +1335,12 @@ class ProbeVolumeOverlay : Overlay, ITransientOverlay
(int maxSubdiv, float minDistance) GetSettings()
{
- if (ProbeReferenceVolume.instance.probeVolumeDebug.realtimeSubdivision && ProbeReferenceVolume.instance.sceneData != null)
+ if (ProbeReferenceVolume.instance.probeVolumeDebug.realtimeSubdivision)
{
var probeVolume = GameObject.FindFirstObjectByType();
if (probeVolume != null && probeVolume.isActiveAndEnabled)
{
- var profile = ProbeReferenceVolume.instance.sceneData.GetBakingSetForScene(probeVolume.gameObject.scene);
+ var profile = ProbeVolumeBakingSet.GetBakingSetForScene(probeVolume.gameObject.scene);
if (profile != null)
return (profile.maxSubdivision, profile.minDistanceBetweenProbes);
}
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeVolumeResourceStripper.cs b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeVolumeResourceStripper.cs
new file mode 100644
index 00000000000..c69b2693214
--- /dev/null
+++ b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeVolumeResourceStripper.cs
@@ -0,0 +1,52 @@
+using System.Collections.Generic;
+using UnityEngine.Rendering;
+
+namespace UnityEditor.Rendering
+{
+ class ProbeVolumeRuntimeResourceStripper : IRenderPipelineGraphicsSettingsStripper
+ {
+ public bool active => true;
+
+ public bool CanRemoveSettings(ProbeVolumeRuntimeResources settings) => !ProbeVolumeGlobalSettingsStripper.ProbeVolumeSupportedForBuild();
+ }
+
+ class ProbeVolumeDebugResourceStripper : IRenderPipelineGraphicsSettingsStripper
+ {
+ public bool active => true;
+
+ public bool CanRemoveSettings(ProbeVolumeDebugResources settings)
+ {
+ var stripDebugVariants = false;
+ if (GraphicsSettings.TryGetCurrentRenderPipelineGlobalSettings(out var globalSettings) && globalSettings is IShaderVariantSettings shaderVariantSettings)
+ stripDebugVariants = shaderVariantSettings.stripDebugVariants;
+
+ return stripDebugVariants || !ProbeVolumeGlobalSettingsStripper.ProbeVolumeSupportedForBuild();
+ }
+ }
+
+ class ProbeVolumeGlobalSettingsStripper : IRenderPipelineGraphicsSettingsStripper
+ {
+ public bool active => true;
+
+ public bool CanRemoveSettings(ProbeVolumeGlobalSettings settings) => !ProbeVolumeSupportedForBuild();
+
+ public static bool ProbeVolumeSupportedForBuild()
+ {
+ bool supportProbeVolume = false;
+
+ using (ListPool.Get(out List rpAssets))
+ {
+ if (UnityEditor.EditorUserBuildSettings.activeBuildTarget.TryGetRenderPipelineAssets(rpAssets))
+ {
+ foreach (var asset in rpAssets)
+ {
+ if (asset is IProbeVolumeEnabledRenderPipeline probeVolumeEnabledAsset)
+ supportProbeVolume |= probeVolumeEnabledAsset.supportProbeVolume;
+ }
+ }
+ }
+
+ return supportProbeVolume;
+ }
+ }
+}
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeVolumeResourceStripper.cs.meta b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeVolumeResourceStripper.cs.meta
new file mode 100644
index 00000000000..41a0e20e8cc
--- /dev/null
+++ b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeVolumeResourceStripper.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 10248537d08fe3d44bef6245d7d1868c
\ No newline at end of file
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeVolumeUI.Drawer.cs b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeVolumeUI.Drawer.cs
index 3d2e2b9b432..5906cd40d79 100644
--- a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeVolumeUI.Drawer.cs
+++ b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeVolumeUI.Drawer.cs
@@ -35,12 +35,8 @@ static void Drawer_BakeToolBar(SerializedProbeVolume serialized, Editor owner)
// Get minBrickSize from scene profile if available
float minBrickSize = ProbeReferenceVolume.instance.MinBrickSize();
- if (ProbeReferenceVolume.instance.sceneData != null)
- {
- var profile = ProbeReferenceVolume.instance.sceneData.GetBakingSetForScene(pv.gameObject.scene);
- if (profile != null)
- minBrickSize = profile.minBrickSize;
- }
+ if (ProbeReferenceVolume.instance.TryGetBakingSetForLoadedScene(pv.gameObject.scene, out var profile))
+ minBrickSize = profile.minBrickSize;
var bounds = pv.ComputeBounds(filter.Value, pv.gameObject.scene);
pv.transform.position = bounds.center;
@@ -99,8 +95,7 @@ static void Drawer_VolumeContent(SerializedProbeVolume serialized, Editor owner)
{
ProbeVolume pv = (serialized.serializedObject.targetObject as ProbeVolume);
- var profile = ProbeReferenceVolume.instance.sceneData.GetBakingSetForScene(pv.gameObject.scene);
- bool hasProfile = profile != null;
+ bool hasProfile = ProbeReferenceVolume.instance.TryGetBakingSetForLoadedScene(pv.gameObject.scene, out var profile);
EditorGUILayout.PropertyField(serialized.mode);
if (serialized.mode.intValue == (int)ProbeVolume.Mode.Local)
@@ -136,7 +131,7 @@ static void Drawer_VolumeContent(SerializedProbeVolume serialized, Editor owner)
// Get settings from scene profile if available
int maxSubdiv = ProbeReferenceVolume.instance.GetMaxSubdivision() - 1;
float minDistance = ProbeReferenceVolume.instance.MinDistanceBetweenProbes();
- if (ProbeReferenceVolume.instance.sceneData != null && hasProfile)
+ if (hasProfile)
{
maxSubdiv = profile.maxSubdivision - 1;
minDistance = profile.minDistanceBetweenProbes;
diff --git a/Packages/com.unity.render-pipelines.core/Editor/LookDev/DisplayWindow.DebugSidePanel.cs b/Packages/com.unity.render-pipelines.core/Editor/LookDev/DisplayWindow.DebugSidePanel.cs
index e44bc8e292c..7615c0739f5 100644
--- a/Packages/com.unity.render-pipelines.core/Editor/LookDev/DisplayWindow.DebugSidePanel.cs
+++ b/Packages/com.unity.render-pipelines.core/Editor/LookDev/DisplayWindow.DebugSidePanel.cs
@@ -99,10 +99,6 @@ void ReadValueFromSourcesWithoutNotify(K element, Func fro
class MultipleDifferentValue : TextElement
{
- public new class UxmlFactory : UxmlFactory { }
-
- public new class UxmlTraits : TextElement.UxmlTraits { }
-
public new static readonly string ussClassName = "unity-multipledifferentevalue";
public MultipleDifferentValue()
diff --git a/Packages/com.unity.render-pipelines.core/Editor/LookDev/ToolbarRadio.cs b/Packages/com.unity.render-pipelines.core/Editor/LookDev/ToolbarRadio.cs
index cfd19d55c1c..bcf625dc312 100644
--- a/Packages/com.unity.render-pipelines.core/Editor/LookDev/ToolbarRadio.cs
+++ b/Packages/com.unity.render-pipelines.core/Editor/LookDev/ToolbarRadio.cs
@@ -7,9 +7,6 @@ namespace UnityEditor.Rendering.LookDev
{
class ToolbarRadio : UIElements.Toolbar, INotifyValueChanged
{
- public new class UxmlFactory : UxmlFactory { }
- public new class UxmlTraits : Button.UxmlTraits { }
-
List radios = new List();
public new static readonly string ussClassName = "unity-toolbar-radio";
diff --git a/Packages/com.unity.render-pipelines.core/Editor/RenderGraph/RenderGraphViewer.OverlayBase.cs b/Packages/com.unity.render-pipelines.core/Editor/RenderGraph/RenderGraphViewer.OverlayBase.cs
new file mode 100644
index 00000000000..55d06b825b3
--- /dev/null
+++ b/Packages/com.unity.render-pipelines.core/Editor/RenderGraph/RenderGraphViewer.OverlayBase.cs
@@ -0,0 +1,53 @@
+using UnityEditor.Overlays;
+using UnityEngine;
+using UnityEngine.UIElements;
+
+namespace UnityEditor.Rendering
+{
+ public partial class RenderGraphViewer
+ {
+ enum DisplayState
+ {
+ Empty,
+ Populated
+ }
+
+ abstract class OverlayBase : Overlay
+ {
+ const string kContentContainerName = "content-container";
+ const string kEmptyContentsMessageName = "empty-contents-message";
+
+ protected VisualElement root;
+
+ protected bool FindMainScrollView(out ScrollView scrollView)
+ {
+ scrollView = root?.Q(kContentContainerName);
+ return scrollView != null;
+ }
+
+ protected bool FindEmptyContentsMessage(out VisualElement element)
+ {
+ element = root?.Q(kEmptyContentsMessageName);
+ return element != null;
+ }
+
+ protected void Init(string title)
+ {
+ displayName = title;
+ defaultSize = new Vector2(300, 300);
+ minSize = new Vector2(100, 100);
+ maxSize = new Vector2(1500, 1500);
+ }
+
+ protected void SetDisplayState(DisplayState state)
+ {
+ if (FindMainScrollView(out var mainScrollView))
+ mainScrollView.style.display = state == DisplayState.Empty ? DisplayStyle.None : DisplayStyle.Flex;
+
+ if (FindEmptyContentsMessage(out var emptyContentsMessage))
+ emptyContentsMessage.style.display =
+ state == DisplayState.Empty ? DisplayStyle.Flex : DisplayStyle.None;
+ }
+ }
+ }
+}
diff --git a/Packages/com.unity.render-pipelines.core/Editor/RenderGraph/RenderGraphViewer.OverlayBase.cs.meta b/Packages/com.unity.render-pipelines.core/Editor/RenderGraph/RenderGraphViewer.OverlayBase.cs.meta
new file mode 100644
index 00000000000..6a2b7381e1f
--- /dev/null
+++ b/Packages/com.unity.render-pipelines.core/Editor/RenderGraph/RenderGraphViewer.OverlayBase.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 217072861bb0491a9dfb26ff8b9e3282
+timeCreated: 1697696395
\ No newline at end of file
diff --git a/Packages/com.unity.render-pipelines.core/Editor/RenderGraph/RenderGraphViewer.PanManipulator.cs b/Packages/com.unity.render-pipelines.core/Editor/RenderGraph/RenderGraphViewer.PanManipulator.cs
new file mode 100644
index 00000000000..96a98c32709
--- /dev/null
+++ b/Packages/com.unity.render-pipelines.core/Editor/RenderGraph/RenderGraphViewer.PanManipulator.cs
@@ -0,0 +1,124 @@
+using System;
+using UnityEngine;
+using UnityEngine.UIElements;
+
+namespace UnityEditor.Rendering
+{
+ public partial class RenderGraphViewer
+ {
+ class PanManipulator : MouseManipulator
+ {
+ public const string k_ContentPanClassName = "content-pan";
+
+ // Minimum distance the mouse must be dragged to be considered a drag action
+ const float k_MinDragDistance = 5.0f;
+
+ Vector2 m_PanStartPosition;
+ Vector2 m_OriginalScrollOffset;
+ ScrollView m_TargetScrollView;
+ RenderGraphViewer m_Viewer;
+
+ // Whether drag action is currently active
+ public bool dragActive { get; private set; }
+
+ // Whether a new drag action can be started
+ public bool canStartDragging { get; set; } = true;
+
+ public PanManipulator(RenderGraphViewer viewer)
+ {
+ m_Viewer = viewer;
+ dragActive = false;
+ activators.Add(new ManipulatorActivationFilter { button = MouseButton.LeftMouse });
+ activators.Add(new ManipulatorActivationFilter { button = MouseButton.MiddleMouse });
+ }
+
+ protected override void RegisterCallbacksOnTarget()
+ {
+ m_TargetScrollView = target as ScrollView;
+ if (m_TargetScrollView == null)
+ throw new InvalidOperationException(
+ $"{nameof(RenderGraphViewer)}.{nameof(PanManipulator)} can only be added to a {nameof(ScrollView)}");
+
+ target.RegisterCallback(OnMouseDown);
+ target.RegisterCallback(OnMouseMove);
+ target.RegisterCallback(OnMouseUp);
+ target.RegisterCallback(OnMouseCaptureOutEvent);
+ }
+
+ protected override void UnregisterCallbacksFromTarget()
+ {
+ target.UnregisterCallback(OnMouseDown);
+ target.UnregisterCallback(OnMouseMove);
+ target.UnregisterCallback(OnMouseUp);
+ target.UnregisterCallback(OnMouseCaptureOutEvent);
+ }
+
+ void OnMouseDown(MouseDownEvent e)
+ {
+ if (dragActive)
+ {
+ e.StopImmediatePropagation();
+ return;
+ }
+
+ if (!canStartDragging || !CanStartManipulation(e))
+ return;
+
+ m_PanStartPosition = e.localMousePosition;
+ m_OriginalScrollOffset = m_TargetScrollView.scrollOffset;
+
+ dragActive = true;
+ target.CaptureMouse();
+ target.AddToClassList(k_ContentPanClassName);
+
+ e.StopImmediatePropagation();
+ }
+
+ Vector2 Diff(Vector2 localMousePosition)
+ {
+ return localMousePosition - m_PanStartPosition;
+ }
+
+ protected void OnMouseMove(MouseMoveEvent e)
+ {
+ if (!dragActive)
+ return;
+
+ // Subtract the diff because we want view content to pan in the opposite direction of the movement
+ m_TargetScrollView.scrollOffset = m_OriginalScrollOffset - Diff(e.localMousePosition);
+
+ e.StopPropagation();
+ }
+
+ protected void OnMouseUp(MouseUpEvent e)
+ {
+ if (!dragActive || !CanStopManipulation(e))
+ return;
+
+ StopManipulation();
+ e.StopPropagation();
+
+ // If it was just a click, treat it as a deselect
+ if (Diff(e.localMousePosition).magnitude < k_MinDragDistance)
+ {
+ m_Viewer.DeselectPass();
+ }
+ }
+
+ protected void OnMouseCaptureOutEvent(MouseCaptureOutEvent evt)
+ {
+ if (!dragActive)
+ return;
+
+ StopManipulation();
+ }
+
+ void StopManipulation()
+ {
+ dragActive = false;
+ target.ReleaseMouse();
+ target.RemoveFromClassList(k_ContentPanClassName);
+ }
+ }
+ }
+}
diff --git a/Packages/com.unity.render-pipelines.core/Editor/RenderGraph/RenderGraphViewer.PanManipulator.cs.meta b/Packages/com.unity.render-pipelines.core/Editor/RenderGraph/RenderGraphViewer.PanManipulator.cs.meta
new file mode 100644
index 00000000000..c8f16a39b50
--- /dev/null
+++ b/Packages/com.unity.render-pipelines.core/Editor/RenderGraph/RenderGraphViewer.PanManipulator.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 46612d3829964e2eb39c08b5c1a816e1
+timeCreated: 1696935003
\ No newline at end of file
diff --git a/Packages/com.unity.render-pipelines.core/Editor/RenderGraph/RenderGraphViewer.PassInspectorOverlay.cs b/Packages/com.unity.render-pipelines.core/Editor/RenderGraph/RenderGraphViewer.PassInspectorOverlay.cs
new file mode 100644
index 00000000000..128b39f48d3
--- /dev/null
+++ b/Packages/com.unity.render-pipelines.core/Editor/RenderGraph/RenderGraphViewer.PassInspectorOverlay.cs
@@ -0,0 +1,155 @@
+using System.Collections.Generic;
+using UnityEditor.Overlays;
+using UnityEngine;
+using UnityEngine.UIElements;
+
+namespace UnityEditor.Rendering
+{
+ public partial class RenderGraphViewer
+ {
+ [Icon("Packages/com.unity.render-pipelines.core/Editor/Icons/Processed/PassInspector Icon.asset")]
+ [Overlay(typeof(RenderGraphViewer), ViewId, "Pass Inspector", defaultLayout = Layout.Panel,
+ defaultDockZone = DockZone.RightColumn, defaultDockPosition = DockPosition.Bottom)]
+ class PassInspectorOverlay : OverlayBase, ITransientOverlay
+ {
+ public const string ViewId = "RenderGraphViewer.PassInspectorOverlay";
+
+ const string k_TemplatePath =
+ "Packages/com.unity.render-pipelines.core/Editor/UXML/RenderGraphViewer.PassInspector.uxml";
+
+ static class Classes
+ {
+ public const string kSubHeaderText = "sub-header-text";
+ public const string kAttachmentInfoItem = "attachment-info__item";
+ public const string kAttachmentInfoLineBreak = "attachment-info-line-break";
+ }
+
+ static readonly string[] k_PassTypeNames =
+ { "Legacy Render Pass", "Low Level Render Pass", "Raster Render Pass", "Compute Pass" };
+
+ public bool visible => true;
+
+ public override VisualElement CreatePanelContent()
+ {
+ Init("Pass Inspector");
+
+ if (root == null)
+ {
+ var visualTreeAsset = AssetDatabase.LoadAssetAtPath(k_TemplatePath);
+ root = visualTreeAsset.Instantiate();
+ SetDisplayState(DisplayState.Empty);
+
+ var themeStyleSheet = AssetDatabase.LoadAssetAtPath(EditorGUIUtility.isProSkin
+ ? k_DarkStylePath
+ : k_LightStylePath);
+ root.styleSheets.Add(themeStyleSheet);
+ }
+
+ return root;
+ }
+
+ public void ClearContents()
+ {
+ if (root == null)
+ return;
+
+ SetDisplayState(DisplayState.Empty);
+ }
+
+ public void PopulateContents(RenderGraphViewer viewer, List passes)
+ {
+ if (root == null)
+ return;
+
+ SetDisplayState(DisplayState.Populated);
+
+ var scrollView = root.Q();
+ scrollView.Clear();
+
+ void CreateTextElement(VisualElement parent, string text, string className = null)
+ {
+ var textElement = new TextElement();
+ textElement.text = text;
+ if (className != null)
+ textElement.AddToClassList(className);
+ parent.Add(textElement);
+ }
+
+ // Native pass info (duplicated for each pass so just look at the first)
+ var firstPass = viewer.m_CurrentDebugData.passList[passes[0]];
+
+ CreateTextElement(scrollView, "Native Render Pass Info", Classes.kSubHeaderText);
+
+ if (firstPass.nrpInfo.nativePassInfo != null)
+ {
+ if (firstPass.nrpInfo.nativePassInfo.mergedPassIds.Count == 1)
+ CreateTextElement(scrollView, "Native Pass was created from Raster Render Pass.");
+ else if (firstPass.nrpInfo.nativePassInfo.mergedPassIds.Count > 1)
+ CreateTextElement(scrollView,
+ $"Native Pass was created by merging {firstPass.nrpInfo.nativePassInfo.mergedPassIds.Count} Raster Render Passes.");
+ scrollView.Add(new TextElement
+ {
+ text = $"Pass break reasoning: {firstPass.nrpInfo.nativePassInfo.passBreakReasoning}"
+ });
+ }
+ else
+ {
+ var pass = viewer.m_CurrentDebugData.passList[passes[0]];
+ CreateTextElement(scrollView,
+ $"This is a {k_PassTypeNames[(int) pass.type]}. Only Raster Render Passes can be merged.");
+ CreateTextElement(scrollView, "Attachments", Classes.kSubHeaderText);
+ CreateTextElement(scrollView, "No attachments.");
+ }
+
+ CreateTextElement(scrollView, "Render Graph Pass Info", Classes.kSubHeaderText);
+ foreach (int passId in passes)
+ {
+ var pass = viewer.m_CurrentDebugData.passList[passId];
+ Debug.Assert(pass.nrpInfo != null); // This overlay currently assumes NRP compiler
+ var passFoldout = new Foldout();
+ passFoldout.text = $"{pass.name} ({k_PassTypeNames[(int) pass.type]})";
+ passFoldout.AddToClassList(Classes.kAttachmentInfoItem);
+
+ var lineBreak = new VisualElement();
+ lineBreak.AddToClassList(Classes.kAttachmentInfoLineBreak);
+ passFoldout.Add(lineBreak);
+
+ CreateTextElement(passFoldout,
+ $"Attachment dimensions: {pass.nrpInfo.width}x{pass.nrpInfo.height}x{pass.nrpInfo.volumeDepth}");
+ CreateTextElement(passFoldout, $"Has depth attachment: {pass.nrpInfo.hasDepth}");
+ CreateTextElement(passFoldout, $"MSAA samples: {pass.nrpInfo.samples}");
+ CreateTextElement(passFoldout, $"Async compute: {pass.async}");
+
+ scrollView.Add(passFoldout);
+ }
+
+ if (firstPass.nrpInfo.nativePassInfo != null)
+ {
+ CreateTextElement(scrollView, "Attachments", Classes.kSubHeaderText);
+ foreach (var attachmentInfo in firstPass.nrpInfo.nativePassInfo.attachmentInfos)
+ {
+ var attachmentFoldout = new Foldout();
+ attachmentFoldout.text = attachmentInfo.resourceName;
+ attachmentFoldout.AddToClassList(Classes.kAttachmentInfoItem);
+ var lineBreak = new VisualElement();
+ lineBreak.AddToClassList(Classes.kAttachmentInfoLineBreak);
+ attachmentFoldout.Add(lineBreak);
+
+ attachmentFoldout.Add(new TextElement
+ {
+ text = $"Load action: {attachmentInfo.loadAction} ({attachmentInfo.loadReason})"
+ });
+ attachmentFoldout.Add(new TextElement
+ {
+ text = $"Store action: {attachmentInfo.storeAction} ({attachmentInfo.storeReason})"
+ });
+
+ scrollView.Add(attachmentFoldout);
+ }
+ if (firstPass.nrpInfo.nativePassInfo.attachmentInfos.Count == 0)
+ CreateTextElement(scrollView, "No attachments.");
+ }
+ }
+ }
+ }
+}
diff --git a/Packages/com.unity.render-pipelines.core/Editor/RenderGraph/RenderGraphViewer.PassInspectorOverlay.cs.meta b/Packages/com.unity.render-pipelines.core/Editor/RenderGraph/RenderGraphViewer.PassInspectorOverlay.cs.meta
new file mode 100644
index 00000000000..d189dfad6db
--- /dev/null
+++ b/Packages/com.unity.render-pipelines.core/Editor/RenderGraph/RenderGraphViewer.PassInspectorOverlay.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 1e721eae86d94de78e60f8cbc5221369
+timeCreated: 1695985476
\ No newline at end of file
diff --git a/Packages/com.unity.render-pipelines.core/Editor/RenderGraph/RenderGraphViewer.ResourcesOverlay.cs b/Packages/com.unity.render-pipelines.core/Editor/RenderGraph/RenderGraphViewer.ResourcesOverlay.cs
new file mode 100644
index 00000000000..bd49312cdf1
--- /dev/null
+++ b/Packages/com.unity.render-pipelines.core/Editor/RenderGraph/RenderGraphViewer.ResourcesOverlay.cs
@@ -0,0 +1,157 @@
+using UnityEditor.Overlays;
+using UnityEngine;
+using UnityEngine.Rendering.RenderGraphModule;
+using UnityEngine.UIElements;
+
+namespace UnityEditor.Rendering
+{
+ public partial class RenderGraphViewer
+ {
+ [Icon("Packages/com.unity.render-pipelines.core/Editor/Icons/Processed/Resources Icon.asset")]
+ [Overlay(typeof(RenderGraphViewer), ViewId, "Resources", defaultLayout = Layout.Panel,
+ defaultDockZone = DockZone.LeftColumn, defaultDockPosition = DockPosition.Bottom)]
+ class ResourcesOverlay : OverlayBase, ITransientOverlay
+ {
+ public const string ViewId = "RenderGraphViewer.ResourcesOverlay";
+
+ const string k_TemplatePath =
+ "Packages/com.unity.render-pipelines.core/Editor/UXML/RenderGraphViewer.Resources.uxml";
+
+ static class Classes
+ {
+ public const string kResourceListItem = "resource-list__item";
+ public const string kResourceIconContainer = "resource-icon-container";
+ public const string kResourceIconImported = "resource-icon--imported";
+ public const string kResourceIconGlobal = "resource-icon--global";
+ public const string kResourceLineBreak = "resource-line-break";
+ public const string kImportedResource = "imported-resource";
+ public const string kResourceSelectionAnimation = "resource-list__item--selection-animation";
+ }
+
+ public bool visible => true;
+
+ VisualElement m_Content;
+
+ public override VisualElement CreatePanelContent()
+ {
+ Init("Resources");
+
+ if (root == null)
+ {
+ var visualTreeAsset = AssetDatabase.LoadAssetAtPath(k_TemplatePath);
+ root = visualTreeAsset.Instantiate();
+ SetDisplayState(DisplayState.Empty);
+
+ var themeStyleSheet = AssetDatabase.LoadAssetAtPath(EditorGUIUtility.isProSkin
+ ? k_DarkStylePath
+ : k_LightStylePath);
+ root.styleSheets.Add(themeStyleSheet);
+ }
+
+ if (m_Content != null)
+ AddContentToScrollView();
+
+ return root;
+ }
+
+ void AddContentToScrollView()
+ {
+ if (!FindMainScrollView(out var mainScrollView))
+ return;
+
+ mainScrollView.Clear();
+ mainScrollView.Add(m_Content);
+
+ SetDisplayState(DisplayState.Populated);
+ }
+
+ public void PopulateContents(RenderGraphViewer viewer)
+ {
+ m_Content = new VisualElement();
+ int resourceItemIndex = 0;
+ for (int type = 0; type < viewer.m_CurrentDebugData.resourceLists.Length; type++)
+ {
+ var resourceTypeFoldout = new Foldout();
+ resourceTypeFoldout.text = $"{k_ResourceNames[type]}s";
+
+ var resources = viewer.m_CurrentDebugData.resourceLists[type];
+ for (int i = 0; i < resources.Count; i++)
+ {
+ var res = resources[i];
+ if (!viewer.IsResourceVisible(res, (RenderGraphResourceType) type))
+ continue;
+
+ var resourceItem = new Foldout();
+ resourceItem.text = res.name;
+ resourceItem.Q().tooltip = res.name;
+ resourceItem.value = false;
+ resourceItem.userData = resourceItemIndex;
+ resourceItem.AddToClassList(Classes.kResourceListItem);
+ resourceItemIndex++;
+
+ var iconContainer = new VisualElement();
+ iconContainer.AddToClassList(Classes.kResourceIconContainer);
+
+ var importedIcon = new VisualElement();
+ importedIcon.AddToClassList(Classes.kResourceIconImported);
+ importedIcon.tooltip = "Imported resource";
+ importedIcon.style.display = res.imported ? DisplayStyle.Flex : DisplayStyle.None;
+ iconContainer.Add(importedIcon);
+ resourceItem.Q().Add(iconContainer);
+
+ if ((RenderGraphResourceType) type == RenderGraphResourceType.Texture)
+ {
+ if (res.imported)
+ resourceItem.AddToClassList(Classes.kImportedResource);
+
+ var lineBreak = new VisualElement();
+ lineBreak.AddToClassList(Classes.kResourceLineBreak);
+ resourceItem.Add(lineBreak);
+ resourceItem.Add(new Label($"Size: {res.width}x{res.height}x{res.depth}"));
+ resourceItem.Add(new Label($"Format: {res.format.ToString()}"));
+ resourceItem.Add(new Label($"Clear: {res.clearBuffer}"));
+ resourceItem.Add(new Label($"BindMS: {res.bindMS}"));
+ resourceItem.Add(new Label($"Samples: {res.samples}"));
+ if (viewer.m_CurrentDebugData.isNRPCompiler)
+ resourceItem.Add(new Label($"Memoryless: {res.memoryless}"));
+ }
+
+ resourceTypeFoldout.Add(resourceItem);
+ }
+
+ if (resourceTypeFoldout.childCount > 0)
+ m_Content.Add(resourceTypeFoldout);
+ }
+
+ AddContentToScrollView();
+ }
+
+ public void ScrollTo(int resourceItemIndex)
+ {
+ if (root == null)
+ return;
+
+ var scrollView = root.Q();
+ scrollView?.Query(classes: Classes.kResourceListItem).ForEach(foldout =>
+ {
+ int itemIndex = (int) foldout.userData;
+ if (resourceItemIndex == itemIndex)
+ {
+ // Trigger animation
+ if (!collapsed)
+ {
+ foldout.AddToClassList(Classes.kResourceSelectionAnimation);
+ foldout.RegisterCallbackOnce(_ =>
+ foldout.RemoveFromClassList(Classes.kResourceSelectionAnimation));
+ }
+
+ // Open foldout
+ foldout.value = true;
+ // Defer scrolling to allow foldout to be expanded first
+ scrollView.schedule.Execute(() => scrollView.ScrollTo(foldout)).StartingIn(50);
+ }
+ });
+ }
+ }
+ }
+}
diff --git a/Packages/com.unity.render-pipelines.core/Editor/RenderGraph/RenderGraphViewer.ResourcesOverlay.cs.meta b/Packages/com.unity.render-pipelines.core/Editor/RenderGraph/RenderGraphViewer.ResourcesOverlay.cs.meta
new file mode 100644
index 00000000000..572850446f5
--- /dev/null
+++ b/Packages/com.unity.render-pipelines.core/Editor/RenderGraph/RenderGraphViewer.ResourcesOverlay.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: e7ab4bee40ae487aa6283303a67f173c
+timeCreated: 1695972864
\ No newline at end of file
diff --git a/Packages/com.unity.render-pipelines.core/Editor/RenderGraph/RenderGraphViewer.cs b/Packages/com.unity.render-pipelines.core/Editor/RenderGraph/RenderGraphViewer.cs
index a49ee82e7e7..7185b5ee9f5 100644
--- a/Packages/com.unity.render-pipelines.core/Editor/RenderGraph/RenderGraphViewer.cs
+++ b/Packages/com.unity.render-pipelines.core/Editor/RenderGraph/RenderGraphViewer.cs
@@ -1,738 +1,1627 @@
+using System;
using UnityEngine;
using UnityEngine.UIElements;
-using UnityEditor;
using UnityEditor.UIElements;
-using UnityEngine.Rendering;
-using UnityEngine.Experimental.Rendering.RenderGraphModule;
+using UnityEngine.Rendering.RenderGraphModule;
using System.Collections.Generic;
+using UnityEditor.Overlays;
+using UnityEngine.Scripting.APIUpdating;
-///
-/// Editor window class for the Render Graph Viewer
-///
-public class RenderGraphViewer : EditorWindow
+namespace UnityEditor.Rendering
{
- static class Style
+ ///
+ /// Editor window class for the Render Graph Viewer
+ ///
+ [MovedFrom("")]
+ public partial class RenderGraphViewer : EditorWindow, ISupportsOverlays
{
- public static readonly GUIContent title = EditorGUIUtility.TrTextContent("Render Graph Viewer");
- }
-
- const float kRenderPassWidth = 20.0f;
- const float kRenderPassHeight = 20.0f;
- const float kResourceHeight = 15.0f;
-
- class CellElement : VisualElement
- {
- public CellElement(int idxStart, int idxEnd)
+ static class Names
{
- style.borderBottomLeftRadius = style.borderTopLeftRadius = style.borderBottomRightRadius = style.borderTopRightRadius = 5;
- style.borderBottomWidth = style.borderTopWidth = style.borderLeftWidth = style.borderRightWidth = 1f;
- style.borderBottomColor = style.borderTopColor = style.borderLeftColor = style.borderRightColor = new Color(0f, 0f, 0f, 1f);
- style.backgroundColor = (Color)new Color32(88, 88, 88, 255);
- style.height = kResourceHeight;
- style.left = idxStart * kRenderPassWidth;
- style.width = (idxEnd - idxStart + 1) * kRenderPassWidth;
+ public const string kCaptureButton = "capture-button";
+ public const string kCurrentGraphDropdown = "current-graph-dropdown";
+ public const string kCurrentExecutionDropdown = "current-execution-dropdown";
+ public const string kPassFilterField = "pass-filter-field";
+ public const string kResourceFilterField = "resource-filter-field";
+ public const string kContentContainer = "content-container";
+ public const string kPassList = "pass-list";
+ public const string kPassListScrollView = "pass-list-scroll-view";
+ public const string kResourceListScrollView = "resource-list-scroll-view";
+ public const string kResourceGridScrollView = "resource-grid-scroll-view";
+ public const string kResourceGrid = "resource-grid";
+ public const string kGridlineContainer = "grid-line-container";
+ public const string kHoverOverlay = "hover-overlay";
+ public const string kEmptyStateMessage = "empty-state-message";
}
- public void SetColor(StyleColor color)
+ static class Classes
{
- style.backgroundColor = color;
+ public const string kPassListItem = "pass-list__item";
+ public const string kPassListPaddingItem = "pass-list-padding-item";
+ public const string kPassTitle = "pass-title";
+ public const string kPassBlock = "pass-block";
+ public const string kPassBlockCulledPass = "pass-block--culled";
+ public const string kPassBlockAsyncPass = "pass-block--async";
+ public const string kPassHighlight = "pass--highlight";
+ public const string kPassHighlightBorder = "pass--highlight-border";
+ public const string kPassMergeIndicator = "pass-merge-indicator";
+ public const string kPassCompatibilityMessageIndicator = "pass-compatibility-message-indicator";
+
+ public const string kPassCompatibilityMessageIndicatorAnimation =
+ "pass-compatibility-message-indicator--anim";
+
+ public const string kPassCompatibilityMessageIndicatorCompatible =
+ "pass-compatibility-message-indicator--compatible";
+
+ public const string kPassSynchronizationMessageIndicator = "pass-synchronization-message-indicator";
+ public const string kResourceListItem = "resource-list__item";
+ public const string kResourceListItemHighlight = "resource-list__item--highlight";
+ public const string kResourceListPaddingItem = "resource-list-padding-item";
+ public const string kResourceIconContainer = "resource-icon-container";
+ public const string kResourceIcon = "resource-icon";
+ public const string kResourceIconImported = "resource-icon--imported";
+ public const string kResourceIconGlobalDark = "resource-icon--global-dark";
+ public const string kResourceIconGlobalLight = "resource-icon--global-light";
+ public const string kResourceIconFbfetch = "resource-icon--fbfetch";
+ public const string kResourceIconTexture = "resource-icon--texture";
+ public const string kResourceIconBuffer = "resource-icon--buffer";
+ public const string kResourceIconAccelerationStructure = "resource-icon--acceleration-structure";
+ public const string kResourceGridRow = "resource-grid__row";
+ public const string kResourceGridFocusOverlay = "resource-grid-focus-overlay";
+ public const string kResourceHelperLine = "resource-helper-line";
+ public const string kResourceHelperLineHighlight = "resource-helper-line--highlight";
+ public const string kResourceUsageRangeBlock = "usage-range-block";
+ public const string kResourceUsageRangeBlockHighlight = "usage-range-block--highlight";
+ public const string kResourceDependencyBlock = "dependency-block";
+ public const string kResourceDependencyBlockRead = "dependency-block-read";
+ public const string kResourceDependencyBlockWrite = "dependency-block-write";
+ public const string kResourceDependencyBlockReadWrite = "dependency-block-readwrite";
+ public const string kGridLine = "grid-line";
+ public const string kGridLineHighlight = "grid-line--highlight";
}
- }
- [MenuItem("Window/Analysis/Render Graph Viewer", false, 10006)]
- static void Init()
- {
- // If we got native pass data open the native pass debugger, otherwise open the old debugger.
- if (UnityEngine.Experimental.Rendering.RenderGraphModule.NativeRenderPassCompiler.NativePassCompiler.hasNativePassData)
+ const string k_TemplatePath = "Packages/com.unity.render-pipelines.core/Editor/UXML/RenderGraphViewer.uxml";
+
+ const string k_DarkStylePath =
+ "Packages/com.unity.render-pipelines.core/Editor/StyleSheets/RenderGraphViewerDark.uss";
+
+ const string k_LightStylePath =
+ "Packages/com.unity.render-pipelines.core/Editor/StyleSheets/RenderGraphViewerLight.uss";
+
+ // keep in sync with .uss
+ const int kPassWidthPx = 26;
+ const int kResourceRowHeightPx = 30;
+ const int kResourceColumnWidth = 220;
+ const int kResourceIconSize = 16;
+ const int kResourceGridMarginTopPx = 6;
+ const int kDependencyBlockHeightPx = 26;
+ const int kDependencyBlockWidthPx = kPassWidthPx;
+ const int kPassTitleAllowanceMargin = 120;
+
+ static readonly Color kReadWriteBlockFillColorDark = new Color32(0xA9, 0xD1, 0x36, 255);
+ static readonly Color kReadWriteBlockFillColorLight = new Color32(0x67, 0x9C, 0x33, 255);
+
+ readonly Dictionary> m_RegisteredGraphs = new();
+ RenderGraph.DebugData m_CurrentDebugData;
+
+ ResourcesOverlay m_ResourcesOverlay;
+ PassInspectorOverlay m_PassInspectorOverlay;
+ PanManipulator m_PanManipulator;
+
+ readonly List m_PassElementsInfo = new(); // Indexed using visiblePassIndex
+ readonly List m_ResourceElementsInfo = new(); // Indexed using visibleResourceIndex
+ readonly Dictionary m_PassIdToVisiblePassIndex = new();
+ readonly Dictionary m_VisiblePassIndexToPassId = new();
+
+ int m_CurrentHoveredVisiblePassIndex = -1;
+ int m_CurrentHoveredVisibleResourceIndex = -1;
+ int m_CurrentSelectedVisiblePassIndex = -1;
+
+ PassFilter m_PassFilter = PassFilter.CulledPasses | PassFilter.RasterPasses | PassFilter.UnsafePasses | PassFilter.ComputePasses;
+ PassFilterLegacy m_PassFilterLegacy = PassFilterLegacy.CulledPasses;
+
+ ResourceFilter m_ResourceFilter =
+ ResourceFilter.ImportedResources | ResourceFilter.Textures |
+ ResourceFilter.Buffers | ResourceFilter.AccelerationStructures;
+
+ enum EmptyStateReason
{
- RenderGraphDebugger.ShowRenderGraphDebugger();
- }
- else
+ None = 0,
+ NoExecutionRegistered,
+ NoDataAvailable,
+ WaitingForCameraRender,
+ EmptyPassFilterResult,
+ EmptyResourceFilterResult
+ };
+
+ static readonly string[] kEmptyStateMessages =
+ {
+ "",
+ "No Render Graph execution has been registered. Activate a viewport to trigger camera rendering.",
+ "No data to display. Click refresh to capture data.",
+ "Waiting for the selected camera to render. Depending on the camera, you may need to trigger rendering by selecting the Scene or Game view.",
+ "No passes to display. Select a different Pass Filter to display contents.",
+ "No resources to display. Select a different Resource Filter to display contents."
+ };
+
+ [MenuItem("Window/Analysis/Render Graph Viewer", false, 10006)]
+ static void Init()
{
- // Get existing open window or if none, make a new one:
var window = GetWindow();
window.titleContent = new GUIContent("Render Graph Viewer");
}
- }
- [System.Flags]
- enum Filter
- {
- ImportedResources = 1 << 0,
- CulledPasses = 1 << 1,
- Textures = 1 << 2,
- Buffers = 1 << 3,
- AccelerationStructures = 1 << 4,
- }
-
- struct ResourceElementInfo
- {
- public VisualElement lifetime;
- public VisualElement resourceLabel;
+ [Flags]
+ enum PassFilterLegacy
+ {
+ CulledPasses = 1 << 0,
+ }
- public void Reset()
+ [Flags]
+ enum PassFilter
{
- lifetime = null;
- resourceLabel = null;
+ CulledPasses = 1 << 0,
+ RasterPasses = 1 << 1,
+ UnsafePasses = 1 << 2,
+ ComputePasses = 1 << 3,
}
- }
- struct PassElementInfo
- {
- public VisualElement pass;
- public int remap;
+ [Flags]
+ enum ResourceFilter
+ {
+ ImportedResources = 1 << 0,
+ Textures = 1 << 1,
+ Buffers = 1 << 2,
+ AccelerationStructures = 1 << 3,
+ }
- public void Reset()
+ class ResourceElementInfo
{
- pass = null;
- remap = -1;
+ public VisualElement usageRangeBlock;
+ public VisualElement resourceListItem;
+ public VisualElement resourceHelperLine;
+ public int firstPassId;
+ public int lastPassId;
}
- }
- Dictionary> m_RegisteredGraphs = new Dictionary>();
- RenderGraphDebugData m_CurrentDebugData;
+ class ResourceRWBlock
+ {
+ public VisualElement element;
+ public string tooltip;
+ public int visibleResourceIndex;
+ public bool read;
+ public bool write;
+ public bool frameBufferFetch;
+ public bool setGlobalResource;
+ }
- VisualElement m_Root;
- VisualElement m_HeaderElement;
- VisualElement m_GraphViewerElement;
+ class PassElementInfo
+ {
+ public int passId;
+ public VisualElement passBlock;
+ public VisualElement passTitle;
+ public bool isCulled;
+ public bool isAsync;
- readonly StyleColor m_ResourceColorRead = new StyleColor(new Color(0.2f, 1.0f, 0.2f));
- readonly StyleColor m_ResourceColorWrite = new StyleColor(new Color(1.0f, 0.2f, 0.2f));
- readonly StyleColor m_ImportedResourceColor = new StyleColor(new Color(0.3f, 0.75f, 0.75f));
- readonly StyleColor m_DependencyColor = new StyleColor(new Color(1.0f, 0.75f, 0.1f));
- readonly StyleColor m_AsyncPassColor = new StyleColor(new Color(1.0f, 0.75f, 0.1f));
- readonly StyleColor m_CulledPassColor = new StyleColor(Color.black);
- readonly StyleColor m_ResourceHighlightColor = new StyleColor(Color.white);
- readonly StyleColor m_ResourceLifeHighLightColor = new StyleColor(new Color32(103, 103, 103, 255));
- StyleColor m_OriginalResourceLifeColor;
- StyleColor m_OriginalPassColor;
- StyleColor m_OriginalResourceColor;
+ // List of resource blocks read/written to by this pass
+ public readonly List resourceBlocks = new();
- DynamicArray[] m_ResourceElementsInfo = new DynamicArray[(int)RenderGraphResourceType.Count];
- DynamicArray m_PassElementsInfo = new DynamicArray();
+ public VisualElement leftGridLine;
+ public VisualElement rightGridLine;
- Filter m_Filter = Filter.Textures | Filter.Buffers;
- bool m_AsyncVisualization = false;
+ public bool hasPassCompatibilityTooltip;
+ public bool isPassCompatibleToMerge;
+ public bool hasAsyncDependencyTooltip;
+ }
- void RenderPassLabelChanged(GeometryChangedEvent evt)
- {
- var label = evt.currentTarget as Label;
- Vector2 textSize = label.MeasureTextSize(label.text, 0, VisualElement.MeasureMode.Undefined, 10, VisualElement.MeasureMode.Undefined);
- float textWidth = Mathf.Max(kRenderPassWidth, textSize.x);
- float desiredHeight = Mathf.Sqrt(textWidth * textWidth - kRenderPassWidth * kRenderPassWidth);
- // Should be able to do that and rely on the parent layout but for some reason flex-end does not work so I set the parent's parent height instead.
- //label.parent.style.height = desiredHeight;
- var passNamesContainerHeight = Mathf.Max(label.parent.parent.style.height.value.value, desiredHeight);
- label.parent.parent.style.height = passNamesContainerHeight;
- label.parent.parent.style.minHeight = passNamesContainerHeight;
-
- var topRowElement = m_GraphViewerElement.Q("GraphViewer.TopRowElement");
- topRowElement.style.minHeight = passNamesContainerHeight;
- }
+ void ResetPassBlockState()
+ {
+ foreach (var info in m_PassElementsInfo)
+ {
+ info.hasPassCompatibilityTooltip = false;
+ info.isPassCompatibleToMerge = false;
+ info.hasAsyncDependencyTooltip = false;
+
+ info.passBlock.RemoveFromClassList(Classes.kPassBlockCulledPass);
+ info.passBlock.tooltip = string.Empty;
+ if (info.isCulled)
+ {
+ info.passBlock.AddToClassList(Classes.kPassBlockCulledPass);
+ info.passBlock.tooltip = "Culled pass";
+ }
+
+ info.passBlock.RemoveFromClassList(Classes.kPassBlockAsyncPass);
+ if (info.isAsync)
+ {
+ info.passBlock.AddToClassList(Classes.kPassBlockAsyncPass);
+ info.passBlock.tooltip = "Async Compute Pass";
+ }
+
+ var groupedIds = GetGroupedPassIds(info.passId);
+ if (groupedIds.Count > 1)
+ info.passBlock.tooltip =
+ $"{groupedIds.Count} Raster Render Passes merged into a single Native Render Pass";
+ }
+ }
- void LastRenderPassLabelChanged(GeometryChangedEvent evt)
- {
- var label = evt.currentTarget as Label;
- Vector2 textSize = label.MeasureTextSize(label.text, 0, VisualElement.MeasureMode.Undefined, 10, VisualElement.MeasureMode.Undefined);
- float textWidth = Mathf.Max(kRenderPassWidth, textSize.x);
+ void UpdatePassBlocksToSelectedState(List selectedPassIds)
+ {
+ // Hide culled/async pass indicators when a block is selected
+ foreach (var info in m_PassElementsInfo)
+ {
+ info.passBlock.RemoveFromClassList(Classes.kPassBlockCulledPass);
+ info.passBlock.RemoveFromClassList(Classes.kPassBlockAsyncPass);
+ info.passBlock.tooltip = string.Empty;
+ }
- // Keep a margin on the right of the container to avoid label being clipped.
- var viewerContainer = m_GraphViewerElement.Q("GraphViewer.ViewerContainer");
- viewerContainer.style.marginRight = Mathf.Max(viewerContainer.style.marginRight.value.value, (textWidth - kRenderPassWidth));
- }
+ foreach (var passIdInGroup in selectedPassIds)
+ {
+ var pass = m_CurrentDebugData.passList[passIdInGroup];
+
+ // Native pass compatibility
+ if (m_CurrentDebugData.isNRPCompiler)
+ {
+ if (pass.nrpInfo.nativePassInfo != null && pass.nrpInfo.nativePassInfo.passCompatibility.Count > 0)
+ {
+ foreach (var msg in pass.nrpInfo.nativePassInfo.passCompatibility)
+ {
+ int linkedPassId = msg.Key;
+ string compatibilityMessage = msg.Value.message;
+ var linkedPassGroup = GetGroupedPassIds(linkedPassId);
+ foreach (var passIdInLinkedPassGroup in linkedPassGroup)
+ {
+ if (selectedPassIds.Contains(passIdInLinkedPassGroup))
+ continue; // Don't show compatibility info among passes that are merged
+
+ if (m_PassIdToVisiblePassIndex.TryGetValue(passIdInLinkedPassGroup,
+ out int visiblePassIndexInLinkedPassGroup))
+ {
+ var info = m_PassElementsInfo[visiblePassIndexInLinkedPassGroup];
+ info.hasPassCompatibilityTooltip = true;
+ info.isPassCompatibleToMerge = msg.Value.isCompatible;
+ info.passBlock.tooltip = compatibilityMessage;
+ }
+ }
+ }
+
+ // Each native pass has compatibility messages, it's enough to process the first one
+ break;
+ }
+ }
+
+ // Async compute dependencies
+ if (m_PassIdToVisiblePassIndex.TryGetValue(pass.syncFromPassIndex, out int visibleSyncFromPassIndex))
+ {
+ var syncFromPassInfo = m_PassElementsInfo[visibleSyncFromPassIndex];
+ syncFromPassInfo.hasAsyncDependencyTooltip = true;
+ syncFromPassInfo.passBlock.tooltip =
+ "Currently selected Async Compute Pass inserts a GraphicsFence, which this pass waits on.";
+ }
+
+ if (m_PassIdToVisiblePassIndex.TryGetValue(pass.syncToPassIndex, out int visibleSyncToPassIndex))
+ {
+ var syncToPassInfo = m_PassElementsInfo[visibleSyncToPassIndex];
+ syncToPassInfo.hasAsyncDependencyTooltip = true;
+ syncToPassInfo.passBlock.tooltip =
+ "Currently selected Async Compute Pass waits on a GraphicsFence inserted after this pass.";
+ }
+ }
+ }
- void UpdateResourceLifetimeColor(int passIndex, StyleColor colorRead, StyleColor colorWrite)
- {
- var pass = m_CurrentDebugData.passList[passIndex];
+ [Flags]
+ enum ResourceHighlightOptions
+ {
+ None = 1 << 0,
+ ResourceListItem = 1 << 1,
+ ResourceUsageRangeBorder = 1 << 2,
+ ResourceHelperLine = 1 << 3,
- if (pass.culled)
- return;
+ All = ResourceListItem | ResourceUsageRangeBorder | ResourceHelperLine
+ }
- for (int type = 0; type < (int)RenderGraphResourceType.Count; ++type)
+ void ClearResourceHighlight(ResourceHighlightOptions highlightOptions = ResourceHighlightOptions.All)
{
- foreach (int resourceRead in pass.resourceReadLists[type])
+ if (highlightOptions.HasFlag(ResourceHighlightOptions.ResourceListItem))
{
- CellElement resourceLifetime = m_ResourceElementsInfo[type][resourceRead].lifetime as CellElement;
- if (resourceLifetime != null)
- resourceLifetime.SetColor(colorRead);
+ rootVisualElement.Query(classes: Classes.kResourceListItem).ForEach(elem =>
+ {
+ elem.RemoveFromClassList(Classes.kResourceListItemHighlight);
+ });
}
- foreach (int resourceWrite in pass.resourceWriteLists[type])
+ if (highlightOptions.HasFlag(ResourceHighlightOptions.ResourceUsageRangeBorder))
{
- CellElement resourceLifetime = m_ResourceElementsInfo[type][resourceWrite].lifetime as CellElement;
- if (resourceLifetime != null)
- resourceLifetime.SetColor(colorWrite);
+ rootVisualElement.Query(classes: Classes.kResourceUsageRangeBlockHighlight).ForEach(elem =>
+ {
+ elem.RemoveFromHierarchy();
+ });
+ }
+
+ if (highlightOptions.HasFlag(ResourceHighlightOptions.ResourceHelperLine))
+ {
+ rootVisualElement.Query(classes: Classes.kResourceHelperLineHighlight).ForEach(elem =>
+ {
+ elem.RemoveFromClassList(Classes.kResourceHelperLineHighlight);
+ });
}
}
- }
- void MouseEnterPassCallback(MouseEnterEvent evt, int index)
- {
- if (m_AsyncVisualization)
- UpdatePassDependenciesColor(index, m_DependencyColor);
- UpdateResourceLifetimeColor(index, m_ResourceColorRead, m_ResourceColorWrite);
- }
+ void SetResourceHighlight(ResourceElementInfo info, int visibleResourceIndex, ResourceHighlightOptions highlightOptions)
+ {
+ if (highlightOptions.HasFlag(ResourceHighlightOptions.ResourceListItem))
+ {
+ info.resourceListItem.AddToClassList(Classes.kResourceListItemHighlight);
+ }
- void MouseLeavePassCallback(MouseLeaveEvent evt, int index)
- {
- if (m_AsyncVisualization)
- UpdatePassDependenciesColor(index, m_OriginalPassColor);
- UpdateResourceLifetimeColor(index, m_OriginalResourceLifeColor, m_OriginalResourceLifeColor);
- }
+ if (highlightOptions.HasFlag(ResourceHighlightOptions.ResourceUsageRangeBorder))
+ {
+ var usageRangeHighlightBlock = new VisualElement();
+ usageRangeHighlightBlock.style.left = info.usageRangeBlock.style.left.value.value - 1.0f;
+ usageRangeHighlightBlock.style.width = info.usageRangeBlock.style.width.value.value + 2.0f;
+ usageRangeHighlightBlock.style.top = visibleResourceIndex * kResourceRowHeightPx;
+ usageRangeHighlightBlock.pickingMode = PickingMode.Ignore;
+ usageRangeHighlightBlock.AddToClassList(Classes.kResourceUsageRangeBlockHighlight);
+
+ rootVisualElement.Q(Names.kResourceGrid).parent.Add(usageRangeHighlightBlock);
+ usageRangeHighlightBlock.PlaceInFront(rootVisualElement.Q(Names.kGridlineContainer));
+ }
- void UpdatePassColor(int passIndex, StyleColor color)
- {
- var passDebugData = m_CurrentDebugData.passList[passIndex];
- if (!passDebugData.culled)
+ if (highlightOptions.HasFlag(ResourceHighlightOptions.ResourceHelperLine))
+ {
+ info.resourceHelperLine.AddToClassList(Classes.kResourceHelperLineHighlight);
+ }
+ }
+
+ [Flags]
+ enum PassHighlightOptions
+ {
+ None = 1 << 0,
+ PassBlockBorder = 1 << 1,
+ PassBlockFill = 1 << 2,
+ PassTitle = 1 << 3,
+ PassGridLines = 1 << 4,
+ ResourceRWBlocks = 1 << 5,
+ PassesWithCompatibilityMessage = 1 << 6,
+ PassesWithSynchronizationMessage = 1 << 7,
+ ResourceGridFocusOverlay = 1 << 8,
+
+ All = PassBlockBorder | PassBlockFill | PassTitle | PassGridLines | ResourceRWBlocks |
+ PassesWithCompatibilityMessage | PassesWithSynchronizationMessage | ResourceGridFocusOverlay
+ }
+
+ void ClearPassHighlight(PassHighlightOptions highlightOptions = PassHighlightOptions.All)
{
+ // Remove pass block & title highlight
+ foreach (var info in m_PassElementsInfo)
+ {
+ if (highlightOptions.HasFlag(PassHighlightOptions.PassTitle))
+ info.passTitle.RemoveFromClassList(Classes.kPassHighlight);
+ if (highlightOptions.HasFlag(PassHighlightOptions.PassBlockBorder))
+ info.passBlock.RemoveFromClassList(Classes.kPassHighlightBorder);
+ if (highlightOptions.HasFlag(PassHighlightOptions.PassBlockFill))
+ info.passBlock.RemoveFromClassList(Classes.kPassHighlight);
+ if (highlightOptions.HasFlag(PassHighlightOptions.PassesWithCompatibilityMessage))
+ {
+ info.passBlock.RemoveFromClassList(Classes.kPassCompatibilityMessageIndicator);
+ info.passBlock.RemoveFromClassList(Classes.kPassCompatibilityMessageIndicatorAnimation);
+ info.passBlock.RemoveFromClassList(Classes.kPassCompatibilityMessageIndicatorCompatible);
+ info.passBlock.UnregisterCallback(ToggleCompatiblePassAnimation);
+ }
+
+ if (highlightOptions.HasFlag(PassHighlightOptions.PassesWithSynchronizationMessage))
+ info.passBlock.RemoveFromClassList(Classes.kPassSynchronizationMessageIndicator);
+ }
+
+ // Remove grid line highlight
+ if (highlightOptions.HasFlag(PassHighlightOptions.PassGridLines))
+ {
+ rootVisualElement.Query(classes: Classes.kGridLine).ForEach(elem =>
+ {
+ elem.RemoveFromClassList(Classes.kGridLineHighlight);
+ });
+ }
- VisualElement passElement = m_PassElementsInfo[passIndex].pass;
- if (passElement != null)
+ // Remove focus overlay
+ if (highlightOptions.HasFlag(PassHighlightOptions.ResourceGridFocusOverlay))
{
- VisualElement passButton = passElement.Q("RenderPass.Cell");
- passButton.style.backgroundColor = color;
+ rootVisualElement.Query(classes: Classes.kResourceGridFocusOverlay).ForEach(elem =>
+ {
+ elem.RemoveFromHierarchy();
+ });
}
}
- }
- void UpdatePassDependenciesColor(int passIndex, StyleColor color)
- {
- var pass = m_CurrentDebugData.passList[passIndex];
+ void SetPassHighlight(int visiblePassIndex, PassHighlightOptions highlightOptions)
+ {
+ if (!m_VisiblePassIndexToPassId.TryGetValue(visiblePassIndex, out int passId))
+ return;
- if (pass.culled)
- return;
+ var groupedPassIds = GetGroupedPassIds(passId);
- if (pass.syncToPassIndex != -1)
- UpdatePassColor(pass.syncToPassIndex, color);
- if (pass.syncFromPassIndex != -1)
- UpdatePassColor(pass.syncFromPassIndex, color);
- }
+ // Add pass block & title highlight
+ List visiblePassInfos = new();
+ foreach (int groupedPassId in groupedPassIds)
+ {
+ if (m_PassIdToVisiblePassIndex.TryGetValue(groupedPassId, out int groupedVisiblePassIndex))
+ {
+ var info = m_PassElementsInfo[groupedVisiblePassIndex];
+ if (highlightOptions.HasFlag(PassHighlightOptions.PassTitle))
+ info.passTitle.AddToClassList(Classes.kPassHighlight);
+ if (highlightOptions.HasFlag(PassHighlightOptions.PassBlockBorder))
+ info.passBlock.AddToClassList(Classes.kPassHighlightBorder);
+ if (highlightOptions.HasFlag(PassHighlightOptions.PassBlockFill))
+ info.passBlock.AddToClassList(Classes.kPassHighlight);
+ visiblePassInfos.Add(info);
+ }
+ }
- void UpdatePassColor((int index, int resourceType) resInfo, StyleColor colorRead, StyleColor colorWrite)
- {
- var resource = m_CurrentDebugData.resourceLists[resInfo.resourceType][resInfo.index];
- foreach (int consumer in resource.consumerList)
- UpdatePassColor(consumer, colorRead);
+ foreach (var info in m_PassElementsInfo)
+ {
+ if (groupedPassIds.Contains(info.passId))
+ continue;
+
+ if (highlightOptions.HasFlag(PassHighlightOptions.PassesWithCompatibilityMessage) &&
+ info.hasPassCompatibilityTooltip)
+ {
+ info.passBlock.AddToClassList(Classes.kPassCompatibilityMessageIndicator);
+ if (info.isPassCompatibleToMerge)
+ {
+ info.passBlock.schedule.Execute(() =>
+ {
+ info.passBlock.AddToClassList(Classes.kPassCompatibilityMessageIndicatorAnimation);
+ info.passBlock.AddToClassList(Classes.kPassCompatibilityMessageIndicatorCompatible);
+ }).StartingIn(100);
+ info.passBlock.RegisterCallback(
+ ToggleCompatiblePassAnimation, info.passBlock);
+ }
+ }
+
+ if (highlightOptions.HasFlag(PassHighlightOptions.PassesWithSynchronizationMessage) &&
+ info.hasAsyncDependencyTooltip)
+ info.passBlock.AddToClassList(Classes.kPassSynchronizationMessageIndicator);
+ }
- foreach (int producer in resource.producerList)
- UpdatePassColor(producer, colorWrite);
- }
+ // Add grid line highlight
+ if (highlightOptions.HasFlag(PassHighlightOptions.PassGridLines))
+ {
+ var firstVisiblePassInfo = visiblePassInfos[0];
+ firstVisiblePassInfo.leftGridLine.AddToClassList(Classes.kGridLineHighlight);
+
+ int nextVisiblePassIndex = FindNextVisiblePassIndex(visiblePassInfos[^1].passId + 1);
+ if (nextVisiblePassIndex != -1)
+ m_PassElementsInfo[nextVisiblePassIndex].leftGridLine.AddToClassList(Classes.kGridLineHighlight);
+ else
+ rootVisualElement.Query(classes: Classes.kGridLine).Last()
+ .AddToClassList(Classes.kGridLineHighlight);
+ }
- void UpdateResourceLabelColor((int index, int resourceType) resInfo, StyleColor color)
- {
- var label = m_ResourceElementsInfo[resInfo.resourceType][resInfo.index].resourceLabel;
- if (label != null)
+ if (highlightOptions.HasFlag(PassHighlightOptions.ResourceGridFocusOverlay))
+ {
+ int firstPassIndex = FindNextVisiblePassIndex(groupedPassIds[0]);
+ int afterLastPassIndex = FindNextVisiblePassIndex(groupedPassIds[^1] + 1);
+ int focusOverlayHeightPx = m_ResourceElementsInfo.Count * kResourceRowHeightPx + kResourceGridMarginTopPx;
+ int leftWidth = firstPassIndex * kPassWidthPx;
+ int rightWidth = (m_PassElementsInfo.Count - afterLastPassIndex) * kPassWidthPx;
+
+ VisualElement left = new VisualElement();
+ left.AddToClassList(Classes.kResourceGridFocusOverlay);
+ left.style.marginTop = kResourceGridMarginTopPx;
+ left.style.width = leftWidth;
+ left.style.height = focusOverlayHeightPx;
+ left.pickingMode = PickingMode.Ignore;
+
+ VisualElement right = new VisualElement();
+ right.AddToClassList(Classes.kResourceGridFocusOverlay);
+ right.style.marginTop = kResourceGridMarginTopPx;
+ right.style.marginLeft = afterLastPassIndex * kPassWidthPx;
+ right.style.width = rightWidth;
+ right.style.height = focusOverlayHeightPx;
+ right.pickingMode = PickingMode.Ignore;
+
+ var resourceGridScrollView = rootVisualElement.Q(Names.kResourceGridScrollView);
+ resourceGridScrollView.Add(left);
+ resourceGridScrollView.Add(right);
+ }
+ }
+
+ void ToggleCompatiblePassAnimation(TransitionEndEvent _, VisualElement element)
{
- label.style.color = color;
+ element.ToggleInClassList(Classes.kPassCompatibilityMessageIndicatorCompatible);
}
- }
- void MouseEnterResourceCallback(MouseEnterEvent evt, (int index, int resourceType) info)
- {
- CellElement resourceLifetime = m_ResourceElementsInfo[info.resourceType][info.index].lifetime as CellElement;
- resourceLifetime.SetColor(m_ResourceLifeHighLightColor);
+ // Returns a list of passes containing the pass itself and potentially others (if merging happened)
+ List GetGroupedPassIds(int passId)
+ {
+ var pass = m_CurrentDebugData.passList[passId];
+ return pass.nrpInfo?.nativePassInfo?.mergedPassIds ?? new List { passId };
+ }
- UpdatePassColor(info, m_ResourceColorRead, m_ResourceColorWrite);
- UpdateResourceLabelColor(info, m_ResourceHighlightColor);
- }
+ bool SelectResource(int visibleResourceIndex, int visiblePassIndex)
+ {
+ bool validResourceIndex = visibleResourceIndex >= 0 && visibleResourceIndex < m_ResourceElementsInfo.Count;
+ if (!validResourceIndex)
+ return false;
- void MouseLeaveResourceCallback(MouseLeaveEvent evt, (int index, int resourceType) info)
- {
- CellElement resourceLifetime = m_ResourceElementsInfo[info.resourceType][info.index].lifetime as CellElement;
- resourceLifetime.SetColor(m_OriginalResourceLifeColor);
+ var resInfo = m_ResourceElementsInfo[visibleResourceIndex];
+ if (m_VisiblePassIndexToPassId.TryGetValue(visiblePassIndex, out int passId))
+ {
+ if (passId >= resInfo.firstPassId && passId <= resInfo.lastPassId)
+ {
+ m_ResourcesOverlay.ScrollTo(visibleResourceIndex);
+ return true;
+ }
+ }
- var resource = m_CurrentDebugData.resourceLists[info.resourceType][info.index];
- UpdatePassColor(info, m_OriginalPassColor, m_OriginalPassColor);
- UpdateResourceLabelColor(info, resource.imported ? m_ImportedResourceColor : m_OriginalResourceColor); ;
- }
+ return false;
+ }
- VisualElement CreateRenderPass(string name, int index, bool culled, bool async)
- {
- var container = new VisualElement();
- container.name = "RenderPass";
- container.style.width = kRenderPassWidth;
- container.style.overflow = Overflow.Visible;
- container.style.flexDirection = FlexDirection.ColumnReverse;
- container.style.minWidth = kRenderPassWidth;
-
- var cell = new Button();
- cell.name = "RenderPass.Cell";
- cell.style.marginBottom = 0.0f;
- cell.style.marginLeft = 0.0f;
- cell.style.marginRight = 0.0f;
- cell.style.marginTop = 0.0f;
- cell.style.width = kRenderPassWidth;
- cell.style.height = kRenderPassHeight;
- cell.RegisterCallback(MouseEnterPassCallback, index);
- cell.RegisterCallback(MouseLeavePassCallback, index);
-
- m_OriginalPassColor = cell.style.backgroundColor;
-
- if (culled)
- cell.style.backgroundColor = m_CulledPassColor;
-
- container.Add(cell);
-
- var label = new Label(name);
- label.name = "RenderPass.Label";
- label.transform.rotation = Quaternion.Euler(new Vector3(0.0f, 0.0f, -45.0f));
- if (async && m_AsyncVisualization)
- label.style.color = m_AsyncPassColor;
- container.Add(label);
-
- label.RegisterCallback(RenderPassLabelChanged);
-
- return container;
- }
+ void SelectPass(int visiblePassIndex)
+ {
+ m_CurrentSelectedVisiblePassIndex = visiblePassIndex;
+
+ const PassHighlightOptions opts = PassHighlightOptions.PassTitle |
+ PassHighlightOptions.PassBlockFill |
+ PassHighlightOptions.PassGridLines |
+ PassHighlightOptions.PassBlockBorder |
+ PassHighlightOptions.ResourceRWBlocks |
+ PassHighlightOptions.PassesWithCompatibilityMessage |
+ PassHighlightOptions.PassesWithSynchronizationMessage |
+ PassHighlightOptions.ResourceGridFocusOverlay;
+
+ ClearPassHighlight(opts);
+ ResetPassBlockState();
+ m_PassInspectorOverlay.ClearContents();
+
+ if (m_VisiblePassIndexToPassId.TryGetValue(visiblePassIndex, out int passId))
+ {
+ var selectedPassIds = GetGroupedPassIds(passId);
+ UpdatePassBlocksToSelectedState(selectedPassIds);
+ if (m_CurrentDebugData.isNRPCompiler)
+ m_PassInspectorOverlay.PopulateContents(this, selectedPassIds);
+ SetPassHighlight(visiblePassIndex, opts);
+ }
+ }
- void ResourceNamesContainerChanged(GeometryChangedEvent evt)
- {
- var label = evt.currentTarget as Label;
- float textWidth = label.MeasureTextSize(label.text, 0, VisualElement.MeasureMode.Undefined, 10, VisualElement.MeasureMode.Undefined).x;
+ void HoverPass(int visiblePassIndex, int visibleResourceIndex)
+ {
+ if (m_CurrentSelectedVisiblePassIndex != -1)
+ return;
+
+ if (m_CurrentHoveredVisiblePassIndex != visiblePassIndex ||
+ m_CurrentHoveredVisibleResourceIndex != visibleResourceIndex)
+ {
+ var highlight = PassHighlightOptions.PassBlockBorder |
+ PassHighlightOptions.PassGridLines |
+ PassHighlightOptions.PassBlockFill;
+
+ if (m_CurrentSelectedVisiblePassIndex != -1)
+ {
+ // Don't highlight or clear these when a pass is selected
+ highlight &= ~(PassHighlightOptions.PassTitle | PassHighlightOptions.PassBlockFill |
+ PassHighlightOptions.PassGridLines);
+ }
+
+ if (m_CurrentHoveredVisiblePassIndex != -1)
+ ClearPassHighlight(highlight);
- var cornerElement = m_GraphViewerElement.Q("GraphViewer.Corner");
- cornerElement.style.width = Mathf.Max(textWidth, cornerElement.style.width.value.value);
- cornerElement.style.minWidth = Mathf.Max(textWidth, cornerElement.style.minWidth.value.value);
+ if (visibleResourceIndex != -1) // Don't highlight these while mouse is on resource grid
+ highlight &= ~(PassHighlightOptions.PassTitle | PassHighlightOptions.PassBlockFill);
- // We need to make sure all resource types have the same width
- m_GraphViewerElement.Query("GraphViewer.Resources.ResourceNames").Build().ForEach((elem) =>
+ if (visiblePassIndex != -1)
+ SetPassHighlight(visiblePassIndex, highlight);
+ }
+ }
+
+ void HoverResourceByIndex(int visibleResourceIndex, int visiblePassIndex)
{
- elem.style.width = Mathf.Max(textWidth, elem.style.width.value.value);
- elem.style.minWidth = Mathf.Max(textWidth, elem.style.minWidth.value.value);
- });
+ if (m_CurrentHoveredVisibleResourceIndex != visibleResourceIndex ||
+ m_CurrentHoveredVisiblePassIndex != visiblePassIndex)
+ {
+ var highlight = ResourceHighlightOptions.ResourceUsageRangeBorder | ResourceHighlightOptions.ResourceHelperLine;
+ if (m_CurrentHoveredVisibleResourceIndex >= 0 &&
+ m_CurrentHoveredVisibleResourceIndex < m_ResourceElementsInfo.Count)
+ {
+ ClearResourceHighlight(highlight);
+ rootVisualElement.Q(Names.kHoverOverlay).AddToClassList(PanManipulator.k_ContentPanClassName);
+ m_PanManipulator.canStartDragging = true;
+ }
+
+ if (visibleResourceIndex != -1)
+ {
+ var info = m_ResourceElementsInfo[visibleResourceIndex];
+ if (m_VisiblePassIndexToPassId.TryGetValue(visiblePassIndex, out int passId))
+ {
+ bool disablePanning = false;
+ var passInfo = m_PassElementsInfo[visiblePassIndex];
+ foreach (var res in passInfo.resourceBlocks)
+ {
+ if (res.visibleResourceIndex == visibleResourceIndex &&
+ res.setGlobalResource)
+ {
+ disablePanning = true;
+ }
+ }
+
+ if (passId >= info.firstPassId && passId <= info.lastPassId)
+ {
+ SetResourceHighlight(info, visibleResourceIndex, highlight);
+ disablePanning = true;
+ }
+
+ if (disablePanning)
+ {
+ rootVisualElement.Q(Names.kHoverOverlay)
+ .RemoveFromClassList(PanManipulator.k_ContentPanClassName);
+ m_PanManipulator.canStartDragging = false;
+ }
+ }
+ }
+ }
+ }
- m_GraphViewerElement.Query("GraphViewer.Resources.ResourceTypeName").Build().ForEach((elem) =>
+ void HoverResourceGrid(int visiblePassIndex, int visibleResourceIndex)
{
- elem.style.width = Mathf.Max(textWidth, elem.style.width.value.value);
- elem.style.minWidth = Mathf.Max(textWidth, elem.style.minWidth.value.value);
- });
- }
+ if (m_PanManipulator is { dragActive: true })
+ {
+ visiblePassIndex = -1;
+ visibleResourceIndex = -1;
+ }
- VisualElement CreateResourceLabel(string name, bool imported)
- {
- var label = new Label(name);
- label.style.height = kResourceHeight;
- label.style.overflow = Overflow.Hidden;
- label.style.textOverflow = TextOverflow.Ellipsis;
- label.style.unityTextOverflowPosition = TextOverflowPosition.End;
- if (imported)
- label.style.color = m_ImportedResourceColor;
- else
- m_OriginalResourceColor = label.style.color;
-
- return label;
- }
+ HoverPass(visiblePassIndex, visibleResourceIndex);
+ HoverResourceByIndex(visibleResourceIndex, visiblePassIndex);
+ m_CurrentHoveredVisiblePassIndex = visiblePassIndex;
+ m_CurrentHoveredVisibleResourceIndex = visibleResourceIndex;
+ }
- VisualElement CreateColorLegend(string name, StyleColor color)
- {
- VisualElement legend = new VisualElement();
- legend.style.flexDirection = FlexDirection.Row;
- Button button = new Button();
- button.style.width = kRenderPassWidth;// * 2;
- button.style.backgroundColor = color;
- legend.Add(button);
- var label = new Label(name);
- label.style.unityTextAlign = TextAnchor.MiddleCenter;
- legend.Add(label);
- return legend;
- }
+ void GetVisiblePassAndResourceIndex(Vector2 pos, out int visiblePassIndex, out int visibleResourceIndex)
+ {
+ visiblePassIndex = Math.Min(Mathf.FloorToInt(pos.x / kPassWidthPx), m_PassElementsInfo.Count - 1);
+ visibleResourceIndex = Math.Min(Mathf.FloorToInt(pos.y / kResourceRowHeightPx),
+ m_ResourceElementsInfo.Count - 1);
+ }
- string RenderGraphPopupCallback(RenderGraph rg)
- {
- var currentRG = GetCurrentRenderGraph();
- if (currentRG != null && rg != currentRG)
- RebuildHeaderExecutionPopup();
- return rg.name;
- }
+ void ResourceGridHovered(MouseMoveEvent evt)
+ {
+ GetVisiblePassAndResourceIndex(evt.localMousePosition, out int visiblePassIndex,
+ out int visibleResourceIndex);
+ HoverResourceGrid(visiblePassIndex, visibleResourceIndex);
+ }
- string EmptyRenderGraphPopupCallback(RenderGraph rg)
- {
- return "NotAvailable";
- }
+ void ResourceGridClicked(ClickEvent evt)
+ {
+ GetVisiblePassAndResourceIndex(evt.localPosition, out int visiblePassIndex, out int visibleResourceIndex);
- string EmptExecutionListCallback(string name)
- {
- return "NotAvailable";
- }
+ bool selectedResource = SelectResource(visibleResourceIndex, visiblePassIndex);
- void OnCaptureGraph()
- {
- RebuildGraphViewerUI();
- }
+ // Also select pass when clicking on resource
+ if (selectedResource)
+ SelectPass(visiblePassIndex);
- void RebuildHeaderExecutionPopup()
- {
- var controlsElement = m_HeaderElement.Q("Header.Controls");
- var existingExecutionPopup = controlsElement.Q("Header.ExecutionPopup");
- if (existingExecutionPopup != null)
- controlsElement.Remove(existingExecutionPopup);
+ // Clicked grid background, clear selection
+ if (!selectedResource)
+ DeselectPass();
- var currentRG = GetCurrentRenderGraph();
- List executionList = new List();
- if (currentRG != null)
+ evt.StopImmediatePropagation(); // Required because to root element click deselects
+ }
+
+ void PassBlockClicked(ClickEvent evt, int visiblePassIndex)
{
- m_RegisteredGraphs.TryGetValue(currentRG, out var executionSet);
- Debug.Assert(executionSet != null);
- executionList.AddRange(executionSet);
+ SelectPass(visiblePassIndex);
+ evt.StopImmediatePropagation(); // Required because to root element click deselects
}
- PopupField executionPopup = null;
- if (executionList.Count != 0)
+ void ResourceGridTooltipDisplayed(TooltipEvent evt)
{
- executionPopup = new PopupField("Current Execution", executionList, 0);
+ evt.tooltip = string.Empty;
+ if (m_CurrentHoveredVisibleResourceIndex != -1 && m_CurrentHoveredVisiblePassIndex != -1)
+ {
+ var passInfo = m_PassElementsInfo[m_CurrentHoveredVisiblePassIndex];
+ var resourceInfo = m_ResourceElementsInfo[m_CurrentHoveredVisibleResourceIndex];
+ var passId = m_VisiblePassIndexToPassId[m_CurrentHoveredVisiblePassIndex];
+
+ foreach (var rwBlock in passInfo.resourceBlocks)
+ {
+ if (rwBlock.visibleResourceIndex == m_CurrentHoveredVisibleResourceIndex)
+ {
+ evt.tooltip = rwBlock.tooltip;
+ evt.rect = rwBlock.element.worldBound;
+ break;
+ }
+ }
+
+ if (evt.tooltip == string.Empty &&
+ passId >= resourceInfo.firstPassId && passId <= resourceInfo.lastPassId)
+ {
+ evt.tooltip = "Resource is alive but not used by this pass.";
+ evt.rect = resourceInfo.usageRangeBlock.worldBound;
+ }
+ }
+
+ evt.StopPropagation();
}
- else
+
+ void DeselectPass()
{
- executionList.Add(null);
- executionPopup = new PopupField("Current Execution", executionList, 0, EmptExecutionListCallback, EmptExecutionListCallback);
+ SelectPass(-1);
+ m_CurrentHoveredVisiblePassIndex = -1;
+ m_CurrentHoveredVisibleResourceIndex = -1;
}
- executionPopup.labelElement.style.minWidth = 0;
- executionPopup.name = "Header.ExecutionPopup";
- controlsElement.Add(executionPopup);
- }
+ void KeyPressed(KeyUpEvent evt)
+ {
+ if (evt.keyCode == KeyCode.Escape)
+ DeselectPass();
+ }
- void RebuildHeaderUI()
- {
- m_HeaderElement.Clear();
+ void RequestCaptureSelectedExecution()
+ {
+ if (!CaptureEnabled())
+ return;
- var controlsElement = new VisualElement();
- controlsElement.name = "Header.Controls";
- controlsElement.style.flexDirection = FlexDirection.Row;
+ selectedRenderGraph.RequestCaptureDebugData(selectedExecutionName);
- m_HeaderElement.Add(controlsElement);
+ overlayCanvas.Remove(m_ResourcesOverlay);
+ overlayCanvas.Remove(m_PassInspectorOverlay);
- var renderGraphList = new List(m_RegisteredGraphs.Keys);
+ ClearGraphViewerUI();
+ SetEmptyStateMessage(EmptyStateReason.WaitingForCameraRender);
+ }
- PopupField renderGraphPopup = null;
- if (renderGraphList.Count != 0)
+ void SelectedRenderGraphChanged(string newRenderGraphName)
{
- renderGraphPopup = new PopupField("Current Graph", renderGraphList, 0, RenderGraphPopupCallback, RenderGraphPopupCallback);
+ foreach (var rg in m_RegisteredGraphs.Keys)
+ {
+ if (rg.name == newRenderGraphName)
+ {
+ selectedRenderGraph = rg;
+ return;
+ }
+ }
+ selectedRenderGraph = null;
}
- else
+
+ void SelectedExecutionChanged(string newExecutionName)
{
- renderGraphList.Add(null);
- renderGraphPopup = new PopupField("Current Graph", renderGraphList, 0, EmptyRenderGraphPopupCallback, EmptyRenderGraphPopupCallback);
+ selectedExecutionName = newExecutionName;
}
- renderGraphPopup.labelElement.style.minWidth = 0;
- renderGraphPopup.name = "Header.RenderGraphPopup";
- controlsElement.Add(renderGraphPopup);
+ void ClearEmptyStateMessage()
+ {
+ rootVisualElement.Q(Names.kContentContainer).style.display = DisplayStyle.Flex;
+ rootVisualElement.Q(Names.kEmptyStateMessage).style.display = DisplayStyle.None;
+ }
- RebuildHeaderExecutionPopup();
+ void SetEmptyStateMessage(EmptyStateReason reason)
+ {
+ rootVisualElement.Q(Names.kContentContainer).style.display = DisplayStyle.None;
- var captureButton = new Button(OnCaptureGraph);
- captureButton.text = "Capture Graph";
- controlsElement.Add(captureButton);
+ var emptyStateElement = rootVisualElement.Q(Names.kEmptyStateMessage);
+ emptyStateElement.style.display = DisplayStyle.Flex;
+ if (emptyStateElement[0] is TextElement emptyStateText)
+ emptyStateText.text = $"{kEmptyStateMessages[(int) reason]}";
+ }
- var filters = new EnumFlagsField("Filters", m_Filter);
- filters.labelElement.style.minWidth = 0;
- filters.labelElement.style.alignItems = Align.Center;
- filters.style.minWidth = 180.0f;
- filters.RegisterCallback>((evt) =>
+ void RebuildRenderGraphPopup()
{
- m_Filter = (Filter)evt.newValue;
+ var renderGraphDropdownField = rootVisualElement.Q(Names.kCurrentGraphDropdown);
+ if (m_RegisteredGraphs.Count == 0 || renderGraphDropdownField == null)
+ {
+ selectedRenderGraph = null;
+ return;
+ }
+
+ var choices = new List();
+ foreach (var rg in m_RegisteredGraphs.Keys)
+ choices.Add(rg.name);
+
+ renderGraphDropdownField.choices = choices;
+ renderGraphDropdownField.style.display = DisplayStyle.Flex;
+ renderGraphDropdownField.value = choices[0];
+ SelectedRenderGraphChanged(choices[0]);
+ }
+
+ void RebuildExecutionPopup()
+ {
+ var executionDropdownField = rootVisualElement.Q(Names.kCurrentExecutionDropdown);
+ List choices = new List();
+ if (selectedRenderGraph != null)
+ {
+ m_RegisteredGraphs.TryGetValue(selectedRenderGraph, out var executionSet);
+ choices.AddRange(executionSet);
+ }
+
+ if (choices.Count == 0 || executionDropdownField == null)
+ {
+ selectedExecutionName = null;
+ return;
+ }
+
+ executionDropdownField.choices = choices;
+ executionDropdownField.RegisterValueChangedCallback(evt => selectedExecutionName = evt.newValue);
+ executionDropdownField.value = choices[0];
+ SelectedExecutionChanged(choices[0]);
+ }
+
+ void OnPassFilterChanged(ChangeEvent evt)
+ {
+ m_PassFilter = (PassFilter) evt.newValue;
RebuildGraphViewerUI();
- });
- controlsElement.Add(filters);
+ }
- var asyncToggleElement = new Toggle("Async Visualization");
- asyncToggleElement.name = "Header.AsyncVisualization";
- asyncToggleElement.value = m_AsyncVisualization;
- asyncToggleElement.RegisterCallback>((evt) =>
+ void OnPassFilterLegacyChanged(ChangeEvent evt)
{
- m_AsyncVisualization = evt.newValue;
+ m_PassFilterLegacy = (PassFilterLegacy) evt.newValue;
RebuildGraphViewerUI();
- });
- controlsElement.Add(asyncToggleElement);
+ }
- var legendsElement = new VisualElement();
- legendsElement.name = "Header.Legends";
- legendsElement.style.flexDirection = FlexDirection.Row;
- legendsElement.style.alignContent = Align.FlexEnd;
+ void OnResourceFilterChanged(ChangeEvent evt)
+ {
+ m_ResourceFilter = (ResourceFilter) evt.newValue;
+ RebuildGraphViewerUI();
+ }
- legendsElement.Add(CreateColorLegend("Resource Read", m_ResourceColorRead));
- legendsElement.Add(CreateColorLegend("Resource Write", m_ResourceColorWrite));
- legendsElement.Add(CreateColorLegend("Culled Pass", m_CulledPassColor));
- legendsElement.Add(CreateColorLegend("Imported Resource", m_ImportedResourceColor));
- legendsElement.Add(CreateColorLegend("Async/Dependency", m_DependencyColor));
+ void RebuildPassFilterUI()
+ {
+ var passFilter = rootVisualElement.Q(Names.kPassFilterField);
+ passFilter.style.display = DisplayStyle.Flex;
+ // We don't know which callback was registered before, so unregister both.
+ passFilter.UnregisterCallback>(OnPassFilterChanged);
+ passFilter.UnregisterCallback>(OnPassFilterLegacyChanged);
+ if (m_CurrentDebugData.isNRPCompiler)
+ {
+ passFilter.Init(m_PassFilter);
+ passFilter.RegisterCallback>(OnPassFilterChanged);
+ }
+ else
+ {
+ passFilter.Init(m_PassFilterLegacy);
+ passFilter.RegisterCallback>(OnPassFilterLegacyChanged);
+ }
+ }
- m_HeaderElement.Add(legendsElement);
- }
+ void RebuildResourceFilterUI()
+ {
+ var resourceFilter = rootVisualElement.Q(Names.kResourceFilterField);
+ resourceFilter.style.display = DisplayStyle.Flex;
+ resourceFilter.UnregisterCallback>(OnResourceFilterChanged);
+ resourceFilter.Init(m_ResourceFilter);
+ resourceFilter.RegisterCallback>(OnResourceFilterChanged);
+ }
- RenderGraph GetCurrentRenderGraph()
- {
- var popup = m_HeaderElement.Q>("Header.RenderGraphPopup");
- if (popup != null)
- return popup.value;
+ void RebuildHeaderUI()
+ {
+ RebuildRenderGraphPopup();
+ RebuildExecutionPopup();
+ }
- return null;
- }
+ RenderGraph m_SelectedRenderGraph;
- RenderGraphDebugData GetCurrentDebugData()
- {
- var currentRG = GetCurrentRenderGraph();
- if (currentRG != null)
+ RenderGraph selectedRenderGraph
{
- var popup = m_HeaderElement.Q>("Header.ExecutionPopup");
- if (popup != null && popup.value != null)
- return currentRG.GetDebugData(popup.value);
+ get => m_SelectedRenderGraph;
+ set
+ {
+ m_SelectedRenderGraph = value;
+ UpdateCaptureEnabledUIState();
+ }
}
- return null;
- }
+ string m_SelectedExecutionName;
- VisualElement CreateTopRowWithPasses(RenderGraphDebugData debugData, out int finalPassCount)
- {
- var topRowElement = new VisualElement();
- topRowElement.name = "GraphViewer.TopRowElement";
- topRowElement.style.flexDirection = FlexDirection.Row;
+ string selectedExecutionName
+ {
+ get => m_SelectedExecutionName;
+ set
+ {
+ m_SelectedExecutionName = value;
+ UpdateCaptureEnabledUIState();
+ }
+ }
+
+ bool CaptureEnabled() => selectedExecutionName != null && selectedRenderGraph != null;
- var cornerElement = new VisualElement();
- cornerElement.name = "GraphViewer.Corner";
+ void UpdateCaptureEnabledUIState()
+ {
+ if (rootVisualElement?.childCount == 0)
+ return;
- topRowElement.Add(cornerElement);
+ bool enabled = CaptureEnabled();
+ var captureButton = rootVisualElement.Q