Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
985c56b
[Port] [6000.4] [VFX] Fix Collision with SDF jitter in rest state
svc-reach-platform-support Nov 18, 2025
e6d4d43
[Port] [6000.4] UUM-114203: Fixed Performance Regressions
svc-reach-platform-support Nov 18, 2025
8d8a426
[Port] [6000.4] Remove save scene on material converter. It is handle…
svc-reach-platform-support Nov 18, 2025
73aed59
[Port] [6000.4] [VFX] Fix "Open VFX Graph Samples project on Github" …
svc-reach-platform-support Nov 18, 2025
91c9bae
[Port] [6000.4] [HDRP][DLSS] fix debug view nullref exception on build
svc-reach-platform-support Nov 20, 2025
7da5d4e
[Port] [6000.4] Clean up the Shader Graph docs landing page
svc-reach-platform-support Nov 20, 2025
902c862
[Port] [6000.4] [UUM-126809] Save renderPipelineAsset before build
Nov 20, 2025
08ce6f1
[Port] [6000.4] Work around HLSLcc miscompilation on Metal in APV ble…
svc-reach-platform-support Nov 20, 2025
448d4ac
HDRP Wizard - Change API reflection signature. From changes on PR #76788
alex-vazquez-unity3d Nov 22, 2025
cb78720
[6.4][SRP CI] Replace AMD mi25 card with v710
theo-at-unity Nov 22, 2025
d4d5613
[Port] [6000.4] Fix performance regression caused by incorrect Meta p…
svc-reach-platform-support Nov 24, 2025
8d51d6a
[Port] [6000.4] [UUM-104008][URP 2D] Fix LIght2D toggle UI
svc-reach-platform-support Nov 27, 2025
5f601cd
[Port] [6000.4] docg-7325: Specify that Shader Graph doesn't support …
svc-reach-platform-support Nov 27, 2025
ffa2217
[Port] [6000.4] docg-6776: clarify Custom Function uniform usage and …
svc-reach-platform-support Nov 27, 2025
4da5f5a
[Port] [6000.4] 2D: Fix the warning log that says missing the [Serial…
svc-reach-platform-support Nov 27, 2025
ffb4c1e
[Port] [6000.4] Fix for UUM-119990
svc-reach-platform-support Nov 27, 2025
1d0f390
[Port] [6000.4] [HDRP] Fix for missing shader variant error when area…
svc-reach-platform-support Nov 27, 2025
9c0eeeb
[Port] [6000.4] UUM-128460: Fix incorrect warning when going to play …
svc-reach-platform-support Nov 27, 2025
2a4ff67
[Port] [6000.4] Add obsolete attribute to implicit conversion between…
EmilieThaulow Nov 28, 2025
5ae60ec
[Port] [6000.4] docg-7297: Clarify explicit LOD behavior in Sample Te…
svc-reach-platform-support Nov 28, 2025
0872922
[Port] [6000.4] [UUM-125723] Fix for URP broken inspector
svc-reach-platform-support Nov 28, 2025
0512a29
[Port] [6000.4] docg-7795: Reference page for HDRP Six Way Shader Graph
svc-reach-platform-support Nov 28, 2025
3f57155
[Backport] Graphics EntityId Changes
christopherredden Dec 1, 2025
2e298f1
[Port] [6000.4] Fix UUM-115985 Lens Flare (SRP) component missing doc…
svc-reach-platform-support Dec 1, 2025
ce4adf6
[Port] [6000.4] [SRP] Fix RSUV Sample
svc-reach-platform-support Dec 1, 2025
1b28d7a
[Port] [6000.4] [HDRP][FSR2] fix quality camera override not respecti…
svc-reach-platform-support Dec 2, 2025
2066342
[Port] [6000.4] docg-8135: Reorder Node Library ToC to mirror Shader …
svc-reach-platform-support Dec 2, 2025
c92d27e
[Port] [6000.4] Graphics/SRP/RPF - [UUM-115209] Re-enable the second …
svc-reach-platform-support Dec 2, 2025
fb2e68c
[Port] [6000.4] [UUM-97985] Fix HDRP FPTL and Cluster artifacts when …
svc-reach-platform-support Dec 3, 2025
24ec1bc
[Port] [6000.4] [SRP] [UUM-87566] Change SS UI within SRP in HDR outp…
svc-reach-platform-support Dec 3, 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 @@ -92,7 +92,7 @@ static void CreateAsset(string name, Action<string> callback = null, string exte
assetCreationCallback.extension = extension;

var icon = AssetPreview.GetMiniTypeThumbnail(type);
ProjectWindowUtil.StartNameEditingIfProjectWindowExists(0, assetCreationCallback, name, icon, null, false);
ProjectWindowUtil.StartNameEditingIfProjectWindowExists(EntityId.None, assetCreationCallback, name, icon, null, false);
}

class AssetCreationCallback : ProjectWindowCallback.AssetCreationEndAction
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ public class CoreBuildData : IDisposable
/// </summary>
public List<RenderPipelineAsset> renderPipelineAssets { get; private set; } = new();

internal Dictionary<int, ComputeShader> computeShaderCache { get; private set; } = new();
internal Dictionary<EntityId, ComputeShader> computeShaderCache { get; private set; } = new();

internal bool pipelineSupportGPUResidentDrawer { get; private set; } = false;
internal bool playerNeedGPUResidentDrawer { get; private set; } = false;
Expand Down Expand Up @@ -80,8 +80,10 @@ private void CheckGPUResidentDrawerUsage()
if (!playerNeedGPUResidentDrawer)
return;

#pragma warning disable 618 // Todo(@daniel.andersen): Remove deprecated API usage
GraphicsSettings.GetRenderPipelineSettings<GPUResidentDrawerResources>()
.ForEachFieldOfType<ComputeShader>(computeShader => computeShaderCache.Add(computeShader.GetEntityId(), computeShader));
#pragma warning restore 618
}

/// <summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,9 @@ class SRPDisabledComputeShaderVariantStripper : IComputeShaderVariantStripper
{
public bool active => !CoreBuildData.instance.buildingPlayerForRenderPipeline;

#pragma warning disable 618 // Todo(@daniel.andersen): Remove deprecated API usage
public bool CanRemoveVariant([DisallowNull] ComputeShader shader, string _, ShaderCompilerData __)
=> CoreBuildData.instance.computeShaderCache.ContainsKey(shader.GetEntityId());
#pragma warning restore 618
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ public override void Initialize(ProbeVolumeBakingSet bakingSet, NativeArray<Vect
Graphics.ExecuteCommandBuffer(cmd);
cmd.Clear();
}

static AccelStructAdapter BuildAccelerationStructure()
{
var accelStruct = s_TracingContext.CreateAccelerationStructure();
Expand All @@ -127,14 +127,14 @@ static AccelStructAdapter BuildAccelerationStructure()
Span<bool> perSubMeshOpaqueness = stackalloc bool[subMeshCount];
perSubMeshOpaqueness.Fill(true);

accelStruct.AddInstance(renderer.component.GetEntityId(), renderer.component, perSubMeshMask, matIndices, perSubMeshOpaqueness, 1);
accelStruct.AddInstance(renderer.component.GetEntityId().GetRawData(), renderer.component, perSubMeshMask, matIndices, perSubMeshOpaqueness, 1);
}

foreach (var terrain in contributors.terrains)
{
uint mask = GetInstanceMask(terrain.component.shadowCastingMode);
uint materialID = terrain.component.renderingLayerMask; // repurpose the material id as we don't need it here
accelStruct.AddInstance(terrain.component.GetEntityId(), terrain.component, new uint[1] { mask }, new uint[1] { materialID }, new bool[1] { true }, 1);
accelStruct.AddInstance(terrain.component.GetEntityId().GetRawData(), terrain.component, new uint[1] { mask }, new uint[1] { materialID }, new bool[1] { true }, 1);
}

return accelStruct;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -223,13 +223,13 @@ static AccelStructAdapter BuildAccelerationStructure()
Span<bool> perSubMeshOpaqueness = stackalloc bool[subMeshCount];
perSubMeshOpaqueness.Fill(true);

accelStruct.AddInstance((int)renderer.component.GetEntityId().GetRawData(), renderer.component, perSubMeshMask, matIndices, perSubMeshOpaqueness, 1);
accelStruct.AddInstance(renderer.component.GetEntityId().GetRawData(), renderer.component, perSubMeshMask, matIndices, perSubMeshOpaqueness, 1);
}

foreach (var terrain in contributors.terrains)
{
uint mask = GetInstanceMask(terrain.component.shadowCastingMode);
accelStruct.AddInstance(terrain.component.GetEntityId(), terrain.component, new uint[1] { mask }, new uint[1] { 0 }, new bool[1] { true }, 1);
accelStruct.AddInstance(terrain.component.GetEntityId().GetRawData(), terrain.component, new uint[1] { mask }, new uint[1] { 0 }, new bool[1] { true }, 1);
}

return accelStruct;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -149,16 +149,15 @@ static AccelStructAdapter BuildAccelerationStructure(int mask)
Span<bool> perSubMeshOpaqueness = stackalloc bool[subMeshCount];
perSubMeshOpaqueness.Fill(true);

accelStruct.AddInstance(renderer.component.GetEntityId(), renderer.component, maskAndMatDummy, maskAndMatDummy, perSubMeshOpaqueness, 1);
accelStruct.AddInstance(renderer.component.GetEntityId().GetRawData(), renderer.component, maskAndMatDummy, maskAndMatDummy, perSubMeshOpaqueness, 1);
}

foreach (var terrain in contributors.terrains)
{
int layerMask = 1 << terrain.component.gameObject.layer;
if ((layerMask & mask) == 0)
continue;

accelStruct.AddInstance(terrain.component.GetEntityId(), terrain.component, new uint[1] { 0xFFFFFFFF }, new uint[1] { 0xFFFFFFFF }, new bool[1] { true }, 1);
accelStruct.AddInstance(terrain.component.GetEntityId().GetRawData(), terrain.component, new uint[1] { 0xFFFFFFFF }, new uint[1] { 0xFFFFFFFF }, new bool[1] { true }, 1);
}

return accelStruct;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1643,13 +1643,15 @@ public static bool BakeAsync()
/// Request additional bake request manager to recompute baked data for an array of requests
/// </summary>
/// <param name="probeInstanceIDs">Array of instance IDs of the probes doing the request.</param>
public static void BakeAdditionalRequests(int[] probeInstanceIDs)
public static void BakeAdditionalRequests(EntityId[] probeInstanceIDs)
{
List<int> validProbeInstanceIDs = new List<int>();
List<EntityId> validProbeInstanceIDs = new List<EntityId>();
List<Vector3> positions = new List<Vector3>();
foreach (var probeInstanceID in probeInstanceIDs)
{
#pragma warning disable 618 // Todo(@daniel.andersen): Remove deprecated API usage
if (AdditionalGIBakeRequestsManager.GetPositionForRequest(probeInstanceID, out var position))
#pragma warning restore 618
{
validProbeInstanceIDs.Add(probeInstanceID);
positions.Add(position);
Expand All @@ -1667,21 +1669,47 @@ public static void BakeAdditionalRequests(int[] probeInstanceIDs)

for (int probeIndex = 0; probeIndex < numValidProbes; ++probeIndex)
{
#pragma warning disable 618 // Todo(@daniel.andersen): Remove deprecated API usage
AdditionalGIBakeRequestsManager.SetSHCoefficients(validProbeInstanceIDs[probeIndex], sh[probeIndex], validity[probeIndex]);
#pragma warning restore 618
}
}
}

/// <summary>
/// Request additional bake request manager to recompute baked data for a given request
/// </summary>
/// <param name="probeEntityId">The instance ID of the probe doing the request.</param>
public static void BakeAdditionalRequest(EntityId probeEntityId)
{
EntityId[] probeEntityIds = new EntityId[1];
probeEntityIds[0] = probeEntityId;

BakeAdditionalRequests(probeEntityIds);
}

// Obsolete wrapper methods for backward compatibility
/// <summary>
/// Request additional bake request manager to recompute baked data for an array of requests
/// </summary>
/// <param name="probeInstanceIDs">Array of instance IDs of the probes doing the request.</param>
[System.Obsolete("Use BakeAdditionalRequests(EntityId[]) instead. This method will be removed in a future version.")]
public static void BakeAdditionalRequests(int[] probeInstanceIDs)
{
var entityIds = new EntityId[probeInstanceIDs.Length];
for (int i = 0; i < probeInstanceIDs.Length; i++)
entityIds[i] = probeInstanceIDs[i];
BakeAdditionalRequests(entityIds);
}

/// <summary>
/// Request additional bake request manager to recompute baked data for a given request
/// </summary>
/// <param name="probeInstanceID">The instance ID of the probe doing the request.</param>
[System.Obsolete("Use BakeAdditionalRequest(EntityId) instead. This method will be removed in a future version.")]
public static void BakeAdditionalRequest(int probeInstanceID)
{
int[] probeInstanceIDs = new int[1];
probeInstanceIDs[0] = probeInstanceID;

BakeAdditionalRequests(probeInstanceIDs);
BakeAdditionalRequest((EntityId)probeInstanceID);
}

static RenderingLayerBaker renderingLayerOverride = null;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -345,7 +345,7 @@ public class ViewContext
/// </summary>
public bool hasViewedObject =>
!String.IsNullOrEmpty(viewedObjectAssetGUID)
|| viewedObjecHierarchytEntityId != 0;
|| viewedObjecHierarchytEntityId != EntityId.None;

/// <summary>Reference to the object given for instantiation.</summary>
public GameObject viewedObjectReference { get; private set; }
Expand Down Expand Up @@ -428,7 +428,7 @@ void LoadEnvironmentFromGUID()
public void UpdateViewedObject(GameObject viewedObject)
{
viewedObjectAssetGUID = "";
viewedObjecHierarchytEntityId = 0;
viewedObjecHierarchytEntityId = EntityId.None;
viewedObjectReference = null;
if (viewedObject == null || viewedObject.Equals(null))
return;
Expand All @@ -453,7 +453,7 @@ void LoadViewedObject()
string path = AssetDatabase.GUIDToAssetPath(viewedObjectAssetGUID);
viewedObjectReference = AssetDatabase.LoadAssetAtPath<GameObject>(path);
}
else if (viewedObjecHierarchytEntityId != 0)
else if (viewedObjecHierarchytEntityId != EntityId.None)
{
viewedObjectReference = EditorUtility.EntityIdToObject(viewedObjecHierarchytEntityId) as GameObject;
}
Expand All @@ -468,7 +468,7 @@ internal void LoadAll(bool reloadWithTemporaryID)
}

internal void CleanTemporaryObjectIndexes()
=> viewedObjecHierarchytEntityId = 0;
=> viewedObjecHierarchytEntityId = EntityId.None;

/// <summary>Reset the camera state to default values</summary>
public void ResetCameraState()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,7 @@ public override void Action(EntityId entityId, string pathName, string resourceF
static void Create()
{
var icon = EditorGUIUtility.FindTexture("ScriptableObject Icon");
ProjectWindowUtil.StartNameEditingIfProjectWindowExists(0, ScriptableObject.CreateInstance<EnvironmentLibraryCreator>(), "New EnvironmentLibrary.asset", icon, null);
ProjectWindowUtil.StartNameEditingIfProjectWindowExists(EntityId.None, ScriptableObject.CreateInstance<EnvironmentLibraryCreator>(), "New EnvironmentLibrary.asset", icon, null);
}

public static void CreateAndAssignTo(ObjectField field)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public override void Action(EntityId entityId, string pathName, string resourceF
internal static void CreateLensFlareDataSRPAsset()
{
const string relativePath = "New Lens Flare (SRP).asset";
ProjectWindowUtil.StartNameEditingIfProjectWindowExists(0, ScriptableObject.CreateInstance<LensFlareDataSRPCreator>(), relativePath, Icons.generic, null);
ProjectWindowUtil.StartNameEditingIfProjectWindowExists(EntityId.None, ScriptableObject.CreateInstance<LensFlareDataSRPCreator>(), relativePath, Icons.generic, null);
}

internal static LensFlareDataSRP CreateLensFlareDataSRPAsset(Scene scene, string targetName)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ internal static partial class Classes

bool m_Paused = false;

static int s_EditorWindowInstanceId;
static EntityId s_EditorWindowEntityId;
DateTime m_LastDataCaptureTime = DateTime.MinValue;
string m_ConnectedDeviceName = "Local Editor";
bool m_IsDeviceConnected = true;
Expand Down Expand Up @@ -2087,7 +2087,7 @@ void DelayedRefresh()

void CreateGUI()
{
s_EditorWindowInstanceId = GetEntityId();
s_EditorWindowEntityId = GetEntityId();

if (EditorPrefs.HasKey(kPassFilterLegacyEditorPrefsKey))
m_PassFilterLegacy = (PassFilterLegacy)EditorPrefs.GetInt(kPassFilterLegacyEditorPrefsKey);
Expand Down Expand Up @@ -2143,7 +2143,7 @@ void OnDisable()
// maximized, seemingly nothing happens. When it gets unmaximized, both OnEnable() and OnDisable() get called
// on a new EditorWindow instance, which I guess was the maximized one? Anyway we need to ignore this event
// because the DebugSession is static and we don't want to unsubscribe because the window is still open.
if (s_EditorWindowInstanceId != GetEntityId())
if (s_EditorWindowEntityId != GetEntityId())
return;

m_CurrentDebugData?.Clear();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ internal class ShaderTemplates
internal static void CreateNewUnifiedRayTracingShader()
{
var action = ScriptableObject.CreateInstance<DoCreateUnifiedRayTracingShader>();
ProjectWindowUtil.StartNameEditingIfProjectWindowExists(0, action, "NewUnifiedRayTracingShader.urtshader", null, null);
ProjectWindowUtil.StartNameEditingIfProjectWindowExists(EntityId.None, action, "NewUnifiedRayTracingShader.urtshader", null, null);
}

internal class DoCreateUnifiedRayTracingShader : AssetCreationEndAction
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public static class VolumeProfileFactory
static void CreateVolumeProfile()
{
ProjectWindowUtil.StartNameEditingIfProjectWindowExists(
0,
EntityId.None,
ScriptableObject.CreateInstance<CreateVolumeProfileAction>(),
"New Volume Profile.asset",
CoreUtils.GetIconForType<VolumeProfile>(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ private struct ScalerContainer
public DynamicResUpscaleFilter filter { get; private set; }

// Used to detect the filters set via user API
static Dictionary<int, DynamicResUpscaleFilter> s_CameraUpscaleFilters = new Dictionary<int, DynamicResUpscaleFilter>();
static Dictionary<EntityId, DynamicResUpscaleFilter> s_CameraUpscaleFilters = new Dictionary<EntityId, DynamicResUpscaleFilter>();

/// <summary>
/// The viewport of the final buffer. This is likely the resolution the dynamic resolution starts from before any scaling. Note this is NOT the target resolution the rendering will happen in
Expand Down Expand Up @@ -132,7 +132,7 @@ public bool runUpscalerFilterOnFullResolution

private const int CameraDictionaryMaxcCapacity = 32;
private WeakReference m_OwnerCameraWeakRef = null;
private static Dictionary<int, DynamicResolutionHandler> s_CameraInstances = new Dictionary<int, DynamicResolutionHandler>(CameraDictionaryMaxcCapacity);
private static Dictionary<EntityId, DynamicResolutionHandler> s_CameraInstances = new Dictionary<EntityId, DynamicResolutionHandler>(CameraDictionaryMaxcCapacity);
private static DynamicResolutionHandler s_DefaultInstance = new DynamicResolutionHandler();

private static EntityId s_ActiveCameraId = EntityId.None;
Expand Down Expand Up @@ -169,7 +169,7 @@ private static DynamicResolutionHandler GetOrCreateDrsInstanceHandler(Camera cam
//first and foremost, if we exceed the dictionary capacity, lets try and recycle an object that is dead.
if (s_CameraInstances.Count >= CameraDictionaryMaxcCapacity)
{
int recycledInstanceKey = 0;
EntityId recycledInstanceKey = EntityId.None;
DynamicResolutionHandler recycledInstance = null;
foreach (var kv in s_CameraInstances)
{
Expand Down Expand Up @@ -412,7 +412,7 @@ public static void UpdateAndUseCamera(Camera camera, GlobalDynamicResolutionSett
if (camera == null)
{
s_ActiveInstance = s_DefaultInstance;
newCameraId = 0;
newCameraId = EntityId.None;
}
else
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ private bool displayBatcherStats
}

/// <summary>Returns the view instances id for the selected occluder debug view index, or 0 if not valid.</summary>
internal bool GetOccluderViewInstanceID(out int viewInstanceID)
internal bool GetOccluderViewInstanceID(out EntityId viewInstanceID)
{
DebugRendererBatcherStats debugStats = GPUResidentDrawer.GetDebugStats();
if (debugStats != null)
Expand All @@ -49,7 +49,7 @@ internal bool GetOccluderViewInstanceID(out int viewInstanceID)
}
}

viewInstanceID = 0;
viewInstanceID = EntityId.None;
return false;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ private void ProcessTrees()
m_ProcessedThisFrameTreeBits.Resize(maxInstancesCount);

bool becomeVisibleOnly = !Application.isPlaying;
var visibleTreeRendererIDs = new NativeList<int>(Allocator.TempJob);
var visibleTreeRendererIDs = new NativeList<EntityId>(Allocator.TempJob);
var visibleTreeInstances = new NativeList<InstanceHandle>(Allocator.TempJob);

m_BatchersContext.GetVisibleTreeInstances(compactedVisibilityMasks, m_ProcessedThisFrameTreeBits, visibleTreeRendererIDs, visibleTreeInstances,
Expand Down Expand Up @@ -64,7 +64,7 @@ private void ProcessTrees()
Profiler.EndSample();
}

private unsafe void UpdateSpeedTreeWindAndUploadWindParamsToGPU(NativeArray<int> treeRendererIDs, NativeArray<InstanceHandle> treeInstances, bool history)
private unsafe void UpdateSpeedTreeWindAndUploadWindParamsToGPU(NativeArray<EntityId> treeRendererIDs, NativeArray<InstanceHandle> treeInstances, bool history)
{
if (treeRendererIDs.Length == 0)
return;
Expand All @@ -88,7 +88,6 @@ private unsafe void UpdateSpeedTreeWindAndUploadWindParamsToGPU(NativeArray<int>
windParams.uintStride = uploader.GetUIntPerInstance();
windParams.elementOffset = 0;
windParams.elementsCount = treeInstances.Length;

SpeedTreeWindManager.UpdateWindAndWriteBufferWindParams(treeRendererIDs, windParams, history);
m_BatchersContext.SubmitToGpu(gpuInstanceIndices, ref uploader, submitOnlyWrittenParams: true);

Expand Down
Loading