Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
15dc7f1
Remove usage of deprecated instanceID APIs in com.unity.render-pipeli…
EmilieThaulow Jan 7, 2026
116bd72
Removed unstable test that is now obsolete because the 2GB graphics b…
YvainRaeymaekers Jan 7, 2026
9e3012e
[2d] Add support for RSUV to 2D Renderers.
venkify Jan 7, 2026
1cbe686
UUM-126895/Fix Offscreen Rendering for Camera Capture Bridge (Capture…
belavina Jan 7, 2026
d5ef8d6
Migrate Mono APIs to CoreCLR-compatible APIs in com.unity.shadergraph
MiroBrodlovaUnityGit Jan 7, 2026
3772eb1
docg-8237: Remove extra entry from ToC
ocarrere Jan 7, 2026
c17a3ee
Remove ReSTIR and RIS estimation methods from Surface Cache
urasmus Jan 7, 2026
41f88b2
Fix issue with depth priming where intermediate textures are not requ…
UnityAljosha Jan 7, 2026
110819e
Add info message for light loop unroll shader improvement for Meta Pl…
giulia-u3d Jan 8, 2026
46835c5
docg-7366: Fix links
ocarrere Jan 8, 2026
d0d8edf
[UUM-131484] Fixed missing icon when creating a Unified Ray Tracing S…
YvainRaeymaekers Jan 8, 2026
24f4b02
DOCG-8269 Remove typo in HDRP Fog Volume docs
markg-unity Jan 8, 2026
004027d
Fix for "Trying to load color backbuffer into a complex RenderPass se…
YohannVaastUnity Jan 9, 2026
60bdf06
UUM-129941 : Fix incorrect APV baking when using sample count Probe A…
olivierprat Jan 9, 2026
6e1b576
Fix Frame Debugger disconnecting when Render Graph Viewer window is c…
arttu-peltonen Jan 9, 2026
f1804e2
Remove Finalizers from RenderGraph
kirill-titov-u Jan 9, 2026
a5f219e
[URP] Fix renderingLayerTexture computation event decision
RSlysz Jan 10, 2026
3e65951
[UUM-131564] Fix `NullReferenceException` when using custom preview m…
april-roszkowski Jan 12, 2026
79ebeff
Graph Settings tab ref page update in Shader Graph docs
sebastienduverne Jan 12, 2026
3d94c12
Refactor the Shader Graph doc section about Custom Lighting sample
sebastienduverne Jan 12, 2026
d1d4f66
[UUM-129871] Fix performance regression and insufficient light render…
mseonkim-unity Jan 12, 2026
ff73256
[MultipleSRP_Tests] Disable consistently failing AssetPreviewTests.Cr…
RSlysz Jan 13, 2026
8b5bd0d
'Shader warning in 'Hidden/HDRP/DebugFullScreen': HLSLcc: Large chunk…
SuminCho1 Jan 13, 2026
0f31409
[UUM-131589] Prevent subgraph node starting drag on double-click
april-roszkowski Jan 13, 2026
e02f0b8
[UUM-131603][UUM-131646] Fix some small ShaderGraph UI issues
april-roszkowski Jan 14, 2026
fc1ee16
[content automatically redacted] touching PlatformDependent folder
TElsherif Jan 14, 2026
780692f
Show warning when VisualElement material is not compatible.
ncerone-unity Jan 15, 2026
67773af
[UUM-131625] Fix subgraphs with only non-numeric outputs generating e…
april-roszkowski Jan 15, 2026
12fd52a
Remove automatic backbuffer image resizing and standardize test resol…
guillaumelevass Jan 16, 2026
206a6b3
[URP] fixed adaptive performance cascade count tweaking
alexey-unity Jan 16, 2026
de3cf96
[SRP] Update blank hub template
remi-chapelain Jan 18, 2026
f43acc7
[UUM-131900] Fix urtshader compilation errors appearing when switchin…
YvainRaeymaekers Jan 19, 2026
f0004a6
[Render Pipeline Converter] BiRP to URP 2D : Adding readonly material…
alex-vazquez-unity3d Jan 19, 2026
e712a77
Create a dummy color for binding when MSAA samples mismatch in depth …
raquelpeces Jan 21, 2026
8e6dcb5
Rename "Effects" to "Visual Effects" in menus
alexandrarussell Jan 21, 2026
499cc62
Fix for shaders to be compliant with HLSL 2021
Adrian1066 Jan 21, 2026
9d8fe6c
Disable unstable tests
AngelaDematte Jan 21, 2026
14bf887
[HDRP] Fixed GPU crash on Switch 2 when using FPTL
jrs-unity Jan 22, 2026
5754d42
docg-8262: Fix typo
ocarrere Jan 22, 2026
62bc2e5
Reenabled apv baking test - APV_WhenBakingTwice_MustBakeBoth
Nzollner Jan 22, 2026
bcc40b7
[HDRP] Added Missing `_BentNormalMapOS` Texture Declaration
jrs-unity Jan 22, 2026
cdb87a8
Partially revert a PR #81816 and register debug data when in build pr…
kirill-titov-u Jan 22, 2026
df3511e
Fix SampleDependencyImporter errors when opening/closing the window r…
arttu-peltonen Jan 22, 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 @@ -117,6 +117,7 @@ internal bool ReassignGameObjectMaterials(GameObject go, StringBuilder errors)
catch (Exception ex)
{
errors.Append($"{ex.Message} while trying to reassign materials from {component}.");
ok = false;
}
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal webgpu
#pragma only_renderers d3d11 xboxone xboxseries vulkan metal webgpu
#define UNIFIED_RT_GROUP_SIZE_X 64
#define UNIFIED_RT_GROUP_SIZE_Y 1

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -306,13 +306,13 @@ public BakingBatch(Vector3Int cellCount, ProbeReferenceVolume refVolume)
maxBrickCount = cellCount * ProbeReferenceVolume.CellSize(refVolume.GetMaxSubdivision());
inverseScale = ProbeBrickPool.kBrickCellCount / refVolume.MinBrickSize();
offset = refVolume.ProbeOffset();

// Initialize NativeHashMaps with reasonable initial capacity
// Using a larger capacity to reduce allocations during baking
positionToIndex = new NativeHashMap<int, int>(100000, Allocator.Persistent);
uniqueBrickSubdiv = new NativeHashMap<int, int>(100000, Allocator.Persistent);
}

public void Dispose()
{
if (positionToIndex.IsCreated)
Expand Down Expand Up @@ -1348,7 +1348,7 @@ private static void BakeDelegate(ref float progress, out bool done, InputExtract
{
FixSeams(
s_BakeData.positionRemap,
s_BakeData.originalPositions,
s_BakeData.sortedPositions,
s_BakeData.lightingJob.irradiance,
s_BakeData.lightingJob.validity,
s_BakeData.lightingJob.occlusion,
Expand Down Expand Up @@ -1574,7 +1574,7 @@ internal static void FixSeams(
NativeArray<Vector4> skyOcclusion,
NativeArray<uint> renderingLayerMasks)
{
// Seams are caused are caused by probes on the boundary between two subdivision levels
// Seams are caused by probes on the boundary between two subdivision levels
// The idea is to find first them and do a kind of dilation to smooth the values on the boundary
// the dilation process consists in doing a trilinear sample of the higher subdivision brick and override the lower subdiv with that
// We have to mark the probes on the boundary as valid otherwise leak reduction at runtime will interfere with this method
Expand Down Expand Up @@ -1694,7 +1694,8 @@ Vector3Int GetCellPositionFromVoxel(Vector3Int voxelToLookup, int cellSizeInBric
{
uint renderingLayerMask = renderingLayerMasks[positionRemap[index]];
bool commonRenderingLayer = (renderingLayerMask & probeRenderingLayerMask) != 0;
if (!commonRenderingLayer) continue; // We do not use this probe contribution if it does not share at least a common rendering layer
if (!commonRenderingLayer)
continue; // We do not use this probe contribution if it does not share at least a common rendering layer
}

// Do the lerp in compressed format to match result on GPU
Expand Down Expand Up @@ -1763,7 +1764,7 @@ static void ApplyPostBakeOperations()
var chunkSizeInProbes = ProbeBrickPool.GetChunkSizeInProbeCount();
var hasVirtualOffsets = m_BakingSet.settings.virtualOffsetSettings.useVirtualOffset;
var hasRenderingLayers = m_BakingSet.useRenderingLayers;

if (!ValidateBakingCellsSize(bakingCellsArray, chunkSizeInProbes, hasVirtualOffsets, hasRenderingLayers))
return; // Early exit if validation fails

Expand Down Expand Up @@ -1939,7 +1940,8 @@ bool GetProbes(out NativeList<Vector3> positions)
static void GetValidProbeInstanceIds(EntityId[] entityIds, out List<EntityId> validProbeInstanceIds)
{
validProbeInstanceIds = new List<EntityId>();
foreach (EntityId probeInstanceId in entityIds)
 {
foreach (EntityId probeInstanceId in entityIds)
{
if (AdditionalGIBakeRequestsManager.GetPositionForRequest(probeInstanceId, out Vector3 _))
{
validProbeInstanceIds.Add(probeInstanceId);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#pragma only_renderers d3d11 xboxone xboxseries vulkan metal webgpu
#define UNIFIED_RT_GROUP_SIZE_X 64
#define UNIFIED_RT_GROUP_SIZE_Y 1

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#pragma only_renderers d3d11 playstation xboxone xboxseries vulkan metal webgpu switch switch2
#pragma only_renderers d3d11 xboxone xboxseries vulkan metal webgpu
#define UNIFIED_RT_GROUP_SIZE_X 64
#define UNIFIED_RT_GROUP_SIZE_Y 1

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -418,7 +418,6 @@ internal static void ConvertInstancesAndMeshes(
else
LightmapIntegrationHelpers.ComputeUVBounds(meshes[i].uv2, out uvBoundsSizes[i], out uvBoundsOffsets[i]);
}
Debug.Assert(meshes.Length == bakeInput.meshData.Length);

// Baking specific settings
RenderedGameObjectsFilter filter = RenderedGameObjectsFilter.OnlyStatic;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ void OnMessageFromPlayer(DebugMessageHandler.MessageType messageType, DebugMessa
void RegisterAndUpdateDebugData(string graphName, EntityId executionId, string executionName, DebugData debugData)
{
RegisterGraph(graphName);
RegisterExecution(graphName, executionId, debugData.executionName);
RegisterExecution(graphName, executionId, executionName);
SetDebugData(graphName, executionId, debugData);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,6 @@ public PlayerConnection(IConnectionState connectionState, UnityEngine.Events.Uni
EditorConnection.instance.Initialize();
EditorConnection.instance.RegisterConnection(m_OnPlayerConnected);
EditorConnection.instance.RegisterDisconnection(m_OnPlayerDisconnected);

EditorApplication.quitting += OnEditorQuitting;
}

public void Dispose()
Expand All @@ -35,27 +33,15 @@ public void Dispose()
EditorConnection.instance.UnregisterConnection(m_OnPlayerConnected);
EditorConnection.instance.UnregisterDisconnection(m_OnPlayerDisconnected);

// NOTE: There is a bug where editor crashes if we call DisconnectAll during shutdown flow. In this case
// it's fine to skip the disconnect as the player will get notified of it anyway.
if (!m_EditorQuitting)
EditorConnection.instance.DisconnectAll();

m_ConnectionState.Dispose();
m_ConnectionState = null;

EditorApplication.quitting -= OnEditorQuitting;
}
}

public void OnConnectionDropdownIMGUI()
{
PlayerConnectionGUILayout.ConnectionTargetSelectionDropdown(m_ConnectionState, EditorStyles.toolbarDropDown, 250);
}

void OnEditorQuitting()
{
m_EditorQuitting = true;
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ VisualElement panelRoot
{
get
{
_panelRoot ??= injectingElement.panel.visualTree;
_panelRoot ??= injectingElement?.panel?.visualTree;
return _panelRoot;
}
}
Expand Down Expand Up @@ -82,11 +82,11 @@ VisualElement IPackageManagerExtension.CreateExtensionUI()

void RefreshSampleButtons()
{
if (injectingElement == null || m_PackageInfo == null || m_SampleList == null)
if (injectingElement == null || m_PackageInfo == null || m_SampleList == null || panelRoot == null)
return;

// Call refresh of samples and button injection when switching to the "Samples" tab.
if (samplesButton == null )
if (samplesButton == null)
{
samplesButton = panelRoot.Q<Button>(name: samplesButtonName);
if (samplesButton != null)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,13 @@ namespace UnityEditor.Rendering.UnifiedRayTracing
{
internal class ShaderTemplates
{
internal static readonly Texture2D shaderIcon = EditorGUIUtility.IconContent("d_TextAsset Icon").image as Texture2D;

[MenuItem("Assets/Create/Shader/Unified Ray Tracing Shader", false, 1)]
internal static void CreateNewUnifiedRayTracingShader()
{
var action = ScriptableObject.CreateInstance<DoCreateUnifiedRayTracingShader>();
ProjectWindowUtil.StartNameEditingIfProjectWindowExists(EntityId.None, action, "NewUnifiedRayTracingShader.urtshader", null, null);
ProjectWindowUtil.StartNameEditingIfProjectWindowExists(EntityId.None, action, "NewUnifiedRayTracingShader.urtshader", shaderIcon, null);
}

internal class DoCreateUnifiedRayTracingShader : AssetCreationEndAction
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,6 @@ private void Reset()
/// <param name="settings"><see cref="IDebugDisplaySettings"/> to be registered</param>
public void RegisterDebug(IDebugDisplaySettings settings)
{
#if UNITY_EDITOR
if (UnityEditor.BuildPipeline.isBuildingPlayer)
return;
#endif
DebugManager debugManager = DebugManager.instance;
List<IDebugDisplaySettingsPanelDisposable> panels = new List<IDebugDisplaySettingsPanelDisposable>();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -240,7 +240,7 @@ unsafe uint CalculateLODVisibility(int instanceIndex, bool smallMeshCulling)
{
GPUInstanceIndex lodGroupIndex = renderWorld.lodGroupIndices[instanceIndex];
uint lodMask = renderWorld.lodMasks[instanceIndex];

if (lodGroupIndex.Equals(GPUInstanceIndex.Invalid) && lodMask == 0)
{
if (viewType >= BatchCullingViewType.SelectionOutline || !smallMeshCulling || minScreenRelativeHeight == 0.0f)
Expand Down Expand Up @@ -476,7 +476,7 @@ public void Execute(int instanceIndex)
InstanceHandle instance = renderWorld.indexToHandle[instanceIndex];
InternalMeshRendererSettings rendererSettings = renderWorld.rendererSettings[instanceIndex];
bool affectsLightmaps = LightmapUtils.AffectsLightmaps(renderWorld.lightmapIndices[instanceIndex]);

var visibilityMask = CalculateVisibilityMask(instanceIndex, rendererSettings.ShadowCastingMode, affectsLightmaps);
if (visibilityMask == k_VisibilityMaskNotVisible)
{
Expand Down Expand Up @@ -1979,9 +1979,7 @@ private JobHandle AnimateCrossFades(in RenderWorld renderWorld,
}

// For main camera, animate crossfades, and store the result in the hashmap to be retrieved by other cameras
EntityId viewID = EntityId.From(context.viewID.GetInstanceID());

if (!renderWorld.TryGetPerCameraInstanceData(viewID, out perCameraInstanceData))
if (!renderWorld.TryGetPerCameraInstanceData(context.viewID.GetEntityId(), out perCameraInstanceData))
{
// For picking / filtering and outlining passes. We do not have animated crossfade data.
hasAnimatedCrossfade = false;
Expand All @@ -1999,7 +1997,7 @@ private JobHandle AnimateCrossFades(in RenderWorld renderWorld,

m_LODParamsToCameraID.TryAdd(lodHash, new AnimatedFadeData
{
cameraID = viewID,
cameraID = context.viewID.GetEntityId(),
jobHandle = animatedCrossFadesJob
});

Expand Down Expand Up @@ -2038,9 +2036,8 @@ private unsafe JobHandle ScheduleFrustumCullingJob(
&screenRelativeMetric,
&meshLodConstant);
}

if (occlusionCullingCommon != null)
occlusionCullingCommon.UpdateSilhouettePlanes(EntityId.From(context.viewID.GetInstanceID()), receiverPlanes.SilhouettePlaneSubArray());
occlusionCullingCommon.UpdateSilhouettePlanes(context.viewID.GetEntityId(), receiverPlanes.SilhouettePlaneSubArray());

JobHandle animatedCrossFadesJob = AnimateCrossFades(renderWorld, context,
out RenderWorld.PerCameraInstanceData perCameraInstanceData,
Expand All @@ -2049,7 +2046,7 @@ private unsafe JobHandle ScheduleFrustumCullingJob(
var emptyPerCameraInstanceData = new RenderWorld.PerCameraInstanceData(0, Allocator.TempJob);
if (!perCameraInstanceData.IsCreated)
perCameraInstanceData = emptyPerCameraInstanceData; // Set struct with empty NativeArray otherwise safety checks will complain

var cullingJob = new CullingJob
{
renderWorld = renderWorld,
Expand Down Expand Up @@ -2218,11 +2215,10 @@ public unsafe JobHandle CreateCullJobTree(
{
cullingJobHandle = ScheduleCompactedVisibilityMaskJob(renderWorld, rendererVisibilityMasks, cullingJobHandle);

EntityId viewID = EntityId.From(context.viewID.GetInstanceID());
int debugCounterBaseIndex = -1;
if (m_DebugStats?.enabled ?? false)
{
debugCounterBaseIndex = m_SplitDebugArray.TryAddSplits(context.viewType, viewID, context.cullingSplits.Length);
debugCounterBaseIndex = m_SplitDebugArray.TryAddSplits(context.viewType, context.viewID.GetEntityId(), context.cullingSplits.Length);
}

var batchCount = drawInstanceData.drawBatches.Length;
Expand All @@ -2237,12 +2233,12 @@ public unsafe JobHandle CreateCullJobTree(
var binVisibleInstanceCounts = new NativeArray<int>(maxBinCount, Allocator.TempJob, NativeArrayOptions.UninitializedMemory);
var binVisibleInstanceOffsets = new NativeArray<int>(maxBinCount, Allocator.TempJob, NativeArrayOptions.UninitializedMemory);

bool useOcclusionCulling = (occlusionCullingCommon != null) && occlusionCullingCommon.HasOccluderContext(viewID);
bool useOcclusionCulling = (occlusionCullingCommon != null) && occlusionCullingCommon.HasOccluderContext(context.viewID.GetEntityId());
int indirectContextIndex = -1;
if (useOcclusionCulling)
{
indirectContextIndex = m_IndirectStorage.TryAllocateContext(viewID);
cullingOutput.customCullingResult[0] = (IntPtr)viewID.GetRawData();
indirectContextIndex = m_IndirectStorage.TryAllocateContext(context.viewID.GetEntityId());
cullingOutput.customCullingResult[0] = (IntPtr)context.viewID.GetEntityId().GetRawData();
}
IndirectBufferLimits indirectBufferLimits = m_IndirectStorage.GetLimits(indirectContextIndex);
NativeArray<IndirectBufferAllocInfo> indirectBufferAllocInfo = m_IndirectStorage.GetAllocInfoSubArray(indirectContextIndex);
Expand Down Expand Up @@ -2409,7 +2405,7 @@ private JobHandle ScheduleFilteringCullingOutputJob_EditorOnly(in BatchCullingCo
var drawOutputJob = new DrawCommandOutputFiltering
{
renderWorld = renderWorld,
viewID = EntityId.From(context.viewID.GetInstanceID()),
viewID = context.viewID.GetEntityId(),
batchIDs = batchIDs,
instanceDataBuffer = instanceDataBuffer,
rendererVisibilityMasks = rendererVisibilityMasks,
Expand Down Expand Up @@ -2451,7 +2447,7 @@ private JobHandle SchedulePickingCullingOutputJob_EditorOnly(in BatchCullingCont
var drawOutputJob = new DrawCommandOutputFiltering
{
renderWorld = renderWorld,
viewID = EntityId.From(context.viewID.GetInstanceID()),
viewID = context.viewID.GetEntityId(),
batchIDs = batchIDs,
instanceDataBuffer = instanceDataBuffer,
rendererVisibilityMasks = rendererVisibilityMasks,
Expand Down
Loading