<bbrezillon>
but before I go and split/cleanup the last commit I'd like to know how you feel about using a hash table for the blit shader cache
<bbrezillon>
if we want to use the pre-frame mechanism, we need to have single shader that reloads all RTs, and another one that reloads the Z and S components
<bbrezillon>
that means the 3-dimensional table used to store the blit shaders no longer works for those complex case (the logic was assuming one shader per RT)
<bbrezillon>
in the implem I have right now I got rid of this static table and forced lazy creation for all blit shaders, but I could go back to a mixed solution where single RT shaders are pre-allocated and only multi-RT shaders are kept in the hash table, I'm just not sure it's worth the pain
<alyssa>
eyes
<alyssa>
bbrezillon: Maybe it would make sense to use the hash table solution, but on init prepopulate the table with the most common cases (reload of RT 0 unorm only, etc)?
<alyssa>
I wouldn't worry about perf impact until data proves otherwise.
<alyssa>
Hash tables suck for hot paths but.. meh
<bbrezillon>
alyssa: sure, I can do that
<alyssa>
bbrezillon: I would worry more about the impact of the change on GPU perf
<alyssa>
(tile enable map vs rectangle silliness, etc)
<alyssa>
actually i suspect if you did it right, this way is faster
<bbrezillon>
yep, that's on my TODO list
<alyssa>
but would like some numbers... not really sure how to measure perf on 2D workloads though
<bbrezillon>
though I don't know what to use to trigger heavy TB preload
<alyssa>
UI stuff
<alyssa>
weston exercises all these code paths
<bbrezillon>
yep, that's what I'm using to test KHR_partial_update, but I thought I'd need something more GPU intensive
<bbrezillon>
maybe I can get some numbers from the perf counters
<bbrezillon>
*useful numbers
<alyssa>
I mean... KHR_partial_update is not designed for GPU intensive stuff, it's to save power.
<alyssa>
if a 2D UI is GPU intensive, you're doing something horribly wrong
<alyssa>
or running Compiz on Mali
<alyssa>
:P
karolherbst has quit [Quit: duh 🐧]
karolherbst has joined #panfrost
taowa has quit [Ping timeout: 258 seconds]
taowa has joined #panfrost
vstehle has quit [Quit: WeeChat 3.0]
vstehle has joined #panfrost
chewitt has joined #panfrost
<macc24>
>alyssa │ if a 2D UI is GPU intensive, you're doing something horribly wrong
* macc24
points at xorg
<alyssa>
sigh
<chrisf>
intrinsically expensive, or just murdering tilers for no reason?
<chrisf>
i know there's a couple special corners in XRender
<macc24>
chrisf: uhh
atler is now known as Guest73926
Guest73926 has quit [Killed (orwell.freenode.net (Nickname regained by services))]
atler has joined #panfrost
archetech has joined #panfrost
wwilly has joined #panfrost
guillaume_g has quit [Quit: Konversation terminated!]
davidlt has quit [Ping timeout: 240 seconds]
stikonas_ has joined #panfrost
stikonas has quit [Ping timeout: 248 seconds]
alpernebbi has quit [Quit: alpernebbi]
kherbst has joined #panfrost
karolherbst has quit [Ping timeout: 260 seconds]
kherbst has quit [Client Quit]
karolherbst has joined #panfrost
stikonas_ has quit [Ping timeout: 260 seconds]
stikonas has joined #panfrost
<robclark>
iirc glamor scissors out untouched areas.. freedreno tracks maximal scissor bounds to avoid tile-pass over stuff that is untouched (although we don't even bother using that on a6xx, but instead just let the CP skip tiles with no visible geometry..
<robclark>
(and generally I've not seen murdered tiler syndrome with glamor)
<alyssa>
robclark: urxvt at large window sizes with lots of text scrolling is the primary cause of MTS
<robclark>
hmm, ok.. I confess to not being a urxvt user.. but I don't think anyone has complained about it.. I suppose if blend is not used things fall back to bypass path
<robclark>
alyssa: a shot in the dark, panfrost_set_framebuffer_state() might want to be introduced to `util_framebuffer_state_equal()`..
<robclark>
(but that could date back to the dark ages when we used xa state tracker..)
stikonas has quit [Remote host closed the connection]
stikonas has joined #panfrost
<robclark>
alyssa, bbrezillon: another thought if you are looking to measure glamor perf.. you can apitrace glamor with urxvt (or whatever).. and then replay the trace to profile things.. https://github.com/apitrace/apitrace/wiki/Glamor
<alyssa>
glamor apitrace? what is this witchcraft?
<macc24>
robclark: does glamor run with some performance on freedreno?
<alyssa>
Adreno is, as a rule, less dumb than certain other tilers..
<macc24>
let me guess, powervr is worst?
<robclark>
macc24: yeah, I've been pretty happy with glamor perf.. even back to a3xx.. adreno does have one trick, in that it can bypass tiled rendering and work like an immediate mode renderer in some cases (although that is a good and bad.. because sometimes deciding which route to take isn't straightforward)
<chrisf>
well, less of a tiler than other tilers :)
<macc24>
robclark: >work like immediate mode renderer
<macc24>
wtf how
<robclark>
bypass mode.. I think qcom has some marketing name for it.. "flex-something-or-other"..
<macc24>
huh, is there a way to manually override this?
<robclark>
FD_MESA_DEBUG=nogmem or FD_MESA_DEBUG=nobypass
<macc24>
>:D
<robclark>
there are some things (depending on generation) which only work in one mode or another, so expect debug overrides to break *something* ;-)
<alyssa>
as usual, setting *_MESA_DEBUG voids your nonexistent warranty ;)
* macc24
unsets PAN_MESA_DEBUG=gl3
archetech has quit [Quit: Konversation terminated!]
<macc24>
alyssa: for a future reference, if i'm complaning about something i don't have PAN_MESA_DEBUG set
<macc24>
s/complaining about something/reporting a bug/
<alyssa>
thanks
<robclark>
alyssa: hmm, I wonder if it would be a good idea to be able to inject something into GL_VERSION or GL_RENDERER when various different debug/override envvars are set..
wwilly has quit [Quit: This computer has gone to sleep]
<macc24>
why are you thanking me? are users setting random env vars that they thing might help?
<alyssa>
macc24: yes.
<macc24>
lol
* icecream95
still has PAN_MESA_DEBUG=deqp in /etc/environment