Replies: 25 comments
-
Filter chain failure is odd, I wonder if it might be something in SPIRV-Cross.. Will take a look this or next week. |
Beta Was this translation helpful? Give feedback.
-
Metal GPU captures would be massively helpful here, as well as LLVM logs from the compiler if you’re able to get them. |
Beta Was this translation helpful? Give feedback.
-
Sure, I'll get captures from the ones that appear to be rendering nothing; can you provide any guidance on the latter point? Is there a way to get the compiler output to appear in stdout for example? Would compiling librashader in debug mode do the job? I notice that I already get compilation warnings from the shaders by default. |
Beta Was this translation helpful? Give feedback.
-
It should show up in debug logs in Xcode when first loading the shader. It’s not a librashader thing but a Metal -> MetalIR thing |
Beta Was this translation helpful? Give feedback.
-
Hmm, I don't get any output I can see from filter chain creation, even with Xcode Metal API and Shader validation enabled. I tried in the |
Beta Was this translation helpful? Give feedback.
-
Thats fine, I’ll investigate crt-guest-advanced-ntsc on my end. |
Beta Was this translation helpful? Give feedback.
-
Here are the GPU captures. They should be labeled appropriately. Let me know if you have any issues opening or getting relevant data from them! https://drive.google.com/file/d/11bNWB78_drEg1IW3t4ZcViupYgg8qQkd/view?usp=sharing For the vhs shader capture, it seemed to peg my GPU above a certain resolution, so I notched it just above that and took a capture. Again, that one could just be a shader issue, but I figured it was worth including. I also included a megabezel capture; it seems to be doing some very weird stuff indeed ( |
Beta Was this translation helpful? Give feedback.
-
mudlord-pal is a known broken shader: https://github.com/SnowflakePowered/librashader/actions/runs/8577373017/job/23509866495#step:4:376 seems like crt-guest-advanced has been failing, will need to double check but it smells like a shader issue. |
Beta Was this translation helpful? Give feedback.
-
Anime4k is also a known broken shader |
Beta Was this translation helpful? Give feedback.
This comment has been hidden.
This comment has been hidden.
-
Testing some things in ares and noticed another librashader issue with certain 'smoothing' shaders such as Left librashader, right RetroArch: Screenshots are of the megabezel shader; here is a gputrace from the https://drive.google.com/file/d/1NBePGt62XmFZ_mthqlR8YTj8EC7EFVdG/view?usp=share_link |
Beta Was this translation helpful? Give feedback.
-
I think the smoothing behaviour probably has to do with how mipmaps are handled. I won't have a shot at debugging this until a few weeks from now, sorry for the extended wait. |
Beta Was this translation helpful? Give feedback.
-
No worries! Nothing critical. I haven't finished testing either and it's possible there are upstream updates to some of the ones in this thread, I'll just keep adding reports and keeping the OP updated when time allows for me as well. |
Beta Was this translation helpful? Give feedback.
This comment has been hidden.
This comment has been hidden.
-
Seems like test/history.slangp is horribly broken for some reason. |
Beta Was this translation helpful? Give feedback.
-
22b2118 + e24beed definitively fix crt-geom-deluxe cebc7a9 fixes history |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
#125 should fix crt-guest-advanced-ntsc and crt-slangtest-* |
Beta Was this translation helpful? Give feedback.
-
#127 fixes
|
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
Updated OP; could not find any further filter chain creation failures or obviously incorrect outputs. Testing not totally exhaustive yet but fairly broad. Thanks for all the fixes! |
Beta Was this translation helpful? Give feedback.
-
KhronosGroup/SPIRV-Cross#2382 this should hopefully fix VHSPro (after bumping spirv-cross-sys) |
Beta Was this translation helpful? Give feedback.
-
spirv-cross-sys was updated and should fix |
Beta Was this translation helpful? Give feedback.
-
Converting this issue to a discussion until there are more concrete examples of shader failures on Metal. |
Beta Was this translation helpful? Give feedback.
-
Original Title: Metal Shader Compatibility Report (via ares emulator)
Native Metal support was recently added to ares to complement its librashader support. I've started to do some testing with a bunch of shaders and wanted to start reporting preliminary findings from the .slangp shader library it bundles.
Overall impressions are great. Most things seem to be working correctly and performing well.
I don't have a reference for how these shaders behave on other platforms, so I can mostly only point out things that seem 'obviously broken,' or else obvious things like compiler failures.
With that said, here's a preliminary list so far. I expect to eventually test everything, this is just from my first round of tests, to start getting stuff out there.
Last updated 9/18:
Loads fine, incorrect output
fixedcrt/crt-geom-deluxe.slangp
fixedcrt/crt-slangtest-cubic.slangp
fixedcrt/crt-slangtest-lanczos.slangp
blurring issue fixedpresets/crt-royale-smooth.slangp
blurring issue fixedbezel/Mega_Bezel/Presets/MBZ__0__SMOOTH-ADV.slangp
seems to be intendedtest/history.slangp
- stutteringFilter chain creation failure
vhs/VHSPro.slangp
fixedmisc/print-resolution.slangp
fixedmisc/patchy-color.slangp
fixedbfi/120hz-smart-BFI.slangp
fixedtest/pragma-name.slangp
fixedcrt/crt-guest-advanced-ntsc.slangp
fixed, was broken shadervhs/mudlord-pal-vhs.slangp
intended brokentest/feedback-noncausal.slangp
known broken shadersharpen/Anime4k.slangp
Other
vhs/vhs_and_crt_godot.slangp
- Loads, renders, but pegs GPU to 100% even at low resolutions. Could just be a shader issue.Other notes so far are that "megabezel" shader performance across the board is somewhat poor (i.e. worse than RetroArch) at ~4K resolutions when its reflections are enabled. This may simply be a shader issue but I figured worth including.
For testing, the ares' recent CI builds all include the Metal backend. I can provide more information or Metal GPU captures as well if needed for anything, if that is helpful.
Beta Was this translation helpful? Give feedback.
All reactions