diff -Nru mesa-10.6.0~git20150616+10.6.5d327b37/ChangeLog mesa-10.6.1~git20150703+10.6.6ff3ae8d/ChangeLog --- mesa-10.6.0~git20150616+10.6.5d327b37/ChangeLog 2015-06-16 10:40:42.000000000 +0000 +++ mesa-10.6.1~git20150703+10.6.6ff3ae8d/ChangeLog 2015-07-03 06:01:52.000000000 +0000 @@ -1,9 +1,359 @@ -commit d1224bb612db759a22a9abb186536bd731db9dda +commit 76b102003f871ee0e1f33bad9dee1b7d6c74b659 Author: Rico Tzschichholz -Date: Tue Jun 16 12:39:49 2015 +0200 +Date: Fri Jul 3 07:58:43 2015 +0200 Add debian tree from origin/ubuntu +commit 6ff3ae8deb1d99037f2f8e5890b09bd984059cf0 +Author: Emil Velikov +Date: Mon Jun 29 09:00:24 2015 +0100 + + docs: Add sha256 checksums for the 10.6.1 release + + Signed-off-by: Emil Velikov + +commit a871e80fc6237fa029d6970f7e9b414fd097bd98 +Author: Emil Velikov +Date: Mon Jun 29 08:23:14 2015 +0100 + + Add release notes for the 10.6.1 release + + Signed-off-by: Emil Velikov + +commit f513cc8836552ac3e8f8058b4f3f5a681c0d3215 +Author: Emil Velikov +Date: Mon Jun 29 08:17:10 2015 +0100 + + Update version to 10.6.1 + + Signed-off-by: Emil Velikov + +commit da588875ce25e339d72b45b5cd60b39c96a5bd62 +Author: Boyan Ding +Date: Sat Jun 13 15:33:20 2015 +0800 + + egl/x11: Remove duplicate call to dri2_x11_add_configs_for_visuals + + The call to dri2_x11_add_configs_for_visuals (previously + dri2_add_configs_for_visuals) was moved downwards in commit f8c5b8a1, + but appeared again in its original position after its rename in + d019cd81. Remove it. + + Cc: "10.5 10.6" + Signed-off-by: Boyan Ding + Reviewed-by: Samuel Iglesias Gonsálvez + Reviewed-by: Emil Velikov + Reviewed-by: Chad Versace + (cherry picked from commit 3fa9bb81ec8b21f472de32e08d0caf917239da08) + +commit 684c81a75fba70cafef8583a031e3d2af55bb429 +Author: Ilia Mirkin +Date: Sun Jun 21 19:03:35 2015 -0400 + + nv50,nvc0: make sure to pushbuf_refn before putting bo into pushbuf_data + + Without first running the bo through pushbuf_refn, the nouveau drm + library will have uninitialized structures regarding this bo, and will + insert incorrect data. + + This fixes supertuxkart 0.9 crash on start (where it ends up doing a lot + of indirect draws). + + Signed-off-by: Ilia Mirkin + Cc: "10.5 10.6" + (cherry picked from commit 78d58e642549fbf340fdb4fca06720d2891216a8) + +commit 9ffa1f7a1b938d6103f97d064a7443ae03d9a9d9 +Author: Ilia Mirkin +Date: Sun Jun 21 15:00:16 2015 -0400 + + nvc0: always put all tfb bufs into bufctx + + Since we clear the TFB bufctx binding point above, we need to put all of + the active tfb's back in, even if they haven't changed since last time. + Otherwise the tfb may get moved into sysmem and the underlying mapping + will generate write errors. + + Signed-off-by: Ilia Mirkin + Cc: "10.5 10.6" + (cherry picked from commit 9fcbf515b431a92e0289f234ab77a796cf2a5612) + +commit c4dc2a5e2c0ccbd0cc30c9cdf205775b2cb690a8 +Author: Ilia Mirkin +Date: Tue Jun 23 00:16:59 2015 -0400 + + glsl: binding point is a texture unit, which is a combined space + + This fixes compilation failures in Dota 2 Reborn where a texture unit + binding point was used that was numerically higher than the max + per stage. + + Signed-off-by: Ilia Mirkin + Reviewed-by: Chris Forbes + Reviewed-by: Timothy Arceri + Tested-by: Nick Sarnie + Cc: "10.5 10.6" + (cherry picked from commit fccf012adc0d3aad877de095244324aa1d2d046a) + +commit d93677eb48d5205fb495399291a2a0defb22a804 +Author: Emil Velikov +Date: Fri Jun 19 19:22:38 2015 +0100 + + gbm: do not (over)link against libglapi.so + + The whole of GBM does not rely on even a single symbol from the GL + dispatch library, unsuprisingly. The only need for it comes from the + unresolved symbols in the DRI modules, which are now correctly handled + with Frank's commit. + + Cc: "10.5 10.6" + Signed-off-by: Emil Velikov + (cherry picked from commit a0dc6b7824d3b9095919e29393a379ea7f9c1318) + +commit 0db9835d3ba3f84f601e7a60e1f1590400788b36 +Author: Frank Henigman +Date: Thu Nov 6 16:29:26 2014 -0500 + + gbm: dlopen libglapi so gbm_create_device works + + Dri driver libs are not linked to pull in libglapi so gbm_create_device() + fails when it tries to dlopen them (unless the application is linked + with something that does pull in libglapi, like libGL). + Until dri drivers can be fixed properly, dlopen libglapi before trying + to dlopen them. + + Cc: "10.5 10.6" + Signed-off-by: Frank Henigman + [Emil Velikov: Drop misleading bugzilla link, mention that libname differs] + Reviewed-by: Emil Velikov + + (cherry picked from commit 828f13330c9384f2b55c8b0f962d93a74ecd0601) + +commit ca079a77f92b8d60aa17a611ad93c92e840ed09f +Author: Emil Velikov +Date: Fri Jun 19 17:46:41 2015 +0100 + + configure: error out when building libEGL without shared-glapi + + The latter is a hard requirement and without it we'll error out later + on in the build. + + Cc: "10.5 10.6" + Signed-off-by: Emil Velikov + Reviewed-by: Eric Anholt + (cherry picked from commit 994be5143a097ae2cf504ba344362edfee388ac3) + +commit 9ba9c030ad4d7264a160412a422f7b2cade331e0 +Author: Emil Velikov +Date: Fri Jun 19 17:44:02 2015 +0100 + + configure: error out when building backend-less libEGL + + Cc: "10.5 10.6" + Signed-off-by: Emil Velikov + Reviewed-by: Eric Anholt + (cherry picked from commit ddc886b5bfe5976fa2e5f49eeefa918736f1aa97) + +commit c96d9c23717564d5a898c7c17a42514507a28b8c +Author: Emil Velikov +Date: Fri Jun 19 17:19:46 2015 +0100 + + configure: warn about shared_glapi & xlib-glx only when both are set + + Printing out the message when shared_glapi is disabled only leads to + confusion. + + Cc: "10.5 10.6" + Signed-off-by: Emil Velikov + Reviewed-by: Eric Anholt + (cherry picked from commit 6d744aaf4e427b6b0b3d8d35d756592a50abbb97) + +commit f036512122428b65fdfa4ba3aacf8baefa675104 +Author: Ben Widawsky +Date: Wed Jun 3 21:35:51 2015 -0700 + + i965/gen9: Implement Push Constant Buffer workaround + + This implements a workaround (exact excerpt as a comment in the code). The docs + specify [clearly, after you struggle for a while] that the offset isn't relative + to state base. This actually makes sense. This fixes hangs on SKL. + + Buffer #0 is meant to be used for normal uniforms. + Buffer #1 is typically used for gather constants when using RS. + Buffer #1-#3 could be used to push a bunch of UBO data which would just be + somewhere in memory, and not relative to the dynamic state. + + NOTE: I've moved away from the ternary operator for the new gen9 conditions. + Admittedly it's probably not great to do this, but I really want to fix this all + up in the subsequent patch and doing it here makes that diff a lot nicer. I want + to split out the gen8/9 code to make the function a bit more readable, but to + keep this easily cherry-pickable I am doing this fix first. If we decide not to + merge the cleanup patch then I can revisit this. + + Cc: "10.5 10.6" + Signed-off-by: Ben Widawsky + Reviewed-by: Anuj Phogat + Tested-by: Valtteri Rantala + (cherry picked from commit 90754d2df05eafe1a3ee3cd9bb1611a19099fc49) + +commit 0c46196e1d172beac95dd0cb6ab43bcb4d1e2919 +Author: Ilia Mirkin +Date: Wed Jun 17 23:00:44 2015 -0400 + + mesa: add GL_PROGRAM_PIPELINE support in KHR_debug calls + + This was apparently missed when ARB_sso support was added. + Add label support to pipeline objects just like all the other + debug-related objects. + + Signed-off-by: Ilia Mirkin + Reviewed-by: Timothy Arceri + Cc: "10.5 10.6" + (cherry picked from commit 770f141866654dab969302f720228497f0fb35fd) + +commit 74f2c1c282ba3776c21647bf523081bdab7bedef +Author: Ilia Mirkin +Date: Wed Jun 17 15:09:26 2015 -0400 + + glsl: add version checks to conditionals for builtin variable enablement + + A number of builtin variables have checks based on the extension being + enabled, but were missing enablement via a higher GLSL version. + + Signed-off-by: Ilia Mirkin + Reviewed-by: Timothy Arceri + Cc: "10.5 10.6" + (cherry picked from commit b6e238023c4f8af2328dc3bcab1d73a3e19f4fbb) + +commit 8ed4c7acc2786758410ac257296cd058709030b1 +Author: Ilia Mirkin +Date: Wed Jun 17 15:07:14 2015 -0400 + + glsl: handle conversions to double when comparing param matches + + This allows mod(int, int) to become selected as float mod when doubles + are supported. + + Signed-off-by: Ilia Mirkin + Reviewed-by: Chris Forbes + Cc: "10.6" + (cherry picked from commit c40e7ee7c47cb24264fd77ef37fab99dea4c299a) + +commit fc3af254b11baddc14f59c4d5b691430ece1975b +Author: Boyan Ding +Date: Tue Jun 16 11:08:33 2015 +0800 + + egl/x11: Set version of swrastLoader to 2 + + which it actually implements instead of the newest version defined in + dri_interface.h + + Cc: "10.5 10.6" + Signed-off-by: Boyan Ding + Reviewed-by: Ian Romanick + Reviewed-by: Emil Velikov + (cherry picked from commit 997fc807b2f71ef65b4601d6db33d0f912c18d3f) + +commit 9d2b9e7724689ce7a74e16b9691a704b65ec6cfb +Author: Ilia Mirkin +Date: Wed Jun 17 22:18:09 2015 -0400 + + nvc0/ir: can't have a join on a load with an indirect source + + Triggers an INVALID_OPCODE warning on GK208. Seems rare enough to not + warrant verification on other chips. Fixes the new piglits: + + ubo_array_indexing/fs-nonuniform-control-flow.shader_test + ubo_array_indexing/vs-nonuniform-control-flow.shader_test + + Signed-off-by: Ilia Mirkin + Cc: "10.5 10.6" + (cherry picked from commit 36e3eb6a957f8f20ed187ec88a067fc65cb81432) + +commit acfaacb18b8ec3333fd8786a62b6abb0741f2928 +Author: Ilia Mirkin +Date: Mon Jun 15 15:48:58 2015 -0400 + + nv50,nvc0: clamp uniform size to 64k + + The state tracker will pass through requests from buggy applications + which will have the buffer size larger than the max allowed (64k). Clamp + the size to 64k so that we don't get errors when uploading the constbuf + data. + + Signed-off-by: Ilia Mirkin + Cc: "10.5 10.6" + (cherry picked from commit 8b24388647f626a5cad10fd48e61335ed26a8560) + +commit 0736a2aa795bab3856abea308ca99b708449e169 +Author: Ilia Mirkin +Date: Fri Jun 12 16:09:05 2015 +0200 + + nvc0/ir: fix collection of first uses for texture barrier insertion + + One of the places we have to insert texbars is in situations where the + result of the tex gets overwritten by a different instruction (e.g. in a + conditional statement). However in some situations it can actually + appear as though the original tex itself is an overwriting instruction. + This can naturally never really happen, so just ignore the tex + instruction when it comes up. + + Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90347 + Signed-off-by: Ilia Mirkin + Cc: "10.5 10.6" + (cherry picked from commit a2af42c1d2dc91f4c31e25ff9fff15a89a9b6ead) + +commit 1a153e1fd341c565245096fab939d41a83aecfd8 +Author: Anuj Phogat +Date: Tue May 12 04:17:04 2015 -0700 + + meta: Abort meta path if ReadPixels need rgb to luminance conversion + + After recent addition of pbo testing in piglit test getteximage-luminance, + it fails on i965. This patch makes a sub test pass. + + Signed-off-by: Anuj Phogat + Cc: + Reviewed-by: Tapani Pälli + (cherry picked from commit a4ff47ade9d95a27c9c55afbf6dd77d3f3b10562) + +commit 1f3ec929761d9aee986362ef90a4a150f4481496 +Author: Anuj Phogat +Date: Fri May 1 00:05:18 2015 -0700 + + mesa: Turn need_rgb_to_luminance_conversion() in to a global function + + This will be used by _mesa_meta_pbo_GetTexSubImage() in a later patch. + + Signed-off-by: Anuj Phogat + Cc: + Reviewed-by: Tapani Pälli + (cherry picked from commit ba2b1f8668811eade97a4f134f6df900ff36c8aa) + +commit 2040c18ecc32262426541f5781daa783e3e4bf6b +Author: Anuj Phogat +Date: Thu Apr 30 23:36:18 2015 -0700 + + mesa: Use helper function need_rgb_to_luminance_conversion() + + Signed-off-by: Anuj Phogat + Cc: + Reviewed-by: Tapani Pälli + Reviewed-by: Iago Toral Quiroga + (cherry picked from commit 0b13adcd0802d1ad60f625e7e557d2090a7c143e) + +commit b590ee6d45a3c91dce3309739226b5f9d062637a +Author: Anuj Phogat +Date: Thu Apr 30 23:35:20 2015 -0700 + + mesa: Handle integer formats in need_rgb_to_luminance_conversion() + + Signed-off-by: Anuj Phogat + Cc: + Reviewed-by: Tapani Pälli + Reviewed-by: Iago Toral Quiroga + (cherry picked from commit 82abdf209a2fb5b95b2bae80045aecc61202b13c) + commit 5d327b373531861f86a726db669b3d656f1b5f8d Author: Emil Velikov Date: Sun Jun 14 16:40:00 2015 +0100 diff -Nru mesa-10.6.0~git20150616+10.6.5d327b37/configure.ac mesa-10.6.1~git20150703+10.6.6ff3ae8d/configure.ac --- mesa-10.6.0~git20150616+10.6.5d327b37/configure.ac 2015-06-16 10:39:48.000000000 +0000 +++ mesa-10.6.1~git20150703+10.6.6ff3ae8d/configure.ac 2015-07-03 05:58:42.000000000 +0000 @@ -942,7 +942,7 @@ esac # Building Xlib-GLX requires shared glapi to be disabled. -if test "x$enable_xlib_glx" = xyes; then +if test "x$enable_shared_glapi$enable_xlib_glx" = xyesyes; then AC_MSG_NOTICE([Shared GLAPI should not used with Xlib-GLX, disabling]) enable_shared_glapi=no fi @@ -1548,8 +1548,15 @@ 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 diff -Nru mesa-10.6.0~git20150616+10.6.5d327b37/debian/changelog mesa-10.6.1~git20150703+10.6.6ff3ae8d/debian/changelog --- mesa-10.6.0~git20150616+10.6.5d327b37/debian/changelog 2015-07-03 06:13:17.000000000 +0000 +++ mesa-10.6.1~git20150703+10.6.6ff3ae8d/debian/changelog 2015-07-03 06:13:18.000000000 +0000 @@ -1,7 +1,7 @@ -mesa (10.6.0~git20150616+10.6.5d327b37-0ubuntu0ricotz~trusty) trusty; urgency=medium +mesa (10.6.1~git20150703+10.6.6ff3ae8d-0ubuntu0ricotz~trusty) trusty; urgency=medium - * Checkout from git 20150616 (10.6 branch) up to commit - 5d327b373531861f86a726db669b3d656f1b5f8d + * Checkout from git 20150703 (10.6 branch) up to commit + 6ff3ae8deb1d99037f2f8e5890b09bd984059cf0 * Only added debian/ tree from origin/ubuntu * hook: Disable MIR support. * hook: Relax symbols check. @@ -12,17 +12,33 @@ * hook: Drop skl-use-vec4-datatypes-for-message-header.diff (upstream) * hook: update symbols. - -- Rico Tzschichholz Tue, 16 Jun 2015 12:40:43 +0200 + -- Rico Tzschichholz Fri, 03 Jul 2015 08:01:52 +0200 -mesa (10.5.2-0ubuntu1) vivid; urgency=medium +mesa (10.5.7-1ubuntu1) wily; urgency=medium - * Merge from unreleased experimental git - - new upstream bugfix release - * egl-platform-mir.patch: Refreshed. + * Merge from Debian unstable, remaining changes + - libclc/clang is not in main, drop building mesa-opencl-icd + - drop building the software rasterizer + - llvm-3.6 is the default on Ubuntu, use it + - install GL/EGL libs under a separate dir to not conflict with + blobs, use alternatives for ldconfig + - patches: + egl-platform-mir.patch: Mir EGL platform + i915-dont-default-to-2.1.patch: revert of i915 forced OpenGL + 2.1 commit + skl-*: backports for Skylake + * control: Add libmirclient-dev to build-depends. - -- Timo Aaltonen Mon, 30 Mar 2015 15:07:30 +0300 + -- Timo Aaltonen Tue, 16 Jun 2015 14:33:48 +0300 + +mesa (10.5.7-1) unstable; urgency=medium + + * New upstream release. + * control: Bump policy to 3.9.6, no changes. + + -- Timo Aaltonen Tue, 16 Jun 2015 11:57:08 +0300 -mesa (10.5.2-1) UNRELEASED; urgency=medium +mesa (10.5.5-1) unstable; urgency=medium [ Maarten Lankhorst ] * New upstream release. @@ -31,7 +47,15 @@ [ Timo Aaltonen ] * libegl1-mesa.symbols: Updated. - -- Maarten Lankhorst Mon, 16 Feb 2015 09:35:43 +0100 + -- Timo Aaltonen Tue, 12 May 2015 13:26:49 +0300 + +mesa (10.5.2-0ubuntu1) vivid; urgency=medium + + * Merge from unreleased experimental git + - new upstream bugfix release + * egl-platform-mir.patch: Refreshed. + + -- Timo Aaltonen Mon, 30 Mar 2015 15:07:30 +0300 mesa (10.5.0-0ubuntu1) vivid; urgency=medium diff -Nru mesa-10.6.0~git20150616+10.6.5d327b37/debian/control mesa-10.6.1~git20150703+10.6.6ff3ae8d/debian/control --- mesa-10.6.0~git20150616+10.6.5d327b37/debian/control 2015-07-03 06:13:17.000000000 +0000 +++ mesa-10.6.1~git20150703+10.6.6ff3ae8d/debian/control 2015-07-03 06:13:18.000000000 +0000 @@ -3,7 +3,7 @@ Priority: optional Maintainer: Ubuntu X-SWAT XSBC-Original-Maintainer: Debian X Strike Force -Standards-Version: 3.9.3 +Standards-Version: 3.9.6 Build-Depends: debhelper (>= 9), quilt (>= 0.40), diff -Nru mesa-10.6.0~git20150616+10.6.5d327b37/docs/relnotes/10.6.1.html mesa-10.6.1~git20150703+10.6.6ff3ae8d/docs/relnotes/10.6.1.html --- mesa-10.6.0~git20150616+10.6.5d327b37/docs/relnotes/10.6.1.html 1970-01-01 00:00:00.000000000 +0000 +++ mesa-10.6.1~git20150703+10.6.6ff3ae8d/docs/relnotes/10.6.1.html 2015-07-03 05:58:42.000000000 +0000 @@ -0,0 +1,104 @@ + + + + + Mesa Release Notes + + + + +
+

The Mesa 3D Graphics Library

+
+ + +
+ +

Mesa 10.6.1 Release Notes / June 29, 2015

+ +

+Mesa 10.6.1 is a bug fix release which fixes bugs found since the 10.6.0 release. +

+

+Mesa 10.6.1 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 only available if requested at context creation +because compatibility contexts are not supported. +

+ + +

SHA256 checksums

+
+b4cccd4d0eabcc2bca00c3175d3ad88fdda57ffdb883a7998525b873a21fe607  mesa-10.6.1.tar.gz
+6c80a2b647e57c85dc36e609d9aed17f878f0d8e0cf9ace86d14cf604101e1eb  mesa-10.6.1.tar.xz
+
+ + +

New features

+

None

+ +

Bug fixes

+ +

This list is likely incomplete.

+
    + +
  • Bug 90347 - [NVE0+] Failure to insert texbar under some circumstances (causing bad colors in Terasology)
  • + +
+ + +

Changes

+ +

Anuj Phogat (4):

+
    +
  • mesa: Handle integer formats in need_rgb_to_luminance_conversion()
  • +
  • mesa: Use helper function need_rgb_to_luminance_conversion()
  • +
  • mesa: Turn need_rgb_to_luminance_conversion() in to a global function
  • +
  • meta: Abort meta path if ReadPixels need rgb to luminance conversion
  • +
+ +

Ben Widawsky (1):

+
    +
  • i965/gen9: Implement Push Constant Buffer workaround
  • +
+ +

Boyan Ding (2):

+
    +
  • egl/x11: Set version of swrastLoader to 2
  • +
  • egl/x11: Remove duplicate call to dri2_x11_add_configs_for_visuals
  • +
+ +

Emil Velikov (6):

+
    +
  • docs: Add sha256sums for the 10.6.0 release
  • +
  • configure: warn about shared_glapi & xlib-glx only when both are set
  • +
  • configure: error out when building backend-less libEGL
  • +
  • configure: error out when building libEGL without shared-glapi
  • +
  • gbm: do not (over)link against libglapi.so
  • +
  • Update version to 10.6.1
  • +
+ +

Frank Henigman (1):

+
    +
  • gbm: dlopen libglapi so gbm_create_device works
  • +
+ +

Ilia Mirkin (9):

+
    +
  • nvc0/ir: fix collection of first uses for texture barrier insertion
  • +
  • nv50,nvc0: clamp uniform size to 64k
  • +
  • nvc0/ir: can't have a join on a load with an indirect source
  • +
  • glsl: handle conversions to double when comparing param matches
  • +
  • glsl: add version checks to conditionals for builtin variable enablement
  • +
  • mesa: add GL_PROGRAM_PIPELINE support in KHR_debug calls
  • +
  • glsl: binding point is a texture unit, which is a combined space
  • +
  • nvc0: always put all tfb bufs into bufctx
  • +
  • nv50,nvc0: make sure to pushbuf_refn before putting bo into pushbuf_data
  • +
+ + +
+ + diff -Nru mesa-10.6.0~git20150616+10.6.5d327b37/.lastcommit mesa-10.6.1~git20150703+10.6.6ff3ae8d/.lastcommit --- mesa-10.6.0~git20150616+10.6.5d327b37/.lastcommit 2015-06-16 10:39:48.000000000 +0000 +++ mesa-10.6.1~git20150703+10.6.6ff3ae8d/.lastcommit 2015-07-03 05:58:43.000000000 +0000 @@ -1 +1 @@ -commit 5d327b373531861f86a726db669b3d656f1b5f8d +commit 6ff3ae8deb1d99037f2f8e5890b09bd984059cf0 diff -Nru mesa-10.6.0~git20150616+10.6.5d327b37/src/egl/drivers/dri2/platform_x11.c mesa-10.6.1~git20150703+10.6.6ff3ae8d/src/egl/drivers/dri2/platform_x11.c --- mesa-10.6.0~git20150616+10.6.5d327b37/src/egl/drivers/dri2/platform_x11.c 2015-06-16 10:39:48.000000000 +0000 +++ mesa-10.6.1~git20150703+10.6.6ff3ae8d/src/egl/drivers/dri2/platform_x11.c 2015-07-03 05:58:42.000000000 +0000 @@ -1112,7 +1112,7 @@ goto cleanup_conn; dri2_dpy->swrast_loader_extension.base.name = __DRI_SWRAST_LOADER; - dri2_dpy->swrast_loader_extension.base.version = __DRI_SWRAST_LOADER_VERSION; + dri2_dpy->swrast_loader_extension.base.version = 2; dri2_dpy->swrast_loader_extension.getDrawableInfo = swrastGetDrawableInfo; dri2_dpy->swrast_loader_extension.putImage = swrastPutImage; dri2_dpy->swrast_loader_extension.getImage = swrastGetImage; @@ -1283,11 +1283,6 @@ dri2_x11_setup_swap_interval(dri2_dpy); - if (dri2_dpy->conn) { - if (!dri2_x11_add_configs_for_visuals(dri2_dpy, disp)) - goto cleanup_configs; - } - disp->Extensions.KHR_image_pixmap = EGL_TRUE; disp->Extensions.NOK_swap_region = EGL_TRUE; disp->Extensions.NOK_texture_from_pixmap = EGL_TRUE; diff -Nru mesa-10.6.0~git20150616+10.6.5d327b37/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp mesa-10.6.1~git20150703+10.6.6ff3ae8d/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp --- mesa-10.6.0~git20150616+10.6.5d327b37/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp 2015-06-16 10:39:48.000000000 +0000 +++ mesa-10.6.1~git20150703+10.6.6ff3ae8d/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nvc0.cpp 2015-07-03 05:58:43.000000000 +0000 @@ -168,7 +168,7 @@ void NVC0LegalizePostRA::addTexUse(std::list &uses, - Instruction *usei, const Instruction *insn) + Instruction *usei, const Instruction *texi) { bool add = true; for (std::list::iterator it = uses.begin(); @@ -183,7 +183,7 @@ ++it; } if (add) - uses.push_back(TexUse(usei, insn)); + uses.push_back(TexUse(usei, texi)); } void @@ -195,7 +195,8 @@ while (insn->op == OP_MOV && insn->getDef(0)->equals(insn->getSrc(0))) insn = insn->getSrc(0)->getUniqueInsn(); - if (!insn->bb->reachableBy(texi->bb, term)) + // NOTE: the tex itself is, of course, not an overwriting definition + if (insn == texi || !insn->bb->reachableBy(texi->bb, term)) return; switch (insn->op) { @@ -243,7 +244,12 @@ visited.insert(usei); if (usei->op == OP_PHI || usei->op == OP_UNION) { - // need a barrier before WAW cases + // need a barrier before WAW cases, like: + // %r0 = tex + // if ... + // texbar <- is required or tex might replace x again + // %r1 = x <- overwriting def + // %r2 = phi %r0, %r1 for (int s = 0; usei->srcExists(s); ++s) { Instruction *defi = usei->getSrc(s)->getUniqueInsn(); if (defi && &usei->src(s) != *u) @@ -262,7 +268,7 @@ usei->subOp != NV50_IR_SUBOP_MOV_FINAL) { findFirstUses(texi, usei, uses, visited); } else { - addTexUse(uses, usei, insn); + addTexUse(uses, usei, texi); } } } diff -Nru mesa-10.6.0~git20150616+10.6.5d327b37/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp mesa-10.6.1~git20150703+10.6.6ff3ae8d/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp --- mesa-10.6.0~git20150616+10.6.5d327b37/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp 2015-06-16 10:39:48.000000000 +0000 +++ mesa-10.6.1~git20150703+10.6.6ff3ae8d/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp 2015-07-03 05:58:43.000000000 +0000 @@ -2232,7 +2232,7 @@ insn->op != OP_LINTERP && // probably just nve4 insn->op != OP_PINTERP && // probably just nve4 ((insn->op != OP_LOAD && insn->op != OP_STORE) || - typeSizeof(insn->dType) <= 4) && + (typeSizeof(insn->dType) <= 4 && !insn->src(0).isIndirect(0))) && !insn->isNop()) { insn->join = 1; bb->remove(bb->getExit()); diff -Nru mesa-10.6.0~git20150616+10.6.5d327b37/src/gallium/drivers/nouveau/nv50/nv50_query.c mesa-10.6.1~git20150703+10.6.6ff3ae8d/src/gallium/drivers/nouveau/nv50/nv50_query.c --- mesa-10.6.0~git20150616+10.6.5d327b37/src/gallium/drivers/nouveau/nv50/nv50_query.c 2015-06-16 10:39:48.000000000 +0000 +++ mesa-10.6.1~git20150703+10.6.6ff3ae8d/src/gallium/drivers/nouveau/nv50/nv50_query.c 2015-07-03 05:58:43.000000000 +0000 @@ -434,6 +434,7 @@ /* XXX: does this exist ? */ #define NV50_IB_ENTRY_1_NO_PREFETCH (0 << (31 - 8)) + PUSH_REFN(push, q->bo, NOUVEAU_BO_RD | NOUVEAU_BO_GART); nouveau_pushbuf_space(push, 0, 0, 1); nouveau_pushbuf_data(push, q->bo, q->offset + result_offset, 4 | NV50_IB_ENTRY_1_NO_PREFETCH); diff -Nru mesa-10.6.0~git20150616+10.6.5d327b37/src/gallium/drivers/nouveau/nv50/nv50_state.c mesa-10.6.1~git20150703+10.6.6ff3ae8d/src/gallium/drivers/nouveau/nv50/nv50_state.c --- mesa-10.6.0~git20150616+10.6.5d327b37/src/gallium/drivers/nouveau/nv50/nv50_state.c 2015-02-25 15:01:21.000000000 +0000 +++ mesa-10.6.1~git20150703+10.6.6ff3ae8d/src/gallium/drivers/nouveau/nv50/nv50_state.c 2015-07-03 05:58:43.000000000 +0000 @@ -811,12 +811,12 @@ nv50->constbuf[s][i].user = (cb && cb->user_buffer) ? TRUE : FALSE; if (nv50->constbuf[s][i].user) { nv50->constbuf[s][i].u.data = cb->user_buffer; - nv50->constbuf[s][i].size = cb->buffer_size; + nv50->constbuf[s][i].size = MIN2(cb->buffer_size, 0x10000); nv50->constbuf_valid[s] |= 1 << i; } else if (res) { nv50->constbuf[s][i].offset = cb->buffer_offset; - nv50->constbuf[s][i].size = align(cb->buffer_size, 0x100); + nv50->constbuf[s][i].size = MIN2(align(cb->buffer_size, 0x100), 0x10000); nv50->constbuf_valid[s] |= 1 << i; } else { nv50->constbuf_valid[s] &= ~(1 << i); diff -Nru mesa-10.6.0~git20150616+10.6.5d327b37/src/gallium/drivers/nouveau/nv50/nv50_vbo.c mesa-10.6.1~git20150703+10.6.6ff3ae8d/src/gallium/drivers/nouveau/nv50/nv50_vbo.c --- mesa-10.6.0~git20150616+10.6.5d327b37/src/gallium/drivers/nouveau/nv50/nv50_vbo.c 2015-01-14 13:02:07.000000000 +0000 +++ mesa-10.6.1~git20150703+10.6.6ff3ae8d/src/gallium/drivers/nouveau/nv50/nv50_vbo.c 2015-07-03 05:58:43.000000000 +0000 @@ -628,6 +628,7 @@ BEGIN_NV04(push, NV50_3D(VERTEX_BEGIN_GL), 1); PUSH_DATA (push, prim); + PUSH_REFN(push, buf->bo, NOUVEAU_BO_RD | buf->domain); nouveau_pushbuf_space(push, 8, 0, 1); switch (index_size) { diff -Nru mesa-10.6.0~git20150616+10.6.5d327b37/src/gallium/drivers/nouveau/nvc0/nvc0_query.c mesa-10.6.1~git20150703+10.6.6ff3ae8d/src/gallium/drivers/nouveau/nvc0/nvc0_query.c --- mesa-10.6.0~git20150616+10.6.5d327b37/src/gallium/drivers/nouveau/nvc0/nvc0_query.c 2015-06-16 10:39:48.000000000 +0000 +++ mesa-10.6.1~git20150703+10.6.6ff3ae8d/src/gallium/drivers/nouveau/nvc0/nvc0_query.c 2015-07-03 05:58:43.000000000 +0000 @@ -617,6 +617,7 @@ #define NVC0_IB_ENTRY_1_NO_PREFETCH (1 << (31 - 8)) + PUSH_REFN(push, q->bo, NOUVEAU_BO_RD | NOUVEAU_BO_GART); nouveau_pushbuf_space(push, 0, 0, 1); nouveau_pushbuf_data(push, q->bo, q->offset + result_offset, 4 | NVC0_IB_ENTRY_1_NO_PREFETCH); diff -Nru mesa-10.6.0~git20150616+10.6.5d327b37/src/gallium/drivers/nouveau/nvc0/nvc0_shader_state.c mesa-10.6.1~git20150703+10.6.6ff3ae8d/src/gallium/drivers/nouveau/nvc0/nvc0_shader_state.c --- mesa-10.6.0~git20150616+10.6.5d327b37/src/gallium/drivers/nouveau/nvc0/nvc0_shader_state.c 2015-02-25 15:01:21.000000000 +0000 +++ mesa-10.6.1~git20150703+10.6.6ff3ae8d/src/gallium/drivers/nouveau/nvc0/nvc0_shader_state.c 2015-07-03 05:58:43.000000000 +0000 @@ -262,11 +262,13 @@ if (tfb) targ->stride = tfb->stride[b]; + buf = nv04_resource(targ->pipe.buffer); + + BCTX_REFN(nvc0->bufctx_3d, TFB, buf, WR); + if (!(nvc0->tfbbuf_dirty & (1 << b))) continue; - buf = nv04_resource(targ->pipe.buffer); - if (!targ->clean) nvc0_query_fifo_wait(push, targ->pq); BEGIN_NVC0(push, NVC0_3D(TFB_BUFFER_ENABLE(b)), 5); @@ -280,7 +282,6 @@ PUSH_DATA(push, 0); /* TFB_BUFFER_OFFSET */ targ->clean = FALSE; } - BCTX_REFN(nvc0->bufctx_3d, TFB, buf, WR); } for (; b < 4; ++b) IMMED_NVC0(push, NVC0_3D(TFB_BUFFER_ENABLE(b)), 0); diff -Nru mesa-10.6.0~git20150616+10.6.5d327b37/src/gallium/drivers/nouveau/nvc0/nvc0_state.c mesa-10.6.1~git20150703+10.6.6ff3ae8d/src/gallium/drivers/nouveau/nvc0/nvc0_state.c --- mesa-10.6.0~git20150616+10.6.5d327b37/src/gallium/drivers/nouveau/nvc0/nvc0_state.c 2015-06-16 10:39:48.000000000 +0000 +++ mesa-10.6.1~git20150703+10.6.6ff3ae8d/src/gallium/drivers/nouveau/nvc0/nvc0_state.c 2015-07-03 05:58:43.000000000 +0000 @@ -793,12 +793,12 @@ nvc0->constbuf[s][i].user = (cb && cb->user_buffer) ? TRUE : FALSE; if (nvc0->constbuf[s][i].user) { nvc0->constbuf[s][i].u.data = cb->user_buffer; - nvc0->constbuf[s][i].size = cb->buffer_size; + nvc0->constbuf[s][i].size = MIN2(cb->buffer_size, 0x10000); nvc0->constbuf_valid[s] |= 1 << i; } else if (cb) { nvc0->constbuf[s][i].offset = cb->buffer_offset; - nvc0->constbuf[s][i].size = align(cb->buffer_size, 0x100); + nvc0->constbuf[s][i].size = MIN2(align(cb->buffer_size, 0x100), 0x10000); nvc0->constbuf_valid[s] |= 1 << i; } else { diff -Nru mesa-10.6.0~git20150616+10.6.5d327b37/src/gallium/drivers/nouveau/nvc0/nvc0_vbo.c mesa-10.6.1~git20150703+10.6.6ff3ae8d/src/gallium/drivers/nouveau/nvc0/nvc0_vbo.c --- mesa-10.6.0~git20150616+10.6.5d327b37/src/gallium/drivers/nouveau/nvc0/nvc0_vbo.c 2015-02-25 15:01:21.000000000 +0000 +++ mesa-10.6.1~git20150703+10.6.6ff3ae8d/src/gallium/drivers/nouveau/nvc0/nvc0_vbo.c 2015-07-03 05:58:43.000000000 +0000 @@ -829,6 +829,7 @@ } PUSH_DATA(push, nvc0_prim_gl(info->mode)); #define NVC0_IB_ENTRY_1_NO_PREFETCH (1 << (31 - 8)) + PUSH_REFN(push, buf->bo, NOUVEAU_BO_RD | buf->domain); nouveau_pushbuf_space(push, 0, 0, 1); nouveau_pushbuf_data(push, buf->bo, offset, NVC0_IB_ENTRY_1_NO_PREFETCH | size); diff -Nru mesa-10.6.0~git20150616+10.6.5d327b37/src/gbm/backends/dri/gbm_dri.c mesa-10.6.1~git20150703+10.6.6ff3ae8d/src/gbm/backends/dri/gbm_dri.c --- mesa-10.6.0~git20150616+10.6.5d327b37/src/gbm/backends/dri/gbm_dri.c 2015-06-16 10:39:48.000000000 +0000 +++ mesa-10.6.1~git20150703+10.6.6ff3ae8d/src/gbm/backends/dri/gbm_dri.c 2015-07-03 05:58:43.000000000 +0000 @@ -311,6 +311,14 @@ if (search_paths == NULL) search_paths = DEFAULT_DRIVER_DIR; + /* Temporarily work around dri driver libs that need symbols in libglapi + * but don't automatically link it in. + */ + /* XXX: Library name differs on per platforms basis. Update this as + * osx/cygwin/windows/bsd gets support for GBM.. + */ + dlopen("libglapi.so.0", RTLD_LAZY | RTLD_GLOBAL); + dri->driver = NULL; end = search_paths + strlen(search_paths); for (p = search_paths; p < end && dri->driver == NULL; p = next + 1) { diff -Nru mesa-10.6.0~git20150616+10.6.5d327b37/src/gbm/Makefile.am mesa-10.6.1~git20150703+10.6.6ff3ae8d/src/gbm/Makefile.am --- mesa-10.6.0~git20150616+10.6.5d327b37/src/gbm/Makefile.am 2015-02-25 15:01:21.000000000 +0000 +++ mesa-10.6.1~git20150703+10.6.6ff3ae8d/src/gbm/Makefile.am 2015-07-03 05:58:43.000000000 +0000 @@ -52,7 +52,8 @@ $(LIBDRM_CFLAGS) libgbm_la_LIBADD += \ - libgbm_dri.la $(top_builddir)/src/mapi/shared-glapi/libglapi.la $(LIBDRM_LIBS) + libgbm_dri.la \ + $(LIBDRM_LIBS) endif TESTS = gbm-symbols-check diff -Nru mesa-10.6.0~git20150616+10.6.5d327b37/src/glsl/ast_to_hir.cpp mesa-10.6.1~git20150703+10.6.6ff3ae8d/src/glsl/ast_to_hir.cpp --- mesa-10.6.0~git20150616+10.6.5d327b37/src/glsl/ast_to_hir.cpp 2015-06-16 10:39:48.000000000 +0000 +++ mesa-10.6.1~git20150703+10.6.6ff3ae8d/src/glsl/ast_to_hir.cpp 2015-07-03 05:58:43.000000000 +0000 @@ -2086,7 +2086,7 @@ * with an array of size N, all elements of the array from binding * through binding + N - 1 must be within this range." */ - unsigned limit = ctx->Const.Program[state->stage].MaxTextureImageUnits; + unsigned limit = ctx->Const.MaxCombinedTextureImageUnits; if (max_index >= limit) { _mesa_glsl_error(loc, state, "layout(binding = %d) for %d samplers " diff -Nru mesa-10.6.0~git20150616+10.6.5d327b37/src/glsl/builtin_variables.cpp mesa-10.6.1~git20150703+10.6.6ff3ae8d/src/glsl/builtin_variables.cpp --- mesa-10.6.0~git20150616+10.6.5d327b37/src/glsl/builtin_variables.cpp 2015-06-16 10:39:48.000000000 +0000 +++ mesa-10.6.1~git20150703+10.6.6ff3ae8d/src/glsl/builtin_variables.cpp 2015-07-03 05:58:43.000000000 +0000 @@ -876,9 +876,9 @@ builtin_variable_generator::generate_gs_special_vars() { add_output(VARYING_SLOT_LAYER, int_t, "gl_Layer"); - if (state->ARB_viewport_array_enable) + if (state->is_version(410, 0) || state->ARB_viewport_array_enable) add_output(VARYING_SLOT_VIEWPORT, int_t, "gl_ViewportIndex"); - if (state->ARB_gpu_shader5_enable) + if (state->is_version(400, 0) || state->ARB_gpu_shader5_enable) add_system_value(SYSTEM_VALUE_INVOCATION_ID, int_t, "gl_InvocationID"); /* Although gl_PrimitiveID appears in tessellation control and tessellation @@ -946,7 +946,7 @@ var->enable_extension_warning("GL_AMD_shader_stencil_export"); } - if (state->ARB_sample_shading_enable) { + if (state->is_version(400, 0) || state->ARB_sample_shading_enable) { add_system_value(SYSTEM_VALUE_SAMPLE_ID, int_t, "gl_SampleID"); add_system_value(SYSTEM_VALUE_SAMPLE_POS, vec2_t, "gl_SamplePosition"); /* From the ARB_sample_shading specification: @@ -959,11 +959,11 @@ add_output(FRAG_RESULT_SAMPLE_MASK, array(int_t, 1), "gl_SampleMask"); } - if (state->ARB_gpu_shader5_enable) { + if (state->is_version(400, 0) || state->ARB_gpu_shader5_enable) { add_system_value(SYSTEM_VALUE_SAMPLE_MASK_IN, array(int_t, 1), "gl_SampleMaskIn"); } - if (state->ARB_fragment_layer_viewport_enable) { + if (state->is_version(430, 0) || state->ARB_fragment_layer_viewport_enable) { add_input(VARYING_SLOT_LAYER, int_t, "gl_Layer"); add_input(VARYING_SLOT_VIEWPORT, int_t, "gl_ViewportIndex"); } diff -Nru mesa-10.6.0~git20150616+10.6.5d327b37/src/glsl/ir_function.cpp mesa-10.6.1~git20150703+10.6.6ff3ae8d/src/glsl/ir_function.cpp --- mesa-10.6.0~git20150616+10.6.5d327b37/src/glsl/ir_function.cpp 2015-01-14 13:02:07.000000000 +0000 +++ mesa-10.6.1~git20150703+10.6.6ff3ae8d/src/glsl/ir_function.cpp 2015-07-03 05:58:43.000000000 +0000 @@ -148,9 +148,11 @@ if (from_type == to_type) return PARAMETER_EXACT_MATCH; - /* XXX: When ARB_gpu_shader_fp64 support is added, check for float->double, - * and int/uint->double conversions - */ + if (to_type->base_type == GLSL_TYPE_DOUBLE) { + if (from_type->base_type == GLSL_TYPE_FLOAT) + return PARAMETER_FLOAT_TO_DOUBLE; + return PARAMETER_INT_TO_DOUBLE; + } if (to_type->base_type == GLSL_TYPE_FLOAT) return PARAMETER_INT_TO_FLOAT; diff -Nru mesa-10.6.0~git20150616+10.6.5d327b37/src/mesa/drivers/common/meta_tex_subimage.c mesa-10.6.1~git20150703+10.6.6ff3ae8d/src/mesa/drivers/common/meta_tex_subimage.c --- mesa-10.6.0~git20150616+10.6.5d327b37/src/mesa/drivers/common/meta_tex_subimage.c 2015-06-16 10:39:48.000000000 +0000 +++ mesa-10.6.1~git20150703+10.6.6ff3ae8d/src/mesa/drivers/common/meta_tex_subimage.c 2015-07-03 05:58:43.000000000 +0000 @@ -34,6 +34,7 @@ #include "macros.h" #include "meta.h" #include "pbo.h" +#include "readpix.h" #include "shaderapi.h" #include "state.h" #include "teximage.h" @@ -257,6 +258,7 @@ GLuint pbo = 0, pbo_tex = 0, fbos[2] = { 0, 0 }; int full_height, image_height; struct gl_texture_image *pbo_tex_image; + struct gl_renderbuffer *rb = NULL; GLenum status; bool success = false; int z; @@ -273,6 +275,13 @@ if (ctx->_ImageTransferState) return false; + + if (!tex_image) { + rb = ctx->ReadBuffer->_ColorReadBuffer; + if (_mesa_need_rgb_to_luminance_conversion(rb->Format, format)) + return false; + } + /* For arrays, use a tall (height * depth) 2D texture but taking into * account the inter-image padding specified with the image height packing * property. diff -Nru mesa-10.6.0~git20150616+10.6.5d327b37/src/mesa/drivers/dri/i965/gen7_vs_state.c mesa-10.6.1~git20150703+10.6.6ff3ae8d/src/mesa/drivers/dri/i965/gen7_vs_state.c --- mesa-10.6.0~git20150616+10.6.5d327b37/src/mesa/drivers/dri/i965/gen7_vs_state.c 2015-06-16 10:39:48.000000000 +0000 +++ mesa-10.6.1~git20150703+10.6.6ff3ae8d/src/mesa/drivers/dri/i965/gen7_vs_state.c 2015-07-03 05:58:43.000000000 +0000 @@ -43,17 +43,51 @@ int dwords = brw->gen >= 8 ? 11 : 7; BEGIN_BATCH(dwords); OUT_BATCH(opcode << 16 | (dwords - 2)); - OUT_BATCH(active ? stage_state->push_const_size : 0); - OUT_BATCH(0); + + /* Workaround for SKL+ (we use option #2 until we have a need for more + * constant buffers). This comes from the documentation for 3DSTATE_CONSTANT_* + * + * The driver must ensure The following case does not occur without a flush + * to the 3D engine: 3DSTATE_CONSTANT_* with buffer 3 read length equal to + * zero committed followed by a 3DSTATE_CONSTANT_* with buffer 0 read length + * not equal to zero committed. Possible ways to avoid this condition + * include: + * 1. always force buffer 3 to have a non zero read length + * 2. always force buffer 0 to a zero read length + */ + if (brw->gen >= 9 && active) { + OUT_BATCH(0); + OUT_BATCH(stage_state->push_const_size); + } else { + OUT_BATCH(active ? stage_state->push_const_size : 0); + OUT_BATCH(0); + } /* Pointer to the constant buffer. Covered by the set of state flags * from gen6_prepare_wm_contants */ - OUT_BATCH(active ? (stage_state->push_const_offset | mocs) : 0); - OUT_BATCH(0); - OUT_BATCH(0); - OUT_BATCH(0); - if (brw->gen >= 8) { + if (brw->gen >= 9 && active) { + OUT_BATCH(0); + OUT_BATCH(0); + OUT_BATCH(0); + OUT_BATCH(0); + /* XXX: When using buffers other than 0, you need to specify the + * graphics virtual address regardless of INSPM/debug bits + */ + OUT_RELOC64(brw->batch.bo, I915_GEM_DOMAIN_RENDER, 0, + stage_state->push_const_offset); + OUT_BATCH(0); + OUT_BATCH(0); + } else if (brw->gen>= 8) { + OUT_BATCH(active ? (stage_state->push_const_offset | mocs) : 0); + OUT_BATCH(0); + OUT_BATCH(0); + OUT_BATCH(0); + OUT_BATCH(0); + OUT_BATCH(0); + OUT_BATCH(0); OUT_BATCH(0); + } else { + OUT_BATCH(active ? (stage_state->push_const_offset | mocs) : 0); OUT_BATCH(0); OUT_BATCH(0); OUT_BATCH(0); diff -Nru mesa-10.6.0~git20150616+10.6.5d327b37/src/mesa/main/mtypes.h mesa-10.6.1~git20150703+10.6.6ff3ae8d/src/mesa/main/mtypes.h --- mesa-10.6.0~git20150616+10.6.5d327b37/src/mesa/main/mtypes.h 2015-06-16 10:39:48.000000000 +0000 +++ mesa-10.6.1~git20150703+10.6.6ff3ae8d/src/mesa/main/mtypes.h 2015-07-03 05:58:43.000000000 +0000 @@ -2827,6 +2827,8 @@ mtx_t Mutex; + GLchar *Label; /**< GL_KHR_debug */ + /** * Programs used for rendering * diff -Nru mesa-10.6.0~git20150616+10.6.5d327b37/src/mesa/main/objectlabel.c mesa-10.6.1~git20150703+10.6.6ff3ae8d/src/mesa/main/objectlabel.c --- mesa-10.6.0~git20150616+10.6.5d327b37/src/mesa/main/objectlabel.c 2015-06-16 10:39:48.000000000 +0000 +++ mesa-10.6.1~git20150703+10.6.6ff3ae8d/src/mesa/main/objectlabel.c 2015-07-03 05:58:43.000000000 +0000 @@ -30,6 +30,7 @@ #include "enums.h" #include "fbobject.h" #include "objectlabel.h" +#include "pipelineobj.h" #include "queryobj.h" #include "samplerobj.h" #include "shaderobj.h" @@ -214,8 +215,13 @@ } break; case GL_PROGRAM_PIPELINE: - /* requires GL 4.2 */ - goto invalid_enum; + { + struct gl_pipeline_object *pipe = + _mesa_lookup_pipeline_object(ctx, name); + if (pipe) + labelPtr = &pipe->Label; + } + break; default: goto invalid_enum; } diff -Nru mesa-10.6.0~git20150616+10.6.5d327b37/src/mesa/main/pipelineobj.c mesa-10.6.1~git20150703+10.6.6ff3ae8d/src/mesa/main/pipelineobj.c --- mesa-10.6.0~git20150616+10.6.5d327b37/src/mesa/main/pipelineobj.c 2015-06-16 10:39:48.000000000 +0000 +++ mesa-10.6.1~git20150703+10.6.6ff3ae8d/src/mesa/main/pipelineobj.c 2015-07-03 05:58:43.000000000 +0000 @@ -65,6 +65,7 @@ _mesa_reference_shader_program(ctx, &obj->ActiveProgram, NULL); mtx_destroy(&obj->Mutex); + free(obj->Label); ralloc_free(obj); } @@ -136,8 +137,8 @@ * a non-existent ID. The spec defines ID 0 as being technically * non-existent. */ -static inline struct gl_pipeline_object * -lookup_pipeline_object(struct gl_context *ctx, GLuint id) +struct gl_pipeline_object * +_mesa_lookup_pipeline_object(struct gl_context *ctx, GLuint id) { if (id == 0) return NULL; @@ -225,7 +226,7 @@ { GET_CURRENT_CONTEXT(ctx); - struct gl_pipeline_object *pipe = lookup_pipeline_object(ctx, pipeline); + struct gl_pipeline_object *pipe = _mesa_lookup_pipeline_object(ctx, pipeline); struct gl_shader_program *shProg = NULL; GLbitfield any_valid_stages; @@ -337,7 +338,7 @@ { GET_CURRENT_CONTEXT(ctx); struct gl_shader_program *shProg = NULL; - struct gl_pipeline_object *pipe = lookup_pipeline_object(ctx, pipeline); + struct gl_pipeline_object *pipe = _mesa_lookup_pipeline_object(ctx, pipeline); if (program != 0) { shProg = _mesa_lookup_shader_program_err(ctx, program, @@ -399,7 +400,7 @@ */ if (pipeline) { /* non-default pipeline object */ - newObj = lookup_pipeline_object(ctx, pipeline); + newObj = _mesa_lookup_pipeline_object(ctx, pipeline); if (!newObj) { _mesa_error(ctx, GL_INVALID_OPERATION, "glBindProgramPipeline(non-gen name)"); @@ -468,7 +469,7 @@ for (i = 0; i < n; i++) { struct gl_pipeline_object *obj = - lookup_pipeline_object(ctx, pipelines[i]); + _mesa_lookup_pipeline_object(ctx, pipelines[i]); if (obj) { assert(obj->Name == pipelines[i]); @@ -568,7 +569,7 @@ { GET_CURRENT_CONTEXT(ctx); - struct gl_pipeline_object *obj = lookup_pipeline_object(ctx, pipeline); + struct gl_pipeline_object *obj = _mesa_lookup_pipeline_object(ctx, pipeline); if (obj == NULL) return GL_FALSE; @@ -582,7 +583,7 @@ _mesa_GetProgramPipelineiv(GLuint pipeline, GLenum pname, GLint *params) { GET_CURRENT_CONTEXT(ctx); - struct gl_pipeline_object *pipe = lookup_pipeline_object(ctx, pipeline); + struct gl_pipeline_object *pipe = _mesa_lookup_pipeline_object(ctx, pipeline); /* Are geometry shaders available in this context? */ @@ -820,7 +821,7 @@ { GET_CURRENT_CONTEXT(ctx); - struct gl_pipeline_object *pipe = lookup_pipeline_object(ctx, pipeline); + struct gl_pipeline_object *pipe = _mesa_lookup_pipeline_object(ctx, pipeline); if (!pipe) { _mesa_error(ctx, GL_INVALID_OPERATION, @@ -838,7 +839,7 @@ { GET_CURRENT_CONTEXT(ctx); - struct gl_pipeline_object *pipe = lookup_pipeline_object(ctx, pipeline); + struct gl_pipeline_object *pipe = _mesa_lookup_pipeline_object(ctx, pipeline); if (!pipe) { _mesa_error(ctx, GL_INVALID_VALUE, diff -Nru mesa-10.6.0~git20150616+10.6.5d327b37/src/mesa/main/pipelineobj.h mesa-10.6.1~git20150703+10.6.6ff3ae8d/src/mesa/main/pipelineobj.h --- mesa-10.6.0~git20150616+10.6.5d327b37/src/mesa/main/pipelineobj.h 2015-06-16 10:39:48.000000000 +0000 +++ mesa-10.6.1~git20150703+10.6.6ff3ae8d/src/mesa/main/pipelineobj.h 2015-07-03 05:58:43.000000000 +0000 @@ -45,6 +45,9 @@ extern void _mesa_free_pipeline_data(struct gl_context *ctx); +extern struct gl_pipeline_object * +_mesa_lookup_pipeline_object(struct gl_context *ctx, GLuint id); + extern void _mesa_reference_pipeline_object_(struct gl_context *ctx, struct gl_pipeline_object **ptr, diff -Nru mesa-10.6.0~git20150616+10.6.5d327b37/src/mesa/main/readpix.c mesa-10.6.1~git20150703+10.6.6ff3ae8d/src/mesa/main/readpix.c --- mesa-10.6.0~git20150616+10.6.5d327b37/src/mesa/main/readpix.c 2015-06-16 10:39:48.000000000 +0000 +++ mesa-10.6.1~git20150703+10.6.6ff3ae8d/src/mesa/main/readpix.c 2015-07-03 05:58:43.000000000 +0000 @@ -46,15 +46,18 @@ /** * Return true if the conversion L=R+G+B is needed. */ -static GLboolean -need_rgb_to_luminance_conversion(mesa_format texFormat, GLenum format) +GLboolean +_mesa_need_rgb_to_luminance_conversion(mesa_format texFormat, GLenum format) { GLenum baseTexFormat = _mesa_get_format_base_format(texFormat); return (baseTexFormat == GL_RG || baseTexFormat == GL_RGB || baseTexFormat == GL_RGBA) && - (format == GL_LUMINANCE || format == GL_LUMINANCE_ALPHA); + (format == GL_LUMINANCE || + format == GL_LUMINANCE_ALPHA || + format == GL_LUMINANCE_INTEGER_EXT || + format == GL_LUMINANCE_ALPHA_INTEGER_EXT); } @@ -102,7 +105,7 @@ * have any effect anyway. */ if (_mesa_get_format_datatype(texFormat) == GL_UNSIGNED_NORMALIZED && - !need_rgb_to_luminance_conversion(texFormat, format)) { + !_mesa_need_rgb_to_luminance_conversion(texFormat, format)) { transferOps &= ~IMAGE_CLAMP_BIT; } @@ -146,7 +149,7 @@ default: /* Color formats. */ - if (need_rgb_to_luminance_conversion(rb->Format, format)) { + if (_mesa_need_rgb_to_luminance_conversion(rb->Format, format)) { return GL_TRUE; } @@ -418,7 +421,7 @@ const struct gl_pixelstore_attrib *packing ) { GLbitfield transferOps; - bool dst_is_integer, dst_is_luminance, needs_rebase; + bool dst_is_integer, convert_rgb_to_lum, needs_rebase; int dst_stride, src_stride, rb_stride; uint32_t dst_format, src_format; GLubyte *dst, *map; @@ -439,10 +442,8 @@ dst_is_integer = _mesa_is_enum_format_integer(format); dst_stride = _mesa_image_row_stride(packing, width, format, type); dst_format = _mesa_format_from_format_and_type(format, type); - dst_is_luminance = format == GL_LUMINANCE || - format == GL_LUMINANCE_ALPHA || - format == GL_LUMINANCE_INTEGER_EXT || - format == GL_LUMINANCE_ALPHA_INTEGER_EXT; + convert_rgb_to_lum = + _mesa_need_rgb_to_luminance_conversion(rb->Format, format); dst = (GLubyte *) _mesa_image_address2d(packing, pixels, width, height, format, type, 0, 0); @@ -490,7 +491,7 @@ */ assert(!transferOps || (transferOps && !dst_is_integer)); - needs_rgba = transferOps || dst_is_luminance; + needs_rgba = transferOps || convert_rgb_to_lum; rgba = NULL; if (needs_rgba) { uint32_t rgba_format; @@ -563,7 +564,7 @@ * If the dst format is Luminance, we need to do the conversion by computing * L=R+G+B values. */ - if (!dst_is_luminance) { + if (!convert_rgb_to_lum) { _mesa_format_convert(dst, dst_format, dst_stride, src, src_format, src_stride, width, height, diff -Nru mesa-10.6.0~git20150616+10.6.5d327b37/src/mesa/main/readpix.h mesa-10.6.1~git20150703+10.6.6ff3ae8d/src/mesa/main/readpix.h --- mesa-10.6.0~git20150616+10.6.5d327b37/src/mesa/main/readpix.h 2014-04-20 07:52:19.000000000 +0000 +++ mesa-10.6.1~git20150703+10.6.6ff3ae8d/src/mesa/main/readpix.h 2015-07-03 05:58:43.000000000 +0000 @@ -37,6 +37,9 @@ _mesa_readpixels_needs_slow_path(const struct gl_context *ctx, GLenum format, GLenum type, GLboolean uses_blit); +extern GLboolean +_mesa_need_rgb_to_luminance_conversion(mesa_format texFormat, GLenum format); + extern void _mesa_readpixels(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height, diff -Nru mesa-10.6.0~git20150616+10.6.5d327b37/VERSION mesa-10.6.1~git20150703+10.6.6ff3ae8d/VERSION --- mesa-10.6.0~git20150616+10.6.5d327b37/VERSION 2015-06-16 10:39:48.000000000 +0000 +++ mesa-10.6.1~git20150703+10.6.6ff3ae8d/VERSION 2015-07-03 05:58:42.000000000 +0000 @@ -1 +1 @@ -10.6.0 +10.6.1