diff --git a/Android.common.mk b/Android.common.mk index d662d6018e4..948561c6b1b 100644 --- a/Android.common.mk +++ b/Android.common.mk @@ -42,6 +42,7 @@ LOCAL_CFLAGS += \ -DANDROID_VERSION=0x0$(MESA_ANDROID_MAJOR_VERSION)0$(MESA_ANDROID_MINOR_VERSION) LOCAL_CFLAGS += \ + -D__STDC_LIMIT_MACROS \ -DHAVE___BUILTIN_EXPECT \ -DHAVE___BUILTIN_FFS \ -DHAVE___BUILTIN_FFSLL \ @@ -70,7 +71,7 @@ endif ifeq ($(MESA_ENABLE_LLVM),true) LOCAL_CFLAGS += \ - -DHAVE_LLVM=0x0305 -DLLVM_VERSION_PATCH=2 \ + -DHAVE_LLVM=0x0305 -DMESA_LLVM_VERSION_PATCH=2 \ -D__STDC_CONSTANT_MACROS \ -D__STDC_FORMAT_MACROS \ -D__STDC_LIMIT_MACROS diff --git a/configure.ac b/configure.ac index 4669a67dc04..fa64dab4e48 100644 --- a/configure.ac +++ b/configure.ac @@ -74,7 +74,7 @@ LIBDRM_AMDGPU_REQUIRED=2.4.63 LIBDRM_INTEL_REQUIRED=2.4.61 LIBDRM_NVVIEUX_REQUIRED=2.4.33 LIBDRM_NOUVEAU_REQUIRED=2.4.62 -LIBDRM_FREEDRENO_REQUIRED=2.4.64 +LIBDRM_FREEDRENO_REQUIRED=2.4.65 DRI2PROTO_REQUIRED=2.6 DRI3PROTO_REQUIRED=1.0 PRESENTPROTO_REQUIRED=1.0 @@ -534,15 +534,32 @@ AM_CONDITIONAL(HAVE_COMPAT_SYMLINKS, test "x$HAVE_COMPAT_SYMLINKS" = xyes) dnl dnl library names dnl +dnl Unfortunately we need to do a few things that libtool can't help us with, +dnl so we need some knowledge of shared library filenames: +dnl +dnl LIB_EXT is the extension used when creating symlinks for alternate +dnl filenames for a shared library which will be dynamically loaded +dnl +dnl IMP_LIB_EXT is the extension used when checking for the presence of a +dnl the file for a shared library we wish to link with +dnl case "$host_os" in darwin* ) - LIB_EXT='dylib' ;; + LIB_EXT='dylib' + IMP_LIB_EXT=$LIB_EXT + ;; cygwin* ) - LIB_EXT='dll' ;; + LIB_EXT='dll' + IMP_LIB_EXT='dll.a' + ;; aix* ) - LIB_EXT='a' ;; + LIB_EXT='a' + IMP_LIB_EXT=$LIB_EXT + ;; * ) - LIB_EXT='so' ;; + LIB_EXT='so' + IMP_LIB_EXT=$LIB_EXT + ;; esac AC_SUBST([LIB_EXT]) @@ -1111,6 +1128,11 @@ AC_MSG_RESULT([$with_sha1]) AC_SUBST(SHA1_LIBS) AC_SUBST(SHA1_CFLAGS) +# Enable a define for SHA1 +if test "x$with_sha1" != "x"; then + DEFINES="$DEFINES -DHAVE_SHA1" +fi + # Allow user to configure out the shader-cache feature AC_ARG_ENABLE([shader-cache], AS_HELP_STRING([--disable-shader-cache], [Disable binary shader cache]), @@ -1290,6 +1312,16 @@ AC_SUBST(GLX_TLS, ${GLX_USE_TLS}) AS_IF([test "x$GLX_USE_TLS" = xyes -a "x$ax_pthread_ok" = xyes], [DEFINES="${DEFINES} -DGLX_USE_TLS"]) +dnl Read-only text section on x86 hardened platforms +AC_ARG_ENABLE([glx-read-only-text], + [AS_HELP_STRING([--enable-glx-read-only-text], + [Disable writable .text section on x86 (decreases performance) @<:@default=disabled@:>@])], + [enable_glx_read_only_text="$enableval"], + [enable_glx_read_only_text=no]) +if test "x$enable_glx_read_only_text" = xyes; then + DEFINES="$DEFINES -DGLX_X86_READONLY_TEXT" +fi + dnl dnl More DRI setup dnl @@ -2058,7 +2090,7 @@ radeon_llvm_check() { if test "x$enable_gallium_llvm" != "xyes"; then AC_MSG_ERROR([--enable-gallium-llvm is required when building $1]) fi - llvm_check_version_for "3" "4" "2" $1 + llvm_check_version_for "3" "5" "0" $1 if test true && $LLVM_CONFIG --targets-built | grep -iqvw $amdgpu_llvm_target_name ; then AC_MSG_ERROR([LLVM $amdgpu_llvm_target_name not enabled in your LLVM build.]) fi @@ -2146,11 +2178,8 @@ if test -n "$with_gallium_drivers"; then gallium_require_drm "vc4" gallium_require_drm_loader - case "$host_cpu" in - i?86 | x86_64 | amd64) - USE_VC4_SIMULATOR=yes - ;; - esac + PKG_CHECK_MODULES([SIMPENROSE], [simpenrose], + [USE_VC4_SIMULATOR=yes], [USE_VC4_SIMULATOR=no]) ;; *) AC_MSG_ERROR([Unknown Gallium driver: $driver]) @@ -2170,10 +2199,14 @@ if test "x$MESA_LLVM" != x0; then LLVM_LIBS="`$LLVM_CONFIG --libs ${LLVM_COMPONENTS}`" + dnl llvm-config may not give the right answer when llvm is a built as a + dnl single shared library, so we must work the library name out for + dnl ourselves. + dnl (See https://llvm.org/bugs/show_bug.cgi?id=6823) if test "x$enable_llvm_shared_libs" = xyes; then dnl We can't use $LLVM_VERSION because it has 'svn' stripped out, LLVM_SO_NAME=LLVM-`$LLVM_CONFIG --version` - AS_IF([test -f "$LLVM_LIBDIR/lib$LLVM_SO_NAME.so"], [llvm_have_one_so=yes]) + AS_IF([test -f "$LLVM_LIBDIR/lib$LLVM_SO_NAME.$IMP_LIB_EXT"], [llvm_have_one_so=yes]) if test "x$llvm_have_one_so" = xyes; then dnl LLVM was built using auto*, so there is only one shared object. @@ -2181,7 +2214,7 @@ if test "x$MESA_LLVM" != x0; then else dnl If LLVM was built with CMake, there will be one shared object per dnl component. - AS_IF([test ! -f "$LLVM_LIBDIR/libLLVMTarget.so"], + AS_IF([test ! -f "$LLVM_LIBDIR/libLLVMTarget.$IMP_LIB_EXT"], [AC_MSG_ERROR([Could not find llvm shared libraries: Please make sure you have built llvm with the --enable-shared option and that your llvm libraries are installed in $LLVM_LIBDIR diff --git a/docs/GL3.txt b/docs/GL3.txt index 561f20421db..e020deb3b6c 100644 --- a/docs/GL3.txt +++ b/docs/GL3.txt @@ -109,14 +109,14 @@ GL 4.0, GLSL 4.00 --- all DONE: nvc0, radeonsi - Enhanced per-sample shading DONE (r600) - Interpolation functions DONE (r600) - New overload resolution rules DONE - GL_ARB_gpu_shader_fp64 DONE (llvmpipe, softpipe) + GL_ARB_gpu_shader_fp64 DONE (r600, llvmpipe, softpipe) GL_ARB_sample_shading DONE (i965, nv50, r600) GL_ARB_shader_subroutine DONE (i965, nv50, r600, llvmpipe, softpipe) GL_ARB_tessellation_shader DONE () GL_ARB_texture_buffer_object_rgb32 DONE (i965, r600, llvmpipe, softpipe) GL_ARB_texture_cube_map_array DONE (i965, nv50, r600, llvmpipe, softpipe) GL_ARB_texture_gather DONE (i965, nv50, r600, llvmpipe, softpipe) - GL_ARB_texture_query_lod DONE (i965, nv50, r600) + GL_ARB_texture_query_lod DONE (i965, nv50, r600, softpipe) GL_ARB_transform_feedback2 DONE (i965, nv50, r600, llvmpipe, softpipe) GL_ARB_transform_feedback3 DONE (i965, nv50, r600, llvmpipe, softpipe) @@ -127,7 +127,7 @@ GL 4.1, GLSL 4.10 --- all DONE: nvc0, radeonsi GL_ARB_get_program_binary DONE (0 binary formats) GL_ARB_separate_shader_objects DONE (all drivers) GL_ARB_shader_precision DONE (all drivers that support GLSL 4.10) - GL_ARB_vertex_attrib_64bit DONE (llvmpipe, softpipe) + GL_ARB_vertex_attrib_64bit DONE (r600, llvmpipe, softpipe) GL_ARB_viewport_array DONE (i965, nv50, r600, llvmpipe) @@ -164,7 +164,7 @@ GL 4.3, GLSL 4.30: GL_ARB_program_interface_query DONE (all drivers) GL_ARB_robust_buffer_access_behavior not started GL_ARB_shader_image_size DONE (i965) - GL_ARB_shader_storage_buffer_object in progress (Iago Toral, Samuel Iglesias) + GL_ARB_shader_storage_buffer_object DONE (i965) GL_ARB_stencil_texturing DONE (i965/gen8+, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe) GL_ARB_texture_buffer_range DONE (nv50, nvc0, i965, r600, radeonsi, llvmpipe) GL_ARB_texture_query_levels DONE (all drivers that support GLSL 1.30) @@ -194,8 +194,8 @@ GL 4.5, GLSL 4.50: GL_ARB_derivative_control DONE (i965, nv50, nvc0, r600, radeonsi) GL_ARB_direct_state_access DONE (all drivers) GL_ARB_get_texture_sub_image DONE (all drivers) - GL_ARB_shader_texture_image_samples not started - GL_ARB_texture_barrier DONE (nv50, nvc0, r600, radeonsi) + GL_ARB_shader_texture_image_samples DONE (i965, nv50, nvc0, r600, radeonsi) + GL_ARB_texture_barrier DONE (i965, nv50, nvc0, r600, radeonsi) GL_KHR_context_flush_control DONE (all - but needs GLX/EGL extension to be useful) GL_KHR_robust_buffer_access_behavior not started GL_KHR_robustness 90% done (the ARB variant) @@ -212,7 +212,7 @@ GLES3.1, GLSL ES 3.1 GL_ARB_shader_atomic_counters DONE (i965) GL_ARB_shader_image_load_store DONE (i965) GL_ARB_shader_image_size DONE (i965) - GL_ARB_shader_storage_buffer_object in progress (Iago Toral, Samuel Iglesias) + GL_ARB_shader_storage_buffer_object DONE (i965) GL_ARB_shading_language_packing DONE (all drivers) GL_ARB_separate_shader_objects DONE (all drivers) GL_ARB_stencil_texturing DONE (i965/gen8+, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe) @@ -223,10 +223,35 @@ GLES3.1, GLSL ES 3.1 GS5 Packing/bitfield/conversion functions DONE (i965, nvc0, r600, radeonsi) GL_EXT_shader_integer_mix DONE (all drivers that support GLSL) - Additional functions not covered above: - glMemoryBarrierByRegion - glGetTexLevelParameter[fi]v - needs updates to restrict to GLES enums - glGetBooleani_v - needs updates to restrict to GLES enums + Additional functionality not covered above: + glMemoryBarrierByRegion DONE + glGetTexLevelParameter[fi]v - needs updates DONE + glGetBooleani_v - restrict to GLES enums + gl_HelperInvocation support + +GLES3.2, GLSL ES 3.2 + GL_EXT_color_buffer_float DONE (all drivers) + GL_KHR_blend_equation_advanced not started + GL_KHR_debug DONE (all drivers) + GL_KHR_robustness 90% done (the ARB variant) + GL_KHR_texture_compression_astc_ldr DONE (i965/gen9+) + GL_OES_copy_image not started (based on GL_ARB_copy_image, which is done for some drivers) + GL_OES_draw_buffers_indexed not started + GL_OES_draw_elements_base_vertex not started (based on GL_ARB_draw_elements_base_vertex, which is done for all drivers) + GL_OES_geometry_shader not started (based on GL_ARB_geometry_shader4, which is done for all drivers) + GL_OES_gpu_shader5 not started (based on parts of GL_ARB_gpu_shader5, which is done for some drivers) + GL_OES_primitive_bounding box not started + GL_OES_sample_shading not started (based on parts of GL_ARB_sample_shading, which is done for some drivers) + GL_OES_sample_variables not started (based on parts of GL_ARB_sample_shading, which is done for some drivers) + GL_OES_shader_image_atomic not started (based on parts of GL_ARB_shader_image_load_store, which is done for some drivers) + GL_OES_shader_io_blocks not started (based on parts of GLSL 1.50, which is done) + GL_OES_shader_multisample_interpolation not started (based on parts of GL_ARB_gpu_shader5, which is done) + GL_OES_tessellation_shader not started (based on GL_ARB_tessellation_shader, which is done for some drivers) + GL_OES_texture_border_clamp not started (based on GL_ARB_texture_border_clamp, which is done) + GL_OES_texture_buffer not started (based on GL_ARB_texture_buffer_object, GL_ARB_texture_buffer_range, and GL_ARB_texture_buffer_object_rgb32 that are all done) + GL_OES_texture_cube_map_array not started (based on GL_ARB_texture_cube_map_array, which is done for all drivers) + GL_OES_texture_stencil8 not started (based on GL_ARB_texture_stencil8, which is done for some drivers) + GL_OES_texture_storage_multisample_2d_array DONE (all drivers that support GL_ARB_texture_multisample) More info about these features and the work involved can be found at http://dri.freedesktop.org/wiki/MissingFunctionality diff --git a/docs/autoconf.html b/docs/autoconf.html index 2ef8c63dbee..5c29e5ee2c6 100644 --- a/docs/autoconf.html +++ b/docs/autoconf.html @@ -87,6 +87,13 @@ created in a lib64 directory at the top of the Mesa source tree.

+
--sysconfdir=DIR
+

This option specifies the directory where the configuration +files will be installed. The default is ${prefix}/etc. +Currently there's only one config file provided when dri drivers are +enabled - it's drirc.

+
+
--enable-static, --disable-shared

By default, Mesa will build shared libraries. Either of these options will force static @@ -217,7 +224,7 @@ GLX.

--with-expat=DIR

DEPRECATED, use PKG_CONFIG_PATH instead.

The DRI-enabled libGL uses expat to -parse the DRI configuration files in /etc/drirc and +parse the DRI configuration files in ${sysconfdir}/drirc and ~/.drirc. This option allows a specific expat installation to be used. For example, --with-expat=/usr/local will search for expat headers and libraries in /usr/local/include diff --git a/docs/envvars.html b/docs/envvars.html index c0d5a51b482..bdfe9991a6c 100644 --- a/docs/envvars.html +++ b/docs/envvars.html @@ -153,6 +153,7 @@ See the Xlib software driver page for details.

  • no16 - suppress generation of 16-wide fragment shaders. useful for debugging broken shaders
  • blorp - emit messages about the blorp operations (blits & clears)
  • nodualobj - suppress generation of dual-object geometry shader code
  • +
  • optimizer - dump shader assembly to files at each optimization pass and iteration that make progress
  • diff --git a/docs/index.html b/docs/index.html index b067256d7b2..a56c8489189 100644 --- a/docs/index.html +++ b/docs/index.html @@ -16,25 +16,62 @@

    News

    -

    August 22 2015

    +

    September 28, 2015

    +

    +Mesa 11.0.2 is released. +This is a bug-fix release. +

    + +

    September 26, 2015

    +

    +Mesa 11.0.1 is released. +This is a bug-fix release. +

    + +

    September 20, 2015

    +

    +Mesa 10.6.8 is released. +This is a bug-fix release. +

    + +

    September 12, 2015

    +

    +Mesa 11.0.0 is released. This is a new +development release. See the release notes for more information about +the release. +

    + +

    September 10, 2015

    +

    +Mesa 10.6.7 is released. +This is a bug-fix release. +

    + +

    September 4, 2015

    +

    +Mesa 10.6.6 is released. +This is a bug-fix release. +

    + +

    August 22, 2015

    Mesa 10.6.5 is released. This is a bug-fix release.

    -

    August 11 2015

    +

    August 11, 2015

    Mesa 10.6.4 is released. This is a bug-fix release.

    -

    July 26 2015

    +

    July 26, 2015

    Mesa 10.6.3 is released. This is a bug-fix release.

    -

    July 11 2015

    +

    July 11, 2015

    Mesa 10.6.2 is released. This is a bug-fix release. diff --git a/docs/relnotes.html b/docs/relnotes.html index 2cc4701d3ff..948d3f790b8 100644 --- a/docs/relnotes.html +++ b/docs/relnotes.html @@ -21,6 +21,12 @@ The release notes summarize what's new or changed in each Mesa release.

    +

    Bug fixes

    -TBD. +

    This list is likely incomplete.

    + + +

    Changes

    -TBD. +
  • Removed the EGL loader from the Linux SCons build.
  • diff --git a/docs/relnotes/11.0.1.html b/docs/relnotes/11.0.1.html new file mode 100644 index 00000000000..9051e7ceedd --- /dev/null +++ b/docs/relnotes/11.0.1.html @@ -0,0 +1,134 @@ + + + + + Mesa Release Notes + + + + +
    +

    The Mesa 3D Graphics Library

    +
    + + +
    + +

    Mesa 11.0.1 Release Notes / September 26, 2015

    + +

    +Mesa 11.0.1 is a bug fix release which fixes bugs found since the 11.0.0 release. +

    +

    +Mesa 11.0.1 implements the OpenGL 4.1 API, but the version reported by +glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) / +glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used. +Some drivers don't support all the features required in OpenGL 4.1. OpenGL +4.1 is only available if requested at context creation +because compatibility contexts are not supported. +

    + + +

    SHA256 checksums

    +
    +6dab262877e12c0546a0e2970c6835a0f217e6d4026ccecb3cd5dd733d1ce867  mesa-11.0.1.tar.gz
    +43d0dfcd1f1e36f07f8228cd76d90175d3fc74c1ed25d7071794a100a98ef2a6  mesa-11.0.1.tar.xz
    +
    + + +

    New features

    +

    None

    + +

    Bug fixes

    + +

    This list is likely incomplete.

    + + + + +

    Changes

    + +

    Antia Puentes (2):

    + + +

    Anuj Phogat (1):

    + + +

    Emil Velikov (2):

    + + +

    Iago Toral Quiroga (1):

    + + +

    Ian Romanick (5):

    + + +

    Ilia Mirkin (6):

    + + +

    Jason Ekstrand (2):

    + + +

    Jeremy Huddleston (1):

    + + +

    Ray Strode (1):

    + + +

    Tapani Pälli (2):

    + + +

    Ulrich Weigand (1):

    + + + +
    + + diff --git a/docs/relnotes/11.0.2.html b/docs/relnotes/11.0.2.html new file mode 100644 index 00000000000..651e5e73527 --- /dev/null +++ b/docs/relnotes/11.0.2.html @@ -0,0 +1,85 @@ + + + + + Mesa Release Notes + + + + +
    +

    The Mesa 3D Graphics Library

    +
    + + +
    + +

    Mesa 11.0.2 Release Notes / September 28, 2015

    + +

    +Mesa 11.0.2 is a bug fix release which fixes bugs found since the 11.0.1 release. +

    +

    +Mesa 11.0.2 implements the OpenGL 4.1 API, but the version reported by +glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) / +glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used. +Some drivers don't support all the features required in OpenGL 4.1. OpenGL +4.1 is only available if requested at context creation +because compatibility contexts are not supported. +

    + + +

    SHA256 checksums

    +
    +45170773500d6ae2f9eb93fc85efee69f7c97084411ada4eddf92f78bca56d20  mesa-11.0.2.tar.gz
    +fce11fb27eb87adf1e620a76455d635c6136dfa49ae58c53b34ef8d0c7b7eae4  mesa-11.0.2.tar.xz
    +
    + + +

    New features

    +

    None

    + +

    Bug fixes

    + +

    This list is likely incomplete.

    + + + + +

    Changes

    + +

    Eduardo Lima Mitev (3):

    + + +

    Emil Velikov (2):

    + + +

    Kristian Høgsberg Kristensen (1):

    + + +

    Matt Turner (1):

    + + + +
    + + diff --git a/docs/relnotes/11.1.0.html b/docs/relnotes/11.1.0.html index 7f80206a9f2..c755c98f6eb 100644 --- a/docs/relnotes/11.1.0.html +++ b/docs/relnotes/11.1.0.html @@ -44,7 +44,12 @@ Note: some of the new features are only available with certain drivers.

    Bug fixes

    diff --git a/docs/shading.html b/docs/shading.html index 77a0ee413d9..e9fe3dde166 100644 --- a/docs/shading.html +++ b/docs/shading.html @@ -63,6 +63,20 @@ execution. These are generally used for debugging. Example: export MESA_GLSL=dump,nopt

    +

    +Shaders can be dumped and replaced on runtime for debugging purposes. Mesa +needs to be configured with '--with-sha1' to enable this functionality. This +feature is not currently supported by SCons build. + +This is controlled via following environment variables: +

    +Note, path set must exist before running for dumping or replacing to work. +When both are set, these paths should be different so the dumped shaders do +not clobber the replacement shaders. +

    GLSL Version

    diff --git a/docs/vmware-guest.html b/docs/vmware-guest.html index b5ea4e0bebc..284c6c261d2 100644 --- a/docs/vmware-guest.html +++ b/docs/vmware-guest.html @@ -26,6 +26,31 @@ VMware Workstation running on Linux or Windows and VMware Fusion running on MacOS are all supported.

    +

    +With the August 2015 Workstation 12 / Fusion 8 releases, OpenGL 3.3 +is supported in the guest. +This requires: +

    +

    + +

    +Otherwise, OpenGL 2.1 is supported. +

    + +

    +OpenGL 3.3 support can be disabled by setting the environment variable +SVGA_VGPU10=0. +You will then have OpenGL 2.1 support. +This may be useful to work around application bugs (such as incorrect use +of the OpenGL 3.x core profile). +

    +

    Most modern Linux distros include the SVGA3D driver so end users shouldn't be concerned with this information. @@ -227,6 +252,16 @@ If you don't see this, try setting this environment variable: then rerun glxinfo and examine the output for error messages.

    +

    +If OpenGL 3.3 is not working (you only get OpenGL 2.1): +

    +