[Mesa-dev] Can I build mesa swrast on system without GPU? And how I should do it?

Oleg Gavrilchenko gavrilchenko at avionica.spb.ru
Tue Dec 17 08:07:24 UTC 2019


Hello!
Sorry for my English. It is no my first language(Russian).
I have embedded system with XILINX ZYNQ-7000 processor(ARM Cortex-A9 2 
cores). This system also has framebuffer video device. Framebuffer with 
image contains in DDR memory and is transmitted in display by HDMI 
interface through special DMA(Framebuffer DMA in FPGA). I write simple 
fbdev driver for this device and it work fine. This system not has any GPU.
I found out, that mesa can perform software rasterization for Open GL 
swrast. Can I build mesa swrast for my device and how can I do it?

I try do this with use cross compilation file.

This is a cross compilation file for meson, cross_file.txt:

[binaries]
c = 'arm-linux-gnueabihf-gcc'
cpp = 'arm-linux-gnueabihf-g++'
ar = 'arm-linux-gnueabihf-ar'
strip = 'arm-linux-gnueabihf-strip'
pkgconfig = 'pkg-config'

[host_machine]
system = 'linux'
cpu_family = 'arm'
cpu = 'armv7hl'
endian = 'little'

[properties]
needs_exe_wrapper = true
sys_root = '/home/oleg/work/z-turn-dvi/sysroot'

[paths]
prefix ='/usr'



I build mesa with that options:

meson  build/ --cross-file cross_file.txt \
        -Dplatforms=surfaceless \
        -Dosmesa=gallium \
        -Dgallium-drivers=swrast \
        -Ddri-drivers=[] \
        -Dvulkan-drivers=[] \
        -Degl=true \
        -Dgles1=true \
        -Dgles2=true \
        -Dglx=disabled

ninja -C build/

build fail with errors:

[84/882] Linking target src/mapi/es1api/libGLESv1_CM.so.1.1.0.
FAILED: src/mapi/es1api/libGLESv1_CM.so.1.1.0
arm-linux-gnueabihf-gcc  -o src/mapi/es1api/libGLESv1_CM.so.1.1.0 
'src/mapi/es1api/ffa5f0c@@GLESv1_CM at sha/.._entry.c.o' -Wl,--as-needed 
-Wl,--no-undefined -shared -fPIC -Wl,--start-group 
-Wl,-soname,libGLESv1_CM.so.1 src/mapi/shared-glapi/libglapi.so.0.0.0 
-Wl,--gc-sections -pthread -L/home/oleg/work/z-turn-dvi/sysroot/usr/lib 
-ldrm -lm -ldl -Wl,--end-group '-Wl,-rpath,$ORIGIN/../shared-glapi' 
-Wl,-rpath-link,/home/oleg/src/mesa-19.2.7/build/src/mapi/shared-glapi
/opt/Xilinx/SDK/2018.2/gnu/aarch32/lin/gcc-arm-linux-gnueabi/bin/../lib/gcc/arm-linux-gnueabihf/7.2.1/../../../../arm-linux-gnueabihf/bin/ld: 
cannot find -ldrm
collect2: error: ld returned 1 exit status

DRM option enable in Linux kernel, but I do not install libdrm on my 
system. Should I do it? And how it will work with my fbdev?
Thank you for answers. And sorry for my English.




More information about the mesa-dev mailing list