alyssa changed the topic of #panfrost to: Panfrost - FLOSS Mali Midgard & Bifrost - https://gitlab.freedesktop.org/panfrost - Logs https://freenode.irclog.whitequark.org/panfrost - Transientification is terminating. Memory reductions in progress.
<TheCycoONE> switched to mainline kernel, compiled mali_tbase - the next step is to insmod/modprobe something?
<alyssa> TheCycoONE: mali_kbase.ko, yeah
<alyssa> Unless it's compiled into the kernel itself, of course (but no idea how to do that)
<stikonas> TheCycoONE: and depending on the device, some need a patch for dts (looking at my rockpro64)
<TheCycoONE> working kmscube!
<stikonas> nice, took me a while to get there as you can see form the backlog
<stikonas> TheCycoONE: weston should also work
<TheCycoONE> so yes, the gru kernel doesn't work; alyssa - you might need to change the note that says it should
<TheCycoONE> stikonas: I've been at this sporadically for months, so don't feel bad :)
<stikonas> but gnu kernel (deblobbed) does work :)
<alyssa> TheCycoONE: Nice!
<alyssa> Alright, changing note
<stikonas> I still want to get my u-boot to work blobless. 2 blobs left :(
<alyssa> Which blobs?
<alyssa> HDCP and what?
<stikonas> lpddr4 initialization and ATF
<stikonas> well, ATF I compiled, but somehow couldn't get it to boot with non-upstream u-boot
<stikonas> what is DHCP blob?
<stikonas> oh, that's for display port
<alyssa> I thought the blob in ATF is for HDCP
<alyssa> But I might be mixing up with displayport? Who knows
<stikonas> oh ok...
<stikonas> I'm not sure...
<stikonas> well, there is hdcp.bin in ATF source in dp subfolder...
<alyssa> That's the one
<hanetzer> kevin is a beauty of a laptop :)
<TheCycoONE> +1
<alyssa> ^ hanetzer_irl
<hanetzer> nah.
<alyssa> Pff
<TheCycoONE> unfortunately my game aborts - corsix-th: ../src/mesa/vbo/vbo_exec_draw.c:216: vbo_exec_bind_arrays: Assertion `offset <= ctx->Const.MaxVertexAttribRelativeOffset' failed.
<TheCycoONE> too early for SDL2 :)
<alyssa> TheCycoONE: That's fixed in my branch
<alyssa> TheCycoONE: (The `gs` branch)
<TheCycoONE> ah, cool. I was going to say I'm happy to do any further tracing - but I guess you already knew about it :D
<alyssa> Yeah, so, your game is using desktop OpenGL
<alyssa> (Rather than GLES)
<alyssa> We only just gained support for desktop :P
<alyssa> As in, glxgears came to life sometime last week
<TheCycoONE> doesn't hurt to see what happens
<alyssa> Mmhmm
<TheCycoONE> blank display window, tons of console output about creating textures / scanout (nil), and eventually a completely unresponsive system.
<TheCycoONE> so - no abort \o/ - I'll take a look later with gdb etc.
hanetzer has quit [Remote host closed the connection]
<TheCycoONE> gles or gles2 preferred?
<HdkR> What. They have a blob for lpddr4 training as well?
<HdkR> Memory training isn't some super special nonsense. I don't understand why people think they need to keep it as a blob
<alyssa> HdkR: I didn't think it was a blob...
<alyssa> TheCycoONE: gles2 is preferred
<alyssa> And... sigh, okay, disappointing a little bit :p
<stikonas> HdkR: well, there was no timing information in u-boot dts (still isn't in upstream u-boot)
<alyssa> (This is starrted from what, sway?)
<stikonas> HdkR: check the files starting with rk3399-sdram* in https://git.denx.de/?p=u-boot.git;a=tree;f=arch/arm/dts;h=11c99a7eaf1f1d426bd4317630584fe5cafa4b4e;hb=HEAD
<TheCycoONE> starting from weston
<stikonas> HdkR: I think it was more of a case, haven't done yet
<alyssa> TheCycoONE: I didn't realise Xwayland/egl worked in weston, neat
<stikonas> in some u-boot fork by rockchip developer I now saw rk3399-sdram-lpddr4* file
<HdkR> Oh, maybe I misread the conversation about two blobs remaining :P
<stikonas> well, I still use the blob
<stikonas> but hopefully soon somebody will add a proper rockpro64 support to u-boot...
<stikonas> at least I got panfrost running :)
<stikonas> even with kwin_wayland
<TheCycoONE> it doesn't have any backend specific code, so I launched with SDL_RENDER_DRIVER=opengles2 - a bit better; everything was skewed, like the number of pixels in a line wasn't right
<alyssa> TheCycoONE: stride is probably wrong somewhere
<alyssa> Are the colours right?
<TheCycoONE> yes
<alyssa> Alright
<alyssa> (That eliminates a whole class of bugs related to bad format bits)
<alyssa> This is still from wayland?
<alyssa> *Weston
<TheCycoONE> yeah, SDL_VIDEO_DRIVER=wayland, launched from weston
<alyssa> Hrmph.
<stikonas> I tried to start wesnoth from weston :D, had to reboot
<alyssa> Do glmark2-es2-wayland / es2gears_wayland / etc have the same issue?
<stikonas> I didn't try SDL_RENDER_DRIVER=opengles2 though...
<alyssa> stikonas: Bwa? I didn't realise you were playing with any SDL apps?
<stikonas> only for a few seconds...
<TheCycoONE> es2gears_wayland is fine
<stikonas> until it crashed
<TheCycoONE> I don't have glmark
<stikonas> well, I might play a bit more later
<stikonas> it's bed time
<alyssa> Nini
<alyssa> TheCycoONE: Hrmph
<alyssa> I wonder what SDL could be doing
stikonas has quit [Remote host closed the connection]
<TheCycoONE> there's ways to get a trace of gl calls right?
<alyssa> TheCycoONE: Shot in the dark, but what's your window size?
<alyssa> Specifically the width
<HdkR> apitrace and renderdoc works well if you want to capture GL at the API level
<alyssa> I need to try that :p
<TheCycoONE> 1055
<HdkR> apitrace will capture things from the start of the application launch while renderdoc lets you capture per frame data
<TheCycoONE> I can fiddle with the width; what's a value that should be good?
<TheCycoONE> yep, 640x480 fixes it
<TheCycoONE> at least through the spash screen and intro movie - then the colours get screwed up for the game menu
<HdkR> Nice
<alyssa> TheCycoONE: lol, okay, yeah
<alyssa> Widths need to be tile-aligned (16x16)
<alyssa> I should probably assert guard that
<alyssa> HdkR: apitrace won't work on my panfrost machine, bailing with "error: unavailable fucntion glXGetProcAddressARB"
<alyssa> Any ideas?
<HdkR> Are you tracing an EGL application?
<HdkR> `apitrace trace -a egl es2gears`
<alyssa> Ah
<HdkR> Then `qapitrace es2gears.trace`
<alyssa> qapitrace?
<HdkR> Trace file appears in the cwdir when the application closes
<HdkR> qapitrace is the QT application for inspecting the trace file after the fact
<alyssa> Oo
<HdkR> Or you can just `apitrace repla es2gears.trace` to replay it
<HdkR> replay*
<alyssa> Super helpful!
<alyssa> Probably will help solve some bugz
<alyssa> :P
<HdkR> And it is an API level capture, so you don't have to worry about visual problems
<HdkR> Fix the bugs and hope for the trace to play correctly :P
<alyssa> ...Oh, lovely, I regressed [redacted] sometime today. Ok.
<TheCycoONE> thanks HdkR
<HdkR> Oh. What did I do?
<HdkR> alyssa: Does xmoto and teeworlds work with the new GL work though? :D
<alyssa> HdkR: Who and what?
<HdkR> Those are two of the three games I care about
<alyssa> What's the third? :P
<HdkR> I'd ask about rrootage, but lawl, that is like a hard x86 only title
<alyssa> Titles I care about: SuperTuxKart, ....that's it really
<alyssa> Even then it's like
<alyssa> Eh
<alyssa> <--- does not like video games
<HdkR> and until we get to ES 3 or GL 3 I can't ask about Dolphin
<alyssa> :P
<alyssa> HdkR: Um
<alyssa> For an app I just tried, _ertyhing_ ended up on frame 0
<alyssa> So it thinks there are 2 million draw calls on one frame
<alyssa> Uh oh
<alyssa> This makes debug prohibitively difficult :p
<HdkR> Oh
<HdkR> There is a way to change the new frame marker
<HdkR> misremember. Nvidia nsight tools have a way to set the end frame marker
<HdkR> Looks like renderdoc doesn't have a way to set the end frame marker either :|
<TheCycoONE> I maintain CorsixTH, so I care about it - that's probably it :)
<HdkR> Nice
<alyssa> TheCycoONE: ^_^
<HdkR> I maintain a collection of insanities
<alyssa> I maintain Panfrost
<alyssa> :P
<TheCycoONE> and I'm very thankful!
<alyssa> :)
<TheCycoONE> night \o
<alyssa> o
<alyssa> Eliminating more transient uploads for (hopefully) lower overhead
<alyssa> Index buffers are directly mapped now
<alyssa> Going from 36k to 30k bytes uploaded transient in glxgears
<alyssa> ...which is pretty pathetic but it probably adds up for bigger apps :P
<alyssa> Kodi is nice :)
<alyssa> ...and nicer with Panfrost
<alyssa> :P
_whitelogger has joined #panfrost
<sphalerite> o/ I've been busy with other things for a while, what's the current state of affairs with panfrost, particularly kernel-wise?
pH5 has joined #panfrost
<tomeu> alyssa: I agree with your assessment in principle, but once I start thinking of how to move forward, I do'nt see a good reason to come up with an ABI that is any different to that of lima
<tomeu> because the kernel doesn't know about bytecode or cmd stream, then I don't see much left that could make that big of a difference
<tomeu> unless the ARM people took a deliberate effort to make things different for the sake of it :)
<tomeu> if the ABI is shared between lima and panfrost, then the winsys is basically the same and the compiler and cmd generation code has to be abstracted anyway same as it is in other drivers such as freedreno
<tomeu> there will be of course differences to tackle in the common code, but I don't have right now a good reason to think that they would be substantially bigger than differences between versions of midgard and bitfrost
<tomeu> in any case, I think it's too early to come up with a clear answer, so the immediate question is what to try first: separate drivers and merge them later if needed, or start with same drivers and copy out later if needed
<tomeu> even if we decided right now that we want to have separate code bases for everything, I think the best way of starting things up would be to copy lima's kernel and mesa drivers and gradually changing them to match midgard
raster has joined #panfrost
rhyskidd has quit [Quit: rhyskidd]
rhyskidd has joined #panfrost
<mifritscher> one question: how big is the kernel driver? and is the needed functionality clear?
rhyskidd has quit [Quit: rhyskidd]
rhyskidd has joined #panfrost
rhyskidd has quit [Quit: rhyskidd]
rhyskidd has joined #panfrost
adjtm_ has joined #panfrost
adjtm has quit [Ping timeout: 250 seconds]
rhyskidd has quit [Quit: rhyskidd]
rhyskidd has joined #panfrost
rhyskidd has quit [Remote host closed the connection]
rhyskidd has joined #panfrost
rhyskidd has quit [Remote host closed the connection]
rhyskidd has joined #panfrost
rhyskidd has quit [Quit: rhyskidd]
rhyskidd has joined #panfrost
_whitelogger has joined #panfrost
rhyskidd has quit [Quit: rhyskidd]
rhyskidd has joined #panfrost
afaerber has joined #panfrost
rhyskidd has quit [Quit: rhyskidd]
rhyskidd has joined #panfrost
<raster> hmm what src goes into making rockchip_dri.so?
<raster> rockchip_drm_winsys.c ?
<tomeu> raster: would expect so
<tomeu> and the GPU stuff is in panfrost_dri.so
<raster> i'
<raster> i'm gettring a totally empty extensions array from it
<raster> gee. there is no code in that... well not much
<raster> __driDriverExtensions[] that is is just a NULL entry in it so its empty
<raster> how on earth is it even getting __driDriverExtensions
<raster> the megadrive4r gets linked into drockchip_dri?
<raster> hmm lineks with panfrostwinsys
<raster> and that provides just 2 funcs////
<raster> not extensions
<raster> basically the problem for init for panfrost for me is it's looking for DRI_Core and DRI_DRI2 extensions and cant find either
<raster> failed to bind extensions
<tomeu> raster: I think these days it should be calling __driDriverGetExtensions_panfrost()
<tomeu> well, or __driDriverGetExtensions_rockchip()
<tomeu> raster: see DEFINE_LOADER_DRM_ENTRYPOINT
<raster> hmm
<raster> so it'd be looking for
<raster> get_extensions = dlsym(driver, get_extensions_name);
<raster> which is nort working
<raster> loader_get_extensions_name() returns NULL it seems
<raster> let me check
<tomeu> raster: could be interesting to check with nm that the symbol is in the right .so
<tomeu> tbh, I'm surprised this isn't working
<raster> i'm frustrated that its not working :)
<raster> yup
<raster> it looks for __driDriverGetExtensions_rockchip
<tomeu> I had to debug all this when I started work on the winsys, because we were missing the DEFINE_LOADER_DRM_ENTRYPOINT for rockchip
<raster> tnx for pointing that out
rhyskidd has quit [Quit: rhyskidd]
<raster> didnt know it SHOULD work
<raster> dlsym [__driDriverGetExtensions_rockchip] = [(nil)]
<raster> yup
<raster> symbol not found
<raster> so this would be the issue
rhyskidd has joined #panfrost
<raster> 3:33PM ~ > nm /opt/panfrost/lib/aarch64-linux-gnu/dri/rockchip_dri.so | grep __driDriverGetExtensions_rockchip
<raster> nada :)
<tomeu> one step closer :)
<tomeu> tomeu@cizrna:~$ nm /usr/local/lib/aarch64-linux-gnu/dri/rockchip_dri.so | grep __driDriverGetExtensions_rockchip
<tomeu> 0000000000078f30 T __driDriverGetExtensions_rockchip
<raster> hmmm
<raster> what generates that sym?
<raster> git grep gives me nothing
<raster> hmm
<raster> we have these for radeon, i915, i965, nouveau .... not panfrost tho
<raster> or rockchip for that matter
<tomeu> raster: DEFINE_LOADER_DRM_ENTRYPOINT
<raster> aaah tnx
<tomeu> #if defined(GALLIUM_ROCKCHIP)
<tomeu> DEFINE_LOADER_DRM_ENTRYPOINT(rockchip)
<tomeu> #endif
<raster> the symbol is nowehre in any binary or src it seems for me
<tomeu> ok, then wrong branch? :)
<raster> i literally dont have that code in my tree
<raster> master
<raster> * master
<raster> :/
<raster> do i have the wrong git repo? wrong branch? master is not the thing?
<tomeu> raster: that repo and master should be fine, but I don't know what you have checked out in your machine
<tomeu> raster: what's your HEAD?
<raster> git grep DEFINE_LOADER_DRM_ENTRYPOINT | grep rock
<raster> comes up blank
<raster> 6f9a6e4b094eace9aa593137af79ec148f16bacb
<raster> that's a commit from dec 28
<raster> thats when i clones
<tomeu> yeah,t hat's too old
<raster> orly?
<raster> even that is too old?
<tomeu> yeah, at that point we didn't have the winsys stuff merged
<raster> really?
<raster> dAMN
<tomeu> the current instructions are only valid with current checkouts :p
<raster> dang. i thought it was
<raster> hehehe
<raster> well the instructions where the same online then as like a week ago and so on :)
<raster> havent looked in the past week or so :)
<tomeu> yeah, only recently we merged everything
<tomeu> this is a fast train :)
<raster> well handy to know now :)
<raster> i'm used to fast trains
<raster> :)
<raster> i like to run my gits that way
<alyssa> tomeu: Feel free to start kernelspace from lima
<raster> (review is for whimps, real men commit, push, THEN compile! :))
<raster> ok- just kidding
<raster> but still - review code after commit and push if it seems necessary
<alyssa> tomeu: We will not be merging userspace with lima.
anarsoul has quit [Remote host closed the connection]
<tomeu> alyssa: yeah, it's hard to tell how things will look before trying
<raster> lucky mesa is nice and small
<alyssa> raster: What about Unlucky Mesa, its evil twin that I work with?
<alyssa> :P
<alyssa> Lean and mean?
<raster> alyssa: only like 900 or so objects to build...
<raster> nice and small
<raster> :)
<alyssa> Oy vey
<alyssa> :P
<alyssa> tomeu: The reasons to keep userspace separate between us and lima are more than just aesthetic..
rhyskidd has quit [Quit: rhyskidd]
rhyskidd has joined #panfrost
<alyssa> We're fundamentally two different drivers, for two different pieces of essentially unrelated hardware
<alyssa> Merging with lima makes about as much sense as merging with etnaviv :P
<raster> efl is like 3.8k
<raster> enlightenment is like 700 ...
<raster> so 960 or so in my book is small :)
<raster> so we now have moved on...
<raster> glmark2-es2-drm segfaults!
<raster> woohoo
* alyssa blinks
<alyssa> raster: Try kmscube
anarsoul has joined #panfrost
<raster> aaah i need autofools it seems
<raster> it also segfaults
<alyssa> :/
* alyssa class
<raster> ctx->pipe_framebuffer.cbufs is full of 0'
<raster> ctx->pipe_framebuffer.cbufs is full of 0's in the array
<raster> 332 mali_ptr framebuffer = ((struct panfrost_resource *) ctx->pipe_framebuffer.cbufs[0]->texture)->gpu[0];
<raster> what kind of output should i get when panfrost successfully inits - like on stdout?
<raster> panfrost: Using kbase UK version 11.11, fd 6
<raster> Uploaded transient 0 bytes and persistent 0 bytes,
<raster> is what i get
<raster> anything more?
chewitt has joined #panfrost
rhyskidd has quit [Quit: rhyskidd]
rhyskidd has joined #panfrost
raster has quit [Remote host closed the connection]
chewitt has quit [Quit: Zzz..]
NeuroScr_ has quit [Ping timeout: 246 seconds]
chewitt has joined #panfrost
pH5 has quit [Quit: bye]
rhyskidd has quit [Quit: rhyskidd]
rhyskidd has joined #panfrost
chewitt has quit [Quit: Adios!]
rhyskidd has quit [Quit: rhyskidd]
rhyskidd has joined #panfrost
anarsoul|2 has joined #panfrost
BenG83 has joined #panfrost
rhyskidd has quit [Quit: rhyskidd]
rhyskidd has joined #panfrost
rhyskidd has quit [Quit: rhyskidd]
rhyskidd has joined #panfrost
stikonas has joined #panfrost
rhyskidd has quit [Quit: rhyskidd]
rhyskidd has joined #panfrost
embed-3d has quit [Remote host closed the connection]
embed-3d has joined #panfrost
afaerber has quit [Quit: Leaving]
NeuroScr has joined #panfrost
afaerber has joined #panfrost
rhyskidd has quit [Quit: rhyskidd]
rhyskidd has joined #panfrost
NeuroScr has quit [Ping timeout: 246 seconds]
NeuroScr has joined #panfrost
stikonas has quit [Remote host closed the connection]
stikonas has joined #panfrost
stikonas has quit [Remote host closed the connection]
stikonas has joined #panfrost
stikonas_ has joined #panfrost
lvrp16_ has joined #panfrost
stikonas_ has quit [Remote host closed the connection]
stikonas_ has joined #panfrost
stikonas has quit [Ping timeout: 252 seconds]
stikonas_ is now known as stikonas
lvrp16 has quit [Ping timeout: 268 seconds]
lvrp16_ is now known as lvrp16
stikonas has quit [Remote host closed the connection]
stikonas has joined #panfrost
AntonioND has joined #panfrost
<alyssa> "panfrost: Using kbase UK version 11.11, fd 6" That's a good sign, since at least we're talking to th kernel