Skip to content
Merged
Show file tree
Hide file tree
Changes from 38 commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
5fcccef
Refactor MockHMD SetupTests to allow for a wait frame after changing …
guillaumelevass Apr 16, 2026
702b3a8
[MaterialUpgrader] Terrain and Speedtree material upgrader tests
ernestasKupciunas Apr 16, 2026
b2781b4
[content automatically redacted] touching PlatformDependent folder
sashaslobodov Apr 16, 2026
4da5fb1
Reference pages for new Shader Graph nodes: Expression and Switch
sebastienduverne Apr 16, 2026
0ceffbd
Fixed display stats not updating until tab switch in the runtime debu…
arttu-peltonen Apr 16, 2026
d3e8bfb
Graphics/srp/fix/fix broken swap function uum 139463
jed-unity3d Apr 16, 2026
b1e0fa7
[VFX New Compiler] Nested structured / unordered data
ludovic-theobald Apr 17, 2026
0998b25
Updated `HDAdditionalLightData` to work with CoreCLR
jrs-unity Apr 17, 2026
d6f0465
Make HDRP Columndrawer more robust
lochrist Apr 17, 2026
3c0ad49
Higher threshold for AMD.
pema99 Apr 17, 2026
00b0523
GFXLIGHT-2009 : Adding environment intensity into Surface Cache.
olivierprat Apr 17, 2026
41a9e07
docg-8491: LOD Group Animate Cross-fading is unsupported by GPU Resid…
ocarrere Apr 19, 2026
d771a55
[UUM-138310][6000.6][2D] Ensure Universal.2D.Runtime supports Fast En…
kennytann Apr 20, 2026
670b262
[SRP] Fix missing meshes in SRP scene templates
remi-chapelain Apr 21, 2026
1d0b116
Surface Cache: Deferred Bounce Patch Allocation
urasmus Apr 21, 2026
dadcc99
[Core] Fix SRP Sample dependency importer
remi-chapelain Apr 21, 2026
fb2c4f6
Updated `LensFlareCommonSRP` and `LensFlareComponentSRP` to work with…
jrs-unity Apr 21, 2026
a63a029
GFXLIGHT-2027 : Fix high flickering on SSR with TAA
olivierprat Apr 21, 2026
c11f4aa
[SRP] Fix scene view camera transform on HD Template
remi-chapelain Apr 21, 2026
4257930
[URP][Shader Graph] Add stereo instancing support to custom UITK shad…
ashleykitchen-unity Apr 21, 2026
6333b24
[UUM-139845] Restore virtual texturing keyword permutation logic
april-roszkowski Apr 21, 2026
62d3946
GFXLIGHT-1911 : Gradient environment support for Surface Cache
olivierprat Apr 21, 2026
0d75c2f
[VFX New Compiler] GPU Expressions in blocks
ludovic-theobald Apr 21, 2026
2a6e6e6
[UpscalerFramework] fix warnings in HDRP and URP
volkan-unity Apr 21, 2026
346b310
Disable unstable VFX test on WindowsEditor platform
AngelaDematte Apr 21, 2026
e0d3652
Fix Rendering Debugger Reset not clearing pinned persistent UI elemen…
rolandk-unity Apr 21, 2026
2c8d9aa
Fix Rendering Debugger enum dropdowns going blank after Reset (UUM-13…
arttu-peltonen Apr 21, 2026
f7d8985
[XR] Fix missing unity_StereoEyeIndex constant in URP Multi-pass, nee…
NetteVI Apr 22, 2026
eb10b20
Fix "Search string limit exceeded" warning in Rendering Debugger sear…
rolandk-unity Apr 22, 2026
f5ee508
Reset static variables for CoreCLR / Fast Enter Play Mode (SRP Core T…
arttu-peltonen Apr 22, 2026
fd32284
Reset static variables for CoreCLR / Fast Enter Play Mode (SRP Core T…
arttu-peltonen Apr 22, 2026
f76abc1
Shader optimizations/light indexing 16bitpacked
Paulm-Unity Apr 23, 2026
22a1262
Scripting/deprecate forbidden api pt1
JustinasPl Apr 23, 2026
750aaa8
Use IMGUI drawer to bypass ui issue with Light Rendering Layer
lochrist Apr 23, 2026
0330cb5
Fix SSR depth refinement failing on Android phone due to driver bug.
pema99 Apr 23, 2026
1f84614
Fix Rendering Debugger going blank when search yields no results
rolandk-unity Apr 23, 2026
b8f4071
[VFX] Monitored VFXGraph
PaulDemeulenaere Apr 23, 2026
9676b16
[SG] Custom Includes, Pragmas and Defines
FredMoreau Apr 23, 2026
18bdad7
[content automatically redacted] touching Platforms folder
volkan-unity Apr 23, 2026
d4a9a45
[UUM-134522][UUM-136056][URP 2D][6000.6] Fix 2d shadow volumetric bugs
kennytann Apr 23, 2026
afa2ab5
Restore missing tooltips in Rendering Debugger fields (UUM-138920)
rolandk-unity Apr 23, 2026
617dafe
Compact resource versioning
kirill-titov-u Apr 23, 2026
d7fb00d
Selection History
CianNoonanUnity Apr 23, 2026
3b933ec
Add graphics test for Modern SSAO
seungchan-jeong Apr 23, 2026
671d2da
Add option for transparent materials to choose whether to contribute …
laylaarab Apr 23, 2026
0fb5779
Bump Cinemachine to V3 in manifest
windxu88 Apr 23, 2026
0ff666f
[Rendering Debugger]Fixes for Foldouts
alex-vazquez-unity3d Apr 23, 2026
7423568
Re-enable RuntimeProfilerTests
arttu-peltonen Apr 23, 2026
155676a
[VFX] Profiling window / panels fixes
ludovic-theobald Apr 23, 2026
de1c776
[UUM-137272] Change file access strategy in Shader Graph importer
april-roszkowski Apr 23, 2026
4b6ea83
URP: Default newly-created Universal Renderers to IntermediateTexture…
ApoorvaJ Apr 23, 2026
f7e8344
Profiler/renderpipeline/stage 5 remaining
alexey-zakharov Apr 24, 2026
f99d1f3
[UUM-138256] Added shader variant stripping for point sampling upsamp…
CalChiu Apr 24, 2026
e32c029
Fix artifacts of applied rotational reflection probe
nanho-lee Apr 24, 2026
5e94c4e
[Material Upgrader] Generic system for URP and HDRP Menu item
alex-vazquez-unity3d Apr 24, 2026
6fe86c9
Fixed missing parameter
Nzollner Apr 24, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,13 @@ sealed partial class DebugWindow
readonly Dictionary<DebugUI.Widget, WidgetSearchData> m_WidgetSearchElementCache = new();
readonly List<TextElement> m_PanelHeaderTextElements = new();
UIElementSearchFilter m_SearchFilter;
Label m_NoResultsLabel;

void BuildSearchCache()
{
m_WidgetSearchElementCache.Clear();
m_PanelHeaderTextElements.Clear();
m_NoResultsLabel = rootVisualElement.Q<Label>(name: "debug-window-no-results-label");

foreach (var panelElement in m_RightPaneElement.Children())
{
Expand Down Expand Up @@ -76,6 +78,9 @@ void InitializeSearchField()
tab.style.display = shouldShow ? DisplayStyle.Flex : DisplayStyle.None;
}
}

bool noResults = !string.IsNullOrEmpty(searchString) && visiblePanels.Count == 0;
m_NoResultsLabel.style.display = noResults ? DisplayStyle.Flex : DisplayStyle.None;
}
);
m_SearchFilter.InitializeSearchField("search-field");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -108,3 +108,8 @@
.info-button:hover {
background-color: var(--unity-colors-button-background-hover);
}

#debug-window-no-results-label {
display: none;
-unity-text-align: middle-center;
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
<ui:VisualElement name="debug-window-tab-container" class="">
<ui:ScrollView horizontal-scroller-visibility="Hidden" view-data-key="debug-window-tab-container-scrollview">
<ui:VisualElement name="panels-inspector-insertion-element" />
<ui:Label name="debug-window-no-results-label" text="No results match your search." />
<ui:VisualElement name="scroll-buffer" />
</ui:ScrollView>
</ui:VisualElement>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -892,6 +892,7 @@ static internal void Init()
Lightmapping.bakeStarted += OnBakeStarted;
Lightmapping.bakeCancelled += OnBakeCancelled;
Lightmapping.inputExtraction += OnInputExtraction;
AssemblyReloadEvents.beforeAssemblyReload += CleanUp;
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
using System;
using System.Collections.Generic;
using System.IO;
using UnityEditor;
Expand Down Expand Up @@ -40,7 +39,6 @@ static SampleDependencyImporter()

PackageInfo m_PackageInfo;
SampleList m_SampleList;
List<Sample> m_Samples;

VisualElement injectingElement;
VisualElement _panelRoot;
Expand Down Expand Up @@ -100,6 +98,7 @@ internal void RefreshSampleButtons()

var bound = Mathf.Min(sampleContainers.Count, m_SampleList.samples.Length);

// Foreach sample
for (int i=0; i<bound; i++)
{
// Check if the sample has dependencies, if not just skip the injection.
Expand Down Expand Up @@ -155,16 +154,20 @@ internal void RefreshSampleButtons()

// Need to copy i for the lambda.
var index = i;
// On click of the imported button, import the dependencies first then call the original button logic.
// On click of the imported button, import the dependencies first then use the package manager API to trigger the regular sample import logic.
injectedButton.clicked += () =>
{
ImportSampleDependencies(index);

using (var ev = NavigationSubmitEvent.GetPooled())
// After importing the dependencies, we can call the package manager API import logic.
foreach (Sample sample in Sample.FindByPackage(m_PackageInfo.name, m_PackageInfo.version))
{
ev.target = importButton;
importButton.SendEvent(ev);
if (sample.displayName == m_SampleList.samples[index].displayName)
{
sample.Import(Sample.ImportOptions.HideImportWindow | Sample.ImportOptions.OverridePreviousImports);
}
}

};
}
else // We may need to update the button text after the sample import here.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ class UIElementSearchFilter
{
internal const string k_SelectionColorBeginTag = "<mark=#3169ACAB>";
internal const string k_SelectionColorEndTag = "</mark>";
const int k_SearchStringLimit = 15;
const int k_SearchStringLimit = 32;

IVisualElementScheduledItem m_PreviousSearch;
string m_PendingSearchString;
Expand All @@ -28,6 +28,7 @@ public void InitializeSearchField(string searchFieldName)
{
var searchField = m_RootElement.Q<ToolbarSearchField>(searchFieldName);
searchField.placeholderText = L10n.Tr("Search");
searchField.Q<TextField>().maxLength = k_SearchStringLimit;
searchField.RegisterValueChangedCallback(evt => OnSearchFilterChanged(evt.newValue));

// Apply empty search once in case the entire window was reloaded with a non-empty search. Search
Expand All @@ -37,13 +38,6 @@ public void InitializeSearchField(string searchFieldName)

void OnSearchFilterChanged(string searchString)
{
// Ensure the search string is within the allowed length limit
if (searchString.Length > k_SearchStringLimit)
{
searchString = searchString[..k_SearchStringLimit];
Debug.LogWarning($"Search string limit exceeded: {k_SearchStringLimit}");
}

// Sanitize to not match rich text tags
searchString = searchString.Replace("<", string.Empty).Replace(">", string.Empty);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ public interface ICameraHistoryReadAccess
public abstract class CameraHistoryItem : ContextItem
{
// BufferedRTHandleSystem of the owning camera.
private BufferedRTHandleSystem m_owner = null;
private BufferedRTHandleSystem m_Owner = null;
// Unique id for this type (derived) given by the owning camera.
private uint m_TypeId = uint.MaxValue;

Expand All @@ -117,7 +117,7 @@ public abstract class CameraHistoryItem : ContextItem
/// <param name="typeId">Unique id given to this class type by the owning camera.</param>
public virtual void OnCreate(BufferedRTHandleSystem owner, uint typeId)
{
m_owner = owner;
m_Owner = owner;
m_TypeId = typeId;
}

Expand All @@ -126,7 +126,7 @@ public virtual void OnCreate(BufferedRTHandleSystem owner, uint typeId)
/// <summary>
/// The owning camera RTHandle storage for the history textures.
/// </summary>
protected BufferedRTHandleSystem storage => m_owner;
protected BufferedRTHandleSystem storage => m_Owner;

/// <summary>
/// Creates unique ids for the RTHandle storage.
Expand Down Expand Up @@ -173,7 +173,7 @@ protected RTHandle AllocHistoryFrameRT(int id, int count,
RenderTextureDescriptor d = desc;
// Simplified for typical history textures:
// No shadows, no mipmaps, no aniso.
m_owner.AllocBuffer(id, count, ref desc, filterMode, TextureWrapMode.Clamp, false, 0, 0, name);
m_Owner.AllocBuffer(id, count, ref desc, filterMode, TextureWrapMode.Clamp, false, 0, 0, name);
return GetCurrentFrameRT(0);
}

Expand All @@ -183,7 +183,7 @@ protected RTHandle AllocHistoryFrameRT(int id, int count,
/// <param name="id">Id for the history RTHandle storage.</param>
protected void ReleaseHistoryFrameRT(int id)
{
m_owner.ReleaseBuffer(id);
m_Owner.ReleaseBuffer(id);
}

/// <summary>
Expand All @@ -193,7 +193,7 @@ protected void ReleaseHistoryFrameRT(int id)
/// <returns>The RTHandle from previous frame.</returns>
protected RTHandle GetPreviousFrameRT(int id)
{
return m_owner.GetFrameRT(id, 1);
return m_Owner.GetFrameRT(id, 1);
}

/// <summary>
Expand All @@ -203,7 +203,27 @@ protected RTHandle GetPreviousFrameRT(int id)
/// <returns>The RTHandle of the current frame.</returns>
protected RTHandle GetCurrentFrameRT(int id)
{
return m_owner.GetFrameRT(id, 0);
return m_Owner.GetFrameRT(id, 0);
}

/// <summary>
/// Returns the id stable index from the previous frame.
/// </summary>
/// <param name="id">Id for the history RTHandle storage.</param>
/// <returns>The stable index from previous frame.</returns>
protected int GetPreviousFrameRTStableIndex(int id)
{
return m_Owner.GetFrameRTStableIndex(id, 1);
}

/// <summary>
/// Returns the id stable index of the current frame.
/// </summary>
/// <param name="id">Id for the history RTHandle storage.</param>
/// <returns>The stable index of the current frame.</returns>
protected int GetCurrentFrameRTStableIndex(int id)
{
return m_Owner.GetFrameRTStableIndex(id, 0);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ public bool displayPersistentRuntimeUI
}
else
{
CoreUtils.Destroy(m_RuntimePersistentDebugUI.gameObject);
CoreUtils.Destroy(m_RuntimePersistentDebugUI?.gameObject);
m_RuntimePersistentDebugUI = null;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,10 @@ public void Reset()
DebugDisplaySerializer.SaveFoldoutStates();
DebugDisplaySerializer.Clear();
resetData?.Invoke();
#if ENABLE_RENDERING_DEBUGGER_UI
displayPersistentRuntimeUI = false;
ForEachWidget(w => { if (w is DebugUI.ValueTuple vt) vt.pinnedElementIndex = -1; });
#endif
}

/// <summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -875,8 +875,11 @@ protected override VisualElement Create()

this.ScheduleTracked(field, () => field.schedule.Execute(() =>
{
if (currentIndex >= 0 && currentIndex < enumNames.Length)
field.SetValueWithoutNotify(enumNames[currentIndex].text);
// https://jira.unity3d.com/browse/UUM-138138: Clamp currentIndex to 0. This matches old IMGUI
// DebugUIDrawer behavior where a negative index is sometimes used to denote an invalid/none value.
int index = Mathf.Max(0, currentIndex);
if (index < enumNames.Length)
field.SetValueWithoutNotify(enumNames[index].text);
}).Every(100));

m_AdditionalSearchText = string.Join(",", field.choices);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,9 @@ void BuildDebugUI()
else
selectedPanelName = m_SelectedPanel.displayName;

SetSelectedPanel(selectedPanelName);
// Defer until after layout so all AttachToPanelEvent callbacks from ScheduleTracked
// have fired and registered their schedulers before SetHierarchyEnabled is called.
m_TabViewElement.schedule.Execute(_ => SetSelectedPanel(selectedPanelName)).StartingIn(100);
}

void OnDestroy()
Expand Down
Loading