diff --git a/.gitattributes b/.gitattributes index 3cac295945b..fdbe17943da 100644 --- a/.gitattributes +++ b/.gitattributes @@ -348,6 +348,9 @@ Editor/Resources/unity[[:space:]]editor[[:space:]]resources filter=lfs diff=lfs **/HDRP_RuntimeTests/Assets/Scenes/002-HDMaterials/cloud2.asset filter=lfs diff=lfs merge=lfs -text **/HDRP_RuntimeTests/Assets/Scenes/002-HDMaterials/perlin.asset filter=lfs diff=lfs merge=lfs -text +# Gfx ML acceleration test assets +**/MachineLearning/**/*.bytes filter=lfs diff=lfs merge=lfs -text + #GfxTests **/GfxTestProjectFolder/**/*.[hH][dD][rR] filter=lfs diff=lfs merge=lfs -text **/GfxTestProjectFolder/**/*.[tT][gG][aA] filter=lfs diff=lfs merge=lfs -text @@ -399,3 +402,6 @@ Editor/Resources/unity[[:space:]]editor[[:space:]]resources filter=lfs diff=lfs /Tests/EditModeAndPlayModeTests/NetcodeSamples/**/*.[jJ][pP][gG] filter=lfs diff=lfs merge=lfs -text /Tests/EditModeAndPlayModeTests/NetcodeSamples/**/*.[tT][iI][fF] filter=lfs diff=lfs merge=lfs -text /Tests/EditModeAndPlayModeTests/NetcodeSamples/**/*.[fF][bB][xX] filter=lfs diff=lfs merge=lfs -text + +# documentation images +Documentation/ManualDocs/uploads/Main/unity-xr-tech-stack.png filter=lfs diff=lfs merge=lfs -text diff --git a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.cs b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.cs index 1ce93cfc1bd..48e0430d820 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.cs +++ b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeGIBaking.cs @@ -1717,8 +1717,11 @@ Vector3Int GetCellPositionFromVoxel(Vector3Int voxelToLookup, int cellSizeInBric continue; // 3. - // Overwrite lighting data with trilinear sampled data from the brick with highest subdiv level - float brickSize = ProbeReferenceVolume.instance.BrickSize(largestBrick.subdivisionLevel - 1); + // Overwrite lighting data with trilinear sampled data from the brick with highest subdiv level. + // Use minBrickSize from m_ProfileInfo (live bake settings), not ProbeReferenceVolume.instance, + // because that runtime state is restored to the previous bake's snapshot at the end of + // ApplySubdivisionResults and would be stale here. UUM-141983. + float brickSize = ProbeVolumeUtil.BrickSize(minBrickSize, largestBrick.subdivisionLevel - 1); float3 uvw = math.clamp((pos - (Vector3)largestBrick.position * minBrickSize) / brickSize, 0, 3); var probe = Vector3Int.FloorToInt(uvw); diff --git a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeVolumeLightingTab.cs b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeVolumeLightingTab.cs index c98fda030da..c068c582f9e 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeVolumeLightingTab.cs +++ b/Packages/com.unity.render-pipelines.core/Editor/Lighting/ProbeVolume/ProbeVolumeLightingTab.cs @@ -347,7 +347,11 @@ void BakingGUI() m_SingleSceneMode = EditorGUILayout.Popup(Styles.bakingMode, m_SingleSceneMode ? 0 : 1, Styles.bakingModeOptions) == 0; if (EditorGUI.EndChangeCheck() && !m_SingleSceneMode) { - if (activeSet != null) { EditorUtility.SetDirty(activeSet); activeSet.singleSceneMode = false; } + if (activeSet != null) + { + EditorUtility.SetDirty(activeSet); + activeSet.singleSceneMode = false; + } SaveTempBakingSetIfNeeded(); } @@ -357,11 +361,14 @@ void BakingGUI() return; } - EditorGUI.BeginChangeCheck(); var newSet = ObjectFieldWithNew(Styles.currentBakingSet, activeSet, CreateBakingSet); - if (EditorGUI.EndChangeCheck()) + if (newSet != activeSet) { - if (newSet != null) { EditorUtility.SetDirty(newSet); newSet.singleSceneMode = false; } + if (newSet != null) + { + EditorUtility.SetDirty(newSet); + newSet.singleSceneMode = false; + } activeSet = newSet; ProbeReferenceVolume.instance.Clear(); diff --git a/Packages/com.unity.render-pipelines.core/Editor/SampleDependencyImportSystem/SampleDependencyImporter.cs b/Packages/com.unity.render-pipelines.core/Editor/SampleDependencyImportSystem/SampleDependencyImporter.cs index 6ae1a448d9c..4b065a63afc 100644 --- a/Packages/com.unity.render-pipelines.core/Editor/SampleDependencyImportSystem/SampleDependencyImporter.cs +++ b/Packages/com.unity.render-pipelines.core/Editor/SampleDependencyImportSystem/SampleDependencyImporter.cs @@ -1,6 +1,8 @@ +using System; using System.Collections.Generic; using System.IO; using UnityEditor; +using UnityEditor.PackageManager; using UnityEditor.PackageManager.UI; using UnityEngine; using UnityEngine.UIElements; @@ -60,12 +62,10 @@ VisualElement IPackageManagerExtension.CreateExtensionUI() injectingElement = new VisualElement(); injectingElement.style.display = DisplayStyle.None; - // This callback is called once the element is added to the UI, at this point we should have access to rest of the elements. injectingElement.RegisterCallback((callback) => { - //Force clear the cached elements to fetch those from the newly openned window + // Clear cached elements when panel is attached _panelRoot = null; samplesButton = null; - RefreshSampleButtons(); }); @@ -73,108 +73,299 @@ VisualElement IPackageManagerExtension.CreateExtensionUI() } Button samplesButton; + Button m_InjectedDetailsButton; + bool m_IsOnAllSamplesTab; + const string samplesButtonName = "samplesButton"; - const string sampleContainerClassName = "sampleContainer"; - const string importButtonClassName = "actionButton"; + const string samplesListContainerClassName = "sampleContainer"; + const string importButtonClassName = "actionButtonsContainer"; const string injectedButtonClassName = "importWithDependenciesButton"; internal void RefreshSampleButtons() { - 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 (m_IsOnAllSamplesTab) + { + RefreshSampleButtonInDetailsView(); + } + else + { + RefreshSampleButtonInListView(); + } + } + + internal void RefreshSampleButtonInListView() + { + if (injectingElement == null || m_PackageInfo == null || m_SampleList == null || panelRoot == null) + return; + + // Hook up to the "Samples" tab button click event + if (samplesButton == null) + { + samplesButton = panelRoot.Q