Skip to content

Internal/master #8133

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 69 commits into from
Feb 20, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
a3bf820
Graphics/vfx/fix/learning fixes
OrsonFavrel Feb 4, 2025
fa27e34
Add a unit test for URP light clustering
ApoorvaJ Feb 4, 2025
38d306c
Fix error spam in URP samples when correct SRP asset is not assigned
arttu-peltonen Feb 4, 2025
6e4bb31
Fix VRS warning about ResetShadingRate inside a renderpass.
eh-unity Feb 4, 2025
854e3b0
[VFX] Fix missing invalidation in case of SetTexture
PaulDemeulenaere Feb 4, 2025
5755334
Bugfix: Volumetric Fog Count > Max Local Volumetric Fog Count
ApoorvaJ Feb 4, 2025
bdd8848
DOCG-6418 - Fixed name of snippet .md file
Sam-Unity Feb 4, 2025
c819025
[UUM-74689] Fix for ShadowCaster2D does not update when using Sprite …
unity-cchu Feb 4, 2025
d956605
Fix for UUM 83095
unity-cchu Feb 4, 2025
53b3b76
[6000.2][UUM-93255] Fix back buffer clear when pixel perfect crop fra…
kennytann Feb 4, 2025
ab061b6
[Rendering Debugger][HDRP]Removing that Additional Camera data regist…
alex-vazquez-unity3d Feb 5, 2025
7e202c4
Fix missing base color calculation for decals used on specular color …
alelievr Feb 5, 2025
3fd5672
Render Graph - Fix destructor error when an exception is thrown durin…
YohannVaastUnity Feb 5, 2025
860e6b7
[UUM-92662] Proper edgedraginfo when hovering or starting link from a…
iTris666 Feb 5, 2025
848c45b
Fix APV seam fixing to work with occlusion
pema99 Feb 5, 2025
e056ebe
[SRPF] Switch to Dictionary instead of NativeHashMap for DelegateHash…
kirill-titov-u Feb 5, 2025
39935ab
[6000.2][UUM-95754] Add layer mask in renderer 2d data
kennytann Feb 5, 2025
c2d0400
SRP Batcher compatibility and Rendering Debugger "culling stats" opti…
arnaudcarre Feb 5, 2025
16762f2
[content automatically redacted] touching PlatformDependent folder
AngelaDematte Feb 5, 2025
1cdad1b
[VFX][Fix] Account for Custom Pass cullng results in VFX command cull…
ludovic-theobald Feb 5, 2025
54aeefd
UGUI Shader Graph Sample Content
bencloward Feb 5, 2025
62876bf
Fixed multiple BakingSet processes
nanho-lee Feb 6, 2025
86935e4
UUM-93821: Fix blit and copy pass for XR
Charles-H-Unity Feb 6, 2025
b961e4f
[ShaderGraph] Fix various LUP issues.
Feb 6, 2025
a042bfa
Graphics/shadersystem/fix compute kernel not found uum 87931
aleks01010101 Feb 6, 2025
de92ebb
Added Tests for wide coverage of 2D SRP-Batcher / GPU-Skinning / Dyna…
venkify Feb 6, 2025
28c90e9
Re-enable disabled URP post-process tests.
eh-unity Feb 7, 2025
2dc89a5
docg-6283: fix wrong term
ocarrere Feb 7, 2025
a5f0a54
Small fixes to the URP Render Graph post processing path
UnityAljosha Feb 7, 2025
4d64903
URP - Fix cameraData.renderScale issue in Forward mode
YohannVaastUnity Feb 8, 2025
577307d
Fix underwater collider bounds check when collider is rotated
arttu-peltonen Feb 8, 2025
b5cb562
Disable test HDRP_DXR 5001_PathTracing
ApoorvaJ Feb 8, 2025
a588e20
docg-6537-remove-krita
ocarrere Feb 8, 2025
8615231
[SpeedTree][URP] Fix compressed & downsampled normal map sampling art…
volkan-unity Feb 8, 2025
9243ddb
Moving Volume Tests components to SRP smoke tests.
alex-vazquez-unity3d Feb 8, 2025
08bc860
[ShaderGraph] Address various quality issues
Feb 9, 2025
9300e98
[UUM-96389] Fix for 6000.2.X: Terrain Detail objects are not rendered…
bslapc Feb 10, 2025
cdcacbb
Check count in DynamicArray.FindIndex, add overload
arttu-peltonen Feb 10, 2025
befc335
[SRP] Fix incorrect shadow texture format introduced by PR#58690 - [P…
Wilfrid-Unity Feb 10, 2025
735c8ab
[VFX/SG] Fix Unexpected Visible Dead Particles
PaulDemeulenaere Feb 10, 2025
e6882b2
Prebake lighting data in URP tests to improve stability and reduce co…
urasmus Feb 11, 2025
62c1e37
Fix TMP Essential Resources popup showing up on import on any SRP sam…
remi-chapelain Feb 11, 2025
b2adad6
Added Heatmap option to color modes
PBU3D Feb 11, 2025
c71f842
[HDRP] Empty template starts with incorrect Physically Based Sky (inc…
SuminCho1 Feb 12, 2025
f51dfad
Add a unit test for URP light clustering #2
ApoorvaJ Feb 12, 2025
7b0fa98
Fix bad Reflection Probes rendering of Volumetric Clouds in HDRP
urasmus Feb 12, 2025
cb6bb09
CI: Marked MacEditor/StandaloneOSX graphics-jobs as stable again.
amsXYZ Feb 12, 2025
c582e60
[VFX][Fix] Fix TriggerOnDie behavior with age reaping
julienf-unity Feb 12, 2025
549c191
[XRVOSB-64] Fix post process passes when HDR and XR rendering are bot…
mtschoen-unity Feb 13, 2025
d4fc4dd
Fix RenderTexture.Create failure on certain Android Vulkan devices
arttu-peltonen Feb 13, 2025
af1b1d2
[UUM-95508] Scroll to new Blackboard properties and categories when c…
dhsavell Feb 13, 2025
dcd4252
Disable testss 5005_PathTracing_Fog, 5010_PathTracingAlpha
ApoorvaJ Feb 13, 2025
f9f1da4
[HDRP] Fix water system debug mode for tesselation on metal
remi-chapelain Feb 13, 2025
5cee6ff
[UUM-67798] Move billboard and wave animation calculation into world …
zeroyao Feb 13, 2025
5fbbbee
DOCG-6517 Make HDRP caustics docs outcome-based
markg-unity Feb 13, 2025
c1d2fe8
[VFX] Prevent buffer overflow when parent system has more particles t…
gabrieldelacruz Feb 13, 2025
98518d3
[HDRP] Fix Nullref when using a Water Decal with Deformation and Curr…
remi-chapelain Feb 13, 2025
4181931
Convert the URP Projects to use Graphics Test Framework 9
giorgospetkakis Feb 14, 2025
3628904
[ShaderGraph] Remove some redundant checks when iterating over permut…
Feb 14, 2025
8511afb
[UUM-88005] Remove custom TabbedView implementation
dhsavell Feb 14, 2025
fa1d4bd
DOCG-6671 Add missing render graph Rendering Debugger settings
markg-unity Feb 14, 2025
a242011
Fix editor debug views not rendering when GPUResidentDrawer is enabled
vincent-breysse Feb 15, 2025
4f2d7e0
[UUM-82524][6000.2] Fix global light textures not set correctly
kennytann Feb 15, 2025
860d0b1
Graphics docs feedback fixes February 2025 pt2
markg-unity Feb 15, 2025
a82d078
Reduce aliasing of punctual lights in volumetric fog
alelievr Feb 18, 2025
5b4c763
Graphics/SRP - Small URP cleaning (logic untouched)
axoloto Feb 18, 2025
f6ee724
Bump SRP packages to 17.2.0
theopnv Feb 18, 2025
12b1383
UUM-95334 NativePassData.GraphPasses() has GC Alloc when using Render…
RoseHirigoyen Feb 18, 2025
1057c35
[HDRP] Fix water using the wrong depth for transparents with depth pr…
remi-chapelain Feb 18, 2025
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
  •  
  •  
  •  
88 changes: 88 additions & 0 deletions Packages/com.unity.render-pipelines.core/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,94 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
Version Updated
The version number for this package has increased due to a version update of a related graphics package.

## [17.0.3] - 2025-02-13

This version is compatible with Unity 6000.2.0a17.

### Added
- Added Variable Rate Shading API support for (Raster)CommandBuffer(s), RenderGraph and RTHandles.
Various VRS utilities.
- helper functions to Render Graph.

### Changed
- Modified the Rendering Debugger to prevent resource transfers in retail builds.
- Rendering Debugger - Moved the GPU Resident Drawer to the Rendering Section.
- Rendering Debugger - Moved Render Graph to the Rendering Section.
- Added an API to query the preferred depth-only format for target platforms.
- Improved Depth usage performance for some platforms.
- Improved the Native Render Pass CPU performance by implementing a Render Pass pooling system (URP RG).
- Reworked the additional properties.
- Improved Render Graph warning message in URP when missing RecordRenderGraph implementation.
- Displayed subpass and attachment index on Render Graph Viewer.
- Added a new icon and tooltip if there are multiple usage details for a resource block on Render Graph Viewer.
- Fixed Render Graph Viewer being called before Render Graph execution and its resource deallocation.
- Added What's New in Unity 6 to SRP Core Package.

### Fixed
- Fixed an issue in Render Graph Viewer where text would overlap after searching in the Pass List.
- Fix pass culling corner case where resources are never deallocated when the last pass using them is culled
- Fix RenderGraphObjectPool and GetTempMaterialPropertyBlock() usage in URP RenderGraph
- Fix async compute corner case where URP RenderGraph was waiting for a resource not written by any pass
- Serialization errors are thrown when "com.unity.render-pipelines.core" is added as a custom package
- Add missing check for count parameter in DynamicArray.FindIndex
- Fixed incorrect format of default shadow texture
- Fixed render graph incorrectly handling rendering to array slices and mipmaps other than 0 in some cases.
- Fixed an issue where Lens Flare was not rendering properly in OpenGLES3.
- Fixed missing STP shaders & visual artifacts when targeting GLCore renderer.
- Render Graph Viewer - Improved UI lock when searching on side panels.
- Render Graph Viewer - Padding corrected on burger menu on the side panels.
- Fixed the crash happening when APV tried to stream in block data.
- Fixed VRS initialization errors. Now init may fail explicitly and must be checked by the user code.
- Fixed Rendering Debugger - Silent crash when selecting a Volume component with public RTHandles.
- Fixed Transient Resources support in Native RenderPass Render Graph (used in URP).
- Fixed an issue where the Adaptive Probe Volume (APV) streaming buffer could leak into the current pool when chunk sizes were mismatched, leading to memory contamination and potential crashes.
- Fixed an issue in the Render Graph Viewer where text overlapped after performing a search in the Pass List.
- Fixed an issue in pass culling where resources were not deallocated if the last pass using them was culled.
- Fixed `RenderGraphObjectPool` and `GetTempMaterialPropertyBlock()` usage in URP RenderGraph.
- Fixed an issue in URP Render Graph where, in an async compute edge case, it was waiting for a resource that was not written by any pass.
- Added messaging to the Rendering Debugger UI to make it clearer that GPU Resident Drawer settings do not work if GPU Resident Drawer is not enabled.
- GPU Resident Drawer: Changed BatchRendererGroup variants was not reinitializing the system.
- Improved the compiler logic that detects if the current render target is being used outside the current native render pass (e.g., when the pass is broken up by an unsafe pass), and determines the store action for this case. The fix now ensures that the `StoreAndResolve` action is used when the resource is read by an Unsafe Pass.
- Rendering Debugger - Keep the correct selected panel when entering and exiting from playmode.
- Removed "depth only surface" warning message appearing when using Game View Gizmos in URP RG.
- Render Graph Viewer: Fixed missing min height when resizing side panel vertical splitter.
- Render Graph Viewer: Fixed possible NullReferenceException when opening the project.
- Render Graph Viewer: Fixed side panel splitter state after returning from empty pass/resource filter.
- Render Graph Viewer: Fixed long resource name clipping issues in side panel.
- Render Graph Viewer: Fixed tooltip size bug and restructure tooltip messages.
- Fixed memory usage regression causing up to 150MB higher memory usage in URP player builds.
- Added missing user-facing text when inspecting volume profile when render pipeline has not been properly initialized yet.
- Game view background turn yellow after enable render graph.
- Fixed light.useViewFrustumForShadowCasterCull previously being ignored for shadow cascades. light.useViewFrustumForShadowCasterCull now works as expected.
- Fixed an exception thrown when Render Graph pass was missing its renderFunc but tried to compute its hash value.
- Fixed Render Graph Compiler logic bug where UnsafePass using MSAA texture could result in missing resolve surface errors.
- Fixed incorrect default source texture name for Render Graph blit util function.
- Fixed NullReferenceException when jumping to pass code from Render Graph Viewer.
- Fixed _FOVEATED_RENDERING_NON_UNIFORM_RASTER shader compilation errors.
- Fixed a null reference exception on the Graphics Settings stripper.
- Avoid that the same volume can be registered more than 1 time in the VolumeManager.
- Fixed crash caused by indirect argument buffer being one item too small.
- [GLES3] Fixed an issue where Blitter.GetBlitMaterial(TextureDimension.Tex2DArray) returns null.
- Fixed alignment of the columns on DebugUI.Foldouts.
- Fixed BlitTexture(RenderTargetIdentifier) to be affected by PostProcessing.
- Fixed errors that could happen when interacting with the Default Volume Profile context menu in Project Settings > Graphics.
- Fixed a numerical error of ComputeEdgeFactor(V1, V2) when two vectors are colinear.
- Fixed potential data corruption due to incorrect native render pass store action in NRP compiler.
- Added stencil flag to read-only depth logic in NRP compiler to avoid unintentional usage of depth read and stencil write states on some APIs.
- Added more error checking to `RenderGraph.ImportTexture` to prevent importing RenderTextures that have both color and depth.
An exception will now be thrown in this case.
- Fixed an issue when using multiple AddBlitPass would binds the _BlitTexture wrongly.
- Modified TextureDesc so it can now use GraphicsFormat to set the depthStencil format (TextureDesc.format). The TextureDesc.depthBufferBits and TextureDesc.colorFormat fields are now properties that call GraphicsFormatUtilities functions for backwards compatibility. The descriptor now unambiguously describes a single resource, either color or depth. Therefore, TextureHandle clearly represents a single resource.
- Modified RTHandle allocators so they can now use GraphicsFormat to set the depthStencil format (TextureDesc.format). The allocators take a single format for either color or depth stencil to avoid incorrectly creating depth instead of color or vice versa.
- Fixed a crash on DX12 due to invalid subpass flags passed by native render pass compiler.
- Fixed an issue where Lens Flare was not rendering properly in OpenGLES3.
- Fixed render graph incorrectly handling rendering to array slices and mipmaps other than 0 in some cases.
- Render Graph Viewer - Improved UI lock when searching on side panels.
- Render Graph Viewer - Padding corrected on burger menu on the side panels.
- Fixed missing STP shaders & visual artifacts when targeting GLCore renderer
- Rendering Debugger - Silent crash when selecting a Volume component with public RTHandles.
- Fixed a crash on leaking streaming scratch buffer differently sized into the current pool.

## [17.0.2] - 2024-04-02

This version is compatible with Unity 6000.0.0b15.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,7 @@ public sealed class DebugStateInt : DebugState<int> { }
/// <summary>
/// Object Debug State.
/// </summary>
[Serializable, DebugState(typeof(DebugUI.ObjectPopupField))]
[Serializable, DebugState(typeof(DebugUI.ObjectPopupField), typeof(DebugUI.CameraSelector))]
public sealed class DebugStateObject : DebugState<UnityEngine.Object>
{
/// <summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -292,14 +292,40 @@ protected override UnityEngine.Object DoGUI(Rect rect, GUIContent label, DebugUI
rect = EditorGUI.PrefixLabel(rect, label);

var elements = field.getObjects();
if (elements?.Any() ?? false)
var count = elements != null ? elements.Count() : -1;
if (count > 0) // Check if elements are not null and have any items
{
var elementsArrayNames = elements.Select(e => e.name).ToArray();
var elementsArrayIndices = Enumerable.Range(0, elementsArrayNames.Length).ToArray();
var selectedIndex = selectedValue != null ? Array.IndexOf(elementsArrayNames, selectedValue.name) : 0;
var newSelectedIndex = EditorGUI.IntPopup(rect, selectedIndex, elementsArrayNames, elementsArrayIndices);
// Initialize arrays for names and indices, with +1 for the "None" option
string[] elementsArrayNames = new string[count + 1]; // +1 for the "None" option
int[] elementsArrayIndices = new int[elementsArrayNames.Length]; // Same size as elementsArrayNames

// Add the "None" option at the beginning
elementsArrayNames[0] = "None";
elementsArrayIndices[0] = 0; // "None" corresponds to index 0

// Populate the rest of the arrays with the element names and indices
int index = 1;
foreach (var element in elements)
{
elementsArrayNames[index] = element.name;
elementsArrayIndices[index] = index; // Set the index to match the element's position
index++;
}

// Determine the selected index
int selectedIndex = selectedValue != null
? Array.IndexOf(elementsArrayNames, selectedValue.name)
: 0;

// Show the dropdown and get the new selected index
int newSelectedIndex = EditorGUI.IntPopup(rect, selectedIndex, elementsArrayNames, elementsArrayIndices);

// If the selected index changed, update selectedValue
if (selectedIndex != newSelectedIndex)
selectedValue = elements.ElementAt(newSelectedIndex);
{
// If "None" is selected, set selectedValue to null
selectedValue = newSelectedIndex == 0 ? null : elements.ElementAt(newSelectedIndex - 1);
}
}
else
{
Expand Down Expand Up @@ -476,7 +502,7 @@ public override void Begin(DebugUI.Widget widget, DebugState state)
}

bool previousValue = (bool)w.GetValue();
bool value = CoreEditorUtils.DrawHeaderFoldout(title, previousValue, isTitleHeader: w.isHeader, customMenuContextAction: fillContextMenuAction);
bool value = CoreEditorUtils.DrawHeaderFoldout(title, previousValue, isTitleHeader: w.isHeader, customMenuContextAction: fillContextMenuAction, documentationURL: w.documentationUrl);
if (previousValue != value)
Apply(w, s, value);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -262,6 +262,32 @@ void UpdateWidgetStates()
UpdateWidgetStates(panel);
}

DebugState GetOrCreateDebugStateForValueField(DebugUI.Widget widget)
{
// Skip runtime & readonly only items
if (widget.isInactiveInEditor)
return null;

if (widget is not DebugUI.IValueField valueField)
return null;

string guid = widget.queryPath;
if (!m_WidgetStates.TryGetValue(guid, out var state) || state == null)
{
var widgetType = widget.GetType();
if (s_WidgetStateMap.TryGetValue(widgetType, out Type stateType))
{
Assert.IsNotNull(stateType);
state = (DebugState)CreateInstance(stateType);
state.queryPath = guid;
state.SetValue(valueField.GetValue(), valueField);
m_WidgetStates[guid] = state;
}
}

return state;
}

void UpdateWidgetStates(DebugUI.IContainer container)
{
// Skip runtime only containers, we won't draw them so no need to serialize them either
Expand All @@ -273,26 +299,10 @@ void UpdateWidgetStates(DebugUI.IContainer container)
{
// Skip non-serializable widgets but still traverse them in case one of their
// children needs serialization support
if (widget is DebugUI.IValueField valueField)
{
// Skip runtime & readonly only items
if (widget.isInactiveInEditor)
return;
var state = GetOrCreateDebugStateForValueField(widget);

string guid = widget.queryPath;
if (!m_WidgetStates.TryGetValue(guid, out var state) || state == null)
{
var widgetType = widget.GetType();
if (s_WidgetStateMap.TryGetValue(widgetType, out Type stateType))
{
Assert.IsNotNull(stateType);
var inst = (DebugState)CreateInstance(stateType);
inst.queryPath = guid;
inst.SetValue(valueField.GetValue(), valueField);
m_WidgetStates[guid] = inst;
}
}
}
if (state != null)
continue;

// Recurse if the widget is a container
if (widget is DebugUI.IContainer containerField)
Expand All @@ -317,7 +327,7 @@ public void ApplyStates(bool forceApplyAll = false)

void ApplyState(string queryPath, DebugState state)
{
if (!(DebugManager.instance.GetItem(queryPath) is DebugUI.IValueField widget))
if (state == null || !(DebugManager.instance.GetItem(queryPath) is DebugUI.IValueField widget))
return;

widget.SetValue(state.GetValue());
Expand Down Expand Up @@ -544,17 +554,26 @@ void OnWidgetGUI(DebugUI.Widget widget)
if (widget.isInactiveInEditor || widget.isHidden)
return;

// State will be null for stateless widget
m_WidgetStates.TryGetValue(widget.queryPath, out DebugState state);

GUILayout.Space(4);

if (!s_WidgetDrawerMap.TryGetValue(widget.GetType(), out DebugUIDrawer drawer))
{
EditorGUILayout.LabelField("Drawer not found (" + widget.GetType() + ").");
foreach (var pair in s_WidgetDrawerMap)
{
if (pair.Key.IsAssignableFrom(widget.GetType()))
{
drawer = pair.Value;
break;
}
}
}

if (drawer == null)
EditorGUILayout.LabelField("Drawer not found (" + widget.GetType() + ").");
else
{
var state = GetOrCreateDebugStateForValueField(widget);

drawer.Begin(widget, state);

if (drawer.OnGUI(widget, state))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -151,13 +151,6 @@ public override bool Step()
context.Dispose();
}

// Fixup lighting for probes part of bricks with different subdivision levels
// When baking reflection probes, we want to skip this step
if (m_BakingBatch != null)
{
FixSeams(s_BakeData.positionRemap, positions, irradiance, validity, renderingLayerMasks);
}

return true;
}

Expand Down
Loading