Hi all! I am trying to make sure my opengl-backed GUI application is leveraging the most optimal graphics drivers on the beaglebone black device and am running into yocto build failures.
Based on what I can tell from the changes in 56be461 (https://git.yoctoproject.org/meta-ti/commit/meta-ti-bsp/recipes-graphics/libgles/ti-sgx-ddk-um_1.17.4948957.bb?h=kirkstone&id=56be4618abdde45649f0f92d383d5f44e5ec6efb), <https://git.yoctoproject.org/meta-ti/commit/meta-ti-bsp/recipes-graphics/libgles/ti-sgx-ddk-um_1.17.4948957.bb?h=kirkstone&id=56be4618abdde45649f0f92d383d5f44e5ec6efb),> I should be able to have mesa compiled using the drivers provided from the `ti-sgx-ddk-km` recipe by setting my preferred provider for the `virtual/gpudriver` as such: ``` PREFERRED_PROVIDER_virtual/gpudriver = "ti-sgx-ddk-km" ``` I'm not sure if this is the correct way to go about what I am trying to do, or if it is even necessary to ensure my application is using the best hardware it can (which is ultimately the goal). Either way, with the variable mentioned above set to `ti-sgx-ddk-km`, the mesa.do_compile step fails with what I believe are linker errors. This is an example of what I am seeing in my logs: ``` /<my-path-to-yocto>/tmp/work/beaglebone-poky-linux-gnueabi/mesa/2_22.0.3+pvr-r0/recipe-sysroot-native/usr/bin/arm-poky-linux-gnueabi/../../libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/11.3.0/ld: src/gallium/frontends/sgx/libsgx.a.p/pvrdri.c.o: in function `PVRDRIReleaseBuffer': 2023-03-15T19:19:43.7831698Z | /usr/src/debug/mesa/2_22.0.3+pvr-r0/build/../git/src/gallium/frontends/sgx/pvrdri.c:1055: undefined reference to `PVRDRIBufferDestroy' 2023-03-15T19:19:43.7832402Z | /<my-path-to-yocto>/tmp/work/beaglebone-poky-linux-gnueabi/mesa/2_22.0.3+pvr-r0/recipe-sysroot-native/usr/bin/arm-poky-linux-gnueabi/../../libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/11.3.0/ld: src/gallium/frontends/sgx/libsgx.a.p/pvrdri.c.o: in function `PVRDRIAllocateBuffer': 2023-03-15T19:19:43.7833062Z | /usr/src/debug/mesa/2_22.0.3+pvr-r0/build/../git/src/gallium/frontends/sgx/pvrdri.c:1027: undefined reference to `PVRDRIBufferCreate' 2023-03-15T19:19:43.7833813Z | /<my-path-to-yocto>/tmp/work/beaglebone-poky-linux-gnueabi/mesa/2_22.0.3+pvr-r0/recipe-sysroot-native/usr/bin/arm-poky-linux-gnueabi/../../libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/11.3.0/ld: /usr/src/debug/mesa/2_22.0.3+pvr-r0/build/../git/src/gallium/frontends/sgx/pvrdri.c:1037: undefined reference to `PVRDRIBufferGetName' ``` The full(-ish, I might be missing some) list of these missing functions is: - PVREGLDrawableDestroy - PVREGLDrawableCreate - PVRDRIPixFmtGetBlockSize - PVRDRIEGLMarkRendersurfaceInvalid - PVREGLDrawableRecreate - PVRDRIBufferDestroy - PVRDRIGetAPIFunc - PVRDRIEGLGetLibHandle - PVRDRIDepthStencilBitArraySize - PVRDRIMSAABitArraySize - PVRDRIDepthBitsArray - PVRDRIEGLImageCreate - PVRDRIMesaFormatSupported - PVRDRIMaxPBufferWidth - PVRDRIMaxPBufferHeight - PVRDRIBufferCreateFromNames - PVRDRIEGLImageCreateFromBuffer - PVRDRIEGLFlushBuffers - PVRDRIBufferCreate - PVRDRICreateDrawableImpl - PVRDRIMakeCurrentGC - PVRDRIGetDeviceTypeFromFd - PVRDRIEGLImageGetAttribs - PVRDRI2ReleaseTexImage I'm a bit out of my element here, but it looks like I might be missing some dynamically linked library that provides functions like PVRDRIBufferGetName which gallium depends on? It seems likely I am missing a recipe or configuration value, but I'm not sure where to look. Any help here would be appreciated. I'd be happy to provide more logs and/or configuration information as necessary. Thanks! - Danny
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#15988): https://lists.yoctoproject.org/g/meta-ti/message/15988 Mute This Topic: https://lists.yoctoproject.org/mt/97653905/21656 Group Owner: [email protected] Unsubscribe: https://lists.yoctoproject.org/g/meta-ti/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
