Unity-Technologies / DynamicResolutionSample

A drop-in dynamic resolution script
Other
137 stars 21 forks source link

macOS metal #5

Open alvinsat opened 1 year ago

alvinsat commented 1 year ago

is this should works on mac m1 ?

MattSutherlin commented 1 year ago

It's definitely supported by Metal. I don't know for sure if the M1 hardware is expected to work with it. I imagine it should, but I don't have any to test myself. I'll see if I can track down more definitive info and get back to you.

alvinsat commented 1 year ago

I tried and it looks like not working on my end I tested on macbook air m1 2020 with unity 2021.3.11f1. Thank you for the feedback

Torgo13 commented 1 year ago

https://docs.unity3d.com/Manual/frame-timing-manager.html

In the Platform Support section, the documentation says that platforms that use the metal API tend to report higher GPU timings due to them using tile-based deferred rendering.

I've found that this script works on Android with Vulkan but always uses the minimum resolution on macOS and iOS, since it thinks it's taking longer to render each frame than it really is. Either I'll need to add some scale factor to the target frame time or I'll have to use something other than the FrameTimingManager to measure GPU time. Microsoft's Visual Profiler falls back to using unscaledDeltaTime if it detects that FrameTimingManager isn't supported, but only for measuring CPU time.

Time.unscaledDeltaTime * 1000.0f

gregharding commented 1 year ago

We're seeing macOS with URP and dynamic resolution not work in 2021.3 LTS when MSAA is enabled (screen goes black), and in 2022.3 LTS the game view in the editor does not render and if the camera 'Opaque Texture' is On then both the scene view and game view stop rendering, the console dumps endless errors and the editor has to be restarted. Dynamic resolution seems pretty broken on macOS.

I submitted a bug report and repro project: CASE IN-49127

Relates to this issue (amongst others); https://issuetracker.unity3d.com/issues/urp-after-enabling-urp-dynamic-resolution-the-game-view-is-not-rendered

And forum threads like this; https://forum.unity.com/threads/cameras-with-allow-dynamic-resolution-renderes-random-stuff.1434226/ https://forum.unity.com/threads/urp-and-some-errors.1391959

Update: After doing some more testing on 2022.3 LTS and iOS it appears that dynamic resolution is pretty broken on iOS as well for our project. Various URP combinations of dynamic resolution, camera enabling opaque texture, post processing, hdr, etc. all seem to blow up URP blitting and other stuff with endless console errors, nullrefs in the pipeline, RTs maybe not existing. Not really sure how to diagnose the issues - there's so many of them and sending bug reports at Unity QA is a bit of a black hole.