alyssa changed the topic of #panfrost to: Panfrost - FLOSS Mali Midgard & Bifrost - https://gitlab.freedesktop.org/panfrost - Logs https://freenode.irclog.whitequark.org/panfrost - Transientification is terminating. Memory reductions in progress.
mmind00 has quit [Quit: No Ping reply in 180 seconds.]
stikonas has quit [Remote host closed the connection]
anarsoul|2 has quit [Ping timeout: 268 seconds]
<alyssa> Alyssa: ...Eh, I'm feeling zany, let's do some occlusion queries I guess :p
<alyssa> I know skipping around like this is maybe not a great idea but.... *shrugs*
<alyssa> :P
<HdkR> The party train never ends
<HdkR> btw. The game that takes advantage of occlusion queries is Mario Sunshine. It uses render targets for "goop" that appears on the map. When you're using FLUDD to wash the goop away it is actually effecting an RT(in a zany way but w/e). One particular level in the game is about cleaning the level of all of its goop. It does this check by using the original hardware's "samples rendered" performance register.
<HdkR> It ends up clearing the register to zero. Drawing the RT at full resolution in a quad. Reading the performance counter afterwards. If that counter is below a threshold(So you've cleared all the goop in the RT) then the level completes and you win a shine
<alyssa> Can I just say
<alyssa> Reading performance counters for game logic is insane
<alyssa> ly cool
<HdkR> Games also read the "bounding box" performance registers and peek in to the framebuffer live in the draw stream
<HdkR> Bounding box registers give you the min and max coordinates that pixels were touched in screen space
<HdkR> There just isn't any hardware that supports that natively aside from the silly ArtX thing
<alyssa> ....Huh
<HdkR> Dolphin emulates it with global atomics in the fragment shader which tank performance
KCS has joined #panfrost
<alyssa> Oy vey
<alyssa> HdkR: What about native via actual GPU performance counters, vendor-specific? :P
<alyssa> Suppose there's not hw like that either :p
<HdkR> hm?
<HdkR> What do you mean?
<alyssa> Just being silly
<HdkR> alyssa: btw, the only way a game would read these performance counters accurately was to stick a breakpoint + CPU interrupt in to the GPU's fifo command stream :P
<HdkR> Which would completely stall out whatever the GPU was doing, so you had to make sure to get in and start it back up again as fast as possible
<alyssa> What in the
<HdkR> :D
<HdkR> There's an art in its simplicity
pH5 has quit [*.net *.split]
BenG83 has quit [*.net *.split]
Marex has quit [*.net *.split]
WeaselSoup has quit [*.net *.split]
bnieuwen1uizen has quit [*.net *.split]
KCS is now known as WeaselSoup
<HdkR> I'm sure the same technique can be applied to kernel drivers for debugging purposes
<alyssa> Okay, I have a query and not query sample
<alyssa> Differences are.. hm:
<alyssa> - gl_enables is ORed with 0xf instead of 0x7 for query (one bit flipped)
<alyssa> - unk3 is 0x2500 instead of 0x2100 (one bit flipped again)
<alyssa> But... what?!
pH5 has joined #panfrost
<alyssa> Oh, and there's a massive new buffer filled with 0xffffff
<alyssa> Wat
<alyssa> 262143 entries
<alyssa> Er
<alyssa> One uint32_t for each pixel on screen (512x512 framebuffer)
<alyssa> Seems significant!
<HdkR> woo precise occlusion queries
<alyssa> ....Nope, it's the depth buffer apparently
<alyssa> Wat wat
<HdkR> lol
<alyssa> I guess we can do glReadPixels on D/S after all?
<alyssa> :P
<HdkR> Wonder if one of the ES versions allowed it
<alyssa> HdkR: I more meant that the D/S buffer can be linear in main memory if we set it up that way, and then we can read it however much we want
<alyssa> Okay, think I have good data now
<alyssa> Actual differences:
<alyssa> gl_enables ored with 0x8 as before
<alyssa> ....but what else?!
<HdkR> Oh
<HdkR> Yea, I could see that supporting linear on newer things :P
<alyssa> Difference between CONSERVATIVE and not... seemingly nothing
<alyssa> I feel like there's a political commentary here
<HdkR> Never
<alyssa> I genuinely don't see how this works, wha?
<alyssa> Is it communicating out of bound somehow?
<alyssa> (Nothing suspicious in strace)
<alyssa> memory_18[1008] = 0x1
<alyssa> That looks promising somehow
* alyssa chases the pointers
<alyssa> Very promising, looks like obscured by a panwrap bug maybe
<alyssa> Yeah, okay, that sounds right
<alyssa> "zero6" in the TILER descriptor is a pointer to occlusion query writeout
<alyssa> Unfortunately it really is boolean
<alyssa> (Still need to implement to be sure, but)
<alyssa> Am I misremembering or is there a hack where we claim to only support 1-bit counters? =P
_whitelogger has joined #panfrost
rhyskidd has quit [Quit: rhyskidd]
rhyskidd has joined #panfrost
rhyskidd has quit [Quit: rhyskidd]
rhyskidd has joined #panfrost
pH5 has quit [Quit: bye]
rhyskidd has quit [Quit: rhyskidd]
rhyskidd has joined #panfrost
mateo` has joined #panfrost
pH5 has joined #panfrost
tgall_foo has quit [Ping timeout: 272 seconds]
belgin has joined #panfrost
belgin has quit [Client Quit]
rhyskidd has quit [Quit: rhyskidd]
rhyskidd has joined #panfrost
<cwabbott> alyssa: is your test doing GL_SAMPLES_PASSED or GL_ANY_SAMPLES_PASSED? it seems like only one of those is boolean
<cwabbott> there's probably some bit in gl_enables that controls that
rhyskidd has quit [Quit: rhyskidd]
rhyskidd has joined #panfrost
mmind00 has joined #panfrost
rhyskidd has quit [Quit: rhyskidd]
rhyskidd has joined #panfrost
BenG83 has joined #panfrost
BenG83 has quit [Ping timeout: 268 seconds]
raster has joined #panfrost
<tomeu> raster: I cherry picked some patches from lima that effectively disable the buffer_age extension
<tomeu> that way weston doesn't try to use partial updates, which aren't supported yet by panfrost
<raster> tomeu: disable? nooooooooo!:)
<raster> i guess since its not enabled...thats might fix up a bunch of the artifacts
<raster> err mat might fix
<tomeu> no problem, it can be enabled again once we get partial updates working :)
<raster> that might
<raster> damn changing kbds
<raster> yeah
<tomeu> would you like to debug it and find out why they aren't working?
<raster> one thing i do know is partial updates are a bit of a pain inside driver land due to the tiled rendering
<tomeu> yeah, that's what I have understood from alyssa
<raster> you have to explicitly init a tile with "no content" and explicitly dma in the regions from the backbuffer that you will not render/clip to
<raster> our support explicitly sets a scissor clip for this and the mali driver used it as a hint to know which are we will render that can be left untouched (dont dma in from backbuffer) vs the areas around that round up to tile size that need to be dma'd in
<raster> anyway - yeah. i'm happy to test/debug things
<raster> i need to now de-porsonalize my rockpro64 img so somne others can get these and also have them working
<raster> i'll happily work with you - i dont know my way around mesa's internals
<raster> but i do know my way around egl/gles and i know what we do with it and why :)
<tomeu> excellent, let me gather some pointers
<tomeu> raster: these commits need to be reverted so that buffer_age is advertised again: f5d96dcf3193 31b00662dbb4 20cf81ffcf46
<raster> tomeu: wait wait.... i ned to fix uop my tree. i merged in the MR branches
rhyskidd has quit [Quit: rhyskidd]
<tomeu> that's my rough guess, alyssa will be able to give you better directions
<raster> i need to unmerge
<tomeu> raster: why unmerge?
<raster> also my personal, fix for the cbuf patch is there too
<tomeu> I gave them a look today and looked good
<raster> so they'll be merged anyway?
<tomeu> ah, ar eyou going to send a MR with it?
<tomeu> I would hope so
rhyskidd has joined #panfrost
<raster> hmm i thought you already had other changes to do there....
<tomeu> I'm absing my work on top of them
<raster> right now... i'm not sure i can contribute patches
<raster> rules
<tomeu> oh, I see
<raster> i can ... share a small bit of code change i may have made
<raster> and up to you to take it as a hint
<raster> :)
<raster> i can test and report and point at code
<raster> i cant contribute
<raster> maybe... in future
<tomeu> ack
afaerber has quit [Quit: Leaving]
afaerber has joined #panfrost
afaerber has quit [Client Quit]
afaerber has joined #panfrost
rhyskidd has quit [Quit: rhyskidd]
rhyskidd has joined #panfrost
rhyskidd has quit [Quit: rhyskidd]
rhyskidd has joined #panfrost
rhyskidd has quit [Quit: rhyskidd]
rhyskidd has joined #panfrost
raster has quit [Ping timeout: 268 seconds]
raster has joined #panfrost
rhyskidd has quit [Quit: rhyskidd]
rhyskidd has joined #panfrost
belgin has joined #panfrost
belgin has quit [Quit: Leaving]
shadeslayer[m] has quit [Ping timeout: 250 seconds]
thefloweringash has quit [Ping timeout: 264 seconds]
sphalerit has quit [Ping timeout: 260 seconds]
thefloweringash has joined #panfrost
sphalerit has joined #panfrost
belgin has joined #panfrost
<tomeu> alyssa: have completed the kbase split in the last commit in https://gitlab.freedesktop.org/panfrost/mesa/merge_requests/22
<tomeu> it's not working yet, need to debug a bit
<tomeu> but was wondering if that matches what you were thinking of
rhyskidd has quit [Quit: rhyskidd]
rhyskidd has joined #panfrost
tgall_foo has joined #panfrost
BenG83 has joined #panfrost
jernej has quit [Remote host closed the connection]
jernej has joined #panfrost
belgin has quit [Quit: Leaving]
adjtm_ has quit [Ping timeout: 240 seconds]
rhyskidd has quit [Quit: rhyskidd]
<alyssa> cwabbott: ANY_SAMPLES_PASSED... the non-boolean one is desktop-only afaik, so while the bit is almost certainly there, it's not going to show up in blob output
<alyssa> tomeu: Woo, nice
adjtm has joined #panfrost
raster has quit [Remote host closed the connection]
rhyskidd has joined #panfrost
rhyskidd has quit [Quit: rhyskidd]
rhyskidd has joined #panfrost
<ezequielg> alyssa: \o
<ezequielg> two afbc buffers you mean meta and main?
pH5 has quit [Quit: bye]
krh has joined #panfrost
pH5 has joined #panfrost
stikonas has joined #panfrost
afaerber has quit [Quit: Leaving]
anarsoul|2 has joined #panfrost
rhyskidd has quit [Quit: rhyskidd]
rhyskidd has joined #panfrost
rhyskidd has quit [Remote host closed the connection]
rhyskidd has joined #panfrost
rhyskidd has quit [Quit: rhyskidd]
rhyskidd has joined #panfrost
rhyskidd has quit [Quit: rhyskidd]
rhyskidd has joined #panfrost
stikonas has quit [Remote host closed the connection]
AntonioND has joined #panfrost
robert_ancell has joined #panfrost
rhyskidd has quit [Quit: rhyskidd]
rhyskidd has joined #panfrost
NeuroScr has joined #panfrost
rhyskidd has quit [Quit: rhyskidd]
rhyskidd has joined #panfrost
adjtm has quit [Ping timeout: 272 seconds]
adjtm has joined #panfrost
rhyskidd has quit [Quit: rhyskidd]
rhyskidd has joined #panfrost
<alyssa> ezequielg: ~~That's the one~~ Those are the two
<alyssa> tomeu: Thank you for the review :)
rhyskidd has quit [Quit: rhyskidd]
rhyskidd has joined #panfrost
rhyskidd has quit [Quit: rhyskidd]
rhyskidd has joined #panfrost
AntonioND has quit [Quit: Quit]
stikonas has joined #panfrost
NeuroScr has quit [Quit: NeuroScr]
mateo` has quit [Ping timeout: 246 seconds]
mateo` has joined #panfrost
NeuroScr has joined #panfrost
<alyssa> !!!!
<alyssa> Sorry wrong buffer, no need to get you guys all excited
<anarsoul|2> :(