summaryrefslogtreecommitdiff
path: root/src/gallium/Automake.inc
AgeCommit message (Collapse)AuthorFilesLines
2017-04-03gallium/util: libunwind supportRob Clark1-0/+1
It's kinda sad that (a) we don't have debug_backtrace support on !X86 and that (b) we re-invent our own crude backtrace support in the first place. If available, use libunwind instead. The backtrace format is based on what xserver and weston use, since it is nice not to have to figure out a different format. Signed-off-by: Rob Clark <robdclark@gmail.com> Acked-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-01-18gallium: correctly manage libsensors link flagsEmil Velikov1-0/+1
We should be using LIBS rather than the LDFLAGS variable. Furthermore try to keep the linking to the final stage, rather than intermetent static library. Cc: Steven Toth <stoth@kernellabs.com> Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
2017-01-12gallium: add renderonly libraryChristian Gmeiner1-0/+5
This a very lightweight library to add basic support for renderonly GPUs. A kms gallium driver must specify how a renderonly_scanout objects gets created. Also it must provide file handles to the used kms device and the used gpu device. This could look like: struct renderonly ro = { .create_for_resource = renderonly_create_gpu_import_for_resource, .kms_fd = fd, .gpu_fd = open("/dev/dri/renderD128", O_RDWR | O_CLOEXEC) }; The renderonly_scanout object exits for two reasons: - Do any special treatment for a scanout resource like importing the GPU resource into the scanout hw. - Make it easier for a gallium driver to detect if anything special needs to be done in flush_resource(..) like a resolve to linear. A GPU gallium driver which gets used as renderonly GPU needs to be aware of the renderonly library. This library will likely break android support and hopefully will get replaced with a better solution based on gbm2. Changes from V1 -> V2: - reworked the lifecycle of renderonly object (suggested by Nicolai Hähnle) - killed the midlayer (suggested by Thierry Reding) - made the API more explicit regarding gpu and kms fd's - added some docs Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com> Acked-by: Emil Velikov <emil.velikov@collabora.com> Tested-by: Alexandre Courbot <acourbot@nvidia.com>
2015-11-21gallium: keep the libdrm link alongside libkmsdri.laEmil Velikov1-1/+2
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Acked-by: Rob Clark <robclark@freedesktop.org>
2015-11-21pipe-loader: add pipe_loader_sw_probe_kms() implementationEmil Velikov1-0/+5
Will be used as a counterpart for target-helpers' kms_swrast_create_screen(). Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Acked-by: Rob Clark <robclark@freedesktop.org>
2015-07-13pipe-loader: remove pipe_loader_sw_probe_xlibEmil Velikov1-7/+0
It was only useful for st/egl, although I've never got to merging the pipe-loader and inline-helpers before it was removed. There are no users for it ATM. Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Francisco Jerez <currojerez@riseup.net>
2014-12-01util: Move u_atomic.h to src/util.Matt Turner1-0/+2
To be shared outside of Gallium. Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
2014-11-18gallium/auxiliary: implement sw_probe_wrapped (v2)Christoph Bumiller1-1/+2
Implement pipe_loader_sw_probe_wrapped which allows to use the wrapped software renderer backend when using the pipe loader. v2: - remove unneeded ifdef - use GALLIUM_PIPE_LOADER_WINSYS_LIBS - check for CALLOC_STRUCT thanks to Emil Velikov Acked-by: Jose Fonseca <jfonseca@vmware.com> Signed-off-by: David Heidelberg <david@ixit.cz>
2014-08-28gallium/radeon: cleanup header inclusionEmil Velikov1-0/+2
- Add top_srcdir/src/gallium/winsys to GALLIUM_DRIVER_C{XXFLAGS}. - Remove top_srcdir/src/gallium/drivers/radeon from the includes. As a result: - Common radeon headers are prefixed with 'radeon/' - Winsys header inclusion is prefixed 'radeon/drm' Cc: Marek Olšák <marek.olsak@amd.com> Cc: Michel Dänzer <michel.daenzer@amd.com> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com>
2014-08-04gallium: Move sRGB <-> RGB handling to libmesautilJason Ekstrand1-0/+2
Signed-off-by: Jason Ekstrand <jason.ekstrand@intel.com> Reviewed-by: Marek Olšák <marek.olsak@amd.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-10targets/dri-swrast: Convert to static/shared pipe-driverEmil Velikov1-43/+0
Convert the final dri target to the single DRI (megadriver) library. Cleanup all the automake leftovers from the conversion stage and update the scons build. v2: Link in llvmpipe, when applicable. Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Tested-by: Rob Clark <robclark@freedesktop.org> Tested-by: Thomas Helland <thomashelland90 at gmail.com> Acked-by: Tom Stellard <thomas.stellard@amd.com>
2014-07-10st/dri: merge dri/drm and dri/sw backendsEmil Velikov1-1/+1
Move the driver_name to dri2/drisw and remove all the SPLIT_TAGETS mayhem. In the next step we'll unify the dri and dri-swrast targets, completing the gallium DRI megadriver. v2: Remove leftover st/dri Makefiles from CONFIG_FILES. Spotted by Thomas Helland. Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Tested-by: Rob Clark <robclark@freedesktop.org> Tested-by: Thomas Helland <thomashelland90 at gmail.com> Acked-by: Tom Stellard <thomas.stellard@amd.com>
2014-07-10targets/dri-swrast: convert to gallium megadrivers :)Emil Velikov1-0/+2
Export the approapriate new symbol, and keep backwards compat via the megadriver_stub helper library. Our next step would be to unify dri/drm and dri/sw, leading to a complete megadrivers solution, and having a single library that provides dri across all targets. Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Tested-by: Rob Clark <robclark@freedesktop.org> Tested-by: Thomas Helland <thomashelland90 at gmail.com> Acked-by: Tom Stellard <thomas.stellard@amd.com>
2014-07-02targets/dri-nouveau: Convert to static/shared pipe-driversEmil Velikov1-1/+1
Similiar to other targets, we'd like to convert all the separate targets into a single one, thus we'll minimize the duplication and overall size of mesa. The conversion per API basis, with the drivers available either statically or shared. Currently the former is the default. v2: Correctly append the version script to the linker flags. Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Tested-by: Rob Clark <robclark@freedesktop.org> Tested-by: Thomas Helland <thomashelland90 at gmail.com> Acked-by: Tom Stellard <thomas.stellard@amd.com>
2014-06-26targets/automake.inc: s/GALLIUM_VIDEO_CFLAGS/GALLIUM_TARGET_CFLAGS/Emil Velikov1-1/+1
The flags are not specific to the video targets plus we can reuse them for targets/xa and targets/gbm. Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2014-06-26targets/radeonsi/omx: convert to static/shared pipe-driversEmil Velikov1-21/+0
The radeonsi counterpart of previous commit - now libomx-radeonsi is built into the libomx-mesa library. Providing a single library per API. v2: Include the radeon winsys only when there is a user for it. v3: Correcly include the winsys. Now with extra brown bag :\ Note: Make sure to rebuild the .omxregister file, by executing $ omxregister-bellagio This patch concludes the unification. Now libomx-mesa will be used for all hardware - r600, radeonsi and nouveau. Cc: Leo Liu <leo.liu@amd.com> Cc: Christian König <christian.koenig@amd.com> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Christian König <christian.koenig@amd.com>
2014-06-26targets/omx-nouveau: convert to static/shared pipe-driversEmil Velikov1-1/+1
Similar to the vdpau/xvmc targets, we're going to convert the multiple target libraries into a single one. The library can be built with the relevant pipe-drivers statically linked in, or loaded as shared modules. Currently we default to static. Note: Make sure to rebuild the .omxregister file, by executing $ omxregister-bellagio If you have more than one omx library (libomx-radeonsi, libomx-r600), make sure to temporary move the unused one. By the end of the series there will be only one library that will be used for all hardware - r600, radeonsi and nouveau. Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2014-06-22targets/r600/xvmc: convert to static/shared pipe-driversEmil Velikov1-20/+0
The r600 equivalent of previous commit. v2: Correctly include the radeon winsys/radeon_common. Cc: Christian König <christian.koenig@amd.com> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Christian König <christian.koenig@amd.com> Tested-by: Thomas Helland <thomashelland90 at gmail.com>
2014-06-22targets/xvmc-nouveau: convert to static/shared pipe-driversEmil Velikov1-1/+1
Similar to vdpau targets, we're going to convert the individual target libraries into a single one. The library can be built with the relevant pipe-drivers statically linked in, or loaded as shared modules. Currently we default to static. Cc: Ilia Mirkin <imirkin@alum.mit.edu> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Tested-by: Thomas Helland <thomashelland90 at gmail.com>
2014-06-22targets/radeonsi/vdpau: convert to static/shared pipe-driversEmil Velikov1-20/+0
Similar to previous commits, this allows us to minimise some of the duplication by compacting all vdpau targets into a single library. v2: Include the radeon winsys only when there is a user for it. v3: Correcly include the winsys. Now with extra brown bag :\ Cc: Christian König <christian.koenig@amd.com> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Christian König <christian.koenig@amd.com> Tested-by: Thomas Helland <thomashelland90 at gmail.com>
2014-06-22targets/vdpau-nouveau: convert to static/shared pipe-driversEmil Velikov1-1/+2
Create a single library (for the vdpau api) thus reducing the overall size of mesa. Current commit converts vdpau-nouveau, with upcomming commits handling the rest. The library can be built with the relevant pipe-drivers statically linked in, or loaded as shared modules. Currently we default to static. Add SPLIT_TARGETS to guard the other VL targets. Note: symlink handling is rather ugly and will need an update to work with BSD and other non-linux platforms. v2: Split the conversion into per-target basis. Cc: Maarten Lankhorst <maarten.lankhorst@canonical.com> Cc: Ilia Mirkin <imirkin@alum.mit.edu> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Tested-by: Thomas Helland <thomashelland90 at gmail.com>
2014-06-19automake: introduce helper variableEmil Velikov1-0/+16
- gallium_pipe_loader_winsys_libs Will be used in upcomming commits to reduce duplication in the build. v2: Drop the megadriver/static_target variables. Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2014-05-25automake: correctly append the version-scriptEmil Velikov1-12/+15
Turns out that the AC conditional did not include the the version-scripts as expected. Rather it truncated the remaining linker flags. Cc: Jon TURNEY <jon.turney@dronecode.org.uk> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Jon TURNEY <jon.turney@dronecode.org.uk>
2014-05-23Fix build for darwinJon TURNEY1-0/+8
Fix build for darwin, when ./configured --disable-driglx-direct - darwin ld doesn't support -Bsymbolic or --version-script, so check if ld supports those options before using them - define GLX_ALIAS_UNSUPPORTED as config/darwin used to, as aliasing of non-weak symbols isn't supported - default to -with-dri-drivers=swrast v2: Use -Wl,-Bsymbolic, as before, not -Bsymbolic Test that ld --version-script works, rather than just looking for it in ld --help Don't use -Wl,--no-undefined on darwin, either Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk> Reviewed-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
2014-05-02targets/vdpau: use version script to limit the exported symbolsEmil Velikov1-1/+1
Using export-symbols-regex is the least desirable method of restricting the exported symbols, as is completely messes up with the symbol table. Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Christian König <christian.koenig@amd.com>
2014-05-02targets/omx: drop the version from the omx targetsEmil Velikov1-0/+1
Suggested-by: Christian König <christian.koenig@amd.com> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2014-05-02targets/omx: use version script to limit amount of exported symbolsEmil Velikov1-1/+1
Using export-symbols-regex is the least desirable method of restricting the exported symbols, as is completely messes up with the symbol table. radeon_drm_winsys_create is not needed, avoid exporting it. Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Christian König <christian.koenig@amd.com>
2014-05-02targets/dri: use a single version script to restict exported symbolsEmil Velikov1-4/+2
Rather than having multiple (almost) identical version scripts use a single one. Cc: Christian König <christian.koenig@amd.com> Acked-by: Maarten Lankhorst <maarten.lankhorst@canonical.com> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2014-05-02targets/xvmc: limit the amount of exported symbolsEmil Velikov1-1/+1
In the presence of LLVM the final library exports every symbol from the llvm namespace. Resolve this by using a version script (w/o the version/name tag). Considering that there are only ~25 symbols, explicitly list them to minimize the chances of rogue symbols sneaking in. Drop the *winsys_create functions as they were only meant for gl-vdpau interop. Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Christian König <christian.koenig@amd.com>
2014-04-09build: force .so extension for the gallium dri modulesEmil Velikov1-0/+1
While linux uses .so as a default extension for shared libraries that is not the case for other platforms. The loader in libGL (and others) assumes that the dri module will always have a .so extension, thus it will fail to load on the affected platforms. Spotted-by: Jon TURNEY <jon.turney@dronecode.org.uk> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2014-04-05automake: don't enable -Wl,--no-undefined on OpenBSDJonathan Gray1-3/+3
OpenBSD does not have DT_NEEDED entries for libc by design, over concerns how the symbols would be referenced after changing the major version of the library. So avoid -no-undefined checks on OpenBSD as they will fail. v2: don't include the -no-undefined libtool option in the variable and change -Wl,--no-undefined references in Automake.inc as well. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76856 Signed-off-by: Jonathan Gray <jsg@jsg.id.au> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Matt Turner <mattst88@gmail.com>
2014-04-05targets/dri: move common libraries to GALLIUM_DRI_LIB_DEPSEmil Velikov1-0/+2
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2014-04-05targets/omx: use GALLIUM_COMMON_LIB_DEPSEmil Velikov1-2/+2
The targets do not require expat or selinux. Use GALLIUM_COMMON_LIB_DEPS which provides the core requirements for each gallium target. Cc: Christian König <christian.koenig@amd.com> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2014-04-05targets/xvmc: use GALLIUM_COMMON_LIB_DEPSEmil Velikov1-1/+2
The targets do not require expat or selinux. Use GALLIUM_COMMON_LIB_DEPS which provides the core requirements for each gallium target. Cc: Christian König <christian.koenig@amd.com> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2014-04-05automake: introduce GALLIUM_COMMON_LIB_DEPSEmil Velikov1-8/+8
Rather than copying the core four dependencies all over gallium, introduce the above variable to avoid all the duplication. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76848 Tested-by: Vinson Lee <vlee@freedesktop.org> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2014-04-05automake: move GALLIUM_DRI_LIB_DEPS to Automake.incEmil Velikov1-0/+9
With recent commit we started de-duplicating all of the compiler/ linker flags moving their handling inside Automake.inc. This did not take into consideration that the above variable was set at configure time, leading to issues on certain build combinations. Move the variable to where it's used/handled thus cleaning up configure.ac. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76848 Tested-by: Vinson Lee <vlee@freedesktop.org> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2014-03-31automake: ask the linker to do garbage collectionEmil Velikov1-0/+4
By doing GC the linker removes all the symbols that are not referenced and/or used by the final library. This results in a saving of ~100K up-to ~600K per (stripped) binary (classic vs gallium drivers). If interested one can ask the compiler to print the sections that are removed using -Wl,--print-gc-sections. v2: Check if ld supports the flag before using it. Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Acked-by: Matt Turner <mattst88@gmail.com> (v1)
2014-03-31automake: add -Wl,--no-undefined to all librariesEmil Velikov1-3/+6
... apart from the dri drivers. With this final change we can build mesa without fear that the resulting libraries will have unresolved symbols. Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Matt Turner <mattst88@gmail.com>
2014-03-31automake: consistently use -no-undefinedEmil Velikov1-9/+8
Set the flag for all but the dri targets. They have missing glapi symbols which are required for the normal operation with the X server. Jon, I fear that you'll need to carry the "no-undefined" hunk locally when building the dri drivers under cygwin. Cc: Jon TURNEY <jon.turney@dronecode.org.uk> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Matt Turner <mattst88@gmail.com>
2014-03-31gallium/targets: move LLVM_LIBS handling inside Automake.incEmil Velikov1-0/+5
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2014-03-31gallium/targets: fold LLVM_LDFLAGS inside Automake.incEmil Velikov1-0/+9
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2014-03-31targets/omx: use GALLIUM_OMX_LINKER_FLAGSEmil Velikov1-0/+6
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Christian König <christian.koenig@amd.com>
2014-03-31targets/omx: introduce GALLIUM_OMX_LIB_DEPSEmil Velikov1-0/+6
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Christian König <christian.koenig@amd.com>
2014-02-17targets/vdpau: Don't link unused librariesKusanagi Kouichi1-1/+5
libvdpau, libselinux and libexpat are not used. Signed-off-by: Kusanagi Kouichi <slash@ac.auone-net.jp>
2014-02-12gallium makefiles: use a linker script for building dri driversMaarten Lankhorst1-2/+4
Only export __driDriverExtensions by default, and radeon_drm_winsys_create on radeons. Remove -Bsymbolic which should no longer be needed. As a side effect, it ought to fix a manifestation of bug 73200 on radeon. Signed-off-by: Maarten Lankhorst<maarten.lankhorst@canonical.com> Reviewed-by: Christian König <christian.koenig@amd.com>
2013-11-18targets/xvmc: export only necessary symbolsEmil Velikov1-1/+1
Export only XvMC* symbols for the xvmc targets. Tested-by: Ilia Mirkin <imirkin@alum.mit.edu> Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2013-11-16targets/dri: move linker flags out of configure into Automake.incEmil Velikov1-0/+8
Previous assumption was that the same set of flags can be reused for both classic and gallium drivers. With megadriver work done the classic drivers ended up using their own (single) instance of the flags. Move these into Automake.inc and rename to indicate that those are gallium specific. Additionally silence an automake/autoconf warning "XXX is not a standard libtool library name", due to the parsing issues of the module tag. Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2013-11-16targets/dri: compact compiler flags into Automake.incEmil Velikov1-0/+13
Greatly reduce duplication and provide a sane minimum of CFLAGS for all DRI targets. Note: This commit adds VISIBILITY_CFLAGS to the following: * freedreno * i915 * ilo * nouveau * vmwgfx Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2013-11-16targets/xvmc: consolidate lib deps into Automake.incEmil Velikov1-0/+6
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>