Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
716b91e
docg-7322: Clarify Keyword node behavior
ocarrere Nov 13, 2025
efd9611
RenderGraph - Remove the old "hack" for WebGL
YohannVaastUnity Nov 13, 2025
c2508d8
[D2D-7776][URP 2D] Improve extensibility - expose texture resources i…
kennytann Nov 13, 2025
7f85fb4
[APV] Loading a baking set using the Load Baking Set button does not …
belgaard Nov 13, 2025
7542a7f
Fix error when opening Samples tab of URP package
arttu-peltonen Nov 13, 2025
18060a0
Fix performance regression caused by incorrect Meta pass stripping
laylaarab Nov 14, 2025
3626f37
[VFX] Fix "Open VFX Graph Samples project on Github" wrapping
ludovic-theobald Nov 14, 2025
250d54e
UUM-126128: Fix warning when building Mixed Reality template to iOS
pigselated Nov 14, 2025
6807eb4
[URP] Allow users to change shadow resolution/tiers
belgaard Nov 14, 2025
fac2966
DOCG-7161 - Update VFX Graph reference content about Sticky Notes
sebastienduverne Nov 14, 2025
0d73b7d
[ShaderGraph] "View Generated Shader" button in Shader Graph Asset is…
Nov 15, 2025
48d478b
Meta Quest only optimization, early out of from lighting calculations…
Paulm-Unity Nov 17, 2025
acb33f9
[Switch] Disable 011-HighQualityLines test as failing
Adrian1066 Nov 17, 2025
0f6f921
Terrain Smoothness Diffuse Alpha / Constant Fix
varinotmUnity Nov 17, 2025
bcc016d
Remove save scene on material converter. It is handled on the tool
alex-vazquez-unity3d Nov 18, 2025
0cf5678
[VFX] Fix Deprecated Function in Sample
PaulDemeulenaere Nov 18, 2025
288a771
Changed Look Dev Volume Profile Lifetime Management
alex-vazquez-unity3d Nov 19, 2025
8337897
[content automatically redacted] touching PlatformDependent folder
ludovic-theobald Nov 19, 2025
69929d3
[HDRP][DLSS] fix debug view nullref exception on build
volkan-unity Nov 19, 2025
81ef527
[Unity 6][IURP] Save render pipeline asset before build (UUM-126809)
Nov 20, 2025
24622de
Work around HLSLcc miscompilation on Metal in APV blending shader
pema99 Nov 20, 2025
f0750c7
Clean up the Shader Graph docs landing page
sebastienduverne Nov 20, 2025
d1cccb9
HDRP Wizard - Use InternalAPIBridge instead of Reflection for the obj…
alex-vazquez-unity3d Nov 20, 2025
d7232c1
Meta Quest only optimization. Avoid shadowmap lookups for backfacing …
Paulm-Unity Nov 20, 2025
5792efd
[VFX/URP] Fix Decal Integration
PaulDemeulenaere Nov 20, 2025
e4ec81c
Add obsolete attribute to implicit conversion between EntityId and int
EmilieThaulow Nov 21, 2025
a5bffa6
UUM-98082 - Fixed GPU Crash when disabling ZBinning with Forward+
jrs-unity Nov 21, 2025
49bbfa2
URP: Fix screen-space decals in Deferred
Nov 21, 2025
7ac6273
[VFX] Setup a minimum size for the point cache bake tool window
julienamsellem Nov 22, 2025
039619d
[URP][UUM-124869] Fix Decal Hierarchy Scene and Game View visibilty
skip-petty Nov 24, 2025
062a087
[HDRP] Fix for missing shader variant error when area light is off in…
Nov 24, 2025
e315e7c
[SRP] [UUM-87566] Change SS UI within SRP in HDR output to share a te…
mseonkim-unity Nov 25, 2025
4c7f351
[HDRP] Fix for depth test issue for low-res transparency on certain p…
Nov 25, 2025
e2fcb10
Graphics/URP - Remove obsolete non-nativeRenderPass workflow
axoloto Nov 25, 2025
7a40f69
docg-8135: Reorder Node Library ToC to mirror Shader Graph UI
ocarrere Nov 25, 2025
dd2a882
[UUM-97985] Fix HDRP FPTL and Cluster artifacts when having many lights
mseonkim-unity Nov 25, 2025
842b37d
[UUM-104008][URP 2D] Fix LIght2D toggle UI
kennytann Nov 26, 2025
c5d589f
Remove previously disabled 170_CameraCaptureAction tests
belavina Nov 26, 2025
d50f3de
Migrate remaining SRP templates
theo-at-unity Nov 26, 2025
7fda9e4
[Scripting] Fix MonoPathRemapper warning triggers in Graphics packages
tomaskucinskas Nov 26, 2025
9abaa16
docg-7325: Specify that Shader Graph doesn't support XR in the Built-…
ocarrere Nov 26, 2025
f1c89fd
docg-6776: clarify Custom Function uniform usage and matrix example
ocarrere Nov 26, 2025
e00b758
Rename button to be in line with functionality and other buttons
NdBree Nov 26, 2025
c12e601
[VFX] Changed the display name for the two VFXG samples
julienamsellem Nov 26, 2025
8db6bc8
UUM-128460: Fix incorrect warning when going to play mode with disc l…
pigselated Nov 26, 2025
3197bbe
[UUM-125723] Fix for URP broken inspector
unity-cchu Nov 27, 2025
05f251c
Refactor CubemapRender and add Color mode
urasmus Nov 27, 2025
c100ada
Fix for UUM-119990
FredMoreau Nov 27, 2025
2b24beb
[VFX] Fixed group title has a smaller font size when being edited
julienamsellem Nov 27, 2025
9af3ccc
Graphics EntityId Changes
Daxode Nov 27, 2025
1d5ede2
docg-7795: Reference page for HDRP Six Way Shader Graph
ocarrere Nov 27, 2025
020ef72
[SRP] Fix RSUV Sample
remi-chapelain Nov 27, 2025
641c02c
Fixed precision for shadows over large distances
Nzollner Nov 27, 2025
470b6df
Remove unused lighting tests in the SRPTests `007-BasicAPV` & `008_Mo…
belavina Nov 27, 2025
d2c9ff6
docg-7297: Clarify explicit LOD behavior in Sample Texture 2D LOD Node
ocarrere Nov 27, 2025
2225d24
Re-Enable Graphics_Terrain RenderGraph Error Tests
RoseHirigoyen Nov 28, 2025
1021a48
Render Pipeline Converter - HDRP - Readonly Material Reference converter
alex-vazquez-unity3d Nov 28, 2025
7846002
Fix UUM-115985 Lens Flare (SRP) component missing documentation link
BenGraterUnity Nov 28, 2025
1abe034
[UUM-126022] Fix the Screen Space Overlay UI rendering in URP when cr…
mseonkim-unity Nov 28, 2025
faf213b
[HDRP][FSR2] fix quality camera override not respecting users selection
volkan-unity Dec 1, 2025
9dad854
Surface Cache Cleanups (replace Grid model with Volume model)
urasmus Dec 1, 2025
4380b95
Fixed: Unclear warning message in Rendering Debugger about the Play m…
rolandk-unity Dec 1, 2025
b91e78a
[content automatically redacted] touching PlatformDependent folder
Tanya-Li-Unity Dec 1, 2025
320d699
Fixed duplication when Rendering Layers migrate multiple times
kirill-titov-u Dec 1, 2025
e710ca3
[VFX] Enter key to validate the output context title
julienamsellem Dec 1, 2025
3e1eced
DOCG-7794 + DOCG-7793 Add Water Decal and PBR Sky shader graph for HD…
fatimah-f Dec 1, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
using System.Runtime.CompilerServices;

// HDRP
[assembly: InternalsVisibleTo("Unity.RenderPipelines.HighDefinition.Editor")]
[assembly: InternalsVisibleTo("Unity.RenderPipelines.HighDefinition.Editor.Tests")]

// URP
[assembly: InternalsVisibleTo("Unity.RenderPipelines.Universal.Editor")]
[assembly: InternalsVisibleTo("Unity.RenderPipelines.Universal.Editor.Tests")]

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ static void CreateAsset(string name, Action<string> callback = null, string exte
assetCreationCallback.extension = extension;

var icon = AssetPreview.GetMiniTypeThumbnail(type);
ProjectWindowUtil.StartNameEditingIfProjectWindowExists(0, assetCreationCallback, name, icon, null, false);
ProjectWindowUtil.StartNameEditingIfProjectWindowExists(EntityId.None, assetCreationCallback, name, icon, null, false);
}

class AssetCreationCallback : ProjectWindowCallback.AssetCreationEndAction
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,10 @@ void OnSearchFinish()
contextSearchQueriesAndIds,
(item, description) =>
{
var assetItem = new RenderPipelineConverterAssetItem(item.id);
var assetItem = new RenderPipelineConverterAssetItem(item.id)
{
info = description
};
assets.Add(assetItem);
},
OnSearchFinish
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
using System;
using UnityEngine;

namespace UnityEditor.Rendering.Universal
namespace UnityEditor.Rendering.Converter
{
internal class MaterialReferenceBuilder : IDisposable
{
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -1,22 +1,23 @@
using System;
using System.ComponentModel;
using System.Reflection;
using System.Text;
using UnityEditor.SceneManagement;
using UnityEngine;
using UnityEngine.SceneManagement;
using static UnityEditor.Rendering.Universal.MaterialReferenceBuilder;
using static UnityEditor.Rendering.Converter.MaterialReferenceBuilder;
using Object = UnityEngine.Object;

namespace UnityEditor.Rendering.Universal
namespace UnityEditor.Rendering.Converter
{
internal class MaterialReferenceChanger : IDisposable
{
MaterialReferenceBuilder m_Builder;
ReadonlyMaterialMap m_Mappings;

public MaterialReferenceChanger()
public MaterialReferenceChanger(ReadonlyMaterialMap mappings)
{
m_Builder = new MaterialReferenceBuilder();
m_Mappings = mappings;
}

public void Dispose()
Expand Down Expand Up @@ -47,7 +48,7 @@ internal static bool AreMaterialsEqual(Material[] a, Material[] b)
return true;
}

private static bool TryChangeMaterialArray(Func<object> getter, Action<object> setter)
private bool TryChangeMaterialArray(Func<object> getter, Action<object> setter)
{
var materials = getter() as Material[];
if (materials == null)
Expand All @@ -56,7 +57,7 @@ private static bool TryChangeMaterialArray(Func<object> getter, Action<object> s
bool setIsNeeded = false;
for (int i = 0; i < materials.Length; ++i)
{
if (ReadonlyMaterialMap.TryGetMappingMaterial(materials[i], out var mappingMaterial))
if (m_Mappings.TryGetMappingMaterial(materials[i], out var mappingMaterial))
{
materials[i] = mappingMaterial;
setIsNeeded = true;
Expand All @@ -72,10 +73,10 @@ private static bool TryChangeMaterialArray(Func<object> getter, Action<object> s
return true;
}

private static bool TryChangeMaterial(Func<object> getter, Action<object> setter)
private bool TryChangeMaterial(Func<object> getter, Action<object> setter)
{
var material = getter() as Material;
if (ReadonlyMaterialMap.TryGetMappingMaterial(material, out var mappingMaterial))
if (m_Mappings.TryGetMappingMaterial(material, out var mappingMaterial))
{
setter(mappingMaterial);
var updated = getter() as Material;
Expand All @@ -85,7 +86,7 @@ private static bool TryChangeMaterial(Func<object> getter, Action<object> setter
return true;
}

private static bool ReassignMaterialsFromInstance(object obj, MemberInfo member, bool isArray)
private bool ReassignMaterialsFromInstance(object obj, MemberInfo member, bool isArray)
{
if (obj == null || member == null)
return false;
Expand Down Expand Up @@ -206,7 +207,6 @@ public bool ReassignUnityObjectMaterials(Object obj, StringBuilder errors)
{
// Make sure the changes get saved
EditorUtility.SetDirty(obj);
EditorSceneManager.SaveScene(SceneManager.GetActiveScene());
}
else
errors.AppendLine($"Could not reassign materials of {obj} with {obj.GetType()} type.");
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
using System;
using System.Collections.Generic;
using System.Text;
using UnityEngine;

namespace UnityEditor.Rendering.Converter
{
internal class ReadonlyMaterialMap
{
public bool TryGetMappingMaterial(Material material, out Material mappingMaterial)
{
mappingMaterial = material;

if (m_BuiltInMaterialsMappings.TryGetValue(material.name, out var mapping))
mappingMaterial = mapping();

return mappingMaterial != null;
}

public int count => m_BuiltInMaterialsMappings.Count;

public IEnumerable<string> Keys => m_BuiltInMaterialsMappings.Keys;

Dictionary<string, Func<Material>> m_BuiltInMaterialsMappings = new();

public List<(string materialName, string searchQuery)> GetMaterialSearchList()
{
List<(string materialName, string searchQuery)> list = new();
foreach (var mat in GetBuiltInMaterials())
{
string formattedId = $"<$object:{GlobalObjectId.GetGlobalObjectIdSlow(mat)},UnityEngine.Object$>";
list.Add(($"p: ref={formattedId}", $"{mat.name} is being referenced"));
}
return list;
}

public ReadonlyMaterialMap(Dictionary<string, Func<Material>> mappings)
{
m_BuiltInMaterialsMappings = mappings;
}

public Material[] GetBuiltInMaterials()
{
using (UnityEngine.Pool.ListPool<Material>.Get(out var tmp))
{
foreach (var materialName in Keys)
{
var name = materialName + ".mat";

Material mat = null;
foreach (var material in AssetDatabaseHelper.FindAssets<Material>())
{
if (material.name == materialName)
{
mat = material;
break;
}
}

if (mat == null)
{
mat = AssetDatabase.GetBuiltinExtraResource<Material>(name);
if (mat == null)
{
mat = Resources.GetBuiltinResource<Material>(name);
if (mat == null)
{
mat = Resources.Load<Material>(name);
}
}
}

if (mat == null)
{
Debug.LogError($"Material '{materialName}' not found in built-in resources or project assets.");
continue;
}

tmp.Add(mat);
}
return tmp.ToArray();
}
}
}

[Serializable]
internal abstract class ReadonlyMaterialConverter : AssetsConverter
{
protected virtual Dictionary<string, Func<Material>> materialMappings { get; }

protected override List<(string query, string description)> contextSearchQueriesAndIds
{
get => mappings.GetMaterialSearchList();
}

internal MaterialReferenceChanger m_MaterialReferenceChanger;
private ReadonlyMaterialMap m_Mappings;

internal ReadonlyMaterialMap mappings
{
get
{
m_Mappings ??= new ReadonlyMaterialMap(materialMappings);
return m_Mappings;
}
}

public override void BeforeConvert()
{
m_MaterialReferenceChanger = new MaterialReferenceChanger(mappings);
}

public override void AfterConvert()
{
m_MaterialReferenceChanger?.Dispose();
m_MaterialReferenceChanger = null;
}

protected override Status ConvertObject(UnityEngine.Object obj, StringBuilder message)
{
if (!m_MaterialReferenceChanger.ReassignUnityObjectMaterials(obj, message))
{
return Status.Error;
}

return Status.Success;
}
}
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,8 @@ public string name
}
}

public string info => assetPath;
[field:SerializeField]
public string info {get; set; }

public bool isEnabled { get; set; } = true;
public string isDisabledMessage { get; set; } = string.Empty;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ public class CoreBuildData : IDisposable
/// </summary>
public List<RenderPipelineAsset> renderPipelineAssets { get; private set; } = new();

internal Dictionary<int, ComputeShader> computeShaderCache { get; private set; } = new();
internal Dictionary<EntityId, ComputeShader> computeShaderCache { get; private set; } = new();

internal bool pipelineSupportGPUResidentDrawer { get; private set; } = false;
internal bool playerNeedGPUResidentDrawer { get; private set; } = false;
Expand Down Expand Up @@ -80,8 +80,10 @@ private void CheckGPUResidentDrawerUsage()
if (!playerNeedGPUResidentDrawer)
return;

#pragma warning disable 618 // Todo(@daniel.andersen): Remove deprecated API usage
GraphicsSettings.GetRenderPipelineSettings<GPUResidentDrawerResources>()
.ForEachFieldOfType<ComputeShader>(computeShader => computeShaderCache.Add(computeShader.GetEntityId(), computeShader));
#pragma warning restore 618
}

/// <summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,9 @@ class SRPDisabledComputeShaderVariantStripper : IComputeShaderVariantStripper
{
public bool active => !CoreBuildData.instance.buildingPlayerForRenderPipeline;

#pragma warning disable 618 // Todo(@daniel.andersen): Remove deprecated API usage
public bool CanRemoveVariant([DisallowNull] ComputeShader shader, string _, ShaderCompilerData __)
=> CoreBuildData.instance.computeShaderCache.ContainsKey(shader.GetEntityId());
#pragma warning restore 618
}
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
using System.Runtime.CompilerServices;

[assembly: InternalsVisibleTo("Unity.RenderPipelines.Core.Editor")]
[assembly: InternalsVisibleTo("Unity.RenderPipelines.HighDefinition.Editor")]
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
using System.Collections.Generic;
using System;
using UnityEngine;

namespace UnityEditor.Rendering
{
static class ObjectSelector
{
public static void Show(UnityEngine.Object obj, Type requiredType, UnityEngine.Object objectBeingEdited, bool allowSceneObjects, List<EntityId> allowedEntityIds = null, Action<UnityEngine.Object> onObjectSelectorClosed = null, Action<UnityEngine.Object> onObjectSelectedUpdated = null, bool showNoneItem = true)
{
UnityEditor.ObjectSelector.get.Show(obj, requiredType, objectBeingEdited, allowSceneObjects, allowedEntityIds, onObjectSelectorClosed, onObjectSelectedUpdated, showNoneItem);
}
}
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ public override void Initialize(ProbeVolumeBakingSet bakingSet, NativeArray<Vect
Graphics.ExecuteCommandBuffer(cmd);
cmd.Clear();
}

static AccelStructAdapter BuildAccelerationStructure()
{
var accelStruct = s_TracingContext.CreateAccelerationStructure();
Expand All @@ -127,14 +127,14 @@ static AccelStructAdapter BuildAccelerationStructure()
Span<bool> perSubMeshOpaqueness = stackalloc bool[subMeshCount];
perSubMeshOpaqueness.Fill(true);

accelStruct.AddInstance(renderer.component.GetEntityId(), renderer.component, perSubMeshMask, matIndices, perSubMeshOpaqueness, 1);
accelStruct.AddInstance(renderer.component.GetEntityId().GetRawData(), renderer.component, perSubMeshMask, matIndices, perSubMeshOpaqueness, 1);
}

foreach (var terrain in contributors.terrains)
{
uint mask = GetInstanceMask(terrain.component.shadowCastingMode);
uint materialID = terrain.component.renderingLayerMask; // repurpose the material id as we don't need it here
accelStruct.AddInstance(terrain.component.GetEntityId(), terrain.component, new uint[1] { mask }, new uint[1] { materialID }, new bool[1] { true }, 1);
accelStruct.AddInstance(terrain.component.GetEntityId().GetRawData(), terrain.component, new uint[1] { mask }, new uint[1] { materialID }, new bool[1] { true }, 1);
}

return accelStruct;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -223,13 +223,13 @@ static AccelStructAdapter BuildAccelerationStructure()
Span<bool> perSubMeshOpaqueness = stackalloc bool[subMeshCount];
perSubMeshOpaqueness.Fill(true);

accelStruct.AddInstance((int)renderer.component.GetEntityId().GetRawData(), renderer.component, perSubMeshMask, matIndices, perSubMeshOpaqueness, 1);
accelStruct.AddInstance(renderer.component.GetEntityId().GetRawData(), renderer.component, perSubMeshMask, matIndices, perSubMeshOpaqueness, 1);
}

foreach (var terrain in contributors.terrains)
{
uint mask = GetInstanceMask(terrain.component.shadowCastingMode);
accelStruct.AddInstance(terrain.component.GetEntityId(), terrain.component, new uint[1] { mask }, new uint[1] { 0 }, new bool[1] { true }, 1);
accelStruct.AddInstance(terrain.component.GetEntityId().GetRawData(), terrain.component, new uint[1] { mask }, new uint[1] { 0 }, new bool[1] { true }, 1);
}

return accelStruct;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ static AccelStructAdapter BuildAccelerationStructure(int mask)
Span<bool> perSubMeshOpaqueness = stackalloc bool[subMeshCount];
perSubMeshOpaqueness.Fill(true);

accelStruct.AddInstance(renderer.component.GetEntityId(), renderer.component, maskAndMatDummy, maskAndMatDummy, perSubMeshOpaqueness, 1);
accelStruct.AddInstance(renderer.component.GetEntityId().GetRawData(), renderer.component, maskAndMatDummy, maskAndMatDummy, perSubMeshOpaqueness, 1);
}

foreach (var terrain in contributors.terrains)
Expand All @@ -158,7 +158,7 @@ static AccelStructAdapter BuildAccelerationStructure(int mask)
if ((layerMask & mask) == 0)
continue;

accelStruct.AddInstance(terrain.component.GetEntityId(), terrain.component, new uint[1] { 0xFFFFFFFF }, new uint[1] { 0xFFFFFFFF }, new bool[1] { true }, 1);
accelStruct.AddInstance(terrain.component.GetEntityId().GetRawData(), terrain.component, new uint[1] { 0xFFFFFFFF }, new uint[1] { 0xFFFFFFFF }, new bool[1] { true }, 1);
}

return accelStruct;
Expand Down
Loading