Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
575d0e8
[6000.0][Switch2] Implement correct platform naming in cross-platform…
timcannellunity3d Jun 24, 2025
e49b9d9
[Port] [6000.0] DOCG-7470 Accessibility improvements
svc-reach-platform-support Jun 24, 2025
7001742
[Port] [6000.0] DirectX 11 is supported on PC on runtime
svc-reach-platform-support Jun 24, 2025
6fc27a6
[Port] [6000.0] Accessibility: HDRP package
svc-reach-platform-support Jun 24, 2025
e4941a2
[Port] [6000.0] docg-6724-unity-6-dx12-default: Test and refactor 'Se…
svc-reach-platform-support Jun 24, 2025
a156c84
[Port] [6000.0] Create new concept page about water decals from forum…
svc-reach-platform-support Jun 24, 2025
44f8b45
[Port] [6000.0] docg-7156: Add conceptual information about decals fo…
svc-reach-platform-support Jun 24, 2025
a48fafa
[Backport] [6000.0] Fix for the ndc space being sometimes wrong for S…
lpledouxUnity Jun 24, 2025
1725e83
[Port] [6000.0] docg-7128: Fix link
svc-reach-platform-support Jun 24, 2025
b04ecee
[Port] [6000.0] docg-7140-fix-typo
svc-reach-platform-support Jun 24, 2025
05c393f
[Port] [6000.0] docg-5368: Specify location of ambient occlusion prop…
svc-reach-platform-support Jun 25, 2025
efb3faf
[Port] [6000.0] docg-4941: document Hair Master Stack Shader graph Fr…
svc-reach-platform-support Jun 25, 2025
7365ec4
[Port] [6000.0] docg-5264: Update AxF-material-inspector-reference
svc-reach-platform-support Jun 25, 2025
e2bc6a5
[Port] [6000.0] docg-5996: Add note about Detail Mask and clarify des…
svc-reach-platform-support Jun 25, 2025
32b3a27
[Port] [6000.0] docg-5758: Remove link to AOV Recorder
svc-reach-platform-support Jun 25, 2025
fdca35e
[Port] [6000.0] docg-4247: Fix broken link
svc-reach-platform-support Jun 25, 2025
7b75500
[Port] [6000.0] docg-5646 Fix typo
svc-reach-platform-support Jun 25, 2025
b585681
[Port] [6000.0] Packages/com.unity.render-pipelines.high-definition@1…
svc-reach-platform-support Jun 25, 2025
d25d3ea
[Port] [6000.0] https://jira.unity3d.com/browse/DOCG-4866
svc-reach-platform-support Jun 25, 2025
4783f00
[Port] [6000.0] Projects with per-frame adjustments to certain parame…
svc-reach-platform-support Jun 25, 2025
18ec734
[Port] [6000.0] Docs/graphics/docg 5740 ray tracing troubleshooting 1
svc-reach-platform-support Jun 25, 2025
59141f7
Backport 6000.0. Fix black screen when using lens flare.
eh-unity Jun 26, 2025
270af09
[Port] [6000.0] docg-7174: Collision attributes reference
svc-reach-platform-support Jun 27, 2025
0063e2e
[Port] [6000.0] Graphics docs olivier april batch2 visualeffectsgraph…
ocarrere Jun 27, 2025
35ebb4c
[Port] [6000.0] DOCG-6486 Correct output type in Perlin Noise page
svc-reach-platform-support Jun 29, 2025
66bd095
[Port] [6000.0] UUM101193 - Using Burst static methods instead of Bur…
olivierprat Jun 30, 2025
cda9639
[Port] [6000.0] [UUM-97647] Fix for Null Exception in a Shadow Shape …
svc-reach-platform-support Jun 30, 2025
2b857ed
[Port] [6000.0] docg-7321: Specify HLSL include files extension
svc-reach-platform-support Jun 30, 2025
77873c4
[Port] [6000.0] 2d/staging/tilemap/uum 109109
svc-reach-platform-support Jul 1, 2025
c4a16e8
[Port] [6000.0] docg-7328: Fix typos
svc-reach-platform-support Jul 1, 2025
e664e38
[Port] [6000.0] DOCG-7175 Move Kill Shape docs into new page, clarify…
svc-reach-platform-support Jul 1, 2025
823ec6e
[Port] [6000.0] UUM-104165: Make APV work with Subscenes in URP
pigselated Jul 1, 2025
3df8f30
[Port] [6000.0] Docs/graphics/docg 6784 disappearing clouds
svc-reach-platform-support Jul 4, 2025
b398e58
Backport fog position node fix
Jul 7, 2025
82a0cbb
[Port] [6000.0] Remove additional separators
svc-reach-platform-support Jul 8, 2025
75c62ab
[Port] [6000.0] docg-7446: Document the Trigger Shape block in VFX Graph
svc-reach-platform-support Jul 9, 2025
0f0245a
[Port] [6000.0] GPUResidentDrawer - Enhanced culling statistics in Re…
olivierprat Jul 9, 2025
c35afbf
[Port] [6000.0] DOCG-7378 Improve HDRP shadow map update docs
svc-reach-platform-support Jul 9, 2025
5a889fa
[Port] [6000.0] URP - Avoid persistent memory allocation (_CameraTarg…
arttu-peltonen Jul 10, 2025
c2f6f31
[Port] [6000.0] [HDRP] Fix the issue of Unlit draw mode in scene view
svc-reach-platform-support Jul 10, 2025
e4d28c0
[Port] [6000.0] Fix Underline with font fallback chain
svc-reach-platform-support Jul 10, 2025
29a4c57
[Port] [6000.0] [HDRP] Bind missing buffer for debug shaders
svc-reach-platform-support Jul 14, 2025
c5db489
[UUM-109312][UUM-109986][6000.0] Fix URP 2D lighting with meshes in R…
kennytann Jul 14, 2025
0bb780f
[Port] [6000.0] DOCG-7557 Clarify detail mask values in HDRP
svc-reach-platform-support Jul 14, 2025
7f10393
Disable unstable tests
AngelaDematte Jul 14, 2025
512785f
[Port] [6000.0] [6000.3][UUM-110338] Fix UI rendering when FXAA is en…
svc-reach-platform-support Jul 14, 2025
ae31563
[Port] [6000.0] Feedback fixes 23 June 2025
svc-reach-platform-support Jul 14, 2025
510fa85
Disable unstable tests
AngelaDematte Jul 15, 2025
04937f4
[Port] [6000.0] [UUM-97117]Log the results of the converters in the c…
svc-reach-platform-support Jul 15, 2025
d9edbef
[Port] [6000.0] Remove redundant NUnit include
svc-reach-platform-support Jul 16, 2025
c16cfd7
[Backport] Fix for the background motion vectors computation being in…
lpledouxUnity Jul 16, 2025
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 @@ -279,13 +279,6 @@ internal void Init()
var supportedOn = volumeComponentType.GetCustomAttribute<VolumeComponentMenuForRenderPipeline>();
m_LegacyPipelineTypes = supportedOn != null ? supportedOn.pipelineTypes : Array.Empty<Type>();
#pragma warning restore CS0618

EditorApplication.contextualPropertyMenu += OnPropertyContextMenu;
}

void OnDestroy()
{
EditorApplication.contextualPropertyMenu -= OnPropertyContextMenu;
}

internal void DetermineVisibility(Type renderPipelineAssetType, Type renderPipelineType)
Expand Down Expand Up @@ -393,23 +386,13 @@ internal void AddDefaultProfileContextMenuEntries(
profile != null &&
defaultProfile != profile)
{
menu.AddSeparator(string.Empty);
menu.AddItem(EditorGUIUtility.TrTextContent($"Show Default Volume Profile"), false,
() => Selection.activeObject = defaultProfile);
menu.AddItem(EditorGUIUtility.TrTextContent($"Apply Values to Default Volume Profile"), false, copyAction);
}
}

void OnPropertyContextMenu(GenericMenu menu, SerializedProperty property)
{
if (property.serializedObject.targetObject != target)
return;

var targetComponent = property.serializedObject.targetObject as VolumeComponent;

AddDefaultProfileContextMenuEntries(menu, VolumeManager.instance.globalDefaultProfile,
() => VolumeProfileUtils.AssignValuesToProfile(VolumeManager.instance.globalDefaultProfile, targetComponent, property));
}

/// <summary>
/// Unity calls this method after drawing the header for each VolumeComponentEditor
/// </summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -445,13 +445,14 @@ void OnContextClick(Vector2 position, VolumeComponentEditor targetEditor, int id
if (!m_IsDefaultVolumeProfile)
menu.AddItem(EditorGUIUtility.TrTextContent("Remove"), false, () => RemoveComponent(id));

menu.AddSeparator(string.Empty);

if (targetEditor.hasAdditionalProperties)
{
menu.AddSeparator(string.Empty);
menu.AddAdvancedPropertiesBoolMenuItem(() => targetEditor.showAdditionalProperties,
() => targetEditor.showAdditionalProperties ^= true);
}

menu.AddSeparator(string.Empty);
targetEditor.AddDefaultProfileContextMenuEntries(menu, VolumeManager.instance.globalDefaultProfile,
() => VolumeProfileUtils.CopyValuesToProfile(targetComponent, VolumeManager.instance.globalDefaultProfile));

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
using System;
using System.Collections.Generic;
using Unity.Collections;
#if UNITY_EDITOR
using UnityEditor;
#endif
using static UnityEngine.Rendering.DebugUI;
using static UnityEngine.Rendering.DebugUI.Widget;

Expand Down Expand Up @@ -106,6 +109,7 @@ private static InstanceOcclusionEventStats GetInstanceOcclusionEventStats(int pa
else
return new InstanceOcclusionEventStats();
}

static class Strings
{
public const string drawerSettingsContainerName = "GPU Resident Drawer Settings";
Expand Down Expand Up @@ -144,6 +148,7 @@ private static int GetInstanceOcclusionEventCount()
{
return GPUResidentDrawer.GetDebugStats()?.instanceOcclusionEventStats.Length ?? 0;
}

private static DebugUI.Table.Row AddInstanceCullerViewDataRow(int viewIndex)
{
return new DebugUI.Table.Row
Expand All @@ -154,9 +159,32 @@ private static DebugUI.Table.Row AddInstanceCullerViewDataRow(int viewIndex)
children =
{
new DebugUI.Value { displayName = "View Type", refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () => GetInstanceCullerViewStats(viewIndex).viewType },
new DebugUI.Value { displayName = "View Instance ID", refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () => GetInstanceCullerViewStats(viewIndex).viewInstanceID },
new DebugUI.Value { displayName = "View Instance ID", refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () =>
{
var viewStats = GetInstanceCullerViewStats(viewIndex);
#if UNITY_EDITOR
Object view = EditorUtility.InstanceIDToObject(viewStats.viewInstanceID);
if (view)
{
return $"{viewStats.viewInstanceID} ({view.name})";
}
#endif
return viewStats.viewInstanceID;
}
},
new DebugUI.Value { displayName = "Split Index", refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () => GetInstanceCullerViewStats(viewIndex).splitIndex },
new DebugUI.Value { displayName = "Visible Instances", refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () => GetInstanceCullerViewStats(viewIndex).visibleInstances },
new DebugUI.Value { displayName = "Visible Instances CPU | GPU", tooltip = "Visible instances after CPU culling and after GPU culling.", refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () =>
{
var viewStats = GetInstanceCullerViewStats(viewIndex);
return $"{viewStats.visibleInstancesOnCPU} | {viewStats.visibleInstancesOnGPU}";
}
},
new DebugUI.Value { displayName = "Visible Primitives CPU | GPU", tooltip = "Visible primitives after CPU culling and after GPU culling.", refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () =>
{
var viewStats = GetInstanceCullerViewStats(viewIndex);
return $"{viewStats.visiblePrimitivesOnCPU} | {viewStats.visiblePrimitivesOnGPU}";
}
},
new DebugUI.Value { displayName = "Draw Commands", refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () => GetInstanceCullerViewStats(viewIndex).drawCommands },
}
};
Expand All @@ -182,6 +210,16 @@ private static object CulledInstancesString(in InstanceOcclusionEventStats stats
return (stats.eventType == InstanceOcclusionEventType.OcclusionTest) ? stats.culledInstances : "-";
}

private static object VisiblePrimitivesString(in InstanceOcclusionEventStats stats)
{
return (stats.eventType == InstanceOcclusionEventType.OcclusionTest) ? stats.visiblePrimitives : "-";
}

private static object CulledPrimitivesString(in InstanceOcclusionEventStats stats)
{
return (stats.eventType == InstanceOcclusionEventType.OcclusionTest) ? stats.culledPrimitives : "-";
}

private static DebugUI.Table.Row AddInstanceOcclusionPassDataRow(int eventIndex)
{
return new DebugUI.Table.Row
Expand All @@ -191,13 +229,27 @@ private static DebugUI.Table.Row AddInstanceOcclusionPassDataRow(int eventIndex)
isHiddenCallback = () => { return eventIndex >= GetInstanceOcclusionEventCount(); },
children =
{
new DebugUI.Value { displayName = "View Instance ID", refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () => GetInstanceOcclusionEventStats(eventIndex).viewInstanceID },
new DebugUI.Value { displayName = "View Instance ID", refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () =>
{
var eventStats = GetInstanceOcclusionEventStats(eventIndex);
#if UNITY_EDITOR
Object view = EditorUtility.InstanceIDToObject(eventStats.viewInstanceID);
if (view)
{
return $"{eventStats.viewInstanceID} ({view.name})";
}
#endif
return eventStats.viewInstanceID;
}
},
new DebugUI.Value { displayName = "Event Type", refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () => $"{GetInstanceOcclusionEventStats(eventIndex).eventType}" },
new DebugUI.Value { displayName = "Occluder Version", refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () => OccluderVersionString(GetInstanceOcclusionEventStats(eventIndex)) },
new DebugUI.Value { displayName = "Subview Mask", refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () => $"0x{GetInstanceOcclusionEventStats(eventIndex).subviewMask:X}" },
new DebugUI.Value { displayName = "Occlusion Test", refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () => $"{OcclusionTestString(GetInstanceOcclusionEventStats(eventIndex))}" },
new DebugUI.Value { displayName = "Visible Instances", refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () => VisibleInstancesString(GetInstanceOcclusionEventStats(eventIndex)) },
new DebugUI.Value { displayName = "Culled Instances", refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () => CulledInstancesString(GetInstanceOcclusionEventStats(eventIndex)) },
new DebugUI.Value { displayName = "Visible Primitives", refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () => VisiblePrimitivesString(GetInstanceOcclusionEventStats(eventIndex)) },
new DebugUI.Value { displayName = "Culled Primitives", refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () => CulledPrimitivesString(GetInstanceOcclusionEventStats(eventIndex)) },
}
};
}
Expand Down Expand Up @@ -298,6 +350,104 @@ private void AddInstanceCullingStatsWidget(DebugDisplayGPUResidentDrawer data)
}
});

instanceCullerStats.children.Add(new DebugUI.ValueTuple()
{
displayName = "Total Visible Instances (Cameras | Lights | Both)",
values = new[]
{
new DebugUI.Value { refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () =>
{
int totalGRDInstances = 0;

for (int viewIndex = 0; viewIndex < GetInstanceCullerViewCount(); viewIndex++)
{
var viewStats = GetInstanceCullerViewStats(viewIndex);
if (viewStats.viewType == BatchCullingViewType.Camera)
totalGRDInstances += viewStats.visibleInstancesOnGPU;
}
return totalGRDInstances;
}
},
new DebugUI.Value { refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () =>
{
int totalGRDInstances = 0;

for (int viewIndex = 0; viewIndex < GetInstanceCullerViewCount(); viewIndex++)
{
var viewStats = GetInstanceCullerViewStats(viewIndex);
if (viewStats.viewType == BatchCullingViewType.Light)
totalGRDInstances += viewStats.visibleInstancesOnGPU;
}
return totalGRDInstances;
}
},
new DebugUI.Value { refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () =>
{
int totalGRDInstances = 0;

for (int viewIndex = 0; viewIndex < GetInstanceCullerViewCount(); viewIndex++)
{
var viewStats = GetInstanceCullerViewStats(viewIndex);
if (viewStats.viewType != BatchCullingViewType.Filtering
&& viewStats.viewType != BatchCullingViewType.Picking
&& viewStats.viewType != BatchCullingViewType.SelectionOutline)
totalGRDInstances += viewStats.visibleInstancesOnGPU;
}
return totalGRDInstances;
}
},
}
});

instanceCullerStats.children.Add(new DebugUI.ValueTuple()
{
displayName = "Total Visible Primitives (Cameras | Lights | Both)",
values = new[]
{
new DebugUI.Value { refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () =>
{
int totalGRDPrimitives = 0;

for (int viewIndex = 0; viewIndex < GetInstanceCullerViewCount(); viewIndex++)
{
var viewStats = GetInstanceCullerViewStats(viewIndex);
if (viewStats.viewType == BatchCullingViewType.Camera)
totalGRDPrimitives += viewStats.visiblePrimitivesOnGPU;
}
return totalGRDPrimitives;
}
},
new DebugUI.Value { refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () =>
{
int totalGRDPrimitives = 0;

for (int viewIndex = 0; viewIndex < GetInstanceCullerViewCount(); viewIndex++)
{
var viewStats = GetInstanceCullerViewStats(viewIndex);
if (viewStats.viewType == BatchCullingViewType.Light)
totalGRDPrimitives += viewStats.visiblePrimitivesOnGPU;
}
return totalGRDPrimitives;
}
},
new DebugUI.Value { refreshRate = k_RefreshRate, formatString = k_FormatString, getter = () =>
{
int totalGRDPrimitives = 0;

for (int viewIndex = 0; viewIndex < GetInstanceCullerViewCount(); viewIndex++)
{
var viewStats = GetInstanceCullerViewStats(viewIndex);
if (viewStats.viewType != BatchCullingViewType.Filtering
&& viewStats.viewType != BatchCullingViewType.Picking
&& viewStats.viewType != BatchCullingViewType.SelectionOutline)
totalGRDPrimitives += viewStats.visiblePrimitivesOnGPU;
}
return totalGRDPrimitives;
}
},
}
});

DebugUI.Table viewTable = new DebugUI.Table
{
displayName = "",
Expand Down
Loading