Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
1e8fb0d
[Port] [6000.5] Search field for Rendering Debugger
svc-reach-platform-support Feb 18, 2026
7105f11
[Port] [6000.5] Don't initialize debug UI on pipeline create
svc-reach-platform-support Feb 18, 2026
00c7238
Disable unstable test
Daniel-Dobzinski Feb 19, 2026
e6c0367
Disable unstable test
Daniel-Dobzinski Feb 19, 2026
e1ec95f
[Port] [6000.5] Web accessibility fixes in Shader Graph documentation
svc-reach-platform-support Feb 19, 2026
76307f3
[Port] [6000.5] [ShaderGraph] Fix Enum Labels and a few other issues
svc-reach-platform-support Feb 19, 2026
0b2e92c
Disable unstable test EmptyWorldWithEnvironmentLight_ShouldOutputEnvi…
Daniel-Dobzinski Feb 19, 2026
0162d49
[Backport] Fix up Surface Cache to match recent rename of QrngKronecker.
urasmus Feb 19, 2026
82db064
Disable unstable test
Daniel-Dobzinski Feb 19, 2026
477ccef
[Port] [6000.5] [ShaderGraph] Expression Node
svc-reach-platform-support Feb 20, 2026
ff6dd8c
UUM-115301: Fixed ability to use SampleTextureElement multiple times
alexandret-unity Feb 20, 2026
7c10e7e
[Port] [6000.5] Fix a number of ShaderGraph UI/UX bugs
svc-reach-platform-support Feb 20, 2026
ab08630
[Port] [6000.5] Fix null resource in URP post process after PR 73772
svc-reach-platform-support Feb 20, 2026
89470b3
[Port] [6000.5] [VFX] Fixed multiple small UI issues in the template …
svc-reach-platform-support Feb 20, 2026
78a7c27
[Port] [6000.5] UUM-133550 : Fixed crash when using XAtlas with first…
svc-reach-platform-support Feb 21, 2026
51b4f0d
[Port] [6000.5] [D2D-7847] Light2D and ShadowCaster2D extensibility
svc-reach-platform-support Feb 23, 2026
c64b367
[Port] [6000.5] [Switch2 Graphics] Support shader pragma extended_str…
svc-reach-platform-support Feb 23, 2026
254ddf5
[Port] [6000.5] Fix material debug not working
svc-reach-platform-support Feb 24, 2026
3c9b513
[Port] [6000.5] Fix ShaderGraph BuiltIn Target test projects
svc-reach-platform-support Feb 24, 2026
1bf8aee
[Port] [6000.5] Improve UGUI Shaders sample with new Shader Subgraphs…
svc-reach-platform-support Feb 24, 2026
674008f
[Port] [6000.5] [ShaderGraph] Ensure slot names are refreshed when re…
svc-reach-platform-support Feb 24, 2026
6954a92
[Port] [6000.5] Use builtin firstbitlow with DXC
svc-reach-platform-support Feb 25, 2026
9661c25
[6.5/URP] Restore RWTexture3D<half4> usage in probes shader on metal
alexey-unity Feb 25, 2026
1f15e8c
[Port] [6000.5] [URP] Implement Lazy initialisation for PlatformAutoD…
svc-reach-platform-support Feb 25, 2026
828f67c
[Port] [6000.5] [D2D-7864][6000.5][2D] Render sprite instanced overlo…
svc-reach-platform-support Feb 25, 2026
cfcbd94
[Port] [6000.5] [Icons] Correct handling of IconAttribute in the Anno…
svc-reach-platform-support Feb 25, 2026
669005a
[Port] [6000.5] [ShaderGraph] lazy enable asset post processor for pr…
svc-reach-platform-support Feb 25, 2026
ee2352f
[Port] [6000.5] Fix PS5 shader compilation error in Surface Cache
svc-reach-platform-support Feb 25, 2026
ad2229f
[Port] [6000.5] [HDRP]Make sure we show warnings on the inspector and…
svc-reach-platform-support Feb 25, 2026
88ec639
[6.5] Update to latest timeline package version in SRP and Performanc…
catalina-unity Feb 26, 2026
af99305
[Port] [6000.5] Disable unstable Materials test on PS4
svc-reach-platform-support Feb 26, 2026
37b9824
[Port] [6000.5] Fixed redefinition causing warning in UITK shader tem…
svc-reach-platform-support Feb 27, 2026
73b7211
[content automatically redacted] touching PlatformDependent folder
svc-reach-platform-support Feb 27, 2026
b20242c
[Port] [6000.5] Shorten SurfaceCacheGlobalIlluminationRendererFeature…
svc-reach-platform-support Feb 27, 2026
fef747b
[Port] [6000.5] HDRP: Removed Environmental Variable Check for Switch…
svc-reach-platform-support Feb 27, 2026
4bd813a
[Backport 6000.5] Fix coverage (arcAA) issue with SVG Gradient.
ncerone-unity Feb 27, 2026
8289014
[Port] [6000.5] [UUM-132565][UUM-132573] [6000.5][2D] Light Batching …
svc-reach-platform-support Feb 28, 2026
5c1b031
[Port] [6000.5] [UUM-134981] Make sure to declare output arrays with …
svc-reach-platform-support Feb 28, 2026
802e467
[Port] [6000.5] Initialise VolumeManager BaseComponentTypes from Defa…
svc-reach-platform-support Mar 2, 2026
9c235cb
[Port] [6000.5] Fix shader miscompilation of Shader Graph's Dither no…
svc-reach-platform-support Mar 2, 2026
f00667b
[Port] [6000.5] [UUM-133826] Initialize uv1 for Canvas shaders when n…
svc-reach-platform-support Mar 3, 2026
cc947ac
[Port] [6000.5] Lighting Search Column Improvements and Test Improvem…
svc-reach-platform-support Mar 3, 2026
f3c1995
[Port] [6000.5] [ShaderGraph] Strong Hints - improved feedback and co…
svc-reach-platform-support Mar 3, 2026
4665b68
[Port] [6000.5] [VFX] Reduce number of variants produced by VFX outputs
svc-reach-platform-support Mar 3, 2026
4b237f5
Show performance warnings on Switch2 for advanced water features
MinseokLee-Unity Mar 4, 2026
27b7788
[Port] [6000.5] Change UIDocument to PanelRenderer for Rendering Debu…
svc-reach-platform-support Mar 4, 2026
dcd0551
[6000.5] The Extensible On-Tile Renderer and Post Processing for all …
UnityAljosha Mar 4, 2026
7d70cd1
[Port] [6000.5] Disabling Render Pipeline Converter menu item when no…
svc-reach-platform-support Mar 4, 2026
ba44538
[HDRP] [Switch 2] [SRP-1125] P0 - Mark specific Volumetric Fog config…
EmreDoganUnity Mar 4, 2026
71f136f
[Port] [6000.5] Add "Directional Only" and "Half Resolution" Options …
svc-reach-platform-support Mar 4, 2026
d55712d
[Port] [6000.5] Improve UI/UX of On-Tile Renderer
svc-reach-platform-support Mar 6, 2026
743d7a0
[Port] [6000.5] Add warning message for Probe Volumes in Rendering De…
svc-reach-platform-support Mar 6, 2026
551eeb2
[Port] [6000.5] Correct cases where we could fail to update HDRP Volu…
svc-reach-platform-support Mar 6, 2026
0db5c87
Backport: bump profileanalzyer to 1.3.2 in test projects
stefanunity Mar 6, 2026
2fa95de
[Port] [6000.5] [2d] Add sprite blendshape test cases into 2D graphic…
svc-reach-platform-support Mar 6, 2026
412f970
[Port] [6000.5] Performance Regression Rendering Debugger UITK
raquelpeces Mar 6, 2026
41b7f93
[Port] [6000.5] optimized forward lighting light loop for point light…
svc-reach-platform-support Mar 6, 2026
dd11d69
[Port] [6000.5] Remove _SurfaceType
svc-reach-platform-support Mar 6, 2026
7002604
[Port] [6000.5] [VFX] Fix Sort.compute crash caused by OOB buffer access
svc-reach-platform-support Mar 7, 2026
6357356
[Port] [6000.5] [ShaderGraph] Reference and Precision hints and impro…
svc-reach-platform-support Mar 7, 2026
29a1887
[Port] [6000.5] Improve VolumeProfile inspector performance
svc-reach-platform-support Mar 10, 2026
83981fa
[Port] [6000.5] Fixed: opening the Volume Profile Menu before Volume …
svc-reach-platform-support Mar 10, 2026
d143f06
[6.5] Update timeline package to 1.8.10 for SRP, Timeline and couple …
catalina-unity Mar 10, 2026
a0fa67a
[Port] [6000.5] DOCG-8437 Add BIRP deprecation notices to the relevan…
svc-reach-platform-support Mar 10, 2026
1728bae
[Backport 6000.5] Fixed generated code for preview nodes for UI Toolk…
alexandret-unity Mar 10, 2026
513b3a6
[Port] [6000.5] [UUM-135718] Fixed HDRP wizard button label alignment
svc-reach-platform-support Mar 10, 2026
26424d6
Clear indirect arguments buffer for local fog volumes.
MinseokLee-Unity Mar 11, 2026
eef7248
[Port] [6000.5] [HDRP] Fix volumetric clouds white flickering when ca…
svc-reach-platform-support Mar 11, 2026
118b66d
[Port] [6000.5] Improve UI/UX of Renderer Features with the Tile-Only…
svc-reach-platform-support Mar 12, 2026
08ad023
[Port] [6000.5] UUM-134685 Add documentation buttons to rendering deb…
svc-reach-platform-support Mar 12, 2026
2958b11
[Backport 6000.5] Fix gamma issue of Sample Element Texture node for …
ncerone-unity Mar 12, 2026
c64fa8b
[Port] [6000.5] [UUM-135640][6000.6][URP 2D] Fix shadow caster 2d cul…
svc-reach-platform-support Mar 12, 2026
fb514e4
Port/6000.5/graphics/srp/rpc/xr transparent UI spacewarp support
lpledouxUnity Mar 13, 2026
860b79e
[Port] [6000.5] Fix SSAO Clear() wiping camera normals texture
svc-reach-platform-support Mar 13, 2026
6d4d44e
[Backport 6000.5] Correctly support UITKPreview without affecting oth…
ncerone-unity Mar 13, 2026
abd46d6
[6000.5][VFX][UUM-133319] Fix subgraph dependencies
julienf-unity Mar 13, 2026
d9d7532
[content automatically redacted] touching PlatformDependent folder
Daxode Mar 13, 2026
c87f239
[Port] [6000.5] [SG] Fixes for Node Preview Preferences issues
svc-reach-platform-support Mar 13, 2026
9788dd7
[Port] [6000.5] [SRP] Update RSUV samples to leverage the new shader …
svc-reach-platform-support Mar 13, 2026
3fe129c
[Port] [6000.5] [SG] Node Reference Sample Update
svc-reach-platform-support Mar 14, 2026
1df525f
[content automatically redacted] touching PlatformDependent folder
EmilieThaulow Mar 14, 2026
87e71b5
[Port][6000.5][UUM-134265] Fix `NullReferenceException` when deleting…
april-roszkowski Mar 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
  •  
  •  
  •  

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,16 @@ public static void ShowWindow()
[MenuItem("Window/Rendering/Render Pipeline Converter", true, 50)]
public static bool CanShowWindow()
{
return !EditorApplication.isPlaying;
if (EditorApplication.isPlaying)
return false;

foreach (var converterType in TypeCache.GetTypesDerivedFrom<IRenderPipelineConverter>())
{
if (!converterType.IsAbstract && !converterType.IsInterface)
return true;
}

return false;
}

internal static void DontSaveToLayout(EditorWindow wnd)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
#if ENABLE_UIELEMENTS_MODULE && (UNITY_EDITOR || DEVELOPMENT_BUILD)
#define ENABLE_RENDERING_DEBUGGER_UI
#endif

using System;
using System.Collections.Generic;
using UnityEditor.UIElements;
using UnityEngine;
using UnityEngine.Rendering;
using UnityEngine.UIElements;

namespace UnityEditor.Rendering
{
internal class WidgetSearchData
{
public List<TextElement> textElements;
public string aggregatedAdditionalSearchText;

public WidgetSearchData(List<TextElement> textElements, string aggregatedAdditionalSearchText)
{
this.textElements = textElements;
this.aggregatedAdditionalSearchText = aggregatedAdditionalSearchText;
}
}

sealed partial class DebugWindow
{
#if ENABLE_RENDERING_DEBUGGER_UI
readonly Dictionary<DebugUI.Widget, WidgetSearchData> m_WidgetSearchElementCache = new();
readonly List<TextElement> m_PanelHeaderTextElements = new();
UIElementSearchFilter m_SearchFilter;

void BuildSearchCache()
{
m_WidgetSearchElementCache.Clear();
m_PanelHeaderTextElements.Clear();

foreach (var panelElement in m_RightPaneElement.Children())
{
var headerLabel = panelElement.Q<Label>(className: "debug-window-search-filter-target");
if (headerLabel != null)
m_PanelHeaderTextElements.Add(headerLabel);
}

DebugManager.instance.ForEachWidget(widget =>
{
if (widget.m_VisualElement == null)
return;

List<TextElement> textElements = widget.m_VisualElement.Query()
.Descendents<TextElement>(classname: "debug-window-search-filter-target")
.ToList();

string aggregatedText = CollectAggregatedAdditionalSearchText(widget);
m_WidgetSearchElementCache[widget] = new WidgetSearchData(textElements, aggregatedText);
});
}

void InitializeSearchField()
{
m_SearchFilter = new UIElementSearchFilter(
rootVisualElement,
searchString =>
{
var visiblePanels = PerformSearch(m_WidgetSearchElementCache, searchString, hideRootElementIfNoMatch: true);

foreach (var headerLabel in m_PanelHeaderTextElements)
UIElementSearchFilter.ApplySearchAndHighlight(headerLabel, searchString, out _);

foreach (var panel in DebugManager.instance.panels)
{
var tab = m_LeftPaneElement.Q<VisualElement>(name: panel.displayName + "_Tab");
if (tab != null)
{
bool shouldShow = string.IsNullOrEmpty(searchString) || visiblePanels.Contains(panel.displayName);
tab.style.display = shouldShow ? DisplayStyle.Flex : DisplayStyle.None;
}
}
}
);
m_SearchFilter.InitializeSearchField("search-field");
}

internal static string CollectAggregatedAdditionalSearchText(DebugUI.Widget widget)
{
var parts = new List<string>();

if (!string.IsNullOrEmpty(widget.m_AdditionalSearchText))
parts.Add(widget.m_AdditionalSearchText);

if (widget is DebugUI.Container container)
{
foreach (var child in container.children)
{
string childAggregated = CollectAggregatedAdditionalSearchText(child);
if (!string.IsNullOrEmpty(childAggregated))
parts.Add(childAggregated);
}
}

return parts.Count > 0 ? string.Join(",", parts) : string.Empty;
}

internal static HashSet<string> PerformSearch(Dictionary<DebugUI.Widget, WidgetSearchData> elementCache, string searchString, bool hideRootElementIfNoMatch = false)
{
var panelsWithVisibleWidgets = new HashSet<string>();

foreach (var (widget, searchData) in elementCache)
{
bool anyDescendantMatchesSearch = false;
foreach (var elem in searchData.textElements)
{
UIElementSearchFilter.ApplySearchAndHighlight(elem, searchString, out bool matched);
if (matched)
anyDescendantMatchesSearch = true;
}

if (!string.IsNullOrEmpty(searchData.aggregatedAdditionalSearchText))
{
if (searchData.aggregatedAdditionalSearchText.Contains(searchString, StringComparison.CurrentCultureIgnoreCase))
anyDescendantMatchesSearch = true;
}

if (hideRootElementIfNoMatch)
{
if (searchString == string.Empty && searchData.textElements.Count == 0)
{
widget.m_IsHiddenBySearchFilter = false;
}
else
{
widget.m_IsHiddenBySearchFilter = !anyDescendantMatchesSearch;
}
}
else
{
widget.m_IsHiddenBySearchFilter = false;
}

if (!widget.m_IsHiddenBySearchFilter && widget.panel != null)
panelsWithVisibleWidgets.Add(widget.panel.displayName);
}

return panelsWithVisibleWidgets;
}
#endif
}
}

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 @@ -163,11 +163,15 @@ static void SendWidgetValueChangedAnalytic<T>(string queryPath, T previousValue,
// Note: this won't get called if the window is opened when the editor itself is closed
void OnDestroy()
{
// Note: In the case where the window is maximized/unmaximized, OnEnable for the new window gets called *before* OnDestroy.
// Therefore you need to be careful with statics/globals. In this case, we only mark displayEditorUI as false if we are
// closing the only/last DebugWindow instance.
if (Resources.FindObjectsOfTypeAll(typeof(DebugWindow)).Length == 0)
DebugManager.instance.displayEditorUI = false;
EditorApplication.delayCall += () =>
{
// Note: In the case where the window is maximized/unmaximized, OnEnable for the new window gets called *before* OnDestroy.
// Therefore you need to be careful with statics/globals. In this case, we only mark displayEditorUI as false if we are
// closing the only/last DebugWindow instance. The check is delayed because inside OnDestroy, the current window still exists.
var debugWindows = Resources.FindObjectsOfTypeAll(typeof(DebugWindow));
if (debugWindows.Length == 0)
DebugManager.instance.displayEditorUI = false;
};

DebugManager.instance.onSetDirty -= MarkDirty;

Expand Down Expand Up @@ -286,6 +290,9 @@ private void RecreateGUI()
// The schedulers themselves are created in AttachToPanelEvent so we need to delay to ensure this has happened.
EditorApplication.delayCall += () => SetSelectedPanel(m_SelectedPanelName);
});

BuildSearchCache();
InitializeSearchField();
}

void ResetClicked()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
:root {
}

/* Lateral Tab Panel */
.top-toolbar {
height: 22px;
}

#debug-window-tab-panel {
align-items: stretch;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
engine="UnityEngine.UIElements" editor="UnityEditor.UIElements" noNamespaceSchemaLocation="../../../../../UIElementsSchema/UIElements.xsd" editor-extension-mode="True">
<uie:Toolbar class="top-toolbar">
<uie:ToolbarSpacer style="flex-grow: 1" />
<uie:ToolbarSearchField name="search-field"/>
<uie:ToolbarButton text="Reset" name="btn-reset" focusable="false" />
</uie:Toolbar>
<ui:TwoPaneSplitView fixed-pane-index="0" fixed-pane-initial-dimension="225" view-data-key="debug-window-split-view">
Expand Down

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

namespace UnityEditor.Lighting
{
static class CoreLightingSearchSelectors
static class CoreLightingSearchColumnProviders
{
internal const string k_SceneProvider = "scene";
internal const string k_BakingSetPath = "BakingSets/";
Expand All @@ -18,8 +18,7 @@ static class CoreLightingSearchSelectors
internal const string k_VolumeModePath = k_VolumePath + "Mode";
internal const string k_VolumeProfilePath = k_VolumePath + "Profile";

const string k_StyleSheetPath = "StyleSheets/LightingSearchSelectors.uss";
const int k_DefaultSearchSelectorPriority = 99;
const string k_StyleSheetPath = "StyleSheets/LightingSearchColumnProviders.uss";
const int k_MinBakingSamples = 1;
const int k_MaxBakingSamples = 8192;
static StyleSheet s_StyleSheet;
Expand All @@ -33,26 +32,6 @@ static StyleSheet LoadStyleSheet()
return s_StyleSheet;
}

[SearchSelector(k_VolumeModePath, provider: k_SceneProvider, priority: k_DefaultSearchSelectorPriority)]
static object VolumeModeSearchSelector(SearchSelectorArgs args)
{
var go = args.current.ToObject<GameObject>();
if (go == null)
return null;

return LightingSearchDataAccessors.GetVolumeMode(go);
}

[SearchSelector(k_VolumeProfilePath, provider: k_SceneProvider, priority: k_DefaultSearchSelectorPriority)]
static object VolumeProfileSearchSelector(SearchSelectorArgs args)
{
var go = args.current.ToObject<GameObject>();
if (go == null)
return null;

return LightingSearchDataAccessors.GetVolumeProfile(go);
}

[SearchColumnProvider(k_BakingModePath)]
public static void BakingModeSearchColumnProvider(SearchColumn column)
{
Expand Down Expand Up @@ -396,7 +375,7 @@ internal static void SetLightShape(GameObject go, LightType value)

internal static bool IsLightShapeApplicable(LightType lightType)
{
return IsAreaLight(lightType);
return lightType is LightType.Rectangle or LightType.Disc;
}

static bool IsAreaLight(LightType lightType)
Expand All @@ -407,8 +386,7 @@ static bool IsAreaLight(LightType lightType)
enum AreaLightShape
{
Rectangle = LightType.Rectangle,
Disc = LightType.Disc,
Tube = LightType.Tube
Disc = LightType.Disc
}

class LightShapeField : EnumField
Expand Down Expand Up @@ -452,7 +430,9 @@ void UpdateEnumField()
{
if (IsAreaLight(m_Value))
{
Init((AreaLightShape)m_Value, false);
// Tube is not offered as an option; display as Rectangle
var displayType = m_Value == LightType.Tube ? LightType.Rectangle : m_Value;
Init((AreaLightShape)displayType, false);
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -884,16 +884,18 @@ internal static Result ExecuteLightmapRequests(
bool debugDispatches = integrationSettings.DebugDispatches;
bool doDirectionality = AnyLightmapRequestHasOutput(lightmapRequestData.requests, LightmapRequestOutputType.DirectionalityDirect) || AnyLightmapRequestHasOutput(lightmapRequestData.requests, LightmapRequestOutputType.DirectionalityIndirect);

// Find the max index count in any mesh, so we can pre-allocate various buffers based on it.
// Find the max index and vertex count in any mesh, so we can pre-allocate various buffers based on it.
uint maxIndexCount = 1;
uint maxVertexCount = 1;
for (int meshIdx = 0; meshIdx < world.Meshes.Length; ++meshIdx)
{
maxIndexCount = Math.Max(maxIndexCount, world.Meshes[meshIdx].GetTotalIndexCount());
maxVertexCount = Math.Max(maxVertexCount, (uint)world.Meshes[meshIdx].vertexCount);
}

(int width, int height)[] atlasSizes = lightmapRequestData.atlassing.m_AtlasSizes;
int initialLightmapResolution = atlasSizes.Length > 0 ? atlasSizes[0].width : 1024;
if (!lightmappingContext.Initialize(deviceContext, initialLightmapResolution, initialLightmapResolution, world, maxIndexCount, lightmapResourceLib))
if (!lightmappingContext.Initialize(deviceContext, initialLightmapResolution, initialLightmapResolution, world, maxIndexCount, maxVertexCount, lightmapResourceLib))
return Result.InitializeFailure;

lightmappingContext.IntegratorContext.Initialize(samplingResources, lightmapResourceLib, !useLegacyBakingBehavior);
Expand Down
Loading
Loading