Mesa (17.1): 39 new commits

Emil Velikov evelikov at kemper.freedesktop.org
Mon May 22 09:59:05 UTC 2017


URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=4da22e2b68789d6724f2f59a235a73af4f1b8557
Author: Ilia Mirkin <imirkin at alum.mit.edu>
Date:   Sat May 20 03:11:12 2017 -0400

    nvc0/ir: SHLADD's middle source must be an immediate
    
    The instruction encodings only allow for immediates. Don't try to
    replace a zero (which is dumb to have in that op in any case) with RZ.
    
    Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
    Cc: mesa-stable at lists.freedesktop.org
    (cherry picked from commit 82e77d4e4484b5d4f6a7b4751a17c882e6d2ad69)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=88309a985a72d26c68c0e908919dd3da0076a8ab
Author: Emil Velikov <emil.velikov at collabora.com>
Date:   Thu May 18 21:27:01 2017 +0100

    automake: add SWR LLVM gen_builder.hpp workaround
    
    As gen_builder.hpp file is generated, it contains information that is
    specific to the LLVM version it originates from.
    
    As suggested by Tim, the file seems to be forwards compatible. So in
    order to produce ship a file which will work everywhere we should be
    using earlies supported LLVM - 3.9.
    
    With this we're back on track and can build all of mesa without
    python/mako/flex and friends.
    
    In the long term we might want to see if the python generators can be
    updated to produce LLVM version agnostic files. At least within the
    range supported by SWR.
    
    Cc: <mesa-stable at lists.freedesktop.org>
    Cc: Chuck Atkins <chuck.atkins at kitware.com>
    Signed-off-by: Emil Velikov <emil.velikov at collabora.com>
    Reviewed-by: Tim Rowley <timothy.o.rowley at intel.com>
    (cherry picked from commit 5233eaf9ee85bb551ea38c1e2bbd8ac167754e50)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=3922a43bf2aa854e55363a9d04f580c065d60497
Author: Johnson Lin <johnson.lin at intel.com>
Date:   Thu May 4 14:37:52 2017 +0800

    nir/lower_tex: Fix minor error in YUV color conversion matrix
    
    The matrix used for YCbCr to RGB is listed in:
    
        https://en.wikipedia.org/wiki/YCbCr
    
    There was an error in converting the offsets from integers to unorm
    values: 0.0625=16/256 should be 16.0/255,and 0.5=128.0/256 should be
    128.0/255.  With this fix, the CSC result is bit aligned with wikipedia's
    conversion result and FFMPeg's result.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=100854
    Reviewed-by: Eric Anholt <eric at anholt.net>
    Reviewed-by: Kristian H. Kristensen <hoegsberg at google.com>
    (cherry picked from commit a6fb943f3eb86ca501a7e7b8d4621ba215f91133)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=832f6b45433aceb75dda28d2d5b5d26ee9d43e70
Author: Rob Herring <robh at kernel.org>
Date:   Fri May 12 17:05:53 2017 -0500

    virgl: fix virgl_bo_transfer_{put, get} box struct copy
    
    Commit 3dfe61ed6ec6 ("gallium: decrease the size of pipe_box - 24 -> 16
    bytes") changed the size of pipe_box, but the virgl code was relying on
    pipe_box and drm_virtgpu_3d_box structs having the same size/layout doing
    a struct copy. Copy the fields one by one instead.
    
    Cc: Marek Olšák <marek.olsak at amd.com>
    Cc: Dave Airlie <airlied at redhat.com>
    Fixes: 3dfe61ed6ec ("gallium: decrease the size of pipe_box - 24 -> 16 bytes")
    Signed-off-by: Rob Herring <robh at kernel.org>
    Reviewed-by: Marek Olšák <marek.olsak at amd.com>
    (cherry picked from commit 5771ecc90ee7625564c1d3cea1a4fc382b0f58b5)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b6f92084bd67a9d761285c64b9a6234ee8824a9d
Author: Emil Velikov <emil.velikov at collabora.com>
Date:   Thu May 18 19:07:08 2017 +0100

    egl: add g_egldispatchstubs.h to the release tarball
    
    Fixes: ce562f9e3fa ("EGL: Implement the libglvnd interface for EGL (v3)")
    Signed-off-by: Emil Velikov <emil.velikov at collabora.com>
    (cherry picked from commit e19ea928b9ba3181d3416a8f388ee8276238dd76)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=50cd4e37d9ffc94a0a042a99d1a3512089c34811
Author: Nanley Chery <nanley.g.chery at intel.com>
Date:   Thu May 11 15:57:59 2017 -0700

    i965/formats: Update the three-channel DXT1 mappings
    
    The procedure for decompressing an opaque DXT1 OpenGL format is
    dependant on the comparison of two colors stored in the first 32 bits of
    the compressed block. Here's the specified OpenGL behavior for
    reference:
    
       The RGB color for a texel at location (x,y) in the block is given by:
    
          RGB0,              if color0 > color1 and code(x,y) == 0
          RGB1,              if color0 > color1 and code(x,y) == 1
          (2*RGB0+RGB1)/3,   if color0 > color1 and code(x,y) == 2
          (RGB0+2*RGB1)/3,   if color0 > color1 and code(x,y) == 3
    
          RGB0,              if color0 <= color1 and code(x,y) == 0
          RGB1,              if color0 <= color1 and code(x,y) == 1
          (RGB0+RGB1)/2,     if color0 <= color1 and code(x,y) == 2
          BLACK,             if color0 <= color1 and code(x,y) == 3
    
    The sampling operation performed on an opaque DXT1 Intel format essentially
    hard-codes the comparison result of the two colors as color0 > color1.
    This means that the behavior is incompatible with OpenGL. This is stated
    in the SKL PRM, Vol 5: Memory Views:
    
       Opaque Textures (DXT1_RGB)
          Texture format DXT1_RGB is identical to DXT1, with the exception that the
          One-bit Alpha encoding is removed. Color 0 and Color 1 are not compared, and
          the resulting texel color is derived strictly from the Opaque Color Encoding.
          The alpha channel defaults to 1.0.
    
          Programming Note
          Context: Opaque Textures (DXT1_RGB)
          The behavior of this format is not compliant with the OGL spec.
    
    The opaque and non-opaque DXT1 OpenGL formats are specified to be
    decoded in exactly the same way except the BLACK value must have a
    transparent alpha channel in the latter. Use the four-channel BC1 Intel
    formats with the alpha set to 1 to provide the behavior required by the
    spec. Note that the alpha is already set to 1 for RGB formats in
    brw_get_texture_swizzle().
    
    v2: Provide a more detailed commit message (Kenneth Graunke).
    v3: Ensure the alpha channel is set to 1 for DXT1 formats.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=100925
    Cc: <mesa-stable at lists.freedesktop.org>
    Acked-by: Tapani Pälli <tapani.palli at intel.com> (v1)
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
    Signed-off-by: Nanley Chery <nanley.g.chery at intel.com>
    (cherry picked from commit 688ddb85c8c3357d8e1e9d360c74cd728b128d98)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6e977a358f19a8cb1e48b9b8d5b95cb168a3d850
Author: Nanley Chery <nanley.g.chery at intel.com>
Date:   Thu May 11 15:57:59 2017 -0700

    anv/formats: Update the three-channel BC1 mappings
    
    The procedure for decompressing an opaque BC1 Vulkan format is dependant on the
    comparison of two colors stored in the first 32 bits of the compressed block.
    Here's the specified OpenGL (and Vulkan) behavior for reference:
    
       The RGB color for a texel at location (x,y) in the block is given by:
    
          RGB0,              if color0 > color1 and code(x,y) == 0
          RGB1,              if color0 > color1 and code(x,y) == 1
          (2*RGB0+RGB1)/3,   if color0 > color1 and code(x,y) == 2
          (RGB0+2*RGB1)/3,   if color0 > color1 and code(x,y) == 3
    
          RGB0,              if color0 <= color1 and code(x,y) == 0
          RGB1,              if color0 <= color1 and code(x,y) == 1
          (RGB0+RGB1)/2,     if color0 <= color1 and code(x,y) == 2
          BLACK,             if color0 <= color1 and code(x,y) == 3
    
    The sampling operation performed on an opaque DXT1 Intel format essentially
    hard-codes the comparison result of the two colors as color0 > color1. This
    means that the behavior is incompatible with OpenGL and Vulkan. This is stated
    in the SKL PRM, Vol 5: Memory Views:
    
       Opaque Textures (DXT1_RGB)
          Texture format DXT1_RGB is identical to DXT1, with the exception that the
          One-bit Alpha encoding is removed. Color 0 and Color 1 are not compared, and
          the resulting texel color is derived strictly from the Opaque Color Encoding.
          The alpha channel defaults to 1.0.
    
          Programming Note
          Context: Opaque Textures (DXT1_RGB)
          The behavior of this format is not compliant with the OGL spec.
    
    The opaque and non-opaque BC1 Vulkan formats are specified to be decoded in
    exactly the same way except the BLACK value must have a transparent alpha
    channel in the latter. Use the four-channel BC1 Intel formats with the alpha
    set to 1 to provide the behavior required by the spec.
    
    v2 (Kenneth Graunke):
    - Provide a more detailed commit message.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=100925
    Cc: <mesa-stable at lists.freedesktop.org>
    Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
    Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>
    Signed-off-by: Nanley Chery <nanley.g.chery at intel.com>
    (cherry picked from commit 56458cb168bf79ae51ba1efc3acec15874cc34a9)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e0df523795e406d5ae0cbc78fc8dc64b06ebb20f
Author: Tom Stellard <tstellar at redhat.com>
Date:   Fri May 5 01:07:00 2017 +0000

    gallivm: Make sure module has the correct data layout when pass manager runs
    
    The datalayout for modules was purposely not being set in order to work around
    the fact that the ExecutionEngine requires that the module's datalayout
    matches the datalayout of the TargetMachine that the ExecutionEngine is
    using.
    
    When the pass manager runs on a module with no datalayout, it uses
    the default datalayout which is little-endian.  This causes problems
    on big-endian targets, because some optimizations that are legal on
    little-endian or illegal on big-endian.
    
    To resolve this, we set the datalayout prior to running the pass
    manager, and then clear it before creating the ExectionEngine.
    
    This patch fixes a lot of piglit tests on big-endian ppc64.
    
    Cc: mesa-stable at lists.freedesktop.org
    (cherry picked from commit 14e525a4d70649eb10185bebd2aef9dc339fb5e6)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6199b3d485a1b5cd609a458f6b23e0f81c0f1baa
Author: Chad Versace <chadversary at chromium.org>
Date:   Thu May 11 21:49:14 2017 -0700

    egl: Partially revert 23c86c74, fix eglMakeCurrent
    
    Fixes regressions in Android CtsVerifier.apk on Intel Chrome OS devices
    due to incorrect error handling in eglMakeCurrent. See below on how to
    confirm the regression is fixed.
    
    This partially reverts
    
        commit 23c86c74cc450a23848b85cfe914376caede1cdf
        Author:  Chad Versace <chadversary at chromium.org>
        Subject: egl: Emit error when EGLSurface is lost
    
    The problem with commit 23c86c74 is that, once an EGLSurface became
    lost, the app could never unbind the bad surface. Each attempt to unbind
    the bad surface with eglMakeCurrent failed with EGL_BAD_CURRENT_SURFACE.
    
    Specificaly, the bad commit added the error handling below. #2 and #3
    were right, but #1 was wrong.
    
        1. eglMakeCurrent emits EGL_BAD_CURRENT_SURFACE if the calling
           thread has unflushed commands and either previous surface is no
           longer valid.
    
        2. eglMakeCurrent emits EGL_BAD_NATIVE_WINDOW if either new surface
           is no longer valid.
    
        3. eglSwapBuffers emits EGL_BAD_NATIVE_WINDOW if the swapped surface
           is no longer valid.
    
    Whe I wrote the bad commit, I misunderstood the EGL spec language
    for #1. The correct behavior is, if I understand correctly now, is
    below. This patch doesn't implement the correct behavior, though, it
    just reverts the broken behavior.
    
        - Assume a bound EGLSurface is no longer valid.
        - Assume the bound EGLContext has unflushed commands.
        - The app calls eglMakeCurrent. The spec requires eglMakeCurrent to
          implicitly flush. After flushing, eglMakeCurrent emits
          EGL_BAD_CURRENT_SURFACE and does *not* alter the thread's
          current bindings.
        - If the app calls eglMakeCurrent again, and the app inserts no
          commands into the GL command stream between the two eglMakeCurrent
          calls, then this second eglMakeCurrent succeeds without emitting an
          error.
    
    How to confirm this fixes the regression:
    
        Download android-cts-verifier-7.1_r5-linux_x86-x86.zip from
        source.android.com, unpack, and `adb install CtsVerifier.apk`.
        Run test "Projection Cube". Click the Pass button (a
        green checkmark). Then run test "Projection Widget". Confirm that
        widgets are visible and that logcat does not complain about
        eglMakeCurrent failure.
    
        Then confirm there are no regressions in the cts-traded module that
        commit 263243b1 fixed:
    
            cts-tf > run cts --skip-preconditions --skip-device-info \
                     -m CtsCameraTestCases \
                     -t android.hardware.camera2.cts.RobustnessTest
    
        Tested with Chrome OS board "reef".
    
    Fixes: 23c86c74 (egl: Emit error when EGLSurface is lost)
    Acked-by: Tapani Pälli <tapani.palli at intel.com>
    Cc: "17.1" <mesa-stable at lists.freedesktop.org>
    Cc: Tomasz Figa <tfiga at chromium.org>
    Cc: Nicolas Boichat <drinkcat at chromium.org>
    Cc: Emil Velikov <emil.velikov at collabora.com>
    (cherry picked from commit 8f62d21bd72059d723f4626f76de6fec4a569616)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6c5bcc6473eaa01982122b51a6561edf94073767
Author: Rob Clark <robdclark at gmail.com>
Date:   Sun May 14 11:32:44 2017 -0400

    freedreno: fix crash when flush() but no rendering
    
    If we haven't created a batch, just bail in pipe->flush(), since there
    is nothing to do.
    
    Fixes crash in warsow, which creates a whole bunch of contexts used for
    nothing but texture uploads.
    
    Signed-off-by: Rob Clark <robdclark at gmail.com>
    (cherry picked from commit e4ad86952a197549894eb4c9a96af0c76dd95d18)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=15338b0d1903a85abc2dec14c76e87893627e992
Author: Daniel Stone <daniels at collabora.com>
Date:   Tue May 2 19:44:38 2017 +0100

    gbm/dri: Fix sign-extension in modifier query
    
    When we were assembling the unsigned 64-bit query return from its
    two signed 32-bit component parts, the lower half was getting
    sign-extended into the top half. Be more explicit about what we want to
    do.
    
    Fixes gbm_bo_get_modifier() returning ((1 << 64) - 1) rather than
    ((1 << 56) - 1), i.e. DRM_FORMAT_MOD_INVALID.
    
    Signed-off-by: Daniel Stone <daniels at collabora.com>
    Reviewed-by: Ben Widawsky <ben at bwidawsk.net>
    (cherry picked from commit 80ac89a952930f068a058a9eee3c2536832b10c9)
    Fixes: 8378c576abd ("gbm: Export a get modifiers")

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=700dcb9ab4a22e36f1de16187f6f6b2c61464edb
Author: Andres Gomez <agomez at igalia.com>
Date:   Mon May 8 20:57:35 2017 +0300

    bin/get-fixes-pick-list.sh: bring back the warning
    
    We warn again if there are more than one line with the "fixes:" tag.
    
    The warning is silenced when the commit has already landed or each
    fixes tag reference a commit that is in branch.
    
    v2:
     - Warn if any of the fixes tags has not landed (Emil)
    
    v3:
     - Remove unnecessary head command
     - Clarify commit message (Emil)
     - Skip already picked commits sooner (Emil)
    
    Signed-off-by: Andres Gomez <agomez at igalia.com>
    Reviewed-by: Emil Velikov <emil.velikov at collabora.com>
    (cherry picked from commit b7af0ddfef882b2e82db953ff0d3e57843604525)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=81bdf59610a4fdf1d986b76a2fc8598e0b0d35e8
Author: Andres Gomez <agomez at igalia.com>
Date:   Sat May 6 17:09:35 2017 +0300

    bin/get-fixes-pick-list.sh: don't warn if more than one, go over them
    
    If an identified commit was having more than one fix, we would warn
    about that and only treat the first.
    
    Now, we don't warn but treat all of them.
    
    Signed-off-by: Andres Gomez <agomez at igalia.com>
    Reviewed-by: Eric Engestrom <eric at engestrom.ch>
    (cherry picked from commit 77306e2afc4b2148b8532b6b4759af24cc135f6b)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=68e64d92bc416f700b0b4e00319f54a57acac052
Author: Juan A. Suarez Romero <jasuarez at igalia.com>
Date:   Wed Apr 5 20:18:42 2017 +0200

    bin/get-{extra,fixes}-pick-list.sh: improve output
    
    Show the commit hash and the title in a way that it is easier to copy
    and paste in the bin/.cherry-ignore-extra file if we want to ignore
    those commits for the future.
    
    v2:
    - Use printf instead echo (Eric Engestrom)
    
    Reviewed-by: Eric Engestrom <eric.engestrom at imgtec.com>
    Reviewed-by: Emil Velikov <emil.velikov at collabora.com>
    (cherry picked from commit 3af7f8275b806d42daaad6f700c3917f8e33d3e4)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=364048cf42520244625c9a9b1836ecaa9bc4b4f5
Author: Juan A. Suarez Romero <jasuarez at igalia.com>
Date:   Wed Apr 5 20:14:22 2017 +0200

    bin/get-{extra,fixes}-pick-list.sh: add support for ignore list
    
    Both scripts does not use a file with the commits to ignore. So if we
    have handled one of the suggested commits and decided we won't pick it,
    the scripts will continue suggesting them.
    
    v2:
    - Mark the candidates in bin/get-extra-pick-list.sh (Juan A. Suarez)
    - Use bin/.cherry-ignore to store rejected patches (Emil)
    
    Reviewed-by: Emil Velikov <emil.velikov at collabora.com>
    (cherry picked from commit 99b41631bb98d154df3dd01f17edd5e5a6a7d1f1)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=72a8fd8d50a8b4172a6be4bbe46ce5b980cf24ca
Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date:   Wed May 17 15:14:35 2017 +0200

    st/mesa: remove an incorrect assertion
    
    There is really no reason why the current DrawBuffer needs to be complete
    at this point. In particular, the assertion gets hit on the X server side
    in libglx when running .../piglit/bin/glx-get-current-display-ext -auto
    (which uses indirect GLX rendering).
    
    Fixes: 19b61799e3d0 ("st/mesa: don't cast the incomplete framebufer to st_framebuffer")
    Reported-by: Michel Dänzer <michel.daenzer at amd.com>
    Reviewed-by: Marek Olšák <marek.olsak at amd.com>
    (cherry picked from commit 377877ff5f5d08a1a417e8baf923b44c74f0d7e7)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=5cace16ac6f40bd6f6a685348d668f39c47755bc
Author: Chih-Wei Huang <cwhuang at android-x86.org>
Date:   Wed May 17 13:10:02 2017 +0800

    Android: correct libz dependency
    
    Commit 6facb0c0 ("android: fix libz dynamic library dependencies")
    unconditionally adds libz as a dependency to all shared libraries.
    That is unnecessary.
    
    Commit 85a9b1b5 introduced libz as a dependency to libmesa_util.
    So only the shared libraries that use libmesa_util need libz.
    
    Fix Android Lollipop build by adding the include path of zlib to
    libmesa_util explicitly instead of getting the path implicitly
    from zlib since it doesn't export the include path in Lollipop.
    
    Fixes: 6facb0c0 "android: fix libz dynamic library dependencies"
    
    Signed-off-by: Chih-Wei Huang <cwhuang at linux.org.tw>
    Reviewed-by: Tapani Pälli <tapani.palli at intel.com>
    Reviewed-by: Rob Herring <robh at kernel.org>
    (cherry picked from commit bfc0c23843008fd510afa263ebe371bef3346445)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d6439cb2975aebd2be03e032fbeea86328159074
Author: Emil Velikov <emil.velikov at collabora.com>
Date:   Mon May 8 17:37:02 2017 +0100

    configure: remove unneeded bits around libunwind handling
    
    If libunwind is not found we'll fail at PKG_CHECK_MODULES, so the
    follow-up check will be false. Additionally the AM_CONDITIONAL is not
    used, so we can drop it.
    
    Fixes: 3bcef6aa245 ("configure.ac: honour --disable-libunwind if the .pc file is present")
    Signed-off-by: Emil Velikov <emil.velikov at collabora.com>
    (cherry picked from commit 709468a8088f7d9b3472ca6993e983a2361b5509)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=0e4c34b347f635709fd435aa08538fe0947b57ee
Author: Emil Velikov <emil.velikov at collabora.com>
Date:   Thu May 4 16:17:28 2017 +0100

    radeon: automake: remove unneeded elf Cflags/Libs
    
    No longer required as of commit d90bf4ef3e1 ("radeon: remove unused
    radeon_elf_util.{c,h}")
    
    v2: Add the required libelf link in src/amd/Makefile.common.am
    
    Fixes: d90bf4ef3e1 ("radeon: remove unused  radeon_elf_util.{c,h}")
    Cc: Timothy Arceri <tarceri at itsqueeze.com>
    Signed-off-by: Emil Velikov <emil.velikov at collabora.com>
    Reviewed-by: Marek Olšák <marek.olsak at amd.com> (v1)
    (cherry picked from commit 88b8aaea3b172d4a0224bcadf5f12e2ae6119a0c)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=f56fff79e73770cd7755547dacbc7105e95170b9
Author: Grazvydas Ignotas <notasas at gmail.com>
Date:   Tue May 2 20:11:06 2017 +0300

    anv: don't leak DRM devices
    
    After successful drmGetDevices2() call, drmFreeDevices() needs to be
    called.
    
    Fixes: b1fb6e8d "anv: do not open random render node(s)"
    Signed-off-by: Grazvydas Ignotas <notasas at gmail.com>
    Reviewed-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl> # radv version
    (cherry picked from commit 0ef302638f2883789a3b39c2b6cfd20814efa0bb)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=70cbcb2d399bcf10a846016864bb0febaecf2997
Author: Grazvydas Ignotas <notasas at gmail.com>
Date:   Tue May 2 19:26:17 2017 +0300

    anv: fix possible stack corruption
    
    drmGetDevices2 takes count and not size. Probably hasn't caused problems
    yet in practice and was missed as setups with more than 8 DRM devices
    are not very common.
    
    Fixes: b1fb6e8d "anv: do not open random render node(s)"
    Signed-off-by: Grazvydas Ignotas <notasas at gmail.com>
    Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
    (cherry picked from commit e0aee8b667955675e2e6c647a88048b64bc2796e)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=5755f408749d79fac19bff893b4745d0a1b9f31f
Author: Samuel Iglesias Gonsálvez <siglesias at igalia.com>
Date:   Wed Apr 19 11:18:35 2017 +0200

    i965/vec4: load dvec3/4 uniforms first in the push constant buffer
    
    Reorder the uniforms to load first the dvec4-aligned variables in the
    push constant buffer and then push the vec4-aligned ones. It takes
    into account that the relocated uniforms should be aligned to their
    channel size.
    
    This fixes a bug were the dvec3/4 might be loaded one part on a GRF and
    the rest in next GRF, so the region parameters to read that could break
    the HW rules.
    
    v2:
    - Fix broken logic.
    - Add a comment to explain what should be needed to optimise the usage
      of the push constant buffer slots, as this patch does not pack the
      uniforms.
    
    v3:
    - Implemented the push constant buffer usage optimization.
    
    Signed-off-by: Samuel Iglesias Gonsálvez <siglesias at igalia.com>
    Cc: "17.1" <mesa-stable at lists.freedesktop.org>
    Acked-by: Francisco Jerez <currojerez at riseup.net>
    (cherry picked from commit e69e5c7006da80af62c9ef08dec215b3b4b30946)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=085efa0261cdfd7c082370a2da58895db3b427c1
Author: Samuel Iglesias Gonsálvez <siglesias at igalia.com>
Date:   Wed Apr 19 10:35:07 2017 +0200

    i965/vec4: fix swizzle and writemask when loading an uniform with constant offset
    
    It was setting XYWZ swizzle and writemask to all uniforms, no matter if they
    were a vector or scalar, so this can lead to problems when loading them
    to the push constant buffer.
    
    Moreover, 'shift' calculation was designed to calculate the offset in
    DWORDS, but it doesn't take into account DFs, so the calculated swizzle
    for the later ones was wrong.
    
    The indirect case is not changed because MOV INDIRECT will write
    to all components. Added an assert to verify that these uniforms
    are aligned.
    
    v2:
    - Fix 'shift' calculation (Curro)
    - Set both swizzle and writemask.
    - Add assert(shift == 0) for the indirect case.
    
    Signed-off-by: Samuel Iglesias Gonsálvez <siglesias at igalia.com>
    Cc: "17.1" <mesa-stable at lists.freedesktop.org>
    Reviewed-by: Francisco Jerez <currojerez at riseup.net>
    (cherry picked from commit 8aa6ada8384a961b37dfefec7f9e40e5a4e27ce7)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=2401051b16e1720c911ba8ed174cfa5200e28ee1
Author: Samuel Iglesias Gonsálvez <siglesias at igalia.com>
Date:   Fri May 5 10:42:15 2017 +0200

    i965/vec4/gs: restore the uniform values which was overwritten by failed vec4_gs_visitor execution
    
    We are going to add a packing feature to reduce the usage of the push
    constant buffer. One of the consequences is that 'nr_params' would be
    modified by vec4_visitor's run call, so we need to restore it if one of
    them failed before executing the fallback ones. Same thing happens to the
    uniforms values that would be reordered afterwards.
    
    Fixes GL45-CTS.arrays_of_arrays_gl.InteractionFunctionCalls2 when
    the dvec4 alignment and packing patch is applied.
    
    Signed-off-by: Samuel Iglesias Gonsálvez <siglesias at igalia.com>
    Cc: "17.1" <mesa-stable at lists.freedesktop.org>
    Acked-by: Francisco Jerez <currojerez at riseup.net>
    (cherry picked from commit 354f7f2cb9c7206e12646c79d8ff5becbaffa61b)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=4b14ad64d002bb550bcea90623b1b335823f026f
Author: Eric Anholt <eric at anholt.net>
Date:   Wed May 17 13:22:39 2017 -0700

    vc4: Don't allocate new BOs to avoid synchronization when they're shared.
    
    If X11 did a software fallback to the entire screen, we would throw out
    the BO the screen is scanning out from and allocate a new one.
    
    Cc: mesa-stable at lists.freedesktop.org
    (cherry picked from commit e8ea42d245cb6adc7f16ee4e96fd89d905d2163a)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=bcd09ef32e6262ceb56cd1c4edbd73c09338ce00
Author: Hans de Goede <hdegoede at redhat.com>
Date:   Mon Mar 20 08:41:26 2017 +0100

    glxglvnddispatch: Add missing dispatch for GetDriverConfig
    
    Together with some fixes to xdriinfo this fixes xdriinfo not working
    with glvnd.
    
    Since apps (xdriinfo) expect GetDriverConfig to work without going to
    need through the dance to setup a glxcontext (which is a reasonable
    expectation IMHO), the dispatch for this ends up significantly different
    then any other dispatch function.
    
    This patch gets the job done, but I'm not really happy with how this
    patch turned out, suggestions for a better fix are welcome.
    
    Cc: Kyle Brenneman <kbrenneman at nvidia.com>
    Signed-off-by: Hans de Goede <hdegoede at redhat.com>
    Reviewed-by: Emil Velikov <emil.velikov at collabora.com>
    Cc: mesa-stable at lists.freedesktop.org
    (cherry picked from commit 84f764a7591715104b28c035c837ce9fd86157ad)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6123a076d099b87db73f5131ad480a87964c31b9
Author: Pohjolainen, Topi <topi.pohjolainen at gmail.com>
Date:   Wed May 3 12:22:50 2017 +0300

    intel/isl/gen7: Use stencil vertical alignment of 8 instead of 4
    
    The reasoning Chad gave in the comment for choosing a valign of 4 is
    entirely bunk.  The fact that you have to multiply pitch by 2 is
    completely unrelated to the halign/valign parameters used for texture
    layout.  (Not completely unrelated.  W-tiling is just Y-tiling with a
    bit of extra swizzling which turns 8x8 W-tiled chunks into 16x4 y-tiled
    chunks so it makes everything easier if miplevels are always aligned to
    8x8.)  The fact that RENDER_SURFACE_STATE::SurfaceVerticalAlignmet
    doesn't have a VALIGN_8 option doesn't matter since this is gen7 and you
    can't do stencil texturing anyway.
    
    v2 (Jason Ekstrand):
     - Delete most of Chad's comment and add a more descriptive commit
       message.
    
    Signed-off-by: Topi Pohjolainen <topi.pohjolainen at intel.com>
    Cc: "17.0 17.1" <mesa-stable at lists.freedesktop.org>
    Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>
    Reviewed-by: Chad Versace <chadversary at chromium.org>
    (cherry picked from commit 236f17a9f73935db6cddafd91e53a5fae34aae6e)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=691d42700b308abf0e05eab16929dac73aff2662
Author: Rob Clark <robdclark at gmail.com>
Date:   Tue May 16 10:29:44 2017 -0400

    mesa/st: fix yuv EGLImage's
    
    Don't reject YUV formats that the driver doesn't handle natively, since
    mesa/st already knows how to lower this in shader.
    
    Reported-by: Nicolas Dechesne <ndec at linaro.org>
    Fixes: 83e9de2 ("st/mesa: EGLImageTarget* error handling")
    Cc: 17.1 <mesa-stable at lists.freedesktop.org
    Signed-off-by: Rob Clark <robdclark at gmail.com>
    Tested-by: Nicolas Dechesne <ndec at linaro.org>
    Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>
    (cherry picked from commit 8b4588b090826a2da7c1b99497ed07705b149ae1)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=f36cd7fc57e49996c5b634c7f5e6e2f4407bdb1e
Author: Lucas Stach <l.stach at pengutronix.de>
Date:   Wed May 10 18:01:05 2017 +0200

    etnaviv: allow R/B swapped surfaces to be cleared
    
    Fixes: 7f62ffb68ad ("etnaviv: add support for rb swap")
    Cc: mesa-stable at lists.freedesktop.org
    Signed-off-by: Lucas Stach <l.stach at pengutronix.de>
    Reviewed-by: Christian Gmeiner <christian.gmeiner at gmail.com>
    (cherry picked from commit 20ce6f136188c24a019153e78c87872fb0a03060)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=c006ced2c983154f1563e15fc3775f9fe567a968
Author: Lucas Stach <l.stach at pengutronix.de>
Date:   Wed May 10 18:01:04 2017 +0200

    etnaviv: stop oversizing buffer resources
    
    PIPE_BUFFER is a target enum, not a binding. This caused the driver to
    up-align the height of buffer resources, leading to largely oversizing
    those resources. This is especially bad, as the buffer resources used
    by the upload manager are already 1MB in size. Height alignment meant
    that those would result in 4 to 8MB big BOs.
    
    Fixes: c9e8b49b885 ("etnaviv: gallium driver for Vivante GPUs")
    Cc: mesa-stable at lists.freedesktop.org
    Signed-off-by: Lucas Stach <l.stach at pengutronix.de>
    Reviewed-By: Wladimir J. van der Laan <laanwj at gmail.com>
    Reviewed-by: Christian Gmeiner <christian.gmeiner at gmail.com>
    (cherry picked from commit 8173d7d9e8b40cc9415811ad13924daa04a73646)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=5c9b59de8bab451f5f4309f2b2f57680d4f603b2
Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date:   Mon May 15 11:10:13 2017 +0200

    radeonsi: fix gl_PrimitiveIDIn in geometry shader when using tessellation
    
    This builds on commit 0549ea15ec38 ("radeonsi: fix primitive ID in
    fragment shader when using tessellation").
    
    Fixes piglit
    arb_tessellation_shader/execution/gs-primitiveid-instanced.shader_test
    
    Cc: 17.1 <mesa-stable at lists.freedesktop.org>
    Reviewed-by: Marek Olšák <marek.olsak at amd.com>
    (cherry picked from commit f4dbe2efb77be366c52cdd134876a6b00bf324bd)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b7d7458b9ae963670aca1f7d8f4733a3c3a974e9
Author: Marek Olšák <marek.olsak at amd.com>
Date:   Mon Feb 27 22:26:10 2017 +0100

    radeonsi/gfx9: add support for Raven
    
    Cc: 17.1 <mesa-stable at lists.freedesktop.org>
    Reviewed-by: Alex Deucher <alexander.deucher at amd.com>
    Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>
    (cherry picked from commit 7622181cade48d3b389024b6ce3e4e177073964e)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e39c07dbdf41285cb7c8e79d1eec7ff836d533ca
Author: Marek Olšák <marek.olsak at amd.com>
Date:   Mon Feb 27 22:25:43 2017 +0100

    amd/addrlib: import Raven support
    
    Cc: 17.1 <mesa-stable at lists.freedesktop.org>
    Reviewed-by: Alex Deucher <alexander.deucher at amd.com>
    Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>
    (cherry picked from commit efdb378c3688b897bdbec11218cdc9ee5e801bbd)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=3b9b7a1342fe920abb679ffa14899a963f9d3799
Author: Eric Anholt <eric at anholt.net>
Date:   Tue May 9 11:24:21 2017 -0700

    renderonly: Initialize fields of struct winsys_handle.
    
    vc4 was rejecting renderonly's import, because the offset field was
    nonzero.
    
    Fixes: 848b49b288f ("gallium: add renderonly library")
    Cc: mesa-stable at lists.freedesktop.org
    Signed-off-by: Eric Anholt <eric at anholt.net>
    Reviewed-by: Christian Gmeiner <christian.gmeiner at gmail.com>
    (cherry picked from commit c98f03c6ebaca82c265b2f3242aed5c6a3c5dcd8)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=054a27c508c8fd082e14c0601fbcc90639729b20
Author: Alex Deucher <alexander.deucher at amd.com>
Date:   Wed May 10 11:40:01 2017 -0400

    radeonsi: add new vega10 pci ids
    
    Reviewed-by: Nicolai Hähnle <nicolai.haehnle at amd.com>
    Cc: 17.1 <mesa-stable at lists.freedesktop.org>
    Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
    (cherry picked from commit 2f0450c627e5158d49aa1320eed9a5f6cb184838)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1b3704c22d474f367c27559d0aba36913deed8dd
Author: Bruce Cherniak <bruce.cherniak at intel.com>
Date:   Thu May 4 19:33:36 2017 -0500

    swr: move msaa resolve to generalized StoreTile
    
    v3: list piglit tests fixed by this patch. Fixed typo Tim pointed out.
    v2: Reword commit message to more closely adhere to community
    guidelines.
    
    This patch moves msaa resolve down into core/StoreTiles where the
    surface format conversion routines are available.  The previous
    "experimental" resolve was limited to 8-bit unsigned render targets.
    
    This fixes a number of piglit msaa tests by adding resolve support for
    all the render target formats we support.
    
    Specifically:
    layered-rendering/gl-layer-render: fail->pass
    layered-rendering/gl-layer-render-storage: fail->pass
    multisample-formats *[2,4,8,16] gl_arb_texture_rg: crash->pass
    multisample-formats *[2,4,8,16] gl_ext_texture_snorm: crash->pass
    multisample-formats *[2,4,8,16] gl_arb_texture_float: fail->pass
    multisample-formats *[2,4,8,16] gl_arb_texture_rg-float: fail->pass
    
    MSAA is still disabled by default, but can be enabled with
    "export SWR_MSAA_MAX_COUNT=4" (1,2,4,8,16 are options)
    The default is 0, which is disabled.
    
    This patch improves the number of multisample-formats supported by swr,
    and fixes several crashes currently in the 17.1 branch.  Therefore, it
    should be considered for inclusion in the 17.1 stable release.  Being
    disabled by default, it poses no risk to most users of swr.
    
    Reviewed-by: Tim Rowley <timothy.o.rowley at intel.com>
    cc: mesa-stable at lists.freedesktop.org
    (cherry picked from commit f52e63069a3fad23e03d42306a42bd20f0159da3)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ad3b5b7f5f7590fd4359ea3483e2309e4cebc472
Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date:   Wed May 3 11:26:27 2017 +0200

    radeonsi: fix gl_PrimitiveID in tessellation with instanced draws on SI
    
    Cc: mesa-stable at lists.freedesktop.org
    Reviewed-by: Marek Olšák <marek.olsak at amd.com>
    (cherry picked from commit f16b7558632d1d2d355a8251e969b8fc41f9c1e8)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=35ec26bb00536639b9571f31d8e3f2bcbcfc32fb
Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date:   Wed May 3 11:40:07 2017 +0200

    radeonsi: fix primitive ID in fragment shader when using tessellation
    
    In a VS->TCS->TES->PS pipeline, the primitive ID is read from TES exports,
    so it is as if TES were using the primitive ID.
    
    Specifically, this fixes a bug where the primitive ID is not reset at
    the start of a new instance.
    
    Cc: mesa-stable at lists.freedesktop.org
    Reviewed-by: Marek Olšák <marek.olsak at amd.com>
    (cherry picked from commit 0549ea15ec380f3ca6df76ce53ff4c30bfc21dbf)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=424bf46f27d791b2d159a3c7ff862e504d8d689c
Author: Nicolai Hähnle <nicolai.haehnle at amd.com>
Date:   Thu May 4 15:20:48 2017 +0200

    radeonsi: mark fast-cleared textures as compressed when dirtying
    
    There are a bunch of piglit fast clear tests that regressed on SI, for
    example ./bin/ext_framebuffer_multisample-fast-clear single-sample.
    
    The problem is that a texture is bound as a framebuffer, cleared, and
    then rendered from in a loop that loops through different clear colors.
    The texture is never rebound during all this, so the change to
    tex->dirty_level_mask during fast clear was not taken into account
    when checking for compressed textures.
    
    I have considered simply reverting the problematic commit. However,
    I think this solution is better. It does require looping through all
    bound textures after a fast clear, but the alternative would require
    visiting more textures needless on every draw. Draws are much more
    common than clears.
    
    Note that the rendering feedback loop rules do not apply here, because
    the framebuffer binding is changed between the glClear and the draw
    that samples from the texture that was cleared.
    
    Fixes: bdd644976952 ("radeonsi: don't mark non-dirty textures with CMASK as compressed")
    Cc: 17.1 <mesa-stable at lists.freedesktop.org>
    Reviewed-by: Marek Olšák <marek.olsak at amd.com>
    (cherry picked from commit 854ed47f3e1501e4cc87bf9f19c6d4a1ad2bab08)




More information about the mesa-commit mailing list