[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

mesa: Changes to 'upstream-unstable'



Rebased ref, commits from common ancestor:
commit ea0d1f575c214c09ba3df12644a960e86e031766
Author: Emil Velikov <emil.l.velikov@gmail.com>
Date:   Fri Apr 24 22:27:09 2015 +0100

    Add release notes for the 10.5.4 release
    
    Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>

diff --git a/docs/relnotes/10.5.4.html b/docs/relnotes/10.5.4.html
new file mode 100644
index 0000000..78767cc
--- /dev/null
+++ b/docs/relnotes/10.5.4.html
@@ -0,0 +1,124 @@
+<!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>Mesa Release Notes</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>Mesa 10.5.4 Release Notes / April 24, 2015</h1>
+
+<p>
+Mesa 10.5.4 is a bug fix release which fixes bugs found since the 10.5.3 release.
+</p>
+<p>
+Mesa 10.5.4 implements the OpenGL 3.3 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 3.3.  OpenGL
+3.3 is <strong>only</strong> available if requested at context creation
+because compatibility contexts are not supported.
+</p>
+
+
+<h2>SHA256 checksums</h2>
+<pre>
+TBD
+</pre>
+
+
+<h2>New features</h2>
+<p>None</p>
+
+<h2>Bug fixes</h2>
+
+<p>This list is likely incomplete.</p>
+
+<ul>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=69226";>Bug 69226</a> - Cannot enable basic shaders with Second Life aborts attempt</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=71591";>Bug 71591</a> - Second Life shaders fail to compile (extension declared in middle of shader)</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=81025";>Bug 81025</a> - [IVB/BYT Bisected]Piglit spec_ARB_draw_indirect_arb_draw_indirect-draw-elements-prim-restart-ugly fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89457";>Bug 89457</a> - [BSW Bisected]ogles3conform ES3-CTS.gtf.GL3Tests.shadow.shadow_execution_vert fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89957";>Bug 89957</a> - vm protection faults in piglit lest: texsubimage cube_map_array pbo</li>
+
+</ul>
+
+
+<h2>Changes</h2>
+
+<p>Brian Paul (1):</p>
+<ul>
+  <li>glsl: rewrite glsl_type::record_key_hash() to avoid buffer overflow</li>
+</ul>
+
+<p>Dave Airlie (2):</p>
+<ul>
+  <li>st/mesa: convert sub image for cube map arrays to 2d arrays for upload</li>
+  <li>st/mesa: align cube map arrays layers</li>
+</ul>
+
+<p>Emil Velikov (11):</p>
+<ul>
+  <li>docs: Add 256 sums for the 10.5.3 release</li>
+  <li>radeonsi: remove unused si_dump_key()</li>
+  <li>android: use LOCAL_SHARED_LIBRARIES over TARGET_OUT_HEADERS</li>
+  <li>android: add $(mesa_top)/src include to the whole of mesa</li>
+  <li>android: egl: add libsync_cflags to the build</li>
+  <li>android: dri/common: conditionally include drm_cflags/set __NOT_HAVE_DRM_H</li>
+  <li>android: add HAVE__BUILTIN_* and HAVE_FUNC_ATTRIBUTE_* defines</li>
+  <li>android: add $(mesa_top)/src/mesa/main to the includes list</li>
+  <li>android: dri: link against libmesa_util</li>
+  <li>android: mesa: fix the path of the SSE4_1 optimisations</li>
+  <li>Update version to 10.5.4</li>
+</ul>
+
+<p>Ian Romanick (1):</p>
+<ul>
+  <li>nir: Fix typo in "ushr by 0" algebraic replacement</li>
+</ul>
+
+<p>Kenneth Graunke (2):</p>
+<ul>
+  <li>i965: Fix software primitive restart with indirect draws.</li>
+  <li>drirc: Add "Second Life" quirk (allow_glsl_extension_directive_midshader).</li>
+</ul>
+
+<p>Kristian Høgsberg (1):</p>
+<ul>
+  <li>i965: Rewrite ir_tex to ir_txl with lod 0 for vertex shaders</li>
+</ul>
+
+<p>Marek Olšák (2):</p>
+<ul>
+  <li>glsl_to_tgsi: fix out-of-bounds constant access and crash for uniforms</li>
+  <li>glsl_to_tgsi: don't use a potentially-undefined immediate for ir_query_levels</li>
+</ul>
+
+<p>Mathias Froehlich (1):</p>
+<ul>
+  <li>i965: Flush batchbuffer containing the query on glQueryCounter.</li>
+</ul>
+
+<p>Mauro Rossi (2):</p>
+<ul>
+  <li>android: mesa: generate the format_{un,}pack.[ch] sources</li>
+  <li>android: add inital NIR build</li>
+</ul>
+
+
+</div>
+</body>
+</html>

commit 776e47a305d33ec04a05ac2d81691b884baa9e62
Author: Emil Velikov <emil.l.velikov@gmail.com>
Date:   Fri Apr 24 22:22:47 2015 +0100

    Update version to 10.5.4
    
    Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>

diff --git a/VERSION b/VERSION
index 1e9c35f..927fa80 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-10.5.3
+10.5.4

commit e2dd5546517dd8d3b6790cea3c74c038629256b4
Author: Brian Paul <brianp@vmware.com>
Date:   Thu Apr 16 15:29:18 2015 -0600

    glsl: rewrite glsl_type::record_key_hash() to avoid buffer overflow
    
    This should be more efficient than the previous snprintf() solution.
    But more importantly, it avoids a buffer overflow bug that could result
    in crashes or unpredictable results when processing very large interface
    blocks.
    
    For the app in question, key->length = 103 for some interfaces.  The check
    if size >= sizeof(hash_key) was insufficient to prevent overflows of the
    hash_key[128] array because it didn't account for the terminating zero.
    In this case, this caused the call to hash_table_string_hash() to return
    different results for identical inputs, and then shader linking failed.
    
    This new solution also takes all structure fields into account instead
    of just the first 15 when sizeof(pointer)==8.
    
    Cc: mesa-stable@lists.freedesktop.org
    Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
    (cherry picked from commit 31667e6237d30188d0b29e17f5b9892f10c0d83a)

diff --git a/src/glsl/glsl_types.cpp b/src/glsl/glsl_types.cpp
index b4223f4..970bcd8 100644
--- a/src/glsl/glsl_types.cpp
+++ b/src/glsl/glsl_types.cpp
@@ -690,24 +690,27 @@ glsl_type::record_key_compare(const void *a, const void *b)
 }
 
 
+/**
+ * Generate an integer hash value for a glsl_type structure type.
+ */
 unsigned
 glsl_type::record_key_hash(const void *a)
 {
    const glsl_type *const key = (glsl_type *) a;
-   char hash_key[128];
-   unsigned size = 0;
-
-   size = snprintf(hash_key, sizeof(hash_key), "%08x", key->length);
+   uintptr_t hash = key->length;
+   unsigned retval;
 
    for (unsigned i = 0; i < key->length; i++) {
-      if (size >= sizeof(hash_key))
-	 break;
-
-      size += snprintf(& hash_key[size], sizeof(hash_key) - size,
-		       "%p", (void *) key->fields.structure[i].type);
+      /* casting pointer to uintptr_t */
+      hash = (hash * 13 ) + (uintptr_t) key->fields.structure[i].type;
    }
 
-   return hash_table_string_hash(& hash_key);
+   if (sizeof(hash) == 8)
+      retval = (hash & 0xffffffff) ^ ((uint64_t) hash >> 32);
+   else
+      retval = hash;
+
+   return retval;
 }
 
 

commit 0f5ec7250d3e19eda1121f1bf3f340aedcc26dc5
Author: Emil Velikov <emil.l.velikov@gmail.com>
Date:   Sat Mar 28 18:23:01 2015 +0000

    android: mesa: fix the path of the SSE4_1 optimisations
    
    Commit dd6f641303c(mesa: Build with subdir-objects.) removed the SRCDIR
    variable, but forgot to update all references of it.
    
    v2: Fix path - must be relative to LOCAL_PATH. (Chih-Wei)
    
    Cc: "10.5" <mesa-stable@lists.freedesktop.org>
    Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
    Reviewed-by: Chih-Wei Huang <cwhuang@linux.org.tw>
    (cherry picked from commit 669cfc267a1102ff903b3e562f9aa45a410e0312)

diff --git a/src/mesa/Android.libmesa_dricore.mk b/src/mesa/Android.libmesa_dricore.mk
index c0770ca..c684017 100644
--- a/src/mesa/Android.libmesa_dricore.mk
+++ b/src/mesa/Android.libmesa_dricore.mk
@@ -49,8 +49,8 @@ endif # MESA_ENABLE_ASM
 
 ifeq ($(ARCH_X86_HAVE_SSE4_1),true)
 LOCAL_SRC_FILES += \
-	$(SRCDIR)main/streaming-load-memcpy.c \
-	$(SRCDIR)main/sse_minmax.c
+	main/streaming-load-memcpy.c \
+	mesa/main/sse_minmax.c
 LOCAL_CFLAGS := -msse4.1
 endif
 

commit a2785a23e694df2213c9afe6d6f062cc366d24f1
Author: Mauro Rossi <issor.oruam@gmail.com>
Date:   Fri Mar 27 22:25:45 2015 +0000

    android: add inital NIR build
    
    Required by the i965 driver.
    
    v2:
     - Split out the nir_builder_opcodes.h rules.
     - Do not unconditionally hide the python command - use $(hide)
     - Use LOCAL_EXPORT_C_INCLUDE_DIRS to manage includes for the generated
    sources.
    
    Cc: "10.5" <mesa-stable@lists.freedesktop.org>
    [Emil Velikov: Split from a larger commit, v2]
    Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
    Reviewed-by: Chih-Wei Huang <cwhuang@linux.org.tw>
    
    (cherry picked from commit 06619749a11651a50e353168c7c793082820585d)

diff --git a/src/glsl/Android.gen.mk b/src/glsl/Android.gen.mk
index 7ec56d4..e161bd8 100644
--- a/src/glsl/Android.gen.mk
+++ b/src/glsl/Android.gen.mk
@@ -33,11 +33,23 @@ sources := \
 	glsl_lexer.cpp \
 	glsl_parser.cpp \
 	glcpp/glcpp-lex.c \
-	glcpp/glcpp-parse.c
+	glcpp/glcpp-parse.c \
+	nir/nir_constant_expressions.c \
+	nir/nir_opcodes.c \
+	nir/nir_opcodes.h \
+	nir/nir_opt_algebraic.c
 
 LOCAL_SRC_FILES := $(filter-out $(sources), $(LOCAL_SRC_FILES))
 
-LOCAL_C_INCLUDES += $(intermediates) $(intermediates)/glcpp $(MESA_TOP)/src/glsl/glcpp
+LOCAL_C_INCLUDES += \
+	$(intermediates) \
+	$(intermediates)/glcpp \
+	$(intermediates)/nir \
+	$(MESA_TOP)/src/glsl/glcpp \
+	$(MESA_TOP)/src/glsl/nir
+
+LOCAL_EXPORT_C_INCLUDE_DIRS += \
+	$(intermediates)/nir
 
 sources := $(addprefix $(intermediates)/, $(sources))
 LOCAL_GENERATED_SOURCES += $(sources)
@@ -77,3 +89,42 @@ $(intermediates)/glcpp/glcpp-lex.c: $(LOCAL_PATH)/glcpp/glcpp-lex.l
 
 $(intermediates)/glcpp/glcpp-parse.c: $(LOCAL_PATH)/glcpp/glcpp-parse.y
 	$(call glsl_local-y-to-c-and-h)
+
+nir_constant_expressions_gen := $(LOCAL_PATH)/nir/nir_constant_expressions.py
+nir_constant_expressions_deps := \
+	$(LOCAL_PATH)/nir/nir_opcodes.py \
+	$(LOCAL_PATH)/nir/nir_constant_expressions.py \
+	$(LOCAL_PATH)/nir/nir_constant_expressions.h
+
+$(intermediates)/nir/nir_constant_expressions.c: $(nir_constant_expressions_deps)
+	@mkdir -p $(dir $@)
+	$(hide) $(MESA_PYTHON2) $(nir_constant_expressions_gen) $< > $@
+
+nir_opcodes_h_gen := $(LOCAL_PATH)/nir/nir_opcodes_h.py
+nir_opcodes_h_deps := \
+	$(LOCAL_PATH)/nir/nir_opcodes.py \
+	$(LOCAL_PATH)/nir/nir_opcodes_h.py
+
+$(intermediates)/nir/nir_opcodes.h: $(nir_opcodes_h_deps)
+	@mkdir -p $(dir $@)
+	$(hide) $(MESA_PYTHON2) $(nir_opcodes_h_gen) $< > $@
+
+$(LOCAL_PATH)/nir/nir.h: $(intermediates)/nir/nir_opcodes.h
+
+nir_opcodes_c_gen := $(LOCAL_PATH)/nir/nir_opcodes_c.py
+nir_opcodes_c_deps := \
+	$(LOCAL_PATH)/nir/nir_opcodes.py \
+	$(LOCAL_PATH)/nir/nir_opcodes_c.py
+
+$(intermediates)/nir/nir_opcodes.c: $(nir_opcodes_c_deps)
+	@mkdir -p $(dir $@)
+	$(hide) $(MESA_PYTHON2) $(nir_opcodes_c_gen) $< > $@
+
+nir_opt_algebraic_gen := $(LOCAL_PATH)/nir/nir_opt_algebraic.py
+nir_opt_algebraic_deps := \
+	$(LOCAL_PATH)/nir/nir_opt_algebraic.py \
+	$(LOCAL_PATH)/nir/nir_algebraic.py
+
+$(intermediates)/nir/nir_opt_algebraic.c: $(nir_opt_algebraic_deps)
+	@mkdir -p $(dir $@)
+	$(hide) $(MESA_PYTHON2) $(nir_opt_algebraic_gen) $< > $@
diff --git a/src/glsl/Android.mk b/src/glsl/Android.mk
index 2ac1ffb..b5c05ab 100644
--- a/src/glsl/Android.mk
+++ b/src/glsl/Android.mk
@@ -35,7 +35,8 @@ include $(CLEAR_VARS)
 
 LOCAL_SRC_FILES := \
 	$(LIBGLCPP_FILES) \
-	$(LIBGLSL_FILES)
+	$(LIBGLSL_FILES) \
+	$(NIR_FILES)
 
 LOCAL_C_INCLUDES := \
 	$(MESA_TOP)/src/mapi \

commit 2ad5a068faa9f9cbd789d3a988a14f973a5f8720
Author: Emil Velikov <emil.l.velikov@gmail.com>
Date:   Fri Mar 27 21:39:15 2015 +0000

    android: dri: link against libmesa_util
    
    The dri modules depend on symbols provided by it.
    
    Cc: "10.5" <mesa-stable@lists.freedesktop.org>
    Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
    Reviewed-by: Chih-Wei Huang <cwhuang@linux.org.tw>
    (cherry picked from commit 618885f71fcacb3d68bf37fa23be36830d4178d2)

diff --git a/src/mesa/drivers/dri/Android.mk b/src/mesa/drivers/dri/Android.mk
index e168fe0..ab347fa 100644
--- a/src/mesa/drivers/dri/Android.mk
+++ b/src/mesa/drivers/dri/Android.mk
@@ -43,7 +43,8 @@ MESA_DRI_WHOLE_STATIC_LIBRARIES := \
 	libmesa_glsl \
 	libmesa_megadriver_stub \
 	libmesa_dri_common \
-	libmesa_dricore
+	libmesa_dricore \
+	libmesa_util
 
 MESA_DRI_SHARED_LIBRARIES := \
 	libcutils \

commit 1dfbc95b7664d3f52179870c016477d0ea950c91
Author: Emil Velikov <emil.l.velikov@gmail.com>
Date:   Sat Mar 28 01:11:54 2015 +0000

    android: add $(mesa_top)/src/mesa/main to the includes list
    
    Required by the format_{un,}pack rework. Otherwise the build will fail
    to locate the respective headers - format_{un,}pack.h
    
    Cc: "10.5" <mesa-stable@lists.freedesktop.org>
    Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
    Reviewed-by: Chih-Wei Huang <cwhuang@linux.org.tw>
    (cherry picked from commit 0afbd2df0485cd480979d9f4cdae00262d1a3c62)

diff --git a/src/mesa/Android.libmesa_dricore.mk b/src/mesa/Android.libmesa_dricore.mk
index 73afcc7..c0770ca 100644
--- a/src/mesa/Android.libmesa_dricore.mk
+++ b/src/mesa/Android.libmesa_dricore.mk
@@ -62,6 +62,7 @@ endif
 LOCAL_C_INCLUDES := \
 	$(call intermediates-dir-for STATIC_LIBRARIES,libmesa_program,,) \
 	$(MESA_TOP)/src/mapi \
+	$(MESA_TOP)/src/mesa/main \
 	$(MESA_TOP)/src/glsl \
 	$(MESA_TOP)/src/gallium/auxiliary
 
diff --git a/src/mesa/Android.libmesa_st_mesa.mk b/src/mesa/Android.libmesa_st_mesa.mk
index fdf847a..e02030b 100644
--- a/src/mesa/Android.libmesa_st_mesa.mk
+++ b/src/mesa/Android.libmesa_st_mesa.mk
@@ -53,10 +53,11 @@ endif
 
 LOCAL_C_INCLUDES := \
 	$(call intermediates-dir-for STATIC_LIBRARIES,libmesa_program,,) \
-	$(MESA_TOP)/src/gallium/auxiliary \
-	$(MESA_TOP)/src/gallium/include \
+	$(MESA_TOP)/src/mapi \
+	$(MESA_TOP)/src/mesa/main \
 	$(MESA_TOP)/src/glsl \
-	$(MESA_TOP)/src/mapi
+	$(MESA_TOP)/src/gallium/auxiliary \
+	$(MESA_TOP)/src/gallium/include
 
 LOCAL_WHOLE_STATIC_LIBRARIES := \
 	libmesa_program

commit 215f28c695f8902a609ff01e1cbfbe2fa8783adc
Author: Emil Velikov <emil.l.velikov@gmail.com>
Date:   Fri Mar 27 20:10:35 2015 +0000

    android: add HAVE__BUILTIN_* and HAVE_FUNC_ATTRIBUTE_* defines
    
    All of those are available on gcc 4.5 and later with the current android
    build using gcc 4.7.
    
    Cc: "10.4 10.5" <mesa-stable@lists.freedesktop.org>
    Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
    Reviewed-by: Chih-Wei Huang <cwhuang@linux.org.tw>
    (cherry picked from commit 39a175e0c792f569dfe73de1b4d01b0caea43a01)

diff --git a/Android.common.mk b/Android.common.mk
index ca62f79..527fe2f 100644
--- a/Android.common.mk
+++ b/Android.common.mk
@@ -42,6 +42,19 @@ LOCAL_CFLAGS += \
 	-DANDROID_VERSION=0x0$(MESA_ANDROID_MAJOR_VERSION)0$(MESA_ANDROID_MINOR_VERSION)
 
 LOCAL_CFLAGS += \
+	-DHAVE___BUILTIN_EXPECT \
+	-DHAVE___BUILTIN_FFS \
+	-DHAVE___BUILTIN_FFSLL \
+	-DHAVE_FUNC_ATTRIBUTE_FLATTEN \
+	-DHAVE_FUNC_ATTRIBUTE_UNUSED \
+	-DHAVE_FUNC_ATTRIBUTE_FORMAT \
+	-DHAVE_FUNC_ATTRIBUTE_PACKED \
+	-DHAVE___BUILTIN_CTZ \
+	-DHAVE___BUILTIN_POPCOUNT \
+	-DHAVE___BUILTIN_POPCOUNTLL \
+	-DHAVE___BUILTIN_CLZ \
+	-DHAVE___BUILTIN_CLZLL \
+	-DHAVE___BUILTIN_UNREACHABLE \
 	-DHAVE_PTHREAD=1 \
 	-fvisibility=hidden \
 	-Wno-sign-compare

commit 95633d09e82116a6e502ac53d4563bca1bcc9e8f
Author: Emil Velikov <emil.l.velikov@gmail.com>
Date:   Fri Mar 27 18:57:46 2015 +0000

    android: dri/common: conditionally include drm_cflags/set __NOT_HAVE_DRM_H
    
    Otherwise we'll fail to find the drm.h header.
    
    Cc: "10.4 10.5" <mesa-stable@lists.freedesktop.org>
    Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
    (cherry picked from commit 8d90bfb724f89b04d703f869362cf2fc2a3d7567)

diff --git a/src/mesa/drivers/dri/common/Android.mk b/src/mesa/drivers/dri/common/Android.mk
index b95feb6..03ea564 100644
--- a/src/mesa/drivers/dri/common/Android.mk
+++ b/src/mesa/drivers/dri/common/Android.mk
@@ -40,6 +40,13 @@ LOCAL_C_INCLUDES := \
     $(intermediates) \
     $(MESA_DRI_C_INCLUDES)
 
+# swrast only
+ifeq ($(MESA_GPU_DRIVERS),swrast)
+LOCAL_CFLAGS := -D__NOT_HAVE_DRM_H
+else
+LOCAL_SHARED_LIBRARIES := libdrm
+endif
+
 LOCAL_SRC_FILES := $(DRI_COMMON_FILES)
 
 LOCAL_GENERATED_SOURCES := \
@@ -99,6 +106,13 @@ LOCAL_MODULE_CLASS := STATIC_LIBRARIES
 LOCAL_C_INCLUDES := \
     $(MESA_DRI_C_INCLUDES)
 
+# swrast only
+ifeq ($(MESA_GPU_DRIVERS),swrast)
+LOCAL_CFLAGS := -D__NOT_HAVE_DRM_H
+else
+LOCAL_SHARED_LIBRARIES := libdrm
+endif
+
 LOCAL_SRC_FILES := $(megadriver_stub_FILES)
 
 include $(MESA_COMMON_MK)

commit 33c6a4c018976a673df7e94df5d43ea40369f878
Author: Emil Velikov <emil.l.velikov@gmail.com>
Date:   Fri Mar 27 18:36:10 2015 +0000

    android: egl: add libsync_cflags to the build
    
    ... via local_shared_libraries. Otherwise the sync/sync.h header won't
    be found.
    
    Note: 10.5 and earlier will need similar change in st/egl.
    
    v2: Append the library to the local_shared_libraries list. (Chih-Wei)
    
    Cc: "10.4 10.5" <mesa-stable@lists.freedesktop.org>
    Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
    Reviewed-by: Chih-Wei Huang <cwhuang@linux.org.tw>
    (cherry picked from commit 2d06791f6f9e8ab37109be52e63d247bbbcb42d4)

diff --git a/src/egl/drivers/dri2/Android.mk b/src/egl/drivers/dri2/Android.mk
index d5ac8ee..d48506a 100644
--- a/src/egl/drivers/dri2/Android.mk
+++ b/src/egl/drivers/dri2/Android.mk
@@ -46,6 +46,12 @@ LOCAL_STATIC_LIBRARIES := \
 	libmesa_loader
 
 LOCAL_SHARED_LIBRARIES := libdrm
+
+ifeq ($(shell echo "$(MESA_ANDROID_VERSION) >= 4.2" | bc),1)
+LOCAL_SHARED_LIBRARIES += \
+	libsync
+endif
+
 LOCAL_MODULE := libmesa_egl_dri2
 
 include $(MESA_COMMON_MK)

commit 548fc14d362fd4ea49e0742aaaf1de04184f93d0
Author: Mauro Rossi <issor.oruam@gmail.com>
Date:   Fri Mar 27 18:20:53 2015 +0000

    android: mesa: generate the format_{un,}pack.[ch] sources
    
    Missed out with commit e1fdcddafe9(mesa: Autogenerate format_unpack.c)
    
    v2: Conditionaly print the python commands - s/@/$(hide) / (Chih-Wei)
    
    Cc: "10.5" <mesa-stable@lists.freedesktop.org>
    [Emil Velikov: Split our from a larger commit.]
    Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
    
    (cherry picked from commit 5f7081eb90bc5a25f0740314fa22e04d189238ca)

diff --git a/src/mesa/Android.gen.mk b/src/mesa/Android.gen.mk
index caae2c1..c7a4f6b 100644
--- a/src/mesa/Android.gen.mk
+++ b/src/mesa/Android.gen.mk
@@ -34,6 +34,9 @@ sources := \
 	main/enums.c \
 	main/api_exec.c \
 	main/dispatch.h \
+	main/format_pack.c \
+	main/format_unpack.c \
+	main/format_info.h \
 	main/remap_helper.h \
 	main/get_hash.h
 
@@ -124,3 +127,21 @@ format_info_deps := \
 
 $(intermediates)/main/format_info.h: $(format_info_deps)
 	@$(MESA_PYTHON2) $(FORMAT_INFO) $< > $@
+
+FORMAT_PACK := $(LOCAL_PATH)/main/format_pack.py
+format_pack_deps := \
+	$(LOCAL_PATH)/main/formats.csv \
+	$(LOCAL_PATH)/main/format_parser.py \
+	$(FORMAT_PACK)
+
+$(intermediates)/main/format_pack.c: $(format_pack_deps)
+	$(hide) $(MESA_PYTHON2) $(FORMAT_PACK) $< > $@
+
+FORMAT_UNPACK := $(LOCAL_PATH)/main/format_unpack.py
+format_unpack_deps := \
+	$(LOCAL_PATH)/main/formats.csv \
+	$(LOCAL_PATH)/main/format_parser.py \
+	$(FORMAT_UNPACK)
+
+$(intermediates)/main/format_unpack.c: $(format_unpack_deps)
+	$(hide) $(MESA_PYTHON2) $(FORMAT_UNPACK) $< > $@

commit c614fef0929e44fc627d49a4c16b623c630b2b71
Author: Emil Velikov <emil.l.velikov@gmail.com>
Date:   Fri Mar 27 16:13:50 2015 +0000

    android: add $(mesa_top)/src include to the whole of mesa
    
    Many parts of mesa already have the include with others depending on it
    but it's missing. Add it once at the top makefile and be done with it.
    
    Cc: "10.4 10.5" <mesa-stable@lists.freedesktop.org>
    Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
    Reviewed-by: Chih-Wei Huang <cwhuang@linux.org.tw>
    (cherry picked from commit 6fb801786604c270fae99c3d665dcebaa0bff3a6)

diff --git a/Android.common.mk b/Android.common.mk
index 3e6d4c3..ca62f79 100644
--- a/Android.common.mk
+++ b/Android.common.mk
@@ -31,6 +31,7 @@ endif
 endif
 
 LOCAL_C_INCLUDES += \
+	$(MESA_TOP)/src \
 	$(MESA_TOP)/include
 
 MESA_VERSION=$(shell cat $(MESA_TOP)/VERSION)
diff --git a/src/gallium/auxiliary/Android.mk b/src/gallium/auxiliary/Android.mk
index 0bc1831..c7b2634 100644
--- a/src/gallium/auxiliary/Android.mk
+++ b/src/gallium/auxiliary/Android.mk
@@ -33,8 +33,7 @@ LOCAL_SRC_FILES := \
 	$(VL_STUB_SOURCES)
 
 LOCAL_C_INCLUDES := \
-	$(GALLIUM_TOP)/auxiliary/util \
-	$(MESA_TOP)/src
+	$(GALLIUM_TOP)/auxiliary/util
 
 LOCAL_MODULE := libmesa_gallium
 
diff --git a/src/glsl/Android.mk b/src/glsl/Android.mk
index 38c2087..2ac1ffb 100644
--- a/src/glsl/Android.mk
+++ b/src/glsl/Android.mk
@@ -38,7 +38,6 @@ LOCAL_SRC_FILES := \
 	$(LIBGLSL_FILES)
 
 LOCAL_C_INCLUDES := \
-	$(MESA_TOP)/src \
 	$(MESA_TOP)/src/mapi \
 	$(MESA_TOP)/src/mesa
 
@@ -59,7 +58,6 @@ LOCAL_SRC_FILES := \
 	$(GLSL_COMPILER_CXX_FILES)
 
 LOCAL_C_INCLUDES := \
-	$(MESA_TOP)/src \
 	$(MESA_TOP)/src/mapi \
 	$(MESA_TOP)/src/mesa
 
diff --git a/src/mesa/Android.libmesa_dricore.mk b/src/mesa/Android.libmesa_dricore.mk
index e4a5267..73afcc7 100644
--- a/src/mesa/Android.libmesa_dricore.mk
+++ b/src/mesa/Android.libmesa_dricore.mk
@@ -61,7 +61,6 @@ endif
 
 LOCAL_C_INCLUDES := \
 	$(call intermediates-dir-for STATIC_LIBRARIES,libmesa_program,,) \
-	$(MESA_TOP)/src \
 	$(MESA_TOP)/src/mapi \
 	$(MESA_TOP)/src/glsl \
 	$(MESA_TOP)/src/gallium/auxiliary
diff --git a/src/mesa/Android.libmesa_glsl_utils.mk b/src/mesa/Android.libmesa_glsl_utils.mk
index a9f6ff5..b7e64c5 100644
--- a/src/mesa/Android.libmesa_glsl_utils.mk
+++ b/src/mesa/Android.libmesa_glsl_utils.mk
@@ -36,7 +36,6 @@ include $(CLEAR_VARS)
 LOCAL_MODULE := libmesa_glsl_utils
 
 LOCAL_C_INCLUDES := \
-	$(MESA_TOP)/src \
 	$(MESA_TOP)/src/glsl \
 	$(MESA_TOP)/src/mapi
 
@@ -59,7 +58,6 @@ LOCAL_IS_HOST_MODULE := true
 LOCAL_CFLAGS := -D_POSIX_C_SOURCE=199309L
 
 LOCAL_C_INCLUDES := \
-	$(MESA_TOP)/src \
 	$(MESA_TOP)/src/glsl \
 	$(MESA_TOP)/src/mapi
 
diff --git a/src/mesa/Android.libmesa_st_mesa.mk b/src/mesa/Android.libmesa_st_mesa.mk
index a08366d..fdf847a 100644
--- a/src/mesa/Android.libmesa_st_mesa.mk
+++ b/src/mesa/Android.libmesa_st_mesa.mk
@@ -55,7 +55,6 @@ LOCAL_C_INCLUDES := \
 	$(call intermediates-dir-for STATIC_LIBRARIES,libmesa_program,,) \
 	$(MESA_TOP)/src/gallium/auxiliary \
 	$(MESA_TOP)/src/gallium/include \
-	$(MESA_TOP)/src \
 	$(MESA_TOP)/src/glsl \
 	$(MESA_TOP)/src/mapi
 
diff --git a/src/mesa/drivers/dri/Android.mk b/src/mesa/drivers/dri/Android.mk
index d1c836b..e168fe0 100644
--- a/src/mesa/drivers/dri/Android.mk
+++ b/src/mesa/drivers/dri/Android.mk
@@ -35,7 +35,6 @@ MESA_DRI_CFLAGS := \
 	-DHAVE_ANDROID_PLATFORM
 
 MESA_DRI_C_INCLUDES := \
-	$(MESA_TOP)/src \
 	$(call intermediates-dir-for,STATIC_LIBRARIES,libmesa_dri_common) \
 	$(addprefix $(MESA_TOP)/, $(mesa_dri_common_INCLUDES)) \
 	external/expat/lib
diff --git a/src/mesa/program/Android.mk b/src/mesa/program/Android.mk
index a237b65..e85afe6 100644
--- a/src/mesa/program/Android.mk
+++ b/src/mesa/program/Android.mk
@@ -71,7 +71,6 @@ $(intermediates)/program/lex.yy.c: $(LOCAL_PATH)/program_lexer.l
 
 LOCAL_C_INCLUDES := \
 	$(intermediates) \
-	$(MESA_TOP)/src \
 	$(MESA_TOP)/src/mapi \
 	$(MESA_TOP)/src/mesa \
 	$(MESA_TOP)/src/glsl
diff --git a/src/util/Android.mk b/src/util/Android.mk
index 6b38cf9..1ece69b 100644
--- a/src/util/Android.mk
+++ b/src/util/Android.mk
@@ -35,8 +35,7 @@ LOCAL_SRC_FILES := \
 
 LOCAL_C_INCLUDES := \
 	$(MESA_TOP)/src/mesa \
-	$(MESA_TOP)/src/mapi \
-	$(MESA_TOP)/src
+	$(MESA_TOP)/src/mapi
 
 LOCAL_MODULE := libmesa_util
 
@@ -75,8 +74,7 @@ LOCAL_SRC_FILES := \
 
 LOCAL_C_INCLUDES := \
 	$(MESA_TOP)/src/mesa \
-	$(MESA_TOP)/src/mapi \
-	$(MESA_TOP)/src
+	$(MESA_TOP)/src/mapi
 
 LOCAL_MODULE := libmesa_util
 

commit 8ba18d75d66e3694923f04435670aef2db567798
Author: Emil Velikov <emil.l.velikov@gmail.com>
Date:   Fri Mar 27 11:40:42 2015 +0000

    android: use LOCAL_SHARED_LIBRARIES over TARGET_OUT_HEADERS
    
    ... to manage the LIBDRM*_CFLAGS. The former is the recommended approach
    by the Android build system developers while the latter has been
    depreciated for quite some time.
    
    Cc: "10.4 10.5" <mesa-stable@lists.freedesktop.org>
    Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
    (cherry picked from commit 86919352e3da1c80409fdcb67c36f29a9687b7a9)

diff --git a/src/egl/drivers/dri2/Android.mk b/src/egl/drivers/dri2/Android.mk
index f91a903..d5ac8ee 100644
--- a/src/egl/drivers/dri2/Android.mk
+++ b/src/egl/drivers/dri2/Android.mk
@@ -40,12 +40,12 @@ LOCAL_C_INCLUDES := \
 	$(MESA_TOP)/src/mapi \
 	$(MESA_TOP)/src/egl/main \
 	$(MESA_TOP)/src/loader \
-	$(TARGET_OUT_HEADERS)/libdrm \
 	$(DRM_GRALLOC_TOP)
 
 LOCAL_STATIC_LIBRARIES := \
 	libmesa_loader
 
+LOCAL_SHARED_LIBRARIES := libdrm
 LOCAL_MODULE := libmesa_egl_dri2
 
 include $(MESA_COMMON_MK)
diff --git a/src/gallium/drivers/freedreno/Android.mk b/src/gallium/drivers/freedreno/Android.mk
index 6cab31f..a6712b2 100644
--- a/src/gallium/drivers/freedreno/Android.mk
+++ b/src/gallium/drivers/freedreno/Android.mk
@@ -34,10 +34,9 @@ LOCAL_CFLAGS := \
 	-Wno-packed-bitfield-compat
 
 LOCAL_C_INCLUDES := \
-	$(LOCAL_PATH)/ir3 \
-	$(TARGET_OUT_HEADERS)/libdrm \
-	$(TARGET_OUT_HEADERS)/freedreno
+	$(LOCAL_PATH)/ir3
 
+LOCAL_SHARED_LIBRARIES := libdrm libdrm_freedreno
 LOCAL_MODULE := libmesa_pipe_freedreno
 
 include $(GALLIUM_COMMON_MK)
diff --git a/src/gallium/drivers/nouveau/Android.mk b/src/gallium/drivers/nouveau/Android.mk
index 3f6ec5b..420c8e5 100644
--- a/src/gallium/drivers/nouveau/Android.mk
+++ b/src/gallium/drivers/nouveau/Android.mk
@@ -36,9 +36,7 @@ LOCAL_SRC_FILES := \
 	$(NVC0_CODEGEN_SOURCES) \
 	$(NVC0_C_SOURCES)
 
-LOCAL_C_INCLUDES := \
-	$(TARGET_OUT_HEADERS)/libdrm
-
+LOCAL_SHARED_LIBRARIES := libdrm libdrm_nouveau
 LOCAL_MODULE := libmesa_pipe_nouveau
 
 include external/stlport/libstlport.mk
diff --git a/src/gallium/drivers/r300/Android.mk b/src/gallium/drivers/r300/Android.mk
index d3ef76d..7ff4f86 100644
--- a/src/gallium/drivers/r300/Android.mk
+++ b/src/gallium/drivers/r300/Android.mk
@@ -33,9 +33,10 @@ LOCAL_SRC_FILES := $(C_SOURCES)
 LOCAL_C_INCLUDES := \
 	$(MESA_TOP)/src/mapi \
 	$(MESA_TOP)/src/glsl \
-	$(MESA_TOP)/src/mesa \
-	$(TARGET_OUT_HEADERS)/libdrm
+	$(MESA_TOP)/src/mesa
 
+
+LOCAL_SHARED_LIBRARIES := libdrm libdrm_radeon
 LOCAL_MODULE := libmesa_pipe_r300
 
 include $(GALLIUM_COMMON_MK)
diff --git a/src/gallium/drivers/r600/Android.mk b/src/gallium/drivers/r600/Android.mk
index 3b12dd6..e935759 100644
--- a/src/gallium/drivers/r600/Android.mk
+++ b/src/gallium/drivers/r600/Android.mk
@@ -30,8 +30,7 @@ include $(CLEAR_VARS)
 
 LOCAL_SRC_FILES := $(C_SOURCES) $(CXX_SOURCES)
 
-LOCAL_C_INCLUDES := $(TARGET_OUT_HEADERS)/libdrm
-
+LOCAL_SHARED_LIBRARIES := libdrm libdrm_radeon
 LOCAL_MODULE := libmesa_pipe_r600
 
 include external/stlport/libstlport.mk
diff --git a/src/gallium/drivers/radeon/Android.mk b/src/gallium/drivers/radeon/Android.mk
index d562f4c..d615792 100644
--- a/src/gallium/drivers/radeon/Android.mk
+++ b/src/gallium/drivers/radeon/Android.mk
@@ -30,8 +30,7 @@ include $(CLEAR_VARS)
 
 LOCAL_SRC_FILES := $(C_SOURCES)
 
-LOCAL_C_INCLUDES := $(TARGET_OUT_HEADERS)/libdrm
-
+LOCAL_SHARED_LIBRARIES := libdrm libdrm_radeon
 LOCAL_MODULE := libmesa_pipe_radeon
 
 include $(GALLIUM_COMMON_MK)
diff --git a/src/gallium/drivers/radeonsi/Android.mk b/src/gallium/drivers/radeonsi/Android.mk
index 22c0fdc..57f3bef 100644
--- a/src/gallium/drivers/radeonsi/Android.mk
+++ b/src/gallium/drivers/radeonsi/Android.mk
@@ -30,8 +30,7 @@ include $(CLEAR_VARS)
 
 LOCAL_SRC_FILES := $(C_SOURCES)
 
-LOCAL_C_INCLUDES := $(TARGET_OUT_HEADERS)/libdrm
-
+LOCAL_SHARED_LIBRARIES := libdrm libdrm_radeon
 LOCAL_MODULE := libmesa_pipe_radeonsi
 
 include $(GALLIUM_COMMON_MK)
diff --git a/src/gallium/winsys/freedreno/drm/Android.mk b/src/gallium/winsys/freedreno/drm/Android.mk
index 7bd31d9..b45d3d4 100644
--- a/src/gallium/winsys/freedreno/drm/Android.mk
+++ b/src/gallium/winsys/freedreno/drm/Android.mk
@@ -27,10 +27,7 @@ include $(CLEAR_VARS)
 
 LOCAL_SRC_FILES := $(C_SOURCES)
 
-LOCAL_C_INCLUDES := \
-	$(TARGET_OUT_HEADERS)/libdrm \
-	$(TARGET_OUT_HEADERS)/freedreno
-
+LOCAL_SHARED_LIBRARIES := libdrm libdrm_freedreno
 LOCAL_MODULE := libmesa_winsys_freedreno
 
 include $(GALLIUM_COMMON_MK)
diff --git a/src/gallium/winsys/i915/drm/Android.mk b/src/gallium/winsys/i915/drm/Android.mk
index ffcf4d5..5c9107b 100644
--- a/src/gallium/winsys/i915/drm/Android.mk
+++ b/src/gallium/winsys/i915/drm/Android.mk
@@ -30,8 +30,7 @@ include $(CLEAR_VARS)
 
 LOCAL_SRC_FILES := $(C_SOURCES)
 
-LOCAL_C_INCLUDES := $(TARGET_OUT_HEADERS)/libdrm
-
+LOCAL_SHARED_LIBRARIES := libdrm libdrm_intel
 LOCAL_MODULE := libmesa_winsys_i915
 
 include $(GALLIUM_COMMON_MK)
diff --git a/src/gallium/winsys/intel/drm/Android.mk b/src/gallium/winsys/intel/drm/Android.mk
index a391883..463d315 100644
--- a/src/gallium/winsys/intel/drm/Android.mk
+++ b/src/gallium/winsys/intel/drm/Android.mk
@@ -29,8 +29,7 @@ include $(CLEAR_VARS)
 
 LOCAL_SRC_FILES := $(C_SOURCES)
 
-LOCAL_C_INCLUDES := $(TARGET_OUT_HEADERS)/libdrm
-
+LOCAL_SHARED_LIBRARIES := libdrm libdrm_intel
 LOCAL_MODULE := libmesa_winsys_intel
 
 include $(GALLIUM_COMMON_MK)
diff --git a/src/gallium/winsys/nouveau/drm/Android.mk b/src/gallium/winsys/nouveau/drm/Android.mk
index 142cc6b..2841080 100644
--- a/src/gallium/winsys/nouveau/drm/Android.mk
+++ b/src/gallium/winsys/nouveau/drm/Android.mk
@@ -30,8 +30,7 @@ include $(CLEAR_VARS)
 
 LOCAL_SRC_FILES := $(C_SOURCES)
 
-LOCAL_C_INCLUDES := $(TARGET_OUT_HEADERS)/libdrm
-
+LOCAL_SHARED_LIBRARIES := libdrm libdrm_nouveau
 LOCAL_MODULE := libmesa_winsys_nouveau
 
 include $(GALLIUM_COMMON_MK)
diff --git a/src/gallium/winsys/radeon/drm/Android.mk b/src/gallium/winsys/radeon/drm/Android.mk
index 3165ba4..eacb35f 100644
--- a/src/gallium/winsys/radeon/drm/Android.mk
+++ b/src/gallium/winsys/radeon/drm/Android.mk
@@ -30,8 +30,7 @@ include $(CLEAR_VARS)
 
 LOCAL_SRC_FILES := $(C_SOURCES)
 
-LOCAL_C_INCLUDES := $(TARGET_OUT_HEADERS)/libdrm
-
+LOCAL_SHARED_LIBRARIES := libdrm libdrm_radeon
 LOCAL_MODULE := libmesa_winsys_radeon
 
 include $(GALLIUM_COMMON_MK)
diff --git a/src/gallium/winsys/svga/drm/Android.mk b/src/gallium/winsys/svga/drm/Android.mk
index a26138e..f57225e 100644
--- a/src/gallium/winsys/svga/drm/Android.mk
+++ b/src/gallium/winsys/svga/drm/Android.mk
@@ -34,9 +34,9 @@ LOCAL_CFLAGS := -D_FILE_OFFSET_BITS=64
 
 LOCAL_C_INCLUDES := \
 	$(GALLIUM_TOP)/drivers/svga \
-	$(GALLIUM_TOP)/drivers/svga/include \
-	$(TARGET_OUT_HEADERS)/libdrm
+	$(GALLIUM_TOP)/drivers/svga/include
 
+LOCAL_SHARED_LIBRARIES := libdrm
 LOCAL_MODULE := libmesa_winsys_svga
 
 include $(GALLIUM_COMMON_MK)
diff --git a/src/loader/Android.mk b/src/loader/Android.mk
index 8daeedf..8e215de 100644
--- a/src/loader/Android.mk
+++ b/src/loader/Android.mk
@@ -37,7 +37,7 @@ LOCAL_SRC_FILES := \
 ifeq ($(MESA_GPU_DRIVERS),swrast)
 LOCAL_CFLAGS += -D__NOT_HAVE_DRM_H
 else
-LOCAL_C_INCLUDES += $(TARGET_OUT_HEADERS)/libdrm
+LOCAL_SHARED_LIBRARIES := libdrm
 endif
 
 LOCAL_MODULE := libmesa_loader
diff --git a/src/mesa/drivers/dri/Android.mk b/src/mesa/drivers/dri/Android.mk
index 935722c..d1c836b 100644
--- a/src/mesa/drivers/dri/Android.mk
+++ b/src/mesa/drivers/dri/Android.mk
@@ -38,7 +38,6 @@ MESA_DRI_C_INCLUDES := \
 	$(MESA_TOP)/src \
 	$(call intermediates-dir-for,STATIC_LIBRARIES,libmesa_dri_common) \
 	$(addprefix $(MESA_TOP)/, $(mesa_dri_common_INCLUDES)) \
-	$(TARGET_OUT_HEADERS)/libdrm \
 	external/expat/lib
 
 MESA_DRI_WHOLE_STATIC_LIBRARIES := \


Reply to: