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
urjaman has quit [Ping timeout: 244 seconds]
urjaman has joined #panfrost
_4of7 is now known as unoccupied
<HdkR> Oop. Needed to add support for 3src add instructions
<HdkR> Now to fix the load and store attribute instructions to actually do something
<HdkR> cwabbott: Can you give me a definition for the data register?
<HdkR> It looks like a base register provided in the header out of the regular 64 from the RF. Certain instructions can write upwards of 128bits out in to it. Header additionally has a data register scoreboard dependency for future clauses. Then other instructions implicitly consume the data from the data register without being in the instruction encoding or the regular register information bits
<HdkR> Sort of sideband data from the "typical" use case of all the other instructions
<HdkR> I could go forward working on this assumption but I'll wait to be sure. Maybe dump some shaders while waiting :P
stikonas has quit [Remote host closed the connection]
stikonas has joined #panfrost
stikonas has quit [Read error: Connection reset by peer]
<Lyude> HdkR:
<Lyude> Do you mean the uniform register that's used for both constants and uniforms?
<HdkR> Lyude: It's called data register in the disassembler
<Lyude> ohM
<Lyude> I know what is, one sec
<HdkR> Gets used by attribute loadstores and address generation, blend and texture instructions, and...scratch? instructions
<HdkR> Also UBO load instrutions and...memory loadstores?
<Lyude> Yep! So
<Lyude> It's more easily thought as the output location for variable latency instructions, recall that all of the instructions in a clause are not variable latency
<HdkR> Aye
<HdkR> So the header declares the base data register and the instructions will use upwards of 128bits of data from that base. Just iterating upwards as it uses more data?
<HdkR> Does it have alignment requirements?
<HdkR> Also it only has a single data reg sscoreboard flag? So you effectively can't reorder multiple data register clauses?
<HdkR> Say you have two clauses in a row that write to the data register(different base for each). The dependency tracking of only one flag would mean you stall through to the second one's data regardless
<Lyude> Are we defining base as 2
<Lyude> *32 vs 64
<HdkR> ?
<HdkR> data register base
<Lyude> sorry on my phone here and quickly realizing this question is not as sin
<Lyude> ugh
<HdkR> :D
<Lyude> *simple as I thought it would be
<Lyude> Tldr I don't know NVM sorry!!! That's what I get for trying to answer questions on PTO
<HdkR> With how the header is laid out, it would be nice if you could use the regular scoreboard dependencies to track which clause the data-reg dependency comes from
<HdkR> With the bool making it so it tracks the regular scoreboard dependency in addition to the data reg dependency :D
<HdkR> Obviously I should send ARM an email asking about the peculiarities around data reg dependency tracking. It's the most important bit
<alyssa> chewitt: I haven't pushed the corresponding patches to mesa for that yet, sorry
<alyssa> HdkR: "Basic RA shamelessly stolen from the midgard compiler and ...working?" No shame indeed.
<alyssa> (I stole it from vc4 or something, probably)
<HdkR> The default implementation is pretty easy, mostly just figuring out what to use from the utility headers
chewitt has joined #panfrost
<alyssa> chewitt: "I haven't pushed the corresponding patches to mesa for that yet, sorry"
<chewitt> no problem, I have a variant of the previous hack added so get things working using nodrm/master
<chewitt> so LE is rebased against 5.0-rc7 and panfrost using mesa master
<chewitt> memory behaviour seems to be better than before
<chewitt> although navigation around the GUI feels sluggish and there's still a few graphical glitches where I see triangles that radiate from bottom-left on the screen
<chewitt> sluggish compared to lima
<chewitt> the default screensavers (black and dim) still result in triangles radiating from bottom-left and Kodi is unrecoverable at that point
<chewitt> it would be nice to get those working as 'dim' is enabled by default
<alyssa> chewitt: It's really hard for me to repro the dimming which makes it hard to debug..
<alyssa> I wonder if I could add a hack to make dimming apply after seconds, rather than minutes?
<chewitt> in Kodi settings > interface > screensaver .. select dim as the screensaver, then 'preview' in the menu
<chewitt> it activates on demand that way
<alyssa> :eyes:
<chewitt> before the rebase (so using pre-kmsro code) navigation in panfrost felt normal (equivalent to lima)
<chewitt> but slower with no crashes is better than faster and crashy :)
<alyssa> Huh.
<alyssa> I'm not sure what would've regressed, performance-wise
<alyssa> Since navigation feels totally zippy on my end
<chewitt> it's possible something changed with 5.0-rc7 .. but it's normal on other hardware
<alyssa> chewitt: Oh, I have a suspicion then
<alyssa> Could you PM me the stdout?
<chewitt> from Kodi?
<chewitt> http://ix.io/1BSM <= boot + Kodi start (and almost immediate crash) + Kodi auto restart
<chewitt> I'm also seeing issues with Kodi rendering lots of thumbnails
<chewitt> e.g. on the home screen when you navigate down to movies/tvshows and content is pulled from the library to populate in-progress/recently added movies
<alyssa> Hm, so maybe related uh
<alyssa> I was looking for those "Uploaded transient" lines
<chewitt> ^ this is a fake movie library
<alyssa> That's the amount of memory we're memcpy'ing and immediately throwing out every frame, 250kb is more than it should be but I dunno if that's the issue
<chewitt> has 1,000 empty files that can be scraped to create a library for testing
<chewitt> (as Kodi mostly uses filenames for scraping)
<chewitt> so unzip somewhere and add the location as a 'source' then scrape the source to build the library
* alyssa mumbles
_whitelogger has joined #panfrost
marcodiego has quit [Quit: Leaving]
chewitt has quit [Read error: Connection reset by peer]
<alyssa> So the last 4 tweets on the Collabora account either mention or are about Panfrost
* alyssa approves :+1:
indy has joined #panfrost
stikonas has joined #panfrost
<robertfoss> alyssa: :) embedded world is coming up, and apparently it is a big deals
<robertfoss> alyssa: I'll disable EGL_BUFFER_AGE in platform_wayland.c then
adjtm_ has quit [Read error: Connection reset by peer]
adjtm has joined #panfrost
stikonas has quit [Remote host closed the connection]
Kwiboo has quit [Read error: Connection reset by peer]
Kwiboo has joined #panfrost
<robertfoss> alyssa: ^^ doesn't seem to make a difference
stikonas has joined #panfrost
<alyssa> robertfoss: Errr
<alyssa> ^ Something like that in mesa
<hanetzer> bah... freedesktop's gitlab is laggin'
<alyssa> It happens..
<hanetzer> finally got to pull from robher's tree
<hanetzer> robher: hey, if you're around, that change you made to 'fix compile for 5.0-rc' in panfrost, as far as you know is that backwards compatible to 4.20.x? gonna be doing some runtime testing with trace stuff and would like to, if possible, stick to a gentoo-sources kernel
<hanetzer> ah yep.
raster has joined #panfrost
stikonas has quit [Remote host closed the connection]
stikonas has joined #panfrost
raster has quit [Remote host closed the connection]
<daniels> hanetzer: which page(s) are slow please
<hanetzer> daniels: was robh/linux-panfrost but I managed to grab it
<hanetzer> robher: yay. and that was extracted from mali_kbase.ko's run?
<HdkR> alyssa: Have you tested how the blob implements glCopy* functions?
<robher> hanetzer: yes. Running glmark2.
<HdkR> GPU buffer -> GPU buffer being the most interesting
<alyssa> HdkR: I haven't, no.
<HdkR> Mostly interestng if they have dedicated hardware for copies or if it ends up being a shader thing :P
<alyssa> HdkR: I highly suspect shaders but we'll see
stikonas has quit [Remote host closed the connection]