alyssa changed the topic of #panfrost to: Panfrost - FLOSS Mali Midgard & Bifrost - Logs https://freenode.irclog.whitequark.org/panfrost - <daniels> avoiding X is a huge feature
stikonas has quit [Remote host closed the connection]
popolon has quit [Quit: WeeChat 3.0]
stikonas has joined #panfrost
raster has quit [Quit: Gettin' stinky!]
stikonas has quit [Remote host closed the connection]
stikonas has joined #panfrost
stikonas has quit [Remote host closed the connection]
kaspter has joined #panfrost
vstehle has quit [Ping timeout: 256 seconds]
kaspter has quit [Ping timeout: 264 seconds]
kaspter has joined #panfrost
bschiett has joined #panfrost
<bschiett> hi guys, new to the channel, i'm working on a rk3288 project and was wondering what the current state is of panfrost and if it offers everything the arm drivers offer? i'm mostly interested in openGLES/openGL
<HdkR> I'd say it offers more for Midgard
<bschiett> @HdkR OK, so it's definately stable/feature complete at this point?
<HdkR> It's open source, work is never complete :P
<bschiett> good point :-)
<bschiett> I guess as long as it's reasonably stable i'm OK.
<HdkR> If you find a bug then it is still worth reporting. People are usually pretty responsive if an issue gets tagged with panfrost :P
<bschiett> cool, thx
bschiett has quit [Quit: WeeChat 2.3]
davidlt has joined #panfrost
vstehle has joined #panfrost
camus has joined #panfrost
kaspter has quit [Ping timeout: 272 seconds]
camus is now known as kaspter
nlhowell has quit [Ping timeout: 240 seconds]
q4a has joined #panfrost
tomboy64 has quit [Ping timeout: 240 seconds]
tomboy64 has joined #panfrost
camus has joined #panfrost
kaspter has quit [Ping timeout: 256 seconds]
camus is now known as kaspter
nlhowell has joined #panfrost
kaspter has quit [Read error: Connection reset by peer]
camus has joined #panfrost
camus is now known as kaspter
q4a has quit [Remote host closed the connection]
chewitt has quit [Read error: Connection reset by peer]
chewitt_ has joined #panfrost
chewitt_ is now known as chewitt
<daniels> robclark: sorry, I can't tell you why that happened, given there was no work scheduled :\
kaspter has quit [Remote host closed the connection]
kaspter has joined #panfrost
davidlt has quit [Ping timeout: 272 seconds]
popolon has joined #panfrost
justin3 has joined #panfrost
camus has joined #panfrost
<justin3> Hi, first, thank you for your hard work! I'm curently looking at MALI drivers and I'm a bit lost. I can map memory in GPU and in kernel fine, but I'd like to issue commands to the GPU to read/write a GPU memory region. I looked at adreno and I managed to do it, but it seems a bit more complicated with mali GPUs. Maybe someone has a pointer to help to do that?
stikonas has joined #panfrost
raster has joined #panfrost
kaspter has quit [Ping timeout: 260 seconds]
camus is now known as kaspter
<HdkR> justin3: Using what API?
<justin3> well for now I use the kernel api with ioctls
<HdkR> So talking with the panfrost kernel driver through drm?
<HdkR> Or are you using kbase in your environment?
<justin3> hum not through drm, I use the ioctl of the mali drivers, basically like panloader I think
<justin3> ah yeah kbase
<HdkR> pretty sure it has some allocate ioctl or something. I try to not look at kbase as much as possible
<justin3> oh it has, that how I managed to allocate memory. But I'n not sure how to write something I can pass to the GPU to write in the allocated memory
<justin3> basically, I was working with adreno, and they have a allocate memory ioctl very similar, and I was able to pass "write mem" commands to the GPU. I was curious how to do that with mali
<HdkR> what is a write memory command? DMA?
<justin3> well in adreno, it's a specific opcode executed by the GPU
<HdkR> You'd probably have to setup a full compute shader that does a memcpy of some sort
<justin3> huum there is no easier way?
<justin3> also, would you have any pointer on how to do that?
<HdkR> Use a GL or Vulkan API instead of talking to it through ioctls instead :P
<HdkR> Since it sounds like you'd be reimplementing a bunch of this anyway for creating an async dma engine effectively
<justin3> ok, I don't know very well higher level api, will I be able to control at which address I can read/write?
<HdkR> With ARM's proprietary blob you can't pass arbitrary pointers. Mesa/AMD has some extension to map arbitrary user pointers in to GPU space though
<justin3> hum I'm very not faniliar with thoses API
<justin3> seems complicated :p
<justin3> well, I'll try to look at some doc about mesa
<justin3> if anyone has insights on how issue a "write/read" memory job from ioctl, please let me know
<justin3> thx for your help HdkR
camus has joined #panfrost
kaspter has quit [Ping timeout: 256 seconds]
camus is now known as kaspter
kaspter has quit [Remote host closed the connection]
kaspter has joined #panfrost
stikonas has quit [Remote host closed the connection]
stikonas has joined #panfrost
kaspter has quit [Ping timeout: 264 seconds]
kaspter has joined #panfrost
davidlt has joined #panfrost
<alyssa> justin3: You mostly can't, the closest thing is a write value job, but on Midgard that's just used for dumping cycle counters and writing a fixed 0
<alyssa> Anyway, XY problem -- what are you trying to solve?
<HdkR> Time to bitbang a compute shader task for async memcpy through the GPU :P
<justin3> Hi alyssa, do you think I could use a write value job to write in a specific region of the job address space?
<alyssa> Again, why?
* macc24 grabs popcorn
<alyssa> (Not trying to be annoying, just trying to understand the goal so I can help)
<justin3> I'm mostly interested in how memory management works for mobile gpus
<justin3> so I try to get the GPU read/write in regions mapped in cpu userland
<alyssa> Well, if it's purely academic, you could fill memory in CPU with e.g all 1's, and then use a write value job to write a zero to some address, and that will be visible on the CPU if you read it back and get all the coherency right :)
<alyssa> (On Bifrost, you can write any constant you wish. But not many use cases.)
<alyssa> ^^ The format the write value job needs to be, you place that structure in GPU memory and then tell the GPU to execute it (set jc to its address in GPU memory)
<alyssa> This is easier with the Panfrost kernel than with kbase, I recommend you use ours.
<justin3> woow many thanks that's exactly what I want!
<alyssa> 👍
<alyssa> Have fun :)
<justin3> so hum, as I didn't read all panfrost, is tehre an example code that submit a job
<justin3> or should I look at mesa, or maybe it's easy enough to gigure out how to do it from the xml?
kaspter has quit [Quit: kaspter]
<alyssa> panfrost_batch_submit_ioctl
<justin3> ok thank you, I have a last question, is it possible to write a "read value job" too?
Stary has quit [Ping timeout: 260 seconds]
nlhowell has quit [Ping timeout: 246 seconds]
Stary has joined #panfrost
<alyssa> No.
<macc24> bbrezillon: did suspend work on https://github.com/bbrezillon/linux/tree/panfrost/duet ?
<bbrezillon> macc24: yes
<macc24> fuck
<bbrezillon> what's the problem?
<macc24> it doesn't poweron dsi/panel something correctly
<bbrezillon> alyssa: I'm debugging dEQP-GLES3.functional.fbo.msaa.4_samples.rgba16f failure on Midgard, and I notices that samples 0 and 1 are written correctly, but not samples 2 and 3. Any thoughts on what could cause that?
<bbrezillon> macc24: that used to work
<bbrezillon> I mean, you had it working too, right?
<macc24> i have to try it
<bbrezillon> I don't get what the problem is
<bbrezillon> suspend/resume?
<macc24> resuming
<macc24> it doesn't power the dsi correctly at least on my kernel
<bbrezillon> ok, that part has not been tested, indeed
<bbrezillon> macc24: I recommend you look at the chomeos kernel tree
<macc24> oh i forgot it exists
<macc24> it looks like in chromeos kernel mtk_dsi.c has no suspend/resume parts
<bbrezillon> what's the error exactly?
<macc24> i don't have access to console without screen
<justin3> thank you very much for your help alyssa, that was very helpful
<urjaman> how do you know it's the display that's preventing the resume then?
<urjaman> if it comes up with everything but display you should be able to ssh in or something tbh
<macc24> hmmmmmmmmmmmmmm
raster has quit [Quit: Gettin' stinky!]
raster has joined #panfrost
raster has quit [Quit: Gettin' stinky!]
raster has joined #panfrost
<macc24> it might be panel driver
archetech has joined #panfrost
_whitelogger has joined #panfrost
davidlt has quit [Ping timeout: 240 seconds]
uis has quit [Ping timeout: 246 seconds]
raster has quit [Quit: Gettin' stinky!]
raster has joined #panfrost
tomboy64 has quit [Remote host closed the connection]
tomboy64 has joined #panfrost
tgall_foo has quit [Remote host closed the connection]
tgall_foo has joined #panfrost
jschwart has quit [*.net *.split]
narmstrong has quit [*.net *.split]
raster has quit [Quit: Gettin' stinky!]
archetech has quit [Quit: Konversation terminated!]
narmstrong has joined #panfrost
jschwart has joined #panfrost
raster has joined #panfrost
raster has quit [Quit: Gettin' stinky!]
enunes has quit [Ping timeout: 264 seconds]