summaryrefslogtreecommitdiffstats
path: root/configure.ac
Commit message (Collapse)AuthorAgeFilesLines
* configure.ac: Create correct LLVM_VERSION_INT with minor >= 10Tobias Droste2016-12-051-1/+5
| | | | | | | This makes sure that we handle LLVM minor version >= 10 correctly. Signed-off-by: Tobias Droste <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* configure.ac: Get complete LLVM version from headerTobias Droste2016-12-051-6/+4
| | | | | | | | | | | | | | Major and minor version are included in the header file since LLVM version 3.1.0. Since the minimal required version is 3.3.0 we can remove the workaround if no values for major/minor were found in the header. Since LLVM 3.6.0 the patch version is inside the header file of LLVM. Only radeon drivers need the patch version and they depend on LLVM >= 3.6.0, so this is safe too. Signed-off-by: Tobias Droste <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* configure.ac: Add required LLVM versions to the topTobias Droste2016-12-051-14/+54
| | | | | | | | | | | Consolidate the required LLVM versions at the top where the other versions for dependencies are listed. v5: Splitted out separate changes (see patch 19 and 20) Signed-off-by: Tobias Droste <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* configure.ac: Only add default LLVM components if neededTobias Droste2016-12-051-3/+12
| | | | | | | | | | | | LLVM components are only added when LLVM is needed. This means gallium adds this as soon as "--enable-gallium-llvm" is "yes" and radv + opencl add it explicitly. v5: Removed hunk that disabled LLVM for gallium if it was not found. Signed-off-by: Tobias Droste <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* configure.ac: Reorder arguments in radeon_llvm_checkTobias Droste2016-12-051-8/+8
| | | | | | | Use the same order as llvm_check_version_for. Signed-off-by: Tobias Droste <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* configure.ac: Move radv check to the Vulkan sectionTobias Droste2016-12-051-4/+1
| | | | | | | | This moves the LLVM check for radv to the corresponding driver section. No functional change. Signed-off-by: Tobias Droste <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* configure.ac: Move LLVM ac_subst closer to usageTobias Droste2016-12-051-15/+14
| | | | | | | | | This moves llvm_set_environment_variables to its final destination and moves all the LLVM AC_SUBST() below the function call. No functional change. Signed-off-by: Tobias Droste <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* configure.ac: Move oCL LLVM checks to the oCL sectionTobias Droste2016-12-051-22/+19
| | | | | | | | | | | The LLVM checks can be anywhere below line 1161 now. Move the openCL LLVM checks to the section with the other openCL checks. No functional change. Signed-off-by: Tobias Droste <[email protected]> Reviewed-by: Emil Velikov <[email protected]> [Emil Velikov: s/ipos/ipo/, drop "yes" argument from llvm_add_component] Signed-off-by: Emil Velikov <[email protected]>
* configure.ac: Move llvm_set_environment_variables higher.Tobias Droste2016-12-051-7/+4
| | | | | | | | | | | | | | | | This moves the function to get the LLVM environment variables higher in the file. It still needs to be below the "--enable-opencl" because it uses $enable_opencl. It can be called without condition now as it only throws errors if openCL is enabled. v5: HAVE_MESA_LLVM is only used for gallium. Rename it to HAVE_GALLIUM_LLVM. In order to only link LLVM when it is needed, HAVE_GALLIUM_LLVM is only set if "$enable-gallium-llvm" is yes. Signed-off-by: Tobias Droste <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* configure.ac: Remove swr_llvm_check()Tobias Droste2016-12-051-11/+2
| | | | | | | | | | | | | No need for an additional function here. Use the same style for LLVM checks as the other drivers (e.g. r300, llvmpipe) that don't need a load of other checks. Instead of open conding the LLVM version check, use the function used by other drivers. "enable_gallium_llvm" is checked by gallium_require_llvm(). Signed-off-by: Tobias Droste <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* configure.ac: Check gallium LLVM version in gallium_require_llvmTobias Droste2016-12-051-12/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | This moves the LLVM version check to the helper function gallium_require_llvm() and uses the llvm_check_version_for() helper instead of open conding the LLVM version check. gallium_require_llvm is functionally the same as before, because "enable_gallium_llvm" is only set to "yes" if the host cpu is x86: if test "x$enable_gallium_llvm" = xauto; then case "$host_cpu" in i*86|x86_64|amd64) enable_gallium_llvm=yes;; esac fi This function is also only called now when needed. Before this patch llvmpipe would call this as soon as LLVM is installed. Now it only gets called by llvmpipe if gallium LLVM is actually enabled (i.e. only on x86). Both reasons mentioned above remove the need to check host cpu in the gallium_require_llvm function. Signed-off-by: Tobias Droste <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* configure.ac: Use short names for r600 und r300Tobias Droste2016-12-051-4/+4
| | | | | | | | | There are no non gallium r300 and r600 drivers anymore. No need to explicilty mention gallium here. Just cosmetics, no functional change. Signed-off-by: Tobias Droste <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* configure.ac: Remove useless oCL LLVM checkTobias Droste2016-12-051-4/+0
| | | | | | | This is handled by "llvm_check_version_for" for openCL. Signed-off-by: Tobias Droste <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* configure.ac: Move llvm-config searching outside the functionTobias Droste2016-12-051-8/+8
| | | | | | | | There's no harm in always searching llvm-config. This way it's available as soon as possible for all functions. Signed-off-by: Tobias Droste <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* configure.ac: Move LLVM functions to the topTobias Droste2016-12-051-77/+74
| | | | | | | | | This just moves code around so that all LLVM related stuff is at the top of the file in the correct order. No functional change. Signed-off-by: Tobias Droste <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* configure.ac: Move LLVM version check to the topTobias Droste2016-12-051-70/+74
| | | | | | | | | | | A function with the LLVM version checked is moved to the top. The function is called where the old code was. No functional change. Signed-off-by: Tobias Droste <[email protected]> Reviewed-by: Emil Velikov <[email protected]> [Emil Velikov: s/ipos/ipo/, drop "yes" argument from llvm_add_component] Signed-off-by: Emil Velikov <[email protected]>
* configure.ac: Use new helper function for LLVMTobias Droste2016-12-051-7/+18
| | | | | | | | | | | Use the new helper function to add LLVM targets and components. The components are added one by one to later find out which component is missing in case there is one. Signed-off-by: Tobias Droste <[email protected]> Reviewed-by: Emil Velikov <[email protected]> [Emil Velikov: s/ipos/ipo/, drop "yes" argument from llvm_add_component] Signed-off-by: Emil Velikov <[email protected]>
* configure.ac: Use new llvm_add_default_componentsTobias Droste2016-12-051-5/+1
| | | | | Signed-off-by: Tobias Droste <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* configure.ac: Add helper function for targets/componentsTobias Droste2016-12-051-0/+36
| | | | | | | | Add functions to add and check targets/components. Not used in this patch. Signed-off-by: Tobias Droste <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* configure.ac: Don't search llvm-config if it's knownTobias Droste2016-12-051-4/+6
| | | | | | | | | | This way LLVM_CONFIG can bet set from an env variable if it's outside the $llvm_prefix. This is not a must, but it helps testing. Signed-off-by: Tobias Droste <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* freedreno/a5xx: initial supportRob Clark2016-11-301-1/+1
| | | | Signed-off-by: Rob Clark <[email protected]>
* configure.ac: remove no longer used TIMESTAMP_CMDEmil Velikov2016-11-281-2/+0
| | | | | | Good bye, you shall not be missed. Signed-off-by: Emil Velikov <[email protected]>
* amd: flatten amd/common makefile structureMauro Rossi2016-11-151-1/+0
| | | | | | | | | | | This pulls amd/common build rules into upper level makefile, along with amd/addlib which is already there. v2: [Emil Velikov] - Move NEED_RADEON_LLVM conditional, drop amd/common from SUBDIRS - Drop AM_ from common_libamd_common_la* Signed-off-by: Emil Velikov <[email protected]>
* util: import cache.c/h from glslMarek Olšák2016-11-151-1/+0
| | | | | | | | | | It's not dependent on GLSL and it can be useful for shader caches that don't deal with GLSL. v2: address review comments v3: keep the other 3 lines in configure.ac Reviewed-by: Emil Velikov <[email protected]>
* egl: Use pkg-config for Android NDK buildGurchetan Singh2016-11-151-0/+1
| | | | | | | | | | | | | | | | | It's possible to build Mesa for Android using the traditional autotools workflow [1]. ChromiumOS fetches Android prebuilts and puts them in a sysroot. We now want to use pkg-config to specify the location of system headers and libraries [2]. To enable this, let's add the required pkg-config checks and link against them. [1] https://developer.android.com/ndk/guides/standalone_toolchain.html [2] https://chromium-review.googlesource.com/#/c/403237/ v2: Bundle pkg-config checks together (Emil) v3: Provide further context on standalone NDK Mesa build (Emil) Reviewed-by: Emil Velikov <[email protected]>
* configure.ac: Don't look for pthreads in Android platformGurchetan Singh2016-11-151-2/+5
| | | | | | | | | | | | In Android, the pthreads libs are in bionic. When building Mesa for Android with the autotools workflow, we shouldn't set -lpthread or -pthread. [Emil Velikov] Other platforms could use a similar fix, although that is left as separate exercise. Reviewed-by: Emil Velikov <[email protected]>
* Revert "configure.ac: honour LLVM_LIBDIR when linking against LLVM"Emil Velikov2016-11-101-2/+2
| | | | | | | | | | | | This reverts commit a39ad185932eab4f25a0cb2b112c10d8700ef242. The commit aims to address "missing" -L/foo/bar during linking stage. At the same time it doesn't add the -L and yet the LLVM_LDFLAGS [which provide -L/foo/bar] are already used throughout. Seems like something pretty unique (broken?) on my end. Since the commit introduces issues (due to the missing -L) revert until we get to the root of it (PEBKAC or a genuine issue).
* configure.ac: honour LLVM_LIBDIR when linking against LLVMEmil Velikov2016-11-091-2/+2
| | | | | | | | | | | | | | | | Currently if one uses a non-default prefix, the path won't get propagated and we'll fail at link-time. A very quick and easy example is to install to /usr/local. At this point, llvm-config will be picked even without the --with-llvm-prefix, but regardless of the latter linking will fail. Currently people can workaround that via LD_LIBRARY_PATH. Cc: "12.0 13.0" <[email protected]> Cc: Tom Stellard <[email protected]> Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
* configure.ac: simplify EGL requirements for drivers dependent on EGLMarek Olšák2016-10-261-14/+13
| | | | Reviewed-by: Emil Velikov <[email protected]>
* configure: Get rid of the --disable-vulkan-icd-full-driver-path flagJason Ekstrand2016-10-211-7/+0
| | | | | | Signed-off-by: Jason Ekstrand <[email protected]> Reviewed-by: Emil Velikov <[email protected]> Cc: "13.0" <[email protected]>
* configure.ac: enable EGL platform DRM if GBM is enabledMarek Olšák2016-10-191-2/+6
| | | | | | | | | since GBM is enabled by default, this is also enabled by default the whitespace changes remove tabs Reviewed-by: Eric Engestrom <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* configure.ac: enable GBM by defaultMarek Olšák2016-10-191-10/+9
| | | | | Reviewed-by: Eric Engestrom <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* configure.ac: print whether GBM is enabledMarek Olšák2016-10-191-0/+5
| | | | | Reviewed-by: Eric Engestrom <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* anv: move to using shared wsi codeDave Airlie2016-10-191-1/+4
| | | | | | | | This moves the shared code to a common subdirectory and makes anv linked to that code instead of the copy it was using. Reviewed-by: Jason Ekstrand <[email protected]>
* configure.ac: use a single require_libdrm helperEmil Velikov2016-10-181-25/+24
| | | | | | | | | Rather than having 4-5 places which do the explicit check/message just polish the gallium helper and use it everywhere. Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Axel Davy <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* configure.ac: remove no longer needed *_pci_id logicEmil Velikov2016-10-181-41/+0
| | | | | | | | | | | | | | | | | | Previously it was used to differentiate between the different codepaths in the loader. Although strictly speaking the (core) of the loader is only used when a hardware device is available. The latter of which in itself requires libdrm (one of the codepaths available). That said, all the configure toggles which relate to enabling/using hw device should attribute and require libdrm, so there's no need to keep this code around. With this gallium_require_drm_loader becomes an empty stub, so nuke that one as well. Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Axel Davy <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* loader: remove final sysfs codepath in loader_get_device_name_for_fd()Emil Velikov2016-10-181-16/+4
| | | | | | | | | | | | | | Effectively everyone with actual hardware and/or requesting the "device_name" requires a working libdrm. Thus they could/should already be using the (now only) codepath. Apart from the code simplification, we can slim down our configure.ac even further. But that will be done in separate patch(es). Cc: Gary Wong <[email protected]> Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Axel Davy <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* automake: remove all the libudev referencesEmil Velikov2016-10-181-18/+6
| | | | | | | | As of last commit nothing in mesa depends on libudev. Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Axel Davy <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* configure.ac: mark libdrm as have_pci_id providerEmil Velikov2016-10-181-4/+8
| | | | | | | | | | With follow on work, we'll untangle and simplify all the different codepaths in loader. Then again, we forget to set have_pci_id when libdrm is present (one of the codepaths available). Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Axel Davy <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
* radv: don't build without SHA1.Dave Airlie2016-10-101-0/+3
| | | | | | | Just copy the section from anv above this. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98167 Signed-off-by: Dave Airlie <[email protected]>
* intel: aubinator: generate a standalone binaryLionel Landwerlin2016-10-081-0/+1
| | | | | | | | | | | | | | | | | | | | | Embed the xml files into the binary, so aubinator can be used from any location. v2: Split generation packing into another patch (Jason) Check for xxd (Jason) v3: Fix out of tree builds (Jason) Generate custom variable name rather than names generated by xxd (Lionel) v4: Move generated _xml.h files to genxml/ (Sirisha) v5: Remove newline from makefile (Jason) v6: Add comment on gen*_xml.h creation (Jason) Signed-off-by: Lionel Landwerlin <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>
* radv: fix configure.ac checkDave Airlie2016-10-071-1/+1
| | | | | | This should be positive test. Signed-off-by: Dave Airlie <[email protected]>
* radv: add initial non-conformant radv vulkan driverDave Airlie2016-10-071-7/+26
| | | | | | | | | | | | | | | | | | | | | | | This squashes all the radv development up until now into one for merging. History can be found: https://github.com/airlied/mesa/tree/semi-interesting This requires llvm 3.9 and is in no way considered a conformant vulkan implementation. It can run a number of vulkan applications, and supports all GPUs using the amdgpu kernel driver. Thanks to Intel for providing anv and spirv->nir, and Emil Velikov for reviewing build integration. Parts of this are: Reviewed-by: Nicolai Hähnle <[email protected]> Acked-by: Edward O'Callaghan <[email protected]> Authors: Bas Nieuwenhuizen and Dave Airlie Signed-off-by: Dave Airlie <[email protected]>
* autoconf: Make header install distinct for various APIs (v2)Chuck Atkins2016-10-061-0/+2
| | | | | | | | | | | | This fixes a problem where GL headers would only get installed if glx was enabled. So if osmesa was enabled but not glx, then the GL headers required by osmesa would be missing from the install. v2: Dropped unneeded mesa_glinterop.h redundant osmesa.h install Cc: [email protected] Signed-off-by: Chuck Atkins <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* util: use GCC atomic intrinsics with explicit memory modelNicolai Hähnle2016-10-051-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | This is motivated by the fact that p_atomic_read and p_atomic_set may somewhat surprisingly not do the right thing in the old version: while stores and loads are de facto atomic at least on x86, the compiler may apply re-ordering and speculation quite liberally. Basically, the old version uses the "relaxed" memory ordering. The new ordering always uses acquire/release ordering. This is the strongest possible memory ordering that doesn't require additional fence instructions on x86. (And the only stronger ordering is "sequentially consistent", which is usually more than you need anyway.) I would feel more comfortable if p_atomic_set/read in the old implementation were at least using volatile loads and stores, but I don't see a way to get there without typeof (which we cannot use here since the code is compiled with -std=c99). Eventually, we should really just move to something that is based on the atomics in C11 / C++11. Acked-by: Marek Olšák <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* gallium/hud: Add support for block I/O, network I/O and lmsensor statsSteven Toth2016-09-281-0/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | V8: Feedback based on peer review convert if block into a switch Constify some func args V7: Increase precision when measuring lmsensors volts Flatten patch series. V6: Feedback based on peer review Simplify sensor initialization (arg passing). Constify some func args V5: Feedback based on peer review Convert sprintf to snprintf Convert char * to const char * int arg converted to bool Func changes to take a filename vs a larger struct. Omit the space between '*' and the param name. V4: Merged with master as of 2016/9/27 6pm V3: Flatten the entire patchset ready for the ML V2: Additional seperate patches based on feedback a) configure.ac: Add a comment related to libsensors b) HUD: Disable Block/NIC I/O stats by default. Implement configuration option --enable-gallium-extra-hud=yes and enable both statistics when this option is enabled. c) Configure.ac: Minor cleanup to user visible configuration settings d) Configure.ac: HUD stats - build system improvements Move the -lsensors out of a deeper Makefile, bring it into the configure.ac. Also, rename a compiler directive to more closely follow the standard. V1: Initial release to the ML Three new features: 1. Disk/block I/O device read/write stats MB/ps. 2. Network Interface RX/TX transfer statistics as a percentage of the overall NIC speed. 3. lmsensor power, voltage and temperature sensors. The lmsensor changes makes a dependency on libsensors so support for the change is opt out by default. Signed-off-by: Steven Toth <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* glsl: Add initial functions to implement an on-disk cacheTimothy Arceri2016-09-281-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This code provides for an on-disk cache of objects. Objects are stored and retrieved via names that are arbitrary 20-byte sequences, (intended to be SHA-1 hashes of something identifying for the content). The directory used for the cache can be specified by means of environment variables in the following priority order: $MESA_GLSL_CACHE_DIR $XDG_CACHE_HOME/mesa <user-home-directory>/.cache/mesa By default the cache will be limited to a maximum size of 1GB. The environment variable: $MESA_GLSL_CACHE_MAX_SIZE can be set (at the time of GL context creation) to choose some other size. This variable is a number that can optionally be followed by 'K', 'M', or 'G' to select a size in kilobytes, megabytes, or gigabytes. By default, an unadorned value will be interpreted as gigabytes. The cache will be entirely disabled at runtime if the variable MESA_GLSL_CACHE_DISABLE is set at the time of GL context creation. Many thanks to Kristian Høgsberg <[email protected]> for the initial implementation of code that led to this patch. In particular, the idea of using an mmapped file, (indexed by a portion of the SHA-1), for the efficent implementation of cache_has_key was entirely his idea. Kristian also provided some very helpful advice in discussions regarding various race conditions to be avoided in this code. Signed-off-by: Timothy Arceri <[email protected]> Reviewed-by: Eric Anholt <[email protected]>
* configure.ac: add llvm inteljitevents component if enabledTim Rowley2016-09-271-0/+4
| | | | | | | | | | | Needed to successfully link llvmpipe or swr when using shared llvm libs built with inteljitevents enabled. v2: Make adding inteljitevents component global rather than just llvmpipe/swr, since libgallium will have a symbol dependency. Cc: <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* direct-to-native-GL for GLX clients on Cygwin ("Windows-DRI")Jon Turney2016-09-151-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Structurally, this is very similar to the existing Apple-DRI code, except I have chosen to implement this using the __GLXDRIdisplay, etc. vtables (as suggested originally in [1]), rather than a maze of ifdefs. This also means that LIBGL_ALWAYS_SOFTWARE and LIBGL_ALWAYS_INDIRECT work as expected. [1] https://lists.freedesktop.org/archives/mesa-dev/2010-May/000756.html This adds: * the Windows-DRI extension protocol headers and the windowsdriproto.pc file, for use in building the Windows-DRI extension for the X server * a Windows-DRI extension helper client library * a Windows-specific DRI implementation for GLX clients The server is queried for Windows-DRI extension support on the screen before using it (to detect the case where WGL is disabled or can't be activated). The server is queried for fbconfigID to pixelformatindex mapping, which is used to augment glx_config. The server is queried for a native handle for the drawable (which is of a different type for windows, pixmaps and pbuffers), which is used to augment __GLXDRIdrawable. Various GLX extensions are enabled depending on if the equivalent WGL extension is available.
* configure.ac: fix the name of the Wayland Scanner pc fileBrendan King2016-09-141-2/+2
| | | | | | | | | | | | | The Wayland Scanner pkg-config file is called wayland-scanner.pc. Fixes: 153539bd9d4445b50411 ("configure: rework wayland_scanner handling (fix make distcheck)") Cc: [email protected] Reviewed-by: Eric Engestrom <[email protected]> Tested-by: Eric Engestrom <[email protected]> Signed-off-by: Brendan King <[email protected]> Reviewed-by: Emil Velikov <[email protected]>