alyssa changed the topic of #panfrost to: Panfrost - FLOSS Mali Midgard & Bifrost - Logs https://oftc.irclog.whitequark.org/panfrost - <macc24> i have been here before it was popular
<icecream95>
daniels: I've made a .tar.zst with everything needed to easily run the G72 blob on any device that supports ARMv8 AArch32, but haven't got the Chrome OS EULA on hand so no idea how legal distributing it would be
<cphealy>
icecream95: if this libmali does not use kbase, does it use Panfrost kernel driver?
dtoebe has joined #panfrost
dtoebe has quit [Remote host closed the connection]
hyperreal has joined #panfrost
hyperreal has quit [Remote host closed the connection]
Nowaker has joined #panfrost
Nowaker has quit [Remote host closed the connection]
plastico has joined #panfrost
plastico has quit [Remote host closed the connection]
davidlt has joined #panfrost
ozymandias_ has joined #panfrost
<icecream95>
cphealy: It doesn't use the GPU at all so submit commands are no-ops. I'm worried that if I make it use the Panfrost kernel driver then people might start trying to use it instead of the Panfrost Mesa drivers
ozymandias_ has quit [Remote host closed the connection]
<alyssa>
icecream95: "Requires libmali.0.14.0 from a Chrome OS filesystem for a device with G72, but should run on any ARMv8 device."
<alyssa>
Not sure if the Duet is on an older ChromeOS, but newer ChromeOS seems to do all sorts of funny linker things that break on (GNU/)Linux
<alyssa>
LibreELEC had to err patch glibc to get widevine to work, new libmali seems to be the same story.
<icecream95>
I did have to use a specific glibc version and patch Mesa so it didn't require a newer glibc, but the stock Debian version worked with no extra patches
<alyssa>
oh, you're supplying your own lib/ld-2.27.so ... that might do it
<icecream95>
Or I think I might just be using CrOS glibc
HiRE has joined #panfrost
HiRE has quit [Remote host closed the connection]
<alyssa>
That would also do it, yes :-)
z-nexx has joined #panfrost
z-nexx has quit [Remote host closed the connection]
davidlt has quit [Ping timeout: 480 seconds]
jkl has quit [Ping timeout: 480 seconds]
jkl has joined #panfrost
sitter has joined #panfrost
sitter has quit [Remote host closed the connection]
davidlt has joined #panfrost
markin has joined #panfrost
markin has quit [Remote host closed the connection]
alpernebbi has joined #panfrost
andrey-konovalov has joined #panfrost
jd29 has joined #panfrost
jd29 has quit [Remote host closed the connection]
Jello_Raptor has joined #panfrost
Jello_Raptor has quit [Remote host closed the connection]
alpernebbi has quit [Ping timeout: 480 seconds]
post-factum19 has joined #panfrost
post-factum19 has quit [Remote host closed the connection]
andrey-konovalov has quit [Ping timeout: 480 seconds]
kwizart has joined #panfrost
kwizart has quit [Remote host closed the connection]
Toshi has joined #panfrost
Toshi has quit [Remote host closed the connection]
<icecream95>
The XML seems to be missing the two bits before "CRC {Read,Write} Enable", and the "Tile Enable Map Row Stride" field is too small
fralinsky has joined #panfrost
fralinsky has quit [Remote host closed the connection]
anotheryou has joined #panfrost
anotheryou has quit [autokilled: This host has violated network policy. Contact support@oftc.net with questions (2021-06-17 08:32:05)]
<icecream95>
"Bifrost Texture" is missing the fields for "4D" textures (dimension==4), which seem to be like 2D textures except that the width and height are replicated in word 7
rasterman has joined #panfrost
an_tho[m|gr] has joined #panfrost
an_tho[m|gr] has quit [Remote host closed the connection]
warpme_ has joined #panfrost
dscharrer has joined #panfrost
dscharrer is now known as Guest2507
Guest2507 has quit [Remote host closed the connection]
vit has joined #panfrost
vit has quit [Remote host closed the connection]
<daniels>
icecream95: those two bits are empty tile read/write, which are a bypass mode for cleared tiles; those will write the value from the clear colour specified in the Z/S/CRC FB extension
andrey-konovalov has joined #panfrost
jernej_ has joined #panfrost
jernej has quit [Read error: Connection reset by peer]
DArqueBishop has joined #panfrost
DArqueBishop has quit [Remote host closed the connection]
<robmur01>
yours for merely the cost of a GPU license and some contractual obligations :D
<macc24>
,_,
<macc24>
i wouldn't use it anyway
<robmur01>
bbrezillon: if the issues involve "how is this supposed to work?" I won't be much help, sorry!
<macc24>
stepri01: does the patch work on g72?
<stepri01>
bbrezillon: sure - ask away!
<bbrezillon>
robmur01: well, it's more, "how should it be plugged to drm-sched" :-)
<bbrezillon>
stepri01: so, I have a few problems, the first one being the discussion I started on #dri-devel
<stepri01>
macc24: The DDK-on-Panfrost stuff I haven't had permission to release. You'd be better off using Mesa for most purposes though!
<macc24>
stepri01: mali blob on panfrost kernel driver?
<bbrezillon>
the second one is, how do we deal with timeouts/faults such that we don't mess up with jobs coming from a different FD
<bbrezillon>
I've implemented soft-stops to deal with that, but that require quite a few changes
<stepri01>
how to plumb into drm-sched is something I'm not sure either ;)
<stepri01>
timeouts/faults I know more about - like you say soft-stops are part of the answer
<stepri01>
basically timeouts have to be handled as performing a soft-stop (followed by a hard-stop after a further timeout) and then trying to piece together what actually happened on the hardware
<stepri01>
the hardware will let you know how many jobs are still queued from which you can deduce which job was killed (or soft stopped)
<stepri01>
you then need to give an appropriate penalty to the job which was actually running and continue with other jobs (while preserving dependencies)
<stepri01>
for DDK/kbase there's an entire "job dispatch" layer to keep track of such things. drm_sched sadly isn't an immediate fit with how the hardware works so I'm not sure how easy the reordering part will be
<stepri01>
faults/hard-timeouts are easier, but you need to ensure you don't let drm_sched give a penalty to any queued job which is completely innocent
<stepri01>
beware of various race conditions when using _NEXT registers too. My favourite comment in kbase came after a long debugging session:
<bbrezillon>
that's what happens here, but this can be sorted out. I'm more worried about all sort of errata regarding soft/hard-stop (some platforms seem to need a GPU reset after those depending on the type of job, etc), or how to know which exceptions should be considered as a hard fault and trigger a reset immediately (looks like kbase never triggers a reset for any of the exception types)
<bbrezillon>
stepri01: yep, I've seen that one
<bbrezillon>
and I think I handle it too
<bbrezillon>
it's a bit hard to validate though
<stepri01>
basically tiler jobs can't be soft-stopped - other than that I can't immediately think of any errata
<macc24>
is there any chance of llvmpipe using afbc?
<stepri01>
in terms of faults requiring GPU resets. The only one I can see is JOB_BUS_FAULT - which is a pretty serious fault in the first place
<stepri01>
There have been instances where hard-stop will not complete requiring a GPU reset - but that's just the usual timeout really
CookieJar has joined #panfrost
CookieJar has quit [Remote host closed the connection]
<bbrezillon>
hm, BUS_FAULT, I think I get those when disabling an AS to kill jobs that have unhandled page faults
<stepri01>
ah, actually I'm getting myself confused - JOB_BUS_FAULT isn't so scary (indeed that can come from an unhandled page fault). TRANSTAB_BUS_FAULT is scary ;)
<bbrezillon>
ok
<bbrezillon>
JOB_POWER_FAULT and SHAREABILITY/CACHEABILITY ones look scary too
<stepri01>
JOB_POWER_FAULT I think means that the kernel driver has forgotten to turn on the shader core...
<bbrezillon>
but none of them seem to trigger a reset in kbase (I guess kbase rely on the timeout to recover)
<stepri01>
SHAREABILITY/CACHEABILITY are fairly obvious - resetting the GPU isn't likely to help though
Kundun has joined #panfrost
Kundun has quit [autokilled: Suspected spammer. Mail support@oftc.net with questions (2021-06-17 13:30:19)]
<alyssa>
macc24: what no why
<macc24>
alyssa: just making sure
* macc24
got around to trying 5.13 on duet
<stepri01>
JOB_BUS_FAULT needing a reset seems to be an errata on Valhall from what I can tell - so perhaps we don't (yet) care about it
<alyssa>
stepri01: I care about Valhall :)
<stepri01>
we don't have the errata list for the newer GPUs in Panfrost yet - hence I can't point at the JOB_BUS_FAULT errata...
<alyssa>
I would fix that but I have Bifrost errata to workaround
<stepri01>
hey - actually it is public, when you find the right bit of the arm website!
<stepri01>
BASE_HW_ISSUE_TTRX_3076
<alyssa>
ack
<alyssa>
N.b.: The Valhall kernel driver is listed on Arm's open source page as a Bifrost kernel driver
<alyssa>
TTBOMK the Valhall userspace driver is not distributed anywhere on Arm's page, although you can snag a copy from the ChromeOS CDN
<stepri01>
yeah - well it all lives in a "midgard" directory ;)
<alyssa>
stepri01: In Mesa the data structures are all in midgard.xml
<alyssa>
I named the file that -after- we had working bifrost support shipping ;-P
<alyssa>
Also n.b.: the valhall compiler is bundled with Arm Mobile Studio, but arm.com won't let me download it for some reason
<stepri01>
perhaps they know what you're planning to do with it? ;p
<stepri01>
or more likely the website is broken
<alyssa>
stepri01: I work on optimizing my company's software for Mali GPUs, and I need Arm Mobile Studio to update our software for Valhall.
<alyssa>
Just like I told Arm support ;)
<cwabbott>
wait, I thought they removed the ability to output binaries from the offline compiler so it was useless for RE? I thought we were probably the only user of that feature :)
<alyssa>
cwabbott: They did, I was hopeful maybe there was still an entry point? shrug
<alyssa>
MBS is still supported on Valhall (i guess for the GL ext), though
m0gliE has joined #panfrost
m0gliE has quit [Remote host closed the connection]
noxon has quit [Remote host closed the connection]
<Luc>
I've seen the word 'wallpapering' at the front of panfrost_add_job func in Mesa code. I can understand the inject but i don't understand the WALLPAPER, what does it mean in that context?
Leenux has joined #panfrost
Leenux has quit [Remote host closed the connection]
<alyssa>
Preloading the contents of a tile from main memory, by inserting a fragment shader that textures from the framebuffer from the previous frame.
<alyssa>
Mostly we use the standard term for this now (preloading) but in some old parts of the codebase "wallpaper" is still used.
<Luc>
alyssa: I see, thx
Perlovka has joined #panfrost
Perlovka has quit [autokilled: Suspected spammer. Mail support@oftc.net with questions (2021-06-17 15:11:29)]
<robclark>
alyssa: I thought restore/resolve where the more standard terms
psiance8 has joined #panfrost
psiance8 has quit [Remote host closed the connection]
procnto has joined #panfrost
procnto has quit [Remote host closed the connection]
jernej_ is now known as jernej
Luc has quit [Remote host closed the connection]
<alyssa>
robclark: or those i guess
<alyssa>
which is which again? :(
<alyssa>
restore is load, resolve is store?
<robclark>
right
<robclark>
I assume mali can also do things like MSAA resolve as part of store
<alyssa>
correct
dottedmag7 has joined #panfrost
dottedmag7 has quit [Remote host closed the connection]
jkl has quit [Ping timeout: 480 seconds]
thrrgilag15 has joined #panfrost
thrrgilag15 has quit [Remote host closed the connection]
jkl has joined #panfrost
davidlt has quit [Ping timeout: 480 seconds]
beekay201 has joined #panfrost
beekay201 has quit [Remote host closed the connection]
jlp_znc has joined #panfrost
jlp_znc has quit [Remote host closed the connection]
Vaelatern8 has joined #panfrost
Vaelatern8 has quit [Remote host closed the connection]
nurupo26 has joined #panfrost
nurupo26 has quit [Remote host closed the connection]
jkl has quit [Ping timeout: 480 seconds]
jkl has joined #panfrost
cedwards has joined #panfrost
cedwards has quit [Remote host closed the connection]
edward_ has joined #panfrost
edward_ has quit [Remote host closed the connection]
heliocastro has joined #panfrost
heliocastro has quit [Remote host closed the connection]
[O^O] has joined #panfrost
[O^O] has quit [Remote host closed the connection]
<icecream95>
It turns out that the blob is not as specific to one GPU as thought... I tried using a random libmali.so and it did work for G72, though behaviour was slightly different to the CrOS blob
<icecream95>
HdkR: Could you dump MALI_IOCTL_GET_GPUPROPS for Valhall?..
<HdkR>
Oh jeeez, uh. probably? Can't do it today though. Recovering from covid shot
<macc24>
HdkR: you have valhall device?
<HdkR>
I have an Android valhall yea
<macc24>
>android
<HdkR>
It's a butt to RE on, so I didn't really tinker with it muh
<HdkR>
much
<alyssa>
HdkR: Congrats on covid shot
jkl has quit [Ping timeout: 480 seconds]
<HdkR>
Covid shot, the sequel. Getting punctured to protect myself and others.
<alyssa>
Actualy reality! Rise up! Fight AIDS!
<alyssa>
*COVID-19
<HdkR>
Oh hey. I was named after a person in the 90s that had aids
<HdkR>
80s? somewhere around then
<alyssa>
icecream95: I'll try to get you that dump.
<alyssa>
May take a little bit, device arrived literally less than an hour ago.
<alyssa>
HdkR: ^
<HdkR>
Would need to wait for tomorrow for me
<alyssa>
I still need to figure out, like, how to run code on the device
<macc24>
alyssa: on what device?
<alyssa>
macc24: Samsung Galaxy S21
<alyssa>
which has a Mali G78 and ought to be rootable
<alyssa>
* the International (GSM) edition -- this is important, the North America (CDMA) edition is Adreno
<macc24>
hmm
sandsmark12 has joined #panfrost
sandsmark12 has quit [Remote host closed the connection]
<alyssa>
pricey, I know..
<alyssa>
the good news from that is that linux users won't be touching valhall for at least another 6 months, probably longer
<alyssa>
which gives time to get initial renders going
<macc24>
not unless i get my hands onto mt8192 chromebook
<alyssa>
don't think those are out yet
<macc24>
they might be soon™
<alyssa>
(if they were I would've preferred one lol)
rasterman has quit [Quit: Gettin' stinky!]
jernej_ has joined #panfrost
jernej has quit [Read error: Connection reset by peer]
jernej_ is now known as jernej
rasterman has joined #panfrost
<macc24>
i'm not saying that mt8192 machines will drop this month, but i'm also not saying that they won't
<macc24>
y'all didn't hear this from me
<alyssa>
uh oh
Kristina-t has joined #panfrost
Kristina-t has quit [autokilled: spambot. Dont mail support@oftc.net with questions (2021-06-17 21:05:29)]
<macc24>
huh, cherry dts says that it has 12" 1920x1280 panel if i'm reading it correctly