Compare commits
	
		
			67 Commits
		
	
	
		
			chadv/cros
			...
			gles3-fmt-
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | ae0120f247 | ||
|  | 787bbe65ff | ||
|  | 5f96348c60 | ||
|  | fe23a2c5e1 | ||
|  | 54d744bfc4 | ||
|  | b1c62e9533 | ||
|  | 0faa38ccc6 | ||
|  | ed9f608070 | ||
|  | b68dc0c5ee | ||
|  | add9b77cbd | ||
|  | 64e0be7d0b | ||
|  | 166c4d211d | ||
|  | fef9526cb6 | ||
|  | a33dc45d2f | ||
|  | 95da613011 | ||
|  | 9824382dbd | ||
|  | 067e9170ef | ||
|  | 28236b2f28 | ||
|  | a1ef7b34ce | ||
|  | 8d99b25045 | ||
|  | 3613e67b4a | ||
|  | 566ce73fab | ||
|  | 4fd482b841 | ||
|  | 555245eeb7 | ||
|  | e76ddbf0f8 | ||
|  | 8b89a5bbf5 | ||
|  | 56e2a876e4 | ||
|  | acac9cdde0 | ||
|  | 8a88168a90 | ||
|  | 18aca7ac5a | ||
|  | 4dd38352e5 | ||
|  | a0333d34a7 | ||
|  | 5d1c69be02 | ||
|  | e68b841b3c | ||
|  | 3b495d815f | ||
|  | 0538b36bac | ||
|  | d3d6e05349 | ||
|  | 4014ee4567 | ||
|  | b83a83dcdf | ||
|  | 19864a4b1c | ||
|  | 24d89bc7ea | ||
|  | 84b2017c30 | ||
|  | a9c1fa067c | ||
|  | d9228105e1 | ||
|  | 4b7bea48ee | ||
|  | b1a21a9f7c | ||
|  | f7a82c00cd | ||
|  | d053e8e85b | ||
|  | 0f16eafa17 | ||
|  | 43413b3fdd | ||
|  | 974d48a061 | ||
|  | 173e4f7a42 | ||
|  | 026099f93a | ||
|  | feba88049f | ||
|  | cf6ddcecda | ||
|  | 244d6eb094 | ||
|  | 7a4eca8280 | ||
|  | 3d0890d39d | ||
|  | 2a18d71dbe | ||
|  | 13fa793585 | ||
|  | fca1ec5bfa | ||
|  | 5b9df1c245 | ||
|  | bdea9b9460 | ||
|  | e1ccb71996 | ||
|  | db902c4948 | ||
|  | a40737f505 | ||
|  | dbee8d3ea2 | 
| @@ -1,18 +1,11 @@ | |||||||
| ((nil . ((show-trailing-whitespace . t))) | ((nil | ||||||
|  (prog-mode |  | ||||||
|   (indent-tabs-mode . nil) |   (indent-tabs-mode . nil) | ||||||
|   (tab-width . 8) |   (tab-width . 8) | ||||||
|   (c-basic-offset . 3) |   (c-basic-offset . 3) | ||||||
|   (c-file-style . "stroustrup") |   (c-file-style . "stroustrup") | ||||||
|   (fill-column . 78) |   (fill-column . 78) | ||||||
|   (eval . (progn |   (eval . (progn | ||||||
| 	    (c-set-offset 'case-label '0) |  | ||||||
| 	    (c-set-offset 'innamespace '0) | 	    (c-set-offset 'innamespace '0) | ||||||
| 	    (c-set-offset 'inline-open '0))) | 	    (c-set-offset 'inline-open '0))) | ||||||
|   (whitespace-style face indentation) |   ) | ||||||
|   (whitespace-line-column . 79) |  | ||||||
|   (eval ignore-errors |  | ||||||
|         (require 'whitespace) |  | ||||||
|         (whitespace-mode 1))) |  | ||||||
|  (makefile-mode (indent-tabs-mode . t)) |  | ||||||
|  ) |  ) | ||||||
|   | |||||||
| @@ -1,40 +0,0 @@ | |||||||
| # To use this config on you editor, follow the instructions at: |  | ||||||
| # http://editorconfig.org |  | ||||||
|  |  | ||||||
| root = true |  | ||||||
|  |  | ||||||
| [*] |  | ||||||
| charset = utf-8 |  | ||||||
| insert_final_newline = true |  | ||||||
| tab_width = 8 |  | ||||||
|  |  | ||||||
| [*.{c,h,cpp,hpp,cc,hh}] |  | ||||||
| indent_style = space |  | ||||||
| indent_size = 3 |  | ||||||
| max_line_length = 78 |  | ||||||
|  |  | ||||||
| [{Makefile*,*.mk}] |  | ||||||
| indent_style = tab |  | ||||||
|  |  | ||||||
| [{*.py,SCons*}] |  | ||||||
| indent_style = space |  | ||||||
| indent_size = 4 |  | ||||||
|  |  | ||||||
| [*.pl] |  | ||||||
| indent_style = space |  | ||||||
| indent_size = 4 |  | ||||||
|  |  | ||||||
| [*.m4] |  | ||||||
| indent_style = space |  | ||||||
| indent_size = 2 |  | ||||||
|  |  | ||||||
| [*.yml] |  | ||||||
| indent_style = space |  | ||||||
| indent_size = 2 |  | ||||||
|  |  | ||||||
| [*.patch] |  | ||||||
| trim_trailing_whitespace = false |  | ||||||
|  |  | ||||||
| [meson.build,meson_options.txt] |  | ||||||
| indent_style = space |  | ||||||
| indent_size = 2 |  | ||||||
							
								
								
									
										14
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -4,24 +4,19 @@ | |||||||
| *.ilk | *.ilk | ||||||
| *.la | *.la | ||||||
| *.lo | *.lo | ||||||
| *.log |  | ||||||
| *.o | *.o | ||||||
| *.obj | *.obj | ||||||
| *.orig |  | ||||||
| *.os | *.os | ||||||
| *.pc | *.pc | ||||||
| *.pdb | *.pdb | ||||||
| *.pyc | *.pyc | ||||||
| *.pyo | *.pyo | ||||||
| *.rej |  | ||||||
| *.so | *.so | ||||||
| *.so.* | *.so.* | ||||||
| *.sw[a-z] | *.sw[a-z] | ||||||
| *.tar | *.tar | ||||||
| *.tar.bz2 | *.tar.bz2 | ||||||
| *.tar.gz | *.tar.gz | ||||||
| *.tar.xz |  | ||||||
| *.trs |  | ||||||
| *.zip | *.zip | ||||||
| *~ | *~ | ||||||
| depend | depend | ||||||
| @@ -36,19 +31,14 @@ aclocal.m4 | |||||||
| config.log | config.log | ||||||
| config.status | config.status | ||||||
| cscope* | cscope* | ||||||
| tags |  | ||||||
| .scon* | .scon* | ||||||
| config.py | config.py | ||||||
| build | build | ||||||
| libtool | libtool | ||||||
| manifest.txt | manifest.txt | ||||||
|  | Makefile.in | ||||||
| .dir-locals.el | .dir-locals.el | ||||||
| .deps/ | .deps/ | ||||||
| .dirstamp | .dirstamp | ||||||
| .libs/ | .libs/ | ||||||
| Makefile | /Makefile | ||||||
| Makefile.in |  | ||||||
| .install-mesa-links |  | ||||||
| .install-gallium-links |  | ||||||
| /src/git_sha1.h |  | ||||||
| TAGS |  | ||||||
|   | |||||||
							
								
								
									
										499
									
								
								.gitlab-ci.yml
									
									
									
									
									
								
							
							
						
						
									
										499
									
								
								.gitlab-ci.yml
									
									
									
									
									
								
							| @@ -1,499 +0,0 @@ | |||||||
| # This is the tag of the docker image used for the build jobs. If the |  | ||||||
| # image doesn't exist yet, the containers-build stage generates it. |  | ||||||
| # |  | ||||||
| # In order to generate a new image, one should generally change the tag. |  | ||||||
| # While removing the image from the registry would also work, that's not |  | ||||||
| # recommended except for ephemeral images during development: Replacing |  | ||||||
| # an image after a significant amount of time might pull in newer |  | ||||||
| # versions of gcc/clang or other packages, which might break the build |  | ||||||
| # with older commits using the same tag. |  | ||||||
| # |  | ||||||
| # After merging a change resulting in generating a new image to the |  | ||||||
| # main repository, it's recommended to remove the image from the source |  | ||||||
| # repository's container registry, so that the image from the main |  | ||||||
| # repository's registry will be used there as well. |  | ||||||
| # |  | ||||||
| # The format of the tag is "%Y-%m-%d-${counter}" where ${counter} stays |  | ||||||
| # at "01" unless you have multiple updates on the same day :) |  | ||||||
| variables: |  | ||||||
|   UBUNTU_TAG: 2019-02-12-01 |  | ||||||
|   UBUNTU_IMAGE: "$CI_REGISTRY_IMAGE/ubuntu:$UBUNTU_TAG" |  | ||||||
|   UBUNTU_IMAGE_MAIN: "registry.freedesktop.org/mesa/mesa/ubuntu:$UBUNTU_TAG" |  | ||||||
|  |  | ||||||
| cache: |  | ||||||
|   paths: |  | ||||||
|     - ccache |  | ||||||
|  |  | ||||||
| stages: |  | ||||||
|   - containers-build |  | ||||||
|   - build+test |  | ||||||
|  |  | ||||||
|  |  | ||||||
| # When to automatically run the CI |  | ||||||
| .ci-run-policy: |  | ||||||
|   only: |  | ||||||
|     - master |  | ||||||
|     - merge_requests |  | ||||||
|     - /^ci([-/].*)?$/ |  | ||||||
|  |  | ||||||
|  |  | ||||||
| # CONTAINERS |  | ||||||
|  |  | ||||||
| containers:ubuntu: |  | ||||||
|   extends: .ci-run-policy |  | ||||||
|   stage: containers-build |  | ||||||
|   image: docker:stable |  | ||||||
|   services: |  | ||||||
|     - docker:dind |  | ||||||
|   variables: |  | ||||||
|     DOCKER_HOST: tcp://docker:2375 |  | ||||||
|     DOCKER_DRIVER: overlay2 |  | ||||||
|   script: |  | ||||||
|     # Enable experimental features such as `docker manifest inspect` |  | ||||||
|     - mkdir -p ~/.docker |  | ||||||
|     - "echo '{\"experimental\": \"enabled\"}' > ~/.docker/config.json" |  | ||||||
|     - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY |  | ||||||
|     # Check if the image (with the specific tag) already exists |  | ||||||
|     - docker manifest inspect $UBUNTU_IMAGE && exit || true |  | ||||||
|     # Try to re-use the image from the main repository's registry |  | ||||||
|     - docker image pull $UBUNTU_IMAGE_MAIN && |  | ||||||
|       docker image tag $UBUNTU_IMAGE_MAIN $UBUNTU_IMAGE && |  | ||||||
|       docker image push $UBUNTU_IMAGE && exit || true |  | ||||||
|     - docker build -t $UBUNTU_IMAGE -f .gitlab-ci/Dockerfile.ubuntu . |  | ||||||
|     - docker push $UBUNTU_IMAGE |  | ||||||
|  |  | ||||||
|  |  | ||||||
| # BUILD |  | ||||||
|  |  | ||||||
| .build: |  | ||||||
|   extends: .ci-run-policy |  | ||||||
|   image: $UBUNTU_IMAGE |  | ||||||
|   stage: build+test |  | ||||||
|   artifacts: |  | ||||||
|     when: on_failure |  | ||||||
|     untracked: true |  | ||||||
|   # Use ccache transparently, and print stats before/after |  | ||||||
|   before_script: |  | ||||||
|     - export PATH="/usr/lib/ccache:$PATH" |  | ||||||
|     - export CCACHE_BASEDIR="$PWD" |  | ||||||
|     - export CCACHE_DIR="$PWD/ccache" |  | ||||||
|     - export CCACHE_COMPILERCHECK=content |  | ||||||
|     - ccache --zero-stats || true |  | ||||||
|     - ccache --show-stats || true |  | ||||||
|   after_script: |  | ||||||
|     - export CCACHE_DIR="$PWD/ccache" |  | ||||||
|     - ccache --show-stats |  | ||||||
|  |  | ||||||
| .meson-build: |  | ||||||
|   extends: .build |  | ||||||
|   script: |  | ||||||
|     # We need to control the version of llvm-config we're using, so we'll |  | ||||||
|     # generate a native file to do so. This requires meson >=0.49 |  | ||||||
|     - if test -n "$LLVM_VERSION"; then |  | ||||||
|         LLVM_CONFIG="llvm-config-${LLVM_VERSION}"; |  | ||||||
|         echo -e "[binaries]\nllvm-config = '`which $LLVM_CONFIG`'" > native.file; |  | ||||||
|         $LLVM_CONFIG --version; |  | ||||||
|       else |  | ||||||
|         touch native.file; |  | ||||||
|       fi |  | ||||||
|     - meson --version |  | ||||||
|     - meson _build |  | ||||||
|             --native-file=native.file |  | ||||||
|             -D build-tests=true |  | ||||||
|             -D libunwind=${UNWIND} |  | ||||||
|             ${DRI_LOADERS} |  | ||||||
|             -D dri-drivers=${DRI_DRIVERS:-[]} |  | ||||||
|             ${GALLIUM_ST} |  | ||||||
|             -D gallium-drivers=${GALLIUM_DRIVERS:-[]} |  | ||||||
|             -D vulkan-drivers=${VULKAN_DRIVERS:-[]} |  | ||||||
|     - cd _build |  | ||||||
|     - meson configure |  | ||||||
|     - ninja -j4 |  | ||||||
|     - ninja test |  | ||||||
|  |  | ||||||
| .make-build: |  | ||||||
|   extends: .build |  | ||||||
|   variables: |  | ||||||
|     MAKEFLAGS: "-j4" |  | ||||||
|   script: |  | ||||||
|     - if test -n "$LLVM_VERSION"; then |  | ||||||
|         export LLVM_CONFIG="llvm-config-${LLVM_VERSION}"; |  | ||||||
|       fi |  | ||||||
|     - mkdir build |  | ||||||
|     - cd build |  | ||||||
|     - ../autogen.sh |  | ||||||
|         --enable-autotools |  | ||||||
|         --enable-debug |  | ||||||
|         $LIBUNWIND_FLAGS |  | ||||||
|         $DRI_LOADERS |  | ||||||
|         --with-dri-drivers=$DRI_DRIVERS |  | ||||||
|         $GALLIUM_ST |  | ||||||
|         --with-gallium-drivers=$GALLIUM_DRIVERS |  | ||||||
|         --with-vulkan-drivers=$VULKAN_DRIVERS |  | ||||||
|         --disable-llvm-shared-libs |  | ||||||
|     - make |  | ||||||
|     - eval $MAKE_CHECK_COMMAND |  | ||||||
|  |  | ||||||
| .scons-build: |  | ||||||
|   extends: .build |  | ||||||
|   variables: |  | ||||||
|     SCONSFLAGS: "-j4" |  | ||||||
|   script: |  | ||||||
|     - if test -n "$LLVM_VERSION"; then |  | ||||||
|         export LLVM_CONFIG="llvm-config-${LLVM_VERSION}"; |  | ||||||
|       fi |  | ||||||
|     - scons $SCONS_TARGET |  | ||||||
|     - eval $SCONS_CHECK_COMMAND |  | ||||||
|  |  | ||||||
| build:meson-vulkan: |  | ||||||
|   extends: .meson-build |  | ||||||
|   variables: |  | ||||||
|     UNWIND: "false" |  | ||||||
|     DRI_LOADERS: > |  | ||||||
|       -D glx=disabled |  | ||||||
|       -D gbm=false |  | ||||||
|       -D egl=false |  | ||||||
|       -D platforms=x11,wayland,drm |  | ||||||
|       -D osmesa=none |  | ||||||
|     GALLIUM_ST: > |  | ||||||
|       -D dri3=true |  | ||||||
|       -D gallium-vdpau=false |  | ||||||
|       -D gallium-xvmc=false |  | ||||||
|       -D gallium-omx=disabled |  | ||||||
|       -D gallium-va=false |  | ||||||
|       -D gallium-xa=false |  | ||||||
|       -D gallium-nine=false |  | ||||||
|       -D gallium-opencl=disabled |  | ||||||
|     VULKAN_DRIVERS: intel,amd |  | ||||||
|     LLVM_VERSION: "7" |  | ||||||
|  |  | ||||||
| build:meson-loader-classic-dri: |  | ||||||
|   extends: .meson-build |  | ||||||
|   variables: |  | ||||||
|     UNWIND: "false" |  | ||||||
|     DRI_LOADERS: > |  | ||||||
|       -D glx=dri |  | ||||||
|       -D gbm=true |  | ||||||
|       -D egl=true |  | ||||||
|       -D platforms=x11,wayland,drm,surfaceless |  | ||||||
|       -D osmesa=classic |  | ||||||
|     DRI_DRIVERS: "i915,i965,r100,r200,swrast,nouveau" |  | ||||||
|     GALLIUM_ST: > |  | ||||||
|       -D dri3=true |  | ||||||
|       -D gallium-vdpau=false |  | ||||||
|       -D gallium-xvmc=false |  | ||||||
|       -D gallium-omx=disabled |  | ||||||
|       -D gallium-va=false |  | ||||||
|       -D gallium-xa=false |  | ||||||
|       -D gallium-nine=false |  | ||||||
|       -D gallium-opencl=disabled |  | ||||||
|  |  | ||||||
| build:meson-glvnd: |  | ||||||
|   extends: .meson-build |  | ||||||
|   variables: |  | ||||||
|     UNWIND: "true" |  | ||||||
|     DRI_LOADERS: > |  | ||||||
|       -D glvnd=true |  | ||||||
|       -D egl=true |  | ||||||
|       -D gbm=true |  | ||||||
|       -D glx=dri |  | ||||||
|     DRI_DRIVERS: "i965" |  | ||||||
|     GALLIUM_ST: > |  | ||||||
|       -D gallium-vdpau=false |  | ||||||
|       -D gallium-xvmc=false |  | ||||||
|       -D gallium-omx=disabled |  | ||||||
|       -D gallium-va=false |  | ||||||
|       -D gallium-xa=false |  | ||||||
|       -D gallium-nine=false |  | ||||||
|       -D gallium-opencl=disabled |  | ||||||
|  |  | ||||||
| # NOTE: Building SWR is 2x (yes two) times slower than all the other |  | ||||||
| # gallium drivers combined. |  | ||||||
| # Start this early so that it doesn't hunder the run time. |  | ||||||
| build:meson-gallium-swr: |  | ||||||
|   extends: .meson-build |  | ||||||
|   variables: |  | ||||||
|     UNWIND: "true" |  | ||||||
|     DRI_LOADERS: > |  | ||||||
|       -D glx=disabled |  | ||||||
|       -D egl=false |  | ||||||
|       -D gbm=false |  | ||||||
|     GALLIUM_ST: > |  | ||||||
|       -D dri3=false |  | ||||||
|       -D gallium-vdpau=false |  | ||||||
|       -D gallium-xvmc=false |  | ||||||
|       -D gallium-omx=disabled |  | ||||||
|       -D gallium-va=false |  | ||||||
|       -D gallium-xa=false |  | ||||||
|       -D gallium-nine=false |  | ||||||
|       -D gallium-opencl=disabled |  | ||||||
|     GALLIUM_DRIVERS: "swr" |  | ||||||
|     LLVM_VERSION: "6.0" |  | ||||||
|  |  | ||||||
| build:meson-gallium-radeonsi: |  | ||||||
|   extends: .meson-build |  | ||||||
|   variables: |  | ||||||
|     UNWIND: "true" |  | ||||||
|     DRI_LOADERS: > |  | ||||||
|       -D glx=disabled |  | ||||||
|       -D egl=false |  | ||||||
|       -D gbm=false |  | ||||||
|     GALLIUM_ST: > |  | ||||||
|       -D dri3=false |  | ||||||
|       -D gallium-vdpau=false |  | ||||||
|       -D gallium-xvmc=false |  | ||||||
|       -D gallium-omx=disabled |  | ||||||
|       -D gallium-va=false |  | ||||||
|       -D gallium-xa=false |  | ||||||
|       -D gallium-nine=false |  | ||||||
|       -D gallium-opencl=disabled |  | ||||||
|     GALLIUM_DRIVERS: "radeonsi" |  | ||||||
|     LLVM_VERSION: "7" |  | ||||||
|  |  | ||||||
| build:meson-gallium-drivers-other: |  | ||||||
|   extends: .meson-build |  | ||||||
|   variables: |  | ||||||
|     UNWIND: "true" |  | ||||||
|     DRI_LOADERS: > |  | ||||||
|       -D glx=disabled |  | ||||||
|       -D egl=false |  | ||||||
|       -D gbm=false |  | ||||||
|     GALLIUM_ST: > |  | ||||||
|       -D dri3=false |  | ||||||
|       -D gallium-vdpau=false |  | ||||||
|       -D gallium-xvmc=false |  | ||||||
|       -D gallium-omx=disabled |  | ||||||
|       -D gallium-va=false |  | ||||||
|       -D gallium-xa=false |  | ||||||
|       -D gallium-nine=false |  | ||||||
|       -D gallium-opencl=disabled |  | ||||||
|     GALLIUM_DRIVERS: "i915,iris,nouveau,kmsro,r300,r600,freedreno,svga,swrast,v3d,vc4,virgl,etnaviv" |  | ||||||
|     LLVM_VERSION: "5.0" |  | ||||||
|  |  | ||||||
| build:meson-gallium-clover-llvm5: |  | ||||||
|   extends: .meson-build |  | ||||||
|   variables: |  | ||||||
|     UNWIND: "true" |  | ||||||
|     DRI_LOADERS: > |  | ||||||
|       -D glx=disabled |  | ||||||
|       -D egl=false |  | ||||||
|       -D gbm=false |  | ||||||
|     GALLIUM_ST: > |  | ||||||
|       -D dri3=false |  | ||||||
|       -D gallium-vdpau=false |  | ||||||
|       -D gallium-xvmc=false |  | ||||||
|       -D gallium-omx=disabled |  | ||||||
|       -D gallium-va=false |  | ||||||
|       -D gallium-xa=false |  | ||||||
|       -D gallium-nine=false |  | ||||||
|       -D gallium-opencl=icd |  | ||||||
|     GALLIUM_DRIVERS: "r600" |  | ||||||
|     LLVM_VERSION: "5.0" |  | ||||||
|  |  | ||||||
| build:meson-gallium-clover-llvm6: |  | ||||||
|   extends: build:meson-gallium-clover-llvm5 |  | ||||||
|   variables: |  | ||||||
|     LLVM_VERSION: "6.0" |  | ||||||
|  |  | ||||||
| build:meson-gallium-clover-llvm7: |  | ||||||
|   extends: build:meson-gallium-clover-llvm5 |  | ||||||
|   variables: |  | ||||||
|     GALLIUM_DRIVERS: "r600,radeonsi" |  | ||||||
|     LLVM_VERSION: "7" |  | ||||||
|  |  | ||||||
| build:meson-gallium-st-other: |  | ||||||
|   extends: .meson-build |  | ||||||
|   variables: |  | ||||||
|     UNWIND: "true" |  | ||||||
|     DRI_LOADERS: > |  | ||||||
|       -D glx=disabled |  | ||||||
|       -D egl=false |  | ||||||
|       -D gbm=false |  | ||||||
|     GALLIUM_ST: > |  | ||||||
|       -D dri3=true |  | ||||||
|       -D gallium-vdpau=true |  | ||||||
|       -D gallium-xvmc=true |  | ||||||
|       -D gallium-omx=bellagio |  | ||||||
|       -D gallium-va=true |  | ||||||
|       -D gallium-xa=true |  | ||||||
|       -D gallium-nine=true |  | ||||||
|       -D gallium-opencl=disabled |  | ||||||
|       -D osmesa=gallium |  | ||||||
|     GALLIUM_DRIVERS: "nouveau,swrast" |  | ||||||
|     LLVM_VERSION: "5.0" |  | ||||||
|  |  | ||||||
| build:make-vulkan: |  | ||||||
|   extends: .make-build |  | ||||||
|   variables: |  | ||||||
|     MAKE_CHECK_COMMAND: "make -C src/gtest check && make -C src/intel check" |  | ||||||
|     LLVM_VERSION: "7" |  | ||||||
|     DRI_LOADERS: > |  | ||||||
|       --disable-glx |  | ||||||
|       --disable-gbm |  | ||||||
|       --disable-egl |  | ||||||
|       --with-platforms=x11,wayland,drm |  | ||||||
|     DRI_DRIVERS: "" |  | ||||||
|     GALLIUM_ST: > |  | ||||||
|       --enable-dri |  | ||||||
|       --enable-dri3 |  | ||||||
|       --disable-opencl |  | ||||||
|       --disable-xa |  | ||||||
|       --disable-nine |  | ||||||
|       --disable-xvmc |  | ||||||
|       --disable-vdpau |  | ||||||
|       --disable-va |  | ||||||
|       --disable-omx-bellagio |  | ||||||
|       --disable-gallium-osmesa |  | ||||||
|     VULKAN_DRIVERS: intel,radeon |  | ||||||
|     LIBUNWIND_FLAGS: --disable-libunwind |  | ||||||
|  |  | ||||||
| build:make-loader-classic-dri: |  | ||||||
|   extends: .make-build |  | ||||||
|   variables: |  | ||||||
|     MAKE_CHECK_COMMAND: "make check" |  | ||||||
|     DRI_LOADERS: > |  | ||||||
|       --enable-glx |  | ||||||
|       --enable-gbm |  | ||||||
|       --enable-egl |  | ||||||
|       --with-platforms=x11,wayland,drm,surfaceless |  | ||||||
|       --enable-osmesa |  | ||||||
|     DRI_DRIVERS: "i915,i965,radeon,r200,swrast,nouveau" |  | ||||||
|     GALLIUM_ST: > |  | ||||||
|       --enable-dri |  | ||||||
|       --disable-opencl |  | ||||||
|       --disable-xa |  | ||||||
|       --disable-nine |  | ||||||
|       --disable-xvmc |  | ||||||
|       --disable-vdpau |  | ||||||
|       --disable-va |  | ||||||
|       --disable-omx-bellagio |  | ||||||
|       --disable-gallium-osmesa |  | ||||||
|     LIBUNWIND_FLAGS: --disable-libunwind |  | ||||||
|  |  | ||||||
| # NOTE: Building SWR is 2x (yes two) times slower than all the other |  | ||||||
| # gallium drivers combined. |  | ||||||
| # Start this early so that it doesn't hunder the run time. |  | ||||||
| build:make-gallium-drivers-swr: |  | ||||||
|   extends: .make-build |  | ||||||
|   variables: |  | ||||||
|     MAKE_CHECK_COMMAND: "true" |  | ||||||
|     LLVM_VERSION: "6.0" |  | ||||||
|     DRI_LOADERS: > |  | ||||||
|       --disable-glx |  | ||||||
|       --disable-gbm |  | ||||||
|       --disable-egl |  | ||||||
|     GALLIUM_ST: > |  | ||||||
|       --enable-dri |  | ||||||
|       --disable-opencl |  | ||||||
|       --disable-xa |  | ||||||
|       --disable-nine |  | ||||||
|       --disable-xvmc |  | ||||||
|       --disable-vdpau |  | ||||||
|       --disable-va |  | ||||||
|       --disable-omx-bellagio |  | ||||||
|       --disable-gallium-osmesa |  | ||||||
|     GALLIUM_DRIVERS: "swr" |  | ||||||
|     LIBUNWIND_FLAGS: --enable-libunwind |  | ||||||
|  |  | ||||||
| build:make-gallium-drivers-radeonsi: |  | ||||||
|   extends: build:make-gallium-drivers-swr |  | ||||||
|   variables: |  | ||||||
|     LLVM_VERSION: "7" |  | ||||||
|     GALLIUM_DRIVERS: "radeonsi" |  | ||||||
|  |  | ||||||
| build:make-gallium-drivers-other: |  | ||||||
|   extends: build:make-gallium-drivers-swr |  | ||||||
|   variables: |  | ||||||
|     LLVM_VERSION: "3.9" |  | ||||||
|     GALLIUM_DRIVERS: "i915,nouveau,kmsro,r300,r600,freedreno,svga,swrast,v3d,vc4,virgl,etnaviv" |  | ||||||
|  |  | ||||||
| build:make-gallium-st-clover-llvm-39: |  | ||||||
|   extends: .make-build |  | ||||||
|   variables: |  | ||||||
|     MAKE_CHECK_COMMAND: "true" |  | ||||||
|     LLVM_VERSION: "3.9" |  | ||||||
|     DRI_LOADERS: > |  | ||||||
|       --disable-glx |  | ||||||
|       --disable-gbm |  | ||||||
|       --disable-egl |  | ||||||
|     GALLIUM_ST: > |  | ||||||
|       --disable-dri |  | ||||||
|       --enable-opencl |  | ||||||
|       --enable-opencl-icd |  | ||||||
|       --enable-llvm |  | ||||||
|       --disable-xa |  | ||||||
|       --disable-nine |  | ||||||
|       --disable-xvmc |  | ||||||
|       --disable-vdpau |  | ||||||
|       --disable-va |  | ||||||
|       --disable-omx-bellagio |  | ||||||
|       --disable-gallium-osmesa |  | ||||||
|     GALLIUM_DRIVERS: "r600" |  | ||||||
|     LIBUNWIND_FLAGS: --enable-libunwind |  | ||||||
|  |  | ||||||
| build:make-gallium-st-clover-llvm-4: |  | ||||||
|   extends: build:make-gallium-st-clover-llvm-39 |  | ||||||
|   variables: |  | ||||||
|     LLVM_VERSION: "4.0" |  | ||||||
|  |  | ||||||
| build:make-gallium-st-clover-llvm-5: |  | ||||||
|   extends: build:make-gallium-st-clover-llvm-39 |  | ||||||
|   variables: |  | ||||||
|     LLVM_VERSION: "5.0" |  | ||||||
|  |  | ||||||
| build:make-gallium-st-clover-llvm-6: |  | ||||||
|   extends: build:make-gallium-st-clover-llvm-39 |  | ||||||
|   variables: |  | ||||||
|     LLVM_VERSION: "6.0" |  | ||||||
|  |  | ||||||
| build:make-gallium-st-clover-llvm-7: |  | ||||||
|   extends: build:make-gallium-st-clover-llvm-39 |  | ||||||
|   variables: |  | ||||||
|     LLVM_VERSION: "7" |  | ||||||
|     GALLIUM_DRIVERS: "r600,radeonsi" |  | ||||||
|  |  | ||||||
| build:make-gallium-st-other: |  | ||||||
|   extends: .make-build |  | ||||||
|   variables: |  | ||||||
|     MAKE_CHECK_COMMAND: "true" |  | ||||||
|     # We should be testing 3.3, but 3.9 is the oldest that still exists in ubuntu |  | ||||||
|     LLVM_VERSION: "3.9" |  | ||||||
|     DRI_LOADERS: > |  | ||||||
|       --disable-glx |  | ||||||
|       --disable-gbm |  | ||||||
|       --disable-egl |  | ||||||
|     GALLIUM_ST: > |  | ||||||
|       --enable-dri |  | ||||||
|       --disable-opencl |  | ||||||
|       --enable-xa |  | ||||||
|       --enable-nine |  | ||||||
|       --enable-xvmc |  | ||||||
|       --enable-vdpau |  | ||||||
|       --enable-va |  | ||||||
|       --enable-omx-bellagio |  | ||||||
|       --enable-gallium-osmesa |  | ||||||
|     # We need swrast for osmesa and nine. |  | ||||||
|     # i915 most likely doesn't work with most ST. |  | ||||||
|     # Regardless - we're doing a quick build test here. |  | ||||||
|     GALLIUM_DRIVERS: "i915,swrast" |  | ||||||
|     LIBUNWIND_FLAGS: --enable-libunwind |  | ||||||
|  |  | ||||||
| build:scons-nollvm: |  | ||||||
|   extends: .scons-build |  | ||||||
|   variables: |  | ||||||
|     SCONS_TARGET: "llvm=0" |  | ||||||
|     SCONS_CHECK_COMMAND: "scons llvm=0 check" |  | ||||||
|  |  | ||||||
| build:scons-llvm: |  | ||||||
|   extends: .scons-build |  | ||||||
|   variables: |  | ||||||
|     SCONS_TARGET: "llvm=1" |  | ||||||
|     SCONS_CHECK_COMMAND: "scons llvm=1 check" |  | ||||||
|     LLVM_VERSION: "3.9" |  | ||||||
|  |  | ||||||
| build:scons-swr: |  | ||||||
|   extends: .scons-build |  | ||||||
|   variables: |  | ||||||
|     SCONS_TARGET: "swr=1" |  | ||||||
|     SCONS_CHECK_COMMAND: "true" |  | ||||||
|     LLVM_VERSION: "6.0" |  | ||||||
| @@ -1,165 +0,0 @@ | |||||||
| FROM ubuntu:bionic |  | ||||||
|  |  | ||||||
| RUN apt-get update |  | ||||||
| RUN apt-get upgrade -y |  | ||||||
| RUN apt-get install -y \ |  | ||||||
|       curl \ |  | ||||||
|       wget \ |  | ||||||
|       gnupg \ |  | ||||||
|       software-properties-common |  | ||||||
|  |  | ||||||
| RUN curl -fsSL https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - |  | ||||||
| RUN add-apt-repository "deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-7 main" |  | ||||||
|  |  | ||||||
| RUN apt-get update |  | ||||||
| RUN apt-get install -y \ |  | ||||||
|       pkg-config \ |  | ||||||
|       libdrm-dev \ |  | ||||||
|       libpciaccess-dev \ |  | ||||||
|       libxrandr-dev \ |  | ||||||
|       libxdamage-dev \ |  | ||||||
|       libxfixes-dev \ |  | ||||||
|       libxshmfence-dev \ |  | ||||||
|       libxxf86vm-dev \ |  | ||||||
|       libvdpau-dev \ |  | ||||||
|       libva-dev \ |  | ||||||
|       llvm-3.9-dev \ |  | ||||||
|       libclang-3.9-dev \ |  | ||||||
|       llvm-4.0-dev \ |  | ||||||
|       libclang-4.0-dev \ |  | ||||||
|       llvm-5.0-dev \ |  | ||||||
|       llvm-6.0-dev \ |  | ||||||
|       llvm-7-dev \ |  | ||||||
|       clang-5.0 \ |  | ||||||
|       libclang-5.0-dev \ |  | ||||||
|       clang-6.0 \ |  | ||||||
|       libclang-6.0-dev \ |  | ||||||
|       clang-7 \ |  | ||||||
|       libclang-7-dev \ |  | ||||||
|       libclc-dev \ |  | ||||||
|       libxvmc-dev \ |  | ||||||
|       libomxil-bellagio-dev \ |  | ||||||
|       xz-utils \ |  | ||||||
|       libexpat1-dev \ |  | ||||||
|       libx11-xcb-dev \ |  | ||||||
|       x11proto-xf86vidmode-dev \ |  | ||||||
|       libelf-dev \ |  | ||||||
|       libunwind8-dev \ |  | ||||||
|       libglvnd-dev \ |  | ||||||
|       python2.7 \ |  | ||||||
|       python-pip \ |  | ||||||
|       python-setuptools \ |  | ||||||
|       python3.5 \ |  | ||||||
|       python3-pip \ |  | ||||||
|       python3-setuptools |  | ||||||
|  |  | ||||||
| RUN apt-get install -y \ |  | ||||||
|       libxcb-randr0 |  | ||||||
|  |  | ||||||
| # autotools build deps |  | ||||||
| RUN apt-get install -y \ |  | ||||||
|       autoconf \ |  | ||||||
|       automake \ |  | ||||||
|       xutils-dev \ |  | ||||||
|       libtool \ |  | ||||||
|       bison \ |  | ||||||
|       flex \ |  | ||||||
|       gettext \ |  | ||||||
|       make |  | ||||||
|  |  | ||||||
| # dependencies where we want a specific version |  | ||||||
| ENV XORG_RELEASES              https://xorg.freedesktop.org/releases/individual |  | ||||||
| ENV XCB_RELEASES               https://xcb.freedesktop.org/dist |  | ||||||
| ENV WAYLAND_RELEASES           https://wayland.freedesktop.org/releases |  | ||||||
|  |  | ||||||
| ENV XORGMACROS_VERSION         util-macros-1.19.0 |  | ||||||
| ENV GLPROTO_VERSION            glproto-1.4.17 |  | ||||||
| ENV DRI2PROTO_VERSION          dri2proto-2.8 |  | ||||||
| ENV LIBPCIACCESS_VERSION       libpciaccess-0.13.4 |  | ||||||
| ENV LIBDRM_VERSION             libdrm-2.4.97 |  | ||||||
| ENV XCBPROTO_VERSION           xcb-proto-1.13 |  | ||||||
| ENV RANDRPROTO_VERSION         randrproto-1.3.0 |  | ||||||
| ENV LIBXRANDR_VERSION          libXrandr-1.3.0 |  | ||||||
| ENV LIBXCB_VERSION             libxcb-1.13 |  | ||||||
| ENV LIBXSHMFENCE_VERSION       libxshmfence-1.3 |  | ||||||
| ENV LIBVDPAU_VERSION           libvdpau-1.1 |  | ||||||
| ENV LIBVA_VERSION              libva-1.7.0 |  | ||||||
| ENV LIBWAYLAND_VERSION         wayland-1.15.0 |  | ||||||
| ENV WAYLAND_PROTOCOLS_VERSION  wayland-protocols-1.8 |  | ||||||
|  |  | ||||||
| RUN wget $XORG_RELEASES/util/$XORGMACROS_VERSION.tar.bz2 |  | ||||||
| RUN tar -xvf $XORGMACROS_VERSION.tar.bz2 && rm $XORGMACROS_VERSION.tar.bz2 |  | ||||||
| RUN (cd $XORGMACROS_VERSION && ./configure && make install) && rm -rf $XORGMACROS_VERSION |  | ||||||
|  |  | ||||||
| RUN wget $XORG_RELEASES/proto/$GLPROTO_VERSION.tar.bz2 |  | ||||||
| RUN tar -xvf $GLPROTO_VERSION.tar.bz2 && rm $GLPROTO_VERSION.tar.bz2 |  | ||||||
| RUN (cd $GLPROTO_VERSION && ./configure && make install) && rm -rf $GLPROTO_VERSION |  | ||||||
|  |  | ||||||
| RUN wget $XORG_RELEASES/proto/$DRI2PROTO_VERSION.tar.bz2 |  | ||||||
| RUN tar -xvf $DRI2PROTO_VERSION.tar.bz2 && rm $DRI2PROTO_VERSION.tar.bz2 |  | ||||||
| RUN (cd $DRI2PROTO_VERSION && ./configure && make install) && rm -rf $DRI2PROTO_VERSION |  | ||||||
|  |  | ||||||
| RUN wget $XCB_RELEASES/$XCBPROTO_VERSION.tar.bz2 |  | ||||||
| RUN tar -xvf $XCBPROTO_VERSION.tar.bz2 && rm $XCBPROTO_VERSION.tar.bz2 |  | ||||||
| RUN (cd $XCBPROTO_VERSION && ./configure && make install) && rm -rf $XCBPROTO_VERSION |  | ||||||
|  |  | ||||||
| RUN wget $XCB_RELEASES/$LIBXCB_VERSION.tar.bz2 |  | ||||||
| RUN tar -xvf $LIBXCB_VERSION.tar.bz2 && rm $LIBXCB_VERSION.tar.bz2 |  | ||||||
| RUN (cd $LIBXCB_VERSION && ./configure && make install) && rm -rf $LIBXCB_VERSION |  | ||||||
|  |  | ||||||
| RUN wget $XORG_RELEASES/lib/$LIBPCIACCESS_VERSION.tar.bz2 |  | ||||||
| RUN tar -xvf $LIBPCIACCESS_VERSION.tar.bz2 && rm $LIBPCIACCESS_VERSION.tar.bz2 |  | ||||||
| RUN (cd $LIBPCIACCESS_VERSION && ./configure && make install) && rm -rf $LIBPCIACCESS_VERSION |  | ||||||
|  |  | ||||||
| RUN wget https://dri.freedesktop.org/libdrm/$LIBDRM_VERSION.tar.bz2 |  | ||||||
| RUN tar -xvf $LIBDRM_VERSION.tar.bz2 && rm $LIBDRM_VERSION.tar.bz2 |  | ||||||
| RUN (cd $LIBDRM_VERSION && ./configure --enable-vc4 --enable-freedreno --enable-etnaviv-experimental-api && make install) && rm -rf $LIBDRM_VERSION |  | ||||||
|  |  | ||||||
| RUN wget $XORG_RELEASES/proto/$RANDRPROTO_VERSION.tar.bz2 |  | ||||||
| RUN tar -xvf $RANDRPROTO_VERSION.tar.bz2 && rm $RANDRPROTO_VERSION.tar.bz2 |  | ||||||
| RUN (cd $RANDRPROTO_VERSION && ./configure && make install) && rm -rf $RANDRPROTO_VERSION |  | ||||||
|  |  | ||||||
| RUN wget $XORG_RELEASES/lib/$LIBXRANDR_VERSION.tar.bz2 |  | ||||||
| RUN tar -xvf $LIBXRANDR_VERSION.tar.bz2 && rm $LIBXRANDR_VERSION.tar.bz2 |  | ||||||
| RUN (cd $LIBXRANDR_VERSION && ./configure && make install) && rm -rf $LIBXRANDR_VERSION |  | ||||||
|  |  | ||||||
| RUN wget $XORG_RELEASES/lib/$LIBXSHMFENCE_VERSION.tar.bz2 |  | ||||||
| RUN tar -xvf $LIBXSHMFENCE_VERSION.tar.bz2 && rm $LIBXSHMFENCE_VERSION.tar.bz2 |  | ||||||
| RUN (cd $LIBXSHMFENCE_VERSION && ./configure && make install) && rm -rf $LIBXSHMFENCE_VERSION |  | ||||||
|  |  | ||||||
| RUN wget https://people.freedesktop.org/~aplattner/vdpau/$LIBVDPAU_VERSION.tar.bz2 |  | ||||||
| RUN tar -xvf $LIBVDPAU_VERSION.tar.bz2 && rm $LIBVDPAU_VERSION.tar.bz2 |  | ||||||
| RUN (cd $LIBVDPAU_VERSION && ./configure && make install) && rm -rf $LIBVDPAU_VERSION |  | ||||||
|  |  | ||||||
| RUN wget https://www.freedesktop.org/software/vaapi/releases/libva/$LIBVA_VERSION.tar.bz2 |  | ||||||
| RUN tar -xvf $LIBVA_VERSION.tar.bz2 && rm $LIBVA_VERSION.tar.bz2 |  | ||||||
| RUN (cd $LIBVA_VERSION && ./configure --disable-wayland --disable-dummy-driver && make install) && rm -rf $LIBVA_VERSION |  | ||||||
|  |  | ||||||
| RUN wget $WAYLAND_RELEASES/$LIBWAYLAND_VERSION.tar.xz |  | ||||||
| RUN tar -xvf $LIBWAYLAND_VERSION.tar.xz && rm $LIBWAYLAND_VERSION.tar.xz |  | ||||||
| RUN (cd $LIBWAYLAND_VERSION && ./configure --enable-libraries --without-host-scanner --disable-documentation --disable-dtd-validation && make install) && rm -rf $LIBWAYLAND_VERSION |  | ||||||
|  |  | ||||||
| RUN wget $WAYLAND_RELEASES/$WAYLAND_PROTOCOLS_VERSION.tar.xz |  | ||||||
| RUN tar -xvf $WAYLAND_PROTOCOLS_VERSION.tar.xz && rm $WAYLAND_PROTOCOLS_VERSION.tar.xz |  | ||||||
| RUN (cd $WAYLAND_PROTOCOLS_VERSION && ./configure && make install) && rm -rf $WAYLAND_PROTOCOLS_VERSION |  | ||||||
|  |  | ||||||
|  |  | ||||||
| RUN apt-get install -y unzip |  | ||||||
|  |  | ||||||
| # Meson requires ninja >= 1.6, but xenial has 1.3.x |  | ||||||
| RUN wget https://github.com/ninja-build/ninja/releases/download/v1.6.0/ninja-linux.zip |  | ||||||
| RUN unzip ninja-linux.zip && rm ninja-linux.zip |  | ||||||
| RUN mv ninja /usr/bin/ |  | ||||||
|  |  | ||||||
|  |  | ||||||
| RUN pip3 install 'meson>=0.49' |  | ||||||
| RUN pip2 install 'scons>=2.4' |  | ||||||
|  |  | ||||||
| RUN pip2 install mako |  | ||||||
| RUN pip3 install mako |  | ||||||
|  |  | ||||||
| # Use ccache to speed up builds |  | ||||||
| RUN apt-get install -y ccache |  | ||||||
|  |  | ||||||
| # Cleanup workdir |  | ||||||
| WORKDIR / |  | ||||||
							
								
								
									
										474
									
								
								.mailmap
									
									
									
									
									
								
							
							
						
						
									
										474
									
								
								.mailmap
									
									
									
									
									
								
							| @@ -1,474 +0,0 @@ | |||||||
| Aapo Tahkola <aet@rasterburn.org> <aapo@aapo-desktop.(none)> |  | ||||||
|  |  | ||||||
| Adam Jackson <ajax@redhat.com> <ajax@benzedrine.nwnk.net> |  | ||||||
| Adam Jackson <ajax@redhat.com> <ajax@freedesktop.org> |  | ||||||
|  |  | ||||||
| Adrian Marius Negreanu <adrian.m.negreanu@intel.com> Adrian Negreanu <adrian.m.negreanu@intel.com> |  | ||||||
| Adrian Marius Negreanu <adrian.m.negreanu@intel.com> Negreanu Marius Adrian <adrian.m.negreanu@intel.com> |  | ||||||
|  |  | ||||||
| Dave Airlie <airlied@redhat.com> <airliedfreedesktop.org> |  | ||||||
| Dave Airlie <airlied@redhat.com> airlied <airlied@unused-12-215.bne.redhat.com> |  | ||||||
| Dave Airlie <airlied@redhat.com> <airlied@dhcp-1-203.bne.redhat.com> |  | ||||||
| Dave Airlie <airlied@redhat.com> <airlied@gmail.com> |  | ||||||
| Dave Airlie <airlied@redhat.com> <airlied@itt42.(none)> |  | ||||||
| Dave Airlie <airlied@redhat.com> <airlied@linux.ie> |  | ||||||
| Dave Airlie <airlied@redhat.com> <airlied@nx6125b.(none)> |  | ||||||
| Dave Airlie <airlied@redhat.com> <airlied@panoply-rh.(none)> |  | ||||||
| Dave Airlie <airlied@redhat.com> <airlied@ppcg5.localdomain> |  | ||||||
|  |  | ||||||
| Alan Coopersmith <alan.coopersmith@oracle.com> <alan.coopersmith@sun.com> |  | ||||||
|  |  | ||||||
| Alan Hourihane <alanh@vmware.com> <alanh@tungstengraphics.com> |  | ||||||
| Alan Hourihane <alanh@vmware.com> <alanh@fairlite.demon.co.uk> |  | ||||||
| Alan Hourihane <alanh@vmware.com> <alanh@jetpack.(none)> |  | ||||||
|  |  | ||||||
| Alexander Monakov <amonakov@gmail.com> <amonakov@ispras.ru> |  | ||||||
|  |  | ||||||
| Alexander von Gluck IV <kallisti5@unixzen.com> Alexander von Gluck <kallisti5@unixzen.com> |  | ||||||
|  |  | ||||||
| Alex Corscadden <alexc@vmware.com> <alexc@alexc-dev1.prom.eng.vmware.com> |  | ||||||
| Alex Corscadden <alexc@vmware.com> <alexc@alexc-dev1.vmware.com> |  | ||||||
|  |  | ||||||
| Alex Deucher <alexdeucher@gmail.com> <alexander.deucher@amd.com> |  | ||||||
| Alex Deucher <alexdeucher@gmail.com> <agd5f@yahoo.com> |  | ||||||
| Alex Deucher <alexdeucher@gmail.com> <alex@botch2.com> |  | ||||||
| Alex Deucher <alexdeucher@gmail.com> <alex@botch2.(none)> |  | ||||||
| Alex Deucher <alexdeucher@gmail.com> <alex@cube.(none)> |  | ||||||
| Alex Deucher <alexdeucher@gmail.com> <alex@samba.(none)> |  | ||||||
|  |  | ||||||
| Andreas Fänger <a.faenger@e-sign.com> <a.faenger@e-sign.com> |  | ||||||
|  |  | ||||||
| Andreas Hartmetz <ahartmetz@gmail.com> <andreas.hartmetz@kdab.com> |  | ||||||
|  |  | ||||||
| Andre Heider <a.heider@gmail.com> |  | ||||||
| Andreas Heider <andreas@heider.io> |  | ||||||
|  |  | ||||||
| Andreas Pokorny <andreas.pokorny@canonical.com> <andreas.pokorny@elektrobit.com> |  | ||||||
|  |  | ||||||
| Andrew Randrianasulu <randrianasulu@gmail.com> <randrik_a@yahoo.com> |  | ||||||
| Andrew Randrianasulu <randrianasulu@gmail.com> <randrik@mail.ru> |  | ||||||
|  |  | ||||||
| Arthur Huillet <arthur.huillet@free.fr> Arthur HUILLET <arthur.huillet@free.fr> |  | ||||||
|  |  | ||||||
| Benjamin Franzke <benjaminfranzke@googlemail.com> ben <benjaminfranzke@googlemail.com> |  | ||||||
|  |  | ||||||
| Ben Skeggs <bskeggs@redhat.com> <darktama@beleth.(none)> |  | ||||||
| Ben Skeggs <bskeggs@redhat.com> <darktama@iinet.net.au> |  | ||||||
| Ben Skeggs <bskeggs@redhat.com> <darktama@nisroch.keine.ath.cx> |  | ||||||
| Ben Skeggs <bskeggs@redhat.com> <skeggsb-at-gmail.com> |  | ||||||
| Ben Skeggs <bskeggs@redhat.com> <skeggsb@gmail.com> |  | ||||||
| Ben Skeggs <bskeggs@redhat.com> <skeggsb@localhost.localdomain> |  | ||||||
| Ben Skeggs <bskeggs@redhat.com> <skeggsb@nisroch.keine.ath.cx> |  | ||||||
|  |  | ||||||
| Ben Widawsky <benjamin.widawsky@intel.com> Ben Widawsky <ben@bwidawsk.net> |  | ||||||
|  |  | ||||||
| Blair Sadewitz <blair.sadewitz@gmail.com> Blair Sadewitz <blair.sadewitz.gmail.com> |  | ||||||
|  |  | ||||||
| Boris Peterbarg <reist@users.sourceforge.net> reist <reist> |  | ||||||
|  |  | ||||||
| Brian Paul <brianp@vmware.com> Brian <brian.paul@tungstengraphics.com> |  | ||||||
| Brian Paul <brianp@vmware.com> <brian.paul@tungstengraphics.com> |  | ||||||
| Brian Paul <brianp@vmware.com> <brian.e.paul@gmail.com> |  | ||||||
| Brian Paul <brianp@vmware.com> <brianp@kemper.freedesktop.org> |  | ||||||
| Brian Paul <brianp@vmware.com> brian <brian@cvp965.(none)> |  | ||||||
| Brian Paul <brianp@vmware.com> Brian <brian@i915.localnet.net> |  | ||||||
| Brian Paul <brianp@vmware.com> Brian <brian@nostromo.localnet.net> |  | ||||||
| Brian Paul <brianp@vmware.com> Brian <brian@poulsbo.localnet.net> |  | ||||||
| Brian Paul <brianp@vmware.com> Brian <brian@ps3.localnet.net> |  | ||||||
| Brian Paul <brianp@vmware.com> Brian <brianp@vmware.com> |  | ||||||
| Brian Paul <brianp@vmware.com> Brian <brian@yutani.localnet.net> |  | ||||||
| Brian Paul <brianp@vmware.com> root <brian.paul@tungstengraphics.com> |  | ||||||
| Brian Paul <brianp@vmware.com> root <root@i915.localnet.net> |  | ||||||
| Brian Paul <brianp@vmware.com> root <root@nostromo.localnet.net> |  | ||||||
| Brian Paul <brianp@vmware.com> root <root@i965.localnet.net> |  | ||||||
|  |  | ||||||
| Bruce Merry <bmerry@users.sourceforge.net> <bmerry@gmail.com> |  | ||||||
|  |  | ||||||
| Carl-Philip Hänsch <cphaensch@googlemail.com> Carl-Philip Haensch <s3734770@mail.zih.tu-dresden.de> |  | ||||||
| Carl-Philip Hänsch <cphaensch@googlemail.com> Carl-Philip Haensch <carli@carli-laptop.(none)> |  | ||||||
| Carl-Philip Hänsch <cphaensch@googlemail.com> Carl-Philip Haensch <Carl-Philip.Haensch@mailbox.tu-dresden.de> |  | ||||||
|  |  | ||||||
| Chad Versace <chadversary@chromium.org> <chad@kiwitree.net> |  | ||||||
| Chad Versace <chadversary@chromium.org> <chad@chad-versace.us> |  | ||||||
| Chad Versace <chadversary@chromium.org> <Chad Versace chad@chad-versace.us> |  | ||||||
| Chad Versace <chadversary@chromium.org> <chad.versace@intel.com> |  | ||||||
| Chad Versace <chadversary@chromium.org> <chad.versace@linux.intel.com> |  | ||||||
|  |  | ||||||
| Chia-I Wu <olvaffe@gmail.com> <olv@lunarg.com> |  | ||||||
| Chia-I Wu <olvaffe@gmail.com> Chia-Wu <olvaffe@gmail.com> |  | ||||||
|  |  | ||||||
| Chih-Wei Huang <cwhuang@linux.org.tw> Chih-Wei Huang <cwhuang@android-x86.org> |  | ||||||
|  |  | ||||||
| Christian König <christian.koenig@amd.com> Christian Koenig <christian.koenig@amd.com> |  | ||||||
| Christian König <christian.koenig@amd.com> Christian König <christian.koenig at amd.com> |  | ||||||
| Christian König <christian.koenig@amd.com> Christian König <deathsimple@vodafone.de> |  | ||||||
|  |  | ||||||
| Christoph Brill <egore911@egore911.de> Christoph Bill <egore@gmx.de> |  | ||||||
| Christoph Brill <egore911@egore911.de> <egore@gmx.de> |  | ||||||
|  |  | ||||||
| Christoph Bumiller <christoph.bumiller@speed.at> <e0425955@student.tuwien.ac.at> |  | ||||||
|  |  | ||||||
| Christopher James Halse Rogers <christopher.halse.rogers@canonical.com> Christopher James Halse Rogers <raof@ubuntu.com> |  | ||||||
|  |  | ||||||
| Claudio Ciccani <klan@directfb.org> <klan@users.sf.net> |  | ||||||
| Claudio Ciccani <klan@directfb.org> <klan@users.sourceforge.net> |  | ||||||
|  |  | ||||||
| Connor Abbott <cwabbott0@gmail.com> <connor.w.abbott@intel.com> |  | ||||||
| Connor Abbott <cwabbott0@gmail.com> <connor.abbott@intel.com> |  | ||||||
|  |  | ||||||
| Corbin Simpson <MostAwesomeDude@gmail.com> <mostawesomed...@gmail.com> |  | ||||||
| Corbin Simpson <MostAwesomeDude@gmail.com> <mostawesomedude@gmail.com> |  | ||||||
|  |  | ||||||
| Courtney Goeltzenleuchter <courtney@lunarg.com> <courtney@LunarG.com> |  | ||||||
|  |  | ||||||
| Daniel Skinner <sio@users.sourceforge.net> sio <sio> |  | ||||||
|  |  | ||||||
| Daniel Stone <daniels@collabora.com> <daniel@fooishbar.org> |  | ||||||
|  |  | ||||||
| David Miller <davem@davemloft.net> David S. Miller <davem@davemloft.net> |  | ||||||
| David Miller <davem@davemloft.net> Dave Miller <davem@davemloft.net> |  | ||||||
| David Miller <davem@davemloft.net> davem69 <davem69> |  | ||||||
|  |  | ||||||
| David Heidelberger <david.heidelberger@ixit.cz> David Heidelberg <david@ixit.cz> |  | ||||||
| David Heidelberger <david.heidelberger@ixit.cz> <d.okias@gmail.com> |  | ||||||
|  |  | ||||||
| David Reveman <reveman@chromium.org> <c99drn@cs.umu.se> |  | ||||||
|  |  | ||||||
| Dieter Nützel <Dieter@nuetzel-hh.de> Dieter Nützel <dieter@nuetzel-hh.de> |  | ||||||
|  |  | ||||||
| Dmitry Cherkassov <dcherkassov@gmail.com> Dmitry Cherkasov <dcherkassov@gmail.com> |  | ||||||
|  |  | ||||||
| Dylan Baker <dylanx.c.baker@intel.com> <baker.dylan.c@gmail.com> |  | ||||||
|  |  | ||||||
| Edward O'Callaghan <funfunctor@folklore1984.net> <eocallaghan@alterapraxis.com> |  | ||||||
|  |  | ||||||
| Emeric Grange <emeric.grange@gmail.com> Emeric <emeric.grange@gmail.com> |  | ||||||
|  |  | ||||||
| Emil Velikov <emil.l.velikov@gmail.com> <emil.velikov@collabora.com> |  | ||||||
| Emil Velikov <emil.l.velikov@gmail.com> <emil.veliko@collabora.com> |  | ||||||
| Emil Velikov <emil.l.velikov@gmail.com> <emil.velikov@collabora.co.uk> |  | ||||||
| Emil Velikov <emil.l.velikov@gmail.com> <emil.veliikov@collabora.com> |  | ||||||
| Emil Velikov <emil.l.velikov@gmail.com> <emil.velikov@gmail.com> |  | ||||||
| Emil Velikov <emil.l.velikov@gmail.com> <emmil.velikov@collabora.com> |  | ||||||
|  |  | ||||||
| Eric Anholt <eric@anholt.net> Eric Anholt <anholt@FreeBSD.org> |  | ||||||
|  |  | ||||||
| Eric Engestrom <eric@engestrom.ch> <eric.engestrom@imgtec.com> |  | ||||||
|  |  | ||||||
| Eugeni Dodonov <eugeni.dodonov@intel.com> <eugeni@mandriva.com> |  | ||||||
|  |  | ||||||
| Fabian Bieler <der.fabe@gmx.net> <fabianbieler@fastmail.fm> |  | ||||||
| Fabian Bieler <der.fabe@gmx.net> <<der.fabe@gmx.net>> |  | ||||||
|  |  | ||||||
| Feng, Haitao <haitao.feng@intel.com> Haitao Feng <haitao.feng@intel.com> |  | ||||||
|  |  | ||||||
| Frank Henigman <fjhenigman@google.com> <fjhenigman@chromium.org> |  | ||||||
|  |  | ||||||
| George Sapountzis <gsapountzis@gmail.com> George Sapountzis <gsap7@yahoo.gr> |  | ||||||
|  |  | ||||||
| Gwenole Beauchesne <gwenole.beauchesne@intel.com> <gb.devel@gmail.com> |  | ||||||
|  |  | ||||||
| Hamish Marson <hmarson@users.sourceforge.net> hmarson <hmarson> |  | ||||||
|  |  | ||||||
| Hans de Goede <hdegoede@redhat.com> Hans de Goede <j.w..r..degoede@hhs.nl> |  | ||||||
|  |  | ||||||
| Homer Hsing <dongsheng.xing@intel.com> <homer.hsing@gmail.com> |  | ||||||
|  |  | ||||||
| Hui Qi Tay <hqtay@vmware.com> <tayhuiqithq@gmail.com> |  | ||||||
|  |  | ||||||
| Ian Romanick <ian.d.romanick@intel.com> <idr@freedesktop.org> |  | ||||||
| Ian Romanick <ian.d.romanick@intel.com> <idr@us.ibm.com> |  | ||||||
|  |  | ||||||
| Jakob Bornecrantz <wallbraker@gmail.com> <jakob@vmware.com> |  | ||||||
| Jakob Bornecrantz <wallbraker@gmail.com> <jakob@aurora.(none)> |  | ||||||
| Jakob Bornecrantz <wallbraker@gmail.com> <jakob@aurora.walkyrie.se> |  | ||||||
| Jakob Bornecrantz <wallbraker@gmail.com> <jakob@tungstengraphics.com> |  | ||||||
| Jakob Bornecrantz <wallbraker@gmail.com> <wallbraker 'at' gmail 'dot' com> |  | ||||||
|  |  | ||||||
| Jakub Bogusz <qboosh@pld-linux.org> <gboosh@pld-linux.org> |  | ||||||
|  |  | ||||||
| James Legg <jlegg@feralinteractive.com> <lankyleggy@gmail.com> |  | ||||||
|  |  | ||||||
| Jan Vesely <jano.vesely@gmail.com> Jan Vesely <jan.vesely@rutgers.edu> |  | ||||||
|  |  | ||||||
| Jason Ekstrand <jason@jlekstrand.net> <jason.ekstrand@intel.com> |  | ||||||
|  |  | ||||||
| Jeremy Huddleston <jeremyhu@apple.com> <jeremyhu@freedesktop.org> |  | ||||||
| Jeremy Huddleston <jeremyhu@apple.com> <jeremy@tifa.local> |  | ||||||
| Jeremy Huddleston <jeremyhu@apple.com> <jeremy@vincent.local> |  | ||||||
| Jeremy Huddleston <jeremyhu@apple.com> <jeremy@yuffie.local> |  | ||||||
| Jeremy Huddleston <jeremyhu@apple.com> Jeremy Huddleston Sequoia <jeremyhu@apple.com> |  | ||||||
|  |  | ||||||
| Jeremy Kolb <jkolb@freedesktop.org> <jkolb@brandeis.edu> |  | ||||||
|  |  | ||||||
| Jerome Glisse <jglisse@redhat.com> <glisse@freedesktop.org> |  | ||||||
| Jerome Glisse <jglisse@redhat.com> <glisse@kemper.freedesktop.org> |  | ||||||
| Jerome Glisse <jglisse@redhat.com> John Doe <glisse@barney.(none)> |  | ||||||
| Jerome Glisse <jglisse@redhat.com> John Doe <glisse@localhost.localdomain> |  | ||||||
|  |  | ||||||
| Jesse Barnes <jesse.barnes@intel.com> <jbarnes@hobbes.lan> |  | ||||||
| Jesse Barnes <jesse.barnes@intel.com> <jbarnes@hobbes.(none)> |  | ||||||
| Jesse Barnes <jesse.barnes@intel.com> <jbarnes@jbarnes-desktop.localdomain> |  | ||||||
| Jesse Barnes <jesse.barnes@intel.com> <jbarnes@jbarnes-t61.(none)> |  | ||||||
| Jesse Barnes <jesse.barnes@intel.com> <jbarnes@virtuousgeek.org> |  | ||||||
|  |  | ||||||
| Joakim Sindholt <bacn@zhasha.com> <opensource@zhasha.com> |  | ||||||
| Joakim Sindholt <bacn@zhasha.com> <zhasha@gallium-dev.(none)> |  | ||||||
|  |  | ||||||
| Jochen Gerlach <jtg@users.sourceforge.net> jtg <jtg> |  | ||||||
|  |  | ||||||
| Joel Bosveld <joel.bosveld@gmail.com> <Joel.Bosveld@gmail.com> |  | ||||||
|  |  | ||||||
| Jonathan Adamczewski <jadamcze@utas.edu.au> <jadamcze@utas.edu.a> |  | ||||||
|  |  | ||||||
| Jon Turney <jon.turney@dronecode.org.uk> Jon TURNEY <jon.turney@dronecode.org.uk> |  | ||||||
|  |  | ||||||
| José Fonseca <jfonseca@vmware.com> Jose Fonseca <jfonseca@vmware.com> |  | ||||||
| José Fonseca <jfonseca@vmware.com> Jose Fonseca <jrfonseca@tungstengraphics.com> |  | ||||||
| José Fonseca <jfonseca@vmware.com> <jfonseca@pegasus.(none)> |  | ||||||
| José Fonseca <jfonseca@vmware.com> <jfonseca@titan.(none)> |  | ||||||
| José Fonseca <jfonseca@vmware.com> <jose.r.fonseca@gmail.com> |  | ||||||
| José Fonseca <jfonseca@vmware.com> <jrfonseca@tungstengraphics.com> |  | ||||||
| José Fonseca <jfonseca@vmware.com> <j_r_fonseca@yahoo.co.uk> |  | ||||||
|  |  | ||||||
| Jouk Jansen <joukj@hrem.nano.tudelft.nl> Jouk Jansen <jouk@hrem.nano.tudelft.nl> |  | ||||||
| Jouk Jansen <joukj@hrem.nano.tudelft.nl> Jouk Jansen <joukj@hrem.stm.tudelft.nl> |  | ||||||
| Jouk Jansen <joukj@hrem.nano.tudelft.nl> joukj <joukj@tarantella.(none)> |  | ||||||
| Jouk Jansen <joukj@hrem.nano.tudelft.nl> Jouk <joukj@tarantella.nano.tudelft.nl> |  | ||||||
| Jouk Jansen <joukj@hrem.nano.tudelft.nl> Jouk <joukj@tarantella.(none)> |  | ||||||
| Jouk Jansen <joukj@hrem.nano.tudelft.nl> J.Jansen <joukj@tarantella.nano.tudelft.nl> |  | ||||||
|  |  | ||||||
| Juan Zhao <juan.j.zhao@intel.com> <juan.j.zhao@linux.intel.com> |  | ||||||
|  |  | ||||||
| Julien Cristau <jcristau@debian.org> <julien.cristau@logilab.fr> |  | ||||||
|  |  | ||||||
| Julien Isorce <j.isorce@samsung.com> <julien.isorce@gmail.com> |  | ||||||
|  |  | ||||||
| Kalyan Kondapally <kalyan.kondapally@intel.com> <kondapallykalyancontribute@gmail.com> |  | ||||||
|  |  | ||||||
| Karl Schultz <karl.w.schultz@gmail.com> Karl Schultze <k.w.schultz@comcast.net> |  | ||||||
| Karl Schultz <karl.w.schultz@gmail.com> unknown <kwschult@.na.qualcomm.com> |  | ||||||
| Karl Schultz <karl.w.schultz@gmail.com> <k.w.schultz@comcast.net> |  | ||||||
| Karl Schultz <karl.w.schultz@gmail.com> <Karl.W.Schultz@gmail.com> |  | ||||||
| Karl Schultz <karl.w.schultz@gmail.com> <kschultz@freedesktop.org> |  | ||||||
|  |  | ||||||
| Keith Harrison <sio2@users.sourceforge.net> sio2 <sio2> |  | ||||||
|  |  | ||||||
| Keith Packard <keithp@keithp.com> <keithp@koto.keithp.com> |  | ||||||
| Keith Packard <keithp@keithp.com> <keithp@neko.keithp.com> |  | ||||||
|  |  | ||||||
| Keith Whitwell <keithw@vmware.com> <keith@tungstengraphics.com> |  | ||||||
| Keith Whitwell <keithw@vmware.com> keithw <keithw@keithw-laptop.(none)> |  | ||||||
|  |  | ||||||
| Kristian Høgsberg <krh@bitplanet.net> <krh@redhat.com> |  | ||||||
| Kristian Høgsberg <krh@bitplanet.net> <krh@hinata.boston.redhat.com> |  | ||||||
| Kristian Høgsberg <krh@bitplanet.net> <krh@sasori.boston.redhat.com> |  | ||||||
| Kristian Høgsberg <krh@bitplanet.net> <krh@temari.boston.redhat.com> |  | ||||||
| Kristian Høgsberg <krh@bitplanet.net> <kristian.h.kristensen@intel.com> |  | ||||||
| Kristian Høgsberg <krh@bitplanet.net> <hoegsberg@chromium.org> |  | ||||||
| Kristian Høgsberg <krh@bitplanet.net> <hoegsberg@google.com> |  | ||||||
| Kristian Høgsberg <krh@bitplanet.net> <hoegsberg@gmail.com> |  | ||||||
|  |  | ||||||
| Krzesimir Nowak <qdlacz@gmail.com> <krzesimir@kinvolk.io> |  | ||||||
|  |  | ||||||
| Li Peng <peng.li@intel.com> <peng.li@linux.intel.com> |  | ||||||
|  |  | ||||||
| Lucas Stach <dev@lynxeye.de> <l.stach@pengutronix.de> |  | ||||||
|  |  | ||||||
| Maarten Lankhorst <maarten.lankhorst@ubuntu.com> <dev@mblankhorst.nl> |  | ||||||
| Maarten Lankhorst <maarten.lankhorst@ubuntu.com> <m.b.lankhorst@gmail.com> |  | ||||||
| Maarten Lankhorst <maarten.lankhorst@ubuntu.com> <maarten.lankhorst@canonical.com> |  | ||||||
|  |  | ||||||
| Maciej Cencora <m.cencora@gmail.com> <maciej@osiris.(none)> |  | ||||||
|  |  | ||||||
| Marc-André Lureau <marcandre.lureau@gmail.com> Marc-Andre Lureau <marcandre.lureau@gmail.com> |  | ||||||
|  |  | ||||||
| Marc Dietrich <marvin24@gmx.de> Marc <marvin24@gmx.de> |  | ||||||
| Marc Dietrich <marvin24@gmx.de> marvin24 <marvin24@gmx.de> |  | ||||||
|  |  | ||||||
| Marcin Ślusarz <marcin.slusarz@gmail.com> Marcin Slusarz <marcin.slusarz@gmail.com> |  | ||||||
|  |  | ||||||
| Marek Olšák <maraeo@gmail.com> <marek.olsak@amd.com> |  | ||||||
|  |  | ||||||
| Mario Kleiner <mario.kleiner.de@gmail.com> kleinerm <mario.kleiner@tuebingen.mpg.de> |  | ||||||
| Mario Kleiner <mario.kleiner.de@gmail.com> <mario.kleiner@tuebingen.mpg.de> |  | ||||||
|  |  | ||||||
| Mark Mueller <markkmueller@gmail.com> <MarkKMueller@gmail.com> |  | ||||||
|  |  | ||||||
| Marta Lofstedt <marta.lofstedt@intel.com> <marta.lofstedt@linux.intel.com> |  | ||||||
|  |  | ||||||
| Martin Peres <martin.peres@linux.intel.com> <martin.peres@labri.fr> |  | ||||||
|  |  | ||||||
| Mathias Fröhlich <mathias.froehlich@gmx.net> Mathias Froehlich <Mathias.Froehlich@gmx.net> |  | ||||||
| Mathias Fröhlich <mathias.froehlich@gmx.net> Mathias Froehlich <Mathias.Froehlich@web.de> |  | ||||||
| Mathias Fröhlich <mathias.froehlich@gmx.net> Mathias Frohlich <M.Froehlich@science-computing.de> |  | ||||||
| Mathias Fröhlich <mathias.froehlich@gmx.net> <frohlich8@users.sourceforge.net> |  | ||||||
| Mathias Fröhlich <mathias.froehlich@gmx.net> <Mathias.Froehlich@gmx.net> |  | ||||||
| Mathias Fröhlich <mathias.froehlich@gmx.net> <Mathias.Froehlich@web.de> |  | ||||||
| Mathias Fröhlich <mathias.froehlich@gmx.net> M.Froehlich@science-computing.de <M.Froehlich@science-computing.de> |  | ||||||
|  |  | ||||||
| Matthew W. S. Bell <matthew@bells23.org.uk> Matthew Bell <matthew@bells23.org.uk> |  | ||||||
|  |  | ||||||
| Maxence Le Doré <maxence.ledore@gmail.com> Maxence Le Dore <maxence.ledore@gmail.com> |  | ||||||
|  |  | ||||||
| Micah Fedke <micah.fedke@collabora.co.uk> <M.Fedke@Astronautics.com> |  | ||||||
|  |  | ||||||
| Michal Krol <michal@vmware.com> <michal@tungstengraphics.com> |  | ||||||
| Michal Krol <michal@vmware.com> Michal Krol <michal@ubuntu-vbox.(none)> |  | ||||||
| Michal Krol <michal@vmware.com> Michal Krol <mjkrol@gmail.org> |  | ||||||
| Michal Krol <michal@vmware.com> michal <michal@capacitor.(none)> |  | ||||||
| Michal Krol <michal@vmware.com> michal <michal@michal-laptop.(none)> |  | ||||||
| Michal Krol <michal@vmware.com> michal <michal@quad.(none)> |  | ||||||
| Michal Krol <michal@vmware.com> michal <michal@transistor.(none)> |  | ||||||
| Michal Krol <michal@vmware.com> Michal <michal@tungstengraphics.com> |  | ||||||
| Michal Krol <michal@vmware.com> michal <michal@wmvare.com> |  | ||||||
|  |  | ||||||
| Michel Dänzer <michel@daenzer.net> <michel.daenzer@amd.com> |  | ||||||
| Michel Dänzer <michel@daenzer.net> <daenzer@vmware.com> |  | ||||||
| Michel Dänzer <michel@daenzer.net> <michel@tungstengraphics.com> |  | ||||||
| Michel Dänzer <michel@daenzer.net> Michel Daenzer <michel.daenzer@amd.com> |  | ||||||
| Michel Dänzer <michel@daenzer.net> Michel Daenzer <daenzer@localhost.(none)> |  | ||||||
|  |  | ||||||
| Mike Kaplinskiy <mike.kaplinskiy@gmail.com> Mike Kaplinksiy <mike.kaplinskiy@gmail.com> |  | ||||||
| Mike Kaplinskiy <mike.kaplinskiy@gmail.com> <mike.kaplinskiy@gmai.com> |  | ||||||
|  |  | ||||||
| Mike Stroyan <mike@lunarg.com> <mike@LunarG.com> |  | ||||||
|  |  | ||||||
| Nian Wu <nian.wu@intel.com> <nian@graphics.(none)> |  | ||||||
| Nian Wu <nian.wu@intel.com> <nian@tinderbox.sh.intel.com> |  | ||||||
|  |  | ||||||
| Nick Bowler <nbowler@draconx.ca> |  | ||||||
|  |  | ||||||
| Nick Sarnie <commendsarnex@gmail.com> |  | ||||||
|  |  | ||||||
| Nicolai Hähnle <nicolai.haehnle@amd.com> <nhaehnle@gmail.com> |  | ||||||
| Nicolai Hähnle <nicolai.haehnle@amd.com> Nicolai Haehnle <nhaehnle@gmail.com> |  | ||||||
| Nicolai Hähnle <nicolai.haehnle@amd.com> Nicolai Haehnle <prefect_@gmx.net> |  | ||||||
| Nicolai Hähnle <nicolai.haehnle@amd.com> Nicolai Haehnle <prefect@upb.de> |  | ||||||
|  |  | ||||||
| Nigel Stewart <nigels@users.sourceforge.net> <nigels@sourceforge.net> |  | ||||||
| Nigel Stewart <nigels@users.sourceforge.net> <nstewart@nvidia.com> |  | ||||||
|  |  | ||||||
| nobled <nobled@dreamwidth.org> <nobled2@nobled2-karmic.(none)> |  | ||||||
|  |  | ||||||
| Oliver McFadden <oliver.mcfadden@linux.intel.com> <z3ro.geek@gmail.com> |  | ||||||
|  |  | ||||||
| Owain Ainsworth <zerooa@googlemail.com> Owain G. Ainsworth <oga@openbsd.org> |  | ||||||
|  |  | ||||||
| Owen W. Taylor <otaylor@fishsoup.net> Owen Taylor <otaylor@snell.localdomain> |  | ||||||
|  |  | ||||||
| Patrice Mandin <patmandin@gmail.com> <patrice@manoir.racoon.city> |  | ||||||
| Patrice Mandin <patmandin@gmail.com> <pmandin@caramail.com> |  | ||||||
| Patrice Mandin <patmandin@gmail.com> <pmandin@freedesktop.org> |  | ||||||
|  |  | ||||||
| Pauli Nieminen <pauli.nieminen@linux.intel.com> <suokkos@gmail.com> |  | ||||||
|  |  | ||||||
| Paulo Zanoni <paulo.r.zanoni@intel.com> Paulo Zanoni <pzanoni@mandriva.com> |  | ||||||
|  |  | ||||||
| Paul Seidler <sepek@exherbo.org> Paul Seidler <pl.seidler@googlemail.com> |  | ||||||
|  |  | ||||||
| Pekka Paalanen <pekka.paalanen@collabora.co.uk> <ppaalanen@gmail.com> |  | ||||||
| Pekka Paalanen <pekka.paalanen@collabora.co.uk> <pq@iki.fi> |  | ||||||
|  |  | ||||||
| Peter Hutterer <peter.hutterer@who-t.net> <peter@cs.unisa.edu.au> |  | ||||||
|  |  | ||||||
| Pierre-Eric Pelloux-Prayer <pelloux@gmail.com> pepp <pelloux@gmail.com> |  | ||||||
|  |  | ||||||
| Pierre Willenbrock <pierre@pirsoft.de> Pierre Willenbrok <pierre@pirsoft.de> |  | ||||||
|  |  | ||||||
| Quentin Glidic <sardemff7+git@sardemff7.net> <sardemff7@sardemff7.net> |  | ||||||
|  |  | ||||||
| RALOVICH, Kristóf <tade60@freemail.hu> <kristof.ralovich@gmail.com> |  | ||||||
|  |  | ||||||
| Richard Li <richardradeon@gmail.com> <RichardZ.Li@amd.com> |  | ||||||
| # The next ones are not 100% sure |  | ||||||
| Richard Li <richardradeon@gmail.com> richard <richard@richard-desktop3.(none)> |  | ||||||
| Richard Li <richardradeon@gmail.com> richard <richard@richard-desktop.(none)> |  | ||||||
| Richard Li <richardradeon@gmail.com> root <root@richard-desktop.(none)> |  | ||||||
|  |  | ||||||
| Richard Sandiford <rsandifo@linux.vnet.ibm.com> <r.sandiford@uk.ibm.com> |  | ||||||
|  |  | ||||||
| Rob Clark <robclark@freedesktop.org> <Rob Clark robdclark@freedesktop.org> |  | ||||||
| Rob Clark <robclark@freedesktop.org> <robdclark@gmail.com> |  | ||||||
|  |  | ||||||
| Robert Bragg <robert@sixbynine.org> <robert@linux.intel.com> |  | ||||||
|  |  | ||||||
| Robert Ellison <papillo@vmware.com> <papillo@i965-laptop.(none)> |  | ||||||
| Robert Ellison <papillo@vmware.com> <papillo@tungstengraphics.com> |  | ||||||
|  |  | ||||||
| Robert Hooker <sarvatt@ubuntu.com> <robert.hooker@canonical.com> |  | ||||||
|  |  | ||||||
| Roland Scheidegger <sroland@vmware.com> <rscheidegger@gmx.ch> |  | ||||||
| Roland Scheidegger <sroland@vmware.com> <sroland@tungstengraphics.com> |  | ||||||
|  |  | ||||||
| Roy Spliet <rspliet@eclipso.eu> <r.spliet@student.tudelft.nl> |  | ||||||
|  |  | ||||||
| Rune Petersen <rune@megahurts.dk> Rune Peterson <rune@megahurts.dk> |  | ||||||
|  |  | ||||||
| Ryan Houdek <sonicadvance1@gmail.com> <Sonicadvance1@gmail.com> |  | ||||||
|  |  | ||||||
| Sam Hocevar <sam@hocevar.net> Sam Hocevar <sam@zoy.org> |  | ||||||
|  |  | ||||||
| Samuel Iglesias Gonsálvez <siglesias@igalia.com> Samuel Iglesias Gonsalvez <siglesias@igalia.com> |  | ||||||
|  |  | ||||||
| Sean D'Epagnier <sean@depagnier.com> <geckosenator@freedesktop.org> |  | ||||||
|  |  | ||||||
| Serge Martin <edb+mesa@sigluy.net> Serge Martin (EdB) <edb+mesa@sigluy.net> |  | ||||||
| Serge Martin <edb+mesa@sigluy.net> EdB <edb+mesa@sigluy.net> |  | ||||||
|  |  | ||||||
| Sinclair Yeh <syeh@vmware.com> <sinclair.yeh@intel.com> |  | ||||||
|  |  | ||||||
| Stefan Brüns <stefan.bruens@rwth-aachen.de> <Stefan.Bruens@rwth-aachen.de> |  | ||||||
|  |  | ||||||
| Stéphane Marchesin <marcheu@chromium.org> Stephane Marchesin <marchesin@icps.u-strasbg.fr> |  | ||||||
| Stéphane Marchesin <marcheu@chromium.org> Stephane Marchesin <stephane.marchesin@gmail.com> |  | ||||||
|  |  | ||||||
| Sven M. Hallberg <pesco@users.sourceforge.net> pesco <pesco> |  | ||||||
|  |  | ||||||
| Tapani Pälli <tapani.palli@intel.com> <tapani.palli@gmail.com> |  | ||||||
| Tapani Pälli <tapani.palli@intel.com> Tapani <tapani.palli@intel.com> |  | ||||||
|  |  | ||||||
| Thierry Reding <treding@nvidia.com> <thierry@gilfi.de> |  | ||||||
| Thierry Reding <treding@nvidia.com> <thierry.reding@avionic-design.de> |  | ||||||
|  |  | ||||||
| Thierry Vignaud <thierry.vignaud@gmail.com> <tvignaud@mandriva.com> |  | ||||||
|  |  | ||||||
| Thomas Balling Sørensen <tball@io.dk> <tball@tball-laptop.(none)> |  | ||||||
|  |  | ||||||
| Thomas Hellstrom <thellstrom@vmware.com> Thomas <thellstrom@vmware.com> |  | ||||||
| Thomas Hellstrom <thellstrom@vmware.com> Thomas Hellstrom <thellstrom-at-vmware-dot-com> |  | ||||||
| Thomas Hellstrom <thellstrom@vmware.com> Thomas Hellstrom <thomas-at-tungstengraphics-dot-com> |  | ||||||
| Thomas Hellstrom <thellstrom@vmware.com> Thomas Hellstrom <thomas@tungstengraphics.com> |  | ||||||
| Thomas Hellstrom <thellstrom@vmware.com> Thomas Hellström <thomas@tungstengraphics.com> |  | ||||||
|  |  | ||||||
| Thomas Tanner <tanner@gmx.net> tanner <tanner> |  | ||||||
|  |  | ||||||
| Tilman Sauerbeck <tilman@code-monkey.de> <tilman@freedesktop.org> |  | ||||||
|  |  | ||||||
| Timothy Arceri <timothy.arceri@collabora.com> <t_arceri@yahoo.com.au> |  | ||||||
| Timothy Arceri <timothy.arceri@collabora.com> Timothy <t_arceri@yahoo.com.au> |  | ||||||
|  |  | ||||||
| Tom Fogal <tfogal@alumni.unh.edu> <tfogal@sci.utah.edu> |  | ||||||
|  |  | ||||||
| Tom Stellard <thomas.stellard@amd.com> <tstellar@gmail.com> |  | ||||||
| Tom Stellard <thomas.stellard@amd.com> Thomas Stellard <tom.stellard@amd.com> |  | ||||||
|  |  | ||||||
| Tormod Volden <debian.tormod@gmail.com> <lists.tormod@gmail.com> |  | ||||||
|  |  | ||||||
| Török Edwin <edwin+mesa@etorok.net> Török Edvin <edwintorok@gmail.com> |  | ||||||
| Török Edwin <edwin+mesa@etorok.net> <edwintorok@gmail.com> |  | ||||||
|  |  | ||||||
| Ville Syrjälä <ville.syrjala@linux.intel.com> Ville Syrjala <syrjala@freedesktop.org> |  | ||||||
| Ville Syrjälä <ville.syrjala@linux.intel.com> Ville Syrjala <syrjala@sci.fi> |  | ||||||
|  |  | ||||||
| Vincent Lejeune <vljn@ovi.com> <peluche.canard@gmail.com> |  | ||||||
|  |  | ||||||
| Vinson Lee <vlee@freedesktop.org> <vlee@vmware.com> |  | ||||||
|  |  | ||||||
| Zhenyu Wang <zhenyuw@linux.intel.com> Wang Zhenyu <zhenyu.z.wang@intel.com> |  | ||||||
|  |  | ||||||
| Zack Rusin <zackr@vmware.com> <zack@kde.org> |  | ||||||
| Zack Rusin <zackr@vmware.com> <zack@pixel.(none)> |  | ||||||
| Zack Rusin <zackr@vmware.com> <zack@tungstengraphics.com> |  | ||||||
|  |  | ||||||
| Zhang <zxpmyth@yahoo.com.cn> zhang <zxpmyth@yahoo.com.cn> |  | ||||||
							
								
								
									
										114
									
								
								.travis.yml
									
									
									
									
									
								
							
							
						
						
									
										114
									
								
								.travis.yml
									
									
									
									
									
								
							| @@ -1,114 +0,0 @@ | |||||||
| language: c |  | ||||||
|  |  | ||||||
| dist: xenial |  | ||||||
|  |  | ||||||
| cache: |  | ||||||
|   ccache: true |  | ||||||
|  |  | ||||||
| env: |  | ||||||
|   global: |  | ||||||
|     - PKG_CONFIG_PATH="$PKG_CONFIG_PATH" |  | ||||||
|  |  | ||||||
| matrix: |  | ||||||
|   include: |  | ||||||
|     - env: |  | ||||||
|         - LABEL="macOS make" |  | ||||||
|         - BUILD=make |  | ||||||
|         - MAKEFLAGS="-j4" |  | ||||||
|         - MAKE_CHECK_COMMAND="make check" |  | ||||||
|         - DRI_LOADERS="--with-platforms=x11 --disable-egl" |  | ||||||
|       os: osx |  | ||||||
|     - env: |  | ||||||
|         - LABEL="macOS meson" |  | ||||||
|         - BUILD=meson |  | ||||||
|         - UNWIND="false" |  | ||||||
|         - DRI_LOADERS="-Dglx=dri -Dgbm=false -Degl=false -Dplatforms=x11 -Dosmesa=none" |  | ||||||
|         - GALLIUM_ST="-Ddri3=true -Dgallium-vdpau=false -Dgallium-xvmc=false -Dgallium-omx=disabled -Dgallium-va=false -Dgallium-xa=false -Dgallium-nine=false -Dgallium-opencl=disabled" |  | ||||||
|       os: osx |  | ||||||
|  |  | ||||||
| before_install: |  | ||||||
|   - | |  | ||||||
|     if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then |  | ||||||
|       HOMEBREW_NO_AUTO_UPDATE=1 brew install python3 ninja expat gettext |  | ||||||
|       # Set PATH for homebrew pip3 installs |  | ||||||
|       PATH="$HOME/Library/Python/3.6/bin:${PATH}" |  | ||||||
|       # Set PKG_CONFIG_PATH for keg-only expat |  | ||||||
|       PKG_CONFIG_PATH="/usr/local/opt/expat/lib/pkgconfig:${PKG_CONFIG_PATH}" |  | ||||||
|       # Set PATH for keg-only gettext |  | ||||||
|       PATH="/usr/local/opt/gettext/bin:${PATH}" |  | ||||||
|  |  | ||||||
|       # Install xquartz for prereqs ... |  | ||||||
|       XQUARTZ_VERSION="2.7.11" |  | ||||||
|       wget -nv https://dl.bintray.com/xquartz/downloads/XQuartz-${XQUARTZ_VERSION}.dmg |  | ||||||
|       hdiutil attach XQuartz-${XQUARTZ_VERSION}.dmg |  | ||||||
|       sudo installer -pkg /Volumes/XQuartz-${XQUARTZ_VERSION}/XQuartz.pkg -target / |  | ||||||
|       hdiutil detach /Volumes/XQuartz-${XQUARTZ_VERSION} |  | ||||||
|       # ... and set paths |  | ||||||
|       PATH="/opt/X11/bin:${PATH}" |  | ||||||
|       PKG_CONFIG_PATH="/opt/X11/share/pkgconfig:/opt/X11/lib/pkgconfig:${PKG_CONFIG_PATH}" |  | ||||||
|       ACLOCAL="aclocal -I /opt/X11/share/aclocal -I /usr/local/share/aclocal" |  | ||||||
|     fi |  | ||||||
|  |  | ||||||
| install: |  | ||||||
|   # Install a more modern meson from pip, since the version in the |  | ||||||
|   # ubuntu repos is often quite old. |  | ||||||
|   - if test "x$BUILD" = xmeson; then |  | ||||||
|       pip3 install --user meson; |  | ||||||
|       pip3 install --user mako; |  | ||||||
|     fi |  | ||||||
|  |  | ||||||
|   # Install autotools build dependencies |  | ||||||
|   - if test "x$BUILD" = xmake; then |  | ||||||
|       pip2 install --user mako; |  | ||||||
|     fi |  | ||||||
|  |  | ||||||
|   # Install dependencies where we require specific versions (or where |  | ||||||
|   # disallowed by Travis CI's package whitelisting). |  | ||||||
|  |  | ||||||
| script: |  | ||||||
|   - if test "x$BUILD" = xmake; then |  | ||||||
|       export CFLAGS="$CFLAGS -isystem`pwd`"; |  | ||||||
|  |  | ||||||
|       mkdir build && |  | ||||||
|       cd build && |  | ||||||
|       ../autogen.sh |  | ||||||
|         --enable-autotools |  | ||||||
|         --enable-debug |  | ||||||
|         $LIBUNWIND_FLAGS |  | ||||||
|         $DRI_LOADERS |  | ||||||
|         --with-dri-drivers=$DRI_DRIVERS |  | ||||||
|         $GALLIUM_ST |  | ||||||
|         --with-gallium-drivers=$GALLIUM_DRIVERS |  | ||||||
|         --with-vulkan-drivers=$VULKAN_DRIVERS |  | ||||||
|         --disable-llvm-shared-libs |  | ||||||
|         && |  | ||||||
|       make && eval $MAKE_CHECK_COMMAND; |  | ||||||
|     fi |  | ||||||
|  |  | ||||||
|   - | |  | ||||||
|     if test "x$BUILD" = xmeson; then |  | ||||||
|       if test -n "$LLVM_CONFIG"; then |  | ||||||
|         # We need to control the version of llvm-config we're using, so we'll |  | ||||||
|         # generate a native file to do so. This requires meson >=0.49 |  | ||||||
|         # |  | ||||||
|         echo -e "[binaries]\nllvm-config = '`which $LLVM_CONFIG`'" > native.file |  | ||||||
|  |  | ||||||
|         $LLVM_CONFIG --version |  | ||||||
|       else |  | ||||||
|         : > native.file |  | ||||||
|       fi |  | ||||||
|  |  | ||||||
|       export CFLAGS="$CFLAGS -isystem`pwd`" |  | ||||||
|       meson _build \ |  | ||||||
|                    --native-file=native.file \ |  | ||||||
|                    -Dbuild-tests=true \ |  | ||||||
|                    -Dlibunwind=${UNWIND} \ |  | ||||||
|                    ${DRI_LOADERS} \ |  | ||||||
|                    -Ddri-drivers=${DRI_DRIVERS:-[]} \ |  | ||||||
|                    ${GALLIUM_ST} \ |  | ||||||
|                    -Dgallium-drivers=${GALLIUM_DRIVERS:-[]} \ |  | ||||||
|                    -Dvulkan-drivers=${VULKAN_DRIVERS:-[]} |  | ||||||
|       meson configure _build |  | ||||||
|       ninja -C _build |  | ||||||
|       ninja -C _build test |  | ||||||
|     fi |  | ||||||
| @@ -21,102 +21,39 @@ | |||||||
| # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||||
| # DEALINGS IN THE SOFTWARE. | # DEALINGS IN THE SOFTWARE. | ||||||
|  |  | ||||||
|  | # use c99 compiler by default | ||||||
|  | ifeq ($(LOCAL_CC),) | ||||||
| ifeq ($(LOCAL_IS_HOST_MODULE),true) | ifeq ($(LOCAL_IS_HOST_MODULE),true) | ||||||
| LOCAL_CFLAGS += -D_GNU_SOURCE | LOCAL_CC := $(HOST_CC) -std=c99 | ||||||
|  | else | ||||||
|  | LOCAL_CC := $(TARGET_CC) -std=c99 | ||||||
|  | endif | ||||||
| endif | endif | ||||||
|  |  | ||||||
| LOCAL_C_INCLUDES += \ | LOCAL_C_INCLUDES += \ | ||||||
| 	$(MESA_TOP)/src \ |  | ||||||
| 	$(MESA_TOP)/include | 	$(MESA_TOP)/include | ||||||
|  |  | ||||||
| MESA_VERSION := $(shell cat $(MESA_TOP)/VERSION) | # define ANDROID_VERSION (e.g., 4.0.x => 0x0400) | ||||||
| LOCAL_CFLAGS += \ | LOCAL_CFLAGS += \ | ||||||
| 	-Wno-error \ | 	-DANDROID_VERSION=0x0$(MESA_ANDROID_MAJOR_VERSION)0$(MESA_ANDROID_MINOR_VERSION) | ||||||
| 	-Wno-unused-parameter \ |  | ||||||
| 	-Wno-pointer-arith \ |  | ||||||
| 	-Wno-missing-field-initializers \ |  | ||||||
| 	-Wno-initializer-overrides \ |  | ||||||
| 	-Wno-mismatched-tags \ |  | ||||||
| 	-DPACKAGE_VERSION=\"$(MESA_VERSION)\" \ |  | ||||||
| 	-DPACKAGE_BUGREPORT=\"https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa\" |  | ||||||
|  |  | ||||||
| # XXX: The following __STDC_*_MACROS defines should not be needed. |  | ||||||
| # It's likely due to a bug elsewhere, but let's temporarily add them |  | ||||||
| # here to fix the radeonsi build. |  | ||||||
| LOCAL_CFLAGS += \ | LOCAL_CFLAGS += \ | ||||||
| 	-DANDROID_API_LEVEL=$(PLATFORM_SDK_VERSION) \ |  | ||||||
| 	-DENABLE_SHADER_CACHE \ |  | ||||||
| 	-D__STDC_CONSTANT_MACROS \ |  | ||||||
| 	-D__STDC_LIMIT_MACROS \ |  | ||||||
| 	-DHAVE___BUILTIN_EXPECT \ |  | ||||||
| 	-DHAVE___BUILTIN_FFS \ |  | ||||||
| 	-DHAVE___BUILTIN_FFSLL \ |  | ||||||
| 	-DHAVE_DLFCN_H \ |  | ||||||
| 	-DHAVE_FUNC_ATTRIBUTE_FLATTEN \ |  | ||||||
| 	-DHAVE_FUNC_ATTRIBUTE_UNUSED \ |  | ||||||
| 	-DHAVE_FUNC_ATTRIBUTE_FORMAT \ |  | ||||||
| 	-DHAVE_FUNC_ATTRIBUTE_PACKED \ |  | ||||||
| 	-DHAVE_FUNC_ATTRIBUTE_ALIAS \ |  | ||||||
| 	-DHAVE_FUNC_ATTRIBUTE_NORETURN \ |  | ||||||
| 	-DHAVE_FUNC_ATTRIBUTE_RETURNS_NONNULL \ |  | ||||||
| 	-DHAVE_FUNC_ATTRIBUTE_WARN_UNUSED_RESULT \ |  | ||||||
| 	-DHAVE___BUILTIN_CTZ \ |  | ||||||
| 	-DHAVE___BUILTIN_POPCOUNT \ |  | ||||||
| 	-DHAVE___BUILTIN_POPCOUNTLL \ |  | ||||||
| 	-DHAVE___BUILTIN_CLZ \ |  | ||||||
| 	-DHAVE___BUILTIN_CLZLL \ |  | ||||||
| 	-DHAVE___BUILTIN_UNREACHABLE \ |  | ||||||
| 	-DHAVE_PTHREAD=1 \ | 	-DHAVE_PTHREAD=1 \ | ||||||
| 	-DHAVE_DLADDR \ |  | ||||||
| 	-DHAVE_DL_ITERATE_PHDR \ |  | ||||||
| 	-DHAVE_LINUX_FUTEX_H \ |  | ||||||
| 	-DHAVE_ENDIAN_H \ |  | ||||||
| 	-DHAVE_ZLIB \ |  | ||||||
| 	-DMAJOR_IN_SYSMACROS \ |  | ||||||
| 	-DVK_USE_PLATFORM_ANDROID_KHR \ |  | ||||||
| 	-fvisibility=hidden \ | 	-fvisibility=hidden \ | ||||||
| 	-fno-math-errno \ |  | ||||||
| 	-fno-trapping-math \ |  | ||||||
| 	-Wno-sign-compare | 	-Wno-sign-compare | ||||||
|  |  | ||||||
| LOCAL_CPPFLAGS += \ |  | ||||||
| 	-D__STDC_CONSTANT_MACROS \ |  | ||||||
| 	-D__STDC_FORMAT_MACROS \ |  | ||||||
| 	-D__STDC_LIMIT_MACROS \ |  | ||||||
| 	-Wno-error=non-virtual-dtor \ |  | ||||||
| 	-Wno-non-virtual-dtor |  | ||||||
|  |  | ||||||
| # mesa requires at least c99 compiler |  | ||||||
| LOCAL_CONLYFLAGS += \ |  | ||||||
| 	-std=c99 |  | ||||||
|  |  | ||||||
| # c11 timespec_get is part of bionic as well |  | ||||||
| # https://android-review.googlesource.com/c/718518 |  | ||||||
| # This means releases from P and earlier won't need this |  | ||||||
| ifeq ($(filter 5 6 7 8 9, $(MESA_ANDROID_MAJOR_VERSION)),) |  | ||||||
| LOCAL_CFLAGS += -DHAVE_TIMESPEC_GET |  | ||||||
| endif |  | ||||||
|  |  | ||||||
| ifeq ($(strip $(MESA_ENABLE_ASM)),true) | ifeq ($(strip $(MESA_ENABLE_ASM)),true) | ||||||
| ifeq ($(TARGET_ARCH),x86) | ifeq ($(TARGET_ARCH),x86) | ||||||
| LOCAL_CFLAGS += \ | LOCAL_CFLAGS += \ | ||||||
| 	-DUSE_X86_ASM | 	-DUSE_X86_ASM \ | ||||||
|  | 	-DHAVE_DLOPEN \ | ||||||
|  |  | ||||||
| endif | endif | ||||||
| endif | endif | ||||||
| ifeq ($(ARCH_ARM_HAVE_NEON),true) |  | ||||||
| LOCAL_CFLAGS_arm += -DUSE_ARM_ASM |  | ||||||
| endif |  | ||||||
| LOCAL_CFLAGS_arm64 += -DUSE_AARCH64_ASM |  | ||||||
|  |  | ||||||
| ifneq ($(LOCAL_IS_HOST_MODULE),true) | LOCAL_CPPFLAGS += \ | ||||||
| LOCAL_CFLAGS += -DHAVE_LIBDRM | 	-Wno-error=non-virtual-dtor \ | ||||||
| LOCAL_SHARED_LIBRARIES += libdrm | 	-Wno-non-virtual-dtor | ||||||
| endif |  | ||||||
|  |  | ||||||
| LOCAL_CFLAGS_32 += -DDEFAULT_DRIVER_DIR=\"/vendor/lib/$(MESA_DRI_MODULE_REL_PATH)\" |  | ||||||
| LOCAL_CFLAGS_64 += -DDEFAULT_DRIVER_DIR=\"/vendor/lib64/$(MESA_DRI_MODULE_REL_PATH)\" |  | ||||||
| LOCAL_PROPRIETARY_MODULE := true |  | ||||||
|  |  | ||||||
| # uncomment to keep the debug symbols | # uncomment to keep the debug symbols | ||||||
| #LOCAL_STRIP_MODULE := false | #LOCAL_STRIP_MODULE := false | ||||||
| @@ -124,6 +61,3 @@ LOCAL_PROPRIETARY_MODULE := true | |||||||
| ifeq ($(strip $(LOCAL_MODULE_TAGS)),) | ifeq ($(strip $(LOCAL_MODULE_TAGS)),) | ||||||
| LOCAL_MODULE_TAGS := optional | LOCAL_MODULE_TAGS := optional | ||||||
| endif | endif | ||||||
|  |  | ||||||
| # Quiet down the build system and remove any .h files from the sources |  | ||||||
| LOCAL_SRC_FILES := $(patsubst %.h, , $(LOCAL_SRC_FILES)) |  | ||||||
|   | |||||||
							
								
								
									
										122
									
								
								Android.mk
									
									
									
									
									
								
							
							
						
						
									
										122
									
								
								Android.mk
									
									
									
									
									
								
							| @@ -24,7 +24,7 @@ | |||||||
| # BOARD_GPU_DRIVERS should be defined.  The valid values are | # BOARD_GPU_DRIVERS should be defined.  The valid values are | ||||||
| # | # | ||||||
| #   classic drivers: i915 i965 | #   classic drivers: i915 i965 | ||||||
| #   gallium drivers: swrast freedreno i915g nouveau kmsro r300g r600g radeonsi vc4 virgl vmwgfx etnaviv iris | #   gallium drivers: swrast i915g nouveau r300g r600g radeonsi vmwgfx | ||||||
| # | # | ||||||
| # The main target is libGLES_mesa.  For each classic driver enabled, a DRI | # The main target is libGLES_mesa.  For each classic driver enabled, a DRI | ||||||
| # module will also be built.  DRI modules will be loaded by libGLES_mesa. | # module will also be built.  DRI modules will be loaded by libGLES_mesa. | ||||||
| @@ -32,55 +32,28 @@ | |||||||
| MESA_TOP := $(call my-dir) | MESA_TOP := $(call my-dir) | ||||||
|  |  | ||||||
| MESA_ANDROID_MAJOR_VERSION := $(word 1, $(subst ., , $(PLATFORM_VERSION))) | MESA_ANDROID_MAJOR_VERSION := $(word 1, $(subst ., , $(PLATFORM_VERSION))) | ||||||
| ifneq ($(filter 2 4, $(MESA_ANDROID_MAJOR_VERSION)),) | MESA_ANDROID_MINOR_VERSION := $(word 2, $(subst ., , $(PLATFORM_VERSION))) | ||||||
| $(error "Android 4.4 and earlier not supported") | MESA_ANDROID_VERSION := $(MESA_ANDROID_MAJOR_VERSION).$(MESA_ANDROID_MINOR_VERSION) | ||||||
| endif |  | ||||||
|  |  | ||||||
| MESA_DRI_MODULE_REL_PATH := dri |  | ||||||
| MESA_DRI_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/$(MESA_DRI_MODULE_REL_PATH) |  | ||||||
| MESA_DRI_MODULE_UNSTRIPPED_PATH := $(TARGET_OUT_SHARED_LIBRARIES_UNSTRIPPED)/$(MESA_DRI_MODULE_REL_PATH) |  | ||||||
| MESA_DRI_LDFLAGS := -Wl,--build-id=sha1 |  | ||||||
|  |  | ||||||
| MESA_COMMON_MK := $(MESA_TOP)/Android.common.mk | MESA_COMMON_MK := $(MESA_TOP)/Android.common.mk | ||||||
| MESA_PYTHON2 := python | MESA_PYTHON2 := python | ||||||
|  |  | ||||||
| # Lists to convert driver names to boolean variables | DRM_TOP := external/drm | ||||||
| # in form of <driver name>.<boolean make variable> | DRM_GRALLOC_TOP := hardware/drm_gralloc | ||||||
| classic_drivers := i915.HAVE_I915_DRI i965.HAVE_I965_DRI |  | ||||||
| gallium_drivers := \ |  | ||||||
| 	swrast.HAVE_GALLIUM_SOFTPIPE \ |  | ||||||
| 	freedreno.HAVE_GALLIUM_FREEDRENO \ |  | ||||||
| 	i915g.HAVE_GALLIUM_I915 \ |  | ||||||
| 	nouveau.HAVE_GALLIUM_NOUVEAU \ |  | ||||||
| 	kmsro.HAVE_GALLIUM_KMSRO \ |  | ||||||
| 	r300g.HAVE_GALLIUM_R300 \ |  | ||||||
| 	r600g.HAVE_GALLIUM_R600 \ |  | ||||||
| 	radeonsi.HAVE_GALLIUM_RADEONSI \ |  | ||||||
| 	vmwgfx.HAVE_GALLIUM_VMWGFX \ |  | ||||||
| 	vc4.HAVE_GALLIUM_VC4 \ |  | ||||||
| 	virgl.HAVE_GALLIUM_VIRGL \ |  | ||||||
| 	etnaviv.HAVE_GALLIUM_ETNAVIV \ |  | ||||||
| 	iris.HAVE_GALLIUM_IRIS |  | ||||||
|  |  | ||||||
| ifeq ($(BOARD_GPU_DRIVERS),all) | classic_drivers := i915 i965 | ||||||
| MESA_BUILD_CLASSIC := $(filter HAVE_%, $(subst ., , $(classic_drivers))) | gallium_drivers := swrast i915g nouveau r300g r600g radeonsi vmwgfx | ||||||
| MESA_BUILD_GALLIUM := $(filter HAVE_%, $(subst ., , $(gallium_drivers))) |  | ||||||
| else |  | ||||||
| # Warn if we have any invalid driver names |  | ||||||
| $(foreach d, $(BOARD_GPU_DRIVERS), \ |  | ||||||
| 	$(if $(findstring $(d).,$(classic_drivers) $(gallium_drivers)), \ |  | ||||||
| 		, \ |  | ||||||
| 		$(warning invalid GPU driver: $(d)) \ |  | ||||||
| 	) \ |  | ||||||
| ) |  | ||||||
| MESA_BUILD_CLASSIC := $(strip $(foreach d, $(BOARD_GPU_DRIVERS), $(patsubst $(d).%,%, $(filter $(d).%, $(classic_drivers))))) |  | ||||||
| MESA_BUILD_GALLIUM := $(strip $(foreach d, $(BOARD_GPU_DRIVERS), $(patsubst $(d).%,%, $(filter $(d).%, $(gallium_drivers))))) |  | ||||||
| endif |  | ||||||
| ifeq ($(filter x86%,$(TARGET_ARCH)),) |  | ||||||
| 	MESA_BUILD_CLASSIC := |  | ||||||
| endif |  | ||||||
|  |  | ||||||
| $(foreach d, $(MESA_BUILD_CLASSIC) $(MESA_BUILD_GALLIUM), $(eval $(d) := true)) | MESA_GPU_DRIVERS := $(strip $(BOARD_GPU_DRIVERS)) | ||||||
|  |  | ||||||
|  | # warn about invalid drivers | ||||||
|  | invalid_drivers := $(filter-out \ | ||||||
|  | 	$(classic_drivers) $(gallium_drivers), $(MESA_GPU_DRIVERS)) | ||||||
|  | ifneq ($(invalid_drivers),) | ||||||
|  | $(warning invalid GPU drivers: $(invalid_drivers)) | ||||||
|  | # tidy up | ||||||
|  | MESA_GPU_DRIVERS := $(filter-out $(invalid_drivers), $(MESA_GPU_DRIVERS)) | ||||||
|  | endif | ||||||
|  |  | ||||||
| # host and target must be the same arch to generate matypes.h | # host and target must be the same arch to generate matypes.h | ||||||
| ifeq ($(TARGET_ARCH),$(HOST_ARCH)) | ifeq ($(TARGET_ARCH),$(HOST_ARCH)) | ||||||
| @@ -89,39 +62,38 @@ else | |||||||
| MESA_ENABLE_ASM := false | MESA_ENABLE_ASM := false | ||||||
| endif | endif | ||||||
|  |  | ||||||
| ifneq ($(filter true, $(HAVE_GALLIUM_RADEONSI)),) | ifneq ($(filter $(classic_drivers), $(MESA_GPU_DRIVERS)),) | ||||||
| MESA_ENABLE_LLVM := true | MESA_BUILD_CLASSIC := true | ||||||
|  | else | ||||||
|  | MESA_BUILD_CLASSIC := false | ||||||
| endif | endif | ||||||
|  |  | ||||||
| define mesa-build-with-llvm | ifneq ($(filter $(gallium_drivers), $(MESA_GPU_DRIVERS)),) | ||||||
|   $(if $(filter $(MESA_ANDROID_MAJOR_VERSION), 4 5), \ | MESA_BUILD_GALLIUM := true | ||||||
|     $(warning Unsupported LLVM version in Android $(MESA_ANDROID_MAJOR_VERSION)),) \ | else | ||||||
|   $(if $(filter 6,$(MESA_ANDROID_MAJOR_VERSION)), \ | MESA_BUILD_GALLIUM := false | ||||||
|     $(eval LOCAL_CFLAGS += -DHAVE_LLVM=0x0307 -DMESA_LLVM_VERSION_PATCH=0)) \ | endif | ||||||
|   $(if $(filter 7,$(MESA_ANDROID_MAJOR_VERSION)), \ |  | ||||||
|     $(eval LOCAL_CFLAGS += -DHAVE_LLVM=0x0308 -DMESA_LLVM_VERSION_PATCH=0)) \ |  | ||||||
|   $(if $(filter 8,$(MESA_ANDROID_MAJOR_VERSION)), \ |  | ||||||
|     $(eval LOCAL_CFLAGS += -DHAVE_LLVM=0x0309 -DMESA_LLVM_VERSION_PATCH=0)) \ |  | ||||||
|   $(if $(filter P,$(MESA_ANDROID_MAJOR_VERSION)), \ |  | ||||||
|     $(eval LOCAL_CFLAGS += -DHAVE_LLVM=0x0309 -DMESA_LLVM_VERSION_PATCH=0)) \ |  | ||||||
|   $(eval LOCAL_SHARED_LIBRARIES += libLLVM) |  | ||||||
| endef |  | ||||||
|  |  | ||||||
| # add subdirectories | # add subdirectories | ||||||
| SUBDIRS := \ | ifneq ($(strip $(MESA_GPU_DRIVERS)),) | ||||||
| 	src/gbm \ |  | ||||||
| 	src/loader \ |  | ||||||
| 	src/mapi \ |  | ||||||
| 	src/compiler \ |  | ||||||
| 	src/mesa \ |  | ||||||
| 	src/util \ |  | ||||||
| 	src/egl \ |  | ||||||
| 	src/amd \ |  | ||||||
| 	src/broadcom \ |  | ||||||
| 	src/intel \ |  | ||||||
| 	src/mesa/drivers/dri \ |  | ||||||
| 	src/vulkan |  | ||||||
|  |  | ||||||
| INC_DIRS := $(call all-named-subdir-makefiles,$(SUBDIRS)) | SUBDIRS := \ | ||||||
| INC_DIRS += $(call all-named-subdir-makefiles,src/gallium) | 	src/mapi \ | ||||||
| include $(INC_DIRS) | 	src/glsl \ | ||||||
|  | 	src/mesa \ | ||||||
|  | 	src/egl/main | ||||||
|  |  | ||||||
|  | ifeq ($(strip $(MESA_BUILD_CLASSIC)),true) | ||||||
|  | SUBDIRS += \ | ||||||
|  | 	src/egl/drivers/dri2 \ | ||||||
|  | 	src/mesa/drivers/dri | ||||||
|  | endif | ||||||
|  |  | ||||||
|  | ifeq ($(strip $(MESA_BUILD_GALLIUM)),true) | ||||||
|  | SUBDIRS += src/gallium | ||||||
|  | endif | ||||||
|  |  | ||||||
|  | mkfiles := $(patsubst %,$(MESA_TOP)/%/Android.mk,$(SUBDIRS)) | ||||||
|  | include $(mkfiles) | ||||||
|  |  | ||||||
|  | endif | ||||||
|   | |||||||
							
								
								
									
										16
									
								
								CleanSpec.mk
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								CleanSpec.mk
									
									
									
									
									
								
							| @@ -1,16 +0,0 @@ | |||||||
| $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/STATIC_LIBRARIES/libmesa_*_intermediates) |  | ||||||
| $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/i9*5_dri_intermediates) |  | ||||||
| $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libglapi_intermediates) |  | ||||||
| $(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/SHARED_LIBRARIES/libGLES_mesa_intermediates) |  | ||||||
| $(call add-clean-step, rm -rf $(OUT_DIR)/host/$(HOST_OS)-$(HOST_ARCH)/obj/EXECUTABLES/mesa_*_intermediates) |  | ||||||
| $(call add-clean-step, rm -rf $(OUT_DIR)/host/$(HOST_OS)-$(HOST_ARCH)/obj/EXECUTABLES/glsl_compiler_intermediates) |  | ||||||
| $(call add-clean-step, rm -rf $(OUT_DIR)/host/$(HOST_OS)-$(HOST_ARCH)/obj/STATIC_LIBRARIES/libmesa_glsl_utils_intermediates) |  | ||||||
|  |  | ||||||
| $(call add-clean-step, rm -rf $(PRODUCT_OUT)/*/STATIC_LIBRARIES/libmesa_*_intermediates) |  | ||||||
| $(call add-clean-step, rm -rf $(PRODUCT_OUT)/*/SHARED_LIBRARIES/i9?5_dri_intermediates) |  | ||||||
| $(call add-clean-step, rm -rf $(PRODUCT_OUT)/*/SHARED_LIBRARIES/libglapi_intermediates) |  | ||||||
| $(call add-clean-step, rm -rf $(PRODUCT_OUT)/*/SHARED_LIBRARIES/libGLES_mesa_intermediates) |  | ||||||
| $(call add-clean-step, rm -rf $(HOST_OUT)/*/EXECUTABLES/mesa_*_intermediates) |  | ||||||
| $(call add-clean-step, rm -rf $(HOST_OUT)/*/EXECUTABLES/glsl_compiler_intermediates) |  | ||||||
| $(call add-clean-step, rm -rf $(HOST_OUT)/*/STATIC_LIBRARIES/libmesa_*_intermediates) |  | ||||||
| $(call add-clean-step, rm -rf $(PRODUCT_OUT)/*/SHARED_LIBRARIES/*_dri_intermediates) |  | ||||||
							
								
								
									
										177
									
								
								Makefile.am
									
									
									
									
									
								
							
							
						
						
									
										177
									
								
								Makefile.am
									
									
									
									
									
								
							| @@ -21,73 +21,118 @@ | |||||||
|  |  | ||||||
| SUBDIRS = src | SUBDIRS = src | ||||||
|  |  | ||||||
| AM_DISTCHECK_CONFIGURE_FLAGS = \ |  | ||||||
| 	--enable-autotools \ |  | ||||||
| 	--enable-dri \ |  | ||||||
| 	--enable-dri3 \ |  | ||||||
| 	--enable-egl \ |  | ||||||
| 	--enable-gallium-tests \ |  | ||||||
| 	--enable-gallium-osmesa \ |  | ||||||
| 	--enable-llvm \ |  | ||||||
| 	--enable-gbm \ |  | ||||||
| 	--enable-gles1 \ |  | ||||||
| 	--enable-gles2 \ |  | ||||||
| 	--enable-glx \ |  | ||||||
| 	--enable-glx-tls \ |  | ||||||
| 	--enable-nine \ |  | ||||||
| 	--enable-opencl \ |  | ||||||
| 	--enable-opencl-icd \ |  | ||||||
| 	--enable-opengl \ |  | ||||||
| 	--enable-va \ |  | ||||||
| 	--enable-vdpau \ |  | ||||||
| 	--enable-xa \ |  | ||||||
| 	--enable-xvmc \ |  | ||||||
| 	--enable-llvm-shared-libs \ |  | ||||||
| 	--enable-libunwind \ |  | ||||||
| 	--with-platforms=x11,wayland,drm,surfaceless \ |  | ||||||
| 	--with-dri-drivers=i915,i965,nouveau,radeon,r200,swrast \ |  | ||||||
| 	--with-gallium-drivers=i915,nouveau,r300,kmsro,r600,radeonsi,freedreno,svga,swrast,vc4,tegra,virgl,swr,etnaviv \ |  | ||||||
| 	--with-vulkan-drivers=intel,radeon |  | ||||||
|  |  | ||||||
| ACLOCAL_AMFLAGS = -I m4 | ACLOCAL_AMFLAGS = -I m4 | ||||||
|  |  | ||||||
| EXTRA_DIST = \ | doxygen: | ||||||
| 	autogen.sh \ | 	cd doxygen && $(MAKE) | ||||||
| 	common.py \ |  | ||||||
| 	docs \ |  | ||||||
| 	doxygen \ |  | ||||||
| 	bin/git_sha1_gen.py \ |  | ||||||
| 	scons \ |  | ||||||
| 	SConstruct \ |  | ||||||
| 	build-support/conftest.dyn \ |  | ||||||
| 	build-support/conftest.map \ |  | ||||||
| 	meson.build \ |  | ||||||
| 	meson_options.txt \ |  | ||||||
| 	bin/meson.build \ |  | ||||||
| 	include/meson.build \ |  | ||||||
| 	bin/install_megadrivers.py \ |  | ||||||
| 	bin/meson_get_version.py |  | ||||||
|  |  | ||||||
| noinst_HEADERS = \ | check-local: | ||||||
| 	include/c99_alloca.h \ | 	$(MAKE) -C src/mapi/glapi/tests check | ||||||
| 	include/c99_compat.h \ | 	$(MAKE) -C src/mapi/shared-glapi/tests check | ||||||
| 	include/c99_math.h \ | 	$(MAKE) -C src/mesa/main/tests check | ||||||
| 	include/c11 \ | 	$(MAKE) -C src/glsl/tests check | ||||||
| 	include/drm-uapi/drm.h \ | 	$(MAKE) -C src/glx/tests check | ||||||
| 	include/drm-uapi/drm_fourcc.h \ |  | ||||||
| 	include/drm-uapi/drm_mode.h \ |  | ||||||
| 	include/drm-uapi/i915_drm.h \ |  | ||||||
| 	include/drm-uapi/tegra_drm.h \ |  | ||||||
| 	include/drm-uapi/v3d_drm.h \ |  | ||||||
| 	include/drm-uapi/vc4_drm.h \ |  | ||||||
| 	include/D3D9 \ |  | ||||||
| 	include/GL/wglext.h \ |  | ||||||
| 	include/HaikuGL \ |  | ||||||
| 	include/no_extern_c.h \ |  | ||||||
| 	include/pci_ids \ |  | ||||||
| 	include/vulkan |  | ||||||
|  |  | ||||||
| # We list some directories in EXTRA_DIST, but don't actually want to include | clean-local: | ||||||
| # the .gitignore files in the tarball. | 	-@touch $(top_builddir)/configs/current | ||||||
| dist-hook: | 	-@for dir in $(SUBDIRS) ; do \ | ||||||
| 	find $(distdir) -name .gitignore -exec $(RM) {} + | 		if [ -d $$dir ] ; then \ | ||||||
|  | 			(cd $$dir && $(MAKE) clean) ; \ | ||||||
|  | 		fi \ | ||||||
|  | 	done | ||||||
|  | 	-@test -s $(top_builddir)/configs/current || rm -f $(top_builddir)/configs/current | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | distclean-local: | ||||||
|  | 	-rm -rf lib* | ||||||
|  | 	-rm -f $(top_builddir)/configs/current | ||||||
|  | 	-find . '(' -name '*.o' -o -name '*.a' -o -name '*.so' -o \ | ||||||
|  | 	  -name depend -o -name depend.bak ')' -exec rm -f '{}' ';' | ||||||
|  |  | ||||||
|  | .PHONY: doxygen | ||||||
|  |  | ||||||
|  | # Rules for making release tarballs | ||||||
|  |  | ||||||
|  | PACKAGE_VERSION=9.1-devel | ||||||
|  | PACKAGE_DIR = Mesa-$(PACKAGE_VERSION) | ||||||
|  | PACKAGE_NAME = MesaLib-$(PACKAGE_VERSION) | ||||||
|  |  | ||||||
|  | EXTRA_FILES = \ | ||||||
|  | 	aclocal.m4					\ | ||||||
|  | 	configure					\ | ||||||
|  | 	bin/ar-lib					\ | ||||||
|  | 	bin/compile					\ | ||||||
|  | 	bin/config.sub					\ | ||||||
|  | 	bin/config.guess				\ | ||||||
|  | 	bin/depcomp					\ | ||||||
|  | 	bin/install-sh					\ | ||||||
|  | 	bin/ltmain.sh					\ | ||||||
|  | 	bin/missing					\ | ||||||
|  | 	bin/ylwrap					\ | ||||||
|  | 	src/glsl/glsl_parser.cc				\ | ||||||
|  | 	src/glsl/glsl_parser.h				\ | ||||||
|  | 	src/glsl/glsl_lexer.cc				\ | ||||||
|  | 	src/glsl/glcpp/glcpp-lex.c			\ | ||||||
|  | 	src/glsl/glcpp/glcpp-parse.c			\ | ||||||
|  | 	src/glsl/glcpp/glcpp-parse.h			\ | ||||||
|  | 	src/mesa/main/api_exec_es1.c			\ | ||||||
|  | 	src/mesa/main/api_exec_es1_dispatch.h		\ | ||||||
|  | 	src/mesa/main/api_exec_es1_remap_helper.h	\ | ||||||
|  | 	src/mesa/main/api_exec_es2.c			\ | ||||||
|  | 	src/mesa/main/api_exec_es2_dispatch.h		\ | ||||||
|  | 	src/mesa/main/api_exec_es2_remap_helper.h	\ | ||||||
|  | 	src/mesa/program/lex.yy.c			\ | ||||||
|  | 	src/mesa/program/program_parse.tab.c		\ | ||||||
|  | 	src/mesa/program/program_parse.tab.h		\ | ||||||
|  | 	`git ls-files | grep "Makefile.am" | sed -e "s/Makefile.am/Makefile.in/"` | ||||||
|  |  | ||||||
|  |  | ||||||
|  | IGNORE_FILES = \ | ||||||
|  | 	-x autogen.sh | ||||||
|  |  | ||||||
|  |  | ||||||
|  | parsers: configure | ||||||
|  | 	-@touch $(top_builddir)/configs/current | ||||||
|  | 	$(MAKE) -C src/glsl glsl_parser.cc glsl_parser.h glsl_lexer.cc | ||||||
|  | 	$(MAKE) -C src/glsl/glcpp glcpp-lex.c glcpp-parse.c glcpp-parse.h | ||||||
|  | 	$(MAKE) -C src/mesa/program lex.yy.c program_parse.tab.c program_parse.tab.h | ||||||
|  |  | ||||||
|  | # Everything for new a Mesa release: | ||||||
|  | ARCHIVES = $(PACKAGE_NAME).tar.gz \ | ||||||
|  | 	$(PACKAGE_NAME).tar.bz2 \ | ||||||
|  | 	$(PACKAGE_NAME).zip | ||||||
|  |  | ||||||
|  | tarballs: md5 | ||||||
|  | 	rm -f ../$(PACKAGE_DIR) $(PACKAGE_NAME).tar | ||||||
|  |  | ||||||
|  | manifest.txt: .git | ||||||
|  | 	( \ | ||||||
|  | 		ls -1 $(EXTRA_FILES) ; \ | ||||||
|  | 		git ls-files $(IGNORE_FILES) \ | ||||||
|  | 	) | sed -e '/^\(.*\/\)\?\./d' -e "s@^@$(PACKAGE_DIR)/@" > $@ | ||||||
|  |  | ||||||
|  | ../$(PACKAGE_DIR): | ||||||
|  | 	ln -s $(PWD) $@ | ||||||
|  |  | ||||||
|  | $(PACKAGE_NAME).tar: parsers ../$(PACKAGE_DIR) manifest.txt | ||||||
|  | 	cd .. ; tar -cf $(PACKAGE_DIR)/$(PACKAGE_NAME).tar -T $(PACKAGE_DIR)/manifest.txt | ||||||
|  |  | ||||||
|  | $(PACKAGE_NAME).tar.gz: $(PACKAGE_NAME).tar ../$(PACKAGE_DIR) | ||||||
|  | 	gzip --stdout --best $(PACKAGE_NAME).tar > $(PACKAGE_NAME).tar.gz | ||||||
|  |  | ||||||
|  | $(PACKAGE_NAME).tar.bz2: $(PACKAGE_NAME).tar | ||||||
|  | 	bzip2 --stdout --best $(PACKAGE_NAME).tar > $(PACKAGE_NAME).tar.bz2 | ||||||
|  |  | ||||||
|  | $(PACKAGE_NAME).zip: parsers ../$(PACKAGE_DIR) manifest.txt | ||||||
|  | 	rm -f $(PACKAGE_NAME).zip ; \ | ||||||
|  | 	cd .. ; \ | ||||||
|  | 	zip -q -@ $(PACKAGE_NAME).zip < $(PACKAGE_DIR)/manifest.txt ; \ | ||||||
|  | 	mv $(PACKAGE_NAME).zip $(PACKAGE_DIR) | ||||||
|  |  | ||||||
|  | md5: $(ARCHIVES) | ||||||
|  | 	@-md5sum $(PACKAGE_NAME).tar.gz | ||||||
|  | 	@-md5sum $(PACKAGE_NAME).tar.bz2 | ||||||
|  | 	@-md5sum $(PACKAGE_NAME).zip | ||||||
|  |  | ||||||
|  | .PHONY: tarballs md5 | ||||||
|   | |||||||
							
								
								
									
										60
									
								
								README.rst
									
									
									
									
									
								
							
							
						
						
									
										60
									
								
								README.rst
									
									
									
									
									
								
							| @@ -1,60 +0,0 @@ | |||||||
| `Mesa <https://mesa3d.org>`_ - The 3D Graphics Library |  | ||||||
| ====================================================== |  | ||||||
|  |  | ||||||
|  |  | ||||||
| Source |  | ||||||
| ------ |  | ||||||
|  |  | ||||||
| This repository lives at https://gitlab.freedesktop.org/mesa/mesa. |  | ||||||
| Other repositories are likely forks, and code found there is not supported. |  | ||||||
|  |  | ||||||
|  |  | ||||||
| Build & install |  | ||||||
| --------------- |  | ||||||
|  |  | ||||||
| You can find more information in our documentation (`docs/install.html |  | ||||||
| <https://mesa3d.org/install.html>`_), but the recommended way is to use |  | ||||||
| Meson (`docs/meson.html <https://mesa3d.org/meson.html>`_): |  | ||||||
|  |  | ||||||
| .. code-block:: sh |  | ||||||
|  |  | ||||||
|   $ mkdir build |  | ||||||
|   $ cd build |  | ||||||
|   $ meson .. |  | ||||||
|   $ sudo ninja install |  | ||||||
|  |  | ||||||
|  |  | ||||||
| Support |  | ||||||
| ------- |  | ||||||
|  |  | ||||||
| Many Mesa devs hang on IRC; if you're not sure which channel is |  | ||||||
| appropriate, you should ask your question on `Freenode's #dri-devel |  | ||||||
| <irc://chat.freenode.net#dri-devel>`_, someone will redirect you if |  | ||||||
| necessary. |  | ||||||
| Remember that not everyone is in the same timezone as you, so it might |  | ||||||
| take a while before someone qualified sees your question. |  | ||||||
| To figure out who you're talking to, or which nick to ping for your |  | ||||||
| question, check out `Who's Who on IRC |  | ||||||
| <https://dri.freedesktop.org/wiki/WhosWho/>`_. |  | ||||||
|  |  | ||||||
| The next best option is to ask your question in an email to the |  | ||||||
| mailing lists: `mesa-dev\@lists.freedesktop.org |  | ||||||
| <https://lists.freedesktop.org/mailman/listinfo/mesa-dev>`_ |  | ||||||
|  |  | ||||||
|  |  | ||||||
| Bug reports |  | ||||||
| ----------- |  | ||||||
|  |  | ||||||
| If you think something isn't working properly, please file a bug report |  | ||||||
| (`docs/bugs.html <https://mesa3d.org/bugs.html>`_). |  | ||||||
|  |  | ||||||
|  |  | ||||||
| Contributing |  | ||||||
| ------------ |  | ||||||
|  |  | ||||||
| Contributions are welcome, and step-by-step instructions can be found in our |  | ||||||
| documentation (`docs/submittingpatches.html |  | ||||||
| <https://mesa3d.org/submittingpatches.html>`_). |  | ||||||
|  |  | ||||||
| Note that Mesa uses email mailing-lists for patches submission, review and |  | ||||||
| discussions. |  | ||||||
							
								
								
									
										145
									
								
								REVIEWERS
									
									
									
									
									
								
							
							
						
						
									
										145
									
								
								REVIEWERS
									
									
									
									
									
								
							| @@ -1,145 +0,0 @@ | |||||||
| Overview: |  | ||||||
|  |  | ||||||
| 	This file is similar in syntax (or more precisly a subset) of what is |  | ||||||
| 	used by the MAINTAINERS file in the linux kernel.  Some fields do not |  | ||||||
| 	apply, for example, in all cases, send patches to: |  | ||||||
|  |  | ||||||
| 		mesa-dev@lists.freedesktop.org |  | ||||||
|  |  | ||||||
| 	and in all cases the patchwork instance is: |  | ||||||
|  |  | ||||||
| 		https://patchwork.freedesktop.org/project/mesa/ |  | ||||||
|  |  | ||||||
| 	The purpose is not exactly the same the MAINTAINERS file in the linux |  | ||||||
| 	kernel, as there are not official/formal maintainers of different |  | ||||||
| 	subsystems in mesa, but is meant to give an idea of who to CC for |  | ||||||
| 	various patches for review, and to allow the use of |  | ||||||
| 	scripts/get_reviewer.pl as git --cc-cmd. |  | ||||||
|  |  | ||||||
| Usage: |  | ||||||
|  |  | ||||||
| 	When sending patches: |  | ||||||
|  |  | ||||||
| 		git send-email --cc-cmd ./scripts/get_reviewer.pl ... |  | ||||||
|  |  | ||||||
| 	Or to configure as default: |  | ||||||
|  |  | ||||||
| 		git config sendemail.cccmd ./scripts/get_reviewer.pl |  | ||||||
|  |  | ||||||
| Descriptions of section entries: |  | ||||||
|  |  | ||||||
| 	R: Designated reviewer: FullName <address@domain> |  | ||||||
| 	   These reviewers should be CCed on patches. |  | ||||||
| 	F: Files and directories with wildcard patterns. |  | ||||||
| 	   A trailing slash includes all files and subdirectory files. |  | ||||||
| 	   F:	drivers/net/	all files in and below drivers/net |  | ||||||
| 	   F:	drivers/net/*	all files in drivers/net, but not below |  | ||||||
| 	   F:	*/net/*		all files in "any top level directory"/net |  | ||||||
| 	   One pattern per line.  Multiple F: lines acceptable. |  | ||||||
| 	N: Files and directories with regex patterns. |  | ||||||
| 	   N:	[^a-z]tegra	all files whose path contains the word tegra |  | ||||||
| 	   One pattern per line.  Multiple N: lines acceptable. |  | ||||||
| 	   scripts/get_maintainer.pl has different behavior for files that |  | ||||||
| 	   match F: pattern and matches of N: patterns.  By default, |  | ||||||
| 	   get_maintainer will not look at git log history when an F: pattern |  | ||||||
| 	   match occurs.  When an N: match occurs, git log history is used |  | ||||||
| 	   to also notify the people that have git commit signatures. |  | ||||||
|  |  | ||||||
| Maintainers List (try to look for most precise areas first) |  | ||||||
|  |  | ||||||
| Note: this is an opt-in system, I have not tried to add anyone who hasn't |  | ||||||
| either asked me or sent a patch to add themselves. |  | ||||||
|  |  | ||||||
| 		----------------------------------- |  | ||||||
|  |  | ||||||
| NIR |  | ||||||
| R:	Jason Ekstrand <jason@jlekstrand.net> |  | ||||||
| F:	src/compiler/nir/ |  | ||||||
|  |  | ||||||
| DOCUMENTATION |  | ||||||
| R: Emil Velikov <emil.l.velikov@gmail.com> |  | ||||||
| R: Eric Engestrom <eric@engestrom.ch> |  | ||||||
| F: docs/ |  | ||||||
| F: doxygen/ |  | ||||||
|  |  | ||||||
| COMPATIBILITY HEADERS |  | ||||||
| R: Emil Velikov <emil.l.velikov@gmail.com> |  | ||||||
| F: include/c99* |  | ||||||
|  |  | ||||||
| DRI LOADER |  | ||||||
| R: Emil Velikov <emil.l.velikov@gmail.com> |  | ||||||
| F: src/loader/ |  | ||||||
|  |  | ||||||
| EGL |  | ||||||
| R: Eric Engestrom <eric@engestrom.ch> |  | ||||||
| R: Emil Velikov <emil.l.velikov@gmail.com> |  | ||||||
| F: src/egl/ |  | ||||||
| F: include/EGL/ |  | ||||||
|  |  | ||||||
| HAIKU |  | ||||||
| R: Alexander von Gluck IV <kallisti5@unixzen.com> |  | ||||||
| F: include/HaikuGL/ |  | ||||||
| F: src/egl/drivers/haiku/ |  | ||||||
| F: src/gallium/state_trackers/hgl/ |  | ||||||
| F: src/gallium/targets/haiku-softpipe/ |  | ||||||
| F: src/gallium/winsys/sw/hgl/ |  | ||||||
| F: src/hgl/ |  | ||||||
|  |  | ||||||
| GALLIUM LOADER |  | ||||||
| R: Emil Velikov <emil.l.velikov@gmail.com> |  | ||||||
| F: src/gallium/auxiliary/pipe-loader/ |  | ||||||
| F: src/gallium/auxiliary/target-helpers/ |  | ||||||
|  |  | ||||||
| GALLIUM TARGETS |  | ||||||
| R: Emil Velikov <emil.l.velikov@gmail.com> |  | ||||||
| F: src/gallium/targets/ |  | ||||||
|  |  | ||||||
| AUTOCONF BUILD |  | ||||||
| R: Emil Velikov <emil.l.velikov@gmail.com> |  | ||||||
| F: autogen.sh |  | ||||||
| F: configure.ac |  | ||||||
| F: */Automake.inc |  | ||||||
| F: */Makefile.*am |  | ||||||
| F: */Makefile.sources |  | ||||||
|  |  | ||||||
| SCONS BUILD |  | ||||||
| F: scons/ |  | ||||||
| F: */SConscript* |  | ||||||
| F: */Makefile.sources |  | ||||||
|  |  | ||||||
| ANDROID BUILD |  | ||||||
| R: Emil Velikov <emil.l.velikov@gmail.com> |  | ||||||
| R: Rob Herring <robh@kernel.org> |  | ||||||
| F: CleanSpec.mk |  | ||||||
| F: */Android.*mk |  | ||||||
| F: */Makefile.sources |  | ||||||
|  |  | ||||||
| MESON BUILD |  | ||||||
| R: Dylan Baker <dylan@pnwbakers.com> |  | ||||||
| R: Eric Engestrom <eric@engestrom.ch> |  | ||||||
| F: */meson.build |  | ||||||
| F: meson.build |  | ||||||
| F: meson_options.txt |  | ||||||
|  |  | ||||||
| ANDROID EGL SUPPORT |  | ||||||
| R: Rob Herring <robh@kernel.org> |  | ||||||
| R: Tomasz Figa <tfiga@chromium.org> |  | ||||||
| F: src/egl/drivers/dri2/platform_android.c |  | ||||||
|  |  | ||||||
| WAYLAND EGL SUPPORT |  | ||||||
| R: Daniel Stone <daniels@collabora.com> |  | ||||||
| F: src/egl/wayland/* |  | ||||||
| F: src/egl/drivers/dri2/platform_wayland.c |  | ||||||
|  |  | ||||||
| FREEDRENO |  | ||||||
| R:	Rob Clark <robclark@freedesktop.org> |  | ||||||
| F:	src/gallium/drivers/freedreno/ |  | ||||||
|  |  | ||||||
| GLX |  | ||||||
| R: Adam Jackson <ajax@redhat.com> |  | ||||||
| F: src/glx/ |  | ||||||
|  |  | ||||||
| VULKAN |  | ||||||
| R: Eric Engestrom <eric@engestrom.ch> |  | ||||||
| F: src/vulkan/ |  | ||||||
| F: include/vulkan/ |  | ||||||
							
								
								
									
										43
									
								
								SConstruct
									
									
									
									
									
								
							
							
						
						
									
										43
									
								
								SConstruct
									
									
									
									
									
								
							| @@ -27,13 +27,6 @@ import SCons.Util | |||||||
|  |  | ||||||
| import common | import common | ||||||
|  |  | ||||||
| ####################################################################### |  | ||||||
| # Minimal scons version |  | ||||||
|  |  | ||||||
| EnsureSConsVersion(2, 4) |  | ||||||
| EnsurePythonVersion(2, 7) |  | ||||||
|  |  | ||||||
|  |  | ||||||
| ####################################################################### | ####################################################################### | ||||||
| # Configuration options | # Configuration options | ||||||
|  |  | ||||||
| @@ -57,25 +50,25 @@ except KeyError: | |||||||
|     pass |     pass | ||||||
| else: | else: | ||||||
|     targets = targets.split(',') |     targets = targets.split(',') | ||||||
|     print('scons: warning: targets option is deprecated; pass the targets on their own such as') |     print 'scons: warning: targets option is deprecated; pass the targets on their own such as' | ||||||
|     print() |     print | ||||||
|     print('  scons %s' % ' '.join(targets)) |     print '  scons %s' % ' '.join(targets) | ||||||
|     print() |     print  | ||||||
|     COMMAND_LINE_TARGETS.append(targets) |     COMMAND_LINE_TARGETS.append(targets) | ||||||
|  |  | ||||||
|  |  | ||||||
| Help(opts.GenerateHelpText(env)) | Help(opts.GenerateHelpText(env)) | ||||||
|  |  | ||||||
|  | # fail early for a common error on windows | ||||||
|  | if env['gles']: | ||||||
|  |     try: | ||||||
|  |         import libxml2 | ||||||
|  |     except ImportError: | ||||||
|  |         raise SCons.Errors.UserError, "GLES requires libxml2-python to build" | ||||||
|  |  | ||||||
| ####################################################################### | ####################################################################### | ||||||
| # Environment setup | # Environment setup | ||||||
|  |  | ||||||
| with open("VERSION") as f: |  | ||||||
|   mesa_version = f.read().strip() |  | ||||||
| env.Append(CPPDEFINES = [ |  | ||||||
|     ('PACKAGE_VERSION', '\\"%s\\"' % mesa_version), |  | ||||||
|     ('PACKAGE_BUGREPORT', '\\"https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa\\"'), |  | ||||||
| ]) |  | ||||||
|  |  | ||||||
| # Includes | # Includes | ||||||
| env.Prepend(CPPPATH = [ | env.Prepend(CPPPATH = [ | ||||||
| 	'#/include', | 	'#/include', | ||||||
| @@ -87,15 +80,13 @@ env.Append(CPPPATH = [ | |||||||
| 	'#/src/gallium/winsys', | 	'#/src/gallium/winsys', | ||||||
| ]) | ]) | ||||||
|  |  | ||||||
|  | if env['msvc']: | ||||||
|  |     env.Append(CPPPATH = ['#include/c99']) | ||||||
|  |  | ||||||
| # for debugging | # for debugging | ||||||
| #print env.Dump() | #print env.Dump() | ||||||
|  |  | ||||||
|  |  | ||||||
| # Add a check target for running tests |  | ||||||
| check = env.Alias('check') |  | ||||||
| env.AlwaysBuild(check) |  | ||||||
|  |  | ||||||
|  |  | ||||||
| ####################################################################### | ####################################################################### | ||||||
| # Invoke host SConscripts  | # Invoke host SConscripts  | ||||||
| #  | #  | ||||||
| @@ -124,6 +115,9 @@ if env['crosscompile'] and not env['embedded']: | |||||||
|     host_env['hostonly'] = True |     host_env['hostonly'] = True | ||||||
|     assert host_env['crosscompile'] == False |     assert host_env['crosscompile'] == False | ||||||
|  |  | ||||||
|  |     if host_env['msvc']: | ||||||
|  |         host_env.Append(CPPPATH = ['#include/c99']) | ||||||
|  |  | ||||||
|     target_env = env |     target_env = env | ||||||
|     env = host_env |     env = host_env | ||||||
|     Export('env') |     Export('env') | ||||||
| @@ -159,7 +153,8 @@ try: | |||||||
| except ImportError: | except ImportError: | ||||||
|     pass |     pass | ||||||
| else: | else: | ||||||
|     aliases = sorted(default_ans.keys()) |     aliases = default_ans.keys() | ||||||
|  |     aliases.sort() | ||||||
|     env.Help('\n') |     env.Help('\n') | ||||||
|     env.Help('Recognized targets:\n') |     env.Help('Recognized targets:\n') | ||||||
|     for alias in aliases: |     for alias in aliases: | ||||||
|   | |||||||
							
								
								
									
										119
									
								
								acinclude.m4
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										119
									
								
								acinclude.m4
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,119 @@ | |||||||
|  | # A few convenience macros for Mesa, mostly to keep all the platform | ||||||
|  | # specifics out of configure.ac. | ||||||
|  |  | ||||||
|  | # MESA_PIC_FLAGS() | ||||||
|  | # | ||||||
|  | # Find out whether to build PIC code using the option --enable-pic and | ||||||
|  | # the configure enable_static/enable_shared settings. If PIC is needed, | ||||||
|  | # figure out the necessary flags for the platform and compiler. | ||||||
|  | # | ||||||
|  | # The platform checks have been shamelessly taken from libtool and | ||||||
|  | # stripped down to just what's needed for Mesa. See _LT_COMPILER_PIC in | ||||||
|  | # /usr/share/aclocal/libtool.m4 or | ||||||
|  | # http://git.savannah.gnu.org/gitweb/?p=libtool.git;a=blob;f=libltdl/m4/libtool.m4;hb=HEAD | ||||||
|  | # | ||||||
|  | AC_DEFUN([MESA_PIC_FLAGS], | ||||||
|  | [AC_REQUIRE([AC_PROG_CC])dnl | ||||||
|  | AC_ARG_VAR([PIC_FLAGS], [compiler flags for PIC code]) | ||||||
|  | AC_ARG_ENABLE([pic], | ||||||
|  |     [AS_HELP_STRING([--disable-pic], | ||||||
|  |         [don't compile PIC objects @<:@default=enabled for shared builds | ||||||
|  |         on supported platforms@:>@])], | ||||||
|  |     [enable_pic="$enableval" | ||||||
|  |     test "x$enable_pic" = x && enable_pic=auto], | ||||||
|  |     [enable_pic=auto]) | ||||||
|  | # disable PIC by default for static builds | ||||||
|  | if test "$enable_pic" = auto && test "$enable_static" = yes; then | ||||||
|  |     enable_pic=no | ||||||
|  | fi | ||||||
|  | # if PIC hasn't been explicitly disabled, try to figure out the flags | ||||||
|  | if test "$enable_pic" != no; then | ||||||
|  |     AC_MSG_CHECKING([for $CC option to produce PIC]) | ||||||
|  |     # allow the user's flags to override | ||||||
|  |     if test "x$PIC_FLAGS" = x; then | ||||||
|  |         # see if we're using GCC | ||||||
|  |         if test "x$GCC" = xyes; then | ||||||
|  |             case "$host_os" in | ||||||
|  |             aix*|beos*|cygwin*|irix5*|irix6*|osf3*|osf4*|osf5*) | ||||||
|  |                 # PIC is the default for these OSes. | ||||||
|  |                 ;; | ||||||
|  |             mingw*|os2*|pw32*) | ||||||
|  |                 # This hack is so that the source file can tell whether | ||||||
|  |                 # it is being built for inclusion in a dll (and should | ||||||
|  |                 # export symbols for example). | ||||||
|  |                 PIC_FLAGS="-DDLL_EXPORT" | ||||||
|  |                 ;; | ||||||
|  |             darwin*|rhapsody*) | ||||||
|  |                 # PIC is the default on this platform | ||||||
|  |                 # Common symbols not allowed in MH_DYLIB files | ||||||
|  |                 PIC_FLAGS="-fno-common" | ||||||
|  |                 ;; | ||||||
|  |             hpux*) | ||||||
|  |                 # PIC is the default for IA64 HP-UX and 64-bit HP-UX, | ||||||
|  |                 # but not for PA HP-UX. | ||||||
|  |                 case $host_cpu in | ||||||
|  |                 hppa*64*|ia64*) | ||||||
|  |                     ;; | ||||||
|  |                 *) | ||||||
|  |                     PIC_FLAGS="-fPIC" | ||||||
|  |                     ;; | ||||||
|  |                 esac | ||||||
|  |                 ;; | ||||||
|  |             *) | ||||||
|  |                 # Everyone else on GCC uses -fPIC | ||||||
|  |                 PIC_FLAGS="-fPIC" | ||||||
|  |                 ;; | ||||||
|  |             esac | ||||||
|  |         else # !GCC | ||||||
|  |             case "$host_os" in | ||||||
|  |             hpux9*|hpux10*|hpux11*) | ||||||
|  |                 # PIC is the default for IA64 HP-UX and 64-bit HP-UX, | ||||||
|  |                 # but not for PA HP-UX. | ||||||
|  |                 case "$host_cpu" in | ||||||
|  |                 hppa*64*|ia64*) | ||||||
|  |                     # +Z the default | ||||||
|  |                     ;; | ||||||
|  |                 *) | ||||||
|  |                     PIC_FLAGS="+Z" | ||||||
|  |                     ;; | ||||||
|  |                 esac | ||||||
|  |                 ;; | ||||||
|  |             linux*|k*bsd*-gnu) | ||||||
|  |                 case `basename "$CC"` in | ||||||
|  |                 icc*|ecc*|ifort*) | ||||||
|  |                     PIC_FLAGS="-KPIC" | ||||||
|  |                     ;; | ||||||
|  |                 pgcc*|pgf77*|pgf90*|pgf95*) | ||||||
|  |                     # Portland Group compilers (*not* the Pentium gcc | ||||||
|  |                     # compiler, which looks to be a dead project) | ||||||
|  |                     PIC_FLAGS="-fpic" | ||||||
|  |                     ;; | ||||||
|  |                 ccc*) | ||||||
|  |                     # All Alpha code is PIC. | ||||||
|  |                     ;; | ||||||
|  |                 xl*) | ||||||
|  |                     # IBM XL C 8.0/Fortran 10.1 on PPC | ||||||
|  |                     PIC_FLAGS="-qpic" | ||||||
|  |                     ;; | ||||||
|  |                 *) | ||||||
|  |                     case `$CC -V 2>&1 | sed 5q` in | ||||||
|  |                     *Sun\ C*|*Sun\ F*) | ||||||
|  |                         # Sun C 5.9 or Sun Fortran | ||||||
|  |                         PIC_FLAGS="-KPIC" | ||||||
|  |                         ;; | ||||||
|  |                     esac | ||||||
|  |                 esac | ||||||
|  |                 ;; | ||||||
|  |             solaris*) | ||||||
|  |                 PIC_FLAGS="-KPIC" | ||||||
|  |                 ;; | ||||||
|  |             sunos4*) | ||||||
|  |                 PIC_FLAGS="-PIC" | ||||||
|  |                 ;; | ||||||
|  |             esac | ||||||
|  |         fi # GCC | ||||||
|  |     fi # PIC_FLAGS | ||||||
|  |     AC_MSG_RESULT([$PIC_FLAGS]) | ||||||
|  | fi | ||||||
|  | AC_SUBST([PIC_FLAGS]) | ||||||
|  | ])# MESA_PIC_FLAGS | ||||||
							
								
								
									
										92
									
								
								appveyor.yml
									
									
									
									
									
								
							
							
						
						
									
										92
									
								
								appveyor.yml
									
									
									
									
									
								
							| @@ -1,92 +0,0 @@ | |||||||
| # http://www.appveyor.com/docs/appveyor-yml |  | ||||||
| # |  | ||||||
| # To setup AppVeyor for your own personal repositories do the following: |  | ||||||
| # - Sign up |  | ||||||
| # - Add a new project |  | ||||||
| # - Select Git and fill in the Git clone URL |  | ||||||
| # - Setup a Git hook as explained in |  | ||||||
| #   https://github.com/appveyor/webhooks#installing-git-hook |  | ||||||
| # - Check 'Settings > General > Skip branches without appveyor.yml' |  | ||||||
| # - Check 'Settings > General > Rolling builds' |  | ||||||
| # - Setup the global or project notifications to your liking |  | ||||||
| # |  | ||||||
| # Note that kicking (or restarting) a build via the web UI will not work, as it |  | ||||||
| # will fail to find appveyor.yml .  The Git hook is the most practical way to |  | ||||||
| # kick a build. |  | ||||||
| # |  | ||||||
| # See also: |  | ||||||
| # - http://help.appveyor.com/discussions/problems/2209-node-grunt-build-specify-a-project-or-solution-file-the-directory-does-not-contain-a-project-or-solution-file |  | ||||||
| # - http://help.appveyor.com/discussions/questions/1184-build-config-vs-appveyoryaml |  | ||||||
|  |  | ||||||
| version: '{build}' |  | ||||||
|  |  | ||||||
| branches: |  | ||||||
|   except: |  | ||||||
|   - /^travis.*$/ |  | ||||||
|  |  | ||||||
| # Don't download the full Mesa history to speed up cloning.  However the clone |  | ||||||
| # depth must not be too small, otherwise builds might fail when lots of patches |  | ||||||
| # are committed in succession, because the desired commit is not found on the |  | ||||||
| # truncated history. |  | ||||||
| # |  | ||||||
| # See also: |  | ||||||
| # - https://www.appveyor.com/blog/2014/06/04/shallow-clone-for-git-repositories |  | ||||||
| clone_depth: 100 |  | ||||||
|  |  | ||||||
| # https://www.appveyor.com/docs/build-cache/ |  | ||||||
| cache: |  | ||||||
| - '%LOCALAPPDATA%\pip\Cache -> appveyor.yml' |  | ||||||
| - win_flex_bison-2.5.15.zip |  | ||||||
| - llvm-5.0.1-msvc2017-mtd.7z |  | ||||||
|  |  | ||||||
| os: Visual Studio 2017 |  | ||||||
|  |  | ||||||
| init: |  | ||||||
| # Appveyor defaults core.autocrlf to input instead of the default (true), but |  | ||||||
| # that can hide problems processing CRLF text on Windows |  | ||||||
| - git config --global core.autocrlf true |  | ||||||
|  |  | ||||||
| environment: |  | ||||||
|   WINFLEXBISON_VERSION: 2.5.15 |  | ||||||
|   LLVM_ARCHIVE: llvm-5.0.1-msvc2017-mtd.7z |  | ||||||
|  |  | ||||||
| install: |  | ||||||
| # Check git config |  | ||||||
| - git config core.autocrlf |  | ||||||
| # Check pip |  | ||||||
| - python --version |  | ||||||
| - python -m pip --version |  | ||||||
| # Install Mako |  | ||||||
| - python -m pip install Mako==1.0.7 |  | ||||||
| # Install pywin32 extensions, needed by SCons |  | ||||||
| - python -m pip install pypiwin32 |  | ||||||
| # Install python wheels, necessary to install SCons via pip |  | ||||||
| - python -m pip install wheel |  | ||||||
| # Install SCons |  | ||||||
| - python -m pip install scons==3.0.1 |  | ||||||
| - scons --version |  | ||||||
| # Install flex/bison |  | ||||||
| - set WINFLEXBISON_ARCHIVE=win_flex_bison-%WINFLEXBISON_VERSION%.zip |  | ||||||
| - if not exist "%WINFLEXBISON_ARCHIVE%" appveyor DownloadFile "https://github.com/lexxmark/winflexbison/releases/download/v%WINFLEXBISON_VERSION%/%WINFLEXBISON_ARCHIVE%" |  | ||||||
| - 7z x -y -owinflexbison\ "%WINFLEXBISON_ARCHIVE%" > nul |  | ||||||
| - set Path=%CD%\winflexbison;%Path% |  | ||||||
| - win_flex --version |  | ||||||
| - win_bison --version |  | ||||||
| # Download and extract LLVM |  | ||||||
| - if not exist "%LLVM_ARCHIVE%" appveyor DownloadFile "https://people.freedesktop.org/~jrfonseca/llvm/%LLVM_ARCHIVE%" |  | ||||||
| - 7z x -y "%LLVM_ARCHIVE%" > nul |  | ||||||
| - mkdir llvm\bin |  | ||||||
| - set LLVM=%CD%\llvm |  | ||||||
|  |  | ||||||
| build_script: |  | ||||||
| - scons -j%NUMBER_OF_PROCESSORS% MSVC_VERSION=14.1 llvm=1 |  | ||||||
|  |  | ||||||
| after_build: |  | ||||||
| - scons -j%NUMBER_OF_PROCESSORS% MSVC_VERSION=14.1 llvm=1 check |  | ||||||
|  |  | ||||||
|  |  | ||||||
| # It's possible to setup notification here, as described in |  | ||||||
| # http://www.appveyor.com/docs/notifications#appveyor-yml-configuration , but |  | ||||||
| # doing so would cause the notification settings to be replicated across all |  | ||||||
| # repos, which is most likely undesired.  So it's better to rely on the |  | ||||||
| # Appveyor global/project notification settings. |  | ||||||
| @@ -6,8 +6,8 @@ test -z "$srcdir" && srcdir=. | |||||||
| ORIGDIR=`pwd` | ORIGDIR=`pwd` | ||||||
| cd "$srcdir" | cd "$srcdir" | ||||||
|  |  | ||||||
| autoreconf --force --verbose --install || exit 1 | autoreconf -v --install || exit 1 | ||||||
| cd "$ORIGDIR" || exit $? | cd $ORIGDIR || exit $? | ||||||
|  |  | ||||||
| if test -z "$NOCONFIGURE"; then | if test -z "$NOCONFIGURE"; then | ||||||
|     "$srcdir"/configure "$@" |     "$srcdir"/configure "$@" | ||||||
|   | |||||||
| @@ -1,2 +0,0 @@ | |||||||
| [*.sh] |  | ||||||
| indent_style = tab |  | ||||||
| @@ -1,35 +0,0 @@ | |||||||
| #!/bin/sh |  | ||||||
|  |  | ||||||
| # This script is used to generate the list of fixed bugs that |  | ||||||
| # appears in the release notes files, with HTML formatting. |  | ||||||
| # |  | ||||||
| # Note: This script could take a while until all details have |  | ||||||
| #       been fetched from bugzilla. |  | ||||||
| # |  | ||||||
| # Usage examples: |  | ||||||
| # |  | ||||||
| # $ bin/bugzilla_mesa.sh mesa-9.0.2..mesa-9.0.3 |  | ||||||
| # $ bin/bugzilla_mesa.sh mesa-9.0.2..mesa-9.0.3 > bugfixes |  | ||||||
| # $ bin/bugzilla_mesa.sh mesa-9.0.2..mesa-9.0.3 | tee bugfixes |  | ||||||
|  |  | ||||||
|  |  | ||||||
| # regex pattern: trim before bug number |  | ||||||
| trim_before='s/.*show_bug.cgi?id=\([0-9]*\).*/\1/' |  | ||||||
|  |  | ||||||
| # regex pattern: reconstruct the url |  | ||||||
| use_after='s,^,https://bugs.freedesktop.org/show_bug.cgi?id=,' |  | ||||||
|  |  | ||||||
| echo "<ul>" |  | ||||||
| echo "" |  | ||||||
|  |  | ||||||
| # extract fdo urls from commit log |  | ||||||
| git log --pretty=medium $* | grep 'bugs.freedesktop.org/show_bug' | sed -e $trim_before | sort -n -u | sed -e $use_after |\ |  | ||||||
| while read url |  | ||||||
| do |  | ||||||
| 	id=$(echo $url | cut -d'=' -f2) |  | ||||||
| 	summary=$(wget --quiet -O - $url | grep -e '<title>.*</title>' | sed -e 's/ *<title>[0-9]\+ – \(.*\)<\/title>/\1/') |  | ||||||
| 	echo "<li><a href=\"$url\">Bug $id</a> - $summary</li>" |  | ||||||
| 	echo "" |  | ||||||
| done |  | ||||||
|  |  | ||||||
| echo "</ul>" |  | ||||||
| @@ -1,45 +0,0 @@ | |||||||
| #!/bin/sh |  | ||||||
|  |  | ||||||
| # Script for generating a list of candidates which fix commits that have been |  | ||||||
| # previously cherry-picked to a stable branch. |  | ||||||
| # |  | ||||||
| # Usage examples: |  | ||||||
| # |  | ||||||
| # $ bin/get-extra-pick-list.sh |  | ||||||
| # $ bin/get-extra-pick-list.sh > picklist |  | ||||||
| # $ bin/get-extra-pick-list.sh | tee picklist |  | ||||||
|  |  | ||||||
| # Use the last branchpoint as our limit for the search |  | ||||||
| latest_branchpoint=`git merge-base origin/master HEAD` |  | ||||||
|  |  | ||||||
| # Grep for commits with "cherry picked from commit" in the commit message. |  | ||||||
| git log --reverse --grep="cherry picked from commit" $latest_branchpoint..HEAD |\ |  | ||||||
| 	grep "cherry picked from commit" |\ |  | ||||||
| 	sed -e 's/^[[:space:]]*(cherry picked from commit[[:space:]]*//' -e 's/)//'  > already_picked |  | ||||||
|  |  | ||||||
| # For each cherry-picked commit... |  | ||||||
| cat already_picked | cut -c -8 |\ |  | ||||||
| while read sha |  | ||||||
| do |  | ||||||
| 	# ... check if it's referenced (fixed by another) patch |  | ||||||
| 	git log -n1 --pretty=oneline --grep=$sha $latest_branchpoint..origin/master |\ |  | ||||||
| 		cut -c -8 |\ |  | ||||||
| 	while read candidate |  | ||||||
| 	do |  | ||||||
| 		# And flag up if it hasn't landed in branch yet. |  | ||||||
| 		if grep -q ^$candidate already_picked ; then |  | ||||||
| 			continue |  | ||||||
| 		fi |  | ||||||
| 		# Or if it isn't in the ignore list. |  | ||||||
| 		if [ -f bin/.cherry-ignore ] ; then |  | ||||||
| 			if grep -q ^$candidate bin/.cherry-ignore ; then |  | ||||||
| 				continue |  | ||||||
| 			fi |  | ||||||
| 		fi |  | ||||||
| 		printf "Commit \"%s\" references %s\n" \ |  | ||||||
| 		       "`git log -n1 --pretty=oneline $candidate`" \ |  | ||||||
| 		       "$sha" |  | ||||||
| 	done |  | ||||||
| done |  | ||||||
|  |  | ||||||
| rm -f already_picked |  | ||||||
| @@ -1,113 +1,18 @@ | |||||||
| #!/bin/sh | #!/bin/sh | ||||||
|  |  | ||||||
| # Script for generating a list of candidates for cherry-picking to a stable branch | # Script for generating a list of candidates for cherry-picking to a stable branch | ||||||
| # |  | ||||||
| # Usage examples: |  | ||||||
| # |  | ||||||
| # $ bin/get-pick-list.sh |  | ||||||
| # $ bin/get-pick-list.sh > picklist |  | ||||||
| # $ bin/get-pick-list.sh | tee picklist |  | ||||||
| # |  | ||||||
| # The output is as follows: |  | ||||||
| # [nomination_type] commit_sha commit summary |  | ||||||
|  |  | ||||||
| is_stable_nomination() | # Grep for commits with "cherry picked from commit" in the commit message. | ||||||
| { | git log --reverse --grep="cherry picked from commit" origin/master..HEAD |\ | ||||||
| 	git show --pretty=medium --summary "$1" | grep -q -i -o "CC:.*mesa-stable" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| is_typod_nomination() |  | ||||||
| { |  | ||||||
| 	git show --pretty=medium --summary "$1" | grep -q -i -o "CC:.*mesa-dev" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| fixes= |  | ||||||
|  |  | ||||||
| # Helper to handle various mistypos of the fixes tag. |  | ||||||
| # The tag string itself is passed as argument and normalised within. |  | ||||||
| # |  | ||||||
| # Resulting string in the global variable "fixes" and contains entries |  | ||||||
| # in the form "fixes:$sha" |  | ||||||
| is_sha_nomination() |  | ||||||
| { |  | ||||||
| 	fixes=`git show --pretty=medium -s $1 | tr -d "\n" | \ |  | ||||||
| 		sed -e 's/'"$2"'/\nfixes:/Ig' | \ |  | ||||||
| 		grep -Eo 'fixes:[a-f0-9]{8,40}'` |  | ||||||
|  |  | ||||||
| 	fixes_count=`echo "$fixes" | grep "fixes:" | wc -l` |  | ||||||
| 	if test $fixes_count -eq 0; then |  | ||||||
| 		return 1 |  | ||||||
| 	fi |  | ||||||
|  |  | ||||||
| 	# Throw a warning for each invalid sha |  | ||||||
| 	while test $fixes_count -gt 0; do |  | ||||||
| 		# Treat only the current line |  | ||||||
| 		id=`echo "$fixes" | tail -n $fixes_count | head -n 1 | cut -d : -f 2` |  | ||||||
| 		fixes_count=$(($fixes_count-1)) |  | ||||||
| 		if ! git show $id >/dev/null 2>&1; then |  | ||||||
| 			echo WARNING: Commit $1 lists invalid sha $id |  | ||||||
| 		fi |  | ||||||
| 	done |  | ||||||
|  |  | ||||||
| 	return 0 |  | ||||||
| } |  | ||||||
|  |  | ||||||
| # Checks if at least one of offending commits, listed in the global |  | ||||||
| # "fixes", is in branch. |  | ||||||
| sha_in_range() |  | ||||||
| { |  | ||||||
| 	fixes_count=`echo "$fixes" | grep "fixes:" | wc -l` |  | ||||||
| 	while test $fixes_count -gt 0; do |  | ||||||
| 		# Treat only the current line |  | ||||||
| 		id=`echo "$fixes" | tail -n $fixes_count | head -n 1 | cut -d : -f 2` |  | ||||||
| 		fixes_count=$(($fixes_count-1)) |  | ||||||
|  |  | ||||||
| 		# Be that cherry-picked ... |  | ||||||
| 		# ... or landed before the branchpoint. |  | ||||||
| 		if grep -q ^$id already_picked || |  | ||||||
| 		   grep -q ^$id already_landed ; then |  | ||||||
| 			return 0 |  | ||||||
| 		fi |  | ||||||
| 	done |  | ||||||
| 	return 1 |  | ||||||
| } |  | ||||||
|  |  | ||||||
| is_fixes_nomination() |  | ||||||
| { |  | ||||||
| 	is_sha_nomination "$1" "fixes:[[:space:]]*" |  | ||||||
| 	if test $? -eq 0; then |  | ||||||
| 		return 0 |  | ||||||
| 	fi |  | ||||||
| 	is_sha_nomination "$1" "fixes[[:space:]]\+" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| is_brokenby_nomination() |  | ||||||
| { |  | ||||||
| 	is_sha_nomination "$1" "broken by" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| is_revert_nomination() |  | ||||||
| { |  | ||||||
| 	is_sha_nomination "$1" "This reverts commit " |  | ||||||
| } |  | ||||||
|  |  | ||||||
| # Use the last branchpoint as our limit for the search |  | ||||||
| latest_branchpoint=`git merge-base origin/master HEAD` |  | ||||||
|  |  | ||||||
| # List all the commits between day 1 and the branch point... |  | ||||||
| git log --reverse --pretty=%H $latest_branchpoint > already_landed |  | ||||||
|  |  | ||||||
| # ... and the ones cherry-picked. |  | ||||||
| git log --reverse --pretty=medium --grep="cherry picked from commit" $latest_branchpoint..HEAD |\ |  | ||||||
| 	grep "cherry picked from commit" |\ | 	grep "cherry picked from commit" |\ | ||||||
| 	sed -e 's/^[[:space:]]*(cherry picked from commit[[:space:]]*//' -e 's/)//' > already_picked | 	sed -e 's/^[[:space:]]*(cherry picked from commit[[:space:]]*//' -e 's/)//' > already_picked | ||||||
|  |  | ||||||
| # Grep for potential candidates | # Grep for commits that were marked as a candidate for the stable tree. | ||||||
| git log --reverse --pretty=%H -i --grep='^CC:.*mesa-stable\|^CC:.*mesa-dev\|\<fixes\>\|\<broken by\>\|This reverts commit' $latest_branchpoint..origin/master |\ | git log --reverse --pretty=%H -i --grep='^[[:space:]]*NOTE: This is a candidate' HEAD..origin/master |\ | ||||||
| while read sha | while read sha | ||||||
| do | do | ||||||
| 	# Check to see whether the patch is on the ignore list. | 	# Check to see whether the patch is on the ignore list. | ||||||
| 	if test -f bin/.cherry-ignore; then | 	if [ -f bin/.cherry-ignore ] ; then | ||||||
| 		if grep -q ^$sha bin/.cherry-ignore ; then | 		if grep -q ^$sha bin/.cherry-ignore ; then | ||||||
| 			continue | 			continue | ||||||
| 		fi | 		fi | ||||||
| @@ -118,33 +23,7 @@ do | |||||||
| 		continue | 		continue | ||||||
| 	fi | 	fi | ||||||
|  |  | ||||||
| 	if is_fixes_nomination "$sha"; then | 	git log -n1 --pretty=oneline $sha | cat | ||||||
| 		tag=fixes |  | ||||||
| 	elif is_brokenby_nomination "$sha"; then |  | ||||||
| 		tag=brokenby |  | ||||||
| 	elif is_revert_nomination "$sha"; then |  | ||||||
| 		tag=revert |  | ||||||
| 	elif is_stable_nomination "$sha"; then |  | ||||||
| 		tag=stable |  | ||||||
| 	elif is_typod_nomination "$sha"; then |  | ||||||
| 		tag=typod |  | ||||||
| 	else |  | ||||||
| 		continue |  | ||||||
| 	fi |  | ||||||
|  |  | ||||||
| 	case "$tag" in |  | ||||||
| 	fixes | brokenby | revert ) |  | ||||||
| 		if ! sha_in_range; then |  | ||||||
| 			continue |  | ||||||
| 		fi |  | ||||||
| 		;; |  | ||||||
| 	* ) |  | ||||||
| 		;; |  | ||||||
| 	esac |  | ||||||
|  |  | ||||||
| 	printf "[ %8s ] " "$tag" |  | ||||||
| 	git --no-pager show --no-patch --oneline $sha |  | ||||||
| done | done | ||||||
|  |  | ||||||
| rm -f already_picked | rm -f already_picked | ||||||
| rm -f already_landed |  | ||||||
|   | |||||||
| @@ -1,50 +0,0 @@ | |||||||
| """ |  | ||||||
| Generate the contents of the git_sha1.h file. |  | ||||||
| The output of this script goes to stdout. |  | ||||||
| """ |  | ||||||
|  |  | ||||||
|  |  | ||||||
| import argparse |  | ||||||
| import os |  | ||||||
| import os.path |  | ||||||
| import subprocess |  | ||||||
| import sys |  | ||||||
|  |  | ||||||
|  |  | ||||||
| def get_git_sha1(): |  | ||||||
|     """Try to get the git SHA1 with git rev-parse.""" |  | ||||||
|     git_dir = os.path.join(os.path.dirname(sys.argv[0]), '..', '.git') |  | ||||||
|     try: |  | ||||||
|         git_sha1 = subprocess.check_output([ |  | ||||||
|             'git', |  | ||||||
|             '--git-dir=' + git_dir, |  | ||||||
|             'rev-parse', |  | ||||||
|             'HEAD', |  | ||||||
|         ], stderr=open(os.devnull, 'w')).decode("ascii") |  | ||||||
|     except: |  | ||||||
|         # don't print anything if it fails |  | ||||||
|         git_sha1 = '' |  | ||||||
|     return git_sha1 |  | ||||||
|  |  | ||||||
| def write_if_different(contents): |  | ||||||
|     """ |  | ||||||
|     Avoid touching the output file if it doesn't need modifications |  | ||||||
|     Useful to avoid triggering rebuilds when nothing has changed. |  | ||||||
|     """ |  | ||||||
|     if os.path.isfile(args.output): |  | ||||||
|         with open(args.output, 'r') as file: |  | ||||||
|             if file.read() == contents: |  | ||||||
|                 return |  | ||||||
|     with open(args.output, 'w') as file: |  | ||||||
|         file.write(contents) |  | ||||||
|  |  | ||||||
| parser = argparse.ArgumentParser() |  | ||||||
| parser.add_argument('--output', help='File to write the #define in', |  | ||||||
|                     required=True) |  | ||||||
| args = parser.parse_args() |  | ||||||
|  |  | ||||||
| git_sha1 = os.environ.get('MESA_GIT_SHA1_OVERRIDE', get_git_sha1())[:10] |  | ||||||
| if git_sha1: |  | ||||||
|     write_if_different('#define MESA_GIT_SHA1 " (git-' + git_sha1 + ')"') |  | ||||||
| else: |  | ||||||
|     write_if_different('#define MESA_GIT_SHA1 ""') |  | ||||||
| @@ -1,74 +0,0 @@ | |||||||
| # encoding=utf-8 |  | ||||||
| # Copyright © 2017-2018 Intel Corporation |  | ||||||
|  |  | ||||||
| # Permission is hereby granted, free of charge, to any person obtaining a copy |  | ||||||
| # of this software and associated documentation files (the "Software"), to deal |  | ||||||
| # in the Software without restriction, including without limitation the rights |  | ||||||
| # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |  | ||||||
| # copies of the Software, and to permit persons to whom the Software is |  | ||||||
| # furnished to do so, subject to the following conditions: |  | ||||||
|  |  | ||||||
| # The above copyright notice and this permission notice shall be included in |  | ||||||
| # all copies or substantial portions of the Software. |  | ||||||
|  |  | ||||||
| # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |  | ||||||
| # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |  | ||||||
| # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |  | ||||||
| # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |  | ||||||
| # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |  | ||||||
| # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |  | ||||||
| # SOFTWARE. |  | ||||||
|  |  | ||||||
| """Script to install megadriver symlinks for meson.""" |  | ||||||
|  |  | ||||||
| from __future__ import print_function |  | ||||||
| import argparse |  | ||||||
| import os |  | ||||||
| import shutil |  | ||||||
|  |  | ||||||
|  |  | ||||||
| def main(): |  | ||||||
|     parser = argparse.ArgumentParser() |  | ||||||
|     parser.add_argument('megadriver') |  | ||||||
|     parser.add_argument('libdir') |  | ||||||
|     parser.add_argument('drivers', nargs='+') |  | ||||||
|     args = parser.parse_args() |  | ||||||
|  |  | ||||||
|     if os.path.isabs(args.libdir): |  | ||||||
|         to = os.path.join(os.environ.get('DESTDIR', '/'), args.libdir[1:]) |  | ||||||
|     else: |  | ||||||
|         to = os.path.join(os.environ['MESON_INSTALL_DESTDIR_PREFIX'], args.libdir) |  | ||||||
|  |  | ||||||
|     master = os.path.join(to, os.path.basename(args.megadriver)) |  | ||||||
|  |  | ||||||
|     if not os.path.exists(to): |  | ||||||
|         if os.path.lexists(to): |  | ||||||
|             os.unlink(to) |  | ||||||
|         os.makedirs(to) |  | ||||||
|     shutil.copy(args.megadriver, master) |  | ||||||
|  |  | ||||||
|     for driver in args.drivers: |  | ||||||
|         abs_driver = os.path.join(to, driver) |  | ||||||
|  |  | ||||||
|         if os.path.lexists(abs_driver): |  | ||||||
|             os.unlink(abs_driver) |  | ||||||
|         print('installing {} to {}'.format(args.megadriver, abs_driver)) |  | ||||||
|         os.link(master, abs_driver) |  | ||||||
|  |  | ||||||
|         try: |  | ||||||
|             ret = os.getcwd() |  | ||||||
|             os.chdir(to) |  | ||||||
|  |  | ||||||
|             name, ext = os.path.splitext(driver) |  | ||||||
|             while ext != '.so': |  | ||||||
|                 if os.path.lexists(name): |  | ||||||
|                     os.unlink(name) |  | ||||||
|                 os.symlink(driver, name) |  | ||||||
|                 name, ext = os.path.splitext(name) |  | ||||||
|         finally: |  | ||||||
|             os.chdir(ret) |  | ||||||
|     os.unlink(master) |  | ||||||
|  |  | ||||||
|  |  | ||||||
| if __name__ == '__main__': |  | ||||||
|     main() |  | ||||||
							
								
								
									
										74
									
								
								bin/installmesa
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										74
									
								
								bin/installmesa
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,74 @@ | |||||||
|  | #!/bin/sh | ||||||
|  |  | ||||||
|  | # | ||||||
|  | # Simple shell script for installing Mesa's header and library files. | ||||||
|  | # If the copy commands below don't work on a particular system (i.e. the | ||||||
|  | # -f or -d flags), we may need to branch on `uname` to do the right thing. | ||||||
|  | # | ||||||
|  |  | ||||||
|  |  | ||||||
|  | TOP=. | ||||||
|  |  | ||||||
|  | INCLUDE_DIR="/usr/local/include" | ||||||
|  | LIB_DIR="/usr/local/lib" | ||||||
|  |  | ||||||
|  | if [ "x$#" = "x0" ] ; then | ||||||
|  | echo | ||||||
|  | echo "***** Mesa installation - You may need root privileges to do this *****" | ||||||
|  | echo | ||||||
|  | echo "Default directory for header files is:" ${INCLUDE_DIR} | ||||||
|  | echo "Enter new directory or press <Enter> to accept this default." | ||||||
|  |  | ||||||
|  | read INPUT | ||||||
|  | if [ "x${INPUT}" != "x" ] ; then | ||||||
|  | 	INCLUDE_DIR=${INPUT} | ||||||
|  | fi | ||||||
|  |  | ||||||
|  | echo | ||||||
|  | echo "Default directory for library files is:" ${LIB_DIR} | ||||||
|  | echo "Enter new directory or press <Enter> to accept this default." | ||||||
|  |  | ||||||
|  | read INPUT | ||||||
|  | if [ "x${INPUT}" != "x" ] ; then | ||||||
|  | 	LIB_DIR=${INPUT} | ||||||
|  | fi | ||||||
|  |  | ||||||
|  | echo | ||||||
|  | echo "About to install Mesa header files (GL/*.h) in: " ${INCLUDE_DIR}/GL | ||||||
|  | echo "and Mesa library files (libGL.*, etc) in: " ${LIB_DIR} | ||||||
|  | echo "Press <Enter> to continue, or <ctrl>-C to abort." | ||||||
|  |  | ||||||
|  | read INPUT | ||||||
|  |  | ||||||
|  | else | ||||||
|  | INCLUDE_DIR=$1/include | ||||||
|  | LIB_DIR=$1/lib | ||||||
|  | fi | ||||||
|  |  | ||||||
|  | # flags: | ||||||
|  | #  -f = force | ||||||
|  | #  -d = preserve symlinks (does not work on BSD) | ||||||
|  |  | ||||||
|  | if [ `uname` = "FreeBSD" ] ; then | ||||||
|  | 	CP_FLAGS="-f" | ||||||
|  | elif [ `uname` = "Darwin" ] ; then | ||||||
|  | 	CP_FLAGS="-f" | ||||||
|  | elif [ `uname` = "AIX" ] ; then | ||||||
|  | 	CP_FLAGS="-fh" | ||||||
|  | else | ||||||
|  | 	CP_FLAGS="-fd" | ||||||
|  | fi | ||||||
|  |  | ||||||
|  |  | ||||||
|  | set -v | ||||||
|  |  | ||||||
|  | mkdir -p ${INCLUDE_DIR} | ||||||
|  | mkdir -p ${INCLUDE_DIR}/GL | ||||||
|  | # NOT YET: mkdir -p ${INCLUDE_DIR}/GLES | ||||||
|  | mkdir -p ${LIB_DIR} | ||||||
|  | cp -f ${TOP}/include/GL/*.h ${INCLUDE_DIR}/GL | ||||||
|  | cp -f ${TOP}/src/glw/*.h ${INCLUDE_DIR}/GL | ||||||
|  | # NOT YET: cp -f ${TOP}/include/GLES/*.h ${INCLUDE_DIR}/GLES | ||||||
|  | cp ${CP_FLAGS} ${TOP}/lib*/lib* ${LIB_DIR} | ||||||
|  |  | ||||||
|  | echo "Done." | ||||||
| @@ -1,88 +0,0 @@ | |||||||
| #!/usr/bin/env python3 |  | ||||||
| # Copyright © 2019 Intel Corporation |  | ||||||
|  |  | ||||||
| # Permission is hereby granted, free of charge, to any person obtaining a copy |  | ||||||
| # of this software and associated documentation files (the "Software"), to deal |  | ||||||
| # in the Software without restriction, including without limitation the rights |  | ||||||
| # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |  | ||||||
| # copies of the Software, and to permit persons to whom the Software is |  | ||||||
| # furnished to do so, subject to the following conditions: |  | ||||||
|  |  | ||||||
| # The above copyright notice and this permission notice shall be included in |  | ||||||
| # all copies or substantial portions of the Software. |  | ||||||
|  |  | ||||||
| # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |  | ||||||
| # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |  | ||||||
| # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |  | ||||||
| # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |  | ||||||
| # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |  | ||||||
| # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |  | ||||||
| # SOFTWARE. |  | ||||||
|  |  | ||||||
| """This script reads a meson build directory and gives back the command line it |  | ||||||
| was configured with. |  | ||||||
|  |  | ||||||
| This only works for meson 0.49.0 and newer. |  | ||||||
| """ |  | ||||||
|  |  | ||||||
| import argparse |  | ||||||
| import ast |  | ||||||
| import configparser |  | ||||||
| import pathlib |  | ||||||
| import sys |  | ||||||
|  |  | ||||||
|  |  | ||||||
| def parse_args() -> argparse.Namespace: |  | ||||||
|     """Parse arguments.""" |  | ||||||
|     parser = argparse.ArgumentParser() |  | ||||||
|     parser.add_argument( |  | ||||||
|         'build_dir', |  | ||||||
|         help='Path the meson build directory') |  | ||||||
|     args = parser.parse_args() |  | ||||||
|     return args |  | ||||||
|  |  | ||||||
|  |  | ||||||
| def load_config(path: pathlib.Path) -> configparser.ConfigParser: |  | ||||||
|     """Load config file.""" |  | ||||||
|     conf = configparser.ConfigParser() |  | ||||||
|     with path.open() as f: |  | ||||||
|         conf.read_file(f) |  | ||||||
|     return conf |  | ||||||
|  |  | ||||||
|  |  | ||||||
| def build_cmd(conf: configparser.ConfigParser) -> str: |  | ||||||
|     """Rebuild the command line.""" |  | ||||||
|     args = [] |  | ||||||
|     for k, v in conf['options'].items(): |  | ||||||
|         if ' ' in v: |  | ||||||
|             args.append(f'-D{k}="{v}"') |  | ||||||
|         else: |  | ||||||
|             args.append(f'-D{k}={v}') |  | ||||||
|  |  | ||||||
|     cf = conf['properties'].get('cross_file') |  | ||||||
|     if cf: |  | ||||||
|         args.append('--cross-file={}'.format(cf)) |  | ||||||
|     nf = conf['properties'].get('native_file') |  | ||||||
|     if nf: |  | ||||||
|         # this will be in the form "['str', 'str']", so use ast.literal_eval to |  | ||||||
|         # convert it to a list of strings. |  | ||||||
|         nf = ast.literal_eval(nf) |  | ||||||
|         args.extend(['--native-file={}'.format(f) for f in nf]) |  | ||||||
|     return ' '.join(args) |  | ||||||
|  |  | ||||||
|  |  | ||||||
| def main(): |  | ||||||
|     args = parse_args() |  | ||||||
|     path = pathlib.Path(args.build_dir, 'meson-private', 'cmd_line.txt') |  | ||||||
|     if not path.exists(): |  | ||||||
|         print('Cannot find the necessary file to rebuild command line. ' |  | ||||||
|               'Is your meson version >= 0.49.0?', file=sys.stderr) |  | ||||||
|         sys.exit(1) |  | ||||||
|  |  | ||||||
|     conf = load_config(path) |  | ||||||
|     cmd = build_cmd(conf) |  | ||||||
|     print(cmd) |  | ||||||
|  |  | ||||||
|  |  | ||||||
| if __name__ == '__main__': |  | ||||||
|     main() |  | ||||||
| @@ -1,63 +0,0 @@ | |||||||
| #!/usr/bin/env python3 |  | ||||||
|  |  | ||||||
| from os import get_terminal_size |  | ||||||
| from textwrap import wrap |  | ||||||
| from mesonbuild import coredata |  | ||||||
| from mesonbuild import optinterpreter |  | ||||||
|  |  | ||||||
| (COLUMNS, _) = get_terminal_size() |  | ||||||
|  |  | ||||||
| def describe_option(option_name: str, option_default_value: str, |  | ||||||
|                     option_type: str, option_message: str) -> None: |  | ||||||
|     print('name:    ' + option_name) |  | ||||||
|     print('default: ' + option_default_value) |  | ||||||
|     print('type:    ' + option_type) |  | ||||||
|     for line in wrap(option_message, width=COLUMNS - 9): |  | ||||||
|         print('         ' + line) |  | ||||||
|     print('---') |  | ||||||
|  |  | ||||||
| oi = optinterpreter.OptionInterpreter('') |  | ||||||
| oi.process('meson_options.txt') |  | ||||||
|  |  | ||||||
| for (name, value) in oi.options.items(): |  | ||||||
|     if isinstance(value, coredata.UserStringOption): |  | ||||||
|         describe_option(name, |  | ||||||
|                         value.value, |  | ||||||
|                         'string', |  | ||||||
|                         "You can type what you want, but make sure it makes sense") |  | ||||||
|     elif isinstance(value, coredata.UserBooleanOption): |  | ||||||
|         describe_option(name, |  | ||||||
|                         'true' if value.value else 'false', |  | ||||||
|                         'boolean', |  | ||||||
|                         "You can set it to 'true' or 'false'") |  | ||||||
|     elif isinstance(value, coredata.UserIntegerOption): |  | ||||||
|         describe_option(name, |  | ||||||
|                         str(value.value), |  | ||||||
|                         'integer', |  | ||||||
|                         "You can set it to any integer value between '{}' and '{}'".format(value.min_value, value.max_value)) |  | ||||||
|     elif isinstance(value, coredata.UserUmaskOption): |  | ||||||
|         describe_option(name, |  | ||||||
|                         str(value.value), |  | ||||||
|                         'umask', |  | ||||||
|                         "You can set it to 'preserve' or a value between '0000' and '0777'") |  | ||||||
|     elif isinstance(value, coredata.UserComboOption): |  | ||||||
|         choices = '[' + ', '.join(["'" + v + "'" for v in value.choices]) + ']' |  | ||||||
|         describe_option(name, |  | ||||||
|                         value.value, |  | ||||||
|                         'combo', |  | ||||||
|                         "You can set it to any one of those values: " + choices) |  | ||||||
|     elif isinstance(value, coredata.UserArrayOption): |  | ||||||
|         choices = '[' + ', '.join(["'" + v + "'" for v in value.choices]) + ']' |  | ||||||
|         value = '[' + ', '.join(["'" + v + "'" for v in value.value]) + ']' |  | ||||||
|         describe_option(name, |  | ||||||
|                         value, |  | ||||||
|                         'array', |  | ||||||
|                         "You can set it to one or more of those values: " + choices) |  | ||||||
|     elif isinstance(value, coredata.UserFeatureOption): |  | ||||||
|         describe_option(name, |  | ||||||
|                         value.value, |  | ||||||
|                         'feature', |  | ||||||
|                         "You can set it to 'auto', 'enabled', or 'disabled'") |  | ||||||
|     else: |  | ||||||
|         print(name + ' is an option of a type unknown to this script') |  | ||||||
|         print('---') |  | ||||||
| @@ -1,21 +0,0 @@ | |||||||
| # Copyright © 2017 Eric Engestrom |  | ||||||
|  |  | ||||||
| # Permission is hereby granted, free of charge, to any person obtaining a copy |  | ||||||
| # of this software and associated documentation files (the "Software"), to deal |  | ||||||
| # in the Software without restriction, including without limitation the rights |  | ||||||
| # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |  | ||||||
| # copies of the Software, and to permit persons to whom the Software is |  | ||||||
| # furnished to do so, subject to the following conditions: |  | ||||||
|  |  | ||||||
| # The above copyright notice and this permission notice shall be included in |  | ||||||
| # all copies or substantial portions of the Software. |  | ||||||
|  |  | ||||||
| # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |  | ||||||
| # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |  | ||||||
| # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |  | ||||||
| # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |  | ||||||
| # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |  | ||||||
| # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |  | ||||||
| # SOFTWARE. |  | ||||||
|  |  | ||||||
| git_sha1_gen_py = files('git_sha1_gen.py') |  | ||||||
| @@ -1,35 +0,0 @@ | |||||||
| #!/usr/bin/env python |  | ||||||
| # encoding=utf-8 |  | ||||||
| # Copyright © 2017 Intel Corporation |  | ||||||
|  |  | ||||||
| # Permission is hereby granted, free of charge, to any person obtaining a copy |  | ||||||
| # of this software and associated documentation files (the "Software"), to deal |  | ||||||
| # in the Software without restriction, including without limitation the rights |  | ||||||
| # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |  | ||||||
| # copies of the Software, and to permit persons to whom the Software is |  | ||||||
| # furnished to do so, subject to the following conditions: |  | ||||||
|  |  | ||||||
| # The above copyright notice and this permission notice shall be included in |  | ||||||
| # all copies or substantial portions of the Software. |  | ||||||
|  |  | ||||||
| # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |  | ||||||
| # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |  | ||||||
| # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |  | ||||||
| # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |  | ||||||
| # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |  | ||||||
| # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |  | ||||||
| # SOFTWARE. |  | ||||||
|  |  | ||||||
| from __future__ import print_function |  | ||||||
| import os |  | ||||||
|  |  | ||||||
|  |  | ||||||
| def main(): |  | ||||||
|     filename = os.path.join(os.environ['MESON_SOURCE_ROOT'], 'VERSION') |  | ||||||
|     with open(filename) as f: |  | ||||||
|         version = f.read().strip() |  | ||||||
|     print(version, end='') |  | ||||||
|  |  | ||||||
|  |  | ||||||
| if __name__ == '__main__': |  | ||||||
|     main() |  | ||||||
							
								
								
									
										112
									
								
								bin/minstall
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										112
									
								
								bin/minstall
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,112 @@ | |||||||
|  | #!/bin/sh | ||||||
|  |  | ||||||
|  |  | ||||||
|  | # A minimal replacement for 'install' that supports installing symbolic links. | ||||||
|  | # Only a limited number of options are supported: | ||||||
|  | # -d dir          Create a directory | ||||||
|  | # -m mode         Sets a file's mode when installing | ||||||
|  |  | ||||||
|  |  | ||||||
|  | # If these commands aren't portable, we'll need some "if (arch)" type stuff | ||||||
|  | SYMLINK="ln -s" | ||||||
|  | MKDIR="mkdir -p" | ||||||
|  | RM="rm -f" | ||||||
|  |  | ||||||
|  | MODE="" | ||||||
|  |  | ||||||
|  | if [ "$1" = "-d" ] ; then | ||||||
|  | 	# make a directory path | ||||||
|  | 	$MKDIR "$2" | ||||||
|  | 	exit 0 | ||||||
|  | fi | ||||||
|  |  | ||||||
|  | if [ "$1" = "-m" ] ; then | ||||||
|  | 	# set file mode | ||||||
|  | 	MODE=$2 | ||||||
|  | 	shift 2 | ||||||
|  | fi | ||||||
|  |  | ||||||
|  | # install file(s) into destination | ||||||
|  | if [ $# -ge 2 ] ; then | ||||||
|  |  | ||||||
|  | 	# Last cmd line arg is the dest dir | ||||||
|  | 	for FILE in $@ ; do | ||||||
|  | 		DESTDIR="$FILE" | ||||||
|  | 	done | ||||||
|  |  | ||||||
|  | 	# Loop over args, moving them to DEST directory | ||||||
|  | 	I=1 | ||||||
|  | 	for FILE in $@ ; do | ||||||
|  | 		if [ $I = $# ] ; then | ||||||
|  | 			# stop, don't want to install $DEST into $DEST | ||||||
|  | 			exit 0 | ||||||
|  | 		fi | ||||||
|  |  | ||||||
|  |                 DEST=$DESTDIR | ||||||
|  |  | ||||||
|  |                 # On CYGWIN, because DLLs are loaded by the native Win32 loader, | ||||||
|  |                 # they are installed in the executable path.  Stub libraries used | ||||||
|  |                 # only for linking are installed in the library path | ||||||
|  |                 case `uname` in | ||||||
|  |                     CYGWIN*) | ||||||
|  |                         case $FILE in | ||||||
|  |                             *.dll) | ||||||
|  |                                 DEST="$DEST/../bin" | ||||||
|  |                                 ;; | ||||||
|  |                             *) | ||||||
|  |                                 ;; | ||||||
|  |                         esac | ||||||
|  | 	                ;; | ||||||
|  |                     *) | ||||||
|  |                         ;; | ||||||
|  |                 esac | ||||||
|  |  | ||||||
|  | 		PWDSAVE=`pwd` | ||||||
|  |  | ||||||
|  | 		# determine file's type | ||||||
|  | 		if [ -h "$FILE" ] ; then | ||||||
|  | 			#echo $FILE is a symlink | ||||||
|  | 			# Unfortunately, cp -d isn't universal so we have to | ||||||
|  | 			# use a work-around. | ||||||
|  |  | ||||||
|  | 			# Use ls -l to find the target that the link points to | ||||||
|  | 			LL=`ls -l "$FILE"` | ||||||
|  | 			for L in $LL ; do | ||||||
|  | 				TARGET=$L | ||||||
|  | 			done | ||||||
|  | 			#echo $FILE is a symlink pointing to $TARGET | ||||||
|  |  | ||||||
|  | 			FILE=`basename "$FILE"` | ||||||
|  | 			# Go to $DEST and make the link | ||||||
|  | 			cd "$DEST"        # pushd | ||||||
|  | 				$RM "$FILE" | ||||||
|  | 				$SYMLINK "$TARGET" "$FILE" | ||||||
|  | 			cd "$PWDSAVE"     # popd | ||||||
|  |  | ||||||
|  | 		elif [ -f "$FILE" ] ; then | ||||||
|  | 			#echo "$FILE" is a regular file | ||||||
|  | 			# Only copy if the files differ | ||||||
|  | 			if ! cmp -s $FILE $DEST/`basename $FILE`; then | ||||||
|  | 				$RM "$DEST/`basename $FILE`" | ||||||
|  | 				cp "$FILE" "$DEST" | ||||||
|  | 			fi | ||||||
|  | 			if [ $MODE ] ; then | ||||||
|  | 				FILE=`basename "$FILE"` | ||||||
|  | 				chmod $MODE "$DEST/$FILE" | ||||||
|  | 			fi | ||||||
|  | 		else | ||||||
|  | 			echo "Unknown type of argument: " "$FILE" | ||||||
|  | 			exit 1 | ||||||
|  | 		fi | ||||||
|  |  | ||||||
|  | 		I=`expr $I + 1` | ||||||
|  | 	done | ||||||
|  |  | ||||||
|  | 	exit 0 | ||||||
|  | fi | ||||||
|  |  | ||||||
|  | # If we get here, we didn't find anything to do | ||||||
|  | echo "Usage:" | ||||||
|  | echo "  install -d dir                      Create named directory" | ||||||
|  | echo "  install [-m mode] file [...] dest   Install files in destination" | ||||||
|  |  | ||||||
| @@ -1,251 +0,0 @@ | |||||||
| #!/usr/bin/env python |  | ||||||
| # |  | ||||||
| # Copyright 2012 VMware Inc |  | ||||||
| # Copyright 2008-2009 Jose Fonseca |  | ||||||
| # |  | ||||||
| # Permission is hereby granted, free of charge, to any person obtaining a copy |  | ||||||
| # of this software and associated documentation files (the "Software"), to deal |  | ||||||
| # in the Software without restriction, including without limitation the rights |  | ||||||
| # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |  | ||||||
| # copies of the Software, and to permit persons to whom the Software is |  | ||||||
| # furnished to do so, subject to the following conditions: |  | ||||||
| # |  | ||||||
| # The above copyright notice and this permission notice shall be included in |  | ||||||
| # all copies or substantial portions of the Software. |  | ||||||
| # |  | ||||||
| # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |  | ||||||
| # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |  | ||||||
| # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |  | ||||||
| # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |  | ||||||
| # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |  | ||||||
| # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |  | ||||||
| # THE SOFTWARE. |  | ||||||
| # |  | ||||||
|  |  | ||||||
| """Perf annotate for JIT code. |  | ||||||
|  |  | ||||||
| Linux `perf annotate` does not work with JIT code.  This script takes the data |  | ||||||
| produced by `perf script` command, plus the diassemblies outputed by gallivm |  | ||||||
| into /tmp/perf-XXXXX.map.asm and produces output similar to `perf annotate`. |  | ||||||
|  |  | ||||||
| See docs/llvmpipe.html for usage instructions. |  | ||||||
|  |  | ||||||
| The `perf script` output parser was derived from the gprof2dot.py script. |  | ||||||
| """ |  | ||||||
|  |  | ||||||
|  |  | ||||||
| import sys |  | ||||||
| import os.path |  | ||||||
| import re |  | ||||||
| import optparse |  | ||||||
| import subprocess |  | ||||||
|  |  | ||||||
|  |  | ||||||
| class Parser: |  | ||||||
|     """Parser interface.""" |  | ||||||
|  |  | ||||||
|     def __init__(self): |  | ||||||
|         pass |  | ||||||
|  |  | ||||||
|     def parse(self): |  | ||||||
|         raise NotImplementedError |  | ||||||
|  |  | ||||||
|  |  | ||||||
| class LineParser(Parser): |  | ||||||
|     """Base class for parsers that read line-based formats.""" |  | ||||||
|  |  | ||||||
|     def __init__(self, file): |  | ||||||
|         Parser.__init__(self) |  | ||||||
|         self._file = file |  | ||||||
|         self.__line = None |  | ||||||
|         self.__eof = False |  | ||||||
|         self.line_no = 0 |  | ||||||
|  |  | ||||||
|     def readline(self): |  | ||||||
|         line = self._file.readline() |  | ||||||
|         if not line: |  | ||||||
|             self.__line = '' |  | ||||||
|             self.__eof = True |  | ||||||
|         else: |  | ||||||
|             self.line_no += 1 |  | ||||||
|         self.__line = line.rstrip('\r\n') |  | ||||||
|  |  | ||||||
|     def lookahead(self): |  | ||||||
|         assert self.__line is not None |  | ||||||
|         return self.__line |  | ||||||
|  |  | ||||||
|     def consume(self): |  | ||||||
|         assert self.__line is not None |  | ||||||
|         line = self.__line |  | ||||||
|         self.readline() |  | ||||||
|         return line |  | ||||||
|  |  | ||||||
|     def eof(self): |  | ||||||
|         assert self.__line is not None |  | ||||||
|         return self.__eof |  | ||||||
|  |  | ||||||
|  |  | ||||||
| mapFile = None |  | ||||||
|  |  | ||||||
| def lookupMap(filename, matchSymbol): |  | ||||||
|     global mapFile |  | ||||||
|     mapFile = filename |  | ||||||
|     stream = open(filename, 'rt') |  | ||||||
|     for line in stream: |  | ||||||
|         start, length, symbol = line.split() |  | ||||||
|  |  | ||||||
|         start = int(start, 16) |  | ||||||
|         length = int(length,16) |  | ||||||
|  |  | ||||||
|         if symbol == matchSymbol: |  | ||||||
|             return start |  | ||||||
|  |  | ||||||
|     return None |  | ||||||
|  |  | ||||||
| def lookupAsm(filename, desiredFunction): |  | ||||||
|     stream = open(filename + '.asm', 'rt') |  | ||||||
|     while stream.readline() != desiredFunction + ':\n': |  | ||||||
|         pass |  | ||||||
|  |  | ||||||
|     asm = [] |  | ||||||
|     line = stream.readline().strip() |  | ||||||
|     while line: |  | ||||||
|         addr, instr = line.split(':', 1) |  | ||||||
|         addr = int(addr) |  | ||||||
|         asm.append((addr, instr)) |  | ||||||
|         line = stream.readline().strip() |  | ||||||
|  |  | ||||||
|     return asm |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| samples = {} |  | ||||||
|  |  | ||||||
|  |  | ||||||
| class PerfParser(LineParser): |  | ||||||
|     """Parser for linux perf callgraph output. |  | ||||||
|  |  | ||||||
|     It expects output generated with |  | ||||||
|  |  | ||||||
|         perf record -g |  | ||||||
|         perf script |  | ||||||
|     """ |  | ||||||
|  |  | ||||||
|     def __init__(self, infile, symbol): |  | ||||||
|         LineParser.__init__(self, infile) |  | ||||||
|         self.symbol = symbol |  | ||||||
|  |  | ||||||
|     def readline(self): |  | ||||||
|         # Override LineParser.readline to ignore comment lines |  | ||||||
|         while True: |  | ||||||
|             LineParser.readline(self) |  | ||||||
|             if self.eof() or not self.lookahead().startswith('#'): |  | ||||||
|                 break |  | ||||||
|  |  | ||||||
|     def parse(self): |  | ||||||
|         # read lookahead |  | ||||||
|         self.readline() |  | ||||||
|  |  | ||||||
|         while not self.eof(): |  | ||||||
|             self.parse_event() |  | ||||||
|  |  | ||||||
|         asm = lookupAsm(mapFile, self.symbol) |  | ||||||
|  |  | ||||||
|         addresses = samples.keys() |  | ||||||
|         addresses.sort() |  | ||||||
|         total_samples = 0 |  | ||||||
|  |  | ||||||
|         sys.stdout.write('%s:\n' % self.symbol) |  | ||||||
|         for address, instr in asm: |  | ||||||
|             try: |  | ||||||
|                 sample = samples.pop(address) |  | ||||||
|             except KeyError: |  | ||||||
|                 sys.stdout.write(6*' ') |  | ||||||
|             else: |  | ||||||
|                 sys.stdout.write('%6u' % (sample)) |  | ||||||
|                 total_samples += sample |  | ||||||
|             sys.stdout.write('%6u: %s\n' % (address, instr)) |  | ||||||
|         print 'total:', total_samples |  | ||||||
|         assert len(samples) == 0 |  | ||||||
|  |  | ||||||
|         sys.exit(0) |  | ||||||
|  |  | ||||||
|     def parse_event(self): |  | ||||||
|         if self.eof(): |  | ||||||
|             return |  | ||||||
|  |  | ||||||
|         line = self.consume() |  | ||||||
|         assert line |  | ||||||
|  |  | ||||||
|         callchain = self.parse_callchain() |  | ||||||
|         if not callchain: |  | ||||||
|             return |  | ||||||
|  |  | ||||||
|     def parse_callchain(self): |  | ||||||
|         callchain = [] |  | ||||||
|         while self.lookahead(): |  | ||||||
|             function = self.parse_call(len(callchain) == 0) |  | ||||||
|             if function is None: |  | ||||||
|                 break |  | ||||||
|             callchain.append(function) |  | ||||||
|         if self.lookahead() == '': |  | ||||||
|             self.consume() |  | ||||||
|         return callchain |  | ||||||
|  |  | ||||||
|     call_re = re.compile(r'^\s+(?P<address>[0-9a-fA-F]+)\s+(?P<symbol>.*)\s+\((?P<module>[^)]*)\)$') |  | ||||||
|  |  | ||||||
|     def parse_call(self, first): |  | ||||||
|         line = self.consume() |  | ||||||
|         mo = self.call_re.match(line) |  | ||||||
|         assert mo |  | ||||||
|         if not mo: |  | ||||||
|             return None |  | ||||||
|  |  | ||||||
|         if not first: |  | ||||||
|             return None |  | ||||||
|  |  | ||||||
|         function_name = mo.group('symbol') |  | ||||||
|         if not function_name: |  | ||||||
|             function_name = mo.group('address') |  | ||||||
|  |  | ||||||
|         module = mo.group('module') |  | ||||||
|  |  | ||||||
|         function_id = function_name + ':' + module |  | ||||||
|  |  | ||||||
|         address = mo.group('address') |  | ||||||
|         address = int(address, 16) |  | ||||||
|  |  | ||||||
|         if function_name != self.symbol: |  | ||||||
|             return None |  | ||||||
|  |  | ||||||
|         start_address = lookupMap(module, function_name) |  | ||||||
|         address -= start_address |  | ||||||
|  |  | ||||||
|         #print function_name, module, address |  | ||||||
|  |  | ||||||
|         samples[address] = samples.get(address, 0) + 1 |  | ||||||
|  |  | ||||||
|         return True |  | ||||||
|  |  | ||||||
|  |  | ||||||
| def main(): |  | ||||||
|     """Main program.""" |  | ||||||
|  |  | ||||||
|     optparser = optparse.OptionParser( |  | ||||||
|         usage="\n\t%prog [options] symbol_name") |  | ||||||
|     (options, args) = optparser.parse_args(sys.argv[1:]) |  | ||||||
|     if len(args) != 1: |  | ||||||
|         optparser.error('wrong number of arguments') |  | ||||||
|  |  | ||||||
|     symbol = args[0] |  | ||||||
|  |  | ||||||
|     p = subprocess.Popen(['perf', 'script'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) |  | ||||||
|     parser = PerfParser(p.stdout, symbol) |  | ||||||
|     parser.parse() |  | ||||||
|  |  | ||||||
|  |  | ||||||
| if __name__ == '__main__': |  | ||||||
|     main() |  | ||||||
|  |  | ||||||
|  |  | ||||||
| # vim: set sw=4 et: |  | ||||||
| @@ -1,16 +1,10 @@ | |||||||
| #!/bin/sh | #!/bin/bash | ||||||
|  |  | ||||||
| # This script is used to generate the list of changes that | # This script is used to generate the list of changes that | ||||||
| # appears in the release notes files, with HTML formatting. | # appears in the release notes files, with HTML formatting. | ||||||
| # |  | ||||||
| # Usage examples: |  | ||||||
| # |  | ||||||
| # $ bin/shortlog_mesa.sh mesa-9.0.2..mesa-9.0.3 |  | ||||||
| # $ bin/shortlog_mesa.sh mesa-9.0.2..mesa-9.0.3 > changes |  | ||||||
| # $ bin/shortlog_mesa.sh mesa-9.0.2..mesa-9.0.3 | tee changes |  | ||||||
|  |  | ||||||
|  |  | ||||||
| in_log=0 | typeset -i in_log=0 | ||||||
|  |  | ||||||
| git shortlog $* | while read l | git shortlog $* | while read l | ||||||
| do | do | ||||||
|   | |||||||
| @@ -1,3 +0,0 @@ | |||||||
| { |  | ||||||
| 	radeon_drm_winsys_create; |  | ||||||
| }; |  | ||||||
| @@ -1,6 +0,0 @@ | |||||||
| VERSION_1 { |  | ||||||
|     global: |  | ||||||
|         main; |  | ||||||
|     local: |  | ||||||
|         *; |  | ||||||
| }; |  | ||||||
							
								
								
									
										26
									
								
								common.py
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								common.py
									
									
									
									
									
								
							| @@ -59,14 +59,13 @@ if target_platform == 'windows' and host_platform != 'windows': | |||||||
|  |  | ||||||
|  |  | ||||||
| # find default_llvm value | # find default_llvm value | ||||||
| if 'LLVM' in os.environ or 'LLVM_CONFIG' in os.environ: | if 'LLVM' in os.environ: | ||||||
|     default_llvm = 'yes' |     default_llvm = 'yes' | ||||||
| else: | else: | ||||||
|     default_llvm = 'no' |     default_llvm = 'no' | ||||||
|     try: |     try: | ||||||
|         if target_platform != 'windows' and \ |         if target_platform != 'windows' and \ | ||||||
|            subprocess.call(['llvm-config', '--version'], |            subprocess.call(['llvm-config', '--version'], stdout=subprocess.PIPE) == 0: | ||||||
|                            stdout=subprocess.PIPE) == 0: |  | ||||||
|             default_llvm = 'yes' |             default_llvm = 'yes' | ||||||
|     except: |     except: | ||||||
|         pass |         pass | ||||||
| @@ -85,27 +84,20 @@ def AddOptions(opts): | |||||||
| 	except ImportError: | 	except ImportError: | ||||||
| 		from SCons.Options.EnumOption import EnumOption | 		from SCons.Options.EnumOption import EnumOption | ||||||
| 	opts.Add(EnumOption('build', 'build type', 'debug', | 	opts.Add(EnumOption('build', 'build type', 'debug', | ||||||
|                         allowed_values=('debug', 'checked', 'profile', | 	                  allowed_values=('debug', 'checked', 'profile', 'release'))) | ||||||
|                                         'release'))) |  | ||||||
| 	opts.Add(BoolOption('verbose', 'verbose output', 'no')) | 	opts.Add(BoolOption('verbose', 'verbose output', 'no')) | ||||||
|     opts.Add(EnumOption('machine', 'use machine-specific assembly code', | 	opts.Add(EnumOption('machine', 'use machine-specific assembly code', default_machine, | ||||||
|                         default_machine, |  | ||||||
| 											 allowed_values=('generic', 'ppc', 'x86', 'x86_64'))) | 											 allowed_values=('generic', 'ppc', 'x86', 'x86_64'))) | ||||||
| 	opts.Add(EnumOption('platform', 'target platform', host_platform, | 	opts.Add(EnumOption('platform', 'target platform', host_platform, | ||||||
|                         allowed_values=('cygwin', 'darwin', 'freebsd', 'haiku', | 											 allowed_values=('cygwin', 'darwin', 'freebsd', 'haiku', 'linux', 'sunos', 'windows'))) | ||||||
|                                         'linux', 'sunos', 'windows'))) |  | ||||||
| 	opts.Add(BoolOption('embedded', 'embedded build', 'no')) | 	opts.Add(BoolOption('embedded', 'embedded build', 'no')) | ||||||
|     opts.Add(BoolOption('analyze', |  | ||||||
|                         'enable static code analysis where available', 'no')) |  | ||||||
|     opts.Add(BoolOption('asan', 'enable Address Sanitizer', 'no')) |  | ||||||
| 	opts.Add('toolchain', 'compiler toolchain', default_toolchain) | 	opts.Add('toolchain', 'compiler toolchain', default_toolchain) | ||||||
|  | 	opts.Add(BoolOption('gles', 'EXPERIMENTAL: enable OpenGL ES support', 'no')) | ||||||
| 	opts.Add(BoolOption('llvm', 'use LLVM', default_llvm)) | 	opts.Add(BoolOption('llvm', 'use LLVM', default_llvm)) | ||||||
|     opts.Add(BoolOption('openmp', 'EXPERIMENTAL: compile with openmp (swrast)', | 	opts.Add(BoolOption('openmp', 'EXPERIMENTAL: compile with openmp (swrast)', 'no')) | ||||||
|                         'no')) |  | ||||||
| 	opts.Add(BoolOption('debug', 'DEPRECATED: debug build', 'yes')) | 	opts.Add(BoolOption('debug', 'DEPRECATED: debug build', 'yes')) | ||||||
| 	opts.Add(BoolOption('profile', 'DEPRECATED: profile build', 'no')) | 	opts.Add(BoolOption('profile', 'DEPRECATED: profile build', 'no')) | ||||||
| 	opts.Add(BoolOption('quiet', 'DEPRECATED: profile build', 'yes')) | 	opts.Add(BoolOption('quiet', 'DEPRECATED: profile build', 'yes')) | ||||||
|     opts.Add(BoolOption('swr', 'Build OpenSWR', 'no')) | 	opts.Add(BoolOption('texture_float', 'enable floating-point textures and renderbuffers', 'no')) | ||||||
| 	if host_platform == 'windows': | 	if host_platform == 'windows': | ||||||
|         opts.Add('MSVC_VERSION', 'Microsoft Visual C/C++ version') | 		opts.Add(EnumOption('MSVS_VERSION', 'MS Visual C++ version', None, allowed_values=('7.1', '8.0', '9.0'))) | ||||||
|         opts.Add('MSVC_USE_SCRIPT', 'Microsoft Visual C/C++ vcvarsall script', True) |  | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								configs/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								configs/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | |||||||
|  | current | ||||||
|  | autoconf | ||||||
							
								
								
									
										222
									
								
								configs/current.in
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										222
									
								
								configs/current.in
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,222 @@ | |||||||
|  | # Autoconf configuration | ||||||
|  |  | ||||||
|  | # Pull in the defaults | ||||||
|  | include $(TOP)/configs/default | ||||||
|  |  | ||||||
|  | # This is generated by configure | ||||||
|  | CONFIG_NAME = autoconf | ||||||
|  |  | ||||||
|  | # Compiler and flags | ||||||
|  | CC = @CC@ | ||||||
|  | CXX = @CXX@ | ||||||
|  | PIC_FLAGS = @PIC_FLAGS@ | ||||||
|  | DEFINES = @DEFINES@ | ||||||
|  | API_DEFINES = @API_DEFINES@ | ||||||
|  | SHARED_GLAPI = @SHARED_GLAPI@ | ||||||
|  | CFLAGS_NOVISIBILITY = @CPPFLAGS@ @CFLAGS@ \ | ||||||
|  | 	$(PIC_FLAGS) $(DEFINES) | ||||||
|  | CXXFLAGS_NOVISIBILITY = @CPPFLAGS@ @CXXFLAGS@ \ | ||||||
|  | 	$(PIC_FLAGS) $(DEFINES) | ||||||
|  | CFLAGS = $(CFLAGS_NOVISIBILITY) @VISIBILITY_CFLAGS@ | ||||||
|  | CXXFLAGS = $(CXXFLAGS_NOVISIBILITY) @VISIBILITY_CXXFLAGS@ | ||||||
|  | LDFLAGS = @LDFLAGS@ | ||||||
|  | RADEON_CFLAGS = @RADEON_CFLAGS@ | ||||||
|  | RADEON_LIBS = @RADEON_LIBS@ | ||||||
|  | NOUVEAU_CFLAGS = @NOUVEAU_CFLAGS@ | ||||||
|  | NOUVEAU_LIBS = @NOUVEAU_LIBS@ | ||||||
|  | INTEL_LIBS = @INTEL_LIBS@ | ||||||
|  | INTEL_CFLAGS = @INTEL_CFLAGS@ | ||||||
|  | X11_LIBS = @X11_LIBS@ | ||||||
|  | X11_CFLAGS = @X11_CFLAGS@ | ||||||
|  | LLVM_BINDIR = @LLVM_BINDIR@ | ||||||
|  | LLVM_CFLAGS = @LLVM_CFLAGS@ | ||||||
|  | LLVM_CPPFLAGS = @LLVM_CPPFLAGS@ | ||||||
|  | LLVM_CXXFLAGS = @LLVM_CXXFLAGS@ | ||||||
|  | LLVM_LDFLAGS = @LLVM_LDFLAGS@ | ||||||
|  | LLVM_LIBDIR = @LLVM_LIBDIR@ | ||||||
|  | LLVM_LIBS = @LLVM_LIBS@ | ||||||
|  | LLVM_INCLUDEDIR = @LLVM_INCLUDEDIR@ | ||||||
|  | GLW_CFLAGS = @GLW_CFLAGS@ | ||||||
|  | GLX_TLS = @GLX_TLS@ | ||||||
|  |  | ||||||
|  | # dlopen | ||||||
|  | DLOPEN_LIBS = @DLOPEN_LIBS@ | ||||||
|  | CLOCK_LIB = @CLOCK_LIB@ | ||||||
|  |  | ||||||
|  | # Source selection | ||||||
|  | MESA_ASM_FILES = @MESA_ASM_FILES@ | ||||||
|  |  | ||||||
|  | # Misc tools and flags | ||||||
|  | MAKE = @MAKE@ | ||||||
|  | SHELL = @SHELL@ | ||||||
|  | MKLIB_OPTIONS = @MKLIB_OPTIONS@ | ||||||
|  | MKDEP = @MKDEP@ | ||||||
|  | MKDEP_OPTIONS = @MKDEP_OPTIONS@ | ||||||
|  | INSTALL = @INSTALL@ | ||||||
|  | AWK = @AWK@ | ||||||
|  | GREP = @GREP@ | ||||||
|  | NM = @NM@ | ||||||
|  |  | ||||||
|  | # Perl | ||||||
|  | PERL = @PERL@ | ||||||
|  |  | ||||||
|  | # Indent (used for generating dispatch tables) | ||||||
|  | INDENT = @INDENT@ | ||||||
|  | INDENT_FLAGS = @INDENT_FLAGS@ | ||||||
|  |  | ||||||
|  | # Python and flags (generally only needed by the developers) | ||||||
|  | PYTHON2 = @PYTHON2@ | ||||||
|  | PYTHON_FLAGS = -t -O -O | ||||||
|  |  | ||||||
|  | # Flex and Bison for GLSL compiler | ||||||
|  | FLEX = @LEX@ | ||||||
|  | BISON = @YACC@ | ||||||
|  |  | ||||||
|  | # Library names (base name) | ||||||
|  | GL_LIB = @GL_LIB@ | ||||||
|  | GLU_LIB = @GLU_LIB@ | ||||||
|  | GLW_LIB = GLw | ||||||
|  | OSMESA_LIB = @OSMESA_LIB@ | ||||||
|  | GLESv1_CM_LIB = GLESv1_CM | ||||||
|  | GLESv2_LIB = GLESv2 | ||||||
|  | VG_LIB = OpenVG | ||||||
|  | GLAPI_LIB = glapi | ||||||
|  |  | ||||||
|  | # Library names (actual file names) | ||||||
|  | GL_LIB_NAME = @GL_LIB_NAME@ | ||||||
|  | GLU_LIB_NAME = @GLU_LIB_NAME@ | ||||||
|  | GLW_LIB_NAME = @GLW_LIB_NAME@ | ||||||
|  | OSMESA_LIB_NAME = @OSMESA_LIB_NAME@ | ||||||
|  | EGL_LIB_NAME = @EGL_LIB_NAME@ | ||||||
|  | GLESv1_CM_LIB_NAME = @GLESv1_CM_LIB_NAME@ | ||||||
|  | GLESv2_LIB_NAME = @GLESv2_LIB_NAME@ | ||||||
|  | VG_LIB_NAME = @VG_LIB_NAME@ | ||||||
|  | GLAPI_LIB_NAME = @GLAPI_LIB_NAME@ | ||||||
|  |  | ||||||
|  | # Globs used to install the lib and all symlinks | ||||||
|  | GL_LIB_GLOB = @GL_LIB_GLOB@ | ||||||
|  | GLU_LIB_GLOB = @GLU_LIB_GLOB@ | ||||||
|  | GLW_LIB_GLOB = @GLW_LIB_GLOB@ | ||||||
|  | EGL_LIB_GLOB = @EGL_LIB_GLOB@ | ||||||
|  | GLESv1_CM_LIB_GLOB = @GLESv1_CM_LIB_GLOB@ | ||||||
|  | GLESv2_LIB_GLOB = @GLESv2_LIB_GLOB@ | ||||||
|  | VG_LIB_GLOB = @VG_LIB_GLOB@ | ||||||
|  | GLAPI_LIB_GLOB = @GLAPI_LIB_GLOB@ | ||||||
|  |  | ||||||
|  | # Directories to build | ||||||
|  | LIB_DIR = @LIB_DIR@ | ||||||
|  | SRC_DIRS = @SRC_DIRS@ | ||||||
|  | DRIVER_DIRS = @DRIVER_DIRS@ | ||||||
|  | GALLIUM_DIRS = @GALLIUM_DIRS@ | ||||||
|  | GALLIUM_DRIVERS_DIRS = @GALLIUM_DRIVERS_DIRS@ | ||||||
|  | GALLIUM_WINSYS_DIRS = @GALLIUM_WINSYS_DIRS@ | ||||||
|  | GALLIUM_TARGET_DIRS = @GALLIUM_TARGET_DIRS@ | ||||||
|  | GALLIUM_STATE_TRACKERS_DIRS = @GALLIUM_STATE_TRACKERS_DIRS@ | ||||||
|  | GALLIUM_AUXILIARIES = $(TOP)/src/gallium/auxiliary/libgallium.a | ||||||
|  | GALLIUM_DRIVERS = $(foreach DIR,$(GALLIUM_DRIVERS_DIRS),$(TOP)/src/gallium/drivers/$(DIR)/lib$(DIR).a) | ||||||
|  |  | ||||||
|  | # Driver specific build vars | ||||||
|  | DRI_DIRS = @DRI_DIRS@ | ||||||
|  | EGL_PLATFORMS = @EGL_PLATFORMS@ | ||||||
|  | EGL_CLIENT_APIS = @EGL_CLIENT_APIS@ | ||||||
|  |  | ||||||
|  | # Dependencies | ||||||
|  | X11_INCLUDES = @X11_INCLUDES@ | ||||||
|  |  | ||||||
|  | # GLw motif setup | ||||||
|  | GLW_SOURCES = @GLW_SOURCES@ | ||||||
|  | MOTIF_CFLAGS = @MOTIF_CFLAGS@ | ||||||
|  |  | ||||||
|  | # Library/program dependencies | ||||||
|  | GL_LIB_DEPS = @GL_LIB_DEPS@ | ||||||
|  | OSMESA_LIB_DEPS = -L$(TOP)/$(LIB_DIR) @OSMESA_MESA_DEPS@ \ | ||||||
|  | 	@OSMESA_LIB_DEPS@ | ||||||
|  | EGL_LIB_DEPS = @EGL_LIB_DEPS@ | ||||||
|  | GLU_LIB_DEPS = -L$(TOP)/$(LIB_DIR) @GLU_MESA_DEPS@ \ | ||||||
|  | 	@GLU_LIB_DEPS@ | ||||||
|  | GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) @GLW_MESA_DEPS@ \ | ||||||
|  | 	@GLW_LIB_DEPS@ | ||||||
|  | GLESv1_CM_LIB_DEPS = @GLESv1_CM_LIB_DEPS@ | ||||||
|  | GLESv2_LIB_DEPS = @GLESv2_LIB_DEPS@ | ||||||
|  | VG_LIB_DEPS = @VG_LIB_DEPS@ | ||||||
|  | GLAPI_LIB_DEPS = @GLAPI_LIB_DEPS@ | ||||||
|  |  | ||||||
|  | # DRI dependencies | ||||||
|  | DRI_LIB_DEPS = @DRI_LIB_DEPS@ | ||||||
|  | GALLIUM_DRI_LIB_DEPS = @GALLIUM_DRI_LIB_DEPS@ | ||||||
|  | LIBDRM_CFLAGS = @LIBDRM_CFLAGS@ | ||||||
|  | LIBDRM_LIBS = @LIBDRM_LIBS@ | ||||||
|  | DRI2PROTO_CFLAGS = @DRI2PROTO_CFLAGS@ | ||||||
|  | GLPROTO_CFLAGS = @GLPROTO_CFLAGS@ | ||||||
|  | EXPAT_INCLUDES = @EXPAT_INCLUDES@ | ||||||
|  |  | ||||||
|  | # Autoconf directories | ||||||
|  | prefix = @prefix@ | ||||||
|  | exec_prefix = @exec_prefix@ | ||||||
|  | libdir = @libdir@ | ||||||
|  | includedir = @includedir@ | ||||||
|  |  | ||||||
|  | # Installation directories (for make install) | ||||||
|  | INSTALL_DIR = $(prefix) | ||||||
|  | INSTALL_LIB_DIR = $(libdir) | ||||||
|  | INSTALL_INC_DIR = $(includedir) | ||||||
|  |  | ||||||
|  | # DRI installation directories | ||||||
|  | DRI_DRIVER_INSTALL_DIR = @DRI_DRIVER_INSTALL_DIR@ | ||||||
|  |  | ||||||
|  | # Where libGL will look for DRI hardware drivers | ||||||
|  | DRI_DRIVER_SEARCH_DIR = @DRI_DRIVER_SEARCH_DIR@ | ||||||
|  |  | ||||||
|  | # EGL driver install directory | ||||||
|  | EGL_DRIVER_INSTALL_DIR = @EGL_DRIVER_INSTALL_DIR@ | ||||||
|  |  | ||||||
|  | # XVMC library install directory | ||||||
|  | XVMC_LIB_INSTALL_DIR=@XVMC_LIB_INSTALL_DIR@ | ||||||
|  |  | ||||||
|  | # VDPAU library install directory | ||||||
|  | VDPAU_LIB_INSTALL_DIR=@VDPAU_LIB_INSTALL_DIR@ | ||||||
|  |  | ||||||
|  | # VA library install directory | ||||||
|  | VA_LIB_INSTALL_DIR=@VA_LIB_INSTALL_DIR@ | ||||||
|  |  | ||||||
|  | # Xorg driver install directory (for xorg state-tracker) | ||||||
|  | XORG_DRIVER_INSTALL_DIR = @XORG_DRIVER_INSTALL_DIR@ | ||||||
|  |  | ||||||
|  | # Path to OpenCL C library libclc | ||||||
|  | LIBCLC_PATH = @LIBCLC_PATH@ | ||||||
|  |  | ||||||
|  | # pkg-config substitutions | ||||||
|  | GL_PC_REQ_PRIV = @GL_PC_REQ_PRIV@ | ||||||
|  | GL_PC_LIB_PRIV = @GL_PC_LIB_PRIV@ | ||||||
|  | GL_PC_CFLAGS = @GL_PC_CFLAGS@ | ||||||
|  | DRI_PC_REQ_PRIV = @DRI_PC_REQ_PRIV@ | ||||||
|  | GLU_PC_REQ = @GLU_PC_REQ@ | ||||||
|  | GLU_PC_REQ_PRIV = @GLU_PC_REQ_PRIV@ | ||||||
|  | GLU_PC_LIB_PRIV = @GLU_PC_LIB_PRIV@ | ||||||
|  | GLU_PC_CFLAGS = @GLU_PC_CFLAGS@ | ||||||
|  | GLW_PC_REQ_PRIV = @GLW_PC_REQ_PRIV@ | ||||||
|  | GLW_PC_LIB_PRIV = @GLW_PC_LIB_PRIV@ | ||||||
|  | GLW_PC_CFLAGS = @GLW_PC_CFLAGS@ | ||||||
|  | OSMESA_PC_REQ = @OSMESA_PC_REQ@ | ||||||
|  | OSMESA_PC_LIB_PRIV = @OSMESA_PC_LIB_PRIV@ | ||||||
|  | GLESv1_CM_PC_LIB_PRIV = @GLESv1_CM_PC_LIB_PRIV@ | ||||||
|  | GLESv2_PC_LIB_PRIV = @GLESv2_PC_LIB_PRIV@ | ||||||
|  | EGL_PC_REQ_PRIV = @GL_PC_REQ_PRIV@ | ||||||
|  | EGL_PC_LIB_PRIV = @GL_PC_LIB_PRIV@ | ||||||
|  | EGL_PC_CFLAGS = @GL_PC_CFLAGS@ | ||||||
|  |  | ||||||
|  | XCB_DRI2_CFLAGS = @XCB_DRI2_CFLAGS@ | ||||||
|  | XCB_DRI2_LIBS = @XCB_DRI2_LIBS@ | ||||||
|  | LIBUDEV_CFLAGS = @LIBUDEV_CFLAGS@ | ||||||
|  | LIBUDEV_LIBS = @LIBUDEV_LIBS@ | ||||||
|  | WAYLAND_CFLAGS = @WAYLAND_CFLAGS@ | ||||||
|  | WAYLAND_LIBS = @WAYLAND_LIBS@ | ||||||
|  |  | ||||||
|  | MESA_LLVM = @MESA_LLVM@ | ||||||
|  |  | ||||||
|  | LLVM_VERSION = @LLVM_VERSION@ | ||||||
|  |  | ||||||
|  | HAVE_XF86VIDMODE = @HAVE_XF86VIDMODE@ | ||||||
|  |  | ||||||
|  | GALLIUM_PIPE_LOADER_DEFINES = @GALLIUM_PIPE_LOADER_DEFINES@ | ||||||
|  | GALLIUM_PIPE_LOADER_LIBS = @GALLIUM_PIPE_LOADER_LIBS@ | ||||||
							
								
								
									
										180
									
								
								configs/default
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										180
									
								
								configs/default
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,180 @@ | |||||||
|  | # Default/template configuration | ||||||
|  |  | ||||||
|  | # This is included by other config files which may override some | ||||||
|  | # of these variables. | ||||||
|  | # Think of this as a base class from which configs are derived. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | CONFIG_NAME = default | ||||||
|  |  | ||||||
|  | # Version info | ||||||
|  | MESA_MAJOR=9 | ||||||
|  | MESA_MINOR=1 | ||||||
|  | MESA_TINY=0 | ||||||
|  | MESA_VERSION = $(MESA_MAJOR).$(MESA_MINOR).$(MESA_TINY) | ||||||
|  |  | ||||||
|  | # external projects.  This should be useless now that we use libdrm. | ||||||
|  | DRM_SOURCE_PATH=$(TOP)/../drm | ||||||
|  |  | ||||||
|  | # Compiler and flags | ||||||
|  | CC = cc | ||||||
|  | CXX = CC | ||||||
|  | CFLAGS = -O | ||||||
|  | CXXFLAGS = -O | ||||||
|  | LDFLAGS = | ||||||
|  | GLU_CFLAGS =  | ||||||
|  | GLX_TLS = no | ||||||
|  |  | ||||||
|  | # Compiler for building demos/tests/etc | ||||||
|  | APP_CC = $(CC) | ||||||
|  | APP_CXX = $(CXX) | ||||||
|  |  | ||||||
|  | # Misc tools and flags | ||||||
|  | SHELL = /bin/sh | ||||||
|  | MKLIB = $(SHELL) $(TOP)/bin/mklib | ||||||
|  | MKLIB_OPTIONS =  | ||||||
|  | MKDEP = makedepend | ||||||
|  | MKDEP_OPTIONS = -fdepend | ||||||
|  | MAKE = make | ||||||
|  | FLEX = flex | ||||||
|  | BISON = bison | ||||||
|  | PKG_CONFIG = pkg-config | ||||||
|  |  | ||||||
|  | # Use MINSTALL for installing libraries, INSTALL for everything else | ||||||
|  | MINSTALL = $(SHELL) $(TOP)/bin/minstall | ||||||
|  | INSTALL = $(MINSTALL) | ||||||
|  |  | ||||||
|  | # Tools for regenerating glapi (generally only needed by the developers) | ||||||
|  | PYTHON2 = python | ||||||
|  | PYTHON_FLAGS = -t -O -O | ||||||
|  | INDENT = indent | ||||||
|  | INDENT_FLAGS = -i4 -nut -br -brs -npcs -ce -T GLubyte -T GLbyte -T Bool | ||||||
|  |  | ||||||
|  | # Library names (base name) | ||||||
|  | GL_LIB = GL | ||||||
|  | GLU_LIB = GLU | ||||||
|  | GLW_LIB = GLw | ||||||
|  | OSMESA_LIB = OSMesa | ||||||
|  | EGL_LIB = EGL | ||||||
|  | GLESv1_CM_LIB = GLESv1_CM | ||||||
|  | GLESv2_LIB = GLESv2 | ||||||
|  | VG_LIB = OpenVG | ||||||
|  | GLAPI_LIB = glapi | ||||||
|  |  | ||||||
|  | # Library names (actual file names) | ||||||
|  | GL_LIB_NAME = lib$(GL_LIB).so | ||||||
|  | GLU_LIB_NAME = lib$(GLU_LIB).so | ||||||
|  | GLW_LIB_NAME = lib$(GLW_LIB).so | ||||||
|  | OSMESA_LIB_NAME = lib$(OSMESA_LIB).so | ||||||
|  | EGL_LIB_NAME = lib$(EGL_LIB).so | ||||||
|  | GLESv1_CM_LIB_NAME = lib$(GLESv1_CM_LIB).so | ||||||
|  | GLESv2_LIB_NAME = lib$(GLESv2_LIB).so | ||||||
|  | VG_LIB_NAME = lib$(VG_LIB).so | ||||||
|  | GLAPI_LIB_NAME = lib$(GLAPI_LIB).so | ||||||
|  |  | ||||||
|  | # globs used to install the lib and all symlinks | ||||||
|  | GL_LIB_GLOB = $(GL_LIB_NAME)* | ||||||
|  | GLU_LIB_GLOB = $(GLU_LIB_NAME)* | ||||||
|  | GLW_LIB_GLOB = $(GLW_LIB_NAME)* | ||||||
|  | EGL_LIB_GLOB = $(EGL_LIB_NAME)* | ||||||
|  | GLESv1_CM_LIB_GLOB = $(GLESv1_CM_LIB_NAME)* | ||||||
|  | GLESv2_LIB_GLOB = $(GLESv2_LIB_NAME)* | ||||||
|  | VG_LIB_GLOB = $(VG_LIB_NAME)* | ||||||
|  | GLAPI_LIB_GLOB = $(GLAPI_LIB_NAME)* | ||||||
|  |  | ||||||
|  | # Optional assembly language optimization files for libGL | ||||||
|  | MESA_ASM_FILES = | ||||||
|  |  | ||||||
|  | # GLw widget sources (Append "GLwMDrawA.c" here and add -lXm to GLW_LIB_DEPS in | ||||||
|  | # order to build the Motif widget too) | ||||||
|  | GLW_SOURCES = GLwDrawA.c | ||||||
|  | MOTIF_CFLAGS = -I/usr/include/Motif1.2 | ||||||
|  |  | ||||||
|  |  | ||||||
|  | # Directories to build | ||||||
|  | LIB_DIR = lib | ||||||
|  | SRC_DIRS = glsl mapi/glapi mapi/vgapi mesa \ | ||||||
|  | 	gallium egl gallium/winsys gallium/targets | ||||||
|  | DRIVER_DIRS = x11 osmesa | ||||||
|  |  | ||||||
|  | # Gallium directories and | ||||||
|  | GALLIUM_DIRS = auxiliary drivers state_trackers | ||||||
|  | GALLIUM_AUXILIARIES = $(TOP)/src/gallium/auxiliary/libgallium.a | ||||||
|  | GALLIUM_DRIVERS_DIRS = softpipe trace rbug noop identity galahad i915 svga r300 nvfx nv50 | ||||||
|  | GALLIUM_DRIVERS = $(foreach DIR,$(GALLIUM_DRIVERS_DIRS),$(TOP)/src/gallium/drivers/$(DIR)/lib$(DIR).a) | ||||||
|  | GALLIUM_WINSYS_DIRS = sw sw/xlib | ||||||
|  | GALLIUM_TARGET_DIRS = libgl-xlib | ||||||
|  | GALLIUM_STATE_TRACKERS_DIRS = glx vega | ||||||
|  |  | ||||||
|  | # native platforms EGL should support | ||||||
|  | EGL_PLATFORMS = x11 | ||||||
|  | EGL_CLIENT_APIS = $(GL_LIB) | ||||||
|  |  | ||||||
|  | # Library dependencies | ||||||
|  | #EXTRA_LIB_PATH ?= | ||||||
|  | GL_LIB_DEPS     = -lX11 -lXext -lm -lpthread | ||||||
|  | EGL_LIB_DEPS    = -ldl -lpthread | ||||||
|  | OSMESA_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) | ||||||
|  | GLU_LIB_DEPS    = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -lm | ||||||
|  | GLW_LIB_DEPS    = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -lXt -lX11 | ||||||
|  | GLESv1_CM_LIB_DEPS = -lpthread | ||||||
|  | GLESv2_LIB_DEPS = -lpthread | ||||||
|  | VG_LIB_DEPS    = -lpthread | ||||||
|  | GLAPI_LIB_DEPS = -lpthread | ||||||
|  |  | ||||||
|  | # Program dependencies - specific GL libraries added in Makefiles | ||||||
|  | X11_LIBS = -lX11 | ||||||
|  |  | ||||||
|  | DLOPEN_LIBS = -ldl | ||||||
|  |  | ||||||
|  | # Installation directories (for make install) | ||||||
|  | INSTALL_DIR = /usr/local | ||||||
|  | INSTALL_LIB_DIR = $(INSTALL_DIR)/$(LIB_DIR) | ||||||
|  | INSTALL_INC_DIR = $(INSTALL_DIR)/include | ||||||
|  | DRI_DRIVER_INSTALL_DIR = $(INSTALL_LIB_DIR)/dri | ||||||
|  |  | ||||||
|  | # Where libGL will look for DRI hardware drivers | ||||||
|  | DRI_DRIVER_SEARCH_DIR = $(DRI_DRIVER_INSTALL_DIR) | ||||||
|  |  | ||||||
|  | # EGL driver install directory | ||||||
|  | EGL_DRIVER_INSTALL_DIR = $(INSTALL_LIB_DIR)/egl | ||||||
|  |  | ||||||
|  | # Xorg driver install directory (for xorg state-tracker) | ||||||
|  | XORG_DRIVER_INSTALL_DIR = $(INSTALL_LIB_DIR)/xorg/modules/drivers | ||||||
|  |  | ||||||
|  | # pkg-config substitutions | ||||||
|  | GL_PC_REQ_PRIV = | ||||||
|  | GL_PC_LIB_PRIV = | ||||||
|  | GL_PC_CFLAGS = | ||||||
|  | DRI_PC_REQ_PRIV = | ||||||
|  | GLU_PC_REQ = gl | ||||||
|  | GLU_PC_REQ_PRIV = | ||||||
|  | GLU_PC_LIB_PRIV = | ||||||
|  | GLU_PC_CFLAGS = | ||||||
|  | GLW_PC_REQ_PRIV = | ||||||
|  | GLW_PC_LIB_PRIV = | ||||||
|  | GLW_PC_CFLAGS = | ||||||
|  | OSMESA_PC_REQ = | ||||||
|  | OSMESA_PC_LIB_PRIV = | ||||||
|  | GLESv1_CM_PC_REQ_PRIV = | ||||||
|  | GLESv1_CM_PC_LIB_PRIV = | ||||||
|  | GLESv1_CM_PC_CFLAGS = | ||||||
|  | GLESv2_PC_REQ_PRIV = | ||||||
|  | GLESv2_PC_LIB_PRIV = | ||||||
|  | GLESv2_PC_CFLAGS = | ||||||
|  | VG_PC_REQ_PRIV = | ||||||
|  | VG_PC_LIB_PRIV = | ||||||
|  | VG_PC_CFLAGS = | ||||||
|  |  | ||||||
|  | # default targets | ||||||
|  | # this helps reduce the mismatch between our automake Makefiles and the old | ||||||
|  | # custom Makefiles while we transition. | ||||||
|  |  | ||||||
|  | all: default | ||||||
|  |  | ||||||
|  | am--refresh: | ||||||
|  |  | ||||||
|  | distclean: clean | ||||||
|  |  | ||||||
|  | check: | ||||||
|  | test: | ||||||
							
								
								
									
										3846
									
								
								configure.ac
									
									
									
									
									
								
							
							
						
						
									
										3846
									
								
								configure.ac
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										490
									
								
								docs/COPYING
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										490
									
								
								docs/COPYING
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,490 @@ | |||||||
|  |  | ||||||
|  | Some parts of Mesa are copyrighted under the GNU LGPL.  See the | ||||||
|  | Mesa/docs/COPYRIGHT file for details. | ||||||
|  |  | ||||||
|  | The following is the standard GNU copyright file. | ||||||
|  | ---------------------------------------------------------------------- | ||||||
|  |  | ||||||
|  |  | ||||||
|  | 		  GNU LIBRARY GENERAL PUBLIC LICENSE | ||||||
|  | 		       Version 2, June 1991 | ||||||
|  |  | ||||||
|  |  Copyright (C) 1991 Free Software Foundation, Inc. | ||||||
|  |                     675 Mass Ave, Cambridge, MA 02139, USA | ||||||
|  |  Everyone is permitted to copy and distribute verbatim copies | ||||||
|  |  of this license document, but changing it is not allowed. | ||||||
|  |  | ||||||
|  | [This is the first released version of the library GPL.  It is | ||||||
|  |  numbered 2 because it goes with version 2 of the ordinary GPL.] | ||||||
|  |  | ||||||
|  | 			    Preamble | ||||||
|  |  | ||||||
|  |   The licenses for most software are designed to take away your | ||||||
|  | freedom to share and change it.  By contrast, the GNU General Public | ||||||
|  | Licenses are intended to guarantee your freedom to share and change | ||||||
|  | free software--to make sure the software is free for all its users. | ||||||
|  |  | ||||||
|  |   This license, the Library General Public License, applies to some | ||||||
|  | specially designated Free Software Foundation software, and to any | ||||||
|  | other libraries whose authors decide to use it.  You can use it for | ||||||
|  | your libraries, too. | ||||||
|  |  | ||||||
|  |   When we speak of free software, we are referring to freedom, not | ||||||
|  | price.  Our General Public Licenses are designed to make sure that you | ||||||
|  | have the freedom to distribute copies of free software (and charge for | ||||||
|  | this service if you wish), that you receive source code or can get it | ||||||
|  | if you want it, that you can change the software or use pieces of it | ||||||
|  | in new free programs; and that you know you can do these things. | ||||||
|  |  | ||||||
|  |   To protect your rights, we need to make restrictions that forbid | ||||||
|  | anyone to deny you these rights or to ask you to surrender the rights. | ||||||
|  | These restrictions translate to certain responsibilities for you if | ||||||
|  | you distribute copies of the library, or if you modify it. | ||||||
|  |  | ||||||
|  |   For example, if you distribute copies of the library, whether gratis | ||||||
|  | or for a fee, you must give the recipients all the rights that we gave | ||||||
|  | you.  You must make sure that they, too, receive or can get the source | ||||||
|  | code.  If you link a program with the library, you must provide | ||||||
|  | complete object files to the recipients so that they can relink them | ||||||
|  | with the library, after making changes to the library and recompiling | ||||||
|  | it.  And you must show them these terms so they know their rights. | ||||||
|  |  | ||||||
|  |   Our method of protecting your rights has two steps: (1) copyright | ||||||
|  | the library, and (2) offer you this license which gives you legal | ||||||
|  | permission to copy, distribute and/or modify the library. | ||||||
|  |  | ||||||
|  |   Also, for each distributor's protection, we want to make certain | ||||||
|  | that everyone understands that there is no warranty for this free | ||||||
|  | library.  If the library is modified by someone else and passed on, we | ||||||
|  | want its recipients to know that what they have is not the original | ||||||
|  | version, so that any problems introduced by others will not reflect on | ||||||
|  | the original authors' reputations. | ||||||
|  |  | ||||||
|  |   Finally, any free program is threatened constantly by software | ||||||
|  | patents.  We wish to avoid the danger that companies distributing free | ||||||
|  | software will individually obtain patent licenses, thus in effect | ||||||
|  | transforming the program into proprietary software.  To prevent this, | ||||||
|  | we have made it clear that any patent must be licensed for everyone's | ||||||
|  | free use or not licensed at all. | ||||||
|  |  | ||||||
|  |   Most GNU software, including some libraries, is covered by the ordinary | ||||||
|  | GNU General Public License, which was designed for utility programs.  This | ||||||
|  | license, the GNU Library General Public License, applies to certain | ||||||
|  | designated libraries.  This license is quite different from the ordinary | ||||||
|  | one; be sure to read it in full, and don't assume that anything in it is | ||||||
|  | the same as in the ordinary license. | ||||||
|  |  | ||||||
|  |   The reason we have a separate public license for some libraries is that | ||||||
|  | they blur the distinction we usually make between modifying or adding to a | ||||||
|  | program and simply using it.  Linking a program with a library, without | ||||||
|  | changing the library, is in some sense simply using the library, and is | ||||||
|  | analogous to running a utility program or application program.  However, in | ||||||
|  | a textual and legal sense, the linked executable is a combined work, a | ||||||
|  | derivative of the original library, and the ordinary General Public License | ||||||
|  | treats it as such. | ||||||
|  |  | ||||||
|  |   Because of this blurred distinction, using the ordinary General | ||||||
|  | Public License for libraries did not effectively promote software | ||||||
|  | sharing, because most developers did not use the libraries.  We | ||||||
|  | concluded that weaker conditions might promote sharing better. | ||||||
|  |  | ||||||
|  |   However, unrestricted linking of non-free programs would deprive the | ||||||
|  | users of those programs of all benefit from the free status of the | ||||||
|  | libraries themselves.  This Library General Public License is intended to | ||||||
|  | permit developers of non-free programs to use free libraries, while | ||||||
|  | preserving your freedom as a user of such programs to change the free | ||||||
|  | libraries that are incorporated in them.  (We have not seen how to achieve | ||||||
|  | this as regards changes in header files, but we have achieved it as regards | ||||||
|  | changes in the actual functions of the Library.)  The hope is that this | ||||||
|  | will lead to faster development of free libraries. | ||||||
|  |  | ||||||
|  |   The precise terms and conditions for copying, distribution and | ||||||
|  | modification follow.  Pay close attention to the difference between a | ||||||
|  | "work based on the library" and a "work that uses the library".  The | ||||||
|  | former contains code derived from the library, while the latter only | ||||||
|  | works together with the library. | ||||||
|  |  | ||||||
|  |   Note that it is possible for a library to be covered by the ordinary | ||||||
|  | General Public License rather than by this special one. | ||||||
|  |  | ||||||
|  | 		  GNU LIBRARY GENERAL PUBLIC LICENSE | ||||||
|  |    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION | ||||||
|  |  | ||||||
|  |   0. This License Agreement applies to any software library which | ||||||
|  | contains a notice placed by the copyright holder or other authorized | ||||||
|  | party saying it may be distributed under the terms of this Library | ||||||
|  | General Public License (also called "this License").  Each licensee is | ||||||
|  | addressed as "you". | ||||||
|  |  | ||||||
|  |   A "library" means a collection of software functions and/or data | ||||||
|  | prepared so as to be conveniently linked with application programs | ||||||
|  | (which use some of those functions and data) to form executables. | ||||||
|  |  | ||||||
|  |   The "Library", below, refers to any such software library or work | ||||||
|  | which has been distributed under these terms.  A "work based on the | ||||||
|  | Library" means either the Library or any derivative work under | ||||||
|  | copyright law: that is to say, a work containing the Library or a | ||||||
|  | portion of it, either verbatim or with modifications and/or translated | ||||||
|  | straightforwardly into another language.  (Hereinafter, translation is | ||||||
|  | included without limitation in the term "modification".) | ||||||
|  |  | ||||||
|  |   "Source code" for a work means the preferred form of the work for | ||||||
|  | making modifications to it.  For a library, complete source code means | ||||||
|  | all the source code for all modules it contains, plus any associated | ||||||
|  | interface definition files, plus the scripts used to control compilation | ||||||
|  | and installation of the library. | ||||||
|  |  | ||||||
|  |   Activities other than copying, distribution and modification are not | ||||||
|  | covered by this License; they are outside its scope.  The act of | ||||||
|  | running a program using the Library is not restricted, and output from | ||||||
|  | such a program is covered only if its contents constitute a work based | ||||||
|  | on the Library (independent of the use of the Library in a tool for | ||||||
|  | writing it).  Whether that is true depends on what the Library does | ||||||
|  | and what the program that uses the Library does. | ||||||
|  |    | ||||||
|  |   1. You may copy and distribute verbatim copies of the Library's | ||||||
|  | complete source code as you receive it, in any medium, provided that | ||||||
|  | you conspicuously and appropriately publish on each copy an | ||||||
|  | appropriate copyright notice and disclaimer of warranty; keep intact | ||||||
|  | all the notices that refer to this License and to the absence of any | ||||||
|  | warranty; and distribute a copy of this License along with the | ||||||
|  | Library. | ||||||
|  |  | ||||||
|  |   You may charge a fee for the physical act of transferring a copy, | ||||||
|  | and you may at your option offer warranty protection in exchange for a | ||||||
|  | fee. | ||||||
|  |  | ||||||
|  |   2. You may modify your copy or copies of the Library or any portion | ||||||
|  | of it, thus forming a work based on the Library, and copy and | ||||||
|  | distribute such modifications or work under the terms of Section 1 | ||||||
|  | above, provided that you also meet all of these conditions: | ||||||
|  |  | ||||||
|  |     a) The modified work must itself be a software library. | ||||||
|  |  | ||||||
|  |     b) You must cause the files modified to carry prominent notices | ||||||
|  |     stating that you changed the files and the date of any change. | ||||||
|  |  | ||||||
|  |     c) You must cause the whole of the work to be licensed at no | ||||||
|  |     charge to all third parties under the terms of this License. | ||||||
|  |  | ||||||
|  |     d) If a facility in the modified Library refers to a function or a | ||||||
|  |     table of data to be supplied by an application program that uses | ||||||
|  |     the facility, other than as an argument passed when the facility | ||||||
|  |     is invoked, then you must make a good faith effort to ensure that, | ||||||
|  |     in the event an application does not supply such function or | ||||||
|  |     table, the facility still operates, and performs whatever part of | ||||||
|  |     its purpose remains meaningful. | ||||||
|  |  | ||||||
|  |     (For example, a function in a library to compute square roots has | ||||||
|  |     a purpose that is entirely well-defined independent of the | ||||||
|  |     application.  Therefore, Subsection 2d requires that any | ||||||
|  |     application-supplied function or table used by this function must | ||||||
|  |     be optional: if the application does not supply it, the square | ||||||
|  |     root function must still compute square roots.) | ||||||
|  |  | ||||||
|  | These requirements apply to the modified work as a whole.  If | ||||||
|  | identifiable sections of that work are not derived from the Library, | ||||||
|  | and can be reasonably considered independent and separate works in | ||||||
|  | themselves, then this License, and its terms, do not apply to those | ||||||
|  | sections when you distribute them as separate works.  But when you | ||||||
|  | distribute the same sections as part of a whole which is a work based | ||||||
|  | on the Library, the distribution of the whole must be on the terms of | ||||||
|  | this License, whose permissions for other licensees extend to the | ||||||
|  | entire whole, and thus to each and every part regardless of who wrote | ||||||
|  | it. | ||||||
|  |  | ||||||
|  | Thus, it is not the intent of this section to claim rights or contest | ||||||
|  | your rights to work written entirely by you; rather, the intent is to | ||||||
|  | exercise the right to control the distribution of derivative or | ||||||
|  | collective works based on the Library. | ||||||
|  |  | ||||||
|  | In addition, mere aggregation of another work not based on the Library | ||||||
|  | with the Library (or with a work based on the Library) on a volume of | ||||||
|  | a storage or distribution medium does not bring the other work under | ||||||
|  | the scope of this License. | ||||||
|  |  | ||||||
|  |   3. You may opt to apply the terms of the ordinary GNU General Public | ||||||
|  | License instead of this License to a given copy of the Library.  To do | ||||||
|  | this, you must alter all the notices that refer to this License, so | ||||||
|  | that they refer to the ordinary GNU General Public License, version 2, | ||||||
|  | instead of to this License.  (If a newer version than version 2 of the | ||||||
|  | ordinary GNU General Public License has appeared, then you can specify | ||||||
|  | that version instead if you wish.)  Do not make any other change in | ||||||
|  | these notices. | ||||||
|  |  | ||||||
|  |   Once this change is made in a given copy, it is irreversible for | ||||||
|  | that copy, so the ordinary GNU General Public License applies to all | ||||||
|  | subsequent copies and derivative works made from that copy. | ||||||
|  |  | ||||||
|  |   This option is useful when you wish to copy part of the code of | ||||||
|  | the Library into a program that is not a library. | ||||||
|  |  | ||||||
|  |   4. You may copy and distribute the Library (or a portion or | ||||||
|  | derivative of it, under Section 2) in object code or executable form | ||||||
|  | under the terms of Sections 1 and 2 above provided that you accompany | ||||||
|  | it with the complete corresponding machine-readable source code, which | ||||||
|  | must be distributed under the terms of Sections 1 and 2 above on a | ||||||
|  | medium customarily used for software interchange. | ||||||
|  |  | ||||||
|  |   If distribution of object code is made by offering access to copy | ||||||
|  | from a designated place, then offering equivalent access to copy the | ||||||
|  | source code from the same place satisfies the requirement to | ||||||
|  | distribute the source code, even though third parties are not | ||||||
|  | compelled to copy the source along with the object code. | ||||||
|  |  | ||||||
|  |   5. A program that contains no derivative of any portion of the | ||||||
|  | Library, but is designed to work with the Library by being compiled or | ||||||
|  | linked with it, is called a "work that uses the Library".  Such a | ||||||
|  | work, in isolation, is not a derivative work of the Library, and | ||||||
|  | therefore falls outside the scope of this License. | ||||||
|  |  | ||||||
|  |   However, linking a "work that uses the Library" with the Library | ||||||
|  | creates an executable that is a derivative of the Library (because it | ||||||
|  | contains portions of the Library), rather than a "work that uses the | ||||||
|  | library".  The executable is therefore covered by this License. | ||||||
|  | Section 6 states terms for distribution of such executables. | ||||||
|  |  | ||||||
|  |   When a "work that uses the Library" uses material from a header file | ||||||
|  | that is part of the Library, the object code for the work may be a | ||||||
|  | derivative work of the Library even though the source code is not. | ||||||
|  | Whether this is true is especially significant if the work can be | ||||||
|  | linked without the Library, or if the work is itself a library.  The | ||||||
|  | threshold for this to be true is not precisely defined by law. | ||||||
|  |  | ||||||
|  |   If such an object file uses only numerical parameters, data | ||||||
|  | structure layouts and accessors, and small macros and small inline | ||||||
|  | functions (ten lines or less in length), then the use of the object | ||||||
|  | file is unrestricted, regardless of whether it is legally a derivative | ||||||
|  | work.  (Executables containing this object code plus portions of the | ||||||
|  | Library will still fall under Section 6.) | ||||||
|  |  | ||||||
|  |   Otherwise, if the work is a derivative of the Library, you may | ||||||
|  | distribute the object code for the work under the terms of Section 6. | ||||||
|  | Any executables containing that work also fall under Section 6, | ||||||
|  | whether or not they are linked directly with the Library itself. | ||||||
|  |  | ||||||
|  |   6. As an exception to the Sections above, you may also compile or | ||||||
|  | link a "work that uses the Library" with the Library to produce a | ||||||
|  | work containing portions of the Library, and distribute that work | ||||||
|  | under terms of your choice, provided that the terms permit | ||||||
|  | modification of the work for the customer's own use and reverse | ||||||
|  | engineering for debugging such modifications. | ||||||
|  |  | ||||||
|  |   You must give prominent notice with each copy of the work that the | ||||||
|  | Library is used in it and that the Library and its use are covered by | ||||||
|  | this License.  You must supply a copy of this License.  If the work | ||||||
|  | during execution displays copyright notices, you must include the | ||||||
|  | copyright notice for the Library among them, as well as a reference | ||||||
|  | directing the user to the copy of this License.  Also, you must do one | ||||||
|  | of these things: | ||||||
|  |  | ||||||
|  |     a) Accompany the work with the complete corresponding | ||||||
|  |     machine-readable source code for the Library including whatever | ||||||
|  |     changes were used in the work (which must be distributed under | ||||||
|  |     Sections 1 and 2 above); and, if the work is an executable linked | ||||||
|  |     with the Library, with the complete machine-readable "work that | ||||||
|  |     uses the Library", as object code and/or source code, so that the | ||||||
|  |     user can modify the Library and then relink to produce a modified | ||||||
|  |     executable containing the modified Library.  (It is understood | ||||||
|  |     that the user who changes the contents of definitions files in the | ||||||
|  |     Library will not necessarily be able to recompile the application | ||||||
|  |     to use the modified definitions.) | ||||||
|  |  | ||||||
|  |     b) Accompany the work with a written offer, valid for at | ||||||
|  |     least three years, to give the same user the materials | ||||||
|  |     specified in Subsection 6a, above, for a charge no more | ||||||
|  |     than the cost of performing this distribution. | ||||||
|  |  | ||||||
|  |     c) If distribution of the work is made by offering access to copy | ||||||
|  |     from a designated place, offer equivalent access to copy the above | ||||||
|  |     specified materials from the same place. | ||||||
|  |  | ||||||
|  |     d) Verify that the user has already received a copy of these | ||||||
|  |     materials or that you have already sent this user a copy. | ||||||
|  |  | ||||||
|  |   For an executable, the required form of the "work that uses the | ||||||
|  | Library" must include any data and utility programs needed for | ||||||
|  | reproducing the executable from it.  However, as a special exception, | ||||||
|  | the source code distributed need not include anything that is normally | ||||||
|  | distributed (in either source or binary form) with the major | ||||||
|  | components (compiler, kernel, and so on) of the operating system on | ||||||
|  | which the executable runs, unless that component itself accompanies | ||||||
|  | the executable. | ||||||
|  |  | ||||||
|  |   It may happen that this requirement contradicts the license | ||||||
|  | restrictions of other proprietary libraries that do not normally | ||||||
|  | accompany the operating system.  Such a contradiction means you cannot | ||||||
|  | use both them and the Library together in an executable that you | ||||||
|  | distribute. | ||||||
|  |  | ||||||
|  |   7. You may place library facilities that are a work based on the | ||||||
|  | Library side-by-side in a single library together with other library | ||||||
|  | facilities not covered by this License, and distribute such a combined | ||||||
|  | library, provided that the separate distribution of the work based on | ||||||
|  | the Library and of the other library facilities is otherwise | ||||||
|  | permitted, and provided that you do these two things: | ||||||
|  |  | ||||||
|  |     a) Accompany the combined library with a copy of the same work | ||||||
|  |     based on the Library, uncombined with any other library | ||||||
|  |     facilities.  This must be distributed under the terms of the | ||||||
|  |     Sections above. | ||||||
|  |  | ||||||
|  |     b) Give prominent notice with the combined library of the fact | ||||||
|  |     that part of it is a work based on the Library, and explaining | ||||||
|  |     where to find the accompanying uncombined form of the same work. | ||||||
|  |  | ||||||
|  |   8. You may not copy, modify, sublicense, link with, or distribute | ||||||
|  | the Library except as expressly provided under this License.  Any | ||||||
|  | attempt otherwise to copy, modify, sublicense, link with, or | ||||||
|  | distribute the Library is void, and will automatically terminate your | ||||||
|  | rights under this License.  However, parties who have received copies, | ||||||
|  | or rights, from you under this License will not have their licenses | ||||||
|  | terminated so long as such parties remain in full compliance. | ||||||
|  |  | ||||||
|  |   9. You are not required to accept this License, since you have not | ||||||
|  | signed it.  However, nothing else grants you permission to modify or | ||||||
|  | distribute the Library or its derivative works.  These actions are | ||||||
|  | prohibited by law if you do not accept this License.  Therefore, by | ||||||
|  | modifying or distributing the Library (or any work based on the | ||||||
|  | Library), you indicate your acceptance of this License to do so, and | ||||||
|  | all its terms and conditions for copying, distributing or modifying | ||||||
|  | the Library or works based on it. | ||||||
|  |  | ||||||
|  |   10. Each time you redistribute the Library (or any work based on the | ||||||
|  | Library), the recipient automatically receives a license from the | ||||||
|  | original licensor to copy, distribute, link with or modify the Library | ||||||
|  | subject to these terms and conditions.  You may not impose any further | ||||||
|  | restrictions on the recipients' exercise of the rights granted herein. | ||||||
|  | You are not responsible for enforcing compliance by third parties to | ||||||
|  | this License. | ||||||
|  |  | ||||||
|  |   11. If, as a consequence of a court judgment or allegation of patent | ||||||
|  | infringement or for any other reason (not limited to patent issues), | ||||||
|  | conditions are imposed on you (whether by court order, agreement or | ||||||
|  | otherwise) that contradict the conditions of this License, they do not | ||||||
|  | excuse you from the conditions of this License.  If you cannot | ||||||
|  | distribute so as to satisfy simultaneously your obligations under this | ||||||
|  | License and any other pertinent obligations, then as a consequence you | ||||||
|  | may not distribute the Library at all.  For example, if a patent | ||||||
|  | license would not permit royalty-free redistribution of the Library by | ||||||
|  | all those who receive copies directly or indirectly through you, then | ||||||
|  | the only way you could satisfy both it and this License would be to | ||||||
|  | refrain entirely from distribution of the Library. | ||||||
|  |  | ||||||
|  | If any portion of this section is held invalid or unenforceable under any | ||||||
|  | particular circumstance, the balance of the section is intended to apply, | ||||||
|  | and the section as a whole is intended to apply in other circumstances. | ||||||
|  |  | ||||||
|  | It is not the purpose of this section to induce you to infringe any | ||||||
|  | patents or other property right claims or to contest validity of any | ||||||
|  | such claims; this section has the sole purpose of protecting the | ||||||
|  | integrity of the free software distribution system which is | ||||||
|  | implemented by public license practices.  Many people have made | ||||||
|  | generous contributions to the wide range of software distributed | ||||||
|  | through that system in reliance on consistent application of that | ||||||
|  | system; it is up to the author/donor to decide if he or she is willing | ||||||
|  | to distribute software through any other system and a licensee cannot | ||||||
|  | impose that choice. | ||||||
|  |  | ||||||
|  | This section is intended to make thoroughly clear what is believed to | ||||||
|  | be a consequence of the rest of this License. | ||||||
|  |  | ||||||
|  |   12. If the distribution and/or use of the Library is restricted in | ||||||
|  | certain countries either by patents or by copyrighted interfaces, the | ||||||
|  | original copyright holder who places the Library under this License may add | ||||||
|  | an explicit geographical distribution limitation excluding those countries, | ||||||
|  | so that distribution is permitted only in or among countries not thus | ||||||
|  | excluded.  In such case, this License incorporates the limitation as if | ||||||
|  | written in the body of this License. | ||||||
|  |  | ||||||
|  |   13. The Free Software Foundation may publish revised and/or new | ||||||
|  | versions of the Library General Public License from time to time. | ||||||
|  | Such new versions will be similar in spirit to the present version, | ||||||
|  | but may differ in detail to address new problems or concerns. | ||||||
|  |  | ||||||
|  | Each version is given a distinguishing version number.  If the Library | ||||||
|  | specifies a version number of this License which applies to it and | ||||||
|  | "any later version", you have the option of following the terms and | ||||||
|  | conditions either of that version or of any later version published by | ||||||
|  | the Free Software Foundation.  If the Library does not specify a | ||||||
|  | license version number, you may choose any version ever published by | ||||||
|  | the Free Software Foundation. | ||||||
|  |  | ||||||
|  |   14. If you wish to incorporate parts of the Library into other free | ||||||
|  | programs whose distribution conditions are incompatible with these, | ||||||
|  | write to the author to ask for permission.  For software which is | ||||||
|  | copyrighted by the Free Software Foundation, write to the Free | ||||||
|  | Software Foundation; we sometimes make exceptions for this.  Our | ||||||
|  | decision will be guided by the two goals of preserving the free status | ||||||
|  | of all derivatives of our free software and of promoting the sharing | ||||||
|  | and reuse of software generally. | ||||||
|  |  | ||||||
|  | 			    NO WARRANTY | ||||||
|  |  | ||||||
|  |   15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO | ||||||
|  | WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. | ||||||
|  | EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR | ||||||
|  | OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY | ||||||
|  | KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE | ||||||
|  | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | ||||||
|  | PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE | ||||||
|  | LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME | ||||||
|  | THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. | ||||||
|  |  | ||||||
|  |   16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN | ||||||
|  | WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY | ||||||
|  | AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU | ||||||
|  | FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR | ||||||
|  | CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE | ||||||
|  | LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING | ||||||
|  | RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A | ||||||
|  | FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF | ||||||
|  | SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH | ||||||
|  | DAMAGES. | ||||||
|  |  | ||||||
|  | 		     END OF TERMS AND CONDITIONS | ||||||
|  |  | ||||||
|  |      Appendix: How to Apply These Terms to Your New Libraries | ||||||
|  |  | ||||||
|  |   If you develop a new library, and you want it to be of the greatest | ||||||
|  | possible use to the public, we recommend making it free software that | ||||||
|  | everyone can redistribute and change.  You can do so by permitting | ||||||
|  | redistribution under these terms (or, alternatively, under the terms of the | ||||||
|  | ordinary General Public License). | ||||||
|  |  | ||||||
|  |   To apply these terms, attach the following notices to the library.  It is | ||||||
|  | safest to attach them to the start of each source file to most effectively | ||||||
|  | convey the exclusion of warranty; and each file should have at least the | ||||||
|  | "copyright" line and a pointer to where the full notice is found. | ||||||
|  |  | ||||||
|  |     <one line to give the library's name and a brief idea of what it does.> | ||||||
|  |     Copyright (C) <year>  <name of author> | ||||||
|  |  | ||||||
|  |     This library is free software; you can redistribute it and/or | ||||||
|  |     modify it under the terms of the GNU Library General Public | ||||||
|  |     License as published by the Free Software Foundation; either | ||||||
|  |     version 2 of the License, or (at your option) any later version. | ||||||
|  |  | ||||||
|  |     This library is distributed in the hope that it will be useful, | ||||||
|  |     but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  |     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | ||||||
|  |     Library General Public License for more details. | ||||||
|  |  | ||||||
|  |     You should have received a copy of the GNU Library General Public | ||||||
|  |     License along with this library; if not, write to the Free | ||||||
|  |     Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||||||
|  |  | ||||||
|  | Also add information on how to contact you by electronic and paper mail. | ||||||
|  |  | ||||||
|  | You should also get your employer (if you work as a programmer) or your | ||||||
|  | school, if any, to sign a "copyright disclaimer" for the library, if | ||||||
|  | necessary.  Here is a sample; alter the names: | ||||||
|  |  | ||||||
|  |   Yoyodyne, Inc., hereby disclaims all copyright interest in the | ||||||
|  |   library `Frob' (a library for tweaking knobs) written by James Random Hacker. | ||||||
|  |  | ||||||
|  |   <signature of Ty Coon>, 1 April 1990 | ||||||
|  |   Ty Coon, President of Vice | ||||||
|  |  | ||||||
|  | That's all there is to it! | ||||||
|  |  | ||||||
							
								
								
									
										160
									
								
								docs/GL3.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										160
									
								
								docs/GL3.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,160 @@ | |||||||
|  |  | ||||||
|  | Status of OpenGL 3.x features in Mesa | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Note: when an item is marked as "DONE" it means all the core Mesa | ||||||
|  | infrastructure is complete but it may be the case that few (if any) drivers | ||||||
|  | implement the features. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Feature                                               Status | ||||||
|  | ----------------------------------------------------- ------------------------ | ||||||
|  |  | ||||||
|  | GL 3.0: | ||||||
|  |  | ||||||
|  | GLSL 1.30                                             DONE | ||||||
|  | glBindFragDataLocation, glGetFragDataLocation         DONE | ||||||
|  | Conditional rendering (GL_NV_conditional_render)      DONE (i965, r300, r600, swrast) | ||||||
|  | Map buffer subranges (GL_ARB_map_buffer_range)        DONE (i965, r300, r600, swrast) | ||||||
|  | Clamping controls (GL_ARB_color_buffer_float)         DONE (i965, r300, r600) | ||||||
|  | Float textures, renderbuffers (GL_ARB_texture_float)  DONE (i965, r300, r600) | ||||||
|  | GL_EXT_packed_float                                   DONE (i965, r600) | ||||||
|  | GL_EXT_texture_shared_exponent                        DONE (i965, r600, swrast) | ||||||
|  | Float depth buffers (GL_ARB_depth_buffer_float)       DONE (i965, r600) | ||||||
|  | Framebuffer objects (GL_ARB_framebuffer_object)       DONE (i965, r300, r600, swrast) | ||||||
|  | Half-float                                            DONE | ||||||
|  | Non-normalized Integer texture/framebuffer formats    DONE (i965, r600) | ||||||
|  | 1D/2D Texture arrays                                  DONE | ||||||
|  | Per-buffer blend and masks (GL_EXT_draw_buffers2)     DONE (i965, r600, swrast) | ||||||
|  | GL_EXT_texture_compression_rgtc                       DONE (i965, r300, r600, swrast) | ||||||
|  | Red and red/green texture formats                     DONE (i965, swrast, gallium) | ||||||
|  | Transform feedback (GL_EXT_transform_feedback)        DONE (i965, r600) | ||||||
|  | Vertex array objects (GL_APPLE_vertex_array_object)   DONE (i965, r300, r600, swrast) | ||||||
|  | sRGB framebuffer format (GL_EXT_framebuffer_sRGB)     DONE (i965, r600) | ||||||
|  | glClearBuffer commands                                DONE | ||||||
|  | glGetStringi command                                  DONE | ||||||
|  | glTexParameterI, glGetTexParameterI commands          DONE | ||||||
|  | glVertexAttribI commands                              DONE | ||||||
|  | Depth format cube textures                            DONE | ||||||
|  | GLX_ARB_create_context (GLX 1.4 is required)          DONE | ||||||
|  |  | ||||||
|  |  | ||||||
|  | GL 3.1: | ||||||
|  |  | ||||||
|  | GLSL 1.40                                             DONE (i965) | ||||||
|  | Forward compatibile context support/deprecations      DONE (i965) | ||||||
|  | Instanced drawing (GL_ARB_draw_instanced)             DONE (i965, gallium, swrast) | ||||||
|  | Buffer copying (GL_ARB_copy_buffer)                   DONE (i965, r300, r600, swrast) | ||||||
|  | Primitive restart (GL_NV_primitive_restart)           DONE (i965, r600) | ||||||
|  | 16 vertex texture image units                         DONE | ||||||
|  | Texture buffer objs (GL_ARB_texture_buffer_object)    DONE for OpenGL 3.1 contexts (i965) | ||||||
|  | Rectangular textures (GL_ARB_texture_rectangle)       DONE (i965, r300, r600, swrast) | ||||||
|  | Uniform buffer objs (GL_ARB_uniform_buffer_object)    DONE (i965) | ||||||
|  | Signed normalized textures (GL_EXT_texture_snorm)     DONE (i965, r300, r600) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | GL 3.2: | ||||||
|  |  | ||||||
|  | Core/compatibility profiles                           DONE | ||||||
|  | GLSL 1.50                                             not started | ||||||
|  | Geometry shaders (GL_ARB_geometry_shader4)            partially done (Zack) | ||||||
|  | BGRA vertex order (GL_ARB_vertex_array_bgra)          DONE (i965, r300, r600, swrast) | ||||||
|  | Base vertex offset(GL_ARB_draw_elements_base_vertex)  DONE (i965, r300, r600, swrast) | ||||||
|  | Frag shader coord (GL_ARB_fragment_coord_conventions) DONE (i965, r300, r600, swrast) | ||||||
|  | Provoking vertex (GL_ARB_provoking_vertex)            DONE (i965, r300, r600, swrast) | ||||||
|  | Seamless cubemaps (GL_ARB_seamless_cube_map)          DONE (i965, r600) | ||||||
|  | Multisample textures (GL_ARB_texture_multisample)     not started | ||||||
|  | Frag depth clamp (GL_ARB_depth_clamp)                 DONE (i965, r600, swrast) | ||||||
|  | Fence objects (GL_ARB_sync)                           DONE (i965, r300, r600, swrast) | ||||||
|  | GLX_ARB_create_context_profile                        DONE | ||||||
|  |  | ||||||
|  |  | ||||||
|  | GL 3.3: | ||||||
|  |  | ||||||
|  | GLSL 3.30                                             new features in this version pretty much done | ||||||
|  | GL_ARB_blend_func_extended                            DONE (i965, r600, softpipe) | ||||||
|  | GL_ARB_explicit_attrib_location                       DONE (i915, i965, r300, r600, swrast) | ||||||
|  | GL_ARB_occlusion_query2                               DONE (i965, r300, r600, swrast) | ||||||
|  | GL_ARB_sampler_objects                                DONE (i965, r300, r600) | ||||||
|  | GL_ARB_shader_bit_encoding                            DONE | ||||||
|  | GL_ARB_texture_rgb10_a2ui                             DONE (i965, r600) | ||||||
|  | GL_ARB_texture_swizzle                                DONE (same as EXT version) (i965, r300, r600, swrast) | ||||||
|  | GL_ARB_timer_query                                    DONE (i965, r600) | ||||||
|  | GL_ARB_instanced_arrays                               DONE (i965, r300, r600) | ||||||
|  | GL_ARB_vertex_type_2_10_10_10_rev                     DONE (i965, r600) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | GL 4.0: | ||||||
|  |  | ||||||
|  | GLSL 4.0                                             not started | ||||||
|  | GL_ARB_texture_query_lod                             not started | ||||||
|  | GL_ARB_draw_buffers_blend                            DONE (i965, r600, softpipe) | ||||||
|  | GL_ARB_draw_indirect                                 not started | ||||||
|  | GL_ARB_gpu_shader5                                   not started | ||||||
|  | GL_ARB_gpu_shader_fp64                               not started | ||||||
|  | GL_ARB_sample_shading                                not started | ||||||
|  | GL_ARB_shader_subroutine                             not started | ||||||
|  | GL_ARB_tessellation_shader                           not started | ||||||
|  | GL_ARB_texture_buffer_object_rgb32                   DONE (softpipe) | ||||||
|  | GL_ARB_texture_cube_map_array                        DONE (i965, softpipe) | ||||||
|  | GL_ARB_texture_gather                                not started | ||||||
|  | GL_ARB_transform_feedback2                           DONE | ||||||
|  | GL_ARB_transform_feedback3                           DONE | ||||||
|  |  | ||||||
|  |  | ||||||
|  | GL 4.1: | ||||||
|  |  | ||||||
|  | GLSL 4.1                                             not started | ||||||
|  | GL_ARB_ES2_compatibility                             DONE (i965, r300, r600) | ||||||
|  | GL_ARB_get_program_binary                            not started | ||||||
|  | GL_ARB_separate_shader_objects                       some infrastructure done | ||||||
|  | GL_ARB_shader_precision                              not started | ||||||
|  | GL_ARB_vertex_attrib_64bit                           not started | ||||||
|  | GL_ARB_viewport_array                                not started | ||||||
|  |  | ||||||
|  |  | ||||||
|  | GL 4.2: | ||||||
|  |  | ||||||
|  | GLSL 4.2                                             not started | ||||||
|  | GL_ARB_texture_compression_bptc                      not started | ||||||
|  | GL_ARB_compressed_texture_pixel_storage              not started | ||||||
|  | GL_ARB_shader_atomic_counters                        not started | ||||||
|  | GL_ARB_texture_storage                               DONE (r300, r600, swrast, gallium) | ||||||
|  | GL_ARB_transform_feedback_instanced                  DONE | ||||||
|  | GL_ARB_base_instance                                 DONE (nv50, nvc0, r600, radeonsi) | ||||||
|  | GL_ARB_shader_image_load_store                       not started | ||||||
|  | GL_ARB_conservative_depth                            DONE (softpipe) | ||||||
|  | GL_ARB_shading_language_420pack                      not started | ||||||
|  | GL_ARB_internalformat_query                          not started | ||||||
|  | GL_ARB_map_buffer_alignment                          DONE (r300, r600, radeonsi) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | GL 4.3: | ||||||
|  |  | ||||||
|  | GLSL 4.3                                             not started | ||||||
|  | ARB_arrays_of_arrays                                 not started | ||||||
|  | ARB_ES3_compatibility                                not started | ||||||
|  | ARB_clear_buffer_object                              not started | ||||||
|  | ARB_compute_shader                                   started (gallium) | ||||||
|  | ARB_copy_image                                       not started | ||||||
|  | KHR_debug                                            some work done (ARB_debug_output) | ||||||
|  | ARB_explicit_uniform_location                        not started | ||||||
|  | ARB_fragment_layer_viewport                          not started | ||||||
|  | ARB_framebuffer_no_attachments                       not started | ||||||
|  | ARB_internalformat_query2                            not started | ||||||
|  | ARB_invalidate_subdata                               not started | ||||||
|  | ARB_multi_draw_indirect                              not started | ||||||
|  | ARB_program_interface_query                          not started | ||||||
|  | ARB_robust_buffer_access_behavior                    not started | ||||||
|  | ARB_shader_image_size                                not started | ||||||
|  | ARB_shader_storage_buffer_object                     not started | ||||||
|  | ARB_stencil_texturing                                not started | ||||||
|  | ARB_texture_buffer_range                             not started | ||||||
|  | ARB_texture_query_levels                             not started | ||||||
|  | ARB_texture_storage_multisample                      not started | ||||||
|  | ARB_texture_view                                     not started | ||||||
|  | ARB_vertex_attrib_binding                            not started | ||||||
|  |  | ||||||
|  |  | ||||||
|  | More info about these features and the work involved can be found at | ||||||
|  | http://dri.freedesktop.org/wiki/MissingFunctionality | ||||||
| @@ -13,7 +13,8 @@ Contact | |||||||
| 
 | 
 | ||||||
| Status | Status | ||||||
| 
 | 
 | ||||||
|     Obsolete. Effectively superseded by ARB_vertex_buffer_object. |     Shipping (Mesa 4.0.4 and later.  Only implemented in particular | ||||||
|  |     XFree86/DRI drivers.) | ||||||
| 
 | 
 | ||||||
| Version | Version | ||||||
| 
 | 
 | ||||||
| @@ -12,7 +12,7 @@ Contact | |||||||
| 
 | 
 | ||||||
| Status | Status | ||||||
| 
 | 
 | ||||||
|     Obsolete. |     Shipping (since Mesa version 2.2) | ||||||
| 
 | 
 | ||||||
| Version | Version | ||||||
| 
 | 
 | ||||||
| @@ -12,7 +12,7 @@ Contact | |||||||
| 
 | 
 | ||||||
| Status | Status | ||||||
| 
 | 
 | ||||||
|     Obsolete. |     Shipping since Mesa 2.6 in February, 1998. | ||||||
| 
 | 
 | ||||||
| Version | Version | ||||||
| 
 | 
 | ||||||
| @@ -16,7 +16,7 @@ IP Status | |||||||
| 
 | 
 | ||||||
| Status | Status | ||||||
| 
 | 
 | ||||||
|     DEPRECATED - Support removed in Mesa 10.1. |     Shipping in Mesa 7.1 | ||||||
| 
 | 
 | ||||||
| Version | Version | ||||||
| 
 | 
 | ||||||
| @@ -76,9 +76,9 @@ Overview | |||||||
| 
 | 
 | ||||||
|     References: |     References: | ||||||
| 
 | 
 | ||||||
|         https://www.opengl.org/discussion_boards/cgi_directory/ultimatebb.cgi?ubb=get_topic;f=3;t=011557 |         http://www.opengl.org/discussion_boards/cgi_directory/ultimatebb.cgi?ubb=get_topic;f=3;t=011557 | ||||||
|         https://www.opengl.org/discussion_boards/cgi_directory/ultimatebb.cgi?ubb=get_topic;f=3;t=000516 |         http://www.opengl.org/discussion_boards/cgi_directory/ultimatebb.cgi?ubb=get_topic;f=3;t=000516 | ||||||
|         https://www.opengl.org/discussion_boards/cgi_directory/ultimatebb.cgi?ubb=get_topic;f=3;t=011903 |         http://www.opengl.org/discussion_boards/cgi_directory/ultimatebb.cgi?ubb=get_topic;f=3;t=011903 | ||||||
|         http://www.delphi3d.net/articles/viewarticle.php?article=terraintex.htm |         http://www.delphi3d.net/articles/viewarticle.php?article=terraintex.htm | ||||||
| 
 | 
 | ||||||
| New Procedures and Functions | New Procedures and Functions | ||||||
| @@ -12,7 +12,7 @@ Contact | |||||||
| 
 | 
 | ||||||
| Status | Status | ||||||
| 
 | 
 | ||||||
|     Obsolete. |     XXX - Not complete yet!!! | ||||||
| 
 | 
 | ||||||
| Version | Version | ||||||
| 
 | 
 | ||||||
| @@ -133,7 +133,7 @@ New Tokens | |||||||
|     GetFloatv and GetIntegerv: |     GetFloatv and GetIntegerv: | ||||||
| 
 | 
 | ||||||
|         FRAGMENT_PROGRAM_POSITION_MESA      0x8bb0 |         FRAGMENT_PROGRAM_POSITION_MESA      0x8bb0 | ||||||
|         VERTEX_PROGRAM_POSITION_MESA        0x8bb5 |         VERTEX_PROGRAM_POSITION_MESA        0x8bb4 | ||||||
| 
 | 
 | ||||||
|     Accepted by the <pname> parameter of GetPointerv: |     Accepted by the <pname> parameter of GetPointerv: | ||||||
| 
 | 
 | ||||||
							
								
								
									
										256
									
								
								docs/README.CYGWIN
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										256
									
								
								docs/README.CYGWIN
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,256 @@ | |||||||
|  |  | ||||||
|  |                           Mesa Cygwin/X11 Information | ||||||
|  |  | ||||||
|  |  | ||||||
|  | WARNING | ||||||
|  | ======= | ||||||
|  |  | ||||||
|  | If you installed X11 (packages xorg-x11-devel and xorg-x11-bin-dlls ) with the  | ||||||
|  | latest setup.exe from Cygwin the GL (Mesa) libraries and include are already  | ||||||
|  | installed in /usr/X11R6.  | ||||||
|  |  | ||||||
|  | The following will explain how to "replace" them. | ||||||
|  |  | ||||||
|  | Installation | ||||||
|  | ============ | ||||||
|  |  | ||||||
|  | How to compile Mesa on Cygwin/X11 systems: | ||||||
|  |  | ||||||
|  | 1. Shared libs: | ||||||
|  |     type 'make cygwin-sl'. | ||||||
|  |  | ||||||
|  |     When finished, the Mesa DLL will be in the Mesa-x.y/lib/ and  | ||||||
|  |     Mesa-x.y/bin directories. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | 2. Static libs: | ||||||
|  |     type 'make cygwin-static'. | ||||||
|  |     When finished, the Mesa libraries will be in the Mesa-x.y/lib/ directory. | ||||||
|  |  | ||||||
|  | Header and library files: | ||||||
|  |    After you've compiled Mesa and tried the demos I recommend the following | ||||||
|  |    procedure for "installing" Mesa. | ||||||
|  |  | ||||||
|  |    Copy the Mesa include/GL directory to /usr/X11R6/include: | ||||||
|  | 	cp -a include/GL /usr/X11R6/include | ||||||
|  |  | ||||||
|  |    Copy the Mesa library files to /usr/X11R6/lib: | ||||||
|  | 	cp -a lib/* /usr/X11R6ocal/lib | ||||||
|  |  | ||||||
|  |    Copy the Mesa bin files (used by the DLL stuff) to /usr/X11R6/bin: | ||||||
|  | 	cp -a lib/cyg* /usr/X11R6/bin | ||||||
|  |  | ||||||
|  | Xt/Motif widgets: | ||||||
|  |    If you want to use Mesa or OpenGL in your Xt/Motif program you can build | ||||||
|  |    the widgets found in either the widgets-mesa or widgets-sgi directories. | ||||||
|  |    The former were written for Mesa and the later are the original SGI | ||||||
|  |    widgets.  Look in those directories for more information. | ||||||
|  |    For the Motif widgets you must have downloaded the lesstif package. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Using the library | ||||||
|  | ================= | ||||||
|  |  | ||||||
|  | Configuration options: | ||||||
|  |    The file src/mesa/main/config.h has many parameters which you can adjust | ||||||
|  |    such as maximum number of lights, clipping planes, maximum texture size, | ||||||
|  |    etc.  In particular, you may want to change DEPTH_BITS from 16 to 32 | ||||||
|  |    if a 16-bit depth buffer isn't precise enough for your application. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Shared libraries: | ||||||
|  |    If you compile shared libraries (Win32 DLLS) you may have to set an  | ||||||
|  |    environment variable to specify where the Mesa libraries are located.   | ||||||
|  |    Set the PATH variable to include /your-dir/Mesa-2.6/bin.    | ||||||
|  |    Otherwise, when you try to run a demo it may fail with a message saying  | ||||||
|  |    that one or more DLL couldn't be found. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Xt/Motif Widgets: | ||||||
|  |    Two versions of the Xt/Motif OpenGL drawing area widgets are included: | ||||||
|  |  | ||||||
|  |       widgets-sgi/	SGI's stock widgets | ||||||
|  |       widgets-mesa/	Mesa-tuned widgets | ||||||
|  |  | ||||||
|  |    Look in those directories for details | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Togl: | ||||||
|  |    Togl is an OpenGL/Mesa widget for Tcl/Tk. | ||||||
|  |    See http://togl.sourceforge.net for more information. | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | X Display Modes: | ||||||
|  |    Mesa supports RGB(A) rendering into almost any X visual type and depth. | ||||||
|  |  | ||||||
|  |    The glXChooseVisual function tries its best to pick an appropriate visual | ||||||
|  |    for the given attribute list.  However, if this doesn't suit your needs | ||||||
|  |    you can force Mesa to use any X visual you want (any supported by your | ||||||
|  |    X server that is) by setting the MESA_RGB_VISUAL and MESA_CI_VISUAL | ||||||
|  |    environment variables.  When an RGB visual is requested, glXChooseVisual | ||||||
|  |    will first look if the MESA_RGB_VISUAL variable is defined.  If so, it | ||||||
|  |    will try to use the specified visual.  Similarly, when a color index | ||||||
|  |    visual is requested, glXChooseVisual will look for the MESA_CI_VISUAL | ||||||
|  |    variable. | ||||||
|  |  | ||||||
|  |    The format of accepted values is:  <visual-class> <depth> | ||||||
|  |    Here are some examples: | ||||||
|  |  | ||||||
|  |    using the C-shell: | ||||||
|  | 	% setenv MESA_RGB_VISUAL "TrueColor 8"		// 8-bit TrueColor | ||||||
|  | 	% setenv MESA_CI_VISUAL "PseudoColor 12"	// 12-bit PseudoColor | ||||||
|  | 	% setenv MESA_RGB_VISUAL "PseudoColor 8"	// 8-bit PseudoColor | ||||||
|  |  | ||||||
|  |    using the KornShell: | ||||||
|  | 	$ export MESA_RGB_VISUAL="TrueColor 8" | ||||||
|  | 	$ export MESA_CI_VISUAL="PseudoColor 12" | ||||||
|  | 	$ export MESA_RGB_VISUAL="PseudoColor 8" | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Double buffering: | ||||||
|  |    Mesa can use either an X Pixmap or XImage as the backbuffer when in | ||||||
|  |    double buffer mode.  Using GLX, the default is to use an XImage.  The | ||||||
|  |    MESA_BACK_BUFFER environment variable can override this.  The valid | ||||||
|  |    values for MESA_BACK_BUFFER are:  Pixmap and XImage (only the first | ||||||
|  |    letter is checked, case doesn't matter). | ||||||
|  |  | ||||||
|  |    A pixmap is faster when drawing simple lines and polygons while an | ||||||
|  |    XImage is faster when Mesa has to do pixel-by-pixel rendering.  If you | ||||||
|  |    need depth buffering the XImage will almost surely be faster.  Exper- | ||||||
|  |    iment with the MESA_BACK_BUFFER variable to see which is faster for | ||||||
|  |    your application.   | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Colormaps: | ||||||
|  |    When using Mesa directly or with GLX, it's up to the application writer | ||||||
|  |    to create a window with an appropriate colormap.  The aux, tk, and GLUT | ||||||
|  |    toolkits try to minimize colormap "flashing" by sharing colormaps when | ||||||
|  |    possible.  Specifically, if the visual and depth of the window matches | ||||||
|  |    that of the root window, the root window's colormap will be shared by | ||||||
|  |    the Mesa window.  Otherwise, a new, private colormap will be allocated. | ||||||
|  |  | ||||||
|  |    When sharing the root colormap, Mesa may be unable to allocate the colors | ||||||
|  |    it needs, resulting in poor color quality.  This can happen when a | ||||||
|  |    large number of colorcells in the root colormap are already allocated. | ||||||
|  |    To prevent colormap sharing in aux, tk and GLUT, define the environment | ||||||
|  |    variable MESA_PRIVATE_CMAP.  The value isn't significant. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Gamma correction: | ||||||
|  |    To compensate for the nonlinear relationship between pixel values | ||||||
|  |    and displayed intensities, there is a gamma correction feature in | ||||||
|  |    Mesa.  Some systems, such as Silicon Graphics, support gamma | ||||||
|  |    correction in hardware (man gamma) so you won't need to use Mesa's | ||||||
|  |    gamma facility.  Other systems, however, may need gamma adjustment | ||||||
|  |    to produce images which look correct.  If in the past you thought | ||||||
|  |    Mesa's images were too dim, read on. | ||||||
|  |  | ||||||
|  |    Gamma correction is controlled with the MESA_GAMMA environment | ||||||
|  |    variable.  Its value is of the form "Gr Gg Gb" or just "G" where | ||||||
|  |    Gr is the red gamma value, Gg is the green gamma value, Gb is the | ||||||
|  |    blue gamma value and G is one gamma value to use for all three | ||||||
|  |    channels.  Each value is a positive real number typically in the | ||||||
|  |    range 1.0 to 2.5.  The defaults are all 1.0, effectively disabling | ||||||
|  |    gamma correction.  Examples using csh: | ||||||
|  |  | ||||||
|  | 	% setenv MESA_GAMMA "2.3 2.2 2.4"	// separate R,G,B values | ||||||
|  | 	% setenv MESA_GAMMA "2.0"		// same gamma for R,G,B | ||||||
|  |  | ||||||
|  |    The demos/gamma.c program may help you to determine reasonable gamma | ||||||
|  |    value for your display.  With correct gamma values, the color intensities | ||||||
|  |    displayed in the top row (drawn by dithering) should nearly match those | ||||||
|  |    in the bottom row (drawn as grays). | ||||||
|  |  | ||||||
|  |    Alex De Bruyn reports that gamma values of 1.6, 1.6 and 1.9 work well | ||||||
|  |    on HP displays using the HP-ColorRecovery technology. | ||||||
|  |  | ||||||
|  |    Mesa implements gamma correction with a lookup table which translates | ||||||
|  |    a "linear" pixel value to a gamma-corrected pixel value.  There is a | ||||||
|  |    small performance penalty.  Gamma correction only works in RGB mode. | ||||||
|  |    Also be aware that pixel values read back from the frame buffer will | ||||||
|  |    not be "un-corrected" so glReadPixels may not return the same data | ||||||
|  |    drawn with glDrawPixels. | ||||||
|  |  | ||||||
|  |    For more information about gamma correction see: | ||||||
|  |    http://www.inforamp.net/~poynton/notes/colour_and_gamma/GammaFAQ.html | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Overlay Planes | ||||||
|  |  | ||||||
|  |    Overlay planes in the frame buffer are supported by Mesa but require | ||||||
|  |    hardware and X server support.  To determine if your X server has | ||||||
|  |    overlay support you can test for the SERVER_OVERLAY_VISUALS property: | ||||||
|  |  | ||||||
|  | 	xprop -root | grep SERVER_OVERLAY_VISUALS | ||||||
|  |  | ||||||
|  |  | ||||||
|  | HPCR glClear(GL_COLOR_BUFFER_BIT) dithering | ||||||
|  |  | ||||||
|  |    If you set the MESA_HPCR_CLEAR environment variable then dithering | ||||||
|  |    will be used when clearing the color buffer.  This is only applicable | ||||||
|  |    to HP systems with the HPCR (Color Recovery) system. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Extensions | ||||||
|  | ========== | ||||||
|  |    There are three Mesa-specific GLX extensions at this time. | ||||||
|  |  | ||||||
|  |    GLX_MESA_pixmap_colormap  | ||||||
|  |  | ||||||
|  |       This extension adds the GLX function: | ||||||
|  |  | ||||||
|  |          GLXPixmap glXCreateGLXPixmapMESA( Display *dpy, XVisualInfo *visual, | ||||||
|  |                                            Pixmap pixmap, Colormap cmap ) | ||||||
|  |  | ||||||
|  |       It is an alternative to the standard glXCreateGLXPixmap() function. | ||||||
|  |       Since Mesa supports RGB rendering into any X visual, not just True- | ||||||
|  |       Color or DirectColor, Mesa needs colormap information to convert RGB | ||||||
|  |       values into pixel values.  An X window carries this information but a | ||||||
|  |       pixmap does not.  This function associates a colormap to a GLX pixmap. | ||||||
|  |       See the xdemos/glxpixmap.c file for an example of how to use this | ||||||
|  |       extension. | ||||||
|  |  | ||||||
|  |    GLX_MESA_release_buffers | ||||||
|  |  | ||||||
|  |       Mesa associates a set of ancillary (depth, accumulation, stencil and | ||||||
|  |       alpha) buffers with each X window it draws into.  These ancillary | ||||||
|  |       buffers are allocated for each X window the first time the X window | ||||||
|  |       is passed to glXMakeCurrent().  Mesa, however, can't detect when an | ||||||
|  |       X window has been destroyed in order to free the ancillary buffers. | ||||||
|  |  | ||||||
|  |       The best it can do is to check for recently destroyed windows whenever | ||||||
|  |       the client calls the glXCreateContext() or glXDestroyContext() | ||||||
|  |       functions.  This may not be sufficient in all situations though. | ||||||
|  |  | ||||||
|  |       The GLX_MESA_release_buffers extension allows a client to explicitly | ||||||
|  |       deallocate the ancillary buffers by calling glxReleaseBuffersMESA() | ||||||
|  |       just before an X window is destroyed.  For example: | ||||||
|  |  | ||||||
|  |          #ifdef GLX_MESA_release_buffers | ||||||
|  |             glXReleaseBuffersMESA( dpy, window ); | ||||||
|  |          #endif | ||||||
|  |          XDestroyWindow( dpy, window ); | ||||||
|  |  | ||||||
|  |       This extension is new in Mesa 2.0. | ||||||
|  |  | ||||||
|  |    GLX_MESA_copy_sub_buffer | ||||||
|  |  | ||||||
|  |       This extension adds the glXCopySubBufferMESA() function.  It works | ||||||
|  |       like glXSwapBuffers() but only copies a sub-region of the window | ||||||
|  |       instead of the whole window. | ||||||
|  |  | ||||||
|  |       This extension is new in Mesa version 2.6 | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Summary of X-related environment variables: | ||||||
|  |    MESA_RGB_VISUAL - specifies the X visual and depth for RGB mode (X only) | ||||||
|  |    MESA_CI_VISUAL - specifies the X visual and depth for CI mode (X only) | ||||||
|  |    MESA_BACK_BUFFER - specifies how to implement the back color buffer (X only) | ||||||
|  |    MESA_PRIVATE_CMAP - force aux/tk libraries to use private colormaps (X only) | ||||||
|  |    MESA_GAMMA - gamma correction coefficients (X only) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | ---------------------------------------------------------------------- | ||||||
|  | README.CYGWIN - lassauge April 2004 - based on README.X11 | ||||||
							
								
								
									
										102
									
								
								docs/README.MITS
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										102
									
								
								docs/README.MITS
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,102 @@ | |||||||
|  |  | ||||||
|  | 			Mesa 3.0 MITS Information | ||||||
|  |  | ||||||
|  |  | ||||||
|  | This software is distributed under the terms of the GNU Library | ||||||
|  | General Public License, see the LICENSE file for details. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | This document is a preliminary introduction to help you get | ||||||
|  | started. For more detaile information consult the web page. | ||||||
|  |  | ||||||
|  | http://10-dencies.zkm.de/~mesa/ | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Version 0.1 (Yes it's very alpha code so be warned!) | ||||||
|  | Contributors:  | ||||||
|  |   Emil Briggs    	(briggs@bucky.physics.ncsu.edu) | ||||||
|  |   David Bucciarelli 	(tech.hmw@plus.it) | ||||||
|  |   Andreas Schiffler 	(schiffler@zkm.de) | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | 1. Requirements: | ||||||
|  |      Mesa 3.0. | ||||||
|  |      An SMP capable machine running Linux 2.x | ||||||
|  |      libpthread installed on your machine. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | 2. What does MITS stand for? | ||||||
|  |      MITS stands for Mesa Internal Threading System. By adding | ||||||
|  |      internal threading to Mesa it should be possible to improve | ||||||
|  |      performance of OpenGL applications on SMP machines. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | 3. Do applications have to be recoded to take advantage of MITS? | ||||||
|  |      No. The threading is internal to Mesa and transparent to | ||||||
|  |      applications. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | 4. Will all applications benefit from the current implementation of MITS? | ||||||
|  |      No. This implementation splits the processing of the vertex buffer | ||||||
|  |      over two threads. There is a certain amount of overhead involved | ||||||
|  |      with the thread synchronization and if there is not enough work | ||||||
|  |      to be done the extra overhead outweighs any speedup from using | ||||||
|  |      dual processors. You will not for example see any speedup when | ||||||
|  |      running Quake because it uses GL_POLYGON and there is only one | ||||||
|  |      polygon for each vertex buffer processed. Test results on a | ||||||
|  |      dual 200 Mhz. Pentium Pro system show that one needs around | ||||||
|  |      100-200 vertices in the vertex buffer before any there is any | ||||||
|  |      appreciable benefit from the threading. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | 5. Are there any parameters that I can tune to try to improve performance. | ||||||
|  |      Yes. You can try to vary the size of the vertex buffer which is | ||||||
|  |      define in VB_MAX located in the file src/vb.h from your top level | ||||||
|  |      Mesa distribution. The number needs to be a multiple of 12 and | ||||||
|  |      the optimum value will probably depend on the capabilities of | ||||||
|  |      your machine and the particular application you are running. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | 6. Are there any ways I can modify the application to improve its | ||||||
|  |    performance with the MITS? | ||||||
|  |      Yes. Try to use as many vertices between each Begin/End pair | ||||||
|  |      as possbile. This will reduce the thread synchronization | ||||||
|  |      overhead. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | 7. What sort of speedups can I expect? | ||||||
|  |      On some benchmarks performance gains of up to 30% have been | ||||||
|  |      observerd. Others may see no gain at all and in a few rare | ||||||
|  |      cases even some degradation. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | 8. What still needs to be done? | ||||||
|  |      Lots of testing and benchmarking. | ||||||
|  |      A portable implementation that works within the Mesa thread API. | ||||||
|  |      Threading of additional areas of Mesa to improve performance | ||||||
|  |      even more. | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Installation: | ||||||
|  |  | ||||||
|  |    1. This assumes that you already have a working Mesa 3.0 installation | ||||||
|  |       from source. | ||||||
|  |    2. Place the tarball MITS.tar.gz in your top level Mesa directory. | ||||||
|  |    3. Unzip it and untar it. It will replace the following files in | ||||||
|  |       your Mesa source tree so back them up if you want to save them. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | 	 README.MITS | ||||||
|  |          Make-config | ||||||
|  | 	 Makefile | ||||||
|  | 	 mklib.glide | ||||||
|  |          src/vbxform.c | ||||||
|  | 	 src/vb.h | ||||||
|  |  | ||||||
|  |    4. Rebuild Mesa using the command | ||||||
|  |  | ||||||
|  |           make linux-386-glide-mits | ||||||
|  |  | ||||||
							
								
								
									
										207
									
								
								docs/README.QUAKE
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										207
									
								
								docs/README.QUAKE
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,207 @@ | |||||||
|  |  | ||||||
|  |              Info on using Mesa 3.0 with Linux Quake I and Quake II | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Disclaimer | ||||||
|  | ---------- | ||||||
|  |  | ||||||
|  | I am _not_ a Quake expert by any means.  I pretty much only run it to | ||||||
|  | test Mesa.  There have been a lot of questions about Linux Quake and | ||||||
|  | Mesa so I'm trying to provide some useful info here.  If this file | ||||||
|  | doesn't help you then you should look elsewhere for help.  The Mesa | ||||||
|  | mailing list or the news://news.3dfx.com/3dfx.linux.glide newsgroup | ||||||
|  | might be good. | ||||||
|  |  | ||||||
|  | Again, all the information I have is in this file.  Please don't email | ||||||
|  | me with questions. | ||||||
|  |  | ||||||
|  | If you have information to contribute to this file please send it to | ||||||
|  | me at brianp@elastic.avid.com | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Linux Quake | ||||||
|  | ----------- | ||||||
|  |  | ||||||
|  | You can get Linux Quake from http://www.idsoftware.com/ | ||||||
|  |  | ||||||
|  | Quake I and II for Linux were tested with, and include, Mesa 2.6.  You | ||||||
|  | shouldn't have too many problems if you simply follow the instructions | ||||||
|  | in the Quake distribution. | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | RedHat 5.0 Linux problems | ||||||
|  | ------------------------- | ||||||
|  |  | ||||||
|  | RedHat Linux 5.x uses the GNU C library ("glibc" or "libc6") whereas | ||||||
|  | previous RedHat and other Linux distributions use "libc5" for its | ||||||
|  | runtime C library. | ||||||
|  |  | ||||||
|  | Linux Quake I and II were compiled for libc5.  If you compile Mesa | ||||||
|  | on a RedHat 5.x system the resulting libMesaGL.so file will not work | ||||||
|  | with Linux Quake because of the different C runtime libraries. | ||||||
|  | The symptom of this is a segmentation fault soon after starting Quake. | ||||||
|  |  | ||||||
|  | If you want to use a newer version of Mesa (like 3.x) with Quake on | ||||||
|  | RedHat 5.x then read on. | ||||||
|  |  | ||||||
|  | The solution to the C library problem is to force Mesa to use libc5. | ||||||
|  | libc5 is in /usr/i486-linux-libc5/lib on RedHat 5.x systems. | ||||||
|  |  | ||||||
|  | Emil Briggs (briggs@tick.physics.ncsu.edu) nicely gave me the following | ||||||
|  | info: | ||||||
|  |  | ||||||
|  | >   I only know what works on a RedHat 5.0 distribution. RH5 includes | ||||||
|  | > a full set of libraries for both libc5 and glibc. The loader ld.so | ||||||
|  | > uses the libc5 libraries in /usr/i486-linux-libc5/lib for programs | ||||||
|  | > linked against libc5 while it uses the glibc libraries in /lib and | ||||||
|  | > /usr/lib for programs linked against glibc. | ||||||
|  | >  | ||||||
|  | > Anyway I changed line 41 of mklib.glide to | ||||||
|  | >     GLIDELIBS="-L/usr/local/glide/lib -lglide2x -L/usr/i486-linux-libc5/lib" | ||||||
|  | >  | ||||||
|  | > And I started quake2 up with a script like this | ||||||
|  | > #!/bin/csh | ||||||
|  | > setenv LD_LIBRARY_PATH /usr/i486-linux-libc5/lib | ||||||
|  | > setenv MESA_GLX_FX f | ||||||
|  | > ./quake2 +set vid_ref gl | ||||||
|  | > kbd_mode -a | ||||||
|  | > reset | ||||||
|  |  | ||||||
|  |  | ||||||
|  | I've already patched the mklib.glide file.  You'll have to start Quake | ||||||
|  | with the script shown above though. | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | ********************** | ||||||
|  |  | ||||||
|  | Daryll Strauss writes: | ||||||
|  |  | ||||||
|  | Here's my thoughts on the problem. On a RH 5.x system, you can NOT build | ||||||
|  | a libc5 executable or library. Red Hat just doesn't include the right | ||||||
|  | stuff to do it. | ||||||
|  |  | ||||||
|  | Since Quake is a libc5 based application, you are in trouble. You need | ||||||
|  | libc5 libraries. | ||||||
|  |  | ||||||
|  | What can you do about it? Well there's a package called gcc5 that does | ||||||
|  | MOST of the right stuff to compile with libc5. (It brings back older | ||||||
|  | header files, makes appropriate symbolic links for libraries, and sets | ||||||
|  | up the compiler to use the correct directories) You can find gcc5 here:  | ||||||
|  | ftp://ecg.mit.edu/pub/linux/gcc5-1.0-1.i386.rpm | ||||||
|  |  | ||||||
|  | No, this isn't quite enough. There are still a few tricks to getting | ||||||
|  | Mesa to compile as a libc5 application. First you have to make sure that | ||||||
|  | every compile uses gcc5 instead of gcc. Second, in some cases the link | ||||||
|  | line actually lists -L/usr/lib which breaks gcc5 (because it forces you | ||||||
|  | to use the glibc version of things) | ||||||
|  |  | ||||||
|  | If you get all the stuff correctly compiled with gcc5 it should work. | ||||||
|  | I've run Mesa 3.0B6  and its demos in a window with my Rush on a Red Hat | ||||||
|  | 5.1 system. It is a big hassle, but it can be done. I've only made Quake | ||||||
|  | segfault, but I think that's from my libRush using the wrong libc.  | ||||||
|  |  | ||||||
|  | Yes, mixing libc5 and glibc is a major pain. I've been working to get | ||||||
|  | all my libraries compiling correctly with this setup. Someone should | ||||||
|  | make an RPM out of it and feed changes back to Brian once they get it | ||||||
|  | all working. If no one else has done so by the time I get the rest of my | ||||||
|  | stuff straightened out, I'll try to do it myself. | ||||||
|  |  | ||||||
|  | 							- |Daryll | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | ********************* | ||||||
|  |  | ||||||
|  | David Bucciarelli (tech.hmw@plus.it) writes: | ||||||
|  |  | ||||||
|  | I'm using the Mesa-3.0beta7 and the RedHat 5.1 and QuakeII is | ||||||
|  | working fine for me.  I had only to make a small change to the | ||||||
|  | Mesa-3.0/mklib.glide file, from: | ||||||
|  |  | ||||||
|  |  | ||||||
|  |     GLIDELIBS="-L/usr/local/glide/lib -lglide2x | ||||||
|  | -L/usr/i486-linux-libc5/lib -lm" | ||||||
|  |  | ||||||
|  | to: | ||||||
|  |  | ||||||
|  |     GLIDELIBS="-L/usr/i486-linux-libc5/lib -lglide2x" | ||||||
|  |  | ||||||
|  | and to make two symbolic links: | ||||||
|  |  | ||||||
|  | [david@localhost Mesa]$ ln -s libMesaGL.so libMesaGL.so.2 | ||||||
|  | [david@localhost Mesa]$ ln -s libMesaGLU.so libMesaGLU.so.2 | ||||||
|  |  | ||||||
|  | I'm using the Daryll's Linux glide rpm for the Voodoo2 and glibc (it | ||||||
|  | includes also the Glide for the libc5). I'm not using the /dev/3Dfx and | ||||||
|  | running QuakeII as root with the following env. var: | ||||||
|  |  | ||||||
|  | export | ||||||
|  | LD_LIBRARY_PATH=/dsk1/home/david/src/gl/Mesa/lib:/usr/i486-linux-libc5/lib | ||||||
|  |  | ||||||
|  | I think that all problems are related to the glibc, Quake will never | ||||||
|  | work if you get the following output: | ||||||
|  |  | ||||||
|  | [david@localhost Mesa]$ ldd lib/libMesaGL.so | ||||||
|  |         libglide2x.so => /usr/lib/libglide2x.so (0x400f8000) | ||||||
|  |         libm.so.6 => /lib/libm.so.6 (0x40244000) | ||||||
|  |         libc.so.6 => /lib/libc.so.6 (0x4025d000) | ||||||
|  |         /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x00000000) | ||||||
|  |  | ||||||
|  | You must get the following outputs: | ||||||
|  |  | ||||||
|  | [david@localhost Mesa]# ldd lib/libMesaGL.so | ||||||
|  |         libglide2x.so => /usr/i486-linux-libc5/lib/libglide2x.so | ||||||
|  | (0x400f3000) | ||||||
|  |  | ||||||
|  | [root@localhost quake2]# ldd quake2 | ||||||
|  |         libdl.so.1 => /lib/libdl.so.1 (0x40005000) | ||||||
|  |         libm.so.5 => /usr/i486-linux-libc5/lib/libm.so.5 (0x40008000) | ||||||
|  |         libc.so.5 => /usr/i486-linux-libc5/lib/libc.so.5 (0x40010000) | ||||||
|  |  | ||||||
|  | [root@localhost quake2]# ldd ref_gl.so | ||||||
|  |         libMesaGL.so.2 => | ||||||
|  | /dsk1/home/david/src/gl/Mesa/lib/libMesaGL.so.2 (0x400eb000) | ||||||
|  |         libglide2x.so => /usr/i486-linux-libc5/lib/libglide2x.so | ||||||
|  | (0x401d9000) | ||||||
|  |         libX11.so.6 => /usr/i486-linux-libc5/lib/libX11.so.6 | ||||||
|  | (0x40324000) | ||||||
|  |         libXext.so.6 => /usr/i486-linux-libc5/lib/libXext.so.6 | ||||||
|  | (0x403b7000) | ||||||
|  |         libvga.so.1 => /usr/i486-linux-libc5/lib/libvga.so.1 | ||||||
|  | (0x403c1000) | ||||||
|  |         libm.so.5 => /usr/i486-linux-libc5/lib/libm.so.5 (0x403f5000) | ||||||
|  |         libc.so.5 => /usr/i486-linux-libc5/lib/libc.so.5 (0x403fd000) | ||||||
|  |  | ||||||
|  |  | ||||||
|  | *********************** | ||||||
|  |  | ||||||
|  | Steve Davies (steve@one47.demon.co.uk) writes: | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Try using: | ||||||
|  |  | ||||||
|  |     export LD_LIBRARY_PATH=/usr/i486-linux-libc5/lib | ||||||
|  |     ./quake2 +set vid_ref gl | ||||||
|  |  | ||||||
|  | to start the game... Works for me, but assumes that you have the | ||||||
|  | compatability libc5 RPMs installed. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | *************************** | ||||||
|  |  | ||||||
|  | WWW resources - you may find additional Linux Quake help at these URLs: | ||||||
|  |  | ||||||
|  |  | ||||||
|  | http://quake.medina.net/howto | ||||||
|  |  | ||||||
|  | http://webpages.mr.net/bobz | ||||||
|  |  | ||||||
|  | http://www.linuxgames.com/quake2/ | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | ---------------------------------------------------------------------- | ||||||
							
								
								
									
										52
									
								
								docs/README.THREADS
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								docs/README.THREADS
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,52 @@ | |||||||
|  |  | ||||||
|  |  | ||||||
|  | Mesa Threads README | ||||||
|  | ------------------- | ||||||
|  |  | ||||||
|  | Thread safety was introduced in Mesa 2.6 by John Stone and | ||||||
|  | Christoph Poliwoda. | ||||||
|  |  | ||||||
|  | It was redesigned in Mesa 3.3 so that thread safety is | ||||||
|  | supported by default (on systems which support threads, | ||||||
|  | that is).  There is no measurable penalty on single | ||||||
|  | threaded applications. | ||||||
|  |  | ||||||
|  | NOTE that the only _driver_ which is thread safe at this time | ||||||
|  | is the OS/Mesa driver! | ||||||
|  |  | ||||||
|  |  | ||||||
|  | At present the mthreads code supports three thread APIS: | ||||||
|  |   1) POSIX threads (aka pthreads). | ||||||
|  |   2) Solaris / Unix International threads. | ||||||
|  |   3) Win32 threads (Win 95/NT). | ||||||
|  |  | ||||||
|  | Support for other thread libraries can be added src/glthread.[ch] | ||||||
|  |  | ||||||
|  |  | ||||||
|  | In order to guarantee proper operation, it is | ||||||
|  | necessary for both Mesa and application code to use the same threads API. | ||||||
|  | So, if your application uses Sun's thread API, then you should build Mesa | ||||||
|  | using one of the targets for Sun threads. | ||||||
|  |  | ||||||
|  | The mtdemos directory contains some example programs which use  | ||||||
|  | multiple threads to render to osmesa rendering context(s). | ||||||
|  |  | ||||||
|  | Linux users should be aware that there exist many different POSIX | ||||||
|  | threads packages. The best solution is the linuxthreads package | ||||||
|  | (http://pauillac.inria.fr/~xleroy/linuxthreads/) as this package is the | ||||||
|  | only one that really supports multiprocessor machines (AFAIK). See | ||||||
|  | http://pauillac.inria.fr/~xleroy/linuxthreads/README for further | ||||||
|  | information about the usage of linuxthreads. | ||||||
|  |  | ||||||
|  | If you are interested in helping with thread safety work in Mesa | ||||||
|  | join the Mesa developers mailing list and post your proposal. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Regards, | ||||||
|  |   John Stone           -- j.stone@acm.org  johns@cs.umr.edu | ||||||
|  |   Christoph Poliwoda   -- poliwoda@volumegraphics.com | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Version info: | ||||||
|  |    Mesa 2.6 - initial thread support. | ||||||
|  |    Mesa 3.3 - thread support mostly rewritten (Brian Paul) | ||||||
| @@ -1,44 +0,0 @@ | |||||||
| The software may implement third party technologies (e.g. third party |  | ||||||
| libraries) that are not licensed to you by AMD and for which you may need |  | ||||||
| to obtain licenses from other parties.  Unless explicitly stated otherwise, |  | ||||||
| these third party technologies are not licensed hereunder.  Such third |  | ||||||
| party technologies include, but are not limited, to H.264, H.265, HEVC, MPEG-2, |  | ||||||
| MPEG-4, AVC, and VC-1. |  | ||||||
|  |  | ||||||
| For MPEG-2 Encoding Products ANY USE OF THIS PRODUCT IN ANY MANNER OTHER |  | ||||||
| THAN PERSONAL USE THAT COMPLIES WITH THE MPEG-2 STANDARD FOR ENCODING VIDEO |  | ||||||
| INFORMATION FOR PACKAGED MEDIA IS EXPRESSLY PROHIBITED WITHOUT A LICENSE |  | ||||||
| UNDER APPLICABLE PATENTS IN THE MPEG-2 PATENT PORTFOLIO, WHICH LICENSES IS |  | ||||||
| AVAILABLE FROM MPEG LA, LLC, 6312 S. Fiddlers Green Circle, Suite 400E, |  | ||||||
| Greenwood Village, Colorado 80111 U.S.A. |  | ||||||
|  |  | ||||||
| WARRANTY DISCLAIMER: THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY |  | ||||||
| KIND.  AMD DISCLAIMS ALL WARRANTIES, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING |  | ||||||
| BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A |  | ||||||
| PARTICULAR PURPOSE, TITLE, NON-INFRINGEMENT, THAT THE SOFTWARE WILL RUN |  | ||||||
| UNINTERRUPTED OR ERROR-FREE OR WARRANTIES ARISING FROM CUSTOM OF TRADE OR |  | ||||||
| COURSE OF USAGE.  THE ENTIRE RISK ASSOCIATED WITH THE USE OF THE SOFTWARE IS |  | ||||||
| ASSUMED BY YOU.  Some jurisdictions do not allow the exclusion of implied |  | ||||||
| warranties, so the above exclusion may not apply to You. |  | ||||||
|  |  | ||||||
| LIMITATION OF LIABILITY AND INDEMNIFICATION:  AMD AND ITS LICENSORS WILL NOT, |  | ||||||
| UNDER ANY CIRCUMSTANCES BE LIABLE FOR ANY PUNITIVE, DIRECT, INCIDENTAL, |  | ||||||
| INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING FROM USE OF THE SOFTWARE OR |  | ||||||
| THIS AGREEMENT EVEN IF AMD AND ITS LICENSORS HAVE BEEN ADVISED OF THE |  | ||||||
| POSSIBILITY OF SUCH DAMAGES.  In no event shall AMD's total liability to You |  | ||||||
| for all damages, losses, and causes of action (whether in contract, tort |  | ||||||
| (including negligence) or otherwise) exceed the amount of $100 USD.  You agree |  | ||||||
| to defend, indemnify and hold harmless AMD and its licensors, and any of their |  | ||||||
| directors, officers, employees, affiliates or agents from and against any and |  | ||||||
| all loss, damage, liability and other expenses (including reasonable |  | ||||||
| attorneys' fees), resulting from Your use of the Software or violation of the |  | ||||||
| terms and conditions of this Agreement. |  | ||||||
|  |  | ||||||
| U.S. GOVERNMENT RESTRICTED RIGHTS: The Software is provided with "RESTRICTED |  | ||||||
| RIGHTS." Use, duplication, or disclosure by the Government is subject to the |  | ||||||
| restrictions as set forth in FAR 52.227-14 and DFAR252.227-7013, et seq., or |  | ||||||
| its successor.  Use of the Software by the Government constitutes |  | ||||||
| acknowledgement of AMD's proprietary rights in them. |  | ||||||
|  |  | ||||||
| EXPORT RESTRICTIONS: The Software may be subject to export restrictions as |  | ||||||
| stated in the Software License Agreement. |  | ||||||
| @@ -1,43 +0,0 @@ | |||||||
| The software may implement third party technologies (e.g. third party |  | ||||||
| libraries) that are not licensed to you by AMD and for which you may need |  | ||||||
| to obtain licenses from other parties.  Unless explicitly stated otherwise, |  | ||||||
| these third party technologies are not licensed hereunder.  Such third |  | ||||||
| party technologies include, but are not limited, to H.264, MPEG-2, MPEG-4, |  | ||||||
| AVC, and VC-1.   |  | ||||||
|  |  | ||||||
| For MPEG-2 Intermediate Products: ANY USE OF THIS PRODUCT IN ANY MANNER OTHER |  | ||||||
| THAN PERSONAL USE THAT COMPLIES WITH THE MPEG-2 STANDARD IS EXPRESSLY |  | ||||||
| PROHIBITED WITHOUT A LICENSE UNDER APPLICABLE PATENTS IN THE MPEG-2 PATENT |  | ||||||
| PORTFOLIO, WHICH LICENSES IS AVAILABLE FROM MPEG LA, LLC, 6312 S. Fiddlers |  | ||||||
| Green Circle, Suite 400E, Greenwood Village, Colorado 80111 U.S.A. |  | ||||||
|  |  | ||||||
| WARRANTY DISCLAIMER: THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY |  | ||||||
| KIND.  AMD DISCLAIMS ALL WARRANTIES, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING |  | ||||||
| BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A |  | ||||||
| PARTICULAR PURPOSE, TITLE, NON-INFRINGEMENT, THAT THE SOFTWARE WILL RUN |  | ||||||
| UNINTERRUPTED OR ERROR-FREE OR WARRANTIES ARISING FROM CUSTOM OF TRADE OR |  | ||||||
| COURSE OF USAGE.  THE ENTIRE RISK ASSOCIATED WITH THE USE OF THE SOFTWARE IS |  | ||||||
| ASSUMED BY YOU.  Some jurisdictions do not allow the exclusion of implied |  | ||||||
| warranties, so the above exclusion may not apply to You. |  | ||||||
|  |  | ||||||
| LIMITATION OF LIABILITY AND INDEMNIFICATION:  AMD AND ITS LICENSORS WILL NOT, |  | ||||||
| UNDER ANY CIRCUMSTANCES BE LIABLE FOR ANY PUNITIVE, DIRECT, INCIDENTAL, |  | ||||||
| INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING FROM USE OF THE SOFTWARE OR |  | ||||||
| THIS AGREEMENT EVEN IF AMD AND ITS LICENSORS HAVE BEEN ADVISED OF THE |  | ||||||
| POSSIBILITY OF SUCH DAMAGES.  In no event shall AMD's total liability to You |  | ||||||
| for all damages, losses, and causes of action (whether in contract, tort |  | ||||||
| (including negligence) or otherwise) exceed the amount of $100 USD.  You agree |  | ||||||
| to defend, indemnify and hold harmless AMD and its licensors, and any of their |  | ||||||
| directors, officers, employees, affiliates or agents from and against any and |  | ||||||
| all loss, damage, liability and other expenses (including reasonable |  | ||||||
| attorneys' fees), resulting from Your use of the Software or violation of the |  | ||||||
| terms and conditions of this Agreement. |  | ||||||
|  |  | ||||||
| U.S. GOVERNMENT RESTRICTED RIGHTS: The Software is provided with "RESTRICTED |  | ||||||
| RIGHTS." Use, duplication, or disclosure by the Government is subject to the |  | ||||||
| restrictions as set forth in FAR 52.227-14 and DFAR252.227-7013, et seq., or |  | ||||||
| its successor.  Use of the Software by the Government constitutes |  | ||||||
| acknowledgement of AMD's proprietary rights in them. |  | ||||||
|  |  | ||||||
| EXPORT RESTRICTIONS: The Software may be subject to export restrictions as |  | ||||||
| stated in the Software License Agreement. |  | ||||||
| @@ -1,6 +1,6 @@ | |||||||
| File: docs/README.WIN32 | File: docs/README.WIN32 | ||||||
|  |  | ||||||
| Last updated: 21 June 2013 | Last updated: 23 April 2011 | ||||||
|  |  | ||||||
|  |  | ||||||
| Quick Start | Quick Start | ||||||
| @@ -11,6 +11,10 @@ no longer shipped or supported. | |||||||
|  |  | ||||||
| Run | Run | ||||||
|  |  | ||||||
|  |   scons osmesa mesagdi | ||||||
|  |  | ||||||
|  | to build classic mesa Windows GDI drivers; or | ||||||
|  |  | ||||||
|   scons libgl-gdi |   scons libgl-gdi | ||||||
|  |  | ||||||
| to build gallium based GDI driver. | to build gallium based GDI driver. | ||||||
| @@ -26,21 +30,6 @@ At this time, only the gallium GDI driver is known to work. | |||||||
| Source code also exists in the tree for other drivers in | Source code also exists in the tree for other drivers in | ||||||
| src/mesa/drivers/windows, but the status of this code is unknown. | src/mesa/drivers/windows, but the status of this code is unknown. | ||||||
|  |  | ||||||
| Recipe |  | ||||||
| ------ |  | ||||||
|  |  | ||||||
| Building on windows requires several open-source packages. These are |  | ||||||
| steps that work as of this writing. |  | ||||||
|  |  | ||||||
| - install python 2.7 |  | ||||||
| - install scons (latest) |  | ||||||
| - install mingw, flex, and bison |  | ||||||
| - install pywin32 from here: http://www.lfd.uci.edu/~gohlke/pythonlibs |  | ||||||
|   get pywin32-218.4.win-amd64-py2.7.exe |  | ||||||
| - install git |  | ||||||
| - download mesa from git |  | ||||||
|   see https://www.mesa3d.org/repository.html |  | ||||||
| - run scons |  | ||||||
|  |  | ||||||
| General | General | ||||||
| ------- | ------- | ||||||
|   | |||||||
							
								
								
									
										279
									
								
								docs/RELNOTES-5.1
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										279
									
								
								docs/RELNOTES-5.1
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,279 @@ | |||||||
|  |  | ||||||
|  |                             Mesa 5.1 release notes | ||||||
|  |  | ||||||
|  |                               December 17, 2003 | ||||||
|  |  | ||||||
|  |                                 PLEASE READ!!!! | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Introduction | ||||||
|  | ------------ | ||||||
|  |  | ||||||
|  | Mesa uses an even/odd version number scheme like the Linux kernel. | ||||||
|  | Even-numbered versions (such as 5.0) designate stable releases. | ||||||
|  | Odd-numbered versions (such as 5.1) designate new developmental releases. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Bug fixes | ||||||
|  | --------- | ||||||
|  | See the VERSIONS file for a list of bugs fixed in this release. | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | New Features in Mesa 5.1 | ||||||
|  | ------------------------ | ||||||
|  |  | ||||||
|  | GL_ARB_vertex_program / GL_ARB_fragment_program | ||||||
|  |    Michal Krol and Karl Rasche implemented these extensions.  Thanks! | ||||||
|  |    Be aware that there may be some rough edges and lurking bugs. | ||||||
|  |  | ||||||
|  | GL_ATI_texture_env_combine3 extension | ||||||
|  |    This adds a few new texture combine modes. | ||||||
|  |    Contributed by Ian Romanick. | ||||||
|  |  | ||||||
|  | GL_SGI_texture_color_table | ||||||
|  |    Adds a color table lookup to the RGBA texture path.  There's a separate | ||||||
|  |    color table for each texture unit. | ||||||
|  |    Contributed by Eric Plante. | ||||||
|  |  | ||||||
|  | GL_NV_fragment_program | ||||||
|  |    NVIDIA's fragment-level programming feature. | ||||||
|  |    Possible lurking bugs: | ||||||
|  |      - the DDX and DDY commands aren't fully tested | ||||||
|  |      - there may be bugs in the parser | ||||||
|  |      - the TEX and TXP instructions both do perspective correction | ||||||
|  |      - the pack/unpack instructions may not be correct | ||||||
|  |  | ||||||
|  | GL_EXT_depth_bounds_test | ||||||
|  |    This extension adds a scissor-like test for the Z axis.  It's used to | ||||||
|  |    optimize stencil-volume shadow algorithms. | ||||||
|  |  | ||||||
|  | GL_NV_light_max_exponent | ||||||
|  |    Lifts the 128 limit for max light exponent. | ||||||
|  |  | ||||||
|  | GL_EXT_texture_rectangle | ||||||
|  |    Identical to GL_NV_texture_rectangle | ||||||
|  |  | ||||||
|  | GL_ARB_occlusion_query | ||||||
|  |    Useful for visibility-based culling. | ||||||
|  |  | ||||||
|  | GL_ARB_texture_non_power_of_two | ||||||
|  |    Removes the restriction that texture dimensions must be powers of two. | ||||||
|  |  | ||||||
|  | GL_ARB_vertex_buffer_object | ||||||
|  |    Allows server-side vertex arrays, optimized host/card data transfers, etc. | ||||||
|  |  | ||||||
|  | GL_ARB_point_sprite | ||||||
|  |    ARB-approved version of GL_NV_point_sprite.  Basically allows textures | ||||||
|  |    to be applied to points. | ||||||
|  |  | ||||||
|  | GL_IBM_multimode_draw_arrays | ||||||
|  |    Allows multiple vertex arrays to be drawn with one call, including arrays | ||||||
|  |    of different types of primitives. | ||||||
|  |  | ||||||
|  | GL_SUN_multi_draw_arrays | ||||||
|  |    An alias for GL_EXT_multi_draw_arrays, standard in OpenGL 1.4. | ||||||
|  |  | ||||||
|  | Faster glDrawPixels / glCopyPixels in X11 driver | ||||||
|  |    If your X screen is 32bpp, glDrawPixels to the front color buffer will | ||||||
|  |    be accelerated (via XPutImage()) if the image format is GL_BGRA and the | ||||||
|  |    type is GL_UNSIGNED_BYTE.  No raster operations, such as depth test, | ||||||
|  |    blend, fog, etc. can be enabled. | ||||||
|  |  | ||||||
|  |    If your X screen is 16bpp, glDrawPixels to the front color buffer will | ||||||
|  |    be accelerated (via XPutImage()) if the image format is GL_RGB and the | ||||||
|  |    type is GL_UNSIGNED_SHORT_5_6_5.  No raster operations, such as depth | ||||||
|  |    test, blend, fog, etc. can be enabled. | ||||||
|  |  | ||||||
|  |    glCopyPixels() calls for the front color buffer will be accelerated | ||||||
|  |    (via XCopyArea()) if no raster operations, such as depth test, blend, | ||||||
|  |    fog, pixel zoom, etc. are enabled. | ||||||
|  |  | ||||||
|  |    The speed-up over typical software rendering is a factor of 10 for | ||||||
|  |    glDrawPixels and 100 for glCopyPixels. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | With the addition of GL_ARB_occlusion_query, GL_ARB_vertex_buffer_object, | ||||||
|  | GL_ARB_texture_non_power_of_two and GL_EXT_shadow_funcs, Mesa 5.1 supports | ||||||
|  | all the new features of OpenGL 1.5.  Mesa 6.0 (the next stable release) | ||||||
|  | will advertise GL_VERSION = "1.5". | ||||||
|  |   | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Vertex/Fragment program debugger | ||||||
|  | -------------------------------- | ||||||
|  |  | ||||||
|  | GL_MESA_program_debug is an experimental extension to support | ||||||
|  | interactive debugging of vertex and fragment programs.  See the | ||||||
|  | docs/MESA_program_debug.spec file for details. | ||||||
|  |  | ||||||
|  | The bulk of the vertex/fragment program debugger is implemented | ||||||
|  | outside of Mesa.  The GL_MESA_program_debug extension just has minimal | ||||||
|  | hooks for stopping running programs and inspecting programs. | ||||||
|  |  | ||||||
|  | The progs/tests/debugger.c (only in CVS) program is an example of how | ||||||
|  | the extension can be used.  Presently, the debugger code and demo code | ||||||
|  | is in the same file.  Eventually the debugger code should be moved | ||||||
|  | into a reusable module. | ||||||
|  |  | ||||||
|  | As it is now, the demo lets you set breakpoings in vertex/fragment | ||||||
|  | programs, single step, and print intermediate register values.  It's | ||||||
|  | basically just a proof of concept. | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Directory tree reorganization | ||||||
|  | ----------------------------- | ||||||
|  |  | ||||||
|  | The directory structure for Mesa has been overhauled to improve its layout. | ||||||
|  | All source code for Mesa, GLU, GLUT, etc is now under the src/ directory | ||||||
|  | in appropriate subdirectories. | ||||||
|  |  | ||||||
|  | The Mesa source code and drivers has been reorganized under src/mesa/. | ||||||
|  |  | ||||||
|  | All demonstration programs and tests are now in subdirectories under progs/. | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Build System Changes | ||||||
|  | -------------------- | ||||||
|  |  | ||||||
|  | The GNU automake/autoconf support has been removed.  As it was, it seldom | ||||||
|  | worked on anything but Linux.  The Mesa developers aren't big fans of | ||||||
|  | automake/autoconf/libtool and didn't have the time to maintain it. | ||||||
|  | If someone wants to contribute new automake/autoconf support (and is | ||||||
|  | willing to maintain it), it may be re-incorporated into Mesa, subject | ||||||
|  | to some requirements. | ||||||
|  |  | ||||||
|  | The "old style" makefile system has been updated: | ||||||
|  |    1. Make-config has been trimmed down to fewer, modern configurations. | ||||||
|  |    2. Most of the bin/mklib.* scripts have been rolled into a new "mklib" | ||||||
|  |       script that works on all sorts of systems.  There are probably some | ||||||
|  |       bugs in it, but it's been tested on Linux, SunOS 5.8 and IRIX 6.5. | ||||||
|  |       Improvements/contributes are greatly appreciated. | ||||||
|  |    3. The Makefile.X11 files have been cleaned up in various ways | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Source File Changes | ||||||
|  | ------------------- | ||||||
|  |  | ||||||
|  | The mmath.[ch] files are obsolete.  Their contents have been moved | ||||||
|  | into the imports.[ch] and macros.[ch] files. | ||||||
|  |  | ||||||
|  | The files related to vertex and fragment programming have changed. | ||||||
|  | Old files: | ||||||
|  | 	vpexec.[ch] | ||||||
|  | 	vpparse.[ch] | ||||||
|  | 	vpstate.[ch] | ||||||
|  | New files: | ||||||
|  | 	program.[ch]              - generic ARB/NV program code | ||||||
|  | 	arbprogram.[ch]           - ARB program API functions | ||||||
|  | 	arbfragparse.[ch]         - ARB fragment program parsing | ||||||
|  | 	arbvertparse.[ch]         - ARB vertex program parsing | ||||||
|  | 	arbparse.[ch]             - ARB vertex/fragment parsing | ||||||
|  | 	arbparse_syn.h            - vertex/fragment program syntax | ||||||
|  | 	nvprogram.[ch]            - NV program API functions | ||||||
|  | 	nvvertprog.h              - NV vertex program definitions | ||||||
|  | 	nvfragprog.h              - NV fragment program definitions | ||||||
|  | 	nvvertparse.[ch]          - NV vertex program parser | ||||||
|  | 	nvfragparse.[ch]          - NV fragment program parser | ||||||
|  | 	nvvertexec.[ch]           - NV vertex program execution | ||||||
|  | 	swrast/s_nvfragprog.[ch]  - NV fragment program execution | ||||||
|  |  | ||||||
|  | The files related to per-vertex handling have changed. | ||||||
|  | Old files: | ||||||
|  | 	tnl/t_eval_api.c          - old per-vertex code | ||||||
|  | 	tnl/t_imm_alloc.c         - old per-vertex code | ||||||
|  | 	tnl/t_imm_api.c           - old per-vertex code | ||||||
|  | 	tnl/t_imm_debug.c         - old per-vertex code | ||||||
|  | 	tnl/t_imm_dlist.c         - old per-vertex code | ||||||
|  | 	tnl/t_imm_elt.c           - old per-vertex code | ||||||
|  | 	tnl/t_imm_eval.c          - old per-vertex code | ||||||
|  | 	tnl/t_imm_exec.c          - old per-vertex code | ||||||
|  | 	tnl/t_imm_fixup.c         - old per-vertex code | ||||||
|  | 	tnl/t_vtx_sse.c           - old per-vertex code | ||||||
|  | 	tnl/t_vtx_x86.c           - old per-vertex code | ||||||
|  | New files: | ||||||
|  | 	tnl/t_save_api.c          - new per-vertex code | ||||||
|  | 	tnl/t_save_loopback.c     - new per-vertex code | ||||||
|  | 	tnl/t_save_playback.c     - new per-vertex code | ||||||
|  | 	tnl/t_vtx_eval.c          - old per-vertex code | ||||||
|  |  | ||||||
|  | Other new files: | ||||||
|  | 	bufferobj.[ch]		- GL_ARB_vertex_buffer_object functions | ||||||
|  | 	version.h		- defines the Mesa version info | ||||||
|  |  | ||||||
|  | Other removed files: | ||||||
|  | 	swrast/s_histogram.[ch]   - moved into src/histogram.c | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Other Changes | ||||||
|  | ------------- | ||||||
|  |  | ||||||
|  | The ctx->Driver.CreateTexture function has been removed - it wasn't used. | ||||||
|  |  | ||||||
|  | New device driver hook functions: | ||||||
|  |    NewTextureObject   - used to allocate struct gl_texture_objects | ||||||
|  |    NewTextureImage    - used to allocate struct gl_texture_images | ||||||
|  |  | ||||||
|  | New ctx->Texture._EnabledCoordUnits field: | ||||||
|  |    With the addition of GL_NV_fragment_program we may need to interpolate | ||||||
|  |    various sets of texture coordinates even when the corresponding texture | ||||||
|  |    unit is not enabled.  That is, glEnable(GL_TEXTURE_xD) may never get | ||||||
|  |    called but we still may have to interpolate texture coordinates across | ||||||
|  |    triangles so that the fragment program will get them. | ||||||
|  |    This new field indicates which sets of texture coordinates are needed. | ||||||
|  |    If a bit is set in the ctx->Texture._EnabledUnits bitmask is set, the | ||||||
|  |    same bit MUST be set in ctx->Texture._EnabledCoordUnits. | ||||||
|  |  | ||||||
|  | The ctx->_TriangleCaps field is deprecated. | ||||||
|  |    Instead of testing the DD_* bits in _TriangleCaps, you should instead | ||||||
|  |    directly test the relevant state variables, or use one of the helper | ||||||
|  |    functions like NEED_SECONDARY_COLOR() at the bottom of context.h | ||||||
|  |    While testing _TriangleCaps bits was fast, it was kludgey, and setting | ||||||
|  |    the bits in the first place could be error prone. | ||||||
|  |  | ||||||
|  | New vertex processing code. | ||||||
|  |    The code behind glBegin, glEnd, glVertex, glNormal, etc. has been | ||||||
|  |    totally rewritten.  It's a cleaner implementation now and should use | ||||||
|  |    less memory. (Keith) | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | To Do | ||||||
|  | ----- | ||||||
|  | Add screen-awareness to fakeglx.c | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Device Driver Status | ||||||
|  | -------------------- | ||||||
|  |  | ||||||
|  | A number of Mesa's software drivers haven't been actively maintained for | ||||||
|  | some time.  We rely on volunteers to maintain many of these drivers. | ||||||
|  | Here's the current status of all included drivers: | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Driver			Status | ||||||
|  | ----------------------	--------------------- | ||||||
|  | XMesa (Xlib)		implements OpenGL 1.4 | ||||||
|  | OSMesa (off-screen)	implements OpenGL 1.4 | ||||||
|  | FX (3dfx Voodoo1/2)	implements OpenGL 1.3 | ||||||
|  | SVGA			implements OpenGL 1.3 | ||||||
|  | Wind River UGL		implements OpenGL 1.3 | ||||||
|  | Windows/Win32		implements OpenGL 1.4 | ||||||
|  | DJGPP			implements OpenGL 1.4 | ||||||
|  | GGI			implements OpenGL 1.3 | ||||||
|  | BeOS			implements OpenGL 1.4 | ||||||
|  | Allegro			needs updating | ||||||
|  | D3D			needs updating | ||||||
|  |  | ||||||
|  | Note: supporting OpenGL 1.4 (vs. 1.3 or 1.2) usually only requires that the | ||||||
|  | driver call the _mesa_enable_1_4_extensions() function. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | ---------------------------------------------------------------------- | ||||||
| @@ -103,7 +103,7 @@ Mesa Version History | |||||||
| 	- Stencil-related functions now work in display lists | 	- Stencil-related functions now work in display lists | ||||||
|     Changes: |     Changes: | ||||||
| 	- renamed aux.h as glaux.h (MS-DOS names can't start with aux) | 	- renamed aux.h as glaux.h (MS-DOS names can't start with aux) | ||||||
| 	- most filenames are in 8.3 format to accommodate MS-DOS | 	- most filenames are in 8.3 format to accomodate MS-DOS | ||||||
| 	- use GLubytes to store arrays of colors instead of GLints | 	- use GLubytes to store arrays of colors instead of GLints | ||||||
|  |  | ||||||
| 1.2.2   August 2, 1995 | 1.2.2   August 2, 1995 | ||||||
| @@ -1007,7 +1007,7 @@ Mesa Version History | |||||||
| 	- glGetTexImage was using pixel unpacking instead of packing params | 	- glGetTexImage was using pixel unpacking instead of packing params | ||||||
| 	- auto-mipmap generation for cube maps was incorrect | 	- auto-mipmap generation for cube maps was incorrect | ||||||
|     Changes: |     Changes: | ||||||
| 	- max texture units reduced to six to accommodate texture rectangles | 	- max texture units reduced to six to accomodate texture rectangles | ||||||
| 	- removed unfinished GL_MESA_sprite_point extension code | 	- removed unfinished GL_MESA_sprite_point extension code | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -17,7 +17,7 @@ Status | |||||||
| 
 | 
 | ||||||
| Version | Version | ||||||
| 
 | 
 | ||||||
|     Version 5, July 16, 2013 |     Version 1, March 1, 2011 | ||||||
| 
 | 
 | ||||||
| Number | Number | ||||||
| 
 | 
 | ||||||
| @@ -57,7 +57,7 @@ New Procedures and Functions | |||||||
|                                          struct wl_display *display); |                                          struct wl_display *display); | ||||||
| 
 | 
 | ||||||
|     EGLBoolean eglQueryWaylandBufferWL(EGLDisplay dpy, |     EGLBoolean eglQueryWaylandBufferWL(EGLDisplay dpy, | ||||||
|                                        struct wl_resource *buffer, |                                        struct wl_buffer *buffer, | ||||||
|                                        EGLint attribute, EGLint *value); |                                        EGLint attribute, EGLint *value); | ||||||
| 
 | 
 | ||||||
| New Tokens | New Tokens | ||||||
| @@ -75,12 +75,6 @@ New Tokens | |||||||
|         EGL_TEXTURE_Y_U_V_WL                    0x31D7 |         EGL_TEXTURE_Y_U_V_WL                    0x31D7 | ||||||
|         EGL_TEXTURE_Y_UV_WL                     0x31D8 |         EGL_TEXTURE_Y_UV_WL                     0x31D8 | ||||||
|         EGL_TEXTURE_Y_XUXV_WL                   0x31D9 |         EGL_TEXTURE_Y_XUXV_WL                   0x31D9 | ||||||
|         EGL_TEXTURE_EXTERNAL_WL                 0x31DA |  | ||||||
| 
 |  | ||||||
|     Accepted in the <attribute> parameter of eglQueryWaylandBufferWL: |  | ||||||
| 
 |  | ||||||
|         EGL_TEXTURE_FORMAT                      0x3080 |  | ||||||
|         EGL_WAYLAND_Y_INVERTED_WL               0x31DB |  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| Additions to the EGL 1.4 Specification: | Additions to the EGL 1.4 Specification: | ||||||
| @@ -149,10 +143,6 @@ Additions to the EGL 1.4 Specification: | |||||||
|                 Two planes, samples Y from the first plane to r in |                 Two planes, samples Y from the first plane to r in | ||||||
|                 the shader, U and V from the second plane to g and a. |                 the shader, U and V from the second plane to g and a. | ||||||
| 
 | 
 | ||||||
|         EGL_TEXTURE_EXTERNAL_WL |  | ||||||
|                 Treated as a single plane texture, but sampled with |  | ||||||
|                 samplerExternalOES according to OES_EGL_image_external |  | ||||||
| 
 |  | ||||||
|     After querying the wl_buffer layout, create EGLImages for the |     After querying the wl_buffer layout, create EGLImages for the | ||||||
|     planes by calling eglCreateImageKHR with wl_buffer as |     planes by calling eglCreateImageKHR with wl_buffer as | ||||||
|     EGLClientBuffer, EGL_WAYLAND_BUFFER_WL as the target, NULL |     EGLClientBuffer, EGL_WAYLAND_BUFFER_WL as the target, NULL | ||||||
| @@ -167,16 +157,6 @@ Additions to the EGL 1.4 Specification: | |||||||
|     Further, eglQueryWaylandBufferWL accepts attributes EGL_WIDTH and |     Further, eglQueryWaylandBufferWL accepts attributes EGL_WIDTH and | ||||||
|     EGL_HEIGHT to query the width and height of the wl_buffer. |     EGL_HEIGHT to query the width and height of the wl_buffer. | ||||||
| 
 | 
 | ||||||
|     Also, eglQueryWaylandBufferWL may accept |  | ||||||
|     EGL_WAYLAND_Y_INVERTED_WL attribute to query orientation of |  | ||||||
|     wl_buffer. If EGL_WAYLAND_Y_INVERTED_WL is supported |  | ||||||
|     eglQueryWaylandBufferWL returns EGL_TRUE and value is a boolean |  | ||||||
|     that tells if wl_buffer is y-inverted or not. If |  | ||||||
|     EGL_WAYLAND_Y_INVERTED_WL is not supported |  | ||||||
|     eglQueryWaylandBufferWL returns EGL_FALSE, in that case |  | ||||||
|     wl_buffer should be treated as if value of |  | ||||||
|     EGL_WAYLAND_Y_INVERTED_WL was EGL_TRUE. |  | ||||||
| 
 |  | ||||||
| Issues | Issues | ||||||
| 
 | 
 | ||||||
| Revision History | Revision History | ||||||
| @@ -193,10 +173,3 @@ Revision History | |||||||
|         Use EGL_TEXTURE_FORMAT, EGL_TEXTURE_RGB, and EGL_TEXTURE_RGBA, |         Use EGL_TEXTURE_FORMAT, EGL_TEXTURE_RGB, and EGL_TEXTURE_RGBA, | ||||||
|         and just define the new YUV texture formats.  Add support for |         and just define the new YUV texture formats.  Add support for | ||||||
|         EGL_WIDTH and EGL_HEIGHT in the query attributes (Kristian Høgsberg) |         EGL_WIDTH and EGL_HEIGHT in the query attributes (Kristian Høgsberg) | ||||||
|     Version 5, July 16, 2013 |  | ||||||
|         Change eglQueryWaylandBufferWL to take a resource pointer to the |  | ||||||
|         buffer instead of a pointer to a struct wl_buffer, as the latter has |  | ||||||
|         been deprecated. (Ander Conselvan de Oliveira) |  | ||||||
|     Version 6, September 16, 2013 |  | ||||||
|         Add EGL_WAYLAND_Y_INVERTED_WL attribute to allow specifying |  | ||||||
|         wl_buffer's orientation. |  | ||||||
| @@ -1,83 +0,0 @@ | |||||||
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> |  | ||||||
| <html lang="en"> |  | ||||||
| <head> |  | ||||||
|   <meta http-equiv="content-type" content="text/html; charset=utf-8"> |  | ||||||
|   <title>Application Issues</title> |  | ||||||
|   <link rel="stylesheet" type="text/css" href="mesa.css"> |  | ||||||
| </head> |  | ||||||
| <body> |  | ||||||
|  |  | ||||||
| <div class="header"> |  | ||||||
|   <h1>The Mesa 3D Graphics Library</h1> |  | ||||||
| </div> |  | ||||||
|  |  | ||||||
| <iframe src="contents.html"></iframe> |  | ||||||
| <div class="content"> |  | ||||||
|  |  | ||||||
| <h1>Application Issues</h1> |  | ||||||
|  |  | ||||||
| <p> |  | ||||||
| This page documents known issues with some OpenGL applications. |  | ||||||
| </p> |  | ||||||
|  |  | ||||||
|  |  | ||||||
| <h2>Topogun</h2> |  | ||||||
|  |  | ||||||
| <p> |  | ||||||
| <a href="http://www.topogun.com/">Topogun</a> for Linux (version 2, at least) |  | ||||||
| creates a GLX visual without requesting a depth buffer. |  | ||||||
| This causes bad rendering if the OpenGL driver happens to choose a visual |  | ||||||
| without a depth buffer. |  | ||||||
| </p> |  | ||||||
|  |  | ||||||
| <p> |  | ||||||
| Mesa 9.1.2 and later (will) support a DRI configuration option to work around |  | ||||||
| this issue. |  | ||||||
| Using the <a href="https://dri.freedesktop.org/wiki/DriConf">driconf</a> tool, |  | ||||||
| set the "Create all visuals with a depth buffer" option before running Topogun. |  | ||||||
| Then, all GLX visuals will be created with a depth buffer. |  | ||||||
| </p> |  | ||||||
|  |  | ||||||
|  |  | ||||||
| <h2>Old OpenGL games</h2> |  | ||||||
|  |  | ||||||
| <p> |  | ||||||
| Some old OpenGL games (approx. ten years or older) may crash during |  | ||||||
| start-up because of an extension string buffer-overflow problem. |  | ||||||
| </p> |  | ||||||
|  |  | ||||||
| <p> |  | ||||||
| The problem is a modern OpenGL driver will return a very long string |  | ||||||
| for the glGetString(GL_EXTENSIONS) query and if the application |  | ||||||
| naively copies the string into a fixed-size buffer it can overflow the |  | ||||||
| buffer and crash the application. |  | ||||||
| </p> |  | ||||||
|  |  | ||||||
| <p> |  | ||||||
| The work-around is to set the MESA_EXTENSION_MAX_YEAR environment variable |  | ||||||
| to the approximate release year of the game. |  | ||||||
| This will cause the glGetString(GL_EXTENSIONS) query to only report extensions |  | ||||||
| older than the given year. |  | ||||||
| </p> |  | ||||||
|  |  | ||||||
| <p> |  | ||||||
| For example, if the game was released in 2001, do |  | ||||||
| <pre> |  | ||||||
| export MESA_EXTENSION_MAX_YEAR=2001 |  | ||||||
| </pre> |  | ||||||
| before running the game. |  | ||||||
| </p> |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| <h2>Viewperf</h2> |  | ||||||
|  |  | ||||||
| <p> |  | ||||||
| See the <a href="viewperf.html">Viewperf issues</a> page for a detailed list |  | ||||||
| of Viewperf issues. |  | ||||||
| </p> |  | ||||||
|  |  | ||||||
|  |  | ||||||
| </div> |  | ||||||
| </body> |  | ||||||
| </html> |  | ||||||
| @@ -26,12 +26,6 @@ | |||||||
|   </ul> |   </ul> | ||||||
| </ol> | </ol> | ||||||
|  |  | ||||||
| <h2>ATTENTION:</h2> |  | ||||||
| <p> |  | ||||||
|     The autotools build is being replaced by the <a href="meson.html">meson</a> |  | ||||||
|     build system. If you haven't yet now is a good time to try using meson and |  | ||||||
|     report any issues you run into. |  | ||||||
| </p> |  | ||||||
|  |  | ||||||
| <h2 id="basic">1. Basic Usage</h2> | <h2 id="basic">1. Basic Usage</h2> | ||||||
|  |  | ||||||
| @@ -61,7 +55,7 @@ to your preference, type: | |||||||
| </pre> | </pre> | ||||||
|  |  | ||||||
| <p> | <p> | ||||||
| This will produce libGL.so and/or several other libraries depending on the | This will produce libGL.so and several other libraries depending on the | ||||||
| options you have chosen. Later, if you want to rebuild for a different | options you have chosen. Later, if you want to rebuild for a different | ||||||
| configuration run <code>make realclean</code> before rebuilding. | configuration run <code>make realclean</code> before rebuilding. | ||||||
| </p> | </p> | ||||||
| @@ -93,20 +87,6 @@ created in a <code>lib64</code> directory at the top of the Mesa source | |||||||
| tree.</p> | tree.</p> | ||||||
| </dd> | </dd> | ||||||
|  |  | ||||||
| <dt><code>--sysconfdir=DIR</code></dt> |  | ||||||
| <dd><p>This option specifies the directory where the configuration |  | ||||||
| files will be installed. The default is <code>${prefix}/etc</code>. |  | ||||||
| Currently there's only one config file provided when dri drivers are |  | ||||||
| enabled - it's <code>drirc</code>.</p> |  | ||||||
| </dd> |  | ||||||
|  |  | ||||||
| <dt><code>--datadir=DIR</code></dt> |  | ||||||
| <dd><p>This option specifies the directory where the data files will |  | ||||||
| be installed. The default is <code>${prefix}/share</code>. |  | ||||||
| Currently when dri drivers are enabled, <code>drirc.d/</code> is at |  | ||||||
| this place.</p> |  | ||||||
| </dd> |  | ||||||
|  |  | ||||||
| <dt><code>--enable-static, --disable-shared</code></dt> | <dt><code>--enable-static, --disable-shared</code></dt> | ||||||
| <dd><p>By default, Mesa | <dd><p>By default, Mesa | ||||||
| will build shared libraries. Either of these options will force static | will build shared libraries. Either of these options will force static | ||||||
| @@ -117,22 +97,20 @@ shared libraries in a single pass.</p> | |||||||
| <dt><code>CC, CFLAGS, CXX, CXXFLAGS</code></dt> | <dt><code>CC, CFLAGS, CXX, CXXFLAGS</code></dt> | ||||||
| <dd><p>These environment variables | <dd><p>These environment variables | ||||||
| control the C and C++ compilers used during the build. By default, | control the C and C++ compilers used during the build. By default, | ||||||
| <code>gcc</code> and <code>g++</code> are used and the debug/optimisation | <code>gcc</code> and <code>g++</code> are used with the options | ||||||
| level is left unchanged.</p> | <code>"-g -O2"</code>.</p> | ||||||
| </dd> | </dd> | ||||||
|  |  | ||||||
| <dt><code>LDFLAGS</code></dt> | <dt><code>LDFLAGS</code></dt> | ||||||
| <dd><p>An environment variable specifying flags to | <dd><p>An environment variable specifying flags to | ||||||
| pass when linking programs. These should be empty and | pass when linking programs. These are normally empty, but can be used | ||||||
| <code>PKG_CONFIG_PATH</code> is recommended to be used instead. If needed | to direct the linker to use libraries in nonstandard directories. For | ||||||
| it can be used to direct the linker to use libraries in nonstandard | example, <code>LDFLAGS="-L/usr/X11R6/lib"</code>.</p> | ||||||
| directories. For example, <code>LDFLAGS="-L/usr/X11R6/lib"</code>.</p> |  | ||||||
| </dd> | </dd> | ||||||
|  |  | ||||||
| <dt><code>PKG_CONFIG_PATH</code></dt> | <dt><code>PKG_CONFIG_PATH</code></dt> | ||||||
| <dd><p>The | <dd><p>When available, the | ||||||
| <code>pkg-config</code> utility is a hard requirement for configuring and | <code>pkg-config</code> utility is used to search for external libraries | ||||||
| building mesa. It is used to search for external libraries |  | ||||||
| on the system. This environment variable is used to control the search | on the system. This environment variable is used to control the search | ||||||
| path for <code>pkg-config</code>. For instance, setting | path for <code>pkg-config</code>. For instance, setting | ||||||
| <code>PKG_CONFIG_PATH=/usr/X11R6/lib/pkgconfig</code> will search for | <code>PKG_CONFIG_PATH=/usr/X11R6/lib/pkgconfig</code> will search for | ||||||
| @@ -145,12 +123,28 @@ directories.</p> | |||||||
| There are also a few general options for altering the Mesa build: | There are also a few general options for altering the Mesa build: | ||||||
| </p> | </p> | ||||||
| <dl> | <dl> | ||||||
| <dt><code>--enable-debug</code></dt> | <dt><code>--with-x</code></dt> | ||||||
| <dd><p>This option will set the compiler debug/optimisation levels (if the user | <dd><p>When the X11 development libraries are | ||||||
| hasn't already set them via the CFLAGS/CXXFLAGS) and macros to aid in | needed, the <code>pkg-config</code> utility <a href="#pkg-config">will | ||||||
| debugging the Mesa libraries.</p> | be used</a> for locating them. If they cannot be found through | ||||||
|  | <code>pkg-config</code> a fallback routing using <code>imake</code> will | ||||||
|  | be used. In this case, the <code>--with-x</code>, | ||||||
|  | <code>--x-includes</code> and <code>--x-libraries</code> options can | ||||||
|  | control the use of X for Mesa.</p> | ||||||
|  | </dd> | ||||||
|  |  | ||||||
| <p>Note that enabling this option can lead to noticeable loss of performance.</p> | <dt><code>--enable-gl-osmesa</code></dt> | ||||||
|  | <dd><p>The <a href="osmesa.html">OSMesa | ||||||
|  | library</a> can be built on top of libGL for drivers that provide it. | ||||||
|  | This option controls whether to build libOSMesa. By default, this is | ||||||
|  | enabled for the Xlib driver and disabled otherwise. Note that this | ||||||
|  | option is different than using OSMesa as the driver.</p> | ||||||
|  | </dd> | ||||||
|  |  | ||||||
|  | <dt><code>--enable-debug</code></dt> | ||||||
|  | <dd><p>This option will enable compiler | ||||||
|  | options and macros to aid in debugging the Mesa libraries.</p> | ||||||
|  | </dd> | ||||||
|  |  | ||||||
| <dt><code>--disable-asm</code></dt> | <dt><code>--disable-asm</code></dt> | ||||||
| <dd><p>There are assembly routines | <dd><p>There are assembly routines | ||||||
| @@ -159,52 +153,39 @@ one of these architectures is detected. This option ensures that | |||||||
| assembly will not be used.</p> | assembly will not be used.</p> | ||||||
| </dd> | </dd> | ||||||
|  |  | ||||||
| <dt><code>--build=</code></dt> | <dt><code>--enable-32-bit</code></dt> | ||||||
| <dt><code>--host=</code></dt> | <dt><code>--enable-64-bit</code></dt> | ||||||
| <dd><p>By default, the build will compile code for the architecture that | <dd><p>By default, the | ||||||
| it's running on. In order to build cross-compile Mesa on a x86-64 machine | build will compile code as directed by the environment variables | ||||||
| that is to run on a i686, one would need to set the options to:</p> | <code>CC</code>, <code>CFLAGS</code>, etc. If the compiler is | ||||||
|  | <code>gcc</code>, these options offer a helper to add the compiler flags | ||||||
| <p><code>--build=x86_64-pc-linux-gnu --host=i686-pc-linux-gnu</code></p> | to force 32- or 64-bit code generation as used on the x86 and x86_64 | ||||||
|  | architectures.</p> | ||||||
| Note that these can vary from distribution to distribution. For more |  | ||||||
| information check with the |  | ||||||
| <a href="https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/html_node/Specifying-Target-Triplets.html"> |  | ||||||
| autoconf manual</a>. |  | ||||||
| Note that you will need to correctly set <code>PKG_CONFIG_PATH</code> as well. |  | ||||||
|  |  | ||||||
|  |  | ||||||
| <p>In some cases a single compiler is capable of handling both architectures |  | ||||||
| (multilib) in that case one would need to set the <code>CC,CXX</code> variables |  | ||||||
| appending the correct machine options. Seek your compiler documentation for |  | ||||||
| further information - |  | ||||||
| <a href="https://gcc.gnu.org/onlinedocs/gcc/Submodel-Options.html"> gcc |  | ||||||
| machine dependent options</a></p> |  | ||||||
|  |  | ||||||
| <p>In addition to specifying correct <code>PKG_CONFIG_PATH</code> for the target |  | ||||||
| architecture, the following should be sufficient to configure multilib Mesa</p> |  | ||||||
|  |  | ||||||
| <code>./configure CC="gcc -m32" CXX="g++ -m32" --build=x86_64-pc-linux-gnu --host=i686-pc-linux-gnu ...</code> |  | ||||||
| </dd> | </dd> | ||||||
| </dl> | </dl> | ||||||
|  |  | ||||||
|  |  | ||||||
| <h2 id="driver">2. GL Driver Options</h2> | <h2 id="driver">2. Driver Options</h2> | ||||||
|  |  | ||||||
| <p> | <p> | ||||||
| There are several different driver modes that Mesa can use. These are | There are several different driver modes that Mesa can use. These are | ||||||
| described in more detail in the <a href="install.html">basic | described in more detail in the <a href="install.html">basic | ||||||
| installation instructions</a>. The Mesa driver is controlled through the | installation instructions</a>. The Mesa driver is controlled through the | ||||||
| configure options <code>--enable-glx</code> and <code>--enable-osmesa</code> | configure option --with-driver. There are currently three supported | ||||||
|  | options in the configure script. | ||||||
| </p> | </p> | ||||||
|  |  | ||||||
| <h3 id="xlib">Xlib</h3><p> | <h3 id="xlib">Xlib</h3><p>This is the default mode for building Mesa. | ||||||
| It uses Xlib as a software renderer to do all rendering. It corresponds | It uses Xlib as a software renderer to do all rendering. It corresponds | ||||||
| to the option <code>--enable-glx=xlib</code> or <code>--enable-glx=gallium-xlib</code>. | to the option <code>--with-driver=xlib</code>. The libX11 and libXext | ||||||
|  | libraries, as well as the X11 development headers, will be need to | ||||||
|  | support the Xlib driver. | ||||||
|  |  | ||||||
| <h3 id="dri">DRI</h3><p>This mode uses the DRI hardware drivers for | <h3 id="dri">DRI</h3><p>This mode uses the DRI hardware drivers for | ||||||
| accelerated OpenGL rendering. To enable use <code>--enable-glx=dri | accelerated OpenGL rendering. Enable the DRI drivers with the option | ||||||
| --enable-dri</code>. | <code>--with-driver=dri</code>. See the <a href="install.html">basic | ||||||
|  | installation instructions</a> for details on prerequisites for the DRI | ||||||
|  | drivers. | ||||||
|  |  | ||||||
| <!-- DRI specific options --> | <!-- DRI specific options --> | ||||||
| <dl> | <dl> | ||||||
| @@ -231,10 +212,8 @@ kernel DRM modules are not available. | |||||||
| <dt><code>--enable-glx-tls</code> <dd><p> | <dt><code>--enable-glx-tls</code> <dd><p> | ||||||
| Enable Thread Local Storage (TLS) in | Enable Thread Local Storage (TLS) in | ||||||
| GLX. | GLX. | ||||||
| <dt><code>--with-expat=DIR</code> | <dt><code>--with-expat=DIR</code> <dd> The DRI-enabled libGL uses expat to | ||||||
| <dd><p><strong>DEPRECATED</strong>, use <code>PKG_CONFIG_PATH</code> instead.</p> | parse the DRI configuration files in <code>/etc/drirc</code> and | ||||||
| <p>The DRI-enabled libGL uses expat to |  | ||||||
| parse the DRI configuration files in <code>${sysconfdir}/drirc</code> and |  | ||||||
| <code>~/.drirc</code>. This option allows a specific expat installation | <code>~/.drirc</code>. This option allows a specific expat installation | ||||||
| to be used. For example, <code>--with-expat=/usr/local</code> will | to be used. For example, <code>--with-expat=/usr/local</code> will | ||||||
| search for expat headers and libraries in <code>/usr/local/include</code> | search for expat headers and libraries in <code>/usr/local/include</code> | ||||||
| @@ -244,8 +223,7 @@ and <code>/usr/local/lib</code>, respectively. | |||||||
| <h3 id="osmesa">OSMesa </h3><p> No libGL is built in this | <h3 id="osmesa">OSMesa </h3><p> No libGL is built in this | ||||||
| mode. Instead, the driver code is built into the Off-Screen Mesa | mode. Instead, the driver code is built into the Off-Screen Mesa | ||||||
| (OSMesa) library. See the <a href="osmesa.html">Off-Screen Rendering</a> | (OSMesa) library. See the <a href="osmesa.html">Off-Screen Rendering</a> | ||||||
| page for more details.  It corresponds to the option | page for more details. | ||||||
| <code>--enable-osmesa</code>. |  | ||||||
|  |  | ||||||
| <!-- OSMesa specific options --> | <!-- OSMesa specific options --> | ||||||
| <dl> | <dl> | ||||||
| @@ -262,8 +240,10 @@ will create the libOSMesa16 library with a 16-bit color channel. | |||||||
| <h2 id="library">3. Library Options</h2> | <h2 id="library">3. Library Options</h2> | ||||||
|  |  | ||||||
| <p> | <p> | ||||||
| The configure script provides more fine grained control over the libraries | The configure script provides more fine grained control over the GL | ||||||
| that will be built. | libraries that will be built. More details on the specific GL libraries | ||||||
|  | can be found in the <a href="install.html">basic installation | ||||||
|  | instructions</a>. | ||||||
|  |  | ||||||
| </div> | </div> | ||||||
| </body> | </body> | ||||||
|   | |||||||
| @@ -14,11 +14,11 @@ | |||||||
| <iframe src="contents.html"></iframe> | <iframe src="contents.html"></iframe> | ||||||
| <div class="content"> | <div class="content"> | ||||||
|  |  | ||||||
| <h1>Report a bug</h1> | <h1>Bug Database</h1> | ||||||
|  |  | ||||||
| <p> | <p> | ||||||
| The Mesa bug database is hosted on | The Mesa bug database is hosted on | ||||||
| <a href="https://freedesktop.org">freedesktop.org</a>. | <a href="http://freedesktop.org">freedesktop.org</a>. | ||||||
| The old bug database on SourceForge is no longer used. | The old bug database on SourceForge is no longer used. | ||||||
| </p> | </p> | ||||||
|  |  | ||||||
| @@ -37,14 +37,11 @@ Please follow these bug reporting guidelines: | |||||||
| the problem. | the problem. | ||||||
| <li>Check if your bug is already reported in the database. | <li>Check if your bug is already reported in the database. | ||||||
| <li>Monitor your bug report for requests for additional information, etc. | <li>Monitor your bug report for requests for additional information, etc. | ||||||
| <li>Attach the output of running glxinfo or wglinfo. |  | ||||||
| This will tell us the Mesa version, which device driver you're using, etc. |  | ||||||
| <li>If you're reporting a crash, try to use your debugger (gdb) to get a stack | <li>If you're reporting a crash, try to use your debugger (gdb) to get a stack | ||||||
| trace. Also, recompile Mesa in debug mode to get more detailed information. | trace. Also, recompile Mesa in debug mode to get more detailed information. | ||||||
| <li>Describe in detail how to reproduce the bug, especially with games | <li>Describe in detail how to reproduce the bug, especially with games | ||||||
| and applications that the Mesa developers might not be familiar with. | and applications that the Mesa developers might not be familiar with. | ||||||
| <li>Provide an <a href="https://github.com/apitrace/apitrace">apitrace</a> | <li>Provide a simple GLUT-based test program if possible | ||||||
| or simple GLUT-based test program if possible. |  | ||||||
| </ul> | </ul> | ||||||
|  |  | ||||||
| <p> | <p> | ||||||
|   | |||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user