Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice

Official Improvements to shader build time and runtime memory usage

Discussion in 'Shaders' started by dnach, Jul 7, 2022.

  1. dnach

    dnach

    Unity Technologies

    Joined:
    Mar 9, 2022
    Posts:
    89
    Greetings from the Shaders team!

    We would like to share the news on some immediate improvements coming up, which aim to resolve the current pain points of shader compilation time and memory usage. We also wish to share some best practices regarding shader variant stripping, which you may find useful.

    Conditional shader features allow artists and developers to easily control the shader’s functionality at authoring or runtime. Static branching and shader variant compilation is traditionally used, which generally provides improved performance of shader execution compared to dynamic branching. As the feature set of the render pipelines grew, so did the amount of shader variants, often resulting in painfully long build times and high memory usage for shaders.

    Improvements to shader compilation time and memory usage

    To address these pain points, we are now working on immediate improvements to Unity’s shader variant stripping, as well as shader memory usage:

    Variant Keyword Prefiltering is a new optimization to the engine's built-in stripping, and will significantly reduce build times due to shader variant processing and compilation. Shader variant stripping greatly reduces the amount of compiled shader variants, however stripping is currently performed at the end of the shader processing stage. Processing a huge amount of variants can still take a long time, regardless of compilation.

    This optimization introduces early exclusion of 'multi_compile'' keywords based on project settings to greatly reduce shader variants processing time. Variant Prefiltering landed in 2023.1.0a14 and was backported all the way back to 2021.3.15. Based on our internal tests, warm build times have been reduced by up to 90%!

    upload_2022-12-5_17-34-50.png
    upload_2022-12-5_17-35-12.png
    upload_2022-12-5_17-35-25.png

    Dynamic Shader Loading is an additional optimization which provides control over shader runtime memory usage. Shader variants actively utilized by the GPU in a frame are often a small portion of all variants actually included in the build. Prior to this optimization, all shader variants were front loaded to CPU memory on scene or resource load. As a result, shader memory usage was often much larger than what is actually needed at runtime.

    This optimization enables streaming of shader data chunks into memory, and eviction of shader data that is no longer needed at runtime, based on a user controlled memory budget. This allows to reduce shader memory usage on platforms with limited memory budget.

    The new Shader Variant Loading Settings are now accessible from the Editor’s Player Settings, and can be used to override the maximum number of shader chunks loaded and per-shader chunk size (MB):


    You can also override the maximum amount of loaded shader chunks at runtime using the C# API, via Shader.maximumChunksOverride. This allows to override the shader memory budget based on factors such as the total available system and graphics memory queried at runtime.

    Dynamic Shader Loading landed in 2023.1.0a11 and backported all the way back to 2021.3.12. In the case of URP's BoatAttack, we observed a 78.8% reduction in runtime memory usage for shaders, from 315 MiB (default) to 66.8 MiB (dynamic loading). You can read more about this optimization in the official announcement.

    upload_2022-12-13_21-19-1.png

    We hope to share information about backports as soon as possible. In the longer term, we are also planning to improve Shader Variant Management as a whole, from better tools and workflows for tracking and stripping shader variants, to improved logging and control of build and runtime shader compilation, as well as documentation updates.

    Build-time shader variant stripping

    The engine’s build-time shader variant stripping aims to reduce the amount of compiled variant, the resulting build times and runtime memory usage for shaders. To maximize the benefits of Unity’s built-in variant stripping, it is recommended to follow the best practices outlined in the manual for Shader Variant Stripping.

    Based on the render pipeline, you can also enable shader variant stripping settings in the URP Global Settings & HDRP Global Settings, and disable any unused features in the URP Assets & HDRP Assets used by the player quality settings.

    When authoring your own conditional shader features using ‘multi_compile’ keywords, consider implementing editor scripts that perform custom build-time stripping via the OnProcessShaders callback. This way, you can explicitly remove variants that are not needed at runtime, based on your target platform or runtime settings.

    Shader variant logging and runtime profiling

    In 2020.2, the Editor.log was extended to include information (per shader/pass/stage) on the amount of shader variants stripped and compiled, as well as variants processing and compilation time. Before 2020.2, the same information can be logged by setting the “Shader Variant Log Level” in the Universal Render Pipeline Asset & HDRP Global Settings.

    Player logging can be enabled via “Log Shader Compilation” in the Graphics Settings, and is useful for tracking shader variants that are requested by the GPU and compiled at runtime. In the Graphics Settings, it is also possible to track the runtime compiled shaders used by the Editor’s viewport, and save them to a Shader Variant Collection. (“save to asset” at the bottom of the menu)

    Runtime memory usage of shaders can be profiled using the Memory Profiler package. Shaders which use up the most runtime memory are a good candidate for shader variant stripping.

    When a requested shader variant is missing at runtime (due to stripping), the engine will fallback on the closest matching variant by default. in 2022.1.0a7*, Strict Shader Variant Matching was introduced and can be used to fallback on a pink debug shader instead, logging an error in the console detailing the missing variant and its keywords. This can be useful when performing shader variant stripping, in order to identify variants that should not be stripped.


    We know the build time and memory situation has been a huge source of difficulty, and we appreciate all your feedback. You can now also submit requests directly to the Shader System Portal. Please let us know what you think, and share any improvements you would like to see in the future!
     
    Last edited: Feb 8, 2023
  2. JesOb

    JesOb

    Joined:
    Sep 3, 2012
    Posts:
    1,109
    Thanks for info :)

    Waiting for editor tool to restrict some shader variant at authoring time and see it in edit, play mode and even in material inspector i.e. (this shader variant is disallowed by project settings)
     
  3. psTom

    psTom

    Joined:
    Jan 23, 2017
    Posts:
    4
    Cool stuff. Glad this area of the engine is getting attention.

    Do you have anything planned for the following issue:

    We have our own custom uber-shader which can't be included in "Always include". Then for each level we have a scene that gets built as its own AssetBundle. Each of those AssetBundles will include its own copy of commonly used shaders which in our case results in a 300mb extra disk space.

    For example for us the solution would be to be able to specify Shader Variant Collections as Always Include.
     
  4. JesOb

    JesOb

    Joined:
    Sep 3, 2012
    Posts:
    1,109
    If Unity will make API that helps us treat each shader variant as a separate sub-asset or something like that → than we potentially can grab all shader variants and put them into separate bundle on build time
     
  5. dnach

    dnach

    Unity Technologies

    Joined:
    Mar 9, 2022
    Posts:
    89
    The existing way to achieve this is by using a shader variant collection list, though we definitely want to improve the API!

    You can specify shader variant collection lists to be pre-loaded in the Graphics settings (and thus always included in the build). Though I agree that being able to 'always include' a shader variant collection list (regardless of preloading) will be a nice improvement, and we will definitely consider this.
     
    Last edited: Jul 13, 2022
    JesOb likes this.
  6. spamove

    spamove

    Joined:
    May 25, 2018
    Posts:
    2
    @dnach does the "This optimization is targeted for 23.1" means that 2021/2022 won't receive this and still have the *128 (2^7, since 7 new keywords were added, and both are compiled as enabled/disabled permutation regardless of scene settings) increased shader compilation times for the shaders that are either based on Lit or that are created using SG?

    Maybe I misunderstood so don't get me wrong (frankly I don't know who merged those changes to URP 12 without seeing the mayhem they will cause, so it's hard for me to place any kind of blame), but if 2021 nor 2022 won't get any reasonable fix for that, how are people actually expected to use URP in them (with no possibility to downgrade URP packages in newer Unity Editors, obviously) at all?
     
  7. joshuacwilde

    joshuacwilde

    Joined:
    Feb 4, 2018
    Posts:
    726
    We had to write our own shader variant system that creates lots of sub shaders or else we would end up with GBs of loaded shader programs (with custom shader variant system it is less than 30 MB iirc).

    I would like to see very aggressive shader loading at runtime. If only necessary shaders are loaded in, I wouldn't expect more than a MB of loaded shader variants. Looking forward to this!
     
    Last edited: Jul 19, 2022
    rob11 likes this.
  8. aleksandrk

    aleksandrk

    Unity Technologies

    Joined:
    Jul 3, 2017
    Posts:
    3,011
    @spamove We plan to backport both variant prefiltering and dynamic variant loading to 2022 and 2021.
     
  9. TJHeuvel-net

    TJHeuvel-net

    Joined:
    Jul 31, 2012
    Posts:
    838
  10. dnach

    dnach

    Unity Technologies

    Joined:
    Mar 9, 2022
    Posts:
    89
    Hey TJ! You are 100% correct and I will update the post to reflect.
    Strict variant matching was added back in 2022.1.0a7.
     
    TJHeuvel-net likes this.
  11. aleksandrk

    aleksandrk

    Unity Technologies

    Joined:
    Jul 3, 2017
    Posts:
    3,011
    Dynamic shader variant loading is available in latest alpha!
    More details here.
     
    dnach and TJHeuvel-net like this.
  12. sabojako

    sabojako

    Joined:
    Jul 7, 2017
    Posts:
    48
    @dnach Can you elaborate on how Variant Keyword Prefiltering is different from OnProcessShader() where we can already skip specific keywords?
    Is it just a fancy way of saying there's going to be a UI to control keywords instead of going through coding with OnProcessShader()?
     
  13. dnach

    dnach

    Unity Technologies

    Joined:
    Mar 9, 2022
    Posts:
    89
    Hey!

    Variant Prefiltering works by early filtering of unneeded 'multi_compile' shader keywords based on filtering rules, which are driven by Render Pipeline settings. By moving part of the shader variant processing to a point before variants enumeration, we significantly reduce the amount of time needed to process all the variants.

    For example, if you disable Shadows in the Render Pipeline settings, we won't generate any variants that enable shadows for enumeration.

    The early prefiltering of keywords results in generating less shader variants to enumerate and process for potential scriptable stripping (by OnProcessShaders callback) and shader compilation.
     
    sabojako and JesOb like this.
  14. dnach

    dnach

    Unity Technologies

    Joined:
    Mar 9, 2022
    Posts:
    89
    Variant Keyword Prefiltering landed in 2023.1.0a14, and we are now working on backports. Based on our internal tests, we observed warm build times being reduced by up to 90%! (This will of course depend on the project)
     
    Last edited: Oct 6, 2022
  15. DavidZobrist

    DavidZobrist

    Joined:
    Sep 3, 2017
    Posts:
    233
    Thanks sounds good. Waiting for the backport to 2021 LTS
    Updated the project from 2019 lts to 2021 1.5 Weeks ago increasing the build time by xx% with shader variants in the millions.
     
    Last edited: Oct 15, 2022
  16. IncrediblyWalrus

    IncrediblyWalrus

    Joined:
    Jul 22, 2019
    Posts:
    46
    Is there any ETA on how long these backports take? Having some incredibly bad issues lately with these exports, it's pretty costly to what our studio is doing.
     
    DavidZobrist likes this.
  17. aleksandrk

    aleksandrk

    Unity Technologies

    Joined:
    Jul 3, 2017
    Posts:
    3,011
    Hard to say exactly, as they are quite complex and we want to test thoroughly. Probably in the range of several weeks.
     
    DavidZobrist, bigd and dnach like this.
  18. Claytonious

    Claytonious

    Joined:
    Feb 16, 2009
    Posts:
    902
    Thanks for sharing this. Is there any news yet on when backports to 2021.3.x will arrive?
     
  19. aleksandrk

    aleksandrk

    Unity Technologies

    Joined:
    Jul 3, 2017
    Posts:
    3,011
    I'll post here when we know in which version the backports will be available. Pull requests are prepared, we just need to land them :)
     
    IS_Twyker, AlinaEC, Zarbuz and 5 others like this.
  20. AlinaEC

    AlinaEC

    Joined:
    Feb 24, 2022
    Posts:
    1
    Checking in on the status of the back ports since it is a critical issue for my team as well.
     
  21. aleksandrk

    aleksandrk

    Unity Technologies

    Joined:
    Jul 3, 2017
    Posts:
    3,011
    Variant prefiltering will be available in 2022.2.0b15. 2021.3 to follow :)
     
  22. alexandre-fiset

    alexandre-fiset

    Joined:
    Mar 19, 2012
    Posts:
    715
    This appears on 2021.3.13. Is this it?

    upload_2022-11-15_7-20-29.png

    Also, will this setting allows us to use multiple HDRP assets without expecting several gb of memory usage for HDRP Lit?
     
  23. aleksandrk

    aleksandrk

    Unity Technologies

    Joined:
    Jul 3, 2017
    Posts:
    3,011
    No, that's dynamic variant loading :)

    Highly likely, yes.
     
    jiraphatK and alexandre-fiset like this.
  24. spinaljack

    spinaljack

    Joined:
    Mar 18, 2010
    Posts:
    992
    why can't unity come with precompiled shaders for the most common usages?
    seems like reinventing the wheel each time anyone does a build
     
  25. aleksandrk

    aleksandrk

    Unity Technologies

    Joined:
    Jul 3, 2017
    Posts:
    3,011
    It will also be available in 2021.3.15f1.
     
  26. IS_Twyker

    IS_Twyker

    Joined:
    Sep 6, 2021
    Posts:
    35
    Any ideas about a potential ETA?:)
     
    DINmatin likes this.
  27. aleksandrk

    aleksandrk

    Unity Technologies

    Joined:
    Jul 3, 2017
    Posts:
    3,011
    I no serious issues are found, it will be available around Nov 30.
     
  28. IncrediblyWalrus

    IncrediblyWalrus

    Joined:
    Jul 22, 2019
    Posts:
    46
    So exciting to hear.
     
    DINmatin likes this.
  29. IS_Twyker

    IS_Twyker

    Joined:
    Sep 6, 2021
    Posts:
    35
    Any news @aleksandrk ? :oops:
     
  30. aleksandrk

    aleksandrk

    Unity Technologies

    Joined:
    Jul 3, 2017
    Posts:
    3,011
    Looks like 2021.3.15f1 is available since yesterday.
     
    IS_Twyker, DavidZobrist and TJNBG like this.
  31. IncrediblyWalrus

    IncrediblyWalrus

    Joined:
    Jul 22, 2019
    Posts:
    46
    Just installed the update (2021.3.15f1) and so far it has been an improvement.

    Cold build which was basically the first ever build done on the new version was an expected 6 hours, somewhat of a large game and it's expected for a new version to be doing a large build on first go. If I remember correctly, the version I was on before this one took me a total 8-12 hours to do my first build.

    Second build it was also an improvement, from my usual 15+ minutes, it's gone down to 7 minutes. Again, I'm unsure if this was an expected result the engineers wanted, but this is me not really fine tuning everything, it was just an installation and seeing how things went.

    I'm unsure if I was really supposed to change much, but to me it's a decent improvement anyway. Thanks again for listening to everyone here, and I appreciate the support.
     
    dnach and AljoshaD like this.
  32. iceb_

    iceb_

    Joined:
    Nov 10, 2015
    Posts:
    95
    It seems like 2021.3.15f1 is back to the pre-crazy build time levels. Back from 1.5-2hrs to 37m for cold build, and for warm builds, went from 36m to 8m.
     
  33. TJNBG

    TJNBG

    Joined:
    Apr 7, 2021
    Posts:
    23
    2021.3.15f1 brings warm builds down to ~14 minutes for us. This is still significantly slower than 2020 LTS (currently at ~4 minutes), however we have no choice but to take it.

    StripUnusedMeshComponents option has a larger impact in 2021 than 2020. Disabling it further reduces warm builds down to under 7 minutes.
     
    Last edited: Dec 3, 2022
    dnach, AljoshaD and valarnur like this.
  34. alexandre-fiset

    alexandre-fiset

    Joined:
    Mar 19, 2012
    Posts:
    715
    Unity 2020.3.40 + HDRP
    • With one referenced HDRP Asset, most features unticked: 150mb runtime memory usage
    • With one referenced HDRP Asset, most features on: 500mb
    • With three referenced HDRP Assets (low, medium, high): 2gb+
    • Initial build time took a long night, more than 10 hours
    • More details in this thread

    Unity 2021.3.15 + HDRP
    • With one referenced HDRP Asset, most features unticked: 150mb
    • With one referenced HDRP Asset, most features on: 150mb
    • With three referenced HDRP Assets (low, medium, high): 320mb
    • Initial build time took around 3 hours
    Not sure when exactly the steps of progression occured, as we did notice runtime memory gains when jumping from Unity 2020 to 2021, but eh! That's some major progress anyway.

    Thanks to everyone involved in this at Unity, this is really nice.
     
    Last edited: Dec 3, 2022
  35. matheus_inmotionvr

    matheus_inmotionvr

    Joined:
    Oct 3, 2018
    Posts:
    62
    Just to add: I'm also seeing slightly shorter build times.
     
    aleksandrk and dnach like this.
  36. DragonCoder

    DragonCoder

    Joined:
    Jul 3, 2015
    Posts:
    1,696
    Btw. since "cold" times are so huge, would it not be worth it to memory-dump all that that's computed and save it on drive for reload?
     
  37. aleksandrk

    aleksandrk

    Unity Technologies

    Joined:
    Jul 3, 2017
    Posts:
    3,011
    @DragonCoder How would that help with cold build times?
    Cold build = no shader variants have been compiled. When we compile a variant, we store it to the disk.
     
    DragonCoder likes this.
  38. my_little_kafka

    my_little_kafka

    Joined:
    Feb 6, 2014
    Posts:
    87
    After upgrading from 2021 3.6f1 LTS to 3.15f1 with the latest URP version and deleting the Library folder, the cold build (I assume it means the build into an empty folder without cashed shaders?) now takes more than 2 hours, creating from 1,5k to 3k variants for each custom shader (and the default Lit shaders for URP, which I shouldn't even use in the project, really), in a project with quite a few custom shaders. Is this normal? I'm using Amplify Shader Editor and Addressables, wonder if it could affect the build times. I don't really notice any speed gain in builds, is there something wrong with my project?

    The next build without any changes is lighting fast, less than a minute.

    Then I slightly edited 2 shaders made in Amplify Shader Editor and the next build took 25 minutes (worked mainly on those 2 shaders, each needed 3k variants)

    Then I slightly edited just 1 shader made in ASE, but also unticked some checkboxes for different platforms that I don't use (DX9, Switch, PS4, XBoxes, OpenGL, etc, just left DX11 for now). After that the build took ~12,5 minutes, which is roughly twice as fast as the previous build where I edited 2 shaders. So it looks like ASE is not the culprit, as unchecking the boxes didn't speed up the shader compilation time (I haven't upgraded ASE for the most recent version yet, though, because they disabled the Undo feature for some reason and I'm waiting for it to be resolved).

    Only after that I decided to check if there any new settings for variant prefiltering, and I found none.

    This is quite a long buildup for each new or edited shader, and it promotes testing the game in the editor instead of in builds and it's quite dangerous in my experience.

    Currently the source project is 4,5GB with the Library folder and 1,5GB without it. The build is 253MB.
     
    Beauque and EvOne like this.
  39. BOXOPHOBIC

    BOXOPHOBIC

    Joined:
    Jul 17, 2015
    Posts:
    507
    Hey, I already saw a few forum posts about Variant Keyword Prefiltering, but no examples/doc on how we can use it, or maybe I missed it, or don't fully understand it :) Is it applicable for keywords in the shader directly? Can we use something like this?

    Code (CSharp):
    1. #pragma shader_feature AWESOME_FEATURES
    2.  
    3. #if AWESOME_FEATURES
    4.    #pragma multi_compile _ RED GREEN BLUE WHITE
    5. #else
    6.    #pragma shader_feature RED
    7. #endif
     
  40. lrb

    lrb

    Joined:
    Jun 21, 2014
    Posts:
    28
    Hi there,

    We got some really bad build times here too, over four days to build the entire game, but since 2021.3.15f1 with Variant Keyword Prefiltering, for the second build it's very similar to before on built-in.

    For those who are still wondering how the Variant Keywork Prefiltering works, here is the keynote for the Unity 2021.3.15f1 version that explained it for me:

    Editor: Enabling shader keyword pre-filtering so that build process does not have to enumerate through full shader variant space. This fixes the issue of URP builds even with warm shader cache taking really long time. This fix does not reduce the time spent on actually compiling shaders.

    I also had a confirmation from Unity that this is automatically done and there is no need to do any setting about it.

    I'm still looking how we can reduce the first build time because we need to build for PC, Android and PS4 (soon for PS5) and this is painfull. Also, updating the URP Package or Unity version makes the cache go away and the build starts from scratch again. A minor change on a shader also takes hours to build it again, with about 40k variants on PC.

    I'm looking forward to some understandable ways to reduce this variants if already possible.

    Thanks,
     
    andreiagmu and EvOne like this.
  41. TJHeuvel-net

    TJHeuvel-net

    Joined:
    Jul 31, 2012
    Posts:
    838
    https://therealmjp.github.io/posts/shader-permutations-part1/

    We do an approach described here:

    1. Build the game without shader stripping, and enable shader logging. This takes long.
    2. Go through your project, parse what shaders were used from the logfile.
    3. Next builds *know* what is used, so make a shader postprocessor that strips out anything unused.
    4. When something new is used, repeat cycle.
     
  42. dnach

    dnach

    Unity Technologies

    Joined:
    Mar 9, 2022
    Posts:
    89
    As a general practice, it is recommended to disable graphics features that are not utilized at runtime (in the Render Pipeline assets and project settings). Please check the following documentation on guidelines for tracking and stripping variants:
    When authoring shaders, it is also recommended to follow the guidelines for shader keywords:
    https://docs.unity3d.com/2023.1/Documentation/Manual/shader-keywords.html

    You can also look into scriptable stripping, in order to exclude shader variants from compilation during build time (using shader keywords and combinations not required at runtime):
    https://docs.unity3d.com/ScriptReference/Build.IPreprocessShaders.OnProcessShader.html

    For your example above, pragmas inside conditionals should indeed be supported:
    https://docs.unity3d.com/2021.3/Documentation/Manual/SL-PragmaDirectives.html
    You may need to enable the Caching Shader Pre-processor depending on your version (used by default on later versions)

    If you are customizing/extending the render pipeline with additional graphics features, to be controlled from the Render Pipeline asset, you can set the keyword filtering attributes as described here: https://docs.unity3d.com/ScriptReference/ShaderKeywordFilter.FilterAttribute.html
     
    Last edited: Dec 26, 2022
    ekakiya2, AljoshaD, TJNBG and 2 others like this.
  43. OBiwer

    OBiwer

    Joined:
    Aug 2, 2022
    Posts:
    61
    Upgraded from 2022.1 to 2022.2.1f1
    Cold Build times went up from ~1.5 hours to 3hours
    Warm Build times went up from ~2minutes to 10minutes.

    Most of the time is spent "Compiling Shader variants"
     
    stonstad, lacas8282, kmowers and 3 others like this.
  44. Wully

    Wully

    Joined:
    Mar 18, 2014
    Posts:
    15
    Is there any way to extract a report of what multi_compile keywords were stripped by Variant Keyword Prefiltering on a warm build?
    So that we can use that information to either rewrite our shaders to remove keywords we never used, or to add them to our OnProcessShader call backs to make sure they get stripped even on cold builds
     
    EvOne likes this.
  45. aleksandrk

    aleksandrk

    Unity Technologies

    Joined:
    Jul 3, 2017
    Posts:
    3,011
    @Wully the variants are removed by prefiltering in both cold and warm builds. There's no need to do anything extra for cold builds - the resulting variant sets are exactly the same.
     
  46. Wully

    Wully

    Joined:
    Mar 18, 2014
    Posts:
    15
    Ah great thanks!
     
  47. Beauque

    Beauque

    Joined:
    Mar 7, 2017
    Posts:
    61
    Panick led me here.
    I just upgraded a project from 2021.3.11f1 and URP 12.1.7 to 2021.3.17f1 and URP 12.1.9, hoping on some shader compilation time improvements as I casually read about that in the Release notes. Since I already spent quite some time optimising the use of keywords in our custom shaders, compilation time and memory usage at runtime were already quite decent.
    However, the first android build after upgrade has taken nearly 4 hours, compared to max 2 hours before.
    Build size doubled (463 Mo to 898 Mo).
    And now when I run the application on Focus 3, it simply crashes at loading the one scene that contains most of the materials (so the shader variants) used in the project. What's happening...?


    Edit: My problems seem to be related to the URP package upgrade from 12.1.7 to 12.1.9, not Unity itself. When I reverted to URP 12.1.7 while keeping Unity 2021.3.17 everything went back to normal (build size, time and performances. No major build time improvement though, compared to 2021.3.11).
    I checked the Memory Profiler's Tree Map before and after URP upgrade in a scene that doesn't crash, the memory usage of each loaded shader doubled with URP 12.1.9.
    As URP 12.1.10 was released today I tested with this version as well but the problem is still there.
    There is something going on with keywords and shader variants management in URP but I guess this is no longer within the scope of this thread...
     
    Last edited: Feb 3, 2023
    Immu likes this.
  48. qwert024

    qwert024

    Joined:
    Oct 21, 2015
    Posts:
    43
    Henlo all, I am using Unity 2022.1.10f1+URP, and I can't find "Shader Settings" and "Shader Variant Loading Settings" shown in the screenshot. Do them not exist in 2022.1.10f1+URP?
    It would be awesome if anyone would shed some light!
     
  49. aleksandrk

    aleksandrk

    Unity Technologies

    Joined:
    Jul 3, 2017
    Posts:
    3,011
    @qwert024 it's available in 2021.3.12f1+, 2022.1.21f1+ and 2022.2.0b10+.
     
  50. qwert024

    qwert024

    Joined:
    Oct 21, 2015
    Posts:
    43
    Thank you!