Skip to content
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

Internal/master #8121

Merged
merged 82 commits into from
Jan 22, 2025
Merged

Internal/master #8121

merged 82 commits into from
Jan 22, 2025

Conversation

UnityAljosha
Copy link
Collaborator

Please read the Contributing guide before making a PR.

Checklist for PR maker

  • Have you added a backport label (if needed)? For example, the need-backport-* label. After you backport the PR, the label changes to backported-*.
  • Have you updated the changelog? Each package has a CHANGELOG.md file.
  • Have you updated or added the documentation for your PR? When you add a new feature, change a property name, or change the behavior of a feature, it's best practice to include related documentation changes in the same PR. If you do add documentation, make sure to add the relevant Graphics Docs team member as a reviewer of the PR. If you are not sure which person to add, see the Docs team contacts sheet.
  • Have you added a graphic test for your PR (if needed)? When you add a new feature, or discover a bug that tests don't cover, please add a graphic test.

Purpose of this PR

Why is this PR needed, what hard problem is it solving/fixing?


Testing status

Describe what manual/automated tests were performed for this PR


Comments to reviewers

Notes for the reviewers you have assigned.

RSlysz and others added 30 commits December 18, 2024 19:52
Update Documentation for all public IRenderPipelineGraphicsSettings and IRenderPipelineResources in CoreRP, URP and HDRP package with example and more context.
Add detailed documentation to the com.unity.render-pipelines.core/Runtime/Utilities/Blitter.cs class.
Improve path tracing docs. Here are the relevant scores before this PR:
-2 for no remarks (required for this API type) on PathTracing()
-3 for no related links (required for this API type) on PathTracing
-6 for no code samples (required for this API type) on PathTracing
-6 for no remarks (required for this API type) on PathTracing

I have ignored this one:
-1 for using the value tag (not recommended; use the remarks tag instead) each for customSeed, enable, layerMask, maximumDepth, maximumIntensity, maximumSamples, minimumDepth, seedMode, skyImportanceSampling, tilingParameters

as there's no no need to add additional remarks in simple parameters such as enable.
Our C# scripts use deprecated enums (MaterialProperty.PropType and MaterialProperty.PropFlags) that have been deprecated for a while now. We'd like to make these obsolete later on.
This PR changes the usage of the enums mentioned above to the newer counterparts. The new counterparts are 1:1 with the older enums.
This is a follow-up PR to [6.1 URP Deferred+](https://github.cds.internal.unity3d.com/unity/unity/pull/57028)

This PR contains 4 minor changes:

**1. Added the `_CLUSTER_LIGHT_LOOP` multi_compile to URP VFX Graph GBuffer pass:**
- [Fix] `_CLUSTER_LIGHT_LOOP` in GBuffer pass is required for correct reflection probe sampling with the new Deferred+ rendering path.

**2. Added a new Deferred+ test for the URP VFX graphics test project:**
- [Test] New test `103_LitDeferredPlus` have been added to `VisualEffectsGraph_URP` project.
- [Test] New reference images have been generated for `103_LitDeferredPlus`

**3. Improve backwards compatibility for the deprecated `_FORWARD_PLUS` keyword and associated macros:**
- [Fix] Fixed missing backwards compatible macro definition for deprecated macro `USE_FORWARD_PLUS` 
- [Misc.] Added new comments in `ForwardPlusKeyword.deprecated.hlsl` to help users upgrade.
- [Misc.] Minor clean-up of shader lib files related to `_CLUSTER_LIGHT_LOOP` keyword & backwards compatibility.

**4. Corrected an issue causing shader compilation errors with specific settings:**
- [Fix] Fixed an incorrectly named variable in `ShaderPassDecal.hlsl` which would cause shader errors if building a project with an SG Decal material and Deferred/Deferred+ rendering path.
This PR fixes a discrepancy in URP between using GPU Resident Drawer when disabling shadow casting of certain objects for certain lights. In URP this can be done with a combination of game object layer on the shadow casting object and correct configuration of the light's Culling Mask to exclude that layer. Doing this enables correct lighting of that object from the light, without that object being considered as a shadow caster.

This combination wasn't working with GPU Resident Drawer because we were not taking into account the light's culling mask in the BatchRendererGroup's culling configuration before being sent to the OnPerformCulling, in the case of shadow caster culling.

As a side note, disabling shadow casting while retaining lighting on objects for specific lights can also be done with the Custom Shadow Layer functionality of both URP and HDRP. Consequently, this PR also modified the BatchRendererGroup_URP/MacroBatcher and BatchRendererGroup_HDRP/MacroBatcher graphics tests to check both techniques, using the first technique for URP and the Custom Shadow Layer technique for HDRP.
This pull request introduces the first iteration in a major refresh of the Graphics Test Framework. The purpose of the changes is to create a modular, extensible base upon which to create a flexible test framework. 

The Graphics Test Framework has three core pseudo-modules: a graphics test builder, a runtime graphics test creator and the ImageAssert class. The first two have been refactored in this PR, with the third only receiving minor modifications.

Overall, the code has been moved around and breaking changes have been made. Several classes that existed before are now no more. **We have not yet updated any SRP test projects to use the new simplified workflow.**

Here is a summary of the changes. Please see the added / edited documentation for a full rundown of how the new setup works.


### Major Changes

1. Removed package dependencies which were not necessary / were slowing things down.
2. Now no longer able to run tests with the 'EditorBuildSettings' context. Need to explicitly tell the framework which scenes to look for.
3. Core APIs have been rewritten to be A LOT more concise.
4. Reference image loading and unloading is now possible (and doesn't happen until it's needed)
5. Asset bundle loading has been refactored and will continue to be so.

### SetupGraphicsTestCases becomes GraphicsTestBuilder

We have replaced the monolithic class `SetupGraphicsTestCases` and its even more monolithic `Setup` function with the `GraphicsTestBuilder` module and class.

The `GraphicsTestBuilder` is now an extensible class which can be modified using custom settings, custom build steps and/or entire custom build pipelines. Each of these allows the user an increasing level of control over the graphics test build process, from the location of reference image files, to custom build steps to be run as soon as we have a list of graphics test cases to build for.

Note that this is a first iteration of this functionality and it is yet to be fully integrated with some of the new features below. Regardless, it is a big step in modularizing the builder.

By default, the `GraphicsTestBuilder` class does not need to be called by the user. The `GraphicsTestBuildSettings` serializable object (which will be created and saved to the `Resources` folder upon first build if it does not exist) defines a boolean property `AutoBuildTestCases` which is true by default. This will cause test cases to be built upon running tests.

Of course, a user can disable this and control the entire build process and timing themselves.

### Scriptable Graphics Test Builder

We have added the abstract class `GraphicsPrebuildSetupAttribute`. Inheriting from this class and adding this attribute to a test fixture (or test) when it is connected to a `GraphicsTest` will cause the contained code (under the Setup method) to be run right before building Graphics Tests. Only one of each type of setup will be run as it's assumed it will run some global setup code.

### Graphics Test Case Collector

We have added a class which listens to events of `GraphicsTestCase` objects being created by the test framework. This allows us to access information about the test cases and the attached pre-build attributes. This feature is not being used to its full potential yet, but will allow us to fully abstract what a GraphicsTestCase is and allow us to decouple them from 'scenes' and the build settings in future PRs.

### CLI Test Build Filtering

We have enabled a bare-bones test build filtering through the 'testFilter' command-line flag. Until now it was not possible to control which tests are build (and thus limit build times) but now it is! You're welcome. There is no support for wild-cards yet, but it is in the works to do so.

---

### UseGraphicsTestCasesAttribute and CodeBasedGraphicsTestAttribute become GraphicsTestAttribute

The `[GraphicsTest]` attribute, a much shorter version of the existing attributes, combines the powers of its two predecessors in one. This attribute is the only markup that one needs to run GraphicsTests. 

By default, `[GraphicsTest]` will create a test with the 'DefaultGraphicsTestCaseSource` which will assume that you're just writing a normal unit test and just need access to a 'GraphicsTestCase' parameter (for that automatic reference image management perhaps?)

Otherwise, a user may extend the GraphicsTestCaseSource class to create a custom provider / builder of GraphicsTestCase objects (which will then happily be built into your tests as the first parameter!) We have included the classic `SceneGraphicsTestCaseSource` and its own attribute `[SceneGraphicsTest]` as it's the most common use case at the moment, but rest assured that you can write your own if you'd like to and reference them in your tests!

`GraphicsTest` and its descendants are also compatible with parametric tests (using the `ValueSource` attribute or the `GraphicsTestCaseAttribute` or `GraphicsTestCaseSourceAttribute`) and compatible with both `Test` and `UnityTest`. This will allow for much faster, flexible less duplicated image comparison tests.

---

### Reference Image

We have introduced a new class called `ReferenceImage` to encapsulate the concept of a `ReferenceImage` which has up to this point been just bare Texture2Ds. This feature is already being used in the framework but due to the scoping down of this PR to not include API changes to ImageAssert, it has not completely replaced the current implementation.


---

### IgnoreGraphicsTest Attribute

The attribute is meant to be used in a similar way as the [IgnoreAttribute], but with the added utility of being able to ignore specific patterns of GraphicsTestCases.

The first argument is a regular expression. The second argument is the reason for ignoring the test. The following (optional) arguments are arrays of the enums that make up GraphicsTestPlatform. Due to the limitations of attributes, this was the only way to implement this cleanly and I'm pretty satisfied.

For example, to ignore test 1234-Something-something on Linux Vulkan you'd write:

[IgnoreGraphicsTest("1234", "Reason", new RuntimePlatform[] { RuntimePlatform.LinuxEditor, RuntimePlatform.LinuxStandalone }, new GraphicsDeviceType[] { GraphicsDeviceType.Vulkan })]

Any omitted values are assumed to be any value. Therefore the values provided define the superset of platforms that the ignore matches. The platform arguments can be entirely omitted to permit matching any platform (thereby ignoring the test universally).

The attribute can only work at the test level at the moment, not at the test fixture level as the documentation may say.
…ut RP creation

This issue appeared after https://github.cds.internal.unity3d.com/unity/unity/pull/54848 PR landed. It prevented RP creation and rendering from scene loading in the middle of the Building process. 

Now whenever we build we may have a situation when there's no current pipeline as no one called rendering. It should be okay but some of the API called GetRenderer and didn't dispose them after. To prevent this we check if URP is not ready yet and Destroy all existing Renderers.
Minor fixes from graphics docs feedback tickets.

Jira tickets:

- https://jira.unity3d.com/browse/DOCG-6327 - fix link to DOTS instancing docs
- https://jira.unity3d.com/browse/DOCG-6328 - remove link to missing sample
- https://jira.unity3d.com/browse/DOCG-6294 - remove note from min and max
- https://jira.unity3d.com/browse/DOCG-6289 - remove incorrect use of 'naming conventions'
- https://jira.unity3d.com/browse/DOCG-5082 - add link to RenderingLayerMask API
- https://jira.unity3d.com/browse/DOCG-5803 - add link to depth texture information
Fixes more issues with post-processing, viewports and alpha.
Fix issue introduced at https://github.cds.internal.unity3d.com/unity/unity/pull/43339

The problematic behavior is Invalidate lazily invoked from ParseCodeIfNeeded which can be triggered in BuildExpression.
It leads to the subgraph always being considered as modified and dirty the parent asset.

To fix this issue while keeping the same behaviour, I plugged the invalidation only on the "OnUnknownChange" event which occurs when a model is revived. https://github.cds.internal.unity3d.com/unity/unity/blob/afe0faddbdf6e615eaff67dc69b572c98879622a/Packages/com.unity.visualeffectgraph/Editor/Models/VFXGraph.cs#L846

❗  Update at https://github.cds.internal.unity3d.com/unity/unity/pull/55326/commits/bac509f529d7ea048da361c6651d0cf81094e72e : No more invalidate in OnUnknownChange either, only updating cache data to handle correctly function listing with Undo/Redo

https://github.cds.internal.unity3d.com/unity/unity/assets/42/07f74828-f44e-4c44-88fa-0dc0d58ff586

N.B.: There is an odd behavior with Undo/Redo & HLSLEditor but it isn't related to this PR, see this repro

https://github.cds.internal.unity3d.com/unity/unity/assets/42/90c20ce5-2602-4d83-b69e-322bee1536c1
… to ensure that the pixel has actually moved.

Jira : [UUM-84459](https://jira.unity3d.com/browse/UUM-84459)

Problem:
When the Screen Space Global Illumination is in Ray Tracing mode, there is an issue where the "Receiver Motion Rejection" option is enabled. It discards history when skinned meshes have not actually moved.

Cause:
In the ValidateHistory kernel of TemporalFilter.compute, the HISTORYREJECTIONFLAGS_MOTION flag is determined solely based on the stencilValue. For skinned meshes, the stencilValue is always updated in the ObjectsMotionVector pass, which causes the HISTORYREJECTIONFLAGS_MOTION flag to be set even if the pixels have not moved.

Solution:
Instead of checking only the stencilValue, modify the process to check the motion vector (velocity) of the pixel and set the flag only when this value is not float2(0, 0).
![image](https://github.cds.internal.unity3d.com/unity/unity/assets/3279/c0cb4a85-bb34-4c82-b7c4-ba630b9f8660)
As part of docs week, I am improving the docs for Volume Framework related classes.
This fixes a tiny oversight from this PR https://github.cds.internal.unity3d.com/unity/unity/pull/49927 causing one of the files produced by APV to be read-only in some cases.
…rial preview inspector

Fixes: [UUM-84064](https://jira.unity3d.com/browse/UUM-84064), by binding an empty spherical harmonics buffer when a preview camera is detected.
…with ShadowMasks (UUM-83459)

* Fixes UUM-83459.
* Improves the Lighting test project (See Comments to reviewers)
… emissive

This PR fixes an issue with the Particle Lit Decal Output in HDRP and in URP when using the DBuffer decal technique. DBuffer decals requires an additional pass for rendering emissive, and this pass was not generated for particles relying only on the color attribute for emissiveness.
…oing SSGI

Sample APV to get proper reflection probe normalization when doing SSGI.
Implements https://jira.unity3d.com/browse/UUM-88018.
When the shadow mask mode was not used, we were still saving some 0 byte files, and this was creating some issues as the ticket descibes.
https://jira.unity3d.com/browse/UUM-85411
Fix [UUM-86162](https://jira.unity3d.com/browse/UUM-86162) where information used to display helpbox for warning about miss configuration are not initialized correctly.

The root of this issue is that the HDCamera structure is only correctly initialized for rendering. So if the camera do not render, there is missing informations such as FrameSettings. Also the way miss configuration was deduced is optimised here by actually redoing all the steps of the aggregation to understand at which point the miss configuration disable it. This also fix case of negative dependencies that was not covered.

Along with this, there was a sibling method checking both volume and frame settings. I separated it to only check volume and proceed in a similar way. Though in case of volume, it still rely on HDCamera. The improvement is that we do not try to create HDCamera that are never updated and can lead to issue. Now it skip if never created from runtime part.

Visual display is still the exact same for user and this can be slightly more costly (but not that much) as we recreate the frame settings aggregation.
…me parameters of the Volume Component.

The Volume Debugger page was using reflection to obtain the volume parameters from the selected volume component in the stack. This code as was copy pasted from VolumeComponent and Volume Component editor was not taking into account the logic of .

- Getting public fields without NonSerialize attribute
- Getting private fields with SerializeField.

The selected component of the jira, had an RTHandle that was doing an infinte loop, that was making a crash directly in mono.

I've gotten rid of all this logic that was copy pasted, and instead I am using the Volume Parameter list, but I've added debug info to it.

Making that, it allowed me to simplify the table generation. Having a single code that

1- Gets the chain of volumes
2- Generates the rows of the table
3- For each volume in the interpolation chain, we create a column.

The code now is generic, instead of having granular cases for defaults, customs, etc.

I've improved and simplified the code, and I've added alternate colors to the table.

![image](https://github.cds.internal.unity3d.com/unity/unity/assets/3279/67b2aceb-dd18-40a0-8941-af7f7d4c7b28)

Also, the values that are not interpolated show now "-", making it easier to see where the values are overriden.
…h a shader file

Jira: UUM-90776

Steps to reproduce:
1. Import attached package
2. Observe error
![](https://jira.unity3d.com/secure/attachment/1602509/1602509_image-2024-12-09-07-10-48-732.png)

[repro package](https://jira.unity3d.com/secure/attachment/1602508/Repro_CustomHLSL_Include.unitypackage)

This issue is about multiple output port with CustomHLSL.

It's exactly the same issue than [UUM-83676](https://jira.unity3d.com/browse/UUM-83676) but the previous fix did not work in the case of an external HLSL file.
Update lens flare documentation
URP 2D shader `Shadow2DUnshadowGeometry` enables Blend and specifies `ZERO` for Destination Blend Factor, and `SrcColor` for Source Blend Factor. Also, the output of this shader is half4(1,1,1,1).

This means that the output of this blend operation is:

     srcColor * srcFactor + dstColor * dstFactor = (1,1,1,1) . (1,1,1,1) + ZERO = (1,1,1,1)

...which means the Blend operation is not needed.

On some platforms for some render target formats, blend throughput is slower than "fill throughput" (rendering the pixels); so to improve performance it is better to avoid Blend when that is possible like in this case.

Jira ticket: [PLATGRAPH-4108](https://jira.unity3d.com/browse/PLATGRAPH-4108)
This PR fixes an issue with the 2D renderers getting information about the SRP and the status of the Shaders under SRP. This caused an instability in the 080_TilemapRenderer_GPUSkinning URP test. The test was enabled again to validate this issue.
belgaard and others added 26 commits January 14, 2025 22:46
The purpose of this PR is to,
 - ensure that the meta pass tests are run in CI (QV, actually), and
 - fix any issues that currently cause the tests to fail
Fixes https://jira.unity3d.com/browse/UUM-83996, where right-clicking on the Blackboard or Inspector would fall through to the graph view context menu.

The guidance from the [PR that introduced the behavior](https://github.cds.internal.unity3d.com/unity/unity/pull/14326) is:
> to stop ContextualMenuPopulateEvent with a prepopulated ContextualMenu from showing up, users can no longer call PreventDefault, and calling StopPropagation won't prevent the menu from showing up; however, users call call menu.Clear() and then StopImmediatePropagation to achieve the same result

The subwindows don't receive `ContextualMenuPopulateEvent` though, so I added a context menu manipulator that doesn't add anything in the first place.
HDRP APV tests cause the whole project to fail on MacOS. This is one of the reasons why HDRP isn't tested on MacOS in QV.

This PR stops these tests from running bakes at test-time, which fixes the project-wide failures on MacOS. But then the 2120 test starts failing on Windows. This is because of outdated test images. I will disable this test for now, since disabling one test is better than not testing at all on MacOS.

To summarize, this PR brings us one step closer to being able to run HDRP tests on MacOS in QV. To achieve this, it disables one test. Once MacOS is in QV, we will work on re-enabling this test immediately.
This is to fix some warnings when using the multiplayer VR template and creating a build. Some shaders generated via shadergraph were doing an implicit truncation of values (specifically the 2 UV sets passed to the UnityMetaVertexPosition function). This has been fixed.

Jira: https://jira.unity3d.com/browse/UUM-84269
…Bugs

This PR converts the first three projects: HDRP_Tests, HDRP_RuntimeTests, HDRP_DXR_Tests to the new GraphicsTestFramework 9.0

This includes:
- Converting TestFiltersAssets to IgnoreGraphicsTest attributes
- Now using an explicit path (using Regex) to find the scenes to use. This is done per test.
- Moving the actual test method out of the com.unity.hdrp.tests package and into the project (to separate setup, ignores and other markup between projects)
- Other small tweaks

As part of this, many bugs in the new test framework were found and fixed:
- Fixed overwrites in the EditorBuildSettings scenes which caused scenes to be rewritten out of order. Now, if scenes are placed in the EditorBuildSettings in a specific order,  the order is maintained. The rest of the scenes, if any, are appended after them.
- Fixed several issues in the BakeLighting attribute, including filtering out scenes based on the filtered tests, fixed baking APVs correctly.
- Fixed the TestFiltersEditorWindow not correctly displaying the converted attributes for some reason.
- Reverted the ShaderStripper functionality to its 8.9.1 capacities. No meaningful changes had been made in 9.0 yet, and it was tough to reason about whether it was functioning correctly.
- Fixed IgnoreGraphicsTest attribute not correctly filtering scenes out of the build
- Fixed documentation for isInclusive
- Fixed inclusive test filters ignoring too many test cases
- Removed the API upgrader functionality that confused the package verification and made the package jobs fail.
- Added the path of the bundle asset path to the load message for reference images.
- Added the ability to add a command-line argument to enable GRAPHICS_TEST_FRAMEWORK_DEBUG mode
- Added regex support for SceneGraphicsTest scene path definitions
… them on Graphics Settings.

The Rendering Debugger Prefabs are is using uGUI, and if a project is using UITK, the code and dependencies from uGUI. get pulled into our builds because of that reference.

Also in retail build size, the References for the Rendering Debugger are included. With this change, those are not.

UUM-90292
The issue specifically happens when instanced quad option is selected for a non infinite water surface. Instead of flooring the extent value, ceiling it fixes the issue.

Bug: https://jira.unity3d.com/browse/UUM-86738
Port: https://jira.unity3d.com/browse/UUM-92909
Following up on the attempted work made to run graphics tests without the developer build watermark. PR https://github.cds.internal.unity3d.com/unity/unity/pull/58147 introduced a boolean variable showDeveloperWatermark that when set to false will not add the watermark to the reference image. 
This PR sets the variable to false for the URP projects, except PS4 platform, that needs more investigation: https://unity.slack.com/archives/C06TQL4KX/p1736844666846889 
https://jira.unity3d.com/browse/UUM-92944

JIRA ticket: https://jira.unity3d.com/browse/ANT-2597
Add documentation for the barn door properties of the area light
Disable spurious HLSL warnings in case of VFX, this issue is due to this snippet:
https://github.cds.internal.unity3d.com/unity/unity/blob/a3e3f40a33dbe75b7916d318e48968c9d94f71af/Packages/com.unity.render-pipelines.high-definition/Runtime/RenderPipeline/ShaderPass/VertMesh.hlsl#L156

The early returns isn't correctly interpreted while the ilassembly is actually correct.
…ries

Disabling 400_OcclusionCulling_RenderScale test on XboxOne and XboxSeries since it's unstable, Jira ticket: https://jira.unity3d.com/browse/UUM-93347
JIRA: https://jira.unity3d.com/browse/UUM-83236

There is an issue with overlapping text after doing a search in the Pass List.

Before Fix
![image](https://github.cds.internal.unity3d.com/unity/unity/assets/761/a1a631ef-a0a3-4051-8c7b-845b2fde006f)
After Fix
![image](https://github.cds.internal.unity3d.com/unity/unity/assets/761/acb15c7d-ad96-4cd2-b0be-6c254bc431cb)

The issue is caused by removing all tags (especially the newline tag `<br>`) when removing search highlights.

Original text
> \<b>Copy Color\</b> (Raster Render Pass)\<br>

Text with tag deleted
> Copy Color (Raster Render Pass)

Changed the logic to only delete the highlighting tags, rather than clearing all tags. Also updated the logic to ensure that any string matches inside tags such as `<b></b>` or `<i></i>` are ignored, which would also break formatting. Added unit tests to cover the string search logic.
…nchronous check

Fix [UUM-85253](https://jira.unity3d.com/browse/UUM-85253). Due to the delayed response from package management, the status displayed between the fix and the checking of the fix was the default "fail". So it was really strange. And this was enforced even by the unexpectedly long delay for PackageManager to answer.

To solve this, this PR introduce a "pending" state that is used while we are waiting for the answer instead of assuming it is OK or KO.

![Unity_cYtolKRenN](https://github.cds.internal.unity3d.com/unity/unity/assets/465/763ae0df-6708-4ba2-8888-c3bedb06cd0f)
(wait it is a little long to get answer from PackageManager)
…e explicite

Fix [UUM-91000](https://jira.unity3d.com/browse/UUM-91000). This is indeed a regression but the previously allowed of being able to call this out of URP lifetime was a mistake. One cannot alter the volume for the rendering before the URP pipeline is created.

So the fix for this is mainly to clarify the error message and encouraging user to use the pipeline creation event if they need to.

Before this PR, the error was `NullReferenceException: Object reference not set to an instance of an object` when calling Universal.CameraExtensions.UpdateVolumeStack before URP is created. This happens by calling it in a Start of a Script and entering play mode.

New Error message:
`UpdateVolumeStack must not be called before VolumeManager.instance.Initialize. If you tries calling this from Awake or Start, try instead to use the RenderPipelineManager.activeRenderPipelineCreated callback to be sure your render pipeline is fully initialized before calling this`
Fix minor missing capitalization, the issue went back to us even if we rejected it.
🎁  Add missing namespace for SamplesLinkPackageManagerExtension
UUM-69552 has been fixed, renable test relative to this (corner case) scenario.
The padding is different for each tab in the Lighting window due to differences in how the expander GUI is drawn.

The GUI has been changed to have the same padding.
Fixes https://jira.unity3d.com/browse/UUM-91900

Releases m_ShaderVariablesBuffer ConstantBuffer in Cleanup.
…onal Shadows are disabled (UUM-93148)

Fixes an issue when Real-Time Additional Light Shadows are disabled but using baked shadows.
The issue is that `_AdditionalShadowParams` is not included nor updated when real-time shadows are disabled.
This PR reverts the behaviour to what it was before. A follow-up PR may come to add the feature for baked shadows only.
Following up on the attempted work made to run graphics tests without the developer build watermark. PR https://github.cds.internal.unity3d.com/unity/unity/pull/58147 introduced a boolean variable showDeveloperWatermark that when set to false will not add the watermark to the reference image.
This PR sets the variable to false for the HDRP projects, and removes the exception of the PS4 platform for URP, that was fixed: https://jira.unity3d.com/browse/UUM-92944

JIRA ticket: https://jira.unity3d.com/browse/ANT-2597
…shadowmask

This [PR](https://github.cds.internal.unity3d.com/unity/unity/pull/53502) uses the camera-based blending weight used in URP. Blending weight means the ratio of shadowmask. HDRP has a border value for each cascade, and the blending weight is calculated based on the cascade sphere position.

The blending weight is visualized as follows.

* HDRP
![image](https://github.cds.internal.unity3d.com/unity/unity/assets/1641/c79d0a0e-2172-4422-9d83-aa4610103d01)

* URP
![image](https://github.cds.internal.unity3d.com/unity/unity/assets/1641/574c8a4b-60d3-4353-8ba0-c1f7e561f0d2)

The blending weight also affects the sampled shadow value.

The artifact issue occurred when calculating shadow attenuation by using the blending weight based on the camera position and the shadow value based on the cascade sphere position together.

The blending weight was reverted to be calculated based on the cascade sphere. Instead, the blending weight based on the camera position was used to replace the area where the shadow value could not be obtained with a shadow mask.

The problem of not obtaining the shadow value is fundamentally a problem with culling. It occurs when the camera position is fixed and the camera looks in a specific direction near the max shadow distance.
…esolution

Fix for [UUM-93163](https://jira.unity3d.com/browse/UUM-93163).
When using eye texture dynamic resolution it was reported that the splash screen looked distorted if the scale is smaller than 1. The reason for it is because the camera scene doesn't have the URP Dynamic Resolution flag enabled, but the eye texture dynamic resolution uses XRSystem flag to be enabled and the `cameraData.allowdsDynamicResolution` prevent the eye texture to be scaled properly.

The remove of the flag fixes the issue
@UnityAljosha UnityAljosha requested review from a team as code owners January 22, 2025 14:14
@UnityAljosha UnityAljosha merged commit 4d96d97 into master Jan 22, 2025
2 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.