Auf vt mit nvidia-driver & nvidia-modeset.ko und wieder zurück auf X-Server läuft

Fusselbär

Makefile Voyeur
Hier geht das! :)
Die vt bleiben leserlich trotz nvidia-modeset.ko.

Und zwar so, ganz einfach in der /boot/loader.conf:
Code:
#-------------------------------------------------------------------------------
# vt -- virtual terminal console driver
# aka. newcons
#-------------------------------------------------------------------------------
kern.vty=vt
hw.vga.textmode=1
Seit der Integration von Bengt Ahlgren extra-patch-src_nvidia-modeset_nvidia-modeset-freebsd.c startet der X-Server auch bislang ohne Zickerei. Zuvor hatte der nvidia-driver mit nvidia-modeset.ko ja hin und wieder beim ersten Start einen Unfall gebaut.
Den spannenden Faden und Patch für den neuen nvidia-driver gibt es dort:
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=201340
 
Cool. Hoffentlich wird das Update bald mal committed. Ich will Vulkan ohne Gefrickel. :)
 
Zudem klingt das ja auch sehr sexy bei den neuen Nvidia Grafikkarten, dass die trotz starker Grafikleistung ziemlich sparsam beim Strombedarf sein sollen:
http://www.computerbase.de/2016-05/nvidia-geforce-gtx-1070-titan-x-leistung-bei-gtx-960-verbrauch/
Für diese flammneue Grafikkartengeneration werden die alten nvidia-driver ja wohl nicht funktionieren. Nicht, dass man jetzt sofort unbedingt für FreeBSD so eine haben müsste, aber mit der neuen Treibergeneration könnte man auch diese neue und sparsame Grafikkartengeneration mit FreeBSD benutzen. :cool:
 
Die sind auch heftig teuer. 490€ ist nur interessant, wenn man wirklich viel und in hohen Auflösungen spielt. Ich warte da lieber auf die Mittelklasse mit der GTX 1050 oder so.
 
Mit Vulkan hat man auch automatisch OpenCL 2.1. Fehlt nur noch eine Toolchain mit der man OpenCL 2.1 auch machen kann.
 
Die sind auch heftig teuer. 490€ ist nur interessant, wenn man wirklich viel und in hohen Auflösungen spielt. Ich warte da lieber auf die Mittelklasse mit der GTX 1050 oder so.
Und nach einem Jahr dann erschwinglich. Etwas warten lohnt sich immer.;)
 
Ich fürchte auf Vulkan im Legacy-Support-Treiber (``nvidia-driver-340``) zu warten wäre vergeblich, oder was meint ihr?
 
Für Vulkan muss es mindestens Kepler oder Maxwell Architektur sein:
You will need any one of the following Kepler or Maxwell (both first and second generation Maxwell) based GPUs to get access to Vulkan functionality:
Quelle: https://developer.nvidia.com/vulkan-driver
Der Legacy 340er nvidia-driver ist ja eher für ältere Nvidia Grafikkarten gedacht.
Ab der Nvidia 400er Grafikkartenserie lässt sich der nvidia-driver 364.19 einsetzen, aber Vulkan Support bietet die 400er Grafikkartenserie nicht.
http://www.nvidia.com/Download/driverResults.aspx/101821/en-us
 
Nvidia hat gestern den neuen nvidia-driver 367.27 für den Long Lived Branch veröffentlicht:
http://www.nvidia.com/Download/driverResults.aspx/104287/en-us
Der ist jetzt wirklich auch für die GeForce GTX 1070 und die GeForce GTX 1080.
Neu ist das hartwarenbeschleunigte decoding von 8k H.265/HEVC Videos:
Added support for VDPAU Feature Set H to the NVIDIA VDPAU driver. GPUs with VDPAU Feature Set H are capable of hardware-accelerated decoding of 8192x8192 (8k) H.265/HEVC video streams.
Mit dem Patchset aus dem Faden:
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=201340
und dem ändern der DISTVERSION und dem anpassen der distinfo rennt der hier bei mir gut. Habe schon pflichtbewusst damit stundenlang ein 3D Videospiel betrieben (games/spring) und Youtube Videos in 1080p60 im Firefox laufen lassen. Konnte beobachten, dass die Grafikkarte mit dem nvidia-driver 367.27 etwas kühler bleibt und die Taktzahl schneller wieder gesenkt wird. Bin dafür aber auch nun Herr der Augenringe. :ugly:

Die Version 364.19 ist aus dem Short Lived Branch.
 
Befürchte, das war zu früh gefreut. Es scheint Bugs zu geben, die erst beim compilern gegen den libnvidia-glcore vom nvidia-driver 367.27 auffallen:
Code:
//usr/local/lib/libnvidia-glcore.so.1: undefined reference to `nv_vasprintf_vsnprintf'
//usr/local/lib/libnvidia-glcore.so.1: undefined reference to `nv_vasprintf_alloc'
//usr/local/lib/libnvidia-glcore.so.1: undefined reference to `nv_vasprintf_free'
Es war beim bauen von games/pioneer:
http://svnweb.freebsd.org/ports?view=revision&revision=416850
Ganz hässlicher Workaround, der bei mir hier aber funktionierte, war im laufenden System das Makefile vom nivdia-driver zu editieren, von 367.27 zurück auf 364.19, dann den nvidia-driver mit:
Code:
portupgrade -fu nvidia-driver
neubauen und installieren, im weiter laufenden System dann games/pioneer damit bauen, dann das Makefile vom nivida-driver wieder auf die DISTVERSION 367.27 zurückeditieren und anschließend im immer noch durchgängig weiter laufenden System den nvidia-driver 367.27 neubauen und installieren:
Code:
portupgrade -fu nvidia-driver
Ein bisschen ekelig ist das als Workaround wohl schon. :ugly:
pioneer lauft aber dann.

KDE ist wohl auch schon hineingerannt:
https://bugs.kde.org/show_bug.cgi?id=364335
 
Es gibt eine neue nvidia-driver Version 367.35 aus dem Long Lived Branch.
Hier ein Patch dafür:
Code:
cat nvidia-driver-367.35.edited.diff

--- x11/nvidia-driver/Makefile  (revision 417930)
+++ x11/nvidia-driver/Makefile  (working copy)
@@ -7,11 +7,10 @@
# Starting with version 1.0-7667, NVidia has dropped support for numerous
# "legacy" GPUs.  Consult NVidia README (the Appendix) to find out whether
# you need to use legacy driver version and install one of corresponding
-# slave ports instead (`x11/nvidia-driver-173', `x11/nvidia-driver-304',
-# or `x11/nvidia-driver-340').
+# slave ports instead (`x11/nvidia-driver-304', or `x11/nvidia-driver-340').
PORTNAME=      nvidia-driver
-DISTVERSION?=  346.96
+DISTVERSION?=  367.35
# Always try to set PORTREVISION as it can be overridden by the slave ports
PORTREVISION?= 0
CATEGORIES=    x11
@@ -29,7 +28,7 @@
ARCH_SUFX=     x86${ARCH:S/i386//:S/amd/_/}
USES=          kmod uidfix
-USE_XORG=      xorg-server
+USE_XORG=      x11 xorg-server xext
USE_GL=                gl
USE_LDCONFIG=  yes
@@ -57,45 +56,29 @@
.  endif
.endif
-.if ${NVVERSION} >= 195.022
MASTER_SITE_SUBDIR=    XFree86/FreeBSD-${ARCH_SUFX}/${DISTVERSION}
ONLY_FOR_ARCHS=        i386 amd64
-.else
-MASTER_SITE_SUBDIR=    freebsd/${DISTVERSION}
-ONLY_FOR_ARCHS=        i386
-.endif
-.if ${NVVERSION} <= 190.042
-EXTRA_PATCHES= ${FILESDIR}/legacy-patch-mk-nvidia.lib.mk
-.else
-EXTRA_PATCHES= ${FILESDIR}/extra-patch-mk-nvidia.lib.mk
-.endif
-
-.if ${NVVERSION} >= 304.088
+.if ${NVVERSION} < 355.006
EXTRA_PATCHES+=        ${FILESDIR}/extra-patch-src-Makefile \
                ${FILESDIR}/extra-patch-src-nv-freebsd.h \
                ${FILESDIR}/extra-patch-src-nv-misc.h
-.endif
-
-.if ${NVVERSION} >= 304.125 # 331.020
-EXTRA_PATCHES+=        ${FILESDIR}/extra-patch-x11-driver-Makefile
.else
-EXTRA_PATCHES+=        ${FILESDIR}/legacy-patch-x11-driver-Makefile
+NVSRC=nvidia
+EXTRA_PATCHES+=        ${FILESDIR}/extra-patch-src_nvidia_Makefile \
+               ${FILESDIR}/extra-patch-src_nvidia_nv-freebsd.h \
+               ${FILESDIR}/extra-patch-src_nvidia_nv-misc.h
.endif
-
-# Fix recent arbitrary memory access vulnerability in legacy drivers
-.if ${NVVERSION} <= 190.053
-.  if ${NVVERSION} != 173.01435
-EXTRA_PATCHES+=        ${FILESDIR}/security-patch-CVE-2012-0946
-.  endif
-EXTRA_PATCHES+=        ${FILESDIR}/security-patch-CVE-2012-4225
+.if ${NVVERSION} >= 358.009
+EXTRA_PATCHES+=        ${FILESDIR}/extra-patch-src_nvidia-modeset_nvidia-modeset-freebsd.c
.endif
-OPTIONS_DEFINE=        ACPI_PM LINUX DOCS
+OPTIONS_DEFINE=                ACPI_PM LINUX DOCS WBINVD
OPTIONS_DEFAULT=       LINUX
ACPI_PM_DESC=          ACPI Power Management support
LINUX_DESC=            Linux compatibility support
+WBINVD_DESC=           Flush CPU caches directly with WBINVD
.if ${NVVERSION} < 310.014
OPTIONS_DEFINE+=       FREEBSD_AGP
@@ -102,11 +85,6 @@
FREEBSD_AGP_DESC=      Use FreeBSD AGP GART driver
.endif
-.if ${NVVERSION} >= 195.022
-OPTIONS_DEFINE+=       WBINVD
-WBINVD_DESC=           Flush CPU caches directly with WBINVD
-.endif
-
.if ${NVVERSION} >= 304.088
OPTIONS_DEFINE_i386=   PAE
PAE_DESC=              Physical Address Extensions support
@@ -127,97 +105,61 @@
MAKE_ENV+=     WITHOUT_LINUX=yes
.endif
-.if ${NVVERSION} < 195.022
-# ABI version is hardcoded inside the binary, so specify it explicitly here
-LIB_DEPENDS=   libm.so.3:misc/compat5x
-.endif
-
post-patch: .SILENT
-# We should support -CURRENT: kill the check
-       ${REINPLACE_CMD} -e '24,26d' ${WRKSRC}/src/nv-freebsd.h
-# Adjust legacy drivers for updated d_mmap() since FreeBSD src SVN r201223
-.if ${NVVERSION} < 195.022
-       ${REINPLACE_CMD} -e 's/vm_offset_t offset/vm_ooffset_t offset/ ; \
-               s/vm_offset_t \*address/vm_paddr_t *address/ ; \
-               s/int nprot/&, vm_memattr_t *memattr/' \
-                       ${WRKSRC}/src/nvidia_dev.c
-.endif
-# In the legacy drivers: remove page queue locking and add page locking
-# around vm_page_(un)wire() after FreeBSD src SVN r207410, r207617, and
-# r207644; also remove page queue locking around vm_page_wakeup() after
-# FreeBSD src SVN r163622
-.if ${NVVERSION} < 304.064
-       ${REINPLACE_CMD} -E '/vm_page_(un)?lock_queues\(\);/d ; \
-               s/(vm_page_(un)?wire\()([^,]+)(, 0)?(\);)/vm_page_lock(\3); & vm_page_unlock(\3);/' \
-                       ${WRKSRC}/src/nvidia_subr.c
-.endif
-# Catch up legacy drivers with FreeBSD src SVN r225617
-.if ${NVVERSION} < 195.022
-       ${REINPLACE_CMD} -e '/return/s/ioctl/sys_&/' \
-               ${WRKSRC}/src/nvidia_linux.c
-.endif
+       ${REINPLACE_CMD} -e '24,26d' ${WRKSRC}/src/${NVSRC}/nv-freebsd.h
# Adjust Linux headers #include's after FreeBSD src SVN r246085
.if ${OSVERSION} > 1000027 && ${NVVERSION} >= 96.04323
        ${REINPLACE_CMD} -E '/#include "machine\/\.\.\/linux(32)?\/linux.h"/ \
                { x ; s/.*/#include "machine\/..\/..\/compat\/linux\/linux_ioctl.h"/ ; H ; x ; }' \
-                       ${WRKSRC}/src/nvidia_linux.c
+                       ${WRKSRC}/src/${NVSRC}/nvidia_linux.c
.endif
# Adjust vm_object locking after FreeBSD src SVN r248084
.if ${OSVERSION} > 1000029
        ${REINPLACE_CMD} -e '/#include <vm\/vm_object.h>/ \
                { x ; s/.*/#include <sys\/rwlock.h>/ ; G ; }' \
-                       ${WRKSRC}/src/nv-freebsd.h
+                       ${WRKSRC}/src/${NVSRC}/nv-freebsd.h
        ${REINPLACE_CMD} -E 's/(VM_OBJECT_)(UN)?(LOCK)/\1W\2\3/' \
-               ${WRKSRC}/src/nvidia_subr.c
+               ${WRKSRC}/src/${NVSRC}/nvidia_subr.c
.endif
# Adjust kmem(9) calls after FreeBSD src SVN r254025
.if ${OSVERSION} > 1000040 && ${NVVERSION} < 331.067
        ${REINPLACE_CMD} -e '/kmem_/s/kernel_map/kernel_arena/' \
-               ${WRKSRC}/src/nvidia_subr.c
+               ${WRKSRC}/src/${NVSRC}/nvidia_subr.c
.endif
-# Argument count of vm_map_find() changed in FreeBSD src SVN r255426
-.if ${OSVERSION} > 1000054 && ${NVVERSION} < 304.123 # < 331.067
-       ${REINPLACE_CMD} -e 's/virtual_address, size,/& 0,/' \
-               ${WRKSRC}/src/nvidia_subr.c
-.endif
# Fix CTLFLAG_* values for SYSCTL_ADD_PROC() after FreeBSD src SVN r273377
.if ${OSVERSION} > 1100039 || ${OSVERSION} > 1001501 && ${OSVERSION} < 1100000
        ${REINPLACE_CMD} -e '/SYSCTL_ADD_PROC/,/;/ \
                s/^[[:blank:]]*CTLFLAG_RD/CTLTYPE_STRING |&/' \
-                       ${WRKSRC}/src/nvidia_sysctl.c
+                       ${WRKSRC}/src/${NVSRC}/nvidia_sysctl.c
.endif
# Replace d_thread_t (compat shim to support FreeBSD 4) with `struct thread'
        ${REINPLACE_CMD} -e 's/d_thread_t/struct thread/' \
-               ${WRKSRC}/src/nvidia_ctl.c ${WRKSRC}/src/nvidia_dev.c \
-               ${WRKSRC}/src/nvidia_linux.c
-# Fix stack buffer overflow in nvidia_sysctl_bus_type()
-       ${REINPLACE_CMD} -e 's/8 bus_type\[4\]/8 bus_type[8]/' \
-               ${WRKSRC}/src/nvidia_sysctl.c
-# Unbreak the build of 173.14.xx legacy series on recent -CURRENT
-.if ${NVVERSION} < 195.022 && ${NVVERSION} >= 169.004
-       ${REINPLACE_CMD} -E 's/os_(alloc|free)_contig_pages/NV_API_CALL &/' \
-               ${WRKSRC}/src/nv-freebsd.h
+               ${WRKSRC}/src/${NVSRC}/nvidia_ctl.c ${WRKSRC}/src/${NVSRC}/nvidia_dev.c \
+               ${WRKSRC}/src/${NVSRC}/nvidia_linux.c
+.if ${NVVERSION} >= 358.009
+       ${REINPLACE_CMD} -e 's/d_thread_t/struct thread/' \
+               ${WRKSRC}/src/nvidia-modeset/nvidia-modeset-freebsd.c
.endif
# Process OPTIONS
.if ${PORT_OPTIONS:MFREEBSD_AGP}
        ${REINPLACE_CMD} -E 's/undef (NV_SUPPORT_OS_AGP)/define \1/' \
-               ${WRKSRC}/src/nv-freebsd.h
+               ${WRKSRC}/src/${NVSRC}/nv-freebsd.h
.endif
.if ${PORT_OPTIONS:MACPI_PM}
        ${REINPLACE_CMD} -E 's/undef (NV_SUPPORT_ACPI_PM)/define \1/' \
-               ${WRKSRC}/src/nv-freebsd.h
+               ${WRKSRC}/src/${NVSRC}/nv-freebsd.h
.endif
.if ! ${PORT_OPTIONS:MLINUX}
        ${REINPLACE_CMD} -E 's/define (NV_SUPPORT_LINUX_COMPAT)/undef \1/' \
-               ${WRKSRC}/src/nv-freebsd.h
+               ${WRKSRC}/src/${NVSRC}/nv-freebsd.h
.endif
.if ${PORT_OPTIONS:MPAE}
        ${REINPLACE_CMD} -E 's/undef (NV_SUPPORT_PAE)/define \1/' \
-               ${WRKSRC}/src/nv-freebsd.h
+               ${WRKSRC}/src/${NVSRC}/nv-freebsd.h
.endif
.if ${PORT_OPTIONS:MWBINVD}
        ${REINPLACE_CMD} -E 's/undef (NV_USE_WBINVD)/define \1/' \
-               ${WRKSRC}/src/nv-freebsd.h
+               ${WRKSRC}/src/${NVSRC}/nv-freebsd.h
.endif
        ${REINPLACE_CMD} -e 's/exists(\/.*/& \&\& !defined(WITHOUT_LINUX)/' \
                ${WRKSRC}/lib/Makefile
@@ -229,11 +171,6 @@
.endif
# Do not build any binaries (native nvidia-settings and nvidia-xconfig are
# provided by corresponding ports) and manual pages
-.if ${NVVERSION} < 97.046 || ${NVVERSION} >= 195.022
-       ${REINPLACE_CMD} -E 's/(extension).*/\1/' ${WRKSRC}/x11/Makefile
-.else
-       ${REINPLACE_CMD} -E 's/(lib).*/\1/' ${WRKSRC}/x11/Makefile
-.endif
        ${REINPLACE_CMD} -e '/bin/d ; /man/d' ${WRKSRC}/x11/Makefile
# Also do not install libnvidia-gtk* libraries which are for nvidia-settings
.if ${NVVERSION} >= 346.016
@@ -259,7 +196,7 @@
# and "smart" installation of conflicting files heuristics)
        ${REINPLACE_CMD} -e 's/afterinstall/&_dontexecute/' ${WRKSRC}/Makefile
        ${REINPLACE_CMD} -e 's/beforeinstall/&_dontexecute/' \
-               ${WRKSRC}/lib/Makefile ${WRKSRC}/src/Makefile
+               ${WRKSRC}/lib/Makefile ${WRKSRC}/src/${NVSRC}/Makefile
# /usr/share/nvidia path is hardcoded in libGL and nvidia-settings, but we
# won't adhere to this stupidity and install nvidia-application-profiles-*
# files as part of documentation
@@ -267,6 +204,11 @@
        ${REINPLACE_CMD} -e 's,/usr/share/nvidia,${STAGEDIR}${DOCSDIR},' \
                ${WRKSRC}/lib/libGL/Makefile ${WRKSRC}/doc/Makefile
.endif
+# Fix cap_rights, does not exist before 10.x
+.if ${OSVERSION} < 1000000 && ${NVVERSION} >= 358.009
+       ${REINPLACE_CMD} '/<sys\/caprights.h>/d ; /cap_rights_t rights/d ; s/cap_rights_init(&rights, CAP_IOCTL)/CAP_IOCTL/' \
+               ${WRKSRC}/src/nvidia-modeset/nvidia-modeset-freebsd.c
+.endif
pre-install:
        @${MKDIR} ${STAGEDIR}${PREFIX}/${MODULESDIR}/drivers \
@@ -276,24 +218,9 @@
        ${INSTALL_SCRIPT} ${WRKSRC}/obj/nvidia-bug-report.sh \
                ${STAGEDIR}${PREFIX}/bin
# pkg-plist is already overbloated, so use these hacks instead of PLIST_SUB's
-.if ${NVVERSION} < 81.074
-       ${REINPLACE_CMD} -e '/libnvidia-cfg/d' ${TMPPLIST}
-.endif
-.if ${NVVERSION} < 97.046 || ${NVVERSION} >= 195.022
-       ${REINPLACE_CMD} -e '/wfb/d' ${TMPPLIST}
-.endif
-.if ${NVVERSION} < 180.029
-       ${REINPLACE_CMD} -e '/vdpau/d' ${TMPPLIST}
-.elif ${NVVERSION} >= 304.128 && ${NVVERSION} < 310.019
+.if ${NVVERSION} >= 304.128 && ${NVVERSION} < 310.019 || ${NVVERSION} >= 361.016
        ${REINPLACE_CMD} -E '/libvdpau(_trace)?\.so/d' ${TMPPLIST}
.endif
-.if ${NVVERSION} < 185.01829
-       ${REINPLACE_CMD} -e '/libcuda/d' ${TMPPLIST}
-.endif
-.if ${NVVERSION} >= 256.053
-       ${REINPLACE_CMD} -E 's/libGLcore/libnvidia-glcore/ ; \
-               /usr.*(glcore|tls).*so\.1$$/d' ${TMPPLIST}
-.endif
.if ${NVVERSION} >= 310.019
        ${REINPLACE_CMD} -e '/libXvMCNVIDIA/d' ${TMPPLIST}
.else  # some applications need this symlink (see PR ports/72877)
@@ -307,6 +234,28 @@
.if ${NVVERSION} >= 195.022
        ${REINPLACE_CMD} -e '/does not support PAE/,+1d' ${PKGMESSAGE}
.endif
+.if ${NVVERSION} < 352.009
+       ${REINPLACE_CMD} -E '/(lib)?nvidia-(debugdump|smi|ml)/d' ${TMPPLIST}
+.endif
+.if ${NVVERSION} < 355.006
+       ${REINPLACE_CMD} -E '/(libEGL_nvidia|GLdispatch|OpenGL)/d' ${TMPPLIST}
+.else
+       ${REINPLACE_CMD} 's/libEGL\.so\.${PORTVERSION}/libEGL.so/' \
+               ${TMPPLIST}
+.endif
+.if ${NVVERSION} < 358.009
+       ${REINPLACE_CMD} '/nvidia-modeset.ko/d' ${TMPPLIST}
+.else
+       ${REINPLACE_CMD} 's/nvidia$$/nvidia-modeset/ ; s/nvidia_/nvidia-modeset_/' \
+               ${PKGMESSAGE}
+.endif
+.if ${NVVERSION} >= 361.028
+       ${REINPLACE_CMD} -E '/(EGL_nvidia\.so|GLESv[12](_CM)?(\.so\.[0-9]+\.[0-9]+))$$/d' \
+               ${TMPPLIST}
+.else
+       ${REINPLACE_CMD} -E '/\/lib\/libGLESv[12](_CM)?(\.so)?(_nvidia.so(\.[0-9]|\.[0-9]+\.[0-9]+)?)?$$/d ; \
+               /libEGL_nvidia\.so\.${PORTVERSION}/d' ${TMPPLIST}
+.endif
# Target below can be used instead of standard `makesum' to correctly
# update distinfo (i.e., keeping other driver version entries intact)
--- x11/nvidia-driver/distinfo  (revision 417930)
+++ x11/nvidia-driver/distinfo  (working copy)
@@ -1,3 +1,7 @@
+SHA256 (NVIDIA-FreeBSD-x86_64-367.35.tar.gz) = b33057ce23ce1ae44ddd246a7d2d9e2b0aa2ed5a289d8a83e849249de81a1035
+SIZE (NVIDIA-FreeBSD-x86_64-367.35.tar.gz) = 59393955
+SHA256 (NVIDIA-FreeBSD-x86-367.35.tar.gz) = 2edf78801213dea72ddd6c40acd860893623224166ad522fd47e202443cb6d50
+SIZE (NVIDIA-FreeBSD-x86-367.35.tar.gz) = 62636433
SHA256 (NVIDIA-FreeBSD-x86_64-346.96.tar.gz) = 89daaff29afe92d825ec8c00149a703b4eb234e4f16bbfb98673f077521bcff9
SIZE (NVIDIA-FreeBSD-x86_64-346.96.tar.gz) = 58774970
SHA256 (NVIDIA-FreeBSD-x86-346.96.tar.gz) = a27d7b79c053702bf6524b2c4725321fa557be18a585735e0b8122d884348c3e
--- x11/nvidia-driver/files/extra-patch-mk-nvidia.lib.mk        (revision 417930)
+++ x11/nvidia-driver/files/extra-patch-mk-nvidia.lib.mk        (nonexistent)
@@ -1,13 +0,0 @@
---- mk/nvidia.lib.mk.orig      2013-08-16 10:53:30.000000000 +0200
-+++ mk/nvidia.lib.mk   2014-01-27 16:55:39.000000000 +0100
-@@ -46,8 +46,8 @@
- .endif
- .endif
- .if defined(AUXLINK_TGT)
--      @rm -f ${AUXLINK_LINK}
--      @ln -fs ${AUXLINK_TGT} ${AUXLINK_LINK}
-+      @rm -f ${DESTDIR}${AUXLINK_LINK}
-+      @ln -fs ${AUXLINK_TGT} ${DESTDIR}${AUXLINK_LINK}
- .endif
- .if defined(STATICLIB_NAME)
-       @rm -f ${DESTDIR}${LIBDIR}/${STATICLIB_NAME}
--- x11/nvidia-driver/files/extra-patch-src_nvidia-modeset_nvidia-modeset-freebsd.c     (nonexistent)
+++ x11/nvidia-driver/files/extra-patch-src_nvidia-modeset_nvidia-modeset-freebsd.c     (working copy)
@@ -0,0 +1,20 @@
+--- src/nvidia-modeset/nvidia-modeset-freebsd.c.orig   2016-05-28 15:44:11 UTC
++++ src/nvidia-modeset/nvidia-modeset-freebsd.c
+@@ -245,7 +245,7 @@ struct nvkms_ref_ptr {
+
+ struct nvkms_ref_ptr* NVKMS_API_CALL nvkms_alloc_ref_ptr(void *ptr)
+ {
+-    struct nvkms_ref_ptr *ref_ptr = nvkms_alloc(sizeof(*ref_ptr), NV_FALSE);
++    struct nvkms_ref_ptr *ref_ptr = nvkms_alloc(sizeof(*ref_ptr), NV_TRUE);
+     if (ref_ptr) {
+         mtx_init(&ref_ptr->lock, "nvkms-ref-ptr-lock", NULL, MTX_SPIN);
+         // The ref_ptr owner counts as a reference on the ref_ptr itself.
+@@ -792,7 +792,7 @@ static int nvkms_open(
+     nvkms_module.client_counter += 1;
+     sx_xunlock(&nvkms_module.lock);
+
+-    popen = nvkms_alloc(sizeof(*popen), NV_FALSE);
++    popen = nvkms_alloc(sizeof(*popen), NV_TRUE);
+     if (popen == NULL) {
+         return ENOMEM;
+     }
--- x11/nvidia-driver/files/extra-patch-src_nvidia_Makefile     (nonexistent)
+++ x11/nvidia-driver/files/extra-patch-src_nvidia_Makefile     (working copy)
@@ -0,0 +1,18 @@
+--- src/nvidia/Makefile.orig   2015-08-26 22:35:13 UTC
++++ src/nvidia/Makefile
+@@ -26,6 +26,15 @@ NO_OBJ=             true
+ stdarg.h:
+       @ln -s machine/stdarg.h stdarg.h
+
++SRCS+=                opt_global.h
++.if ${MACHINE_ARCH} == "i386" && !defined(KERNBUILDDIR)
++PAE!=         sed -n '/define NV_SUPPORT_PAE/p' nv-freebsd.h
++.if !empty(PAE)
++opt_global.h:
++              echo "#define PAE 1" > ${.TARGET}
++.endif
++.endif
++
+ *.c: stdarg.h
+
+ beforeinstall:        ${KMOD}.ko
--- x11/nvidia-driver/files/extra-patch-src_nvidia_nv-freebsd.h (nonexistent)
+++ x11/nvidia-driver/files/extra-patch-src_nvidia_nv-freebsd.h (working copy)
@@ -0,0 +1,14 @@
+--- src/nvidia/nv-freebsd.h.orig       2015-10-30 22:40:02 UTC
++++ src/nvidia/nv-freebsd.h
+@@ -144,6 +144,11 @@ MALLOC_DECLARE(M_NVIDIA);
+ #endif
+
+ /*
++ * Enable/Disable support for PAE on i386.
++ */
++#undef NV_SUPPORT_PAE
++
++/*
+  * Enable/Disable support for ACPI Power Management.
+  */
+
--- x11/nvidia-driver/files/extra-patch-src_nvidia_nv-misc.h    (nonexistent)
+++ x11/nvidia-driver/files/extra-patch-src_nvidia_nv-misc.h    (working copy)
@@ -0,0 +1,11 @@
+--- src/nvidia/nv-misc.h.orig  2015-10-30 22:24:29 UTC
++++ src/nvidia/nv-misc.h
+@@ -11,6 +11,8 @@
+ #ifndef _NV_MISC_H_
+ #define _NV_MISC_H_
+
++#include "opt_global.h"
++
+ #include "nvtypes.h"
+ #include "rmretval.h"
+
--- x11/nvidia-driver/files/extra-patch-x11-driver-Makefile     (revision 417930)
+++ x11/nvidia-driver/files/extra-patch-x11-driver-Makefile     (nonexistent)
@@ -1,11 +0,0 @@
---- x11/driver/Makefile.orig   2013-08-16 10:53:30.000000000 +0200
-+++ x11/driver/Makefile        2014-01-27 18:25:14.000000000 +0100
-@@ -5,7 +5,7 @@
- .endif
-
- DRIVERS=      nvidia_drv.o nvidia_drv.so
--.if exists(${LOCALBASE}/lib/xorg/modules/drivers)
-+.if exists(${DESTDIR}${LOCALBASE}/lib/xorg/modules/drivers)
- DRIVERDIR=    ${LOCALBASE}/lib/xorg/modules/drivers
- .else
- DRIVERDIR=    ${LOCALBASE}/lib/modules/drivers
--- x11/nvidia-driver/files/legacy-patch-mk-nvidia.lib.mk       (revision 417930)
+++ x11/nvidia-driver/files/legacy-patch-mk-nvidia.lib.mk       (nonexistent)
@@ -1,10 +0,0 @@
---- mk/nvidia.lib.mk.orig
-+++ mk/nvidia.lib.mk
-@@ -17,6 +17,7 @@
-
- install:
- .if defined(SHLIB_NAME)
-+      @mkdir -p ${DESTDIR}${LIBDIR}
-       @rm -f ${DESTDIR}${LIBDIR}/${SHLIB_NAME}
-       @${INSTALL} -C -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
-               ${NVIDIA_ROOT}/${OBJDIR}/${SHLIB_NAME} \
--- x11/nvidia-driver/files/legacy-patch-x11-driver-Makefile    (revision 417930)
+++ x11/nvidia-driver/files/legacy-patch-x11-driver-Makefile    (nonexistent)
@@ -1,11 +0,0 @@
---- x11/driver/Makefile.orig   2012-12-12 15:39:41.000000000 +0100
-+++ x11/driver/Makefile        2014-01-28 22:28:05.000000000 +0100
-@@ -5,7 +5,7 @@
- .endif
-
- DRIVERS=      nvidia_drv.o nvidia_drv.so
--.if exists(${X11BASE}/lib/xorg/modules/drivers)
-+.if exists(${DESTDIR}${X11BASE}/lib/xorg/modules/drivers)
- DRIVERDIR=    ${X11BASE}/lib/xorg/modules/drivers
- .else
- DRIVERDIR=    ${X11BASE}/lib/modules/drivers
--- x11/nvidia-driver/files/patch-mk_nvidia.lib.mk      (nonexistent)
+++ x11/nvidia-driver/files/patch-mk_nvidia.lib.mk      (working copy)
@@ -0,0 +1,13 @@
+--- mk/nvidia.lib.mk.orig      2015-08-24 03:56:22 UTC
++++ mk/nvidia.lib.mk
+@@ -46,8 +46,8 @@ install: ${EXTRADEPS}
+ .endif
+ .endif
+ .if defined(AUXLINK_TGT)
+-      @rm -f ${AUXLINK_LINK}
+-      @ln -fs ${AUXLINK_TGT} ${AUXLINK_LINK}
++      @rm -f ${DESTDIR}${AUXLINK_LINK}
++      @ln -fs ${AUXLINK_TGT} ${DESTDIR}${AUXLINK_LINK}
+ .endif
+ .if defined(STATICLIB_NAME)
+       @rm -f ${DESTDIR}${LIBDIR}/${STATICLIB_NAME}
--- x11/nvidia-driver/files/patch-x11_driver_Makefile   (nonexistent)
+++ x11/nvidia-driver/files/patch-x11_driver_Makefile   (working copy)
@@ -0,0 +1,11 @@
+--- x11/driver/Makefile.orig   2015-08-24 03:56:22 UTC
++++ x11/driver/Makefile
+@@ -5,7 +5,7 @@ LOCALBASE=     /usr/local
+ .endif
+
+ DRIVERS=      nvidia_drv.o nvidia_drv.so
+-.if exists(${LOCALBASE}/lib/xorg/modules/drivers)
++.if exists(${DESTDIR}${LOCALBASE}/lib/xorg/modules/drivers)
+ DRIVERDIR=    ${LOCALBASE}/lib/xorg/modules/drivers
+ .else
+ DRIVERDIR=    ${LOCALBASE}/lib/modules/drivers
--- x11/nvidia-driver/files/security-patch-CVE-2012-0946        (revision 417930)
+++ x11/nvidia-driver/files/security-patch-CVE-2012-0946        (nonexistent)
@@ -1,28 +0,0 @@
---- src/nv.h.orig      2011-07-14 02:51:53.000000000 +0800
-+++ src/nv.h   2012-05-10 18:15:51.000000000 +0800
-@@ -364,6 +364,14 @@
-              ((offset) >= (nv)->agp.address) &&                                \
-              (((offset) + ((length)-1)) <= (nv)->agp.address + ((nv)->agp.size-1)))
-
-+#define IS_REG_RANGE_WITHIN_MAPPING(nv, roffset, rlength, moffset, mlength)    \
-+             (((moffset) <= ((nv)->regs->address + ((roffset) + (rlength)-1))) &&\
-+             (((moffset) + (mlength)-1) >= ((nv)->regs->address + (roffset))))
-+
-+#define IS_BLACKLISTED_REG_OFFSET(nv, offset, length)                          \
-+             ((IS_REG_RANGE_WITHIN_MAPPING(nv, 0x1000, 0x1000, offset, length)) ||\
-+             (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x700000, 0x100000, offset, length)))
-+
- /* duplicated from nvos.h for external builds */
- #ifndef NVOS_AGP_CONFIG_DISABLE_AGP
- #  define NVOS_AGP_CONFIG_DISABLE_AGP (0x00000000)
---- src/nvidia_subr.c.orig     2012-05-10 18:09:01.000000000 +0800
-+++ src/nvidia_subr.c  2012-05-10 18:13:41.000000000 +0800
-@@ -1464,6 +1464,8 @@
-     }
-
-     if (IS_REG_OFFSET(nv, offset, PAGE_SIZE)) {
-+        if (IS_BLACKLISTED_REG_OFFSET(nv, offset, PAGE_SIZE))
-+             return -1;
-         *physical = offset;
-         return 0;
-     }
--- x11/nvidia-driver/files/security-patch-CVE-2012-4225        (revision 417930)
+++ x11/nvidia-driver/files/security-patch-CVE-2012-4225        (nonexistent)
@@ -1,24 +0,0 @@
---- src/nv.h.orig      2012-08-02 18:19:37.000000000 -0700
-+++ src/nv.h 2012-08-02 18:19:37.000000000 -0700
-@@ -436,7 +436,20 @@
-
- #define IS_BLACKLISTED_REG_OFFSET(nv, offset, length)                          \
-              ((IS_REG_RANGE_WITHIN_MAPPING(nv, 0x1000, 0x1000, offset, length)) ||\
--             (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x700000, 0x100000, offset, length)))
-+              (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x84000, 0x1000, offset, length)) ||\
-+              (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x85000, 0x1000, offset, length)) ||\
-+              (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x86000, 0x1000, offset, length)) ||\
-+              (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x87000, 0x1000, offset, length)) ||\
-+              (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x89000, 0x1000, offset, length)) ||\
-+              (IS_REG_RANGE_WITHIN_MAPPING(nv, 0xa0000, 0x20000, offset, length)) ||\
-+              (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x104000, 0x1000, offset, length)) ||\
-+              (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x105000, 0x1000, offset, length)) ||\
-+              (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x10a000, 0x1000, offset, length)) ||\
-+              (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x1c2000, 0x1000, offset, length)) ||\
-+              (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x1c3000, 0x1000, offset, length)) ||\
-+              (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x618000, 0x2000, offset, length)) ||\
-+              (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x627000, 0x1000, offset, length)) ||\
-+              (IS_REG_RANGE_WITHIN_MAPPING(nv, 0x700000, 0x100000, offset, length)))
-
- /* duplicated from nvos.h for external builds */
- #ifndef NVOS_AGP_CONFIG_DISABLE_AGP
--- x11/nvidia-driver/pkg-plist (revision 417930)
+++ x11/nvidia-driver/pkg-plist (working copy)
@@ -1,4 +1,6 @@
bin/nvidia-bug-report.sh
+bin/nvidia-debugdump
+bin/nvidia-smi
lib/.nvidia/libGL.so
lib/.nvidia/libGL.so.1
lib/.nvidia/libEGL.so
@@ -7,8 +9,8 @@
lib/libGLESv1_CM.so.1
lib/.nvidia/libGLESv2.so
lib/.nvidia/libGLESv2.so.2
-lib/libGLcore.so
-lib/libGLcore.so.1
+lib/libnvidia-glcore.so
+lib/libnvidia-glcore.so.1
lib/libXvMCNVIDIA.a
lib/libXvMCNVIDIA.so
lib/libXvMCNVIDIA.so.1
@@ -19,31 +21,45 @@
lib/libnvidia-eglcore.so.1
lib/libnvidia-glsi.so
lib/libnvidia-glsi.so.1
+lib/libnvidia-ml.so
+lib/libnvidia-ml.so.1
lib/libnvidia-tls.so
lib/libnvidia-tls.so.1
lib/libvdpau_nvidia.so
lib/vdpau/libvdpau_nvidia.so.1
+man/man1/nvidia-smi.1.gz
%%MODULESDIR%%/drivers/nvidia_drv.so
%%MODULESDIR%%/extensions/.nvidia/libglx.so
%%MODULESDIR%%/extensions/.nvidia/libglx.so.1
-%%MODULESDIR%%/libnvidia-wfb.so.1
/%%KMODDIR%%/nvidia.ko
+/%%KMODDIR%%/nvidia-modeset.ko
%%LINUX%%%%LINUXBASE%%/usr/lib/libEGL.so.%%SHLIB_VERSION%%
%%LINUX%%%%LINUXBASE%%/usr/lib/libEGL.so.1
+%%LINUX%%%%LINUXBASE%%/usr/lib/libEGL_nvidia.so.%%SHLIB_VERSION%%
%%LINUX%%%%LINUXBASE%%/usr/lib/libGL.so.%%SHLIB_VERSION%%
%%LINUX%%%%LINUXBASE%%/usr/lib/libGL.so.1
+%%LINUX%%%%LINUXBASE%%/usr/lib/libEGL_nvidia.so
+%%LINUX%%%%LINUXBASE%%/usr/lib/libEGL_nvidia.so.0
%%LINUX%%%%LINUXBASE%%/usr/lib/libGLESv1_CM.so.%%SHLIB_VERSION%%
%%LINUX%%%%LINUXBASE%%/usr/lib/libGLESv1_CM.so.1
+%%LINUX%%%%LINUXBASE%%/usr/lib/libGLESv1_CM.so
+%%LINUX%%%%LINUXBASE%%/usr/lib/libGLESv1_CM_nvidia.so.1
+%%LINUX%%%%LINUXBASE%%/usr/lib/libGLESv1_CM_nvidia.so.%%SHLIB_VERSION%%
%%LINUX%%%%LINUXBASE%%/usr/lib/libGLESv2.so.%%SHLIB_VERSION%%
%%LINUX%%%%LINUXBASE%%/usr/lib/libGLESv2.so.2
-%%LINUX%%%%LINUXBASE%%/usr/lib/libGLcore.so.%%SHLIB_VERSION%%
-%%LINUX%%%%LINUXBASE%%/usr/lib/libGLcore.so.1
+%%LINUX%%%%LINUXBASE%%/usr/lib/libGLESv2.so
+%%LINUX%%%%LINUXBASE%%/usr/lib/libGLESv2_nvidia.so.2
+%%LINUX%%%%LINUXBASE%%/usr/lib/libGLESv2_nvidia.so.%%SHLIB_VERSION%%
+%%LINUX%%%%LINUXBASE%%/usr/lib/libGLdispatch.so
+%%LINUX%%%%LINUXBASE%%/usr/lib/libGLdispatch.so.0
+%%LINUX%%%%LINUXBASE%%/usr/lib/libOpenGL.so
+%%LINUX%%%%LINUXBASE%%/usr/lib/libOpenGL.so.0
+%%LINUX%%%%LINUXBASE%%/usr/lib/libnvidia-glcore.so.%%SHLIB_VERSION%%
%%LINUX%%%%LINUXBASE%%/usr/lib/libcuda.so.%%SHLIB_VERSION%%
%%LINUX%%%%LINUXBASE%%/usr/lib/libcuda.so.1
%%LINUX%%%%LINUXBASE%%/usr/lib/libnvidia-eglcore.so.%%SHLIB_VERSION%%
%%LINUX%%%%LINUXBASE%%/usr/lib/libnvidia-glsi.so.%%SHLIB_VERSION%%
%%LINUX%%%%LINUXBASE%%/usr/lib/libnvidia-tls.so.%%SHLIB_VERSION%%
-%%LINUX%%%%LINUXBASE%%/usr/lib/libnvidia-tls.so.1
%%LINUX%%%%LINUXBASE%%/usr/lib/libvdpau.so.%%SHLIB_VERSION%%
%%LINUX%%%%LINUXBASE%%/usr/lib/libvdpau.so.1
%%LINUX%%%%LINUXBASE%%/usr/lib/libvdpau_nvidia.so
@@ -54,3 +70,8 @@
%%LINUX%%%%LINUXBASE%%/usr/lib/vdpau/libvdpau_trace.so.1
%%LINUX%%@exec %%LINUXBASE%%/sbin/ldconfig -r %%LINUXBASE%%
%%LINUX%%@unexec %%LINUXBASE%%/sbin/ldconfig -r %%LINUXBASE%%
+%%LINUX%%@dir %%LINUXBASE%%/usr/lib/vdpau
+%%LINUX%%@dir %%LINUXBASE%%/usr/lib
+%%LINUX%%@dir %%LINUXBASE%%/usr
+%%LINUX%%@dir %%LINUXBASE%%
+%%LINUX%%@dir /compat
Der neue nvidia-driver-367.35 macht bei mir hier keinen Ärger mehr mit undefine refrence. Jedenfalls ließ sich pioneer, spring, firefox und cairo bauen. Das waren die Ports bei denen mir bislang bekannt geworden ist, dass es mit dem 367.27 wegen undefine refrence beim Portbau Ärger gab und die ich auch bei mir installiert habe, so dass ich das schnell mal überprüfen konnte ob es mit dem nvidia-driver-367.35 läuft.
Wegen undefined references to nv_vasprintf_symbols in libnvidia-glcore.so in der Version 367.27 siehe auch:
https://devtalk.nvidia.com/default/...rintf_-symbols-in-libnvidia-glcore-so-367-27/
 
Eben mal getestet bei mir. Mit 367.35 geht das switchen nicht. Kriege nur ein schwarzes Bild wenn ich in die vt's wechsle.

Immer diese bugs.
 
Sind die virtuellen Konsolen im Textmodus?
https://www.bsdforen.de/threads/auf-vt-mit-nvidia-driver-nvidia-modeset-ko-und-wieder-zurück-auf-x-server-läuft.32633/
Bekannt war bisher dass es ansonsten mit nvidia-modeset.ko bunten Pixelsalat auf den virtuellen Konsolen gibt.

Im Bugzilla Faden wird auch über unterschiedliches Verhalten auf Maschinen mit BIOS oder UEFI berichtet.
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=201340#c61
Meine Maschine läuft ganz klassisch mit BIOS, sie hat gar kein UEFI.

Ja, die sind im Textmodus. Wenn ich klassisch - legacy mode - boote, dann geht's auch.
 
*rofl*

Ich habe gerade eben das nvidia-modeset.ko Modulen
"entdeckt", als nach dem Update vom nvidia(4) Driver X.org
scheinbar nicht mehr "funktionierte"... danach hatte ich einen
Fallback auf VESA als ich beschloss die xorg.conf zu
loeschen... VESA war etwas "besser" als vt(4), wobei ich mich
doch motivierte wieder die xorg.conf zu erstellen als ich
erkannte, dass besagtes Modulen von Noeten sei.

:)

Wiso ist das jetzt "so"?
 
Das Modul? Weil die Linuxer Nvidia überredet / gezwungen haben, Kernel Mode Setting zu unterstützen. Unter FreeBSD führt es bei Videos übrigens zu massivem Tearing, gerade bei Hardware-Decoding über VDPAU jenseits der Grenze der Erträglichkeit.
 
In der Appendix B im README vom nvidia-driver habe ich gelesen, dass sich die CompositionPipeline auch in die Section "Device" der xorg.conf einstellen lässt.
The following driver options are supported by the NVIDIA X driver. They may be specified either in the Screen or Device sections of the X config file.
Dort gilt es dann global:
Code:
    Option         "TripleBuffer" "1"
    Option         "ForceCompositionPipeline" "1"
    Option         "ForceFullCompositionPipeline" "1"
Das läuft sehr gut bei mir hier. Kein Tearing mehr. :)
 
Interessant!

Wiso haben die Linuxer Nvidia "Nvidia überredet / gezwungen"?

Gibt es irgendwo einen Artikel oder ML Thread ueber das Thema
zu lesen?
 
Gut, nachlesen wird schwierig (Linux vs NVidia geht schon mehrere Jahre). Aber Linux hat halt sein komplettes Grafiksystem umgestellt und mehr Kontrolle vom Grafiktreiber in den Kernel verlagert. Generell kannst du damit unter Linux selbst ohne X, Wayland, DirectFB oder sonst was direkt durch den Kernel auf der Konsole einen OpenGL-Kontext kriegen und sämtliche Features der Grafikkarte nutzen. Das ist jetzt ein Vorteil davon.

Da muss der Grafiktreiber halt mitspielen.

Generell ist die Situtation jetzt so, dass Intel und AMD den "Linux Weg" gehen, d.h. sich dem Kernel unterwerfen, OpenSource Treiber liefern, und NVidia halt versucht trotzdem noch Eigenheiten durchzudrücken. D.h. neben einem Closed Source Treiber fleißig auch NVidia-Only Lösungen zu präsentieren.

Das führt natürlich zu viel Diskussion und viel Gezanke, aber man trifft sich meist irgendwo in der Mitte.

Aber seitdem NVidia sich weigert anständig OpenCL zu unterstützen, sind die bei mir eh unten durch.
 
D. h. dass der "Linux Weg" versucht NVIDIA in einen
Software Lock-in zu zwingen? Langfristig ist dann
NVIDIA auch bei mir unten durch, wenn dann keine
Treiber mehr fuer Unix-Derivate angeboten werden.
 
Linux versucht NVidia solange ans Bein zu pissen, bis sie endlich ihren Treiber öffnen. Dann hätten alle was davon. ;) Siehe FreeBSD. Es steht in NVidias Gnade, dass sie weiterhin einen Treiber dafür rausbringen und natürlich ihre Bugs dazu fixen. NetBSD? OpenBSD? DragonflyBSD? Nope! Mit genügend Man-Power würde das für den OpenSource Intel oder AMD Treiber nicht gelten. Wie es ja auch gerade geschieht.

Wie gesagt, nicht alles was NVidia so vorschlägt ist schlecht, aber vieles auch einfach nicht flexibel genug, um ein Weg für alle zu sein. NVidia beachtet dann z.B. nicht die verschiedenen ARM-Boards usw. Und da NVidia leider ganz eklige Marktführerschafts-Verhaltensweisen aufweist kann ich prinzipiell schon nicht pro-NVidia sein. :D

Und bei Closed-Source Grafiktreibern kriege ich auch immer so einen Beiß-Reflex, da der Hauptteil der ganzen Android-Misere hauptsächlich an den geschlossenen Grafik-Treibern der SoC Hersteller liegt.
 
Zurück
Oben