summaryrefslogtreecommitdiff
path: root/src/loader
AgeCommit message (Collapse)AuthorFilesLines
2016-04-21loader: add a libdrm case for loader_get_device_name_for_fdJonathan Gray1-1/+25
Use dev_node_from_fd() with HAVE_LIBDRM to provide an implmentation of loader_get_device_name_for_fd() for non-linux systems that use libdrm but don't have udev or sysfs. Signed-off-by: Jonathan Gray <jsg@jsg.id.au> Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
2016-03-09dri: add backbuffer use flagAxel Davy1-2/+4
This will be used by the next commit. Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
2016-01-23virtio_gpu: Add PCI ID to driver mapRob Herring1-0/+7
Add the virtio-gpu PCI ID so the driver probing works. Signed-off-by: Rob Herring <robh@kernel.org> Signed-off-by: Dave Airlie <airlied@redhat.com>
2015-11-23loader: unconditionally add AM_CPPFLAGS to libloader_la_CPPFLAGSEmil Velikov1-2/+2
It seems that due to the conditional autotools is getting confused and forgetting to add AM_CPPFLAGS when building libloader (when HAVE_DRICOMMON is not set). Cc: mesa-stable@lists.freedesktop.org Fixes: 5a79e0a8e37 "automake: loader: rework the CPPFLAGS" Reported-by: Pali Rohár <pali.rohar@gmail.com> Tested-by: Pali Rohár <pali.rohar@gmail.com> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Matt Turner <mattst88@gmail.com>
2015-11-20automake: loader: don't create an empty dri3 helperEmil Velikov1-1/+3
Seems that creating an empty one does not fair too well with MacOSX's ar. Considering that all the users of the helper include it only when needed, let's reshuffle the makefile. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92985 Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Tested-by: Vinson Lee <vlee@freedesktop.org> Tested-by: Kai Wasserbäch <kai@dev.carbon-project.org> Reviewed-by: Kristian Høgsberg <krh@bitplanet.net> Reviewed-by: Matt Turner <mattst88@gmail.com>
2015-11-20automake: loader: honour the XCB_DRI3 cflagsEmil Velikov1-0/+1
Without this the compilation will fail, as the headers are installed in a non-default location. Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Tested-by: Kai Wasserbäch <kai@dev.carbon-project.org> Reviewed-by: Kristian Høgsberg <krh@bitplanet.net> Reviewed-by: Matt Turner <mattst88@gmail.com>
2015-11-20automake: loader: rework the CPPFLAGSEmil Velikov1-11/+4
Rather than duplicating things, just use the generic AM_CPPFLAGS. This has the fortunate side-effect of adding VISIBILITY_CFLAGS for the dri3 helper. The latter of which was erroneously exposing some internal symbols. Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reported-by: Kai Wasserbäch <kai@dev.carbon-project.org> Tested-by: Kai Wasserbäch <kai@dev.carbon-project.org> Reviewed-by: Kristian Høgsberg <krh@bitplanet.net> Reviewed-by: Matt Turner <mattst88@gmail.com>
2015-11-17loader/dri3: Expose function to create __DRIimage from pixmapBoyan Ding2-29/+58
Used to support EGL_KHR_image_pixmap. Signed-off-by: Boyan Ding <boyan.j.ding@gmail.com> Reviewed-by: Martin Peres <martin.peres@linux.intel.com> Reviewed-by: Kristian Høgsberg <krh@bitplanet.net> Reviewed-by: Emil Velikov <emil.velikov@collabora.co.uk>
2015-11-17loader: Add dri3 helperBoyan Ding3-1/+1622
v2: From Martin Peres - Try to fit in the 80-col limit as much as possible v3: From Martin Peres - introduce loader_dri3_helper.la to avoid dragging the xcb dep everywhere (Kristian & Emil) - get rid of the width, height, dri_screen and is_different_gpu vfuncs (Kristian) - replace the create/destroy functions with init/fini for dri3 drawables - prefix static functions with dri3_ and exported ones with loader_dri3 (Emil) - keep the function definition consistent (Emil) Signed-off-by: Boyan Ding <boyan.j.ding@gmail.com> Signed-off-by: Martin Peres <martin.peres@linux.intel.com> Reviewed-by: Kristian Høgsberg <krh@bitplanet.net> Reviewed-by: Emil Velikov <emil.velikov@collabora.co.uk>
2015-07-22loader: use HAVE_LIBDRM instead of ! __NOT_HAVE_DRM_HEmil Velikov5-15/+8
Double negatives in English language are normally avoided, plus the former seems cleaner and more consistent. Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
2015-07-11loader: don't leak udev_enumerateGuillaume Desmottes1-0/+4
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90073 Signed-off-by: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
2015-07-08loader: Look for any version of currently linked libudev.soChris Wilson1-18/+28
Since there was an ABI break and linking twice against libudev.so.0 and libudev.so.1 causes the application to quickly crash, we first check if the application is currently linked against libudev before dlopening a local handle. However for backwards/forwards compatability, we need to inspect the application for current linkage against all known versions first. Not doing so causes a crash when both libraries are present and so mesa chooses libudev.so.1 but the application was linked against libudev.so.0. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Emil Velikov: I'm ever so slightly conserned that RTLD_NOLOAD is not part of the POSIX standard, thus it's missing on some platforms (*BSD seems ok, while Solaris, MacOS are not). Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Cc: mesa-stable@lists.freedesktop.org
2015-06-24loader: move loader_open_device out of HAVE_LIBUDEV blockJulien Isorce1-18/+18
Fixes the following build issue, when building without libudev. CCLD libGL.la ./.libs/libglx.a(dri2_glx.o): In function `dri2CreateScreen': src/glx/dri2_glx.c:1186: undefined reference to `loader_open_device' collect2: ld returned 1 exit status CCLD libEGL.la Undefined symbols for architecture x86_64: "_loader_open_device", referenced from: _dri2_initialize_x11_dri2 in libegl_dri2.a(platform_x11.o) Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91077 Signed-off-by: Julien Isorce <j.isorce@samsung.com> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
2015-06-23loader: Rename drm_open_device() to loader_open_device() and share itDerek Foreman2-3/+6
This is already our common idiom for opening files with CLOEXEC and it's a little ugly, so let's share this one implementation. Signed-off-by: Derek Foreman <derekf@osg.samsung.com> Reviewed-by: Kristian Høgsberg <krh@bitplanet.net> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
2015-06-12mesa: build xmlconfig to a separate static libraryErik Faye-Lund1-7/+3
As we use the file from both the dri modules and loader, we end up with multiple definition of the symbols provided in our gallium dri modules. Additionally we compile the file twice. Resolve both issues, effectively enabling the build on toolchains which don't support -Wl,--allow-multiple-definition. v2: [Emil Velikov] - Fix the Scons/Android build. - Resolve libgbm build issues (bring back the missing -lm) Cc: Julien Isorce <j.isorce@samsung.com> Cc: "10.5 10.6" <mesa-stable@lists.freedesktop.org> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90310 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90905 Acked-by: Matt Turner <mattst88@gmail.com> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2015-06-09android: loader: export the path to be includedChih-Wei Huang1-0/+2
Signed-off-by: Chih-Wei Huang <cwhuang@linux.org.tw> Reviewed-by: Eric Anholt <eric@anholt.net>
2015-05-14egl: Add needed extern "C" for C++ accessAlexander von Gluck IV1-0/+9
* Haiku's egl driver is C++ due to the interface natively being C++ Reviewed-⁠by: Brian Paul <brianp@vmware.com>
2015-04-27Fix a few typosZoë Blade1-1/+1
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
2015-04-22android: use LOCAL_SHARED_LIBRARIES over TARGET_OUT_HEADERSEmil Velikov1-1/+1
... to manage the LIBDRM*_CFLAGS. The former is the recommended approach by the Android build system developers while the latter has been depreciated for quite some time. Cc: "10.4 10.5" <mesa-stable@lists.freedesktop.org> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2015-03-25scons: Don't build loader on Windows.Jose Fonseca1-1/+0
EGL was the last user. Reviewed-by: Brian Paul <brianp@vmware.com>
2015-03-16loader: include <sys/stat.h> for non-sysfs buildsEmil Velikov1-1/+1
Required by fstat(), otherwise we'll error out due to implicit function declaration. Cc: "10.4 10.5" <mesa-stable@lists.freedesktop.org> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89530 Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Reported-by: Vadim Rutkovsky <vrutkovs@redhat.com> Tested-by: Vadim Rutkovsky <vrutkovs@redhat.com>
2015-03-04scons: Use -Werror MSVC compatibility flags per-directory.Jose Fonseca1-0/+2
Matching what we already do with autotools builds. Reviewed-by: Brian Paul <brianp@vmware.com>
2015-03-03configure: Leverage gcc warn options to enable safe use of C99 features ↵Jose Fonseca1-0/+1
where possible. The main objective of this change is to enable Linux developers to use more of C99 throughout Mesa, with confidence that the portions that need to be built with MSVC -- and only those portions --, stay portable. This is achieved by using the appropriate -Werror= options only on the places they need to be used. Unfortunately we still need MSVC 2008 on a few portions of the code (namely llvmpipe and its dependencies). I hope to eventually eliminate this so that we can use C99 everywhere, but there are technical/logistic challenges (specifically, newer Windows SDKs no longer bundle MSVC, instead require a full installation of Visual Studio, and that has hindered adoption of newer MSVC versions on our build processes.) Thankfully we have more directy control over our OpenGL driver, which is why we're now able to migrate to MSVC 2013 for most of the tree. Reviewed-by: Brian Paul <brianp@vmware.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2015-02-27Revert "configure: Leverage gcc warn options to enable safe use of C99 ↵Kenneth Graunke1-1/+0
features where possible." This reverts commit 79daa510c7a871a33797308a2ccb4b83a067ffbe. I apparently hadn't done a clean build when testing this; it broke the build for Tom, Ben, and myself. We like the idea; let's try a v2.
2015-02-27configure: Leverage gcc warn options to enable safe use of C99 features ↵Jose Fonseca1-0/+1
where possible. The main objective of this change is to enable Linux developers to use more of C99 throughout Mesa, with confidence that the portions that need to be built with MSVC -- and only those portions --, stay portable. This is achieved by using the appropriate -Werror= options only on the places they need to be used. Unfortunately we still need MSVC 2008 on a few portions of the code (namely llvmpipe and its dependencies). I hope to eventually eliminate this so that we can use C99 everywhere, but there are technical/logistic challenges (specifically, newer Windows SDKs no longer bundle MSVC, instead require a full installation of Visual Studio, and that has hindered adoption of newer MSVC versions on our build processes.) Thankfully we have more directy control over our OpenGL driver, which is why we're now able to migrate to MSVC 2013 for most of the tree. Reviewed-by: Brian Paul <brianp@vmware.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2015-02-21loader: not having a pci-id should not be a warnRob Clark1-3/+6
If there is no pci-id, which is valid for vc4 and freedreno, just emit an info msg. Keep malformed but existing pci-id's as a warning. Mostly just to clean up a warning that confuses users for the non-pci devices. Signed-off-by: Rob Clark <robclark@freedesktop.org>
2015-01-23loader: Remove NEED_OPENGL_COMMON check.Matt Turner1-2/+0
HAVE_DRICOMMON is sufficient since OpenGL must be enabled for DRI.
2014-12-12mesa: Add scons files to distribution.Matt Turner1-0/+2
2014-12-12loader: Add headers to distribution.Matt Turner1-1/+3
2014-12-08loader: Add missing EXPAT_CFLAGS to libloader.la CPPFLAGSMichael Forney1-1/+2
Reviewed-by: Matt Turner <mattst88@gmail.com>
2014-09-23loader: Check dlsym() did not fail in libudev_get_device_name_for_fd()Juha-Pekka Heikkila1-0/+3
Signed-off-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
2014-09-06loader: fds can be 0Dave Airlie1-1/+1
Possible resource leak reported by coverity. Reported-by: Coverity scanner. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Signed-off-by: Dave Airlie <airlied@redhat.com>
2014-08-13android: loader: prefix static libraries with libmesa_*Emil Velikov1-2/+2
Will make it easier on us as CleanSpec.mk comes along and improves consistency across the Android build. Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2014-08-13android: loader: use the installed libdrm headersEmil Velikov1-4/+2
One step closer to the way we handle automake builds. Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2014-08-04util: Gather some common macrosJason Ekstrand1-0/+1
This gathers macros that have been included across components into util so that the include chain can be more vertical. In particular, this makes util stand on its own without any dependence whatsoever on the rest of mesa. Signed-off-by: "Jason Ekstrand" <jason.ekstrand@intel.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2014-07-01mesa: fix the condition in src/loader/Makefile.amAxel Davy1-0/+2
We want to have the dri common files compiled to define USE_DRICONF. We need to check both NEED_OPENGL_COMMON and HAVE_DRICOMMON Signed-off-by: Axel Davy <axel.davy@ens.fr> Tested-by: Brian Paul <brianp@vmware.com>
2014-07-01loader: Use drirc device_id parameter in complement to DRI_PRIMEAxel Davy2-3/+47
DRI_PRIME is not very handy, because you have to launch the executable with it set, which is not always easy to do. By using drirc, the user specifies the target executable and the device to use. After that the program will be launched everytime on the target device. For example if .drirc contains: <driconf> <device driver="loader"> <application name="Glmark2" executable="glmark2"> <option name="device_id" value="pci-0000_01_00_0" /> </application> </device> </driconf> Then glmark2 will use if possible the render-node of ID_PATH_TAG pci-0000_01_00_0. v2: Fix compilation issue v3: Add "-lm" and rebase. Signed-off-by: Axel Davy <axel.davy@ens.fr> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
2014-07-01loader: add gpu selection code via DRI_PRIME.Axel Davy2-0/+192
v2: Fix the leak of device_name v3: Rebased It enables to use the DRI_PRIME env var to specify which gpu to use. Two syntax are supported: If DRI_PRIME is 1 it means: take any other gpu than the default one. If DRI_PRIME is the ID_PATH_TAG of a device: choose this device if possible. The ID_PATH_TAG is a tag filled by udev. You can check it with 'udevadm info' on the device node. For example it can be "pci-0000_01_00_0". Render-nodes need to be enabled to choose another gpu, and they need to have the ID_PATH_TAG advertised. It is possible for not very recent udev that the tag is not advertised for render-nodes, then ones need to add a file containing: SUBSYSTEM=="drm", IMPORT{builtin}="path_id" in /etc/udev/rules.d/ Signed-off-by: Axel Davy <axel.davy@ens.fr> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
2014-05-29loader: add optional /sys filesystem method for PCI identification.Gary Wong1-0/+112
Introduce a simple PCI identification method of looking up the answer the /sys filesystem (available on Linux). Attempted after libudev, but before DRM. Disabled by default (available only when the --enable-sysfs configure option is specified). Signed-off-by: Gary Wong <gtw@gnu.org> Acked-by: Emil Velikov <emil.l.velikov@gmail.com>
2014-05-29loader: allow attempting more than one method of PCI identification.Gary Wong1-18/+46
loader_get_pci_id_for_fd() and loader_get_device_name_for_fd() now attempt all available strategies to identify the hardware, instead of conditionally compiling in a single test. The existing libudev and DRM approaches have been retained, attempting first libudev (if available) and then DRM (if necessary). Signed-off-by: Gary Wong <gtw@gnu.org> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
2014-04-05loader: don't limit the non-udev path to only androidJonathan Gray1-1/+1
Platforms that lack libudev (OpenBSD and possibly others) need this change in order to load the correct dri driver. Under linux we unconditionally require libudev, thus this code will never get build. v2: Add commit message (Emil Velikov) Signed-off-by: Jonathan Gray <jsg@jsg.id.au> Cc: "10.1" <mesa-stable@lists.freedesktop.org> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
2014-04-05loader: use 0 instead of FALSE which isn't definedJonathan Gray1-2/+2
Signed-off-by: Jonathan Gray <jsg@jsg.id.au> Cc: "10.1" <mesa-stable@lists.freedesktop.org> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
2014-03-19loader: add special logic to distinguish nouveau from nouveau_vieuxIlia Mirkin4-2/+146
There are a lot of different pci ids supported by nouveau, and more are added all the time. The relevant distinguisher between drivers is the chipset id. Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Eric Anholt <eric@anholt.net> Cc: "10.1" <mesa-stable@lists.freedesktop.org>
2014-02-01dri: Add a useful error message if someone's packages missed libudev deps.Eric Anholt1-0/+5
Reviewed-by: Matt Turner <mattst88@gmail.com>
2014-02-01dri: Also support the loader with libudev.so.0.Eric Anholt1-0/+10
As far as I know, this should be safe. If not, we have to decide whether to have variable lookup of the functions, or just drop support for .so.0 (which is a year and a half old it looks like) Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=74127 Reviewed-by: Matt Turner <mattst88@gmail.com>
2014-01-29loader: do not print the pci id during normal operationEmil Velikov1-1/+1
Spamming the pci id is not beneficial. Make sure it's printed only when needed. v2: Change severity to _LOADER_DEBUG, rather than removing the message. Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Eric Anholt <eric@anholt.net> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2014-01-29loader: print WARNING and FATAL messages using the default loggerEmil Velikov1-1/+1
Lower values are used for more severe cases. Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Eric Anholt <eric@anholt.net> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
2014-01-28loader: include dlfcn.h when building with HAVE_LIBUDEVEmil Velikov1-0/+2
The code depending on the definitions is already wrapped in the same conditional so go ahead and wrap the include. Otherwise we'll brake compilation on platforms that are missing the header. Add assert.h in there as well, as it is introduced and used in the same fashon. Cc: Eric Anholt <eric@anholt.net> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=74122 Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2014-01-27loader: Add missing \n on message printingEmil Velikov1-12/+11
Cover both loader and glx/dri_glx Drop \n from the default loader logger Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Eric Anholt <eric@anholt.net>
2014-01-27loader: Use dlsym to get our udev symbols instead of explicit linking.Eric Anholt2-4/+43
Steam links against libudev.so.0, while we're linking against libudev.so.1. The result is that the symbol names (which are the same in the two libraries) end up conflicting, and some of the usage of .so.1 calls the .so.0 bits, which have different internal structures, and segfaults happen. By using a dlopen() with RTLD_LOCAL, we can explicitly look for the symbols we want, while they get the symbols they want. Reviewed-by: Keith Packard <keithp@keithp.com> Reviewed-by: Kristian Høgsberg <krh@bitplanet.net> Tested-by: Alexandre Demers <alexandre.f.demers@gmail.com> Tested-by: Mike Lothian <mike@fireburn.co.uk>