diff --git a/Android.common.mk b/Android.common.mk index edf52d6fabb..d662d6018e4 100644 --- a/Android.common.mk +++ b/Android.common.mk @@ -68,7 +68,16 @@ LOCAL_CFLAGS += \ endif endif +ifeq ($(MESA_ENABLE_LLVM),true) +LOCAL_CFLAGS += \ + -DHAVE_LLVM=0x0305 -DLLVM_VERSION_PATCH=2 \ + -D__STDC_CONSTANT_MACROS \ + -D__STDC_FORMAT_MACROS \ + -D__STDC_LIMIT_MACROS +endif + LOCAL_CPPFLAGS += \ + $(if $(filter true,$(MESA_LOLLIPOP_BUILD)),-D_USING_LIBCXX) \ -Wno-error=non-virtual-dtor \ -Wno-non-virtual-dtor diff --git a/Android.mk b/Android.mk index b19419ba7c2..69e0d33f1aa 100644 --- a/Android.mk +++ b/Android.mk @@ -24,7 +24,7 @@ # BOARD_GPU_DRIVERS should be defined. The valid values are # # classic drivers: i915 i965 -# gallium drivers: swrast freedreno i915g ilo nouveau r300g r600g radeonsi vmwgfx +# gallium drivers: swrast freedreno i915g ilo nouveau r300g r600g radeonsi vc4 vmwgfx # # 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. @@ -48,7 +48,7 @@ MESA_PYTHON2 := python DRM_GRALLOC_TOP := hardware/drm_gralloc classic_drivers := i915 i965 -gallium_drivers := swrast freedreno i915g ilo nouveau r300g r600g radeonsi vmwgfx +gallium_drivers := swrast freedreno i915g ilo nouveau r300g r600g radeonsi vmwgfx vc4 MESA_GPU_DRIVERS := $(strip $(BOARD_GPU_DRIVERS)) @@ -80,6 +80,8 @@ else MESA_BUILD_GALLIUM := false endif +MESA_ENABLE_LLVM := $(if $(filter radeonsi,$(MESA_GPU_DRIVERS)),true,false) + # add subdirectories ifneq ($(strip $(MESA_GPU_DRIVERS)),) @@ -89,13 +91,9 @@ SUBDIRS := \ src/glsl \ src/mesa \ src/util \ - src/egl/main - -ifeq ($(strip $(MESA_BUILD_CLASSIC)),true) -SUBDIRS += \ + src/egl/main \ src/egl/drivers/dri2 \ src/mesa/drivers/dri -endif ifeq ($(strip $(MESA_BUILD_GALLIUM)),true) SUBDIRS += src/gallium diff --git a/CleanSpec.mk b/CleanSpec.mk index 20681638e21..d08b0def7d0 100644 --- a/CleanSpec.mk +++ b/CleanSpec.mk @@ -13,3 +13,4 @@ $(call add-clean-step, rm -rf $(PRODUCT_OUT)/*/SHARED_LIBRARIES/libGLES_mesa_int $(call add-clean-step, rm -rf $(HOST_OUT_release)/*/EXECUTABLES/mesa_*_intermediates) $(call add-clean-step, rm -rf $(HOST_OUT_release)/*/EXECUTABLES/glsl_compiler_intermediates) $(call add-clean-step, rm -rf $(HOST_OUT_release)/*/STATIC_LIBRARIES/libmesa_*_intermediates) +$(call add-clean-step, rm -rf $(PRODUCT_OUT)/*/SHARED_LIBRARIES/*_dri_intermediates) diff --git a/VERSION b/VERSION index 8d303065022..1edd8fc00e5 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -10.6.0-devel +10.7.0-devel diff --git a/configure.ac b/configure.ac index 1f23de4d1ce..33aacd2ec06 100644 --- a/configure.ac +++ b/configure.ac @@ -649,6 +649,7 @@ if test "x$enable_asm" = xyes; then fi AC_CHECK_HEADER([xlocale.h], [DEFINES="$DEFINES -DHAVE_XLOCALE_H"]) +AC_CHECK_HEADER([sys/sysctl.h], [DEFINES="$DEFINES -DHAVE_SYS_SYSCTL_H"]) AC_CHECK_FUNC([strtof], [DEFINES="$DEFINES -DHAVE_STRTOF"]) dnl Check to see if dlopen is in default libraries (like Solaris, which @@ -713,15 +714,15 @@ AC_ARG_ENABLE([opengl], [enable_opengl="$enableval"], [enable_opengl=yes]) AC_ARG_ENABLE([gles1], - [AS_HELP_STRING([--enable-gles1], - [enable support for OpenGL ES 1.x API @<:@default=disabled@:>@])], + [AS_HELP_STRING([--disable-gles1], + [disable support for OpenGL ES 1.x API @<:@default=enabled@:>@])], [enable_gles1="$enableval"], - [enable_gles1=no]) + [enable_gles1=yes]) AC_ARG_ENABLE([gles2], - [AS_HELP_STRING([--enable-gles2], - [enable support for OpenGL ES 2.x API @<:@default=disabled@:>@])], + [AS_HELP_STRING([--disable-gles2], + [disable support for OpenGL ES 2.x API @<:@default=enabled@:>@])], [enable_gles2="$enableval"], - [enable_gles2=no]) + [enable_gles2=yes]) AC_ARG_ENABLE([dri], [AS_HELP_STRING([--enable-dri], @@ -940,12 +941,6 @@ x*yes*yes*) ;; esac -# Building Xlib-GLX requires shared glapi to be disabled. -if test "x$enable_xlib_glx" = xyes; then - AC_MSG_NOTICE([Shared GLAPI should not used with Xlib-GLX, disabling]) - enable_shared_glapi=no -fi - AM_CONDITIONAL(HAVE_SHARED_GLAPI, test "x$enable_shared_glapi" = xyes) # Build the pipe-drivers as separate libraries/modules. @@ -1516,7 +1511,6 @@ if test "x$enable_gbm" = xyes; then fi if test "x$enable_dri" = xyes; then - GBM_BACKEND_DIRS="$GBM_BACKEND_DIRS dri" if test "x$enable_shared_glapi" = xno; then AC_MSG_ERROR([gbm_dri requires --enable-shared-glapi]) fi @@ -1553,8 +1547,15 @@ if test "x$enable_egl" = xyes; then if test "$enable_static" != yes; then if test "x$enable_dri" = xyes; then - HAVE_EGL_DRIVER_DRI2=1 - fi + HAVE_EGL_DRIVER_DRI2=1 + if test "x$enable_shared_glapi" = xno; then + AC_MSG_ERROR([egl_dri2 requires --enable-shared-glapi]) + fi + else + # Avoid building an "empty" libEGL. Drop/update this + # when other backends (haiku?) come along. + AC_MSG_ERROR([egl requires --enable-dri]) + fi fi fi @@ -1782,6 +1783,11 @@ for plat in $egl_platforms; do AC_MSG_ERROR([EGL platform drm requires libdrm >= $LIBDRM_REQUIRED]) ;; + surfaceless) + test "x$have_libdrm" != xyes && + AC_MSG_ERROR([EGL platform surfaceless requires libdrm >= $LIBDRM_REQUIRED]) + ;; + android|gdi|null) ;; @@ -1811,6 +1817,7 @@ fi AM_CONDITIONAL(HAVE_EGL_PLATFORM_X11, echo "$egl_platforms" | grep -q 'x11') AM_CONDITIONAL(HAVE_EGL_PLATFORM_WAYLAND, echo "$egl_platforms" | grep -q 'wayland') AM_CONDITIONAL(HAVE_EGL_PLATFORM_DRM, echo "$egl_platforms" | grep -q 'drm') +AM_CONDITIONAL(HAVE_EGL_PLATFORM_SURFACELESS, echo "$egl_platforms" | grep -q 'surfaceless') AM_CONDITIONAL(HAVE_EGL_PLATFORM_NULL, echo "$egl_platforms" | grep -q 'null') AM_CONDITIONAL(HAVE_EGL_DRIVER_DRI2, test "x$HAVE_EGL_DRIVER_DRI2" != "x") @@ -1926,10 +1933,7 @@ if test "x$enable_gallium_llvm" = xyes; then AC_MSG_ERROR([LLVM $LLVM_REQUIRED_VERSION_MAJOR.$LLVM_REQUIRED_VERSION_MINOR or newer is required]) fi - LLVM_COMPONENTS="engine bitwriter" - if $LLVM_CONFIG --components | grep -qw 'mcjit'; then - LLVM_COMPONENTS="${LLVM_COMPONENTS} mcjit" - fi + LLVM_COMPONENTS="engine bitwriter mcjit mcdisassembler" if test "x$enable_opencl" = xyes; then llvm_check_version_for "3" "5" "0" "opencl" @@ -1937,7 +1941,7 @@ if test "x$enable_gallium_llvm" = xyes; then LLVM_COMPONENTS="${LLVM_COMPONENTS} all-targets ipo linker instrumentation" LLVM_COMPONENTS="${LLVM_COMPONENTS} irreader option objcarcopts profiledata" fi - DEFINES="${DEFINES} -DHAVE_LLVM=0x0$LLVM_VERSION_INT -DLLVM_VERSION_PATCH=$LLVM_VERSION_PATCH" + DEFINES="${DEFINES} -DHAVE_LLVM=0x0$LLVM_VERSION_INT -DMESA_LLVM_VERSION_PATCH=$LLVM_VERSION_PATCH" MESA_LLVM=1 dnl Check for Clang internal headers @@ -2056,16 +2060,19 @@ require_egl_drm() { } radeon_llvm_check() { + if test ${LLVM_VERSION_INT} -lt 307; then + amdgpu_llvm_target_name='r600' + else + amdgpu_llvm_target_name='amdgpu' + fi 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 - if test true && $LLVM_CONFIG --targets-built | grep -qvw 'R600' ; then - AC_MSG_ERROR([LLVM R600 Target not enabled. You can enable it when building the LLVM - sources with the --enable-experimental-targets=R600 - configure flag]) + 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 - LLVM_COMPONENTS="${LLVM_COMPONENTS} r600 bitreader ipo" + LLVM_COMPONENTS="${LLVM_COMPONENTS} $amdgpu_llvm_target_name bitreader ipo" NEED_RADEON_LLVM=yes if test "x$have_libelf" != xyes; then AC_MSG_ERROR([$1 requires libelf when using llvm]) @@ -2365,7 +2372,6 @@ AC_CONFIG_FILES([Makefile src/gallium/drivers/svga/Makefile src/gallium/drivers/trace/Makefile src/gallium/drivers/vc4/Makefile - src/gallium/drivers/vc4/kernel/Makefile src/gallium/state_trackers/clover/Makefile src/gallium/state_trackers/dri/Makefile src/gallium/state_trackers/glx/xlib/Makefile diff --git a/docs/GL3.txt b/docs/GL3.txt index 7a7c1bd9689..220bcc8742f 100644 --- a/docs/GL3.txt +++ b/docs/GL3.txt @@ -98,13 +98,13 @@ GL 4.0, GLSL 4.00: GL_ARB_draw_indirect DONE (i965, nvc0, r600, radeonsi, llvmpipe, softpipe) GL_ARB_gpu_shader5 DONE (i965, nvc0) - 'precise' qualifier DONE - - Dynamically uniform sampler array indices DONE (r600) + - Dynamically uniform sampler array indices DONE (r600, softpipe) - Dynamically uniform UBO array indices DONE (r600) - Implicit signed -> unsigned conversions DONE - Fused multiply-add DONE () - - Packing/bitfield/conversion functions DONE (r600, radeonsi) - - Enhanced textureGather DONE (r600, radeonsi) - - Geometry shader instancing DONE (r600) + - Packing/bitfield/conversion functions DONE (r600, radeonsi, softpipe) + - Enhanced textureGather DONE (r600, radeonsi, softpipe) + - Geometry shader instancing DONE (r600, llvmpipe, softpipe) - Geometry shader multiple streams DONE () - Enhanced per-sample shading DONE (r600, radeonsi) - Interpolation functions DONE (r600) @@ -115,10 +115,10 @@ GL 4.0, GLSL 4.00: GL_ARB_tessellation_shader started (Chris, Ilia) GL_ARB_texture_buffer_object_rgb32 DONE (i965, nvc0, r600, radeonsi, llvmpipe, softpipe) GL_ARB_texture_cube_map_array DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe) - GL_ARB_texture_gather DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe) + GL_ARB_texture_gather DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe) GL_ARB_texture_query_lod DONE (i965, nv50, nvc0, r600, radeonsi) - GL_ARB_transform_feedback2 DONE (i965, nv50, nvc0, r600, radeonsi) - GL_ARB_transform_feedback3 DONE (i965, nv50, nvc0, r600, radeonsi) + GL_ARB_transform_feedback2 DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe) + GL_ARB_transform_feedback3 DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe) GL 4.1, GLSL 4.10: @@ -137,7 +137,7 @@ GL 4.2, GLSL 4.20: GL_ARB_compressed_texture_pixel_storage DONE (all drivers) GL_ARB_shader_atomic_counters DONE (i965) GL_ARB_texture_storage DONE (all drivers) - GL_ARB_transform_feedback_instanced DONE (i965, nv50, nvc0, r600, radeonsi) + GL_ARB_transform_feedback_instanced DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe) GL_ARB_base_instance DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe) GL_ARB_shader_image_load_store in progress (curro) GL_ARB_conservative_depth DONE (all drivers that support GLSL 1.30) @@ -153,23 +153,23 @@ GL 4.3, GLSL 4.30: GL_ARB_ES3_compatibility DONE (all drivers that support GLSL 3.30) GL_ARB_clear_buffer_object DONE (all drivers) GL_ARB_compute_shader in progress (jljusten) - GL_ARB_copy_image DONE (i965) + GL_ARB_copy_image DONE (i965) (gallium - in progress, VMware) GL_KHR_debug DONE (all drivers) GL_ARB_explicit_uniform_location DONE (all drivers that support GLSL) GL_ARB_fragment_layer_viewport DONE (nv50, nvc0, r600, llvmpipe) - GL_ARB_framebuffer_no_attachments not started + GL_ARB_framebuffer_no_attachments DONE (i965) GL_ARB_internalformat_query2 not started GL_ARB_invalidate_subdata DONE (all drivers) GL_ARB_multi_draw_indirect DONE (i965, nvc0, r600, radeonsi, llvmpipe, softpipe) GL_ARB_program_interface_query DONE (all drivers) GL_ARB_robust_buffer_access_behavior not started GL_ARB_shader_image_size in progress (Martin Peres) - GL_ARB_shader_storage_buffer_object not started + GL_ARB_shader_storage_buffer_object in progress (Iago Toral, Samuel Iglesias) 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) GL_ARB_texture_storage_multisample DONE (all drivers that support GL_ARB_texture_multisample) - GL_ARB_texture_view DONE (i965, nv50, nvc0) + GL_ARB_texture_view DONE (i965, nv50, nvc0, llvmpipe, softpipe) GL_ARB_vertex_attrib_binding DONE (all drivers) @@ -177,7 +177,7 @@ GL 4.4, GLSL 4.40: GL_MAX_VERTEX_ATTRIB_STRIDE DONE (all drivers) GL_ARB_buffer_storage DONE (i965, nv50, nvc0, r600, radeonsi) - GL_ARB_clear_texture DONE (i965) + GL_ARB_clear_texture DONE (i965) (gallium - in progress, VMware) GL_ARB_enhanced_layouts not started GL_ARB_multi_bind DONE (all drivers) GL_ARB_query_buffer_object not started @@ -190,12 +190,12 @@ GL 4.5, GLSL 4.50: GL_ARB_ES3_1_compatibility not started GL_ARB_clip_control DONE (i965, nv50, nvc0, r600, radeonsi, llvmpipe, softpipe) GL_ARB_conditional_render_inverted DONE (i965, nv50, nvc0, llvmpipe, softpipe) - GL_ARB_cull_distance not started + GL_ARB_cull_distance in progress (Tobias) GL_ARB_derivative_control DONE (i965, nv50, nvc0, r600) - GL_ARB_direct_state_access started + GL_ARB_direct_state_access DONE (all drivers) - Transform Feedback object DONE - Buffer object DONE - - Framebuffer object started (Laura Ekstrand) + - Framebuffer object DONE - Renderbuffer object DONE - Texture object DONE - Vertex array object DONE @@ -216,12 +216,12 @@ GLES3.1, GLSL ES 3.1 GL_ARB_compute_shader in progress (jljusten) GL_ARB_draw_indirect DONE (i965, nvc0, r600, radeonsi, llvmpipe, softpipe) GL_ARB_explicit_uniform_location DONE (all drivers that support GLSL) - GL_ARB_framebuffer_no_attachments not started + GL_ARB_framebuffer_no_attachments DONE (i965) GL_ARB_program_interface_query DONE (all drivers) GL_ARB_shader_atomic_counters DONE (i965) GL_ARB_shader_image_load_store in progress (curro) GL_ARB_shader_image_size in progress (Martin Peres) - GL_ARB_shader_storage_buffer_object not started + GL_ARB_shader_storage_buffer_object in progress (Iago Toral, Samuel Iglesias) 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) diff --git a/docs/devinfo.html b/docs/devinfo.html index 8d20eea3c56..8ebf80f40e8 100644 --- a/docs/devinfo.html +++ b/docs/devinfo.html @@ -17,158 +17,240 @@

Development Notes

-

Adding Extensions

- -

-To add a new GL extension to Mesa you have to do at least the following. -

- -

Coding Style

+

Coding Style

-Mesa's code style has changed over the years. Here's the latest. +Mesa is over 20 years old and the coding style has evolved over time. +Some old parts use a style that's a bit out of date. +If the guidelines below don't cover something, try following the format of +existing, neighboring code.

-Comment your code! It's extremely important that open-source code be -well documented. Also, strive to write clean, easily understandable code. +Basic formatting guidelines

-

-3-space indentation -

- -

-If you use tabs, set them to 8 columns -

- -

-Line width: the preferred width to fill comments and code in Mesa is 78 -columns. Exceptions are sometimes made for clarity (e.g. tabular data is -sometimes filled to a much larger width so that extraneous carriage returns -don't obscure the table). -

- -

-Brace example: -

+ + + +

Submitting patches

-You should always run the Mesa Testsuite before submitting patches. -The Testsuite can be run using the 'make check' command. All tests +The basic guidelines for submitting patches are: +

+ + + +

Patch formatting

+ +

+The basic rules for patch formatting are: +

+ + + + + +

Testing Patches

+ +

+It should go without saying that patches must be tested. In general, +do whatever testing is prudent. +

+ +

+You should always run the Mesa test suite before submitting patches. +The test suite can be run using the 'make check' command. All tests must pass before patches will be accepted, this may mean you have to update the tests themselves.

+

+Whenever possible and applicable, test the patch with +Piglit to +check for regressions. +

+ + +

Mailing Patches

+

Patches should be sent to the Mesa mailing list for review. When submitting a patch make sure to use git send-email rather than attaching @@ -184,7 +266,38 @@ re-sending the whole series). Using --in-reply-to makes it harder for reviewers to accidentally review old patches.

-

Marking a commit as a candidate for a stable branch

+

+When submitting follow-up patches you should also login to +patchwork and change the +state of your old patches to Superseded. +

+ +

Reviewing Patches

+ +

+When you've reviewed a patch on the mailing list, please be unambiguous +about your review. That is, state either +

+    Reviewed-by: Joe Hacker <jhacker@foo.com>
+
+or +
+    Acked-by: Joe Hacker <jhacker@foo.com>
+
+Rather than saying just "LGTM" or "Seems OK". +

+ +

+If small changes are suggested, it's OK to say something like: +

+   With the above fixes, Reviewed-by: Joe Hacker <jhacker@foo.com>
+
+which tells the patch author that the patch can be committed, as long +as the issues are resolved first. +

+ + +

Marking a commit as a candidate for a stable branch

If you want a commit to be applied to a stable branch, @@ -221,7 +334,7 @@ the upcoming stable release can always be seen on the Mesa Stable Queue page. -

Criteria for accepting patches to the stable branch

+

Criteria for accepting patches to the stable branch

Mesa has a designated release manager for each stable branch, and the release manager is the only developer that should be pushing changes to these @@ -306,7 +419,8 @@ be rejected: regression that is unaacceptable for the stable branch. -

Making a New Mesa Release

+ +

Making a New Mesa Release

These are the instructions for making a new Mesa release. @@ -456,7 +570,7 @@ Edit docs/relnotes/X.Y.Z.html to add the sha256sums printed as part of "make tarballs" in the previous step. Commit this change.

-

Push all commits and the tag creates above

+

Push all commits and the tag created above

This is the first step that cannot easily be undone. The release is going @@ -483,7 +597,7 @@ signatures to the freedesktop.org server: mv ~/MesaLib-X.Y.Z* . -

Back on mesa master, andd the new release notes into the tree

+

Back on mesa master, add the new release notes into the tree

Something like the following steps will do the trick: @@ -543,6 +657,56 @@ release announcement:

+ +

Adding Extensions

+ +

+To add a new GL extension to Mesa you have to do at least the following. + +

+ + + + diff --git a/docs/egl.html b/docs/egl.html index d946bb0ae38..3ab1a6018fd 100644 --- a/docs/egl.html +++ b/docs/egl.html @@ -183,14 +183,6 @@ probably required only for some of the demos found in mesa/demo repository.

values are: debug, info, warning, and fatal.

- - -
EGL_SOFTWARE
-
- -

For drivers that support both hardware and software rendering, setting this -variable to true forces the use of software rendering.

-
diff --git a/docs/index.html b/docs/index.html index e01790cd79d..80c6e03e3f1 100644 --- a/docs/index.html +++ b/docs/index.html @@ -16,6 +16,37 @@

News

+

June 20, 2015

+

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

+ +

June 14, 2015

+

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

+ +

June 07, 2015

+

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

+ +

May 23, 2015

+

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

+ +

May 11, 2015

+

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

+

April 24, 2015

Mesa 10.5.4 is released. diff --git a/docs/relnotes.html b/docs/relnotes.html index 7f2e1d851b9..5fd80025a39 100644 --- a/docs/relnotes.html +++ b/docs/relnotes.html @@ -21,6 +21,11 @@ The release notes summarize what's new or changed in each Mesa release.