Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
90e4662
[Port] [6000.5] [UUM-144446] Fixed VFX operator reciprocal docs
svc-reach-platform-support Jun 26, 2026
bf26652
[UUM-145751] Disable unstable Lighting Playmode test
Jun 26, 2026
7600971
[6000.5] Fixed a memory leak issue in URP standalone player builds th…
mbasavaraju-rythmos Jun 27, 2026
dc1bcd0
[Port] [6000.5] [URP] [UUM-141980] Fix Bloom missing in Player when D…
svc-reach-platform-support Jun 27, 2026
475919e
[Port] [6000.5] [ShaderGraph] Fix issue where subgraph float enum dro…
svc-reach-platform-support Jun 27, 2026
e29b8b5
[Port] [6000.5] [2d] Validate all euler angle inputs for QuaternionEu…
svc-reach-platform-support Jun 30, 2026
4232a24
Backport UUM-145855 to 6000.5
alexandret-unity Jun 30, 2026
be12d39
[Port] [6000.5] [ShaderGraph] update documentation on expression node.
svc-reach-platform-support Jun 30, 2026
c27bdb3
[Port] [6000.5] UUM-143151: Add SuspendValidation to batch graph vali…
svc-reach-platform-support Jun 30, 2026
31455de
[Port] [6000.5] DOCG-8892 Fix render graph variable name in example r…
svc-reach-platform-support Jun 30, 2026
9e1b95f
[Port] [6000.5] [ShaderGraph] Fix issue with float enum names changin…
svc-reach-platform-support Jul 2, 2026
cf51890
[Port] [6000.5] [2d] Handle Tile flip using TransformVertices
svc-reach-platform-support Jul 2, 2026
267d04b
[Port] [6000.5] [UUM-136214][URP 2D] Refresh light batching debugger …
svc-reach-platform-support Jul 2, 2026
108dc3e
[Port] [6000.5] [UUM-144776] [APV] Fix Global Illumination task left …
svc-reach-platform-support Jul 2, 2026
b09f030
[UUM-145751] Disable unstable Lighting Playmode test
Jul 5, 2026
6f49f38
[Port] [6000.5] Refactored Custom Function Node page
svc-reach-platform-support Jul 5, 2026
de822fe
[Port] [6000.5] UUM-146305: Fix cancel warning when cancelling an APV…
svc-reach-platform-support Jul 7, 2026
b799621
[Port] [6000.5] docs/graphics/docg-8118-sg-custom-interpolator-sepera…
svc-reach-platform-support Jul 7, 2026
62ad582
[Port] [6000.5] Fix flaky GC.Alloc in SweepLineRectUtils.CalculateRec…
svc-reach-platform-support Jul 8, 2026
88f3129
[Port] [6000.5] DOCG-8907 - Removed irrelevant paragraph from Shader …
svc-reach-platform-support Jul 8, 2026
db1b362
[Port] [6000.5] [MaterialUpgrader] Skip SaveAssets when no material w…
svc-reach-platform-support Jul 8, 2026
ab8958c
[Port] [6000.5] [URP][HDRP] Add warning messages when set Camera orth…
svc-reach-platform-support Jul 11, 2026
85f5604
[Port] [6000.5] Fix MSAA shader resolve gate on Quest in OnTilePostPr…
svc-reach-platform-support Jul 11, 2026
6d978f9
[Port] [6000.5] Updated units in shader graph node documentation
svc-reach-platform-support Jul 11, 2026
9778721
[Port] [6000.5] Direct URP help URLs to the Unity Manual
svc-reach-platform-support Jul 13, 2026
1cb81c5
[Port] [6000.5] URP_Terrain: re-enable 301_Motion_Vectors_SpeedTree_T…
svc-reach-platform-support Jul 14, 2026
a606ed3
[Port] [6000.5] Add backbuffer check to RenderObjectsPass for foveation
svc-reach-platform-support Jul 16, 2026
c6e19c1
[Port] [6000.5] Added native RenderPipeline tag based subshader strip…
svc-reach-platform-support Jul 16, 2026
59d41fa
[Port] [6000.5] Updated system requirements for VFX graph
svc-reach-platform-support Jul 16, 2026
8304f9f
[Port] [6000.5] Exposed serialized m_NumIterationsEnclosingSphere
svc-reach-platform-support Jul 16, 2026
0a299c0
[Port][6000.5] UUM-143210 - Rendering Debugger - GPU Resident Drawer …
alex-vazquez-unity3d Jul 16, 2026
be42945
[Port] [6000.5] [URP] Loosen 000_DeferredPlus_Many average threshold
svc-reach-platform-support Jul 18, 2026
263a28f
[Port] [6000.5] [UUM-146401] Fix URP asset Tile-Only Mode warning to …
svc-reach-platform-support Jul 18, 2026
5183909
[Port] [6000.5] Fixed a typo in the HDRP Tessellation reference page
svc-reach-platform-support Jul 18, 2026
015c19e
[Port] [6000.5] Refactor MockHMD SetupTests to allow for a wait frame…
svc-reach-platform-support Jul 20, 2026
d553d4f
[Port] [6000.5] docg-8934: implement pages fix titles
svc-reach-platform-support Jul 20, 2026
3397c9e
[Port] [6000.5] [UUM-146740][SRP] Re-adding Volume Gizmo in the Scene…
svc-reach-platform-support Jul 20, 2026
e873c39
[Port] [6000.5] [UUM-147477] Fix re-adding a scene to an APV baking s…
svc-reach-platform-support Jul 20, 2026
2d7b1ca
[Port] [6000.5] Fixed grammatical errors in HDRP Volumetric Clouds Vo…
svc-reach-platform-support Jul 20, 2026
170f897
[Port] [6000.5] [Graphics] Apply unity_RenderingLayer per shadow cast…
svc-reach-platform-support Jul 23, 2026
8935544
[Port][6000.5]docg-8935 update attribute operator list and create new…
marta-malberti Jul 29, 2026
6519c66
[Port] [6000.5] Fix virtual offset debug when last bake had virtual o…
svc-reach-platform-support Aug 1, 2026
1f9d9b4
[Port] [6000.5] docg-8976: updating 4 missing attributes in attribute…
svc-reach-platform-support Aug 4, 2026
7e4e8b2
[Port] [6000.5] Check actual clear coat value along with the clear co…
svc-reach-platform-support Aug 4, 2026
b6a6963
[Port] [6000.5] [UUM-148810] Skip URP Asset save in import workers du…
Aug 6, 2026
35cf7e2
[Port] [6000.5] Allow On Tile Post Processing only on the Universal R…
svc-reach-platform-support Aug 6, 2026
7f0ce4e
[Port] [6000.5] Turn GRD off from URP/HDRP template projects
svc-reach-platform-support Aug 7, 2026
88e0052
[Port] [6000.5] Fix a water null exception when exiting the frame deb…
svc-reach-platform-support Aug 11, 2026
c4c9e8a
[Port] [6000.5] Skipping exposure compensation when post processing h…
svc-reach-platform-support Aug 12, 2026
d958b22
[Port] [6000.5] [STP] Fix TAA feedback artifacts on Vulkan (UUM-139455)
svc-reach-platform-support Aug 12, 2026
497065d
[Port] [6000.5] docg-8933: Check subheading and create new landing pa…
svc-reach-platform-support Aug 12, 2026
e17d029
[content automatically redacted] touching PlatformDependent folder
svc-reach-platform-support Aug 14, 2026
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
Expand Up @@ -124,7 +124,7 @@ public class ExampleRenderPipeline : RenderPipeline
}
catch (Exception e)
{
if (renderGraph.ResetGraphAndLogException(e))
if (myRenderGraph.ResetGraphAndLogException(e))
throw;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,31 +76,26 @@ DebugUI.Panel selectedPanel
VisualElement m_LeftPaneElement;
VisualElement m_RightPaneElement;

const string k_UssCommon = "Packages/com.unity.render-pipelines.core/Runtime/DEbugging/Runtime UI Resources/DebugWindowCommon.uss";
const string k_UssCommon = "Packages/com.unity.render-pipelines.core/Runtime/Debugging/Runtime UI Resources/DebugWindowCommon.uss";
const string k_Uss = "Packages/com.unity.render-pipelines.core/Editor/Debugging/DebugWindow.uss";
const string k_Uxml = "Packages/com.unity.render-pipelines.core/Editor/Debugging/DebugWindow.uxml";

bool m_IsDirty;

Vector2 m_PanelScroll;
Vector2 m_ContentScroll;

void OnEnable()
{
DebugManager.instance.displayEditorUI = true;

DebugManager.instance.refreshEditorRequested = false;

hideFlags = HideFlags.HideAndDontSave;
autoRepaintOnSceneChange = true;

DebugManager.instance.onSetDirty += RequestRebuild;
DebugManager.instance.onRecreateDebugUI += RequestRebuild;
DebugManager.instance.onPanelSelectionRequested += SetSelectedPanel;

if (m_WidgetStates == null || !AreWidgetStatesValid())
m_WidgetStates = new WidgetStateDictionary();
if (s_WidgetStateMap == null || s_TypeMapDirty)
RebuildTypeMaps();

DebugManager.instance.onSetDirty += MarkDirty;

GraphicsToolLifetimeAnalytic.WindowOpened<DebugWindow>();

HookLegacyWidgetStateHandlingCallbacks();
Expand Down Expand Up @@ -160,6 +155,15 @@ static void SendWidgetValueChangedAnalytic<T>(string queryPath, T previousValue,
GraphicsToolUsageAnalytic.ActionPerformed<DebugWindow>("Widget Value Changed", analytic.ToNestedColumn());
}

private void OnDisable()
{
DebugManager.instance.onSetDirty -= RequestRebuild;
DebugManager.instance.onRecreateDebugUI -= RequestRebuild;
DebugManager.instance.onPanelSelectionRequested -= SetSelectedPanel;

GraphicsToolLifetimeAnalytic.WindowClosed<DebugWindow>();
}

// Note: this won't get called if the window is opened when the editor itself is closed
void OnDestroy()
{
Expand All @@ -172,42 +176,22 @@ void OnDestroy()
if (debugWindows.Length == 0)
DebugManager.instance.displayEditorUI = false;
};

DebugManager.instance.onSetDirty -= MarkDirty;


DestroyWidgetStates();
}

private void OnDisable()
{
GraphicsToolLifetimeAnalytic.WindowClosed<DebugWindow>();
}
bool m_NeedsRebuild;

void MarkDirty()
void RequestRebuild()
{
m_IsDirty = true;
m_NeedsRebuild = true;
}

void Update()
{
// If the render pipeline asset has been reloaded we force-refresh widget states in case
// some debug values need to be refresh/recreated as well (e.g. frame settings on HD)
if (DebugManager.instance.refreshEditorRequested)
{
ReloadWidgetStates();
m_IsDirty = true;
DebugManager.instance.refreshEditorRequested = false;
}

string requestedPanel = DebugManager.instance.GetRequestedEditorWindowPanel();
if (requestedPanel != null)
{
SetSelectedPanel(requestedPanel);
}

if (m_IsDirty)
if (m_NeedsRebuild)
{
m_IsDirty = false;
m_NeedsRebuild = false;
RecreateGUI();
}
}
Expand Down Expand Up @@ -293,6 +277,8 @@ private void RecreateGUI()

BuildSearchCache();
InitializeSearchField();

m_NeedsRebuild = false;
}

void ResetClicked()
Expand All @@ -308,6 +294,14 @@ void ResetClicked()
if (string.IsNullOrEmpty(panelName))
return;

// UI elements may not be initialized yet if this is called before RecreateGUI
if (m_LeftPaneElement == null || m_RightPaneElement == null)
{
// Just update the selected panel name - RecreateGUI will apply it when it runs
m_SelectedPanelName = panelName;
return;
}

if (selectedPanel != null)
{
m_LeftPaneElement.Q<VisualElement>(name: $"{selectedPanel.displayName}_Tab")?.RemoveFromClassList("selected");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,9 @@ internal bool RunInProgress()
internal void Step(ref float progress, ref StageName stage) =>
Update(true, true, true, out progress, out stage);

internal void ClearProgress() =>
InvokeMethod(new object[] { }, out _);

void SetEnableBakedLightmaps(bool enable) =>
InvokeMethod(new object[] { enable }, out _);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,7 @@ public override void Dispose()
occlusionResults.Dispose();
renderingLayerMasks.Dispose();

bakePipelineDriver?.ClearProgress();
bakePipelineDriver?.Dispose();
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -328,9 +328,19 @@ static internal void RecomputeVOForDebugOnly()
while (job.currentStep < job.stepCount)
job.Step();

foreach (var cell in m_BakingBatch.cells)
for (int c = 0; c < m_BakingBatch.cells.Count; ++c)
{
var cell = m_BakingBatch.cells[c];
int numProbes = cell.probePositions.Length;

// Might have no offset vectors, if the previous bake wasn't using virtual offsets.
// If so, initialize them so the user can still preview what the offsets will do.
if (cell.offsetVectors == null)
{
cell.offsetVectors = new Vector3[numProbes];
m_BakingBatch.cells[c] = cell;
}

for (int i = 0; i < numProbes; ++i)
{
int j = cell.probeIndices[i];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1930,7 +1930,7 @@ public static bool BakeAsync()
if (Lightmapping.isRunning || AdaptiveProbeVolumes.isRunning || !PrepareBaking(BakeType.ApvOnly, DoProbePlacement, AdditionalGIBakeRequestsManager.GetProbeNormalizationRequests))
return false;

_asyncBakeTaskId = Progress.Start("Bake Adaptive Probe Volumes");
_asyncBakeTaskId = Progress.Start("Bake Adaptive Probe Volumes", options: Progress.Options.Synchronous);
Progress.RegisterCancelCallback(_asyncBakeTaskId, () =>
{
OnBakeCancelled();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -296,7 +296,7 @@ internal static void OpenProbeVolumeDebugPanel(object userData, string[] options
var debugWindow = EditorWindow.GetWindow<DebugWindow>();
debugWindow.titleContent = DebugWindow.s_TitleContent;
debugWindow.Show();
DebugManager.instance.RequestEditorWindowPanel(ProbeReferenceVolume.k_DebugPanelName);
DebugManager.instance.RequestPanelSelection(ProbeReferenceVolume.k_DebugPanelName);
#endif
}

Expand Down Expand Up @@ -325,7 +325,7 @@ void BakeButtonCallback(object data)
if (AdaptiveProbeVolumes.isRunning)
{
if (GUILayout.Button(Styles.cancelBake, Styles.buttonStyle))
AdaptiveProbeVolumes.Cancel();
EditorApplication.delayCall += () => AdaptiveProbeVolumes.Cancel();
return;
}

Expand Down Expand Up @@ -640,9 +640,8 @@ void InitializeSceneList()
onRemoveCallback = (list) =>
{
var guid = (string)list.list[list.index];
activeSet.RemoveScene(guid);
Undo.RegisterCompleteObjectUndo(new Object[] { activeSet }, "Deleted scene in baking set");
EditorUtility.SetDirty(activeSet);
activeSet.RemoveScene(guid);
},

drawHeaderCallback = (rect) =>
Expand Down Expand Up @@ -888,7 +887,7 @@ internal static void BakeAPVButton()
if (AdaptiveProbeVolumes.isRunning)
{
if (GUILayout.Button(Styles.cancelBake))
AdaptiveProbeVolumes.Cancel();
EditorApplication.delayCall += () => AdaptiveProbeVolumes.Cancel();
}
else
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,15 @@ public override void OnGUI(Rect position, SerializedProperty property, GUIConten
euler = EditorGUI.Vector3Field(position, label, euler);
EditorGUIUtility.wideMode = w;
if (EditorGUI.EndChangeCheck())
property.quaternionValue = Quaternion.Euler(euler);
{
bool isFinite = (!float.IsNaN(euler.x) && !float.IsInfinity(euler.x) &&
!float.IsNaN(euler.y) && !float.IsInfinity(euler.y) &&
!float.IsNaN(euler.z) && !float.IsInfinity(euler.z));
if (isFinite)
{
property.quaternionValue = Quaternion.Euler(euler.x, euler.y, euler.z);
}
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -303,6 +303,8 @@ internal static string PerformUpgradeInternal(
{
s_UpgradeLog.AppendLine($"{progressBarName}");

bool anyMaterialModified = false;

for (int materialIndex = 0; materialIndex < materialUpgrades.Count; ++materialIndex)
{
var entry = materialUpgrades[materialIndex];
Expand All @@ -323,11 +325,16 @@ internal static string PerformUpgradeInternal(
else
{
s_UpgradeLog.AppendLine($"Upgrading material: {entry.MaterialInfo.Name} using shader: {entry.MaterialInfo.ShaderName}");
Upgrade(entry.MaterialInfo.Material, upgraders, flags);
if (entry.MaterialInfo.Material != null)
{
Upgrade(entry.MaterialInfo.Material, upgraders, flags);
anyMaterialModified = true;
}
}
}

AssetDatabase.SaveAssets();
if (anyMaterialModified)
AssetDatabase.SaveAssets();

if (showProgressBar)
EditorUtility.ClearProgressBar();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,21 +18,29 @@ private void Reset()
if (m_Settings != null)
{
m_Settings.Reset();

// TODO: Tear the UI down and re-create it for now - this is horrible, so reset it instead.
UnregisterDebug();
RegisterDebug(m_Settings);
DebugManager.instance.RefreshEditor();
ReregisterDebugPanels();
}
}

/// <summary>
/// Unregisters and re-registers all DebugUI panels associated with the current <see cref="ISerializedDebugDisplaySettings"/>.
/// This effectively rebuilds the debug panel hierarchy without touching the Rendering Debugger window state itself.
/// </summary>
void ReregisterDebugPanels()
{
// TODO: Tear the UI down and re-create it for now - this is horrible, so reset it instead.
UnregisterDebug();
RegisterDebug(m_Settings);
}

/// <summary>
/// Register a display for the UI
/// </summary>
/// <param name="settings"><see cref="IDebugDisplaySettings"/> to be registered</param>
public void RegisterDebug(IDebugDisplaySettings settings)
{
DebugManager.instance.RegisterData(this);
DebugManager.instance.onRecreateDebugUI += ReregisterDebugPanels;
m_Settings = settings;
m_Settings.Add(new DebugDisplaySettingsRenderGraph());

Expand Down Expand Up @@ -64,6 +72,7 @@ internal void InitializeDebugUI()
displayName: disposableSettingsPanel.PanelName,
createIfNull: true,
groupIndex: (disposableSettingsPanel is DebugDisplaySettingsPanel debugDisplaySettingsPanel) ? debugDisplaySettingsPanel.Order : 0);

#if UNITY_EDITOR
if (DocumentationUtils.TryGetHelpURL(disposableSettingsPanel.GetType(), out var documentationUrl))
panel.documentationUrl = documentationUrl;
Expand All @@ -73,6 +82,7 @@ internal void InitializeDebugUI()

panel.flags = disposableSettingsPanel.Flags;
panels.Add(disposableSettingsPanel);

panelChildren.Add(panelWidgets);
};

Expand All @@ -99,6 +109,7 @@ public void UnregisterDebug()
DebugUI.Widget[] panelWidgets = disposableSettingsPanel.Widgets;
string panelId = disposableSettingsPanel.PanelName;
DebugUI.Panel panel = debugManager.GetPanel(panelId, true);

ObservableList<DebugUI.Widget> panelChildren = panel.children;

disposableSettingsPanel.Dispose();
Expand All @@ -109,6 +120,7 @@ public void UnregisterDebug()
}

debugManager.UnregisterData(this);
debugManager.onRecreateDebugUI -= ReregisterDebugPanels;

DebugManager.windowStateChanged -= DebugUIOpened;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -291,7 +291,7 @@ internal static void OpenInRenderingDebugger(VolumeComponent volumeComponent = n
if (panel == null)
return;

DebugManager.instance.RequestEditorWindowPanel(k_PanelTitle);
DebugManager.instance.RequestPanelSelection(k_PanelTitle);

// Try to select the given volume component in the component selector drop down
if (volumeComponent != null &&
Expand Down
Loading
Loading