<bbrezillon>
tomeu: look like queueing several wallpaper draws (I tried with 4) doesn't work
<bbrezillon>
the chain is something like that: set_value -> WP{N}_vertex -> regular_vertex{X} -> WP{N}_tiler -> regular_tiler{X}
sravn has quit [Quit: WeeChat 2.4]
cwabbott has quit [Quit: cwabbott]
cwabbott has joined #panfrost
cwabbott has quit [Quit: cwabbott]
cwabbott has joined #panfrost
sravn has joined #panfrost
buzzmarshall has joined #panfrost
<shadeslayer[m]>
bbrezillon: What exactly is a wallpaper job btw?
<shadeslayer[m]>
or am I correct in inferring that it's simply a job that draws the wallpaper ( like on a desktop )
<bbrezillon>
shadeslayer[m]: it's a job that reloads the FB content in the tiler buffer
<bbrezillon>
tomeu: please ignore my question, I found my bug :-)
<bbrezillon>
s/question/comment/
<tomeu>
sorry, missed it
<bbrezillon>
shadeslayer[m]: to understand why this wallpapering step is needed, you need to understand how a tiled-based renderer works (I went through this a few weeks back ;-))
<bbrezillon>
daniels: so, my dummy implem of partial_update works
<tomeu>
why dummy?
<bbrezillon>
because I just pick the biggest damage region
<shadeslayer[m]>
bbrezillon: <3
<bbrezillon>
tomeu: no extra smartness to merge regions or deal with non-overlapping regions
<daniels>
I wouldn't worry about merging regions
<daniels>
if clients provide suboptimal input, they'll get suboptimal results \_o_/
<bbrezillon>
other things to improve: try to generate a single draw call with several quad vertices instead of 1 draw per reload region (I currently have up to 4 reload rects because I only support one damage rect, but it might rapidly grow if we only reload what's strictly needed)
<tomeu>
not that dummy then :)
<alyssa>
How -does- partial_update work anyway on Mali?
<daniels>
alyssa: scissors the wallpaper jobs
<daniels>
if a client submits partial_update regions and then submits rendering which lands outside those regions, the results are undefined, so you don't need to try to walk the tiler poly list and clip that or anything
<daniels>
but it's just avoiding excessive reload into the tile buffer
<bbrezillon>
alyssa: IIRC, yuq told us they it was a per-tile decision
<bbrezillon>
which we could also do
<bbrezillon>
s/they//
<alyssa>
Hm
<alyssa>
I have a patch from the other day which does kind of that but not really?
<alyssa>
It's sort of like.... the framebuffer itself (the FRAGMENT job) has a scissor?
<alyssa>
So inn that commit, we merge per-draw scissors and use that for the FRAGMENT scissor and save a crapton of write bandwidth on well-behaved UI?
<alyssa>
(And read bandwidth if you're wallpapering, of course)
<bbrezillon>
yep
<alyssa>
bbrezillon: (To be clear, partial_update is orthogonal to this, yes?)
<daniels>
yeah, scissoring frag is really good, but also orthogonal
<alyssa>
Sweet
<daniels>
well-behaved clients need to use partial_update as well as scissor
<daniels>
(though your assertion that clear is unaffected by scissor is incorrect?)
<daniels>
glClear doc says: 'The pixel ownership test, the scissor test, dithering, and the buffer writemasks affect the operation of glClear. The scissor box bounds the cleared region.'
<alyssa>
Probably, there's a reason that commit isn't merged ^_^
<alyssa>
daniels: The Gallium clear callback only applies to unmasked, unscissored clears
<alyssa>
daniels: If there is a mask or scissor, mesa/st turns it into a quad
<alyssa>
The bigger issue is that *that* quad does *not* have the scissor set on it, which I tried to fix but regressed every driver in existence so that's not merged ^^
<alyssa>
(That broke scissoring on sway)
<daniels>
ahh, I see
<alyssa>
tomeu: Next up is vectorization regression fix, take #2 I think
<daniels>
bbrezillon: thanks! the core stuff looks good to me, but to be honest I don't know enough about the driver to comment on that part
<alyssa>
(Did I miss a link?)
<alyssa>
Oh, there tis
<alyssa>
bbrezillon: "flip the Y" oh no
<bbrezillon>
:-/
<bbrezillon>
don't have a choice on this one
<alyssa>
It'll break things
<bbrezillon>
no, I mean, KHR_partial_update explicitly says the damage region is bottom-left based
<alyssa>
bbrezillon: Also, I'm hoping the scoreboarding stuff (when it lands) will clean up your patch dramatically since all the hunks trying to explicitly set deps should go away
<bbrezillon>
yep
<bbrezillon>
looking forward to have this rework merged
<bbrezillon>
but let's settle on something more important first: indentation => spaces or tabs :D
<bbrezillon>
I keep changing my vim rules based on the file I'm editing
<alyssa>
tomeu: Found the issue with the autovectorization, heh
<tomeu>
\o/
<bbrezillon>
alyssa: the problem is, we have files using tabs other using spaces and some with a mix of tabs and spaces
<alyssa>
bbrezillon: ..Right
<alyssa>
At some point we could do astyle on the whole thing, but insane code churn. Which is fine but that can only happen when there are no outstanding patches, since that's.. a lot... of conflicts ;)
<shadeslayer[m]>
<alyssa "bbrezillon: https://people.colla"> Google chrome wants to translate that file -.-
<alyssa>
Al espanol?
<shadeslayer[m]>
<alyssa "Al espanol?"> desde frances a ingles
<alyssa>
Tu parles francais? Impressif! :p
<shadeslayer[m]>
<alyssa "Tu parles francais? Impressif! :"> hah, I'm in Paris now, I'm starting French classes next week :P
<alyssa>
<---- No habla ma que espanol y ingles pero puede fingir hablar frances
<shadeslayer[m]>
lol
<alyssa>
tomeu: Parche on the ML for the autovectorizacion ;P
<shadeslayer[m]>
<alyssa "<---- No habla ma que espanol y "> solo necessites a practicar que tu sabes, y despues poco tiempo, tu conoces Castellano :P
<alyssa>
With that sorted, next up I think is reviving scissor stuff
<shadeslayer[m]>
I went to Spanish classes for 3 months and pretty much picked up all of my vocab and grammar rules, then just kept making more mistakes and getting more comfortable in the language
<shadeslayer[m]>
In French I can say "I want" and "I go to" now :P
pH5 has quit [Quit: bye]
<tomeu>
alyssa: do you mind if I push panfrost/midgard: Broadcast swizzle once it passes CI?
<alyssa>
tomeu: bbrezillon: Scissor test stuff updated (v2 of the mesa/st one in an MR, the Panfrost one [the patches are independent but complementary] in the ML)
<alyssa>
tomeu: Please do!
<alyssa>
tomeu: I've learned it's better if I just don't push anything ;P
<tomeu>
shadeslayer: and, can you review "[PATCH] panfrost: Set job requirements during draw
<tomeu>
" please?
somy has quit [Quit: Leaving...]
<tomeu>
alyssa: well, maybe once the CI works as it should... :p
<alyssa>
What ever happened to my constant bias patches
<alyssa>
Oh, they're on the list
<alyssa>
I guess I can push the compute FBD stuff since that's purely decode, no functional changes to the driver
<tomeu>
alyssa: not even when running dEQP-GLES2.functional.shaders.swizzles.vector_swizzles.*?
<alyssa>
It's still running but no, they're passing
<alyssa>
Oh wait
<alyssa>
Wrong tree?
* alyssa
hides
<alyssa>
Ohhhhhhhhhhfaksjfgadhgfeqkjfhwrelksf
<alyssa>
Take 3
<alyssa>
tomeu: Take 3 pushed. Should fix it.
<alyssa>
Feel like playing whackamole.
<bbrezillon>
alyssa: scissor patch => couldn't we clamp the blitter src/dest box based on the current scissor state?
<bbrezillon>
this way we wouldn't need the ->in_wallpaper field
<alyssa>
bbrezillon: Maybe?
<alyssa>
I feel like this is an instance where it might be better to land it uglily since the wallpaper code will be siginifcantly overhauled soon anyway (between mipmaps, partial update, and scoreboarding)
<alyssa>
If it's not activelt causing regressions, I mean
<alyssa>
tomeu: Hey, I found a regression before pushing, proud? :p
<bbrezillon>
alyssa: fair enough
yann has joined #panfrost
<alyssa>
tomeu: I just landed the lima/panfrost tiling merge.
<alyssa>
I did do some local CI and fixed a regression before it was pushe, proud? ;p
<alyssa>
It is totally possible some tests started passing because of this that I didn't catch, but that's easier ;)
<bbrezillon>
alyssa: can you push "nir/lower_tex: Add an assert() in nir_lower_txs_lod()" for me (I take the blame if there's a regression :))
yann has quit [Ping timeout: 268 seconds]
<alyssa>
bbrezillon: Where is the commit?
chrisf_ has joined #panfrost
chrisf has quit [*.net *.split]
<bbrezillon>
alyssa: you want a branch?
<bbrezillon>
thought you were applying patches with git am