<alyssa>
because I decided I'd had enough of CTS crunch time and wanted to write a silly optimization pass just for fun ;)
<alyssa>
please test with Darwinia since clearly I'm no good at testing discard, lolz
mkurz has quit [Ping timeout: 480 seconds]
cylm has joined #asahi-gpu
possiblemeatball has joined #asahi-gpu
<alyssa>
--
<alyssa>
It's nice, retesting Dolphin and seeing perf has creeped up since last time
<alyssa>
not by a lot, but a little
alyssa has quit [Quit: Lost terminal]
cylm_ has joined #asahi-gpu
cylm has quit [Ping timeout: 480 seconds]
ourdumbfuture has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
mkurz has joined #asahi-gpu
amarioguy has joined #asahi-gpu
ourdumbfuture has joined #asahi-gpu
alyssa has joined #asahi-gpu
<alyssa>
and with a zero extension has flags 3, second source
barrowsx has joined #asahi-gpu
HardWallzz has joined #asahi-gpu
Guest3184 has quit [Quit: Bridge terminating on SIGTERM]
rhysmdnz has quit [Quit: Bridge terminating on SIGTERM]
HardWall has quit [Ping timeout: 480 seconds]
<alyssa>
for sample shading + fs side effects, Apple wraps device_store instructions in `if ((1 << sample_id) & sr60l != 0)`
Jamie has joined #asahi-gpu
rhysmdnz has joined #asahi-gpu
Jamie is now known as Guest3264
<alyssa>
for sample shading + fs side effects + discard..
<alyssa>
+ early frag
<alyssa>
Each iteration of the sample loop is wrapped in `if ((1 << sample_id) & sr60l != 0)`
<alyssa>
um this is probably invoking undefined behaviour isn't it lol
<alyssa>
no this is ok
<alyssa>
Inside that if, it does
<alyssa>
sample_mask(1 << sample_id, ~0)
<alyssa>
if (discard condition) {
<alyssa>
sample_mask(1 << sample_id, 0)
<alyssa>
}
<alyssa>
store
<alyssa>
sample_mask (1<<sample_id, ~0)
<alyssa>
yeah no this seems wrong
<alyssa>
in principle, this is saying "run depth/stencil tests, then discard" as required by the spec
<alyssa>
but how does the store get masked?
<alyssa>
isn't it running tets twice?
<alyssa>
not sure what to make of this
<alyssa>
maybe a metal bug, who knows
<alyssa>
/System/Library/PrivateFrameworks/GPUCompiler.framework/Versions/31001/Libraries/lib/clang/31001.523/include/metal/metal_texture:7168:3: error: static_assert failed due to requirement '_is_any_of((metal::access)2, access::read)' "Multisample textures must have access qualifier access::read"
<alyssa>
Oooooooof
<alyssa>
Ughhhhh
<alyssa>
So does the hardware support multisampled images? >:
<alyssa>
cause if not i'm going to be annoyed
* alyssa
is annoyed
ourdumbfuture has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
ourdumbfuture has joined #asahi-gpu
<alyssa>
should be straightforward to lower with a similar technique to texture atomics, but ugh
barrowsx has quit [Quit: barrowsx]
barrowsx has joined #asahi-gpu
barrowsx has quit []
dorkbutt has joined #asahi-gpu
possiblemeatball has quit [Quit: Quit]
maximbaz has quit [Quit: bye]
maximbaz has joined #asahi-gpu
barrowsx has joined #asahi-gpu
cylm_ has quit [Ping timeout: 480 seconds]
nimprod3l has joined #asahi-gpu
ourdumbfuture has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
ourdumbfuture has joined #asahi-gpu
Retr0id has quit [Read error: Connection reset by peer]
Retr0id has joined #asahi-gpu
Axenntio has joined #asahi-gpu
barrowsx has quit [Quit: barrowsx]
barrowsx has joined #asahi-gpu
barrowsx has quit []
nimprod3l has quit [Ping timeout: 480 seconds]
Axenntio has quit [Ping timeout: 480 seconds]
barrowsx has joined #asahi-gpu
barrowsx has quit [Quit: barrowsx]
barrowsx has joined #asahi-gpu
barrowsx has quit [Quit: barrowsx]
ourdumbfuture has quit [Quit: My Mac has gone to sleep. ZZZzzz…]