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
paulk-leonov has quit [*.net *.split]
daniels has quit [*.net *.split]
marex-cloud has quit [*.net *.split]
hl has quit [*.net *.split]
daniels has joined #panfrost
paulk-leonov has joined #panfrost
hl has joined #panfrost
marex-cloud has joined #panfrost
stikonas has quit [Remote host closed the connection]
vstehle has quit [Ping timeout: 246 seconds]
davidlt has joined #panfrost
<HdkR> mmm, another bifrost :D
BenG83 has quit [Ping timeout: 248 seconds]
davidlt_ has joined #panfrost
vstehle has joined #panfrost
davidlt has quit [Ping timeout: 252 seconds]
mearon has quit [Ping timeout: 246 seconds]
mearon has joined #panfrost
davidlt_ has quit [Remote host closed the connection]
davidlt_ has joined #panfrost
davidlt_ has quit [Remote host closed the connection]
<tomeu> gtucker: I can do some experiments in that direction
<tomeu> alyssa: but answering your question, maybe we should just run tests on rk3399 for now
pH5 has joined #panfrost
adjtm has quit [Ping timeout: 245 seconds]
cwabbott has joined #panfrost
robertfoss has quit [Quit: WeeChat 2.3]
robertfoss has joined #panfrost
adjtm has joined #panfrost
TheKit has quit [Ping timeout: 245 seconds]
TheKit has joined #panfrost
TheKit has quit [Ping timeout: 246 seconds]
TheKit has joined #panfrost
afaerber has joined #panfrost
urjaman has quit [Quit: WeeChat 2.5]
urjaman has joined #panfrost
adjtm has quit [Remote host closed the connection]
<alyssa> tomeu: I would appreciate that :)
adjtm has joined #panfrost
BenG83 has joined #panfrost
<cwabbott> alyssa: just fyi, I happened to look at the midgard texture instruction definition, and remembered https://patents.google.com/patent/US20120304194
guillaume_g has joined #panfrost
<cwabbott> "cont" and "last" are probably actually the "kill" and "skip" flags described in the patent
<cwabbott> "kill" means that helper invocations aren't needed for anything after computing the derivative and hence can be killed
<cwabbott> "skip" means that texture fetch results aren't needed, so you can skip actually fetching the texture for helper invocations
<cwabbott> (but with "skip" the threads can't be killed bc they're used for something later)
adjtm has quit [Quit: Leaving]
<cwabbott> so, for a fragment shader like "color = texture(sampler1, coord) + texture(sampler2, coord);" you can set the skip bit on the first texture, since the result of sampling is just used to compute the color (which is discarded for helper invocations), and the second can have the kill flag
<cwabbott> but for something like "color = texture(sampler2, texture(sampler2, coord).xy);" the first texture can't have either flag set bc the result for helper invocations is used to compute the derivative for the second texture
<cwabbott> to get it right you have to do a dataflow analysis where you keep track of, for each register, "do the helper lanes need to be defined?" as well as for each basic block "do any later blocks do a texture or derivative"?
<cwabbott> then you propagate both things backwards
<cwabbott> what's tricky is that the two interact, since for something like if (condition) { foo = ... } else { foo = ... } ... = texture(sampler, foo);" the if condition has to have its helper invocations computed so that "foo" gets the correct thing for helper invocations
<cwabbott> even if it isn't directly involved, a conditional branch where you haven't killed the helper invocations yet must have the condition computed correctly for them, or else the helper invocations could get stuck into an infinite loop if it's inside a loop
<cwabbott> it's probably easiest to just assume that all branch conditions need helper invocations defined
guillaume_g has quit [Quit: Konversation terminated!]
pH5 has quit [Quit: bye]
pH5 has joined #panfrost
yann has quit [Ping timeout: 248 seconds]
hlmjr has quit [Remote host closed the connection]
hlmjr has joined #panfrost
adjtm has joined #panfrost
stikonas has joined #panfrost
BenG83 has quit [Ping timeout: 258 seconds]
jolan has quit [Quit: leaving]
herbmilleriw has quit [Quit: Konversation terminated!]
herbmilleriw has joined #panfrost
jolan has joined #panfrost
stikonas has quit [Read error: Connection reset by peer]
stikonas_ has joined #panfrost
<alyssa> Please tell me this field isn't the result of a random number generator.
afaerber has quit [Quit: Leaving]
<alyssa> Wooo, seemingly random values
<alyssa> 8-bit highly non-linear function of the vertex count, invariant with respect to the instance count
<alyssa> Wondering if it's some sort of remainder maybe
<alyssa> Actually, it is maybe more likely two nibbles sepately
<alyssa> I don't know, there's some pattern here, I'm just not seeing it
stikonas_ is now known as stikonas
somy has joined #panfrost
BenG83 has joined #panfrost
TheKit has quit [Quit: Leaving]
TheKit has joined #panfrost
TheKit has quit [Remote host closed the connection]
pH5 has quit [Ping timeout: 272 seconds]
stikonas has quit [Read error: Connection reset by peer]
stikonas has joined #panfrost
<alyssa> Hooray!
* alyssa got a special case of instanced draws working
<alyssa> Specifically, the actual instance dispatch works (and per-vertex attributes)
<alyssa> Totally useless for now, since neither divisors or gl_InstanceID are implemented yet
<alyssa> But divisors are coming up next after a break!
* alyssa plays commercial
afaerber has joined #panfrost
<alyssa> ...and we're back!
* alyssa did git surgery
<alyssa> Okay, divisors, this will be.......... Inteesting.
<alyssa> Next up I guess is power-of-two instance divisors
<chrisf> alyssa: are instance divisors going to be unpleasant on this hw? in practice, the divisor is almost always 1
<alyssa> chrisf: Meh, I'm not too worried.
<alyssa> There's a power-of-two mode which should be suuuper easy (and already work but ya know)
<alyssa> And then there's a NPOT mode which is.. yes, a bit unpleasant, but I'm not too worried
<alyssa> Well, this is... closer
<alyssa> ("Is it really?")
<alyssa> Just because I don't *see* any difference whatsoever doesn't mean it isn't there, um
<alyssa> Surely the universe is toying with me
<alyssa> ....Ok, now this is just silly
<alyssa> ...Oh.
<alyssa> Dumb corner case that nobody but conformance test authors would think of.
* alyssa shrugs
<alyssa> Silly questions get silly answers, my friend.
<alyssa> Oh, fun, I regressed everything
<alyssa> OK, valid
<alyssa> Well, that's a day
<alyssa> Instanced draws now mostly work
<alyssa> Still need to implement NPOT divide (tomorrow)
<alyssa> And eventually gl_InstanceID (later.. still don't have gl_VertexID either lol)
<robclark> alyssa: can mali *really* do a 2k x 2k tile? That is more or less no longer tiled and just vram :-P
BenG83 has quit [Read error: Connection reset by peer]
BenG83 has joined #panfrost