diff --git a/Packages/com.unity.render-pipelines.core/Editor/LookDev/Context.cs b/Packages/com.unity.render-pipelines.core/Editor/LookDev/Context.cs
index 7db4c4e799f..93f41d3fe88 100644
--- a/Packages/com.unity.render-pipelines.core/Editor/LookDev/Context.cs
+++ b/Packages/com.unity.render-pipelines.core/Editor/LookDev/Context.cs
@@ -2,6 +2,7 @@
using UnityEngine;
using System.Collections.Generic;
using System.Collections;
+using UnityEngine.Serialization;
namespace UnityEditor.Rendering.LookDev
{
@@ -334,8 +335,9 @@ public class ViewContext
// Careful here: we want to keep it while reloading script.
// But from one unity editor to an other, ID are not kept.
// So, only use it when reloading from script update.
+ [FormerlySerializedAs("viewedObjecHierarchytInstanceID")]
[SerializeField]
- int viewedObjecHierarchytInstanceID;
+ EntityId viewedObjecHierarchytEntityId;
///
/// Check if an Environment is registered for this view.
@@ -343,7 +345,7 @@ public class ViewContext
///
public bool hasViewedObject =>
!String.IsNullOrEmpty(viewedObjectAssetGUID)
- || viewedObjecHierarchytInstanceID != 0;
+ || viewedObjecHierarchytEntityId != 0;
/// Reference to the object given for instantiation.
public GameObject viewedObjectReference { get; private set; }
@@ -426,14 +428,14 @@ void LoadEnvironmentFromGUID()
public void UpdateViewedObject(GameObject viewedObject)
{
viewedObjectAssetGUID = "";
- viewedObjecHierarchytInstanceID = 0;
+ viewedObjecHierarchytEntityId = 0;
viewedObjectReference = null;
if (viewedObject == null || viewedObject.Equals(null))
return;
bool fromHierarchy = viewedObject.scene.IsValid();
if (fromHierarchy)
- viewedObjecHierarchytInstanceID = viewedObject.GetInstanceID();
+ viewedObjecHierarchytEntityId = viewedObject.GetInstanceID();
else
viewedObjectAssetGUID = AssetDatabase.AssetPathToGUID(AssetDatabase.GetAssetPath(viewedObject));
viewedObjectReference = viewedObject;
@@ -451,9 +453,9 @@ void LoadViewedObject()
string path = AssetDatabase.GUIDToAssetPath(viewedObjectAssetGUID);
viewedObjectReference = AssetDatabase.LoadAssetAtPath(path);
}
- else if (viewedObjecHierarchytInstanceID != 0)
+ else if (viewedObjecHierarchytEntityId != 0)
{
- viewedObjectReference = EditorUtility.InstanceIDToObject(viewedObjecHierarchytInstanceID) as GameObject;
+ viewedObjectReference = EditorUtility.EntityIdToObject(viewedObjecHierarchytEntityId) as GameObject;
}
}
@@ -466,7 +468,7 @@ internal void LoadAll(bool reloadWithTemporaryID)
}
internal void CleanTemporaryObjectIndexes()
- => viewedObjecHierarchytInstanceID = 0;
+ => viewedObjecHierarchytEntityId = 0;
/// Reset the camera state to default values
public void ResetCameraState()
diff --git a/Packages/com.unity.render-pipelines.core/Editor/Settings/DefaultVolumeProfileEditor.cs b/Packages/com.unity.render-pipelines.core/Editor/Settings/DefaultVolumeProfileEditor.cs
index 0ac19fc3367..1d4694b4b79 100644
--- a/Packages/com.unity.render-pipelines.core/Editor/Settings/DefaultVolumeProfileEditor.cs
+++ b/Packages/com.unity.render-pipelines.core/Editor/Settings/DefaultVolumeProfileEditor.cs
@@ -130,6 +130,8 @@ bool MatchesSearchString(string title)
};
ListView listView = new ListView(filteredCategoryEditors, -1, makeItem, bindItem);
+ listView.selectionType = SelectionType.None;
+ listView.reorderable = false;
listView.virtualizationMethod = CollectionVirtualizationMethod.DynamicHeight;
componentListElement.Add(listView);
diff --git a/Packages/com.unity.render-pipelines.core/Editor/StyleSheets/DefaultVolumeProfileEditor.uss b/Packages/com.unity.render-pipelines.core/Editor/StyleSheets/DefaultVolumeProfileEditor.uss
index 3ad9c81c368..bef1626b6f4 100644
--- a/Packages/com.unity.render-pipelines.core/Editor/StyleSheets/DefaultVolumeProfileEditor.uss
+++ b/Packages/com.unity.render-pipelines.core/Editor/StyleSheets/DefaultVolumeProfileEditor.uss
@@ -21,3 +21,11 @@
margin-left: -31px;
margin-right: -6px;
}
+
+.unity-imgui-container.unity-list-view__item--selected, .unity-imgui-container.unity-list-view__item:checked{
+ background-color: transparent;
+}
+
+.unity-imgui-container.unity-list-view__item:hover {
+ background-color: var(--unity-colors-highlight-background-hover);
+}
diff --git a/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/GPUResidentBatcher.cs b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/GPUResidentBatcher.cs
index 2a3c5227cae..f868a00d477 100644
--- a/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/GPUResidentBatcher.cs
+++ b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/GPUResidentBatcher.cs
@@ -71,7 +71,7 @@ public void UpdateFrame()
m_BatchersContext.UpdateFrame();
}
- public void DestroyMaterials(NativeArray destroyedMaterials)
+ public void DestroyMaterials(NativeArray destroyedMaterials)
{
m_InstanceCullingBatcher.DestroyMaterials(destroyedMaterials);
}
@@ -81,12 +81,12 @@ public void DestroyDrawInstances(NativeArray instances)
m_InstanceCullingBatcher.DestroyDrawInstances(instances);
}
- public void DestroyMeshes(NativeArray destroyedMeshes)
+ public void DestroyMeshes(NativeArray destroyedMeshes)
{
m_InstanceCullingBatcher.DestroyMeshes(destroyedMeshes);
}
- internal void FreeRendererGroupInstances(NativeArray rendererGroupIDs)
+ internal void FreeRendererGroupInstances(NativeArray rendererGroupIDs)
{
if (rendererGroupIDs.Length == 0)
return;
@@ -115,7 +115,7 @@ public void UpdateInstanceOccluders(RenderGraph renderGraph, in OccluderParamete
m_BatchersContext.occlusionCullingCommon.UpdateInstanceOccluders(renderGraph, occluderParams, occluderSubviewUpdates);
}
- public void UpdateRenderers(NativeArray renderersID, bool materialUpdateOnly = false)
+ public void UpdateRenderers(NativeArray renderersID, bool materialUpdateOnly = false)
{
if (renderersID.Length == 0)
return;
@@ -127,7 +127,7 @@ public void UpdateRenderers(NativeArray renderersID, bool materialUpdateOnl
}
#if UNITY_EDITOR
- public void UpdateSelectedRenderers(NativeArray renderersID)
+ public void UpdateSelectedRenderers(NativeArray renderersID)
{
var instances = new NativeArray(renderersID.Length, Allocator.TempJob, NativeArrayOptions.UninitializedMemory);
m_BatchersContext.ScheduleQueryRendererGroupInstancesJob(renderersID, instances).Complete();
@@ -136,7 +136,7 @@ public void UpdateSelectedRenderers(NativeArray renderersID)
}
#endif
- public JobHandle SchedulePackedMaterialCacheUpdate(NativeArray materialIDs,
+ public JobHandle SchedulePackedMaterialCacheUpdate(NativeArray materialIDs,
NativeArray packedMaterialDatas)
{
return m_InstanceCullingBatcher.SchedulePackedMaterialCacheUpdate(materialIDs, packedMaterialDatas);
diff --git a/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/GPUResidentDrawer.cs b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/GPUResidentDrawer.cs
index 2de174a7771..1eaa57f7fef 100644
--- a/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/GPUResidentDrawer.cs
+++ b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/GPUResidentDrawer.cs
@@ -529,7 +529,7 @@ private void UpdateSelection()
Object[] renderers = Selection.GetFiltered(typeof(MeshRenderer), SelectionMode.Deep);
- var rendererIDs = new NativeArray(renderers.Length, Allocator.TempJob, NativeArrayOptions.UninitializedMemory);
+ var rendererIDs = new NativeArray(renderers.Length, Allocator.TempJob, NativeArrayOptions.UninitializedMemory);
for (int i = 0; i < renderers.Length; ++i)
rendererIDs[i] = renderers[i] ? renderers[i].GetInstanceID() : 0;
@@ -578,13 +578,13 @@ private void PostPostLateUpdate()
Profiler.EndSample();
Profiler.BeginSample("GPUResidentDrawer.ClassifyMaterials");
- ClassifyMaterials(materialData.changedID, out NativeList unsupportedChangedMaterials,
- out NativeList supportedChangedMaterials,
+ ClassifyMaterials(materialData.changedID, out NativeList unsupportedChangedMaterials,
+ out NativeList supportedChangedMaterials,
out NativeList supportedChangedPackedMaterialDatas, Allocator.TempJob);
Profiler.EndSample();
Profiler.BeginSample("GPUResidentDrawer.FindUnsupportedRenderers");
- NativeList unsupportedRenderers = FindUnsupportedRenderers(unsupportedChangedMaterials.AsArray());
+ NativeList unsupportedRenderers = FindUnsupportedRenderers(unsupportedChangedMaterials.AsArray());
Profiler.EndSample();
Profiler.BeginSample("GPUResidentDrawer.ProcessMaterials");
@@ -636,7 +636,7 @@ private void PostPostLateUpdate()
#endif
}
- private void ProcessMaterials(NativeArray destroyedID, NativeArray unsupportedMaterials)
+ private void ProcessMaterials(NativeArray destroyedID, NativeArray unsupportedMaterials)
{
if (destroyedID.Length > 0)
m_Batcher.DestroyMaterials(destroyedID);
@@ -645,13 +645,13 @@ private void ProcessMaterials(NativeArray destroyedID, NativeArray uns
m_Batcher.DestroyMaterials(unsupportedMaterials);
}
- private void ProcessCameras(NativeArray changedIDs, NativeArray destroyedIDs)
+ private void ProcessCameras(NativeArray changedIDs, NativeArray destroyedIDs)
{
m_BatchersContext.UpdateCameras(changedIDs);
m_BatchersContext.FreePerCameraInstanceData(destroyedIDs);
}
- private void ProcessMeshes(NativeArray destroyedID)
+ private void ProcessMeshes(NativeArray destroyedID)
{
if (destroyedID.Length == 0)
return;
@@ -665,14 +665,14 @@ private void ProcessMeshes(NativeArray destroyedID)
m_Batcher.DestroyMeshes(destroyedID);
}
- private void ProcessLODGroups(NativeArray changedID, NativeArray destroyed, NativeArray transformedID)
+ private void ProcessLODGroups(NativeArray changedID, NativeArray destroyed, NativeArray transformedID)
{
m_BatchersContext.DestroyLODGroups(destroyed);
m_BatchersContext.UpdateLODGroups(changedID);
m_BatchersContext.TransformLODGroups(transformedID);
}
- private void ProcessRendererMaterialAndMeshChanges(NativeArray excludedRenderers, NativeArray changedMaterials, NativeArray changedPackedMaterialDatas, NativeArray changedMeshes)
+ private void ProcessRendererMaterialAndMeshChanges(NativeArray excludedRenderers, NativeArray changedMaterials, NativeArray changedPackedMaterialDatas, NativeArray changedMeshes)
{
if (changedMaterials.Length == 0 && changedMeshes.Length == 0)
return;
@@ -693,11 +693,11 @@ private void ProcessRendererMaterialAndMeshChanges(NativeArray excludedRend
return;
}
- var sortedExcludedRenderers = new NativeArray(excludedRenderers, Allocator.TempJob);
+ var sortedExcludedRenderers = new NativeArray(excludedRenderers, Allocator.TempJob);
if (sortedExcludedRenderers.Length > 0)
{
Profiler.BeginSample("ProcessRendererMaterialAndMeshChanges.Sort");
- sortedExcludedRenderers.ParallelSort().Complete();
+ sortedExcludedRenderers.SortJob().Schedule().Complete();
Profiler.EndSample();
}
@@ -725,10 +725,10 @@ private void ProcessRendererMaterialAndMeshChanges(NativeArray excludedRend
var totalCount = changedMaterialsCount + changedMeshesCount;
var changedInstances = new NativeArray(totalCount, Allocator.TempJob, NativeArrayOptions.UninitializedMemory);
- var changedRenderers = new NativeArray(totalCount, Allocator.TempJob, NativeArrayOptions.UninitializedMemory);
+ var changedRenderers = new NativeArray(totalCount, Allocator.TempJob, NativeArrayOptions.UninitializedMemory);
- NativeArray.Copy(renderersWithChangedMaterials.AsArray(), changedRenderers, changedMaterialsCount);
- NativeArray.Copy(renderersWithChangedMeshes.AsArray(), changedRenderers.GetSubArray(changedMaterialsCount, changedMeshesCount), changedMeshesCount);
+ NativeArray.Copy(renderersWithChangedMaterials.AsArray(), changedRenderers, changedMaterialsCount);
+ NativeArray.Copy(renderersWithChangedMeshes.AsArray(), changedRenderers.GetSubArray(changedMaterialsCount, changedMeshesCount), changedMeshesCount);
ScheduleQueryRendererGroupInstancesJob(changedRenderers, changedInstances).Complete();
@@ -745,7 +745,7 @@ private void ProcessRendererMaterialAndMeshChanges(NativeArray excludedRend
Profiler.EndSample();
}
- private void ProcessRenderers(TypeDispatchData rendererChanges, NativeArray unsupportedRenderers)
+ private void ProcessRenderers(TypeDispatchData rendererChanges, NativeArray unsupportedRenderers)
{
Profiler.BeginSample("GPUResidentDrawer.ProcessRenderers");
@@ -792,7 +792,7 @@ private void FreeInstances(NativeArray instances)
Profiler.EndSample();
}
- private void FreeRendererGroupInstances(NativeArray rendererGroupIDs, NativeArray unsupportedRendererGroupIDs)
+ private void FreeRendererGroupInstances(NativeArray rendererGroupIDs, NativeArray unsupportedRendererGroupIDs)
{
Profiler.BeginSample("GPUResidentDrawer.FreeRendererGroupInstances");
@@ -816,31 +816,31 @@ private InstanceHandle AppendNewInstance(int rendererGroupID, in Matrix4x4 insta
//@ Additionally we need to implement the way to tie external transforms (not Transform components) with instances.
//@ So that an individual instance could be transformed externally and then updated in the drawer.
- private JobHandle ScheduleQueryRendererGroupInstancesJob(NativeArray rendererGroupIDs, NativeArray instances)
+ private JobHandle ScheduleQueryRendererGroupInstancesJob(NativeArray rendererGroupIDs, NativeArray instances)
{
return m_BatchersContext.ScheduleQueryRendererGroupInstancesJob(rendererGroupIDs, instances);
}
- private JobHandle ScheduleQueryRendererGroupInstancesJob(NativeArray rendererGroupIDs, NativeList instances)
+ private JobHandle ScheduleQueryRendererGroupInstancesJob(NativeArray rendererGroupIDs, NativeList instances)
{
return m_BatchersContext.ScheduleQueryRendererGroupInstancesJob(rendererGroupIDs, instances);
}
- private JobHandle ScheduleQueryRendererGroupInstancesJob(NativeArray rendererGroupIDs, NativeArray instancesOffset, NativeArray instancesCount, NativeList instances)
+ private JobHandle ScheduleQueryRendererGroupInstancesJob(NativeArray rendererGroupIDs, NativeArray instancesOffset, NativeArray instancesCount, NativeList instances)
{
return m_BatchersContext.ScheduleQueryRendererGroupInstancesJob(rendererGroupIDs, instancesOffset, instancesCount, instances);
}
- private JobHandle ScheduleQueryMeshInstancesJob(NativeArray sortedMeshIDs, NativeList instances)
+ private JobHandle ScheduleQueryMeshInstancesJob(NativeArray sortedMeshIDs, NativeList instances)
{
return m_BatchersContext.ScheduleQueryMeshInstancesJob(sortedMeshIDs, instances);
}
- private void ClassifyMaterials(NativeArray materials, out NativeList unsupportedMaterials,
- out NativeList supportedMaterials, out NativeList supportedPackedMaterialDatas, Allocator allocator)
+ private void ClassifyMaterials(NativeArray materials, out NativeList unsupportedMaterials,
+ out NativeList supportedMaterials, out NativeList supportedPackedMaterialDatas, Allocator allocator)
{
- supportedMaterials = new NativeList(materials.Length, allocator);
- unsupportedMaterials = new NativeList(materials.Length, allocator);
+ supportedMaterials = new NativeList(materials.Length, allocator);
+ unsupportedMaterials = new NativeList(materials.Length, allocator);
supportedPackedMaterialDatas = new NativeList(materials.Length, allocator);
if (materials.Length > 0)
@@ -850,9 +850,9 @@ private void ClassifyMaterials(NativeArray materials, out NativeList u
}
}
- private NativeList FindUnsupportedRenderers(NativeArray unsupportedMaterials)
+ private NativeList FindUnsupportedRenderers(NativeArray unsupportedMaterials)
{
- NativeList unsupportedRenderers = new NativeList(Allocator.TempJob);
+ NativeList unsupportedRenderers = new NativeList(Allocator.TempJob);
if (unsupportedMaterials.Length > 0)
{
@@ -863,9 +863,9 @@ private NativeList FindUnsupportedRenderers(NativeArray unsupportedMat
return unsupportedRenderers;
}
- private NativeHashSet GetMaterialsWithChangedPackedMaterial(NativeArray materials, NativeArray packedMaterialDatas, Allocator allocator)
+ private NativeHashSet GetMaterialsWithChangedPackedMaterial(NativeArray materials, NativeArray packedMaterialDatas, Allocator allocator)
{
- NativeHashSet filteredMaterials = new NativeHashSet(materials.Length, allocator);
+ NativeHashSet filteredMaterials = new NativeHashSet(materials.Length, allocator);
GPUResidentDrawerBurst.GetMaterialsWithChangedPackedMaterial(materials, packedMaterialDatas,
batcher.instanceCullingBatcher.packedMaterialHash.AsReadOnly(), ref filteredMaterials);
@@ -873,11 +873,11 @@ private NativeHashSet GetMaterialsWithChangedPackedMaterial(NativeArray renderersWithMaterials, NativeList renderersWithMeshes) FindRenderersFromMaterialsOrMeshes(NativeArray sortedExcludeRenderers, NativeHashSet materials, NativeArray meshes, Allocator rendererListAllocator)
+ private (NativeList renderersWithMaterials, NativeList renderersWithMeshes) FindRenderersFromMaterialsOrMeshes(NativeArray sortedExcludeRenderers, NativeHashSet materials, NativeArray meshes, Allocator rendererListAllocator)
{
var sharedInstanceData = m_BatchersContext.sharedInstanceData;
- NativeList renderersWithMaterials = new NativeList(sharedInstanceData.rendererGroupIDs.Length, rendererListAllocator);
- NativeList renderersWithMeshes = new NativeList(sharedInstanceData.rendererGroupIDs.Length, rendererListAllocator);
+ var renderersWithMaterials = new NativeList(sharedInstanceData.rendererGroupIDs.Length, rendererListAllocator);
+ var renderersWithMeshes = new NativeList(sharedInstanceData.rendererGroupIDs.Length, rendererListAllocator);
var jobHandle = new FindRenderersFromMaterialOrMeshJob
{
@@ -900,15 +900,15 @@ private unsafe struct FindRenderersFromMaterialOrMeshJob : IJobParallelForBatch
{
public const int k_BatchSize = 128;
- [ReadOnly] public NativeHashSet.ReadOnly materialIDs;
- [ReadOnly] public NativeArray.ReadOnly materialIDArrays;
- [ReadOnly] public NativeArray.ReadOnly meshIDs;
- [ReadOnly] public NativeArray.ReadOnly meshIDArray;
- [ReadOnly] public NativeArray.ReadOnly rendererGroupIDs;
- [ReadOnly] public NativeArray.ReadOnly sortedExcludeRendererIDs;
+ [ReadOnly] public NativeHashSet.ReadOnly materialIDs;
+ [ReadOnly] public NativeArray.ReadOnly materialIDArrays;
+ [ReadOnly] public NativeArray.ReadOnly meshIDs;
+ [ReadOnly] public NativeArray.ReadOnly meshIDArray;
+ [ReadOnly] public NativeArray.ReadOnly rendererGroupIDs;
+ [ReadOnly] public NativeArray.ReadOnly sortedExcludeRendererIDs;
- [WriteOnly] public NativeList.ParallelWriter selectedRenderGroupsForMaterials;
- [WriteOnly] public NativeList.ParallelWriter selectedRenderGroupsForMeshes;
+ [WriteOnly] public NativeList.ParallelWriter selectedRenderGroupsForMaterials;
+ [WriteOnly] public NativeList.ParallelWriter selectedRenderGroupsForMeshes;
public void Execute(int startIndex, int count)
{
diff --git a/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/GPUResidentDrawerBurst.cs b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/GPUResidentDrawerBurst.cs
index ddb0db8c566..a9a98043664 100644
--- a/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/GPUResidentDrawerBurst.cs
+++ b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/GPUResidentDrawerBurst.cs
@@ -8,10 +8,10 @@ namespace UnityEngine.Rendering
internal static class GPUResidentDrawerBurst
{
[BurstCompile(DisableSafetyChecks = true, OptimizeFor = OptimizeFor.Performance)]
- public static void ClassifyMaterials(in NativeArray materialIDs, in NativeParallelHashMap.ReadOnly batchMaterialHash,
- ref NativeList supportedMaterialIDs, ref NativeList unsupportedMaterialIDs, ref NativeList supportedPackedMaterialDatas)
+ public static void ClassifyMaterials(in NativeArray materialIDs, in NativeParallelHashMap.ReadOnly batchMaterialHash,
+ ref NativeList supportedMaterialIDs, ref NativeList unsupportedMaterialIDs, ref NativeList supportedPackedMaterialDatas)
{
- var usedMaterialIDs = new NativeList(4, Allocator.Temp);
+ var usedMaterialIDs = new NativeList(4, Allocator.Temp);
foreach (var materialID in materialIDs)
{
@@ -39,17 +39,17 @@ public static void ClassifyMaterials(in NativeArray materialIDs, in NativeP
}
[BurstCompile(DisableSafetyChecks = true, OptimizeFor = OptimizeFor.Performance)]
- public static void FindUnsupportedRenderers(in NativeArray unsupportedMaterials, in NativeArray.ReadOnly materialIDArrays, in NativeArray.ReadOnly rendererGroups,
- ref NativeList unsupportedRenderers)
+ public static void FindUnsupportedRenderers(in NativeArray unsupportedMaterials, in NativeArray.ReadOnly materialIDArrays, in NativeArray.ReadOnly rendererGroups,
+ ref NativeList unsupportedRenderers)
{
for (int arrayIndex = 0; arrayIndex < materialIDArrays.Length; arrayIndex++)
{
var materialIDs = materialIDArrays[arrayIndex];
- int rendererID = rendererGroups[arrayIndex];
+ EntityId rendererID = rendererGroups[arrayIndex];
for (int i = 0; i < materialIDs.Length; i++)
{
- int materialID = materialIDs[i];
+ EntityId materialID = materialIDs[i];
if (unsupportedMaterials.Contains(materialID))
{
@@ -61,8 +61,8 @@ public static void FindUnsupportedRenderers(in NativeArray unsupportedMater
}
[BurstCompile(DisableSafetyChecks = true, OptimizeFor = OptimizeFor.Performance)]
- public static void GetMaterialsWithChangedPackedMaterial(in NativeArray materialIDs, in NativeArray packedMaterialDatas,
- in NativeParallelHashMap.ReadOnly packedMaterialHash, ref NativeHashSet filteredMaterials)
+ public static void GetMaterialsWithChangedPackedMaterial(in NativeArray materialIDs, in NativeArray packedMaterialDatas,
+ in NativeParallelHashMap.ReadOnly packedMaterialHash, ref NativeHashSet filteredMaterials)
{
for (int index = 0; index < materialIDs.Length ; index++)
{
diff --git a/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceCuller.cs b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceCuller.cs
index ed9bf2e6f13..b527744780a 100644
--- a/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceCuller.cs
+++ b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceCuller.cs
@@ -1280,7 +1280,7 @@ internal unsafe struct DrawCommandOutputFiltering : IJob
[ReadOnly] public NativeArray drawBatchIndices;
[ReadOnly] public NativeArray filteringResults;
- [ReadOnly] public NativeArray excludedRenderers;
+ [ReadOnly] public NativeArray excludedRenderers;
[ReadOnly] public FilteringJobMode mode;
@@ -2160,7 +2160,7 @@ private JobHandle CreateFilteringCullingOutputJob_EditorOnly(in BatchCullingCont
{
NativeArray filteredRenderers = new NativeArray(sharedInstanceData.rendererGroupIDs.Length, Allocator.TempJob);
EditorCameraUtils.GetRenderersFilteringResults(sharedInstanceData.rendererGroupIDs, filteredRenderers);
- var dummyExcludedRenderers = new NativeArray(0, Allocator.TempJob);
+ var dummyExcludedRenderers = new NativeArray(0, Allocator.TempJob);
var drawOutputJob = new DrawCommandOutputFiltering
{
@@ -2201,8 +2201,8 @@ private JobHandle CreatePickingCullingOutputJob_EditorOnly(in BatchCullingContex
if (PrefabStageUtility.GetCurrentPrefabStage() != null)
return cullingJobHandle;
- var pickingIDs = HandleUtility.GetPickingIncludeExcludeList(Allocator.TempJob);
- var excludedRenderers = pickingIDs.ExcludeRenderers.IsCreated ? pickingIDs.ExcludeRenderers : new NativeArray(0, Allocator.TempJob);
+ var pickingIDs = HandleUtility.GetPickingIncludeExcludeEntityIdList(Allocator.TempJob);
+ var excludedRenderers = pickingIDs.ExcludeRenderers.IsCreated ? pickingIDs.ExcludeRenderers : new NativeArray(0, Allocator.TempJob);
var dummyFilteringResults = new NativeArray(0, Allocator.TempJob);
var drawOutputJob = new DrawCommandOutputFiltering
diff --git a/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceCullingBatcher.cs b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceCullingBatcher.cs
index 7bac52df863..3072af5d401 100644
--- a/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceCullingBatcher.cs
+++ b/Packages/com.unity.render-pipelines.core/Runtime/GPUDriven/InstanceCullingBatcher.cs
@@ -191,21 +191,21 @@ internal struct FindNonRegisteredMeshesJob : IJobParallelForBatch
{
public const int k_BatchSize = 128;
- [ReadOnly] public NativeArray instanceIDs;
- [ReadOnly] public NativeParallelHashMap hashMap;
+ [ReadOnly] public NativeArray instanceIDs;
+ [ReadOnly] public NativeParallelHashMap hashMap;
- [WriteOnly] public NativeList.ParallelWriter outInstancesWriter;
+ [WriteOnly] public NativeList.ParallelWriter outInstancesWriter;
public unsafe void Execute(int startIndex, int count)
{
- int* notFoundinstanceIDsPtr = stackalloc int[k_BatchSize];
- var notFoundinstanceIDs = new UnsafeList(notFoundinstanceIDsPtr, k_BatchSize);
+ EntityId* notFoundinstanceIDsPtr = stackalloc EntityId[k_BatchSize];
+ var notFoundinstanceIDs = new UnsafeList(notFoundinstanceIDsPtr, k_BatchSize);
notFoundinstanceIDs.Length = 0;
for (int i = startIndex; i < startIndex + count; ++i)
{
- int instanceID = instanceIDs[i];
+ var instanceID = instanceIDs[i];
if (!hashMap.ContainsKey(instanceID))
notFoundinstanceIDs.AddNoResize(instanceID);
@@ -220,11 +220,11 @@ internal struct FindNonRegisteredMaterialsJob : IJobParallelForBatch
{
public const int k_BatchSize = 128;
- [ReadOnly] public NativeArray instanceIDs;
+ [ReadOnly] public NativeArray instanceIDs;
[ReadOnly] public NativeArray packedMaterialDatas;
- [ReadOnly] public NativeParallelHashMap hashMap;
+ [ReadOnly] public NativeParallelHashMap hashMap;
- [WriteOnly] public NativeList.ParallelWriter outInstancesWriter;
+ [WriteOnly] public NativeList.ParallelWriter outInstancesWriter;
[WriteOnly] public NativeList.ParallelWriter outPackedMaterialDatasWriter;
public unsafe void Execute(int startIndex, int count)
@@ -259,10 +259,10 @@ internal struct RegisterNewMeshesJob : IJobParallelFor
{
public const int k_BatchSize = 128;
- [ReadOnly] public NativeArray instanceIDs;
+ [ReadOnly] public NativeArray instanceIDs;
[ReadOnly] public NativeArray batchIDs;
- [WriteOnly] public NativeParallelHashMap.ParallelWriter hashMap;
+ [WriteOnly] public NativeParallelHashMap.ParallelWriter hashMap;
public void Execute(int index)
{
@@ -275,12 +275,12 @@ internal struct RegisterNewMaterialsJob : IJobParallelFor
{
public const int k_BatchSize = 128;
- [ReadOnly] public NativeArray instanceIDs;
+ [ReadOnly] public NativeArray instanceIDs;
[ReadOnly] public NativeArray packedMaterialDatas;
[ReadOnly] public NativeArray batchIDs;
- [WriteOnly] public NativeParallelHashMap.ParallelWriter batchMaterialHashMap;
- [WriteOnly] public NativeParallelHashMap.ParallelWriter packedMaterialHashMap;
+ [WriteOnly] public NativeParallelHashMap.ParallelWriter batchMaterialHashMap;
+ [WriteOnly] public NativeParallelHashMap.ParallelWriter packedMaterialHashMap;
public void Execute(int index)
{
@@ -293,10 +293,10 @@ public void Execute(int index)
[BurstCompile(DisableSafetyChecks = true, OptimizeFor = OptimizeFor.Performance)]
internal struct UpdatePackedMaterialDataCacheJob : IJob
{
- [ReadOnly] public NativeArray.ReadOnly materialIDs;
+ [ReadOnly] public NativeArray.ReadOnly materialIDs;
[ReadOnly] public NativeArray.ReadOnly packedMaterialDatas;
- public NativeParallelHashMap packedMaterialHash;
+ public NativeParallelHashMap packedMaterialHash;
private void ProcessMaterial(int i)
{
@@ -500,16 +500,16 @@ internal class InstanceCullingBatcher : IDisposable
private BatchRendererGroup m_BRG;
private NativeParallelHashMap m_GlobalBatchIDs;
private InstanceCuller m_Culler;
- private NativeParallelHashMap m_BatchMaterialHash;
- private NativeParallelHashMap m_PackedMaterialHash;
- private NativeParallelHashMap m_BatchMeshHash;
+ private NativeParallelHashMap m_BatchMaterialHash;
+ private NativeParallelHashMap m_PackedMaterialHash;
+ private NativeParallelHashMap m_BatchMeshHash;
private int m_CachedInstanceDataBufferLayoutVersion;
private OnCullingCompleteCallback m_OnCompleteCallback;
- public NativeParallelHashMap batchMaterialHash => m_BatchMaterialHash;
- public NativeParallelHashMap packedMaterialHash => m_PackedMaterialHash;
+ public NativeParallelHashMap batchMaterialHash => m_BatchMaterialHash;
+ public NativeParallelHashMap packedMaterialHash => m_PackedMaterialHash;
public InstanceCullingBatcher(RenderersBatchersContext batcherContext, InstanceCullingBatcherDesc desc, BatchRendererGroup.OnFinishedCulling onFinishedCulling)
{
@@ -558,9 +558,9 @@ public InstanceCullingBatcher(RenderersBatchersContext batcherContext, InstanceC
m_CachedInstanceDataBufferLayoutVersion = -1;
m_OnCompleteCallback = desc.onCompleteCallback;
- m_BatchMaterialHash = new NativeParallelHashMap(64, Allocator.Persistent);
- m_PackedMaterialHash = new NativeParallelHashMap(64, Allocator.Persistent);
- m_BatchMeshHash = new NativeParallelHashMap(64, Allocator.Persistent);
+ m_BatchMaterialHash = new NativeParallelHashMap(64, Allocator.Persistent);
+ m_PackedMaterialHash = new NativeParallelHashMap(64, Allocator.Persistent);
+ m_BatchMeshHash = new NativeParallelHashMap(64, Allocator.Persistent);
m_GlobalBatchIDs = new NativeParallelHashMap(6, Allocator.Persistent);
m_GlobalBatchIDs.Add((uint)InstanceComponentGroup.Default, GetBatchID(InstanceComponentGroup.Default));
@@ -701,7 +701,7 @@ public void DestroyDrawInstances(NativeArray