grate-driver / xf86-video-opentegra Goto Github PK
View Code? Open in Web Editor NEWX.Org video driver for NVIDIA Tegra
License: Other
X.Org video driver for NVIDIA Tegra
License: Other
make[3]: Entering directory '/home/pmos/build/src/xf86-video-opentegra-038906aeb104e50fa111d88a9d5def627d1dbca3/src'
CC opentegra_drv_la-common_helpers.lo
CC opentegra_drv_la-dri2.lo
CC opentegra_drv_la-driver.lo
CC opentegra_drv_la-drmmode_display.lo
CC opentegra_drv_la-vblank.lo
CC opentegra_drv_la-drm_plane.lo
CC opentegra_drv_la-xv.lo
CC exa/opentegra_drv_la-exa.lo
CC gpu/opentegra_drv_la-gr3d.lo
In file included from gpu/gr3d.h:30,
from gpu/gr3d.c:24:
./tegradrm/opentegra_lib.h:91:56: error: unknown type name 'time_t'; did you mean 'size_t'?
91 | void drm_tegra_bo_cache_cleanup(struct drm_tegra *drm, time_t time);
| ^~~~~~
| size_t
make[3]: *** [Makefile:817: gpu/opentegra_drv_la-gr3d.lo] Error 1
make[3]: *** Waiting for unfinished jobs....
In file included from exa/tegra_exa.c:37,
from exa/exa.c:24:
exa/mm_fridge.c: In function 'tegra_exa_mm_compress_pixmap':
exa/mm_fridge.c:277:19: warning: unused variable 'compressed_bound' [-Wunused-variable]
277 | unsigned long compressed_bound;
| ^~~~~~~~~~~~~~~~
exa/mm_fridge.c: In function 'tegra_exa_mm_decompress_pixmap':
exa/mm_fridge.c:432:23: warning: unused variable 'exa' [-Wunused-variable]
432 | struct tegra_exa *exa = tegra->exa;
| ^~~
In file included from exa/tegra_exa.c:41,
from exa/exa.c:24:
exa/pixmap.c: In function 'tegra_exa_destroy_freelist_pixmap':
exa/pixmap.c:81:10: warning: variable 'released_data' set but not used [-Wunused-but-set-variable]
81 | bool released_data;
| ^~~~~~~~~~~~~
make[3]: Leaving directory '/home/pmos/build/src/xf86-video-opentegra-038906aeb104e50fa111d88a9d5def627d1dbca3/src'
make[2]: *** [Makefile:522: all] Error 2
make[2]: Leaving directory '/home/pmos/build/src/xf86-video-opentegra-038906aeb104e50fa111d88a9d5def627d1dbca3/src'
make[1]: *** [Makefile:520: all-recursive] Error 1
make[1]: Leaving directory '/home/pmos/build/src/xf86-video-opentegra-038906aeb104e50fa111d88a9d5def627d1dbca3'
make: *** [Makefile:431: all] Error 2
whole CI log: https://gitlab.com/alpine-mobile/pmaports/-/jobs/1163164694 (fails on both armhf & armv7)
Testing xf86-video-opentegra on AC100 with mainline/stable kernel 5.1.1, Arch Linux ARM.
Driver and assocated mesa etc. built on AC100 using AUR packages from aa13q.
Kernel has CONFIG_ARM_TEGRA_STAGING enabled or the driver won't load.
Some CFLAG adjustment (remove -fno-plt) was needed to allow xf86-video-opentegra load-time 'undefined symbol' errors.
glxgears improves from 27 with modesetting driver to 66fps.
Some gui applications (ex: Midori) fail to draw screen correctly with:
grate_screen_get_param: unsupported parameter: 159
(repeats multiple times)
grate_screen_get_param: unsupported parameter: 159
WebKitWebProcess: grate_resource.c:200: grate_screen_resource_create: Assertion `format >= 0' failed.
I know it doesn't belong here, but as a developer, maybe you'll help me.
Machine: Jetson TX2 (Tegra186) Kernel: 5.17.4 aarch64
After successful compilation and installation of xorg-server ver. 21.1.3 I have an interesting problem. I use startx. The first time you use startx, it starts without a problem. After logging out, I will run startx for the second time. No problem. When I try it after the third X will no longer run and the error message "AddScreen / ScreenInit failed for driver 0" will appear in xorg.log. After the system restarts, the situation repeats. Twice okay. Third - "AddScreen / ScreenInit failed for driver 0".
Question: Where should I start to address this issue?
I have the same installed on an x86 machine. I have no problem here.
Can you please change debian/control for xserver-xorg-video-opentegra to depend on libturbojpeg0 instead of libturbojpeg ?
Source package already depends on libturbojpeg0-dev and libturbojpeg doesn't exists on Debian, so rebuild packages won't install without manually changing debian/control and rebuilding.
When compiling the code, gcc errors out for the option '-mfp16-format=ieee'.
Full output is attached.
output.txt
The host system is ARM64 board (Nvidia Xavier AGX), running Manjaro ARM distro.
GCC version is 10.2.0.
@okias, can you explain in the README why the git repo lives here and not on freedesktop.org?
The master development code repository can be found at:
git://anongit.freedesktop.org/git/xorg/driver/xf86-video-tegra http://cgit.freedesktop.org/xorg/driver/xf86-video-tegra
These links are dead.
Also since you are upstream, how about tagging releases? 🙂
A recent xorg-server
update on arch linux generated conflicts with xf86-video-opentegra-git
from AUR, so I updated the package conflict X-ABI-VIDEODRV_VERSION
. This driver installs fine now, but it seems to be missing symbols, preventing xorg
from loading it. The error message for xorg server version 1.21.1.3
reads:
Failed to load /usr/lib/xorg/modules/drivers/opentegra_drv.so: /usr/lib/xorg/modules/drivers/opentegra_drv.so: undefined symbol: exaDriverFini
Maybe implementing exaDriverFini
is enough to get the driver running again?
In file included from /tmp/portage/x11-drivers/xf86-video-opentegra-9999/work/xf86-video-opentegra-9999/src/dri2.c:1:0:
/tmp/portage/x11-drivers/xf86-video-opentegra-9999/work/xf86-video-opentegra-9999/src/driver.h:96:18: fatal error: dri2.h: No such file or directory
In file included from /tmp/portage/x11-drivers/xf86-video-opentegra-9999/work/xf86-video-opentegra-9999/src/common_helpers.c:23:0:
/tmp/portage/x11-drivers/xf86-video-opentegra-9999/work/xf86-video-opentegra-9999/src/driver.h:96:18: fatal error: dri2.h: No such file or directory
In file included from /tmp/portage/x11-drivers/xf86-video-opentegra-9999/work/xf86-video-opentegra-9999/src/driver.c:32:0:
/tmp/portage/x11-drivers/xf86-video-opentegra-9999/work/xf86-video-opentegra-9999/src/driver.h:96:18: fatal error: dri2.h: No such file or directory
compilation terminated.
compilation terminated.
compilation terminated.
make[2]: *** [Makefile:513: dri2.lo] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [Makefile:513: common_helpers.lo] Error 1
make[2]: *** [Makefile:513: driver.lo] Error 1
make[2]: Leaving directory '/tmp/portage/x11-drivers/xf86-video-opentegra-9999/work/xf86-video-opentegra-9999_build/src'
make[1]: *** [Makefile:502: all-recursive] Error 1
make[1]: Leaving directory '/tmp/portage/x11-drivers/xf86-video-opentegra-9999/work/xf86-video-opentegra-9999_build'
make: *** [Makefile:413: all] Error 2
I found dri2.h in xcb, is it a PATH declaration issue?
Installing this driver on a tegra30 based tablet (corresponding package for postmarketOS: link) apparently poses an issue to the embedded memory controller.
Linux version is: 5.12.0-rc2-00208-ga74e6a014c9d-dirty
Examples for error messages are:
tegra-mc 7000f000.memory-controller: idxsrd2: read @0x00801000: EMEM address decode error (EMEM decode error)
(Addresses sometimes vary)
and
tegra_mc_irq: n callbacks suppressed
(replace n by a two place decimal number).
A bunch of these would be spit out every now and then.
The screen output also indicates that something is going wrong: on the desktop some horizontal stripes of icons are rendered correctly while others are not (or are missing entirely).
Any ideas on what might be the cause(es) of this issue?
Hello,
i tried to rotate the output of xserver on my Tegra20.
But as soon as i add the option to the xorg.conf the server crashes on startup.
Log and config are attached:
Xorg.0.log
xorg.conf.txt
gdb showed the following stacktrace:
stacktrace.txt
I'm running the current master branch (feac058). The device is the Ouya running Alpine Linux and xfce4.
When the second tegra dc node is disabled in device tree, there is a crash in the opentegra driver. It is easy to reproduce by rapidly changing the xfce4 theme or a system font size/dpi.
The crash does not happen when both tegra dc devices are enabled. I guess it is makes no difference to have them both enabled. I thought it was safe to disable the second dc because there is no way to use a secondary display on this device anyways.
backtrace from the crash:
#0 drmmode_crtc_map_rotate_bo (scrn=scrn@entry=0x65d840, crtc_num=crtc_num@entry=1) at drmmode_display.c:1471
#1 0xb6649c5c in TegraEXAModifyPixmapHeader (pPixmap=0xa00eb0, width=6, height=8, depth=8, bitsPerPixel=8, devKind=-1, pPixData=0xa43ca4) at exa.c:424
#2 0xb6af7f8c in exaModifyPixmapHeader_driver (pPixmap=0xa00eb0, width=6, height=8, depth=8, bitsPerPixel=8, devKind=-1, pPixData=0xa43ca4) at exa_driver.c:162
#3 0x00534dae in GetScratchPixmapHeader (pScreen=pScreen@entry=0x661360, width=width@entry=6, height=height@entry=8, depth=depth@entry=8,
bitsPerPixel=bitsPerPixel@entry=8, devKind=devKind@entry=-1, pPixData=pPixData@entry=0xa43ca4) at pixmap.c:65
#4 0x0059c7d0 in ProcRenderAddGlyphs (client=<optimized out>) at render.c:1102
#5 0x00523872 in Dispatch () at dispatch.c:478
#6 0x00525f44 in dix_main (argc=10, argv=0xbecdfe44, envp=<optimized out>) at main.c:276
#7 0xb6f71e4e in libc_start_main_stage2 (main=0x5186f5 <main>, argc=10, argv=0xbecdfe44) at src/env/__libc_start_main.c:94
#8 0x0051873c in _start_c (p=<optimized out>) at crt/crt1.c:18
#9 0x00518710 in _start () at render.c:2060
/tmp/portage/x11-drivers/xf86-video-opentegra-9999/work/xf86-video-opentegra-9999/src/tegra_stream.c: In function ���tegra_stream_cleanup���:
/tmp/portage/x11-drivers/xf86-video-opentegra-9999/work/xf86-video-opentegra-9999/src/tegra_stream.c:78:32: error: ���struct tegra_stream��� has no member named ���fence���
drm_tegra_fence_free(stream->fence);
^
/tmp/portage/x11-drivers/xf86-video-opentegra-9999/work/xf86-video-opentegra-9999/src/tegra_stream.c:82:11: error: ���struct tegra_stream��� has no member named ���fence���
stream->fence = NULL;
^
Hello,
How would I go about obtaining read access to the latest mesa in https://gitlab.freedesktop.org/kusma/mesa/tree/master ?
I want to try and make a PKGBUILD for Arch linux/AC100 to further test on an AC100.
I tried cloning https://gitlab.freedesktop.org/kusma/mesa/mesa-master.git using Gitlab username and a 'personal access token' but receive 'project you are looking for cannot be found'.
Opentegra does not currently support tegra 186.
It is being considered with support for the future.
Hello,
since the commits from Jan 11, starting up X giving me: AddScreen/ScreenInit failed for driver 0.
Rolling back to 142f28a solved the issue.
Log files:
Is there a way to get around screen tearing?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.