Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
95 commits
Select commit Hold shift + click to select a range
02b7022
Graphics/HDRP - [UUM-130925] - Fix null limit.xy values in _ColorPyra…
axoloto Feb 26, 2026
34696af
Correctly support UITKPreview without affecting other preview.
ncerone-unity Feb 26, 2026
0ad24f1
[UUM-133826] Initialize uv1 for Canvas shaders when not using masking
mjoos-unity Feb 26, 2026
7307029
Fix coverage (arcAA) issue with SVG Gradient.
ncerone-unity Feb 26, 2026
dbb6ef6
Particle surface material upgrader tests
ernestasKupciunas Feb 27, 2026
932bf99
[GFXLIGHT-1891] Surface Cache: Fixed ray origin offset leading to dar…
yvain-raeymaekers Feb 27, 2026
630dd72
[2d] Fix case where URP-2D shaders are used with Vfx Shadergraph.
venkify Feb 27, 2026
679f9fd
GFXLIGHT-1993: Select Unity Compute Baker with a Project Setting
pigselated Feb 27, 2026
0ff355f
Fix Shader truncation warning in CopyDepthPass
Feb 27, 2026
2c99426
Fix On Tile PostProcessing not rendering properly with Gamma Colorspace
thomas-zeng Feb 27, 2026
c777237
The Extensible On-Tile Renderer and Post Processing for all platforms
UnityAljosha Feb 27, 2026
80dcfdf
Disabling Render Pipeline Converter menu item when no Render Pipeline…
rolandk-unity Feb 27, 2026
e8632a4
[GFXLIGHT-2048] Surface Cache GI: fix artifacts with transparent objects
yvain-raeymaekers Feb 27, 2026
db88be4
removing awakefromload sorting
Drealmer Feb 27, 2026
dd5599f
Lighting Search Column Improvements and Test Improvements
laylaarab Feb 28, 2026
9e5b352
Initialise VolumeManager BaseComponentTypes from DefaultProfile to av…
CianNoonanUnity Feb 28, 2026
9821959
[GFXLIGHT-1894] Handle camera's renderScale in Surface Cache GI
yvain-raeymaekers Feb 28, 2026
3fad5a7
GFXLIGHT-2134: Fix missing initialization of probe expansion buffer
pema99 Feb 28, 2026
6df248f
Add overload of GetLinearLightColor to incorporate an intensityMultip…
laylaarab Feb 28, 2026
e11e9ca
Restore view and projection matrices when Surface Cache modifies them
urasmus Feb 28, 2026
e0efe80
Graphics/srp/fix performence regression texturexr
RSlysz Feb 28, 2026
74016ca
[2d] Add sprite blendshape test cases into 2D graphics project
karasusan Mar 2, 2026
de928d8
Improve UI/UX of On-Tile Renderer
UnityAljosha Mar 2, 2026
a604001
Fix seems in terrain with instancing
hkr Mar 2, 2026
d814d00
Graphics/URP/UUM-134993 - Fix URP Sample - Blit Depth Copy Pass wrong…
axoloto Mar 2, 2026
994613b
Revert "Disable several Material unstable tests"
AngelaDematte Mar 2, 2026
68cce8d
Remove _SurfaceType
Paulm-Unity Mar 3, 2026
b008ab2
[ShaderGraph] Strong Hints - improved feedback and conflict detection
Mar 3, 2026
ee036c4
Change UIDocument to PanelRenderer for Rendering Debugger
raquelpeces Mar 3, 2026
0e2bce0
fix missing HDAdditionalSettings issue and cleanup in URP
RSlysz Mar 3, 2026
42ce3f1
Update timeline package to 1.8.10 for SRP, Timeline and couple EditMo…
catalina-unity Mar 3, 2026
ff4aa57
Add "Directional Only" and "Half Resolution" Options for Contact Shad…
Mar 4, 2026
153d985
Regression Rendering Debugger UITK
raquelpeces Mar 4, 2026
6a66b11
Add internal settings for light sampling in unified baker.
pema99 Mar 4, 2026
87170df
Use UnityEngine.Pools in ShaderGraph
CianNoonanUnity Mar 4, 2026
da88a72
[UUM-135640][6000.6][URP 2D] Fix shadow caster 2d culling
kennytann Mar 4, 2026
7c358a0
Screen Space Reflections in URP
pema99 Mar 4, 2026
f89c63c
Add tracking to TerrainData in Surface Cache
laylaarab Mar 4, 2026
e756659
Add warning message for Probe Volumes in Rendering Debugger
SuminCho1 Mar 5, 2026
2511b18
Fix stripping for URP Debug Shaders
arttu-peltonen Mar 5, 2026
af68df0
[VFX] Fix Sort.compute crash caused by OOB buffer access
ludovic-theobald Mar 5, 2026
d428bb3
Correct cases where we could fail to update HDRP VolumeProfile compon…
CianNoonanUnity Mar 5, 2026
db4fe97
CHANGE: bump com.unity.performance.profile-analyzer to 1.3.2
stefanunity Mar 5, 2026
baff45e
[Render Pipeline Converter]Multiple fixes
alex-vazquez-unity3d Mar 5, 2026
9023edf
[GFXLIGHT-2100] Graceful handling of Static Batching=On
yvain-raeymaekers Mar 5, 2026
195af29
[Port] [Forward] Show performance warnings on Switch2 for advanced wa…
svc-reach-platform-support Mar 5, 2026
124cfb8
URP FullScreenPassRendererFeature: fix assert and yflip issues
UnityAljosha Mar 6, 2026
3d3adaa
Change meaning of bounce count in unified baker in order to support MIS
pema99 Mar 6, 2026
35ef7fe
Fixed generated code for preview nodes for UI Toolkit shaders
alexandret-unity Mar 6, 2026
1d2aa06
[ShaderGraph] Reference and Precision hints and improved strong hint …
Mar 6, 2026
2f0b7ef
WebGPU updates to fix Fantasy Kingdom
brendan-duncan Mar 6, 2026
38e3a6d
Fixed: opening the Volume Profile Menu before Volume Profile Drawer h…
rolandk-unity Mar 6, 2026
dcd20b0
Correctly support UITKPreview without affecting other preview
ncerone-unity Mar 7, 2026
bbb363e
Add support for punctual light range and spot light angle attenuation…
urasmus Mar 7, 2026
48d2c37
Improve VolumeProfile inspector performance
CianNoonanUnity Mar 7, 2026
18ece0d
[SurfaceCacheGI] Fix static batching assert condition changed by mist…
yvain-raeymaekers Mar 7, 2026
d7aac90
Support texture filtermode for albedo and emission in unified baker
KEngelstoft Mar 9, 2026
5ede923
Prevent test resolution inconsistencies
guillaumelevass Mar 9, 2026
e20af43
[UUM-135718] Fixed HDRP wizard button label alignment
CalChiu Mar 9, 2026
ca2f533
DOCG-8437 Add BIRP deprecation notices to the relevant core package p…
fatimah-mf-unity Mar 10, 2026
2a3418e
Improve UI/UX of Renderer Features with the Tile-Only Mode and bugfixes
UnityAljosha Mar 10, 2026
c25716b
UUM-134685 Add documentation buttons to rendering debugger panel headers
belavina Mar 10, 2026
64c134a
Fix gamma issue of Sample Element Texture node for Editor Window when…
ncerone-unity Mar 10, 2026
abae3a2
Reverting Shadow Provider Name Change
unity-cchu Mar 10, 2026
ad921b9
[SRP Tests] Re-enable all screenspace-related tests `270_ScreenSpace_…
belavina Mar 10, 2026
74a6580
Minor refactor of Surface Cache World Adapter
urasmus Mar 10, 2026
ca06299
[COP-566] Remove "Reduce Version Control noise" setting
SteenLund Mar 11, 2026
529716e
[VFX] Custom HLSL did not support comments inside the function parame…
julienamsellem Mar 11, 2026
405aa52
Refactor to not require transmission, emission in PunctualLightSampli…
laylaarab Mar 11, 2026
6183a19
Fix a batch of Shader Graph UI/UX bugs
april-roszkowski Mar 11, 2026
0bf733e
[SG] Fixes for Node Preview Preferences issues
FredMoreau Mar 11, 2026
002f2fd
Automatically use hardware raytracing when available in Surface Cache
laylaarab Mar 11, 2026
7ffc6b0
Fix lens flare occlusion not declaring dependency on depth
ApoorvaJ Mar 11, 2026
58791e0
[content automatically redacted] touching PlatformDependent folder
Daxode Mar 12, 2026
ca8a2cd
[SRP] Update RSUV samples to leverage the new shader reflection API
remi-chapelain Mar 12, 2026
9c4d885
[content automatically redacted] touching PlatformDependent folder
Adrian1066 Mar 12, 2026
f177a63
[SG] Node Reference Sample Update
FredMoreau Mar 12, 2026
4c2ee17
Provide a way for Surface Cache to be considered when stripping the m…
laylaarab Mar 12, 2026
4bf33ef
Fix SSAO Clear() wiping camera normals texture
ApoorvaJ Mar 12, 2026
b48f52d
[URP/SG] Fix for UUM-136747
FredMoreau Mar 12, 2026
feb8f7a
Spacewarp support for transparent and UI objects
lpledouxUnity Mar 12, 2026
e5a19d6
Fix Surface Cache emission to work with materials set to Realtime GI
laylaarab Mar 12, 2026
8da15ff
[URP] Fix Sample Scene Depth precision issue
viktorijaaryte-create Mar 12, 2026
2cbfe72
Disable indirect draws for non-tessellated quad topology in GRD.
svens-unity Mar 12, 2026
70ca8b2
Move ProfilingSampler to ProfilerMarker API
alexey-zakharov Mar 12, 2026
74cbb80
[Rendering Debugger] GPU Resident Drawer : Avoid recreating the tool …
alex-vazquez-unity3d Mar 12, 2026
b9a2759
[Port] [Forward] Clear indirect arguments buffer for local fog volumes.
svc-reach-platform-support Mar 12, 2026
ca3ed61
[content automatically redacted] touching PlatformDependent folder
thomas-zeng Mar 14, 2026
49c1915
Add volume based controls for Surface Cache GI
KEngelstoft Mar 14, 2026
c512660
Added back support for preview adjustments with override sample count.
olivierprat Mar 14, 2026
a36c3ce
[VFX] Fixed star and folder icons had wrong colors
julienamsellem Mar 14, 2026
c22bd6a
[VFX] Increase folder icon size to avoid blurry effect on some config…
julienamsellem Mar 14, 2026
fcde269
[VFX] Prevent the context title from overlapping the space toggle button
julienamsellem Mar 14, 2026
0eed3f6
[VFX] Prevent from changing any template information in the inspector…
julienamsellem Mar 14, 2026
ca2a322
[COPT-3698] Add Object-context overload to ProfilingScope and Command…
alexey-zakharov Mar 16, 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
@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Text;
using UnityEngine;

namespace UnityEditor.Rendering.Converter
{
Expand All @@ -24,16 +25,42 @@ void OnSearchFinish()
onScanFinish?.Invoke(returnList);
}

var processedIds = new HashSet<string>();

SearchServiceUtils.RunQueuedSearch
(
SearchServiceUtils.IndexingOptions.DeepSearch,
contextSearchQueriesAndIds,
(item, description) =>
{
var assetItem = new RenderPipelineConverterAssetItem(item.id)
// Direct conversion - works for both assets and scene objects
var unityObject = item.ToObject();

if (unityObject == null)
return;

// Ensure we're always working with GameObjects
GameObject go = null;

if (unityObject is GameObject gameObject)
go = gameObject;
else if (unityObject is Component component)
go = component.gameObject;
else
return; // Not a GameObject or Component

var gid = GlobalObjectId.GetGlobalObjectIdSlow(go);
if (!processedIds.Add(gid.ToString()))
return;

int type = gid.identifierType; // 1=Asset, 2=SceneObject

var assetItem = new RenderPipelineConverterAssetItem(gid.ToString())
{
info = description
name = $"{unityObject.name} ({(type == 1 ? "Prefab" : "SceneObject")})",
info = type == 1 ? AssetDatabase.GetAssetPath(unityObject) : go.scene.path,
};

assets.Add(assetItem);
},
OnSearchFinish
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,13 @@ public string guid

public string GlobalObjectId => m_GlobalObjectId;

public string name => System.IO.Path.GetFileNameWithoutExtension(assetPath);
[SerializeField]
private string m_Name;
public string name
{
get => string.IsNullOrEmpty(m_Name) ? System.IO.Path.GetFileNameWithoutExtension(assetPath) : m_Name;
set => m_Name = value;
}

[SerializeField]
private string m_Info;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,9 @@ public void OnClicked()
[Serializable]
internal abstract class RenderPipelineConverterMaterialUpgrader : IRenderPipelineConverter
{
public virtual bool isEnabled => m_UpgradersCache != null && m_UpgradersCache.Count > 0;
public virtual string isDisabledMessage => "No material upgraders specified for this converter.";

/// <summary>
/// List of material upgraders to use for this converter.
/// </summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,18 @@ internal class RenderPipelineConverterVisualElement : VisualElement

public Action converterSelected;

private bool m_IsEnabled;

private void SetEnabled(bool value, bool force = false)
{
if (m_IsEnabled != value || force)
{
m_IsEnabled = value;
m_HeaderFoldout.tooltip = (m_IsEnabled) ? description : converter.isDisabledMessage;
m_HeaderFoldout.SetEnabled(m_IsEnabled);
}
}

public RenderPipelineConverterVisualElement(Node<ConverterInfo> converterInfo)
{
m_ConverterInfo = converterInfo;
Expand All @@ -47,8 +59,10 @@ public RenderPipelineConverterVisualElement(Node<ConverterInfo> converterInfo)

m_HeaderFoldout = m_RootVisualElement.Q<HeaderFoldout>("conveterFoldout");
m_HeaderFoldout.text = displayName;
m_HeaderFoldout.tooltip = (converter.isEnabled) ? description : converter.isDisabledMessage;
m_HeaderFoldout.SetEnabled(converter.isEnabled);

SetEnabled(converter.isEnabled, true);
m_HeaderFoldout.schedule.Execute(() => SetEnabled(converter.isEnabled)).Every(500);

m_HeaderFoldout.value = state.isExpanded;
m_HeaderFoldout.RegisterCallback<ChangeEvent<bool>>((evt) =>
{
Expand Down
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 Expand Up @@ -212,7 +221,8 @@ public void CreateGUI()
if (converterNodeCategory.name == to.label)
currentContainer = converterNodeCategory;
}
HideUnhideConverters();

ConfigureUI();
};

m_SourcePipelineDropDown.RegisterCallback<ChangeEvent<string>>((evt) =>
Expand All @@ -225,40 +235,51 @@ public void CreateGUI()
HideUnhideConverters();
});

ConfigureUI();

UpdateUiForPlayMode(EditorApplication.isPlaying);
}

private void ConfigureUI()
{
HideUnhideConverters();
EnableOrDisableScanButton();
EnableOrDisableConvertButton();

UpdateUiForPlayMode(EditorApplication.isPlaying);
}

private bool CanEnableScan()
{
foreach (var kvp in m_ConvertersVisualElements)
foreach (var child in currentContainer.children)
{
var ve = kvp.Value;
if (ve.isSelectedAndEnabled &&
!ve.state.isInitialized)
if (m_ConvertersVisualElements.TryGetValue(child, out var ve))
{
return true;
if (ve.isSelectedAndEnabled &&
!ve.state.isInitialized)
{
return true;
}
}
}

return false;
}

private bool CanEnableConvert()
{
foreach (var kvp in m_ConvertersVisualElements)
foreach (var child in currentContainer.children)
{
var ve = kvp.Value;
if (ve.isSelectedAndEnabled &&
ve.state.isInitialized &&
ve.state.selectedItemsCount > 0 &&
ve.state.pending > 0)
if (m_ConvertersVisualElements.TryGetValue(child, out var ve))
{
return true;
if (ve.isSelectedAndEnabled &&
ve.state.isInitialized &&
ve.state.selectedItemsCount > 0 &&
ve.state.pending > 0)
{
return true;
}
}
}

return false;
}

Expand Down
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 @@ -241,11 +241,13 @@ public void Create(ProbeVolumeBakingSet bakingSet, LightingSettings lightingSett
skyOcclusionBakingSamples = bakingSet != null ? bakingSet.skyOcclusionBakingSamples : 0;
skyOcclusionBakingBounces = bakingSet != null ? bakingSet.skyOcclusionBakingBounces : 0;

#if UNIFIED_BAKER
int indirectSampleCount = lightingSettings.indirectSampleCount;
#else
int indirectSampleCount = Math.Max(lightingSettings.indirectSampleCount, lightingSettings.environmentSampleCount);
#endif
var usingComputeLightBaker = UnityEditor.Rendering.EditorGraphicsSettings.defaultLightBaker == UnityEditor.Rendering.LightBaker.UnityComputeLightBaker;
int indirectSampleCount = 0;
if (usingComputeLightBaker)
indirectSampleCount = lightingSettings.indirectSampleCount;
else
indirectSampleCount = Math.Max(lightingSettings.indirectSampleCount, lightingSettings.environmentSampleCount);

Create(lightingSettings, ignoreEnvironement, lightingSettings.directSampleCount, indirectSampleCount, lightingSettings.environmentSampleCount,
(int)lightingSettings.lightProbeSampleCountMultiplier, lightingSettings.maxBounces);
}
Expand Down Expand Up @@ -670,7 +672,7 @@ internal static void BakeAdjustmentVolume(ProbeVolumeBakingSet bakingSet, ProbeA
failed |= !layerMaskJob.Step();

// Bake probe SH
s_BakeData.InitLightingJob(m_BakingSet, uniquePositions, BakeType.ApvOnly);
s_BakeData.InitLightingJob(bakingSet, touchup, uniquePositions, BakeType.ApvOnly);
LightingBaker lightingJob = s_BakeData.lightingJob;
while (!failed && lightingJob.currentStep < lightingJob.stepCount)
failed |= !lightingJob.Step();
Expand All @@ -680,7 +682,7 @@ internal static void BakeAdjustmentVolume(ProbeVolumeBakingSet bakingSet, ProbeA
foreach ((int uniqueProbeIndex, int cellIndex, int i) in bakedProbes)
{
ref var cell = ref bakingCells[cellIndex];
cell.SetBakedData(m_BakingSet, m_BakingBatch, cellVolumes[cellIndex], i, uniqueProbeIndex,
cell.SetBakedData(bakingSet, m_BakingBatch, cellVolumes[cellIndex], i, uniqueProbeIndex,
lightingJob.irradiance[uniqueProbeIndex], lightingJob.validity[uniqueProbeIndex],
layerMaskJob.renderingLayerMasks, virtualOffsetJob.offsets,
skyOcclusionJob.occlusion, skyOcclusionJob.encodedDirections, lightingJob.occlusion);
Expand All @@ -696,8 +698,8 @@ internal static void BakeAdjustmentVolume(ProbeVolumeBakingSet bakingSet, ProbeA
{
// Validate baking cells size before any global state modifications
var chunkSizeInProbes = ProbeBrickPool.GetChunkSizeInProbeCount();
var hasVirtualOffsets = m_BakingSet.settings.virtualOffsetSettings.useVirtualOffset;
var hasRenderingLayers = m_BakingSet.useRenderingLayers;
var hasVirtualOffsets = bakingSet.settings.virtualOffsetSettings.useVirtualOffset;
var hasRenderingLayers = bakingSet.useRenderingLayers;

if (ValidateBakingCellsSize(bakingCells, chunkSizeInProbes, hasVirtualOffsets, hasRenderingLayers))
{
Expand All @@ -707,8 +709,8 @@ internal static void BakeAdjustmentVolume(ProbeVolumeBakingSet bakingSet, ProbeA
ComputeValidityMasks(cell);
}

// Attempt to write the result to disk
if (WriteBakingCells(bakingCells))
// Attempt to write the result to disk.
if (WriteBakingCells(bakingSet, bakingCells))
{
// Reload everything
AssetDatabase.SaveAssets();
Expand Down
Loading
Loading