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

[9.x.x] Improved EditorResourceAsset loading and shader nullreference exceptions #236

Merged
merged 2 commits into from Apr 27, 2020

Conversation

ellioman
Copy link
Contributor

@ellioman ellioman commented Apr 23, 2020

Purpose of this PR

This PR solves two issues:

  • Performance issues when opening a big project in URP due to a call to AssetDatabase.FindAssets(). It is now replaced with a LoadAssetAtPath using the asset's GUID.
  • NullReferenceExceptions when trying to load several shaders when building a project in URP. We now do the same as HDRP, which is to return null if the editor resource is not available.

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.
  • 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.

Testing status

Manual Tests:

  • Opened test project + Run graphic tests locally
  • Built a player
  • Checked new UI names with UX convention
  • Tested UI multi-edition + Undo/Redo + Prefab overrides + Alignment in Preset
  • C# and shader warnings (supress shader cache to see them)
  • Checked new resources path for the reloader (in developer mode, you have a button at end of resources that check the paths)
  • Other:

Automated Tests:
Added a check in the ValidateBuiltinResourceFiles test where we now also test that the editor resource asset is loaded.

Yamato:
https://yamato.prd.cds.internal.unity3d.com/jobs/902-Graphics/tree/universal%252Feditorresource-and-speedtree-fixes

Copy link

@erikabar erikabar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested Boat Attack models, also grabbed more models from the Asset Store - everything is now importing faster. NullReferenceExceptions are gone.

@phi-lira phi-lira merged commit 833aba6 into master Apr 27, 2020
@phi-lira phi-lira deleted the universal/editorresource-and-speedtree-fixes branch April 27, 2020 10:07
0lento pushed a commit to 0lento/Graphics that referenced this pull request May 19, 2020
* superCollapse : only first connector displayed. Added menu to collapse uncollapse multiple operators.

* Fix for infinite recompile

* Make noise expressions work on CPU

* Vfx/feature/strip distortion (Unity-Technologies#200)

* Recompile VFX

* Remove useless VFX library clears

* 797d742 - Make sure the subgraph is added to the graph when we set the setting.

* Add test that convert the default template to a subgraph context.

* Subgraph operators appear on drag edge on graph.

* Fix for convert to subgraph test

* Fix for choose gizmo popup width

* Fix for scene view window for visual effect not appearing if gizmos are off.

* Fix for exception when adding an output to a used subgraph operator.

* Small rendering fixes on strips

* Small update on assets

* Fix for too long block names not clipped. [1199508]

* Fix for inspector when resetting  a visual effect [1199605]

* Alpha Clipping for Shadow & Motion Vectors (Unity-Technologies#194)

* Always use alpha test with a treshold

* Add alpha clipping in shadow test

* Custom clipping is now possible in planar primitive

* Remove USE_ALPHA_TEST forced in pass velocity (shared pass with depth, can't be independant)

* Add support for Motion vector clipping in forward for mesh, cube & lit output

* Minimal covering of alpha covering

* Fix build hdrp template

* Reduce treshold for motionvector test

* *Update MotionVector to minimize change from graphic test & Update reference images

* Inverse test (clip is actually a greater or equal test) & Update test data

* Fix mix tab & space

* Minor tweak alpha to keep a consistent change

* Forgot a png change

* Update reference image with yamato result

* Extend shadow test to cover it using shader graph too

* Update reference image (warning : I run these test on AMD card)

* Test with MotionVector : notice an unexpected alpha scale

* Minor adjustement

* Some rename, still issue with an unexpected alpha scale

* *Fix wrong calculation in SimpleAlphaClipping

* Update 24_MotionVector

* *Update standalone motion vector

* Allow alphaTreshold from vfx in shaderGraph only if treshold isn't used in shaderGraph (see https://github.cds.internal.unity3d.com/unity/vfx-graph/pull/194#discussion_r27028 )

* Apply some rename

* Clear runtimeData

* Restore initial motionVector treshold

* Fool proofing code for case of gameobject deleted

* Fix for copying subgraph contexts.

* Fool proof display of gizmos in slot containers

* Fix for Lit planar output conversion between types.

* Disable randomly failing 006_StripAttributes (poke @julienf-unity)

* Small fixes (strips and distortion)

* Don't copy paste anything when converting to subgraphblock

* Fix wrong automatic merge in template (Unity-Technologies#204)

* Fix triangle missing from enum slots.

* Fix Sample Scene Test (Unity-Technologies#203)

* Fix using a procedural function which isn't a noise

* Renable ShadergraphSampleScene

* added ExcludeFromPreset on vfxparameter because presets don't work with parameters.

* Fix for exception when opening a graph with change sugraph operator slots. [1202819]

* Fix exception when compiling an asset with a turbulence block in absolute mode

* make property names clip.

* Fix subgraph block into subgraph context (Unity-Technologies#210)

* Allow reattaching when edit button opens the visual effect graph and attach [1201770]

* Fixed GetCustomAttribute that was locked to Current (Unity-Technologies#207)

* Fixed GetCustomAttribute that was locked to Current

* Fixes for PR

* Shader compilation now works when using view direction in shader graph

* Recompile VFX

* Fix for destroying selected component corrupt "Play Controls" window [1203555]

* Backout noise evaluation on CPU (Unity-Technologies#5164)

* Fix for DockAreaHost exception

* Fix changelogs

* Fix subgraphContextWithSubgraphblock graphic test (tested locally)

* Fix for exception when using AssetDatabase.SaveAssets()

* comment out rtx2080s as these dont work on bokken currently. cherry pick

* Revert "comment out rtx2080s as these dont work on bokken currently. cherry pick"

This reverts commit f56a293d5f0c7f339a4097addf47da450e3b00bb.

* Explicitely copy operators and parameters when converting to subgraph. Make sure the links between them, and between them and blocks are correctly recreated.

* Depth Position and Collision blocks now work correctly in local space systems

* Message in the right order

* Rebuild vfx

* Simplifiy sort shader

* Moved Toggle Display option for  VFX Event tester from Menu to Display Control Window (Unity-Technologies#202)

* Fix Inconsitent DirectionType in Math Operator (Unity-Technologies#211)

* Add an allowDirection filter

* Filter Direction Type in operator : Ceiling, Cosine, Discretize, Exp, Floor, Fractional, Length, Log, Power, Reciprocal, Round, Saturate, Sine, SquareRoot

* Fix spaceable filtering (allowSpaceable only wasn't including direction type)

* *Update changelog

* Step should not be used with DirectionType

* Fix Package dependency (Unity-Technologies#215)

* Fix ExposedProperty in Player (Unity-Technologies#212)

* in some cases AABox position gizmo would not move when dragged.

* Fix for converting subgraph with external links to operators.

* Fix case where implicit post block could be subgraph blocks.

* Removing warning as it can happen at launch which prevent abv from passing.

* Fix inspector with Asset Bundle (Unity-Technologies#219)

* Fix issue "Visual Effect component is not fully shown in the Inspector if VFX is loaded from Asset Bundle" (1203616)

* *Update changelog

* OnStop Event connected to the start of a Spawn Context (Unity-Technologies#201)

* Add spawner test to cover regression

* Fix inverted assert

* WIP : some bugs fixed.

* *Update changelog

* works on two given cases. more test needed

* Small naming error.

* Fix unexpected public API (7.2.0) (Unity-Technologies#225)

* Test File (will be removed)

* *Update _A.vfx

* Remove unexpected public API to internal

* Remove test files

* *Update Changelog.md

* added null check to prevent exception in certain cases.

* Check VFXManager values when importing a VFX.

* Recompile VFX

* Fix for Custom button in Event Tester window

* Various backports : Added copy paste slot values. Added create node on edge.

* Additionnal check when displaying gizmo in AdvancedVisualEffectEditor to prevent exceptions when component is reset.

* Remove "Enter Subgraph" command when there is no subgraph on a node.

* Make sure m_Subchildren is recreated if m_Subgraph changes. [1213498]

* Widen contexts again by 32px to fix some bugs.

* Support Range and Min attributes on int and uint parameters

* Small misc minor fixes

* removed the gizmedanchor if it is no longer in the valid gizmo list for instance if the dataanchor is no longer existing.

* Put direction gizmo in fixed position on the screen.

* Add Construct Matrix operator

* Recompile VFX

* No more exception when dragging vfx to empty visual efect graph window.

* Fix issues with CheckVFXManager (not all :()

* Prevent breaking the opening of the editor if an exception is thrown in subgraph code.

* 238efb5 - Fix vfxmanager not beeing called on first use of vfx.

* Fix case 1193602. handle correctly texture constant folding with multiple references

* Inspector : Add message when asset is stored in bundle (Unity-Technologies#240)

* Fix pCache file handling (Unity-Technologies#241)

* Fix age option filters out (Unity-Technologies#242)

* Fix AppendVector (Unity-Technologies#244)

* Fix various bugs with Position (Cone) block

* 6143028 - renamed soft particle fade distance, made attributes adding text (min… (Unity-Technologies#234)

* 310c43a - Fix for nesting of VFXSubgraphContexts (Unity-Technologies#236)

* cd2cd7e - fix for Convert inline to exposed property / Quick expose property does not set correct default value in parent

* Fix Missing Packing.hlsl include while using an unlit shadergraph. Unity-Technologies#233

* Change the way multiple reference to the same texture is handled

* Fix space issues with blocks and operators taking a camera as input

* Fix issue with multiple definition of texture

* Revert "238efb5 - Fix vfxmanager not beeing called on first use of vfx."

This reverts commit 05536b43df317bc60750ebd006bd1a0347a4810d.

Co-authored-by: Tristan Genevet <tristan@unity3d.com>
Co-authored-by: Paul Demeulenaere <pauld@unity3d.com>
Co-authored-by: Thomas Iché <thomasi@unity3d.com>
Co-authored-by: sophia <sophia@unity3d.com>
0lento pushed a commit to 0lento/Graphics that referenced this pull request Jun 11, 2020
* Fix issues with CheckVFXManager (not all :()

* Fix for exception when clicking stop while no debugui curve is chosen.

* Fix vfxmanager not beeing called on first use of vfx.

* Fix Instability in spawn test (Unity-Technologies#237)

* It doesn't fix but help to receive an understandable error

* *Add comment

* *Disable sprite packer to speed up switch to playmode

* *Use EnterPlayMode instead of Update in editor when it's relevant

* *Update comment

* Remove workaround to retrieve gameobject, it was actually a closure issue.

* Fix case 1193602. handle correctly texture constant folding with multiple references

* Regression test for case 1216631 : Exact Fixed Time Step (Unity-Technologies#231)

* Add regression test for case 1216631

* Avoid corner case of 05. + 0.5 almost equals to 1 (Yamato could have one frame delay)

* Clean correctly scene after test

* Fix Create_Spawner_Check_Time_Mode_Update_Count

* Fix missing null check for pCache (Unity-Technologies#239)

* Inspector : Add message when asset is stored in bundle (Unity-Technologies#240)

* Add message for properties when asset is store in asset bundle.

* *Update changelog.md

* Mention Inspector only constraint in graphInBundle text

"Exposed properties are hidden in the Inspector when Visual Effect Assets are stored in Asset Bundles."

* Fix pCache file handling (Unity-Technologies#241)

* Fix case 1185677 : There was missing close of several stream leading to some locked file

* *Update changelog.md

* Fix age option filters out (Unity-Technologies#242)

* Fix AppendVector

* Fix various bugs with Position (Cone) block

* 6143028 - renamed soft particle fade distance, made attributes adding text (min… (Unity-Technologies#234)

* Fix for mainTexture input slot appearing during firt import in MeshOutputs.

* 310c43a - Fix for nesting of VFXSubgraphContexts (Unity-Technologies#236)

* cd2cd7e - fix for Convert inline to exposed property / Quick expose property does not set correct default value in parent

* Fix for compilation cycling when a dependent asset is not found.

* VFXUIDebug is no longet a VFXObject as it doesn't have to be.

* Change the way multiple reference to the same texture is handled

* Fix space issues with blocks and operators taking a camera as input

* Fix issue with multiple definition of texture

* Fix changelog

* Update VFX

Co-authored-by: Tristan Genevet <tristan@unity3d.com>
Co-authored-by: Paul Demeulenaere <pauld@unity3d.com>
Co-authored-by: sebastienlagarde <sebastien@unity3d.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants