alyssa changed the topic of #panfrost to: Panfrost - FLOSS Mali Midgard & Bifrost - https://gitlab.freedesktop.org/panfrost - Logs https://freenode.irclog.whitequark.org/panfrost - <daniels> avoiding X is a huge feature
TheCycoONE has quit [Ping timeout: 246 seconds]
TheCycoONE has joined #panfrost
vstehle has quit [Ping timeout: 248 seconds]
TheCycoTWO has joined #panfrost
TheCycoONE has quit [Ping timeout: 268 seconds]
<Lyude> HdkR: gonna try spending some time this weekend on sunday
<HdkR> =o
<HdkR> Cool!
unoccupied has joined #panfrost
unoccupied has quit [Client Quit]
vstehle has joined #panfrost
TheCycoONE has joined #panfrost
rhyskidd has quit [Read error: Connection reset by peer]
TheCycoTWO has quit [Read error: Connection reset by peer]
MoeIcenowy has quit [Quit: ZNC 1.6.5+deb1+deb9u1 - http://znc.in]
MoeIcenowy has joined #panfrost
MoeIcenowy has quit [Quit: ZNC 1.6.5+deb1+deb9u1 - http://znc.in]
MoeIcenowy has joined #panfrost
MoeIcenowy has quit [Quit: ZNC 1.6.5+deb1+deb9u1 - http://znc.in]
MoeIcenowy has joined #panfrost
MoeIcenowy has quit [Client Quit]
MoeIcenowy has joined #panfrost
_whitelogger has joined #panfrost
_whitelogger has joined #panfrost
thefloweringash has quit [Read error: Connection reset by peer]
travankor1 has quit [Read error: Connection reset by peer]
travankor1 has joined #panfrost
thefloweringash has joined #panfrost
stikonas has joined #panfrost
_whitelogger has joined #panfrost
stikonas has quit [Remote host closed the connection]
_whitelogger has joined #panfrost
<HdkR> Lyude: btw, if you have any questions then I'll be around to answer anything :)
stikonas has joined #panfrost
herbmillerjr has quit [Quit: Konversation terminated!]
anarsoul has quit [Ping timeout: 246 seconds]
anarsoul has joined #panfrost
Lyude has quit [Read error: Connection reset by peer]
Lyude has joined #panfrost
herbmillerjr has joined #panfrost
anarsoul has quit [Read error: Connection reset by peer]
anarsoul has joined #panfrost
herbmillerjr has quit [Quit: Konversation terminated!]
<anarsoul> alyssa: out of curiosity, does nir_intrinsic_store_output have to be the last instruction in fragment shader on midgard?
<anarsoul> we have this limitation on utgard - store_color is a mov to register 0 and stop bit set in control word
<HdkR> anarsoul: Midgard compiler pins the outputs to the GPRs. So it doesn't necessarily need to be the last things but it makes it so you can't use those registers anymore :P
<anarsoul> I see
<anarsoul> I'm struggling with this shader on utgard: https://gist.github.com/anarsoul/9e03b23740b067466e2f2edff180d3cf
<HdkR> Bifrost does stores to the tile memory region which then gets pushed off to the blend shader during the tile job
<HdkR> (As far as I can tell)
<HdkR> What a mean shader
<anarsoul> it's one from piglit
<HdkR> I wonder if there is a pass that moves discards up the shader as much as it can
<HdkR> There should be a way to work around it though, Since Utgard, Midgard, and Nvidia all use GPRs as the ABI for outputs
<HdkR> grepping around for...discard_if? might give some insight?
<alyssa> anarsoul: Yeah, we have the move-to-0 shtick as well
<alyssa> Haven't done a proper fix for it
<anarsoul> HdkR: I discard_if implemented, the problem is ordering
<alyssa> Haven't done a proper fix for it
<alyssa> Oop
<anarsoul> store_output is the end of shader
<alyssa> anarsoul: You _can_ always, you know, schedule it to be like that
<anarsoul> if it gets into the first instruction shader will terminate after first instruction
<alyssa> But that'll mess up control flow prolly
<anarsoul> alyssa: yeah, and that's the issue
<anarsoul> it already messes up control flow which I'm working on
<alyssa> anarsoul: The lazy way is to emit the move to r0 on store_output and then never touch r0 again
<alyssa> And then do the stop bit at the end of the shader unconditionally
<alyssa> (Which is what Pan does)
<anarsoul> alyssa: we've got only 6 registers.
<alyssa> Ouch
<HdkR> Big ouch
<anarsoul> well, there's passthrough between different stages
<anarsoul> i.e. I don't need a register to load constant
<HdkR> alyssa: Do you know if there is a piglit test that does discard and still calculates derivatives after the discard? :)
<HdkR> I presume there is at least a CTS for it
<alyssa> I don't have derivatives implemented yet so dunno
<HdkR> hehe
<HdkR> I looked a smidge at how they are implemented on bifrost /without/ discard
<HdkR> It's a handful of instructions but not too terrible
<HdkR> But I haven't checked about what it does when discard comes in to play :P
<HdkR> I'm hoping it is handled in hardware
<HdkR> (Which is what Nvidia does)
<alyssa> HdkR: I didn't realized derivatives are defined when one of the threads discaards..
<HdkR> Pretty sure ever since Helper Invocations were defined then they are required to work
<alyssa> But if the helper discards T_T
<HdkR> So there are architectures that if they still have live threads in a quad then a discard isn't real :P
<HdkR> So they are still there consuming pipeline resources and generally getting in the way
<HdkR> Discard only really happening once all threads in the quad are dead situation
adjtm_ has joined #panfrost
adjtm has quit [Ping timeout: 246 seconds]
* alyssa startles her shadow
<HdkR> spook'ems
mateo` has quit [Ping timeout: 246 seconds]
<alyssa> I'm writing a firm-but-polite letter to the ML poking a *lot* of interested parties. We'll see what happens.
<alyssa> --Wrong buffer *blush*
<alyssa> Nothing to see here folks, move along now *whistles*
mateo` has joined #panfrost
rhyskidd has joined #panfrost
stikonas has quit [Ping timeout: 246 seconds]