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

mesa: Changes to 'debian-experimental'



 VERSION                                         |    2 
 debian/changelog                                |    2 
 docs/relnotes/10.5.0.html                       |  147 +++++++++++++++++++++++-
 src/gallium/auxiliary/os/os_misc.c              |    4 
 src/gallium/drivers/r600/sb/sb_sched.cpp        |    4 
 src/gallium/state_trackers/omx/vid_dec_h264.c   |    5 
 src/gallium/targets/pipe-loader/Makefile.am     |    6 
 src/glsl/opt_algebraic.cpp                      |   75 +++++++-----
 src/glx/dri_common_query_renderer.c             |   36 ++++-
 src/mapi/Makefile.am                            |    2 
 src/mesa/Android.gen.mk                         |    2 
 src/mesa/Makefile.am                            |    8 -
 src/mesa/Makefile.sources                       |    2 
 src/mesa/SConscript                             |    2 
 src/mesa/drivers/common/meta_tex_subimage.c     |   89 ++++++++------
 src/mesa/drivers/dri/common/xmlpool/Makefile.am |    2 
 src/mesa/drivers/dri/i965/gen8_depth_state.c    |   12 +
 src/mesa/main/.gitignore                        |    4 
 src/mesa/main/formats.c                         |    2 
 19 files changed, 316 insertions(+), 90 deletions(-)

New commits:
commit 7b142029bf6af89fe647f2f127e4ede3e6fb0c86
Author: Maarten Lankhorst <maarten.lankhorst@ubuntu.com>
Date:   Mon Mar 9 13:56:10 2015 +0100

    bump version

diff --git a/debian/changelog b/debian/changelog
index 29c297a..36d61ce 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-mesa (10.5.0~rc3-1) UNRELEASED; urgency=medium
+mesa (10.5.0-1) UNRELEASED; urgency=medium
 
   * New upstream release.
   * Update watch file.

commit 97357d475fc8cbb5dbe7bf17ca41f535827fb253
Author: Emil Velikov <emil.l.velikov@gmail.com>
Date:   Fri Mar 6 22:55:59 2015 +0000

    docs: Update 10.5.0 release notes
    
    Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>

diff --git a/docs/relnotes/10.5.0.html b/docs/relnotes/10.5.0.html
index 578db4f..cde8f3d 100644
--- a/docs/relnotes/10.5.0.html
+++ b/docs/relnotes/10.5.0.html
@@ -14,7 +14,7 @@
 <iframe src="../contents.html"></iframe>
 <div class="content">
 
-<h1>Mesa 10.5.0 Release Notes / TBD</h1>
+<h1>Mesa 10.5.0 Release Notes / March 06, 2015</h1>
 
 <p>
 Mesa 10.5.0 is a new development release.
@@ -55,7 +55,150 @@ Note: some of the new features are only available with certain drivers.
 
 <h2>Bug fixes</h2>
 
-TBD.
+<p>This list is likely incomplete.</p>
+
+<ul>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=10370";>Bug 10370</a> - Incorrect pixels read back if draw bitmap texture through Display list</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=45348";>Bug 45348</a> - [swrast] piglit fbo-drawbuffers-arbfp regression</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=60879";>Bug 60879</a> - [radeonsi] X11 can't start with acceleration enabled</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=67672";>Bug 67672</a> - [llvmpipe] lp_test_arit fails on old CPUs</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=77544";>Bug 77544</a> - i965: Try to use LINE instructions to perform MAD with immediate arguments</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78770";>Bug 78770</a> - [SNB bisected]Webglc conformance/textures/texture-size-limit.html fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=80568";>Bug 80568</a> - [gen4] GPU Crash During Google Chrome Operation</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82477";>Bug 82477</a> - [softpipe] piglit fp-long-alu regression</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82585";>Bug 82585</a> - geometry shader with optional out variable segfaults</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=82991";>Bug 82991</a> - Inverted bumpmap in webgl applications</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=83463";>Bug 83463</a> - [swrast] piglit glsl-vs-clamp-1 regression</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=83500";>Bug 83500</a> - si_dma_copy_tile causes GPU hangs</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=83510";>Bug 83510</a> - Graphical glitches in Unreal Engine 4</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=83908";>Bug 83908</a> - [i965] Incorrect icon colors in Steam Big Picture</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=84212";>Bug 84212</a> - [BSW]ES3-CTS.shaders.loops.do_while_dynamic_iterations.vector_counter_vertex fails and causes GPU hang</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=84651";>Bug 84651</a> - Distorted graphics or black window when running Battle.net app on Intel hardware via wine</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=84777";>Bug 84777</a> - [BSW]Piglit spec_glsl-1.50_execution_geometry-basic fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=85367";>Bug 85367</a> - [gen4] GPU hang in glmark-es2</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=85467";>Bug 85467</a> - [llvmpipe] piglit gl-1.0-dlist-beginend failure with llvm-3.6.0svn</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=85529";>Bug 85529</a> - Surfaces not drawn in Unvanquished</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=85647";>Bug 85647</a> - Random radeonsi crashes with mesa 10.3.x</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=85696";>Bug 85696</a> - r600g+nine: Bioshock shader failure after 7b1c0cbc90d456384b0950ad21faa3c61a6b43ff</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=86089";>Bug 86089</a> - [r600g][mesa 10.4.0-dev] shader failure - r600_sb::bc_finalizer::cf_peephole() when starting Second Life</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=86618";>Bug 86618</a> - [NV96] neg modifiers not working in MIN and MAX operations</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=86760";>Bug 86760</a> - mesa doesn't build: recipe for target 'r600_llvm.lo' failed</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=86764";>Bug 86764</a> - [SNB+ Bisected]Piglit glean/pointSprite fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=86788";>Bug 86788</a> - (bisected) 32bit UrbanTerror 4.1 timedemo sse4.1 segfault...</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=86811";>Bug 86811</a> - [BDW/BSW Bisected]Piglit spec_arb_shading_language_packing_execution_built-in-functions_vs-unpackSnorm4x8 fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=86837";>Bug 86837</a> - kodi segfault since auxiliary/vl: rework the build of the VL code</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=86939";>Bug 86939</a> - test_vf_float_conversions.cpp:63:12: error: expected primary-expression before ‘union’</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=86944";>Bug 86944</a> - glsl_parser_extras.cpp&quot;, line 1455: Error: Badly formed expression. (Oracle Studio)</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=86958";>Bug 86958</a> - lp_bld_misc.cpp:503:40: error: no matching function for call to ‘llvm::EngineBuilder::setMCJITMemoryManager(ShaderMemoryManager*&amp;)’</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=86969";>Bug 86969</a> - _drm_intel_gem_bo_references() function takes half the CPU with Witcher2 game</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=87076";>Bug 87076</a> - Dead Island needs allow_glsl_extension_directive_midshader</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=87516";>Bug 87516</a> - glProgramBinary violates spec</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=87619";>Bug 87619</a> - Changes to state such as render targets change fragment shader without marking it dirty.</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=87658";>Bug 87658</a> - [llvmpipe] SEGV in sse2_has_daz on ancient Pentium4-M</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=87694";>Bug 87694</a> - [SNB] Crash in brw_begin_transform_feedback</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=87886";>Bug 87886</a> - constant fps drops with Intel and Radeon</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=87887";>Bug 87887</a> - [i965 Bisected]ES2-CTS.gtf.GL.cos.cos_float_vert_xvary fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=87913";>Bug 87913</a> - CPU cacheline size of 0 can be returned by CPUID leaf 0x80000006 in some virtual machines</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88079";>Bug 88079</a> - dEQP-GLES3.functional.fbo.completeness.renderable.renderbuffer.color0 tests fail due to enabling of GL_RGB and GL_RGBA</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88170";>Bug 88170</a> - 32 bits opengl apps crash with latest llvm 3.6 git / mesa git / radeonsi</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88219";>Bug 88219</a> - include/c11/threads_posix.h:197: undefined reference to `pthread_mutex_lock'</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88227";>Bug 88227</a> - Radeonsi: High GTT usage in Prison Architect large map</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88248";>Bug 88248</a> - Calling glClear while there is an occlusion query in progress messes up the results</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88335";>Bug 88335</a> - format_pack.c:9567:22: error: expected ')'</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88385";>Bug 88385</a> - [SNB+ Bisected]Ogles3conform ES3-CTS.gtf.GL3Tests.packed_pixels.packed_pixels core dumped</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88467";>Bug 88467</a> - nir.c:140: error: ‘nir_src’ has no member named ‘ssa’</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88478";>Bug 88478</a> - #error &quot;&lt;malloc.h&gt; has been replaced by &lt;stdlib.h&gt;&quot;</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88519";>Bug 88519</a> - sha1.c:210:22: error: 'grcy_md_hd_t' undeclared (first use in this function)</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88523";>Bug 88523</a> - sha1.c:37: error: 'SHA1_CTX' undeclared (first use in this function)</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88561";>Bug 88561</a> - [radeonsi][regression,bisected] Depth test/buffer issues in Portal</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88658";>Bug 88658</a> - (bisected) Slow video playback on Kabini</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88662";>Bug 88662</a> - unaligned access to gl_dlist_node</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88783";>Bug 88783</a> - FTBFS: Clover: src/gallium/state_trackers/clover/llvm/invocation.cpp:335:49: error: no matching function for call to 'llvm::TargetLibraryInfo::TargetLibraryInfo(llvm::Triple)</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88792";>Bug 88792</a> - [BDW/BSW Bisected]Piglit spec_ARB_pixel_buffer_object_pbo-read-argb8888 fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88806";>Bug 88806</a> - nir/nir_constant_expressions.c:2754:15: error: controlling expression type 'unsigned int' not compatible with any generic association type</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88841";>Bug 88841</a> - [SNB/IVB/HSW/BDW Bisected]Piglit spec_EGL_NOK_texture_from_pixmap_basic fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88852";>Bug 88852</a> - macros.h(181) : error C2143: syntax error : missing '{' before 'enum [tag]'</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88905";>Bug 88905</a> - [SNB+ Bisected]Ogles3conform ES3-CTS.gtf.GL3Tests.packed_pixels.packed_pixels fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88930";>Bug 88930</a> - [osmesa] osbuffer-&gt;textures should be indexed by attachment type</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=88962";>Bug 88962</a> - [osmesa] Crash on postprocessing if z buffer is NULL</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89032";>Bug 89032</a> - [BDW/BSW/SKL Bisected]Piglit spec_OpenGL_1.1_infinite-spot-light fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89037";>Bug 89037</a> - [SKL]Piglit spec_EXT_texture_array_copyteximage_1D_ARRAY_samples=2 sporadically causes GPU hang</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89068";>Bug 89068</a> - glTexImage2D regression by texstore_rgba switch to _mesa_format_convert</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89069";>Bug 89069</a> - Lack of grass in The Talos Principle on radeonsi (native\wine\nine)</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=89180";>Bug 89180</a> - [IVB regression] Rendering issues in Mass Effect through VMware Workstation</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=86330";>Bug 86330</a> - lp_bld_debug.cpp:112: multiple definition of `raw_debug_ostream::write_impl(char const*, unsigned long)'</li>
+
+</ul>
+
 
 <h2>Changes</h2>
 

commit c899144da6fddd97e4f865600cd8ebfda8112664
Author: Emil Velikov <emil.l.velikov@gmail.com>
Date:   Fri Mar 6 22:46:49 2015 +0000

    Bump version to 10.5.0 (final)
    
    Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>

diff --git a/VERSION b/VERSION
index a42f4fc..2cf514e 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-10.5.0-rc3
+10.5.0

commit b973acc0937a5fc10cdff6429757a55ad3b4f13a
Author: Emil Velikov <emil.l.velikov@gmail.com>
Date:   Mon Mar 2 13:24:55 2015 +0000

    xmlpool: make sure we ship options.h
    
    The header is included in ../xmlpool.h. With the latter of which used
    directly in a number of places in mesa.
    Note that we can also add it (alongside t_option.h) to noinst_HEADERS,
    but neither solution fixes the issue that brough us here - namely:
    Do not regenerate the headers, if it already exists.
    
    Cc: "10.5" <mesa-stable@lists.freedesktop.org>
    Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>

diff --git a/src/mesa/drivers/dri/common/xmlpool/Makefile.am b/src/mesa/drivers/dri/common/xmlpool/Makefile.am
index da7d034..5557716 100644
--- a/src/mesa/drivers/dri/common/xmlpool/Makefile.am
+++ b/src/mesa/drivers/dri/common/xmlpool/Makefile.am
@@ -52,7 +52,7 @@ POT=xmlpool.pot
 
 .PHONY: all clean pot po mo
 
-EXTRA_DIST = gen_xmlpool.py t_options.h $(POS) SConscript
+EXTRA_DIST = gen_xmlpool.py options.h t_options.h $(POS) SConscript
 BUILT_SOURCES = options.h
 CLEANFILES = $(MOS) options.h
 

commit 90411b56f6bc817e229d8801ac0adad6d4e3fb7a
Author: Emil Velikov <emil.l.velikov@gmail.com>
Date:   Mon Mar 2 14:33:50 2015 +0000

    mapi: fix shared-glapi dependency tracking
    
    I.e. add shared-glapi/glapi_mapi_tmp.h to the SOURCES list. Otherwise
    there will be no knowledge that the file is required by others for the
    build. Thus autotools won't pick it up for the distribution tarball.
    
    Cc: "10.5" <mesa-stable@lists.freedesktop.org>
    Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>

diff --git a/src/mapi/Makefile.am b/src/mapi/Makefile.am
index 6794682..ab82e00 100644
--- a/src/mapi/Makefile.am
+++ b/src/mapi/Makefile.am
@@ -66,7 +66,7 @@ if HAVE_SHARED_GLAPI
 BUILT_SOURCES += shared-glapi/glapi_mapi_tmp.h
 
 lib_LTLIBRARIES += shared-glapi/libglapi.la
-shared_glapi_libglapi_la_SOURCES = $(MAPI_GLAPI_FILES)
+shared_glapi_libglapi_la_SOURCES = $(MAPI_GLAPI_FILES) shared-glapi/glapi_mapi_tmp.h
 shared_glapi_libglapi_la_CPPFLAGS = \
 	$(AM_CPPFLAGS) \
 	-DMAPI_MODE_GLAPI \

commit 19422e433c5d1b72f2b72ea9a74cf991fd6cada9
Author: Emil Velikov <emil.l.velikov@gmail.com>
Date:   Mon Mar 2 14:28:41 2015 +0000

    mesa: drop Makefile from get_hash.h dependency list
    
    Not required. Additionally this had the side effect of generating the
    file, despite it's existence.
    
    Cc: "10.5" <mesa-stable@lists.freedesktop.org>
    Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>

diff --git a/src/mesa/Makefile.am b/src/mesa/Makefile.am
index 17697bf..c1c466a 100644
--- a/src/mesa/Makefile.am
+++ b/src/mesa/Makefile.am
@@ -94,7 +94,7 @@ CLEANFILES = \
 GET_HASH_GEN = main/get_hash_generator.py
 
 main/get_hash.h: ../mapi/glapi/gen/gl_and_es_API.xml main/get_hash_params.py 	\
-		 $(GET_HASH_GEN) Makefile
+		 $(GET_HASH_GEN)
 	$(AM_V_GEN)set -e;						\
 	$(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/$(GET_HASH_GEN)		\
 		-f $< > $@.tmp;						\

commit 1b00847bb2393285be514c0844e7e15a70fba284
Author: Emil Velikov <emil.l.velikov@gmail.com>
Date:   Mon Mar 2 13:10:15 2015 +0000

    mesa: fix dependency tracking of generated sources
    
    Some of the files generated were not in the SOURCES variable, thus
    although generated prior to compilation the dependency tracking was
    incomplete. The latter of which resulted in the files missing from the
    distribution tarball.
    
    Cc: "10.5" <mesa-stable@lists.freedesktop.org>
    Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>

diff --git a/src/mesa/Makefile.sources b/src/mesa/Makefile.sources
index b5912b7..629f4a6 100644
--- a/src/mesa/Makefile.sources
+++ b/src/mesa/Makefile.sources
@@ -87,6 +87,7 @@ MAIN_FILES = \
 	main/ffvertex_prog.h \
 	main/fog.c \
 	main/fog.h \
+	main/format_info.h \
 	main/format_pack.h \
 	main/format_pack.c \
 	main/format_unpack.h \
@@ -101,6 +102,7 @@ MAIN_FILES = \
 	main/framebuffer.h \
 	main/get.c \
 	main/get.h \
+	main/get_hash.h \
 	main/genmipmap.c \
 	main/genmipmap.h \
 	main/getstring.c \

commit a0264d4076a12380320adfda3b5172de7b314e27
Author: Emil Velikov <emil.l.velikov@gmail.com>
Date:   Mon Mar 2 13:04:37 2015 +0000

    mesa: rename format_info.c to format_info.h
    
    The file is auto-generated, and #included by formats.c. Let's rename it
    to reflect the latter. This will also help up fix the dependency
    tracking by adding it to the _SOURCES variable, without the side effect
    of it being compiled (twice).
    
    Cc: "10.4, 10.5" <mesa-stable@lists.freedesktop.org>
    Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>

diff --git a/src/mesa/Android.gen.mk b/src/mesa/Android.gen.mk
index c7b7f7e..caae2c1 100644
--- a/src/mesa/Android.gen.mk
+++ b/src/mesa/Android.gen.mk
@@ -122,5 +122,5 @@ format_info_deps := \
 	$(LOCAL_PATH)/main/format_parser.py \
 	$(FORMAT_INFO)
 
-$(intermediates)/main/format_info.c: $(format_info_deps)
+$(intermediates)/main/format_info.h: $(format_info_deps)
 	@$(MESA_PYTHON2) $(FORMAT_INFO) $< > $@
diff --git a/src/mesa/Makefile.am b/src/mesa/Makefile.am
index b6cb8f1..17697bf 100644
--- a/src/mesa/Makefile.am
+++ b/src/mesa/Makefile.am
@@ -80,7 +80,7 @@ EXTRA_DIST = \
 
 BUILT_SOURCES = \
 	main/get_hash.h \
-        main/format_info.c \
+	main/format_info.h \
 	main/git_sha1.h \
 	main/format_pack.c \
 	main/format_unpack.c \
@@ -100,7 +100,7 @@ main/get_hash.h: ../mapi/glapi/gen/gl_and_es_API.xml main/get_hash_params.py 	\
 		-f $< > $@.tmp;						\
 	mv $@.tmp $@;
 
-main/format_info.c: main/formats.csv                                    \
+main/format_info.h: main/formats.csv                                    \
                     main/format_parser.py main/format_info.py
 	$(AM_V_GEN)set -e;						\
 	$(PYTHON2) $(PYTHON_FLAGS) $(srcdir)/main/format_info.py        \
@@ -123,7 +123,7 @@ main/format_unpack.c: main/format_unpack.py main/formats.csv	\
 			$(srcdir)/main/formats.csv			\
 		| $(INDENT) $(INDENT_FLAGS) > $@;
 
-main/formats.c: main/format_info.c
+main/formats.c: main/format_info.h
 
 noinst_LTLIBRARIES = $(ARCH_LIBS)
 if NEED_LIBMESA
diff --git a/src/mesa/SConscript b/src/mesa/SConscript
index 1ad5f26..4d2ed62 100644
--- a/src/mesa/SConscript
+++ b/src/mesa/SConscript
@@ -60,7 +60,7 @@ get_hash_header = env.CodeGenerate(
 )
 
 format_info = env.CodeGenerate(
-      target = 'main/format_info.c',
+      target = 'main/format_info.h',
       script = 'main/format_info.py',
       source = 'main/formats.csv',
       command = python_cmd + ' $SCRIPT ' + ' $SOURCE > $TARGET'
diff --git a/src/mesa/main/formats.c b/src/mesa/main/formats.c
index 958d6f2..a5aa793 100644
--- a/src/mesa/main/formats.c
+++ b/src/mesa/main/formats.c
@@ -75,7 +75,7 @@ struct gl_format_info
    mesa_array_format ArrayFormat;
 };
 
-#include "format_info.c"
+#include "format_info.h"
 
 static const struct gl_format_info *
 _mesa_get_format_info(mesa_format format)

commit c7d49878972ec4666d7287f7f8781bfdf2a65dd4
Author: Emil Velikov <emil.l.velikov@gmail.com>
Date:   Mon Mar 2 13:00:55 2015 +0000

    mesa/main: update .gitignore
    
    Drop the no longer present get_es{1,2}.c from the list.
    
    Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>

diff --git a/src/mesa/main/.gitignore b/src/mesa/main/.gitignore
index e65472d..8256ad7 100644
--- a/src/mesa/main/.gitignore
+++ b/src/mesa/main/.gitignore
@@ -1,13 +1,11 @@
 api_exec.c
 dispatch.h
 enums.c
-get_es1.c
-get_es2.c
 git_sha1.h
 git_sha1.h.tmp
 remap_helper.h
 get_hash.h
 get_hash.h.tmp
-format_info.c
+format_info.h
 format_pack.c
 format_unpack.c

commit b34001d51ac681ed8821aa2da19f367846c8fd47
Author: Maarten Lankhorst <maarten.lankhorst@ubuntu.com>
Date:   Mon Mar 2 11:43:23 2015 +0100

    bump changelog

diff --git a/debian/changelog b/debian/changelog
index 70bb0e3..29c297a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-mesa (10.5.0~rc2-1) UNRELEASED; urgency=medium
+mesa (10.5.0~rc3-1) UNRELEASED; urgency=medium
 
   * New upstream release.
   * Update watch file.

commit c32d83528189be988275c9ccbd3bbb2e48ee4362
Author: Emil Velikov <emil.l.velikov@gmail.com>
Date:   Sat Feb 28 00:04:30 2015 +0000

    Increment version to 10.5.0-rc3
    
    Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>

diff --git a/VERSION b/VERSION
index 0ae2dec..a42f4fc 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-10.5.0-rc2
+10.5.0-rc3

commit 54cc3cdff4b514cc74dea34bf0824726631e5d64
Author: Jonathan Gray <jsg@jsg.id.au>
Date:   Sun Feb 22 19:19:25 2015 +1100

    auxilary/os: correct sysctl use in os_get_total_physical_memory()
    
    The length argument passed to sysctl was the size of the pointer
    not the type.  The result of this is sysctl calls would fail on
    32 bit BSD/Mac OS X.
    
    Additionally the wrong pointer was passed as an argument to store
    the result of the sysctl call.
    
    Cc: "10.4, 10.5" <mesa-stable@lists.freedesktop.org>
    Signed-off-by: Jonathan Gray <jsg@jsg.id.au>
    Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
    (cherry picked from commit 7983a3d2e06b0bc16c1a16bddccc7f14fe1f132c)

diff --git a/src/gallium/auxiliary/os/os_misc.c b/src/gallium/auxiliary/os/os_misc.c
index ebf033c..c46078b 100644
--- a/src/gallium/auxiliary/os/os_misc.c
+++ b/src/gallium/auxiliary/os/os_misc.c
@@ -118,7 +118,7 @@ os_get_total_physical_memory(uint64_t *size)
    *size = phys_pages * page_size;
    return (phys_pages > 0 && page_size > 0);
 #elif defined(PIPE_OS_APPLE) || defined(PIPE_OS_BSD)
-   size_t len = sizeof(size);
+   size_t len = sizeof(*size);
    int mib[2];
 
    mib[0] = CTL_HW;
@@ -134,7 +134,7 @@ os_get_total_physical_memory(uint64_t *size)
 #error Unsupported *BSD
 #endif
 
-   return (sysctl(mib, 2, &size, &len, NULL, 0) == 0);
+   return (sysctl(mib, 2, size, &len, NULL, 0) == 0);
 #elif defined(PIPE_OS_HAIKU)
    system_info info;
    status_t ret;

commit c0f425bb813729ac9b4589c8a717ed27ba5998b9
Author: Dave Airlie <airlied@redhat.com>
Date:   Wed Feb 18 10:13:20 2015 +1000

    r600g/sb: treat undefined values like constants
    
    When we schedule an instructions with undefined value, we
    eventually will use 0, which is a constant, however sb wasn't
    taking this into account and creating ops with illegal scalar
    swizzles.
    
    this replaces my fix for op3 in t slots.
    
    Reviewed-by: Glenn Kennard <glenn.kennard@gmail.com>
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    (cherry picked from commit e8e4437ed0660b3f1d1912f53d997cf5e25f486d)

diff --git a/src/gallium/drivers/r600/sb/sb_sched.cpp b/src/gallium/drivers/r600/sb/sb_sched.cpp
index 4fbdc4f..63e7464 100644
--- a/src/gallium/drivers/r600/sb/sb_sched.cpp
+++ b/src/gallium/drivers/r600/sb/sb_sched.cpp
@@ -266,7 +266,7 @@ bool rp_gpr_tracker::try_reserve(alu_node* n) {
 
 	for (i = 0; i < nsrc; ++i) {
 		value *v = n->src[i];
-		if (v->is_readonly()) {
+		if (v->is_readonly() || v->is_undef()) {
 			const_count++;
 			if (trans && const_count == 3)
 				break;
@@ -295,7 +295,7 @@ bool rp_gpr_tracker::try_reserve(alu_node* n) {
 	if (need_unreserve && i--) {
 		do {
 			value *v = n->src[i];
-			if (!v->is_readonly()) {
+			if (!v->is_readonly() && !v->is_undef()) {
 			if (i == 1 && opt)
 				continue;
 			unreserve(bs_cycle(trans, bs, i), n->bc.src[i].sel,

commit 7c448551eb246c2f5eb836e372f131dd2dd147ba
Author: Neil Roberts <neil@linux.intel.com>
Date:   Mon Feb 2 17:47:23 2015 +0000

    i965/skl: Implement WaDisable1DDepthStencil
    
    Skylake+ doesn't support setting a depth buffer to a 1D surface but it
    does allow pretending it's a 2D texture with a height of 1 instead.
    
    This fixes the GL_DEPTH_COMPONENT_* tests of the copyteximage piglit
    test (and also seems to avoid a subsequent GPU hang).
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89037
    Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
    (cherry picked from commit 5b29b2922afe2b8167a589fc2896a071fc85b693)
    Nominated-by: Ian Romanick <idr@freedesktop.org>

diff --git a/src/mesa/drivers/dri/i965/gen8_depth_state.c b/src/mesa/drivers/dri/i965/gen8_depth_state.c
index e428089..b4eb6e1 100644
--- a/src/mesa/drivers/dri/i965/gen8_depth_state.c
+++ b/src/mesa/drivers/dri/i965/gen8_depth_state.c
@@ -190,6 +190,18 @@ gen8_emit_depth_stencil_hiz(struct brw_context *brw,
    case GL_TEXTURE_3D:
       assert(mt);
       depth = MAX2(mt->logical_depth0, 1);
+      surftype = translate_tex_target(gl_target);
+      break;
+   case GL_TEXTURE_1D_ARRAY:
+   case GL_TEXTURE_1D:
+      if (brw->gen >= 9) {
+         /* WaDisable1DDepthStencil. Skylake+ doesn't support 1D depth
+          * textures but it does allow pretending it's a 2D texture
+          * instead.
+          */
+         surftype = BRW_SURFACE_2D;
+         break;
+      }
       /* fallthrough */
    default:
       surftype = translate_tex_target(gl_target);

commit 3e54be2e8ad2918a3371f2a33b6c18271b46020b
Author: Tom Stellard <thomas.stellard@amd.com>
Date:   Tue Feb 24 19:43:43 2015 -0500

    pipe-loader: Fix build with dri drivers enabled, and vl state trackers disabled
    
    Configure arguments:
    
    ./configure --disable-dri3 --disable-xvmc --enable-opencl
                --with-gallium-drivers=r300,r600,radeonsi
                --with-egl-platforms=drm
    
    Build error:
    
    make[3]: *** No rule to make target
    `../../../../src/gallium/auxiliary/libgalliumvlwinsys.la', needed by
    `pipe_r300.la'.  Stop.
    
    Cc: "10.5" <mesa-stable@lists.freedestkop.org>
    Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
    (cherry picked from commit ed07255149d7cffac07615e946289b3d683faa4b)

diff --git a/src/gallium/targets/pipe-loader/Makefile.am b/src/gallium/targets/pipe-loader/Makefile.am
index 94658f8..fe40f5b 100644
--- a/src/gallium/targets/pipe-loader/Makefile.am
+++ b/src/gallium/targets/pipe-loader/Makefile.am
@@ -40,13 +40,17 @@ PIPE_LIBS =
 
 if NEED_GALLIUM_VL
 PIPE_LIBS += \
-	$(top_builddir)/src/gallium/auxiliary/libgalliumvlwinsys.la \
 	$(top_builddir)/src/gallium/auxiliary/libgalliumvl.la
 else
 PIPE_LIBS += \
 	$(top_builddir)/src/gallium/auxiliary/libgalliumvl_stub.la
 endif
 
+if NEED_GALLIUM_VL_WINSYS
+PIPE_LIBS+= \
+	$(top_builddir)/src/gallium/auxiliary/libgalliumvlwinsys.la
+endif
+
 PIPE_LIBS += \
 	$(top_builddir)/src/gallium/auxiliary/libgallium.la \
 	$(top_builddir)/src/util/libmesautil.la \

commit 6f52686d7783f20264932419fe133626c16646cc
Author: Matt Turner <mattst88@gmail.com>
Date:   Tue Feb 24 10:41:52 2015 -0800

    glsl: Rewrite and fix min/max to saturate optimization.
    
    There were some bugs, and the code was really difficult to follow. We
    would optimize
    
       min(max(x, b), 1.0) into max(sat(x), b)
    
    but not pay attention to the order of min/max and also do
    
       max(min(x, b), 1.0) into max(sat(x), b)
    
    Corrects four shaders from Champions of Regnum that do
    
       min(max(x, 1), 10)
    
    and corrects rendering of Mass Effect under VMware Workstation.
    
    Cc: "10.4 10.5" <mesa-stable@lists.freedesktop.org>
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89180
    Reviewed-by: Abdiel Janulgue <abdiel.janulgue@linux.intel.com>
    Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
    (cherry picked from commit cb25087c7bd5f1ad2515647278b32d3f07803f77)

diff --git a/src/glsl/opt_algebraic.cpp b/src/glsl/opt_algebraic.cpp
index c6f4a9c..fae58c7 100644
--- a/src/glsl/opt_algebraic.cpp
+++ b/src/glsl/opt_algebraic.cpp
@@ -696,48 +696,65 @@ ir_algebraic_visitor::handle_expression(ir_expression *ir)
        * a saturate operation
        */
       for (int op = 0; op < 2; op++) {
-         ir_expression *minmax = op_expr[op];
+         ir_expression *inner_expr = op_expr[op];
          ir_constant *outer_const = op_const[1 - op];
          ir_expression_operation op_cond = (ir->operation == ir_binop_max) ?
             ir_binop_min : ir_binop_max;
 
-         if (!minmax || !outer_const || (minmax->operation != op_cond))
+         if (!inner_expr || !outer_const || (inner_expr->operation != op_cond))
             continue;
 
+         /* One of these has to be a constant */
+         if (!inner_expr->operands[0]->as_constant() &&
+             !inner_expr->operands[1]->as_constant())
+            break;
+
          /* Found a min(max) combination. Now try to see if its operands
           * meet our conditions that we can do just a single saturate operation
           */
          for (int minmax_op = 0; minmax_op < 2; minmax_op++) {
-            ir_rvalue *inner_val_a = minmax->operands[minmax_op];
-            ir_rvalue *inner_val_b = minmax->operands[1 - minmax_op];
+            ir_rvalue *x = inner_expr->operands[minmax_op];
+            ir_rvalue *y = inner_expr->operands[1 - minmax_op];
 
-            if (!inner_val_a || !inner_val_b)
+            ir_constant *inner_const = y->as_constant();
+            if (!inner_const)
                continue;
 
-            /* Found a {min|max} ({max|min} (x, 0.0), 1.0) operation and its variations */
-            if ((outer_const->is_one() && inner_val_a->is_zero()) ||
-                (inner_val_a->is_one() && outer_const->is_zero()))
-               return saturate(inner_val_b);
-
-            /* Found a {min|max} ({max|min} (x, 0.0), b) where b < 1.0
-             * and its variations
-             */
-            if (is_less_than_one(outer_const) && inner_val_b->is_zero())
-               return expr(ir_binop_min, saturate(inner_val_a), outer_const);
-
-            if (!inner_val_b->as_constant())
-               continue;
-
-            if (is_less_than_one(inner_val_b->as_constant()) && outer_const->is_zero())
-               return expr(ir_binop_min, saturate(inner_val_a), inner_val_b);
-
-            /* Found a {min|max} ({max|min} (x, b), 1.0), where b > 0.0
-             * and its variations
-             */
-            if (outer_const->is_one() && is_greater_than_zero(inner_val_b->as_constant()))
-               return expr(ir_binop_max, saturate(inner_val_a), inner_val_b);
-            if (inner_val_b->as_constant()->is_one() && is_greater_than_zero(outer_const))
-               return expr(ir_binop_max, saturate(inner_val_a), outer_const);
+            /* min(max(x, 0.0), 1.0) is sat(x) */
+            if (ir->operation == ir_binop_min &&
+                inner_const->is_zero() &&
+                outer_const->is_one())
+               return saturate(x);
+
+            /* max(min(x, 1.0), 0.0) is sat(x) */
+            if (ir->operation == ir_binop_max &&
+                inner_const->is_one() &&
+                outer_const->is_zero())
+               return saturate(x);
+
+            /* min(max(x, 0.0), b) where b < 1.0 is sat(min(x, b)) */
+            if (ir->operation == ir_binop_min &&
+                inner_const->is_zero() &&
+                is_less_than_one(outer_const))
+               return saturate(expr(ir_binop_min, x, outer_const));
+
+            /* max(min(x, b), 0.0) where b < 1.0 is sat(min(x, b)) */
+            if (ir->operation == ir_binop_max &&
+                is_less_than_one(inner_const) &&
+                outer_const->is_zero())
+               return saturate(expr(ir_binop_min, x, inner_const));
+
+            /* max(min(x, 1.0), b) where b > 0.0 is sat(max(x, b)) */
+            if (ir->operation == ir_binop_max &&
+                inner_const->is_one() &&
+                is_greater_than_zero(outer_const))
+               return saturate(expr(ir_binop_max, x, outer_const));
+
+            /* min(max(x, b), 1.0) where b > 0.0 is sat(max(x, b)) */
+            if (ir->operation == ir_binop_min &&
+                is_greater_than_zero(inner_const) &&
+                outer_const->is_one())
+               return saturate(expr(ir_binop_max, x, inner_const));
          }
       }
 

commit 1527f569e564a7ce2595a0fca9c955c2fd89f0d7
Author: Andreas Boll <andreas.boll.dev@gmail.com>
Date:   Tue Feb 24 20:01:30 2015 +0100

    glx: Fix returned values of GLX_RENDERER_PREFERRED_PROFILE_MESA
    
    If the renderer supports the core profile the query returned incorrectly
    0x8 as value, because it was using (1U << __DRI_API_OPENGL_CORE) for the
    returned value.
    
    The same happened with the compatibility profile. It returned 0x1
    (1U << __DRI_API_OPENGL) instead of 0x2.
    
    Internal DRI defines:
       dri_interface.h: #define __DRI_API_OPENGL       0
       dri_interface.h: #define __DRI_API_OPENGL_CORE  3
    
    Those two bits are supposed for internal usage only and should be
    translated to GLX_CONTEXT_CORE_PROFILE_BIT_ARB (0x1) for a preferred
    core context profile and GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB (0x2)
    for a preferred compatibility context profile.
    
    This patch implements the above translation in the glx module.
    
    v2: Fix the incorrect behavior in the glx module
    
    Cc: "10.3 10.4 10.5" <mesa-stable@lists.freedesktop.org>
    Signed-off-by: Andreas Boll <andreas.boll.dev@gmail.com>
    Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
    (cherry picked from commit 6d164f65c5a794164d07bc66c1f8f87280514e8c)

diff --git a/src/glx/dri_common_query_renderer.c b/src/glx/dri_common_query_renderer.c
index d598b12..b3e107d 100644
--- a/src/glx/dri_common_query_renderer.c
+++ b/src/glx/dri_common_query_renderer.c
@@ -65,10 +65,23 @@ dri2_convert_glx_query_renderer_attribs(int attribute)
    return -1;
 }
 
+/* Convert internal dri context profile bits into GLX context profile bits */
+static inline void
+dri_convert_context_profile_bits(int attribute, unsigned int *value)
+{
+   if (attribute == GLX_RENDERER_PREFERRED_PROFILE_MESA) {
+      if (value[0] == (1U << __DRI_API_OPENGL_CORE))
+         value[0] = GLX_CONTEXT_CORE_PROFILE_BIT_ARB;
+      else if (value[0] == (1U << __DRI_API_OPENGL))
+         value[0] = GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB;
+   }
+}
+
 _X_HIDDEN int
 dri2_query_renderer_integer(struct glx_screen *base, int attribute,
                             unsigned int *value)
 {
+   int ret;
    struct dri2_screen *const psc = (struct dri2_screen *) base;
 
    /* Even though there are invalid values (and
@@ -81,8 +94,11 @@ dri2_query_renderer_integer(struct glx_screen *base, int attribute,
    if (psc->rendererQuery == NULL)
       return -1;
 
-   return psc->rendererQuery->queryInteger(psc->driScreen, dri_attribute,
-                                           value);
+   ret = psc->rendererQuery->queryInteger(psc->driScreen, dri_attribute,
+                                          value);
+   dri_convert_context_profile_bits(attribute, value);
+
+   return ret;
 }
 
 _X_HIDDEN int
@@ -108,6 +124,7 @@ _X_HIDDEN int
 dri3_query_renderer_integer(struct glx_screen *base, int attribute,
                             unsigned int *value)
 {
+   int ret;
    struct dri3_screen *const psc = (struct dri3_screen *) base;
 
    /* Even though there are invalid values (and
@@ -120,8 +137,11 @@ dri3_query_renderer_integer(struct glx_screen *base, int attribute,
    if (psc->rendererQuery == NULL)
       return -1;
 
-   return psc->rendererQuery->queryInteger(psc->driScreen, dri_attribute,
-                                           value);
+   ret = psc->rendererQuery->queryInteger(psc->driScreen, dri_attribute,
+                                          value);
+   dri_convert_context_profile_bits(attribute, value);
+
+   return ret;
 }
 
 _X_HIDDEN int
@@ -147,6 +167,7 @@ _X_HIDDEN int
 drisw_query_renderer_integer(struct glx_screen *base, int attribute,
                              unsigned int *value)
 {
+   int ret;
    struct drisw_screen *const psc = (struct drisw_screen *) base;
 
    /* Even though there are invalid values (and
@@ -159,8 +180,11 @@ drisw_query_renderer_integer(struct glx_screen *base, int attribute,
    if (psc->rendererQuery == NULL)
       return -1;
 
-   return psc->rendererQuery->queryInteger(psc->driScreen, dri_attribute,
-                                           value);
+   ret = psc->rendererQuery->queryInteger(psc->driScreen, dri_attribute,
+                                          value);
+   dri_convert_context_profile_bits(attribute, value);
+
+   return ret;
 }
 
 _X_HIDDEN int

commit dfbaa8a8436be43a7889366ee87daa7b173eedd6
Author: Laura Ekstrand <laura@jlekstrand.net>
Date:   Wed Feb 18 17:17:38 2015 -0800

    common: Fix PBOs for 1D_ARRAY.
    
    Corrects the way that _mesa_meta_pbo_TexSubImage and
    _mesa_meta_pbo_GetTexSubImage handle 1D_ARRAY textures.  Fixes a failure in
    the Piglit arb_direct_state_access/gettextureimage-targets test.
    
    Reviewed-by: Jason Ekstrand <jason.ekstrand@intel.com>
    Tested-by: Laura Ekstrand <laura@jlekstrand.net>
    
    Cc: "10.4, 10.5" <mesa-stable@lists.freedesktop.org>
    (cherry picked from commit 546aba143d13ba3f993ead4cc30b2404abfc0202)

diff --git a/src/mesa/drivers/common/meta_tex_subimage.c b/src/mesa/drivers/common/meta_tex_subimage.c
index b659426..ffbbacd 100644
--- a/src/mesa/drivers/common/meta_tex_subimage.c
+++ b/src/mesa/drivers/common/meta_tex_subimage.c
@@ -137,7 +137,7 @@ _mesa_meta_pbo_TexSubImage(struct gl_context *ctx, GLuint dims,
    struct gl_texture_image *pbo_tex_image;
    GLenum status;
    bool success = false;
-   int z;
+   int z, iters;
 
    /* XXX: This should probably be passed in from somewhere */
    const char *where = "_mesa_meta_pbo_TexSubImage";
@@ -190,12 +190,6 @@ _mesa_meta_pbo_TexSubImage(struct gl_context *ctx, GLuint dims,
    _mesa_BindFramebuffer(GL_READ_FRAMEBUFFER, fbos[0]);
    _mesa_BindFramebuffer(GL_DRAW_FRAMEBUFFER, fbos[1]);
 
-   if (tex_image->TexObject->Target == GL_TEXTURE_1D_ARRAY) {
-      assert(depth == 1);
-      depth = height;
-      height = 1;
-   }
-
    _mesa_meta_bind_fbo_image(GL_READ_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
                              pbo_tex_image, 0);
    /* If this passes on the first layer it should pass on the others */
@@ -219,7 +213,10 @@ _mesa_meta_pbo_TexSubImage(struct gl_context *ctx, GLuint dims,
                                   GL_COLOR_BUFFER_BIT, GL_NEAREST))
       goto fail;
 
-   for (z = 1; z < depth; z++) {
+   iters = tex_image->TexObject->Target == GL_TEXTURE_1D_ARRAY ?
+           height : depth;
+
+   for (z = 1; z < iters; z++) {
       _mesa_meta_bind_fbo_image(GL_READ_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
                                 pbo_tex_image, z);
       _mesa_meta_bind_fbo_image(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
@@ -227,11 +224,18 @@ _mesa_meta_pbo_TexSubImage(struct gl_context *ctx, GLuint dims,
 
       _mesa_update_state(ctx);
 
-      _mesa_meta_BlitFramebuffer(ctx, ctx->ReadBuffer, ctx->DrawBuffer,
-                                 0, z * height, width, (z + 1) * height,
-                                 xoffset, yoffset,
-                                 xoffset + width, yoffset + height,
-                                 GL_COLOR_BUFFER_BIT, GL_NEAREST);
+      if (tex_image->TexObject->Target == GL_TEXTURE_1D_ARRAY)
+         _mesa_meta_BlitFramebuffer(ctx, ctx->ReadBuffer, ctx->DrawBuffer,
+                                    0, z, width, z + 1,
+                                    xoffset, yoffset,
+                                    xoffset + width, yoffset + 1,
+                                    GL_COLOR_BUFFER_BIT, GL_NEAREST);
+      else
+         _mesa_meta_BlitFramebuffer(ctx, ctx->ReadBuffer, ctx->DrawBuffer,
+                                    0, z * height, width, (z + 1) * height,
+                                    xoffset, yoffset,
+                                    xoffset + width, yoffset + height,
+                                    GL_COLOR_BUFFER_BIT, GL_NEAREST);
    }
 
    success = true;
@@ -258,7 +262,7 @@ _mesa_meta_pbo_GetTexSubImage(struct gl_context *ctx, GLuint dims,
    struct gl_texture_image *pbo_tex_image;
    GLenum status;
    bool success = false;
-   int z;
+   int z, iters;
 
    /* XXX: This should probably be passed in from somewhere */
    const char *where = "_mesa_meta_pbo_GetTexSubImage";
@@ -305,12 +309,6 @@ _mesa_meta_pbo_GetTexSubImage(struct gl_context *ctx, GLuint dims,
 
    _mesa_GenFramebuffers(2, fbos);
 
-   if (tex_image && tex_image->TexObject->Target == GL_TEXTURE_1D_ARRAY) {
-      assert(depth == 1);
-      depth = height;
-      height = 1;


Reply to: