grate-driver / mesa

Mesa fork for open-source NVIDIA Tegra20/30 GL implementation
32 stars 15 forks source link

Qt/QML support #15

Open lmife opened 2 years ago

lmife commented 2 years ago

I compiled grate (mesa 21.2.2 branch) for a Apalis T30 based device (which is powered by a Tegra 3) to replace the properitary NVIDIA drivers. While e.g. Xorg runs fine, starting a simple Qt/QML based program (dynamicscene example) fails:

QSGContext::initialize: depth buffer support missing, expect rendering errors QSGContext::initialize: stencil buffer support missing, expect rendering errors ../git/src/gallium/drivers/grate/grate_stream.c:217/grate_stream_push_reloc(): drm_tegra_pushbuf_relocate() failed -22 ../git/src/gallium/drivers/grate/grate_stream.c:209/grate_stream_push_reloc(): Stream status isn't CONSTRUCT ../git/src/gallium/drivers/grate/grate_stream.c:236/grate_stream_push(): Stream status isn't CONSTRUCT ../git/src/gallium/drivers/grate/grate_stream.c:236/grate_stream_push(): Stream status isn't CONSTRUCT ../git/src/gallium/drivers/grate/grate_stream.c:337/grate_stream_push_words(): Stream status isn't CONSTRUCT ../git/src/gallium/drivers/grate/grate_stream.c:337/grate_stream_push_words(): Stream status isn't CONSTRUCT ../git/src/gallium/drivers/grate/grate_stream.c:337/grate_stream_push_words(): Stream status isn't CONSTRUCT ../git/src/gallium/drivers/grate/grate_stream.c:337/grate_stream_push_words(): Stream status isn't CONSTRUCT ../git/src/gallium/drivers/grate/grate_stream.c:236/grate_stream_push(): Stream status isn't CONSTRUCT ../git/src/gallium/drivers/grate/grate_stream.c:209/grate_stream_push_reloc(): Stream status isn't CONSTRUCT ../git/src/gallium/drivers/grate/grate_stream.c:236/grate_stream_push(): Stream status isn't CONSTRUCT ../git/src/gallium/drivers/grate/grate_stream.c:236/grate_stream_push(): Stream status isn't CONSTRUCT ../git/src/gallium/drivers/grate/grate_stream.c:209/grate_stream_push_reloc(): Stream status isn't CONSTRUCT ../git/src/gallium/drivers/grate/grate_stream.c:236/grate_stream_push(): Stream status isn't CONSTRUCT ../git/src/gallium/drivers/grate/grate_stream.c:236/grate_stream_push(): Stream status isn't CONSTRUCT ../git/src/gallium/drivers/grate/grate_stream.c:236/grate_stream_push(): Stream status isn't CONSTRUCT ../git/src/gallium/drivers/grate/grate_stream.c:337/grate_stream_push_words(): Stream status isn't CONSTRUCT ../git/src/gallium/drivers/grate/grate_stream.c:337/grate_stream_push_words(): Stream status isn't CONSTRUCT ../git/src/gallium/drivers/grate/grate_stream.c:337/grate_stream_push_words(): Stream status isn't CONSTRUCT ../git/src/gallium/drivers/grate/grate_stream.c:337/grate_stream_push_words(): Stream status isn't CONSTRUCT ../git/src/gallium/drivers/grate/grate_stream.c:236/grate_stream_push(): Stream status isn't CONSTRUCT ../git/src/gallium/drivers/grate/grate_stream.c:236/grate_stream_push(): Stream status isn't CONSTRUCT ../git/src/gallium/drivers/grate/grate_stream.c:236/grate_stream_push(): Stream status isn't CONSTRUCT ../git/src/gallium/drivers/grate/grate_stream.c:209/grate_stream_push_reloc(): Stream status isn't CONSTRUCT ../git/src/gallium/drivers/grate/grate_stream.c:236/grate_stream_push(): Stream status isn't CONSTRUCT ../git/src/gallium/drivers/grate/grate_stream.c:236/grate_stream_push(): Stream status isn't CONSTRUCT ../git/src/gallium/drivers/grate/grate_stream.c:236/grate_stream_push(): Stream status isn't CONSTRUCT ../git/src/gallium/drivers/grate/grate_stream.c:236/grate_stream_push(): Stream status isn't CONSTRUCT ../git/src/gallium/drivers/grate/grate_stream.c:288/grate_stream_end(): Stream status isn't CONSTRUCT Segmentation fault This happens when using an xcb-based Qt platform driver as well when using the eglfs Qt platform driver.

Is this to be expected in the current development state? xeglgears/eglgears_x11 seem to run fine (at least running with 60 FPS without too much CPU load). In another thread I read that the grate mesa driver is currently only a proof of concept and more than glxgears is not really supposed to work?

digetx commented 2 years ago

That is expected to happen today. If yours Qt application doesn't use fancy animations, then you can make it very usable with the current upstream driver stack by forcing Qt to use software render as shown at https://github.com/grate-driver/grate/wiki/Grate-driver#software-gl.