08:03 luc: Hi, I am trying to use libgbm.so provided by mesa in my application, but it seems that dlsym() failed to find the symbol `gbmint_get_backend` in libgbm.so
08:03 luc: https://elixir.bootlin.com/mesa/latest/source/src/gbm/main/backend.c#L126
08:05 luc: do I misunderstand something?
08:06 emersion: this is not a public API
08:13 luc: emersion: is that expected if https://elixir.bootlin.com/mesa/latest/source/src/gbm/main/backend.c#L126 returns NULL?
08:14 emersion: can you explain what you're trying to do?
08:14 emersion: libgbm users are not expected to touch these internals
08:16 luc: I am trying to get glamor worked on our own driver
08:17 doras: Are you trying to write a GBM backend?
08:19 luc: doras: No, you mean using libgbm.so requires the specific driver to implement a GBM backend?
08:19 doras: Yes
08:22 emersion: is your driver not a mesa driver?
08:22 emersion: what driver is it?
08:23 luc: that says, I have to implement `gbmint_get_backend` in my own GBM backend which is the dlopen()'ed `lib`?
08:24 doras: If your driver is not in Mesa, yes.
08:25 luc: emersion: No, it is a new Gallium-based driver
08:25 emersion: oh, so it is mesa
08:26 emersion: you shouldn't need to deal with any of this stuff, gallium implements what's required for GBM
08:26 doras: Mesa provides an internal backend, so if you write your code in Mesa (even out-of-tree), you don't need an external backend.
08:26 emersion: maybe your driver is missing capabilities that GBM needs?
08:26 doras: I meant not "out-of-tree".
08:29 luc: yes, we are doing our best improving it:)
08:31 luc: emersion: doras: thank you for the explanation, i think i got it
08:34 emersion: the code is a bit hard to follow, because there is a now-useless layer in-between GBM and Gallium, called DRI2
08:34 emersion: the relevant places to look are
08:34 emersion: dri2_init_screen_extensions()
08:35 emersion: dri_screen_create_for_driver()
08:35 emersion: former is what Gallium exposes as DRI2 API
08:35 emersion: latter is what GBM needs from a DRI2 API
08:47 psykose: just remove the dri2, so simple right :)
08:51 dottedmag: It is a fully internal Mesa layer nowadays?
09:32 emersion: yea
11:07 AndrewR: apparently this one also can use (optionally) opencl: https://github.com/ggerganov/llama.cpp (not tested personally due to lack of hdd space)