-
Notifications
You must be signed in to change notification settings - Fork 839
Increasing HDRP fined pruned light tile count to 63. #5771
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
Conversation
Hi! This comment will help you figure out which jobs to run before merging your PR. The suggestions are dynamic based on what files you have changed. HDRP Depending on the scope of your PR, you may need to run more jobs than what has been suggested. Please speak to your lead or a Graphics SDET (#devs-graphics-automation) if you are unsure. |
@@ -2997,7 +3000,7 @@ void GetContactShadowMask(HDAdditionalLightData hdAdditionalLightData, BoolScala | |||
// If contact shadows are not enabled or we already reached the manimal number of contact shadows | |||
// or this is not rasterization | |||
if ((!hdAdditionalLightData.useContactShadow.Value(contactShadowEnabled)) | |||
|| m_ContactShadowIndex >= LightDefinitions.s_LightListMaxPrunedEntries | |||
|| m_ContactShadowIndex >= ShaderConfig.FPTLMaxLightCount |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
hmm... I haven't think about this one. Guess contact shadow must stay at 32 max. So we need a separate definition. The contact shadow code write in an RGBA8 render target.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done, made this a nice enum. We keeping it to 24 because we have the fade and bits slots set to 24.
This means that the maximum number of lights that can have contact shadows are 24 per pixel.
com.unity.render-pipelines.high-definition/Runtime/Lighting/LightLoop/LightLoop.cs
Outdated
Show resolved
Hide resolved
com.unity.render-pipelines.high-definition-config/Runtime/ShaderConfig.cs
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The PR only increase light number for opaque (fptl) but you need to also handle it for cluster otherwise when switching to MSAA we will go done to 23.
6e7bd6b
to
f4c0b12
Compare
@sebastienlagarde I have now pushed the change that correctly allocates up to 63 lights as well for clustered. |
f4c0b12
to
969e686
Compare
Running yamato, once I get the tests stable will remove the draft state, and send it to qa for testing. |
969e686
to
1d02dbb
Compare
Thank you for the detailed description and the QA guidelines ! The PR has been added for testing and review on our Jira board. |
While I don't necessarily think it will be more expensive, but have you tried to capture the overhead at sampling time of the increased size words per tile? |
Hey, I measured the deferred light loop at it had absolutely 0 changes in performance. Lmk if theres anything else I should look at. |
void UnpackContactShadowData(uint contactShadowData, out float fade, out uint mask) | ||
{ | ||
fade = float(contactShadowData >> 24) / 255.0; | ||
mask = contactShadowData & 0xFFFFFF; // store only the first 24 bits which represent | ||
fade = float(contactShadowData >> CONTACT_SHADOW_MASK_BITS) / ((float)CONTACT_SHADOW_FADE_MASK); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So yeah contact shadow are gonna be awkward :D I wonder if we should change a bit how we do it later on.
Now if we have only one light that has contact shadow, but that happens to have an index bigger than 24 in the list it will not show up.
Even worse if that light changes depending on culling from say 20 and 25 as index, it will "flicker" contact shadows :/
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't remind exactly but aren't we sorting light by shadow casting? i.e the first set of light in the list currently cast shadow? increasing the likelihood that we have shadow on the first 24 light index. Guess something to test
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So there is no sorting by shadow casting as far as I can tell. We sort by light type on the entire frame, then we sort per light index per tile.
The way it works is that we allocate all contact shadows from scratch every frame on all lights on the view. Not on a per tile basis.
The very first 24 lights that Have shadows enabled get it, and the allocation is on the CPU. Note that we can have 1 light with contact shadows followed by 32 that dont, and then 24 more that have contact shadows. In this case it will be perfectly fine.
The only way shadow allocation can vary is if a new light enters the view (passes culling).
For example, we have in the frame 512 lights in view. The first one and last 23 ones have contact shadows enabled.
- In this situation we will never get flickering
Now lets assume we have 1 more light with contact shadow, now we have a total of 25.
If all lights are on view, it wont flicker either because the sorting in the CPU remains deterministic.
Hope this makes sense.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah stuff changed and forgot, used to be that each bit of the 24 bit mapped to the index of the light in the tile (and there 24 was convenient for that :P )
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM to me overall, I am afraid tho the contact shadow issue might pop up as weird bugs soon I am afraid :(
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please add / update documentation (in shader config doc and also I guess we mention somewhere that we have a limit of 24 light) + mention the change in what's new / upgrade guide, we will backport this change on 21.2 once we validated it works well.
@sebastienlagarde added new upgrade guide as requested. Adding also vic as reviewer. |
@sebastienlagarde changes from Fast PrepareLightsForGPU are now merged. Tested locally. We should be good. |
com.unity.render-pipelines.high-definition-config/Runtime/ShaderConfig.cs
Outdated
Show resolved
Hide resolved
com.unity.render-pipelines.high-definition-config/Runtime/ShaderConfig.cs
Outdated
Show resolved
Hide resolved
I've set up a project to test precisely adding light to a tile or cluster. PR64Lights-Before.mp4With the PR, 31 lights limit: PR64Lights-After31.mp4With the PR, 63 lights limit: PR64Lights-After63.mp4The test project is here : https://drive.google.com/file/d/1PE5leJGNZDRs2nLJAwJB0ZiGHdm-UZbP/view?usp=sharing The left image is exactly one tile, and the right is one cluster, both of them rendering cube lit by 3 lights each, increasing the number. With the exceptions of my previous comments, I consider this PR good :) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[EDIT] My bad, this is probably caused by the previous light culling optimisation PR. No related to this PR.
With further testing, I found an other issue. It looks like this PR introduces some instability when a lot of lights are displayed on screen. Aside from the expected tiles lacking lights (visible on the tog of the sphere in the captures), some lights globally flicker when it was "stable" before the PR.
Before the PR :
PR64Lights-FullFrame-Before.mp4
This PR, with 31 lights limit (behaviour similar with 63):
PR64Lights-FullFrame-After31.mp4
As far as the bug goes, unsure if we should make this a pr blocker sinec it was introduced by the other PR. I recommend creating a bug for it. Ill get to it right away though. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💚
* Missing offset * Adding the light counter as a centralized parameter in ShaderConfig.cs * Extra in comment * Making bit allocation of clustered size / counter be automatically packed from new config * Fixing some bugs with min / max * Extra comment on configuration for 8k rendering * Fixing flags for contact shadows and other review items from feedback * Changelog * Updated features and new doc for ShaderConfig light limit setting * Adding upgrade guide and what's new * Merging changes from fast PrepareLightsForGPU * Fixing MD files / whats new etc * Formatting
running Yamato 1 more time, making sure its playing nice with the current changes to the burst PrepareLightsForGPU PR |
@@ -45,6 +45,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. | |||
|
|||
### Added | |||
- Added a SG node to get the main directional light direction. | |||
- Added public API to edit materials from script at runtime. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should this be here?
* Increasing HDRP fined pruned light tile count to 63. #5771 * Fix Upscaled Film Grain & Dither in HDRP (#6111) When using particular types of upscaling, (CAS, FSR, Catmull) the film grain quality produced by HDRP was lower than expected. This was caused by errors in the UV scale calculations for the grain texture. This change fixes the issue by modifying the scale calculations to use the final viewport size rather than the size of the current scaled/unscaled viewport. This works because film grain is always handled by "FinalPass" which always renders at final viewport size anyways. This change also fixes a few cases where the current resolution group would have been incorrect when CAS or FSR were being used as the upscaling method. * Update CHANGELOG.md * Fix regression that was introduced in a previous PR on the diffuse denoiser #6119 * Fix Light Loop Variant Warnings (1372256) #6135 * Bump the HDRP Template IET Framework Package Version #6134 * Update ray tracing and path tracing docs regarding custom interpolator limitations (#6126) * [HDRP] Disable DoF for orthographic cameras #6124 * update occlusion radius for directional light sample (#6154) Co-authored-by: Sean Puller <sean.puller@unity3d.com> * Clean up Public API Documentation #6151 * Fix Sky override not taken into account #6127 * [Fogbugz # 1372245] Hdrp/drs fixing pyramid blur #6136 * Improved Area Light Support for Hair (#6157) * Initial commit MRP implementation * Barn door application * Add dominant marschner lobe direction skeleton * Finalize rect light MRP for marschner, handle forward + backward hemisphere scattering. * Force pathtracer to far-field in case users use geometry with bad normals. * com.unity.render-pipelines.high-definition/Runtime/Material/Hair/MultipleScattering/HairMultipleScattering.hlsl * Fix SH ringing for multiple scattering * Add trivial support for cookies * Add Kajiya support for area light approximation (non-LTC) * remove Line area light MRP for now * Remove area rect reference * Update area light hair test scene and reference images * Select cookie mip based on solid angle, rename some functions, temporarily add back rect ref * Remove the useless div-by-1 and add a comment to explain the removal of the divide by PI * Add a comment to further explain the normalization we do on the longitudinal distribution * Remove the ref once again * Update test images for metal and vulkan * Add a zero-div guard to silence compiler warning * Update CHANGELOG.md * [HDRP][Path Tracing] Exposed 3 methods related to path tracing and accumulation. #6197 * [HDRP] Fix infitnite material import loop materials #6185 * fixed typo: users -> uses (#6162) * Don't blur if nothing to blur (saves memory due to RG) (#6183) * Fix local fog volumes z axis calculation #6068 * fixed passive voice (#6092) * Fixed grammar errors * fixed passive voice in decal doc * Update Decal.md * Update Decal.md * Update Decal.md * AxF Raytracing: fix performance mode distillation that was broken and removed in #9d6db83478c213bc066e5f728d94b7faa6662543 (#6104) * Add scale parameter in eye shader #6132 * updated Override Fog page (#6200) * updated fog override screenshot * changed Depth Extent to Volumetric Fog Distance * Fix missing pragma (#6204) * [HDRP] Fix custom pass motion vector texture access #6205 * Fix typo in MipBias tooltip in HDRenderPipelineUI.Skin (#6210) * Replace gizmos FindObjectsOfType with list registrations to avoid constant slowdown in large scenes. Merged editor guards blocks. (#6168) * [HDRP] Fix APV tooltip for Geometry Distance Offset (#6150) * Update tooltip * Update ProbeVolumeUI.Skin.cs * Fixed the point distribution for the diffuse denoiser sometimes not being properly intialized. #6194 * Fixed the bad blending between the sun and the clouds (case 1373282). #6193 * Fix shadow mask fade and optimize it at same time (#6083) * [HDRP][Path Tracing] Minor fix for SSS when combined with fog (#6215) * Minor fix for SSS + fog. * Comments. * Update 1401_HairGraph_Area_Light.png * update screenshots Co-authored-by: Kleber Garcia <kleber.garcia@unity3d.com> Co-authored-by: gmitrano-unity <89797527+gmitrano-unity@users.noreply.github.com> Co-authored-by: anisunity <42026998+anisunity@users.noreply.github.com> Co-authored-by: John Parsaie <johnpa@unity3d.com> Co-authored-by: Pavlos Mavridis <pavlos.mavridis@unity3d.com> Co-authored-by: Sean Puller <43151199+SeanPuller@users.noreply.github.com> Co-authored-by: Sean Puller <sean.puller@unity3d.com> Co-authored-by: Adrien de Tocqueville <adrien.tocqueville@unity3d.com> Co-authored-by: Emmanuel Turquin <emmanuel@turquin.org> Co-authored-by: Antoine Lelievre <antoinel@unity3d.com> Co-authored-by: emilybrown1 <88374601+emilybrown1@users.noreply.github.com> Co-authored-by: FrancescoC-unity <43168857+FrancescoC-unity@users.noreply.github.com> Co-authored-by: RemyUnity <32760367+RemyUnity@users.noreply.github.com> Co-authored-by: slunity <37302815+slunity@users.noreply.github.com> Co-authored-by: James-Burr-Unity <61244495+James-Burr-Unity@users.noreply.github.com> Co-authored-by: Torbjorn Laedre <271210+tlaedre@users.noreply.github.com>
Updated docs that mentioned the new FPTL limit.
* Fixed Shadow Matte not appearing in ray tracing effects (case 1364005). #6209 * [HDRP] Physically based depth of field optimizations #5996 * Fixing crash when creating area light. #6220 * Update 5014_VolumetricCloudsBanding.png * Fix order of render targets in shaderpass forward #6091 * Merge Hd/bugfix #6213 * Added a help box to inform users of the potential dependency to directional lights when baking. #6059 * Exposed the volumetric clouds transmittance for volumetric clouds (case 1373283). #6228 * Reviewed doc updated from #5771 (#6255) Updated docs that mentioned the new FPTL limit. * Add coverage for path/ray-tracing double sided override #6250 * Fix some burst warnings for player creation on latest trunk (#6263) * Focus distance in path traced depth of field now takes into account the focus mode setting (#6253) * [HDRP] Fix AxF debug output in certain configurations (#4641) * Fix AxF debug output in certain configurations. * Update comment * Fix SSR accumulation white flash (#4648) * Fix white flash * changelog Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * Display Info Box when MSAA + ray tracing is onr (#4627) * Show info box when ray tracing is enabled. * Changelog * Move below MSAA Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * Fix distortion when resizing the window in player builds with the Graphics Compositor enabled (#4593) Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * Add support for the camera bridge in the graphics compositor (#4599) * Fix Jittered Project Matrix Infinite Far Clip Plane (#4638) * Reconstruct jittered projection matrix far plane (for Infinite ) * Changelog Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * Fixed a memory leak related to not disposing of the RTAS at the end HDRP's lifecycle. (#4688) Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * Fix custom pass utils Blur + Copy overdraw. (#4623) * Fix overdraw in custom pass utils blur function * Updated changelog Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * Fix draw procedural invalid pass idx 1 on first template load (#4632) * Fix * changelog * Force sync compilation for TAA Co-authored-by: CifaCia <f.cifariellociardi@gmail.com> Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * Changed light reset to preserve type (#4624) Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * Revert "Add support for the camera bridge in the graphics compositor (#4599)" This reverts commit 2325e3f. * AxF carpaint: Fix a compilation issue on Vulkan until the cpp HLSLcc side is updated. (case 1335737, related to 1314040) (#4691) Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * Revert "Revert "Add support for the camera bridge in the graphics compositor (#4599)"" This reverts commit 30fffd5. * revert: Fix distortion when resizing the window in player builds with the Graphi * Fixed the ray traced sub subsurface scattering debug mode not displaying only the RTSSS Data (case 1332904). (#4626) * Fixed the ray traced sub subsurface scattering debug mode not displaying only the RTSSS Data (case 1332904). * Add test scene Co-authored-by: Remi Chapelain <remi.chapelain@unity3d.com> Co-authored-by: Sebastien Lagarde <sebastien@unity3d.com> * Fix for discrepancies in saturation and intensity between screen space refraction and probe refraction (#4653) * Delete the second transmittance mul * Changelog Co-authored-by: Sebastien Lagarde <sebastien@unity3d.com> * Fix a Divide-by-Zero Warning for some Anisotropic Models (Fabric, Lit) (#4636) * Initialize the shading normal to a non-zero value for anisotropy * Changelog Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * [HDRP] Fix VfX lit particle AOV output color space (#4646) * Fix VfX lit particle aov output color space * Update comment Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * [HDRP][Path Tracing] Fixed transparent unlit (#4605) * Fixed issue with transparent unlit. * Updated changelog. * Reverted accidental change to default mtl. Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * Fix distortion with MSAA (#4711) * Fix contact shadow debug views (#4720) * Fix * changelog Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * Update Decal-Projector.md (#4695) * [HDRP] Fixed nullref when deleting the texture asset assigned in a local volumetric fog volume (#4728) * Fixed nullref when deleting the 3D mask of a density volume (case 1339330) * Updated changelog Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * Fix decal layer enum (#4753) * Fix typo * Fixed reflection probes being injected into the ray tracing light cluster even if not baked (case 1329083). (#4640) Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * Ignore hybrid duplicated reflection probes during light baking (#4663) * Ignore hybrid duplicated reflection probes during light baking * test path instead of scene Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * Fix double sided option moving when toggling it in the material UI (#4725) * Fix double sided option moving when toggling it in the material UI (case 1328877) * Updated changelog Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * Fix formatting * Fix volumetric fog in planar reflections (#4736) * Fix planar reflection * changelog Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * Fix motion blur compute dispatch size (#4737) Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * - Updated the recursive rendering documentation (case 1338639). (#4759) * - Updated the recursive rendering documentation (case 1338639). * review fixes Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * Fix issue with OnDemand directional shadow map being corrupted when reflection probe are updated same frame (#4812) * Don't mark as rendered for reflection probes as we want the cached version to be from main view * Do the thing just for directional * Doc update * changelog Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * Fix cropping issue with the compositor camera bridge (#4802) Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * Fix for unused resources in depth of field (#4796) * Removing the word Radii from exposure settings (#4854) * Rename in UX * Update docs * [HDRP][Path Tracing] Support for shadow mattes (#4745) * Shadow matte support. * Updated changelog. * Only take occluders into account, closer match to raster mode. * Added test scene. Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * Revert "[HDRP][Path Tracing] Support for shadow mattes (#4745)" This reverts commit 85ebbc2. * Fixed the transparent cutoff not working properly in semi-transparent and color shadows (case 1340234). (#4756) * Fixed the transparent cutoff not working properly in semi-transparent and color shadows (case 1340234). * Update test ref image Co-authored-by: Remi Chapelain <remi.chapelain@unity3d.com> Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * Use non jittered projection in outline pass (#4836) Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * [HDRP][Path Tracing] Sky settings now properly taken into account when using recorder (#4856) * Make sure sky settings are correctly set when recording. * Updated changelog. Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * Fix Resolution Issues for Physically Based Depth of Field (#4848) * Add the necesarry texture coordinate clamping for RTHandle for color pyramid sampling * Add some resolution independence, fitted for 1920x1080 * Changelog * Switch back to point sampling from trilinear, with commentary * Update test reference images * Small correction to the point sampling, always sample mip 0. * Re-update the test images, for mip 0 color sampling * Use a simpler UV scaling/clamping since we are now point sampling. Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * Fixed bug introduced by sky-for-recorder support. (#4906) * [Fogbugz 1341576] Memory leaks when the player is paused, and the user changes pipeline… (#4845) * Memory leaks when the player is paused, and the user changes pipeline settings * changelog * [HDRP] Fixed shadergraph double save (#4916) * Don't need to save twice shadergraph the first time we create a graph * Updated changelog * Write 0 instead of micro sized motion vectors + fix extremely fast velocities (#4820) * Kill micromovements. * Do same for camera * Debug view update * Changelog * Remove unnecessary comment * Fix excessive velocity end up marked as no velocity Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * [HDRP] Fix material upgrader (#4821) * Fix HDRP material upgrade failing when there is a texture inside the builtin resources assigned in the material * Updated changelog Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * [HDRP] Fix custom pass volume not executed in scene view (#4860) * Fix custom pass volume not executed in scene view because of the volume culling mask * Updated changelog Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * Fix reflection probe tootltip (#4890) Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * Updated the Physically Based Sky documentation for baked lights (#4891) * Updated the Physically Based Sky documentation for baked lights * Rewrite Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * Fixed remapping of depth pyramid debug (#4893) * Fixed remapping of depth pyramid debug * Removed debug pragma * Update changelog * Updated tooltip * Fix wobble-like (or tearing-like) SSAO issues when temporal reprojection is enabled. (#4895) * Fix AO perceived wobble * changelog Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * Fix Asymmetric Projection Matrices and Fog / Pathtracing (#4926) * Check for asymmetric projections and choose the generic path if so. * Fix asymmetric projections for the pathtracer ray generation. * Changelog * Simplify the matrix multiplication for computing the generic matrix. Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * Revert: Fix wobble-like (or tearing-like) SSAO issues when temporal reprojection… * Fix GBuffer depth debug mode (#5054) * Fixed Volume Gizmo size when rescaling parent GameObject (#4915) * Fix Vertex Color Mode documentation (#4976) * Fix wobble-like (or tearing-like) SSAO issues when temporal reprojection is enabled. (#4986) * Fix AO perceived wobble * changelog * Update screenshots Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * Fix formatting in NestedOverrideCameraRendering * [HDRP] Fix white flash with SSR when resetting camera history (#5089) * Fix white flash with SSR when resetting camera history * Move branch login inside GetPreviousExposureTexture * Fix for fixed exposure * [Fobguz # 1348357] VFX Particle templates missing stencil flags (#5080) * Adding missing macro for stencil flags in particle forward shaders. This will let flags like TAA Reject be useful * Changelog * Fix object disappearing from lookdev (#5063) * Fixed objects disappearing from Lookdev window when entering playmode (case 1309368). * Updated changelog * Added hideflags in Lookdev context * [HDRP] Fix render object after taa jittering (#5088) * Add a pass after TAA to restore non jittered matrices * updated changelog Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * Fix GC alloc in hd/bugfix branch (#5134) * Fixed GC alloc on hd/bugfix branch * Fix GC alloc again * Fix refraction tile artifacts near reflection probe edges (#4727) * Pick the right probe at object center instead of tile granularity. * changelog * Missing commit * Move stuff in lightloop and out of prelightData * Update LightLoop.hlsl * Formatting Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * Fix camera rotation uncontrollable with low framerate (#5076) * Fix camera rotation uncontrollable with low framerate. * updated changelog * Clearing out render targets and randmo write targets on pipeline destruction (#5176) Changelog Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * Fixed a null ref exception when adding a new environment to the library. (#5131) * Fixed a null ref exception when adding a new environment to the library. * Update changelog Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * FogBugz#1348462 - Wait for accessing the HDProjectSettings instance as it was before. (#5141) * Fix nullref in volume system after deleting a volume object (#5161) * Fix nullref in volume system after deleting a volume object (case 1348374) * Updated changelog Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * [HDRP] Fix APV UI loosing focus when changing a param (#5219) * Fixed the APV UI losing focus when the helpbox about baking appears in the probe volume. * Small changes (#5220) * Fix update order in Graphics Compositor causing jumpy camera updates (#5235) * Prevent material from having infinite intensity (#5132) * Prevent material from having infinite intensity * Fix switching from ldr to hdr emissive * Fix input field precision * Round the max value * Make two variables Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * [HDRP] Adding limitations of decal emissive positive contribution to the documentation (#5237) * Add emissive positive contribution limitation to the doc * changelog * Update CHANGELOG.md * Update Decal-Projector.md * Update Decal-Shader.md Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * [HDRP] Fix issue with path tracing when switching between non-persistent cameras (#5246) * Fix issue with path traceing accumulation when switching between cameras. * Check if camera history is persistent Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * removed undesired files * Fix log base (#5260) * [HDRP] Fixed mask value stored by the LayerMaskParameter class (#5250) * Fixed value stored by the layer mask parameter class. * Updated changelog. Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * [HDRP][DXR] Make vertex color default to 1.0 instead of 0.0 (#5268) * When raytracing, make vertex color default to white if not present. * Updated Changelog. * Added comment. * Fix issue with 0-sized dispatch with extremely low resolutions (#5272) * Ceil to int instead. * changelog * [HDRP] Fix incorrect light list indexing when TAA is enabled (#5287) * Fix incorrect light list indexing when TAA is enabled * Better handle XR Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * Fix incorrect additiona velocity for alembic (#5304) * Fixed LUT initialization in Wireframe mode (#5156) Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * [HDRP] [LightExplorer] Fix missing refreshwhen editing property with a running paused editor. (#5321) * Update HDLightExplorerExtension.cs * Update CHANGELOG.md * Changed Ambient Mode to Dynamic by default (#5350) * Visual Environment component ambient mode now defaults to Dynamic. * Update changelog * Updated test scene with correct ambient mode after the change * Missing files * Last scene fix * Hd/fix framesettings ordering (#5323) * Fix strange entry in the FrameSettings and add comments for better readability * Update CHANGELOG.md Co-authored-by: JulienIgnace-Unity <julien@unity3d.com> * Bugfix 1357311: Fixed old ray tracing material conversion (#5364) * - fixed crash in material conversion where material used old raytracing render queue (3900) * - changelog update # Conflicts: # com.unity.render-pipelines.high-definition/CHANGELOG.md * Bugfix 1358480: Fixed missing tooltip for "Tessellation Mode" (#5365) * - fixed missing "Tessellation Mode" tooltip * - update changelog * - updated "Tessellation Mode" tooltip Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * [HDRP] Fix HD template (particularly visible in path tracing) (#5319) * Made the 3 light bulbs non shadow-casting. * Revert "Made the 3 light bulbs non shadow-casting." This reverts commit f32ba7d. * Changed bulb prefab (shadow caster off). * Revert: Changed Ambient Mode to Dynamic by default #5350 * Fixed a null ref exception when no opaque objects are rendered. (#5463) * Fixed a null ref exception when no opaque objects are rendered. * Update changelog * Fix slope scale depth bias when depth offset is ON (#5466) * Fix slope scale bias being broken when depth offset was enabled * changelog Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * [HDRP] Fix spot shadow sampling when using custom spot angle (#5439) * Fixed shadow sampling artifact when using the spot light shadow option 'custom spot angle' * Updated changelog Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * Fix darkening in SSR fade (#5472) * Fix * Changelog Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * [HDRP] Improve path traced subsurface scattering for transmissive surfaces (#5485) * Improve subsurface scatering for transmissive surfaces * Add changelog + fix throughput multiplication Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * Fix missing context menu for 'Post Anti-Aliasing' in Camera (1357283) (#5497) Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * Force allocate texture if no fallback is available (#5130) Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * Update path tracer screenshots * Update 2314_Shadow_CustonAngle.png * Fix range compression factor clamping (#5892) Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * Fixed tooltip not showing on labels in ShaderGraphs (#5877) Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * Proper format for copy history (#5796) * Fix shadow mask fade and optimize it at same time (#5911) * Fix shadow mask fade and optimize. * changelog * Fix wrong format for contact shadows and shadow atlas default textures (#5912) * Fix contact shadows not being bound in debug and good default shadow * changelog * Rename * Handle more edge cases where shadows are not drawn to atlas (disabled scene view lighting) Co-authored-by: John Parsaie <johnpa@unity3d.com> Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * Fixed an issue where probe being forced realtime would cause perf to degrade greatly when manipulating them in editor. (#5901) * Mark anchor override as not supported for probes (#5939) * Revert: Fix shadow mask fade and optimize it at same time #5911 * Add info on After post-process info box (#6125) * Add info on info box * Clarify a bit better * Dynamic Ambient improvement and doc update (#5951) * Avoided unnecessary ambient probe updates Updated doc with dynamic ambient probe limitations * Update Environment-Lighting.md Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * [SRP] Fix issue when changing volume profiles at runtime with a script (#5882) * Fix issue when changing volume profiles in runtime with a script * Add new kine in changelog * Improve comment * Changelog typo Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * Fix NaN on Intel GPU when using PBR Sky and rendering sun disk (#6145) * Enable debug symbols * tentative * test using cos from cpu * Finalize fix * Missing file * Remove debug symbols. * Fix Luminance/EV conversion when LightMeterCalibrationConstant is changed (#6115) * Fix formmating * Focus distance in path traced depth of field now takes into account the focus mode setting * Rename the old test scene to 5006_PathTracing_DofVolume * Bump up the test number * Update whats-new-12.md Co-authored-by: FrancescoC-unity <43168857+FrancescoC-unity@users.noreply.github.com> Co-authored-by: sebastienlagarde <sebastien@unity3d.com> Co-authored-by: John Parsaie <johnpa@unity3d.com> Co-authored-by: anisunity <42026998+anisunity@users.noreply.github.com> Co-authored-by: Antoine Lelievre <antoinel@unity3d.com> Co-authored-by: CifaCia <f.cifariellociardi@gmail.com> Co-authored-by: Adrien de Tocqueville <adrien.tocqueville@unity3d.com> Co-authored-by: slunity <37302815+slunity@users.noreply.github.com> Co-authored-by: Remi Chapelain <remi.chapelain@unity3d.com> Co-authored-by: Emmanuel Turquin <emmanuel@turquin.org> Co-authored-by: Adrian1066 <44636759+Adrian1066@users.noreply.github.com> Co-authored-by: Kleber Garcia <kleber.garcia@unity3d.com> Co-authored-by: Julien Ignace <julien@unity3d.com> Co-authored-by: alex-vazquez <76204843+alex-vazquez@users.noreply.github.com> Co-authored-by: Rémi Chapelain <57442369+remi-chapelain@users.noreply.github.com> Co-authored-by: Remi Slysz <40034005+RSlysz@users.noreply.github.com> Co-authored-by: Jarkko Lempiäinen <79095390+JarkkoUnity@users.noreply.github.com> * Fix MSAA resolve of stencil buffer (#6251) * Fix resolve * changelog Co-authored-by: sebastienlagarde <sebastien@unity3d.com> * Fix HDRP template input not working when using the new Input System and no Keyboard/Mouse #6045 * Update Materials * Update 5014_PathTracing_DoubleSidedOverride.png.meta * Fix shader warning on vulkan * Fixing ps4 light list build (#6258) * Fix warning * Update package.json * Formatting * update screenshots Co-authored-by: anisunity <42026998+anisunity@users.noreply.github.com> Co-authored-by: Pavlos Mavridis <pavlos.mavridis@unity3d.com> Co-authored-by: Kleber Garcia <kleber.garcia@unity3d.com> Co-authored-by: Adrien de Tocqueville <adrien.tocqueville@unity3d.com> Co-authored-by: JulienIgnace-Unity <julien@unity3d.com> Co-authored-by: Vic Cooper <63712500+Vic-Cooper@users.noreply.github.com> Co-authored-by: Rémi Chapelain <57442369+remi-chapelain@users.noreply.github.com> Co-authored-by: FrancescoC-unity <43168857+FrancescoC-unity@users.noreply.github.com> Co-authored-by: John Parsaie <johnpa@unity3d.com> Co-authored-by: Antoine Lelievre <antoinel@unity3d.com> Co-authored-by: CifaCia <f.cifariellociardi@gmail.com> Co-authored-by: slunity <37302815+slunity@users.noreply.github.com> Co-authored-by: Remi Chapelain <remi.chapelain@unity3d.com> Co-authored-by: Emmanuel Turquin <emmanuel@turquin.org> Co-authored-by: Adrian1066 <44636759+Adrian1066@users.noreply.github.com> Co-authored-by: alex-vazquez <76204843+alex-vazquez@users.noreply.github.com> Co-authored-by: Remi Slysz <40034005+RSlysz@users.noreply.github.com> Co-authored-by: Jarkko Lempiäinen <79095390+JarkkoUnity@users.noreply.github.com> Co-authored-by: robinb-u3d <robinb-u3d@users.noreply.github.com>
Purpose of this PR
Increasing the default maximum value for a fine prune light tile from 23 to 63.
Added as well a configuration on ShaderConfig.cs to go back to 23 if needed.
NOTE: this configuration could also be done at runtime. Might be worth testing since it could add some extra cost.
Testing status
scene with 50 point lights
Before:

(notice missing lights and tile artifacts due to 23 light limit per tile)
After:

(All lights represented corretly)
Performance
Profiling done in PS4 base with 2 scenes.
For these perf tests, I disabled async compute in the camera frame settings.
The only performance degradation observed was additional transient gpu memory utilized by the fine pruned light list buffer (in which case, at worst, it doubles) and additional cost from deferred lighting.
Scene 1
Scene with justs 20 lights, looking for performance cost of just increasing the per pruned tile capacity.

Before
After
The profiling shows barely any fluctiation in costs of production / consumption of the fined pruned light list.
Scene 2
Scene with 150 lights, looking for performance cost of additional lights and effects on deferred lighting.

Before
After
The fluctuation in Build light list can be attributed to noise. The fluctuation in deferred lighting is direclty caused by processing more lights in the light loop.
Notes for reviewers
Waiting on confirmation from Morten Mikkelsen to see if anything could be regressing on perf.
Recommended QA test plan
The goal is to answer the question "Is the new light count more stable than the previous one?"
Stable is a bit of a subjective word because both light counts (the old one) and the new one have hard limits.
Before, at 23 lights you would start seeing missing lights or flickering artifacts in the tiles.
I would like to know how more stable is the new light count on a low light count (with many categories), with a medium count, and an extreme count.
Old light count max was 23 on each tile.
New one is a max of 63 on each tile.
Please test both deferred and volumetric lighting.