Mesa (11.0): 35 new commits

Emil Velikov evelikov at kemper.freedesktop.org
Wed Oct 21 16:43:29 UTC 2015


URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6d6a4d7c767d7d8be0ddab8e47855f16695cfb30
Author: Jonathan Gray <jsg at jsg.id.au>
Date:   Sat Oct 10 17:42:40 2015 +1100

    configure.ac: ensure RM is set
    
    GNU make predefines RM to rm -f but this is not required by POSIX
    so ensure that RM is set.  This fixes "make clean" on OpenBSD.
    
    v2: use AC_CHECK_PROG
    
    Signed-off-by: Jonathan Gray <jsg at jsg.id.au>
    CC: "10.6 11.0" <mesa-stable at lists.freedesktop.org>
    Reviewed-by: Emil Velikov <emil.l.velikov at gmail.com>
    (cherry picked from commit 99c4079c37ac04a0dad4ead3117f786706c80aaf)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=13276962c7e7a490c68bb6479f770e2d145818b8
Author: Tapani Pälli <tapani.palli at intel.com>
Date:   Mon Aug 3 08:58:20 2015 +0300

    mesa: fix ARRAY_SIZE query for GetProgramResourceiv
    
    Patch also refactors name length queries which were using array size
    in computation, this has to be done in same time to avoid regression in
    arb_program_interface_query-resource-query Piglit test.
    
    Fixes rest of the failures with
       ES31-CTS.program_interface_query.no-locations
    
    v2: make additional check only for GS inputs
    v3: create helper function for resource name length
        so that it gets calculated only in one place
    
    Signed-off-by: Tapani Pälli <tapani.palli at intel.com>
    Reviewed-by: Martin Peres <martin.peres at linux.intel.com>
    (cherry picked from commit c0722be9f58ef89dae98d8c459ec4f9589f97748)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=03ab39fa702f2e5dd95a43abd17d70706e3c0eaf
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Fri Aug 7 21:13:12 2015 +0100

    i965: Remove early release of DRI2 miptree
    
    intel_update_winsys_renderbuffer_miptree() will release the existing
    miptree when wrapping a new DRI2 buffer, so we can remove the early
    release and so prevent a NULL mt dereference should importing the new
    DRI2 name fail for any reason. (Reusing the old DRI2 name will result
    in the rendering going astray, to a stale buffer, and not shown on the
    screen, but it allows us to issue a warning and not crash much later in
    innocent code.)
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=86281
    Reviewed-by: Martin Peres <martin.peres at linux.intel.com>
    Reviewed-by: Chad Versace <chad.versace at intel.com>
    (cherry picked from commit 70e91d61fde239e8ae58148cacd4ff891126e2aa)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=4d215a25d582daa1182a09205addd47cdf1422d9
Author: Alejandro Piñeiro <apinheiro at igalia.com>
Date:   Tue Sep 1 17:02:20 2015 +0200

    i965/vec4: fill src_reg type using the constructor type parameter
    
    The src_reg constructor that received the glsl_type was using it
    only to build the swizzle, but not to fill this->type as dst_reg
    is doing.
    
    This caused some type mismatch between movs and alu operations
    on the NIR path, so copy propagation optimization was not applied
    to remove unneeded movs if negate modifier was involved. This was
    first detected on minus (negate+add) operations.
    
    Shader DB results (taking into account only vec4):
    
    total instructions in shared programs: 20019 -> 19934 (-0.42%)
    instructions in affected programs:     2918 -> 2833 (-2.91%)
    helped:                                79
    HURT:                                  0
    GAINED:                                0
    LOST:                                  0
    
    Reviewed-by: Matt Turner <mattst88 at gmail.com>
    (cherry picked from commit 4de86e1371b0d59a5b9a787b726be3d373024647)
    Nominated-by: Christoph Brill <egore911 at egore911.de>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6766a36e19878dc95396e550833f17b7980760d1
Author: Alejandro Piñeiro <apinheiro at igalia.com>
Date:   Fri Sep 11 12:21:13 2015 +0200

    i965/vec4: check writemask when bailing out at register coalesce
    
    opt_register_coalesce stopped to check previous instructions to
    coalesce with if somebody else was writing on the same
    destination. This can be optimized to check if somebody else was
    writing to the same channels of the same destination using the
    writemask.
    
    Shader DB results (taking into account only vec4):
    
    total instructions in shared programs: 1781593 -> 1734957 (-2.62%)
    instructions in affected programs:     1238390 -> 1191754 (-3.77%)
    helped:                                12782
    HURT:                                  0
    GAINED:                                0
    LOST:                                  0
    
    v2: removed some parenthesis, fixed indentation, as suggested by
        Matt Turner
    v3: added brackets, for consistency, as suggested by Eduardo Lima
    
    Reviewed-by: Matt Turner <mattst88 at gmail.com>
    (cherry picked from commit d4e29af2344c06490913efc35430f93a966061bb)
    Nominated-by: Jason Ekstrand <jason at jlekstrand.net>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=42364b33d16704b909ff8b0ff550638d0184a415
Author: Brian Paul <brianp at vmware.com>
Date:   Thu Oct 15 08:43:02 2015 -0600

    mesa: fix incorrect opcode in save_BlendFunci()
    
    Fixes assertion failure with new piglit
    arb_draw_buffers_blend-state_set_get test.
    
    Cc: mesa-stable at lists.freedesktop.org
    
    Reviewed-by: Jose Fonseca <jfonseca at vmware.com>
    (cherry picked from commit e24d04e436ed48d4a0aac90590cbaa40da936208)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=54a30ed94fa74ed6e3a1b6824df882fc38c6a08c
Author: Marek Olšák <marek.olsak at amd.com>
Date:   Tue Oct 20 18:26:02 2015 +0200

    gallium: add PIPE_SHADER_CAP_MAX_UNROLL_ITERATIONS_HINT
    
    This avoids a serious r600g bug leading to a GPU hang.
    The chances this bug will get fixed are pretty low now.
    
    I deeply regret listening to others and not pushing this patch, leaving
    other users with a GPU-crashing driver. Yes, it should be fixed
    in the compiler and it's ugly, but users couldn't care less about that.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=86720
    
    Cc: 11.0 10.6 <mesa-stable at lists.freedesktop.org>
    Reviewed-by: Brian Paul <brianp at vmware.com>
    (cherry picked from commit 814f31457e9ae83d4f1e39236f704721b279b73d)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6f48b8957ef2b3231aa0e099f3b6801b7e13ae3e
Author: Leo Liu <leo.liu at amd.com>
Date:   Fri Aug 28 08:45:11 2015 -0400

    st/omx/dec/h264: fix field picture type 0 poc disorder
    
    Signed-off-by: Leo Liu <leo.liu at amd.com>
    Reviewed-by: Christian König <christian.koenig at amd.com>
    Cc: "10.6 11.0" <mesa-stable at lists.freedesktop.org>
    (cherry picked from commit 867284a8f07b69887f8adb109fb6c71156668227)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b91ed628c1b2f8296986d36f1ccbce75b171c900
Author: Indrajit Das <indrajit-kumar.das at amd.com>
Date:   Thu Oct 15 15:42:43 2015 +0530

    st/va: Used correct parameter to derive the value of the "h" variable in vlVaCreateImage
    
    Cc: "11.0" <mesa-stable at lists.freedesktop.org>
    Reviewed-by: Christian König <christian.koenig at amd.com>
    Reviewed-by: Emil Velikov <emil.l.velikov at gmail.com>
    (cherry picked from commit 381c17d695b39f9ab501f5aa5a3cc42c8519ac3b)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=141109cc529b3a5d71c0023ad5c19c8844c05171
Author: Marek Olšák <marek.olsak at amd.com>
Date:   Fri Oct 9 00:54:17 2015 +0200

    radeonsi: fix a GS copy shader leak
    
    Cc: mesa-stable at lists.freedesktop.org
    Reviewed-by: Michel Dänzer <michel.daenzer at amd.com>
    (cherry picked from commit aa060e276c203baf4691d4a4722accd5bdbb8526)
    [Emil Velikov: si_shader_destroy() wants the ctx as first argument]
    Signed-off-by: Emil Velikov <emil.velikov at collabora.com>
    
    Conflicts:
    	src/gallium/drivers/radeonsi/si_shader.c

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=5d41a787692851991154a8c6499db2280cf31430
Author: Marek Olšák <marek.olsak at amd.com>
Date:   Sat Oct 17 14:20:01 2015 +0200

    st/mesa: fix clip state dependencies
    
    This allows removing FLUSH_VERTICES in MatrixMode.
    
    Cc: mesa-stable at lists.freedesktop.org
    Reviewed-by: Brian Paul <brianp at vmware.com>
    (cherry picked from commit 3c6156a4a7b647cc55cbe3a4c13d53b5ffe505e6)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=da1d57faf37f935dfd87661f22e0663d57dceee2
Author: Tapani Pälli <tapani.palli at intel.com>
Date:   Tue Oct 13 08:49:57 2015 +0300

    mesa: Set api prefix to version string when overriding version
    
    Otherwise there are problems when user overrides version and application
    such as Piglit wants to detect used api with glGetString(GL_VERSION).
    
    This makes it currently impossible to run glslparsertest tests for
    OpenGL ES when using version override.
    
    Below is example when using MESA_GLES_VERSION_OVERRIDE=3.1.
    
    Before:
    	"3.1 Mesa 11.1.0-devel (git-24a1a15)"
    
    After:
    	"OpenGL ES 3.1 Mesa 11.1.0-devel (git-78042ff)"
    
    v2: only include api prefix for OpenGL ES (Boyan Ding)
    
    Signed-off-by: Tapani Pälli <tapani.palli at intel.com>
    Reviewed-by: Iago Toral Quiroga <itoral at igalia.com>
    Cc: "11.0" <mesa-stable at lists.freedesktop.org>
    (cherry picked from commit dc8c221e2890cc9913dfc99e1e0fcb73c89af52c)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=0d87f7576318c2a22b4e3d82256e5c9de9c2e474
Author: Rob Clark <robclark at freedesktop.org>
Date:   Thu Oct 15 16:22:23 2015 -0400

    freedreno/a3xx: cache-flush is needed after MEM_WRITE
    
    Otherwise the mem2gmem blit would see potentially bogus texture
    coordinates.  Fixes an issue that shows up with glamor.
    
    CC: "11.0" <mesa-stable at lists.freedesktop.org>
    Signed-off-by: Rob Clark <robclark at freedesktop.org>
    (cherry picked from commit 6206da736c84c4f7316ab586c886b4865fda8805)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=009890a0de09fcce5229e38ccb0c5b9f211a6f64
Author: Chih-Wei Huang <cwhuang at android-x86.org>
Date:   Thu Oct 15 23:46:32 2015 +0800

    nv30: include the header of ffs prototype
    
    It fixes a building error of the android 6.0 64-bit target.
    
    Signed-off-by: Chih-Wei Huang <cwhuang at linux.org.tw>
    Reviewed-by: Ilia Mirkin <imirkin at alum.mit.edu>
    Cc: mesa-stable at lists.freedesktop.org
    (cherry picked from commit 7599f8b167321cb8adb2ba51a53163752b668532)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=938df905ea76b815d796567ff0b01886be0523dd
Author: Chih-Wei Huang <cwhuang at android-x86.org>
Date:   Thu Oct 15 23:46:30 2015 +0800

    nv50/ir: use C++11 standard std::unordered_map if possible
    
    Note Android version before Lollipop is not supported.
    
    Signed-off-by: Chih-Wei Huang <cwhuang at linux.org.tw>
    Reviewed-by: Ilia Mirkin <imirkin at alum.mit.edu>
    Cc: mesa-stable at lists.freedesktop.org
    (cherry picked from commit d31005e3e5588b20760c774f14ac0ea80375a181)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=9b561ed2d189ad65ecdfb274b10b4984927865c8
Author: Chih-Wei Huang <cwhuang at android-x86.org>
Date:   Mon Oct 12 23:36:59 2015 +0800

    mesa: android: Fix the incorrect path of sse_minmax.c
    
    Cc: "10.6 11.0" <mesa-stable at lists.freedesktop.org>
    Fixes: 669cfc267a1 (android: mesa: fix the path of the SSE4_1
    optimisations)
    Signed-off-by: Chih-Wei Huang <cwhuang at linux.org.tw>
    Reviewed-by: Emil Velikov <emil.l.velikov at gmail.com>
    
    (cherry picked from commit 67d8518a0e5a3df400a6e70de667d69e4b6ce9c5)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=b0b31397e2ecb44a7667461c87200494f31b56c4
Author: Krzysztof Sobiecki <sobkas at gmail.com>
Date:   Wed Oct 14 10:03:00 2015 -0600

    st/fbo: use pipe_surface_release instead of pipe_surface_reference
    
    pipe_surface_reference have problems with deleted contexts,
    so use of pipe_surface_release might be more appropriate.
    
    Fixes Wasteland 2 Director's Cut crash on start.
    
    Cc: mesa-stable at lists.freedesktop.org
    
    Reviewed-by: Brian Paul <brianp at vmware.com>
    (cherry picked from commit 14f7ce42484c31a45fcb6aabdf503f7496a9a94c)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=c0b85c5a4c8cc2fbbc25016b6c6734ff2ff4a4a5
Author: Brian Paul <brianp at vmware.com>
Date:   Mon Oct 12 11:32:35 2015 -0600

    vbo: fix incorrect switch statement in init_mat_currval()
    
    The variable 'i' is a value in [0, MAT_ATTRIB_MAX-1] so subtracting
    VERT_ATTRIB_GENERIC0 gave a bogus value and we executed the default
    switch clause for all loop iterations.
    
    This doesn't fix any known issues but was clearly incorrect.
    
    Cc: mesa-stable at lists.freedesktop.org
    
    Reviewed-by: Marek Olšák <marek.olsak at amd.com>
    (cherry picked from commit dd293d8aae324ac7b9d5297e33a1e732e1f3f4d3)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=a9da1ead7b1bd7e251091071cefd3931d3b68d71
Author: Ian Romanick <ian.d.romanick at intel.com>
Date:   Wed Oct 7 14:26:29 2015 -0700

    glsl: In later GLSL versions, sequence operator is cannot be a constant expression
    
    Fixes:
        ES3-CTS.shaders.negative.constant_sequence
    
        spec/glsl-es-3.00/compiler/global-initializer/from-sequence.vert
        spec/glsl-es-3.00/compiler/global-initializer/from-sequence.frag
    
    v2: Fix a couple copy-and-paste mistake in the spec quotations.
    Suggested by Matt.
    
    Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
    Reviewed-by: Matt Turner <mattst88 at gmail.com>
    Cc: "10.6 11.0" <mesa-stable at lists.freedesktop.org>
    (cherry picked from commit 92635a84a7f464b827baa406578420dd6109e1a4)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=dab0c565d39119820b71482edbbcde06034304d5
Author: Ian Romanick <ian.d.romanick at intel.com>
Date:   Wed Oct 7 13:03:53 2015 -0700

    glsl: Add method to determine whether an expression contains the sequence operator
    
    This will be used in the next patch to enforce some language sematics.
    
    v2: Fix inverted logic in
    ast_function_expression::has_sequence_subexpression.  The method
    originally had a different name and a different meaning.  I fixed the
    logic in ast_to_hir.cpp, but I only changed the names in
    ast_function.cpp.
    
    Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
    Reviewed-by: Marta Lofstedt <marta.lofstedt at intel.com> [v1]
    Reviewed-by: Matt Turner <mattst88 at gmail.com>
    Cc: "10.6 11.0" <mesa-stable at lists.freedesktop.org>
    (cherry picked from commit 05e4601c6b9ce456cc4a4c395677a22125d889d2)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=96931dbf14707ad786fee793342eb7c33d3c427e
Author: Ian Romanick <ian.d.romanick at intel.com>
Date:   Tue Oct 6 17:05:55 2015 -0700

    glsl: Restrict initializers for global variables to constant expression in ES
    
    v2: Combine this check with the existing const and uniform checks.  This
    change depends on the previous patch (glsl: Only set
    ir_variable::constant_value for const-decorated variables).
    
    Fixes:
    
        ES2-CTS.shaders.negative.initialize
        ES3-CTS.shaders.negative.initialize
    
        spec/glsl-es-1.00/compiler/global-initializer/from-attribute.vert
        spec/glsl-es-1.00/compiler/global-initializer/from-uniform.vert
        spec/glsl-es-1.00/compiler/global-initializer/from-uniform.frag
        spec/glsl-es-1.00/compiler/global-initializer/from-global.vert
        spec/glsl-es-1.00/compiler/global-initializer/from-global.frag
        spec/glsl-es-1.00/compiler/global-initializer/from-varying.frag
        spec/glsl-es-3.00/compiler/global-initializer/from-uniform.vert
        spec/glsl-es-3.00/compiler/global-initializer/from-uniform.frag
        spec/glsl-es-3.00/compiler/global-initializer/from-in.vert
        spec/glsl-es-3.00/compiler/global-initializer/from-in.frag
        spec/glsl-es-3.00/compiler/global-initializer/from-global.vert
        spec/glsl-es-3.00/compiler/global-initializer/from-global.frag
    
    Note: spec/glsl-es-3.00/compiler/global-initializer/from-sequence.*
    still fail because the result of a sequence operator is still considered
    to be a constant expression.
    
    Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92304
    Reviewed-by: Tapani Pälli <tapani.palli at intel.com> [v1]
    Reviewed-by: Iago Toral Quiroga <itoral at igalia.com> [v1]
    Reviewed-by: Matt Turner <mattst88 at gmail.com>
    Cc: "10.6 11.0" <mesa-stable at lists.freedesktop.org>
    (cherry picked from commit bb329f2ff6e8bf8910a467b09f69a4d843689617)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=2d5b8efd7d26c836e46720f7b349994fe7be6ecd
Author: Ian Romanick <ian.d.romanick at intel.com>
Date:   Wed Oct 7 12:52:58 2015 -0700

    glsl: Only set ir_variable::constant_value for const-decorated variables
    
    Right now we're also setting for uniforms, and that doesn't seem to hurt
    things.  The next patch will make general global variables in GLSL ES,
    and those definitely should not have constant_value set!
    
    Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
    Reviewed-by: Matt Turner <mattst88 at gmail.com>
    Cc: "10.6 11.0" <mesa-stable at lists.freedesktop.org>
    (cherry picked from commit 3524d6df33b1e3716992f9a555ffb0f7b1ae2f4f)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=0c6b2107499f6f5653808f4d1181ecb1871ff695
Author: Ian Romanick <ian.d.romanick at intel.com>
Date:   Thu Oct 8 17:32:41 2015 -0700

    glsl: Use constant_initializer instead of constant_value to determine whether to keep an unused uniform
    
    This even matches the comment "uniform initializers are precious, and
    could get used by another stage."
    
    Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
    Reviewed-by: Matt Turner <mattst88 at gmail.com>
    Cc: "10.6 11.0" <mesa-stable at lists.freedesktop.org>
    (cherry picked from commit 5bc68f0f2b80b21997435742af74c49eb72891f7)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=8e9b698c24a2551c68ea5d7cbd67e78fc1f8d6a2
Author: Ian Romanick <ian.d.romanick at intel.com>
Date:   Thu Oct 8 14:24:25 2015 -0700

    glsl/linker: Use constant_initializer instead of constant_value to initialize uniforms
    
    Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
    Reviewed-by: Matt Turner <mattst88 at gmail.com>
    Cc: "10.6 11.0" <mesa-stable at lists.freedesktop.org>
    (cherry picked from commit 313372cae8e10e4b9a3de093d65c0a0d8954bb0d)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=3b238aa08f527838f64d5880e6b017ba6b86cd2b
Author: Ian Romanick <ian.d.romanick at intel.com>
Date:   Thu Oct 8 11:13:00 2015 -0700

    ff_fragment_shader: Use binding to set the sampler unit
    
    This is the way layout(binding=xxx) works from GLSL.  The old method
    just happened to work (and significantly predated support for
    layout(binding=xxx)), but future changes will break this.
    
    v2: Remove some stale comments.  Suggested by Matt and Chris Forbes.
    
    Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
    Reviewed-by: Matt Turner <mattst88 at gmail.com>
    Cc: "10.6 11.0" <mesa-stable at lists.freedesktop.org>
    (cherry picked from commit 8acce5d53af44a3d1d05a26e69559fd35f835de4)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=cd6ff70856f939bd1c1fbe3e5fb09a114e6f164d
Author: Ian Romanick <ian.d.romanick at intel.com>
Date:   Fri Oct 9 14:17:32 2015 -0700

    glsl: Allow built-in functions as constant expressions in OpenGL ES 1.00
    
    In d4a24745 (August 2012), Paul made functions calls not be constant
    expressions in GLSL ES 1.00.  Since this feature was added in desktop
    GLSL 1.20, we believed that it was added in GLSL ES 3.00.  That turns
    out to be completely wrong.  Built-in functions have always been allowed
    as constant expressions in GLSL ES, and the patch adds the (many) spec
    quotations to prove it.
    
    While we never previously encountered this, a later patch enforces a GLSL
    ES 1.00 rule that global variable initializers must be constant
    expressions.  Without this fix, several dEQP tests fail.
    
    Fixes:
    
        tests/spec/glsl-es-1.00/compiler/const-initializer/from-function.frag
        tests/spec/glsl-es-1.00/compiler/const-initializer/from-function.vert
        tests/spec/glsl-es-1.00/compiler/const-initializer/from-sequence-in-function.frag
        tests/spec/glsl-es-1.00/compiler/const-initializer/from-sequence-in-function.vert
    
    Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
    Reviewed-by: Matt Turner <mattst88 at gmail.com>
    Cc: "10.0 10.1 10.2 10.3 10.4 10.5 10.6 11.0" <mesa-stable at lists.freedesktop.org>
    
    Yes, I know we don't maintain stable branches that far back, but that
    *is* how far back this bug goes!
    
    (cherry picked from commit 43b07eb60faba1c65fc6f7a99087d051b00e9c0f)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=2ee32ffe7c2f64f40baffc0464d54ea3e974a74a
Author: Nicolai Hähnle <nhaehnle at gmail.com>
Date:   Sun Oct 4 00:44:00 2015 +0200

    u_vbuf: fix vb slot assignment for translated buffers
    
    Vertex attributes of different categories (constant/per-instance/
    per-vertex) go into different buffers for translation, and this is now
    properly reflected in the vertex buffers passed to the driver.
    
    Fixes e.g. piglit's point-vertex-id divisor test.
    
    Cc: mesa-stable at lists.freedesktop.org
    Reviewed-by: Marek Olšák <marek.olsak at amd.com>
    (cherry picked from commit 45ed627d894aa4d51682e8b07e7234bbc6e7c02d)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=25e1e909371437bd76ccc07cd3e117b6168501fb
Author: Dave Airlie <airlied at gmail.com>
Date:   Wed Sep 30 17:48:38 2015 +1000

    mesa/uniforms: fix get_uniform for doubles (v2)
    
    The initial glGetUniformdv support didn't cover all the
    casting cases that are apparantly legal, and cts seems to
    test for them.
    
    I've updated the piglit test to cover these cases now.
    
    v2: fix indentation - it's all broken in this file (Ilia)
    fix src/dst index tracking in light of fp64 support (Ilia)
    
    cc: "11.0" <mesa-stable at lists.freedesktop.org>
    Reviewed-by: Ilia Mirkin <imirkin at alum.mit.edu>
    Signed-off-by: Dave Airlie <airlied at redhat.com>
    (cherry picked from commit bcfaab38858fdcfbd8ffeaf6b0e3da8a726f02e6)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=22aae69aa5c745b205e969a8f116ee3b2dacb1a8
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Sat Aug 29 17:03:08 2015 +0300

    mesa: Get rid of texture-dependent image unit derived state.
    
    The point is to avoid having to re-validate all image units when
    _NEW_TEXTURE is flagged, which can be expensive if the driver exposes
    a large number of image units.  This has been reported to fix a 36%
    performance regression in the Synmark2 Multithread benchmark on the
    i965 driver which exposes 192 image units.
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=91788
    Reported-by: Wendy Wang <wendy.wang at intel.com>
    Tested-by: Ye Tian <yex.tian at intel.com>
    CC: "11.0" <mesa-stable at lists.freedesktop.org>
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
    (cherry picked from commit 7e441bf025cf8c5d088430d546acb4c0ed58d27b)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=4779eb04a45c6fed6e17463bd59f8608d8555e41
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Sat Aug 29 17:01:11 2015 +0300

    i965: Use _mesa_is_image_unit_valid() instead of gl_image_unit::_Valid.
    
    gl_image_unit::_Valid will be removed in a future commit.
    
    Tested-by: Ye Tian <yex.tian at intel.com>
    CC: "11.0" <mesa-stable at lists.freedesktop.org>
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
    (cherry picked from commit 2d97a78b37ddf325d90e056f5eefee0548092530)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=df361e2311b61f215b01a98452ffb448015f896a
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Thu Sep 3 16:12:59 2015 +0300

    mesa: Skip redundant texture completeness checking during image validation.
    
    The call to _mesa_test_texobj_completeness() is unnecessary if the
    texture is already known to be complete.  If the texture object is
    dirtied in the meantime _BaseComplete and _MipmapComplete will be
    reset to false.  _mesa_is_image_unit_valid() will start to be called
    more frequently in a future commit, so it seems desirable to avoid the
    unnecessary work.
    
    Tested-by: Ye Tian <yex.tian at intel.com>
    CC: "11.0" <mesa-stable at lists.freedesktop.org>
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
    (cherry picked from commit 25d3338be37ddbfe676716034ec5f29e27323704)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=7259f17eca89060c9367c4e859d5a4ba43d010c1
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Sat Aug 29 16:34:50 2015 +0300

    mesa: Expose function to calculate whether a shader image unit is valid.
    
    A future commit will remove all texture object-dependent derived state
    from the image unit struct to make validation unnecessary on texture
    state changes.  Instead of checking gl_image_unit::_Valid drivers will
    be required to call this function when needed to find out whether an
    image unit is in a valid state and whether access from the shader is
    allowed.
    
    Tested-by: Ye Tian <yex.tian at intel.com>
    CC: "11.0" <mesa-stable at lists.freedesktop.org>
    Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
    (cherry picked from commit 5152db415f4047569822d648fda09bdde4171d6d)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=37b647b97975312d6c6b3e71d2285d057a87a735
Author: Francisco Jerez <currojerez at riseup.net>
Date:   Thu Aug 13 15:02:05 2015 +0300

    i965: Don't tell the hardware about our UAV access.
    
    The hardware documentation relating to the UAV HW-assisted coherency
    mechanism and UAV access enable bits is scarce and sometimes
    contradictory, and there's quite some guesswork behind this commit, so
    let me summarize the background first: HSW and later hardware have
    infrastructure to support a stricter form of data coherency between
    shader invocations from separate primitives.  The mechanism is
    controlled by the "Accesses UAV" bits on 3DSTATE_VS, _HS, _DS, _GS and
    _PS (or _PS_EXTRA on BDW+), and the "UAV Coherency Required" bit on
    the 3DPRIMITIVE command.
    
    Regardless of whether "UAV Coherency Required" is set, the hardware
    fixed-function units will increment a per-stage semaphore for each
    request received if "Accesses UAV" is set for the same or any lower
    stage.  An implicit DC flush is emitted by the lowermost stage with
    "Accesses UAV" set once it's done processing the request, this also
    happens regardless of the value of "UAV Coherency Required".  The
    completion of the DC flush will cause the same stage and all previous
    ones to decrement the semaphore, marking the UAV accesses for the
    primitive as coherent with L3.
    
    The "UAV Coherency Required" 3DPRIMITIVE bit will cause a pipeline
    stall before any threads are dispatched for the first FF stage with
    "Accesses UAV" set until the semaphore is cleared for the same stage.
    Effectively this guarantees that UAV memory accesses performed by
    previous primitives from any stage will be strictly ordered (and
    thanks to the implicit DC flush visible in memory) with UAV accesses
    from the following primitives.
    
    None of this is required by the usual image, atomic counter and SSBO
    GL APIs which have very relaxed cross-primitive coherency and ordering
    requirements, so we don't actually ever set the "UAV Coherency
    Required" bit -- Ordering with respect to shader invocations from
    previous stages on the same primitive where there is a data dependency
    is of course already guaranteed as the spec requires, regardless of
    this mechanism being enabled.  We do set the "Accesses UAV" bits
    though since my commit ac7664e493655e290783c23a0412b9c70936da50 (which
    this patch partially reverts), mainly because of comments like the
    following from the BDW PRM:
    
    > 3DSTATE_GS
    >[...]
    > 12 Accesses UAV
    >    Format: Enable
    >    This field must be set when GS has a UAV access.
    
    There are similar comments in the documentation for the other
    3DSTATE_*S commands.  The "must" part is misleading and unjustified
    AFAIK.  Most of the "Accesses UAV" bits don't seem to have any side
    effects other than the implicit DC flushes and the related
    book-keeping in anticipation for a subsequent primitive with "UAV
    Coherency Required" set, so in most cases they are unnecessary and may
    incur a performance penalty.  There is an exception though.  On Gen8+
    the PS_EXTRA UAV access bit influences the calculation of the PS
    UAV-only and ThreadDispatchEnable signals which on previous
    generations were set explicitly by the driver, so we cannot always
    avoid enabling it on the PS stage.
    
    The primary motivation for this change is that in fact the hardware
    coherency mechanism is buggy and will cause a rather non-deterministic
    hang on Gen8 when VS is the only stage with "Accesses UAV" set and the
    processing of a request terminates immediately after the implicit DC
    flush is sent for a previous primitive with no additional vertices
    being emitted for the second primitive, what will cause the hardware
    to skip sending a second DC flush and cause the VS to stall
    indefinitely waiting for a response from the DC (BDWGFX HSD 1912017).
    This hardware bug can be reproduced on current master with the
    spec at arb_shader_image_load_store@host-mem-barrier at Indirect/RaW piglit
    subtest (if you have the patience to run it a few dozen times).
    
    The proposed workaround is to insert CS STALLs speculatively between
    3DPRIMITIVE commands when "Accesses UAV" is enabled for the VS stage
    only.  Because this would affect one of the hottest paths in the
    driver and likely decrease performance even further due to the
    unnecessary serialization, and because we don't actually need the
    implicit DC flushes, it seems better to just disable them.
    
    Cc: 11.0 <mesa-stable at lists.freedesktop.org>
    (cherry picked from commit 5346c1167064d6429c6338974c6342f8346fd34b)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=41cc0965bbccc1daf3a32f52eac998e98765d21e
Author: Tapani Pälli <tapani.palli at intel.com>
Date:   Thu Oct 8 09:43:41 2015 +0300

    mesa: add GL_UNSIGNED_INT_24_8 to _mesa_pack_depth_span
    
    Patch adds missing type (used with NV_read_depth) so that it gets
    handled correctly. This fixes errors seen with following CTS test:
    
       ES3-CTS.gtf.GL3Tests.packed_pixels.packed_pixels
    
    Signed-off-by: Tapani Pälli <tapani.palli at intel.com>
    Reviewed-by: Iago Toral Quiroga <itoral at igalia.com>
    Cc: "11.0" <mesa-stable at lists.freedesktop.org>
    (cherry picked from commit d8d0e4a81e42678cc8c8b876dfee24d5c2f4ba38)

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=3f802ebaf8eef91e9d17cfdd1995f58fd00349e5
Author: Ilia Mirkin <imirkin at alum.mit.edu>
Date:   Mon Oct 5 15:19:05 2015 -0400

    nouveau: make sure there's always room to emit a fence
    
    I started seeing a lot of situations on nv30 where fence emission
    wouldn't fit into the previous buffer (causing assertions). This ensures
    that whenever checking for space, we always leave a bit of extra room
    for the fence emission commands. Adjusts the nv30 and nvc0 fence
    emission logic to bypass the space checking as well.
    
    Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
    Cc: mesa-stable at lists.freedesktop.org
    Reviewed-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
    (cherry picked from commit 47d11990b2ca3eb666b8ac81fee7f7eb5019eba1)
    
    Squashed with commit
    
    nouveau: avoid emitting new fences unnecessarily
    
    Right now we emit on every kick, but this is only necessary if something
    will ever be able to observe that the fence completed. If there are no
    refs, leave the fence alone and emit it another day.
    
    This also happens to work around an issue for the kick handler -- a kick
    can be a result of e.g. nouveau_bo_wait or explicit kick, or it can be
    due to lack of space in the pushbuf. We want the emit to happen in the
    current batch, so we want there to always be enough space. However an
    explicit kick could take the reserved space for the implicitly-triggered
    kick's fence emission if it happened right after. With the new mechanism,
    hopefully there's no way to cause two fences to be emitted into the same
    reserved space.
    
    Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
    Reviewed-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
    Fixes: 47d11990b (nouveau: make sure there's always room to emit a fence)
    Cc: mesa-stable at lists.freedesktop.org
    (cherry picked from commit 8053c9208f30964d89dc4e262fdf2148f0664696)
    
    Squashed with commit
    
    nv50,nvc0: don't base decisions on available pushbuf space
    
    We still have to push everything out, might as well kick earlier and
    flip pushbufs when we know we'll need it. This resolves some issues with
    the new policy of making sure that we always leave a bit of room at the
    end for fences.
    
    Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
    Reviewed-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
    Fixes: 47d11990b (nouveau: make sure there's always room to emit a fence)
    Cc: mesa-stable at lists.freedesktop.org
    (cherry picked from commit 9fe458335ffd35366ef0f4b741aad0cdb3503783)
    
    Squashed with commit
    
    nouveau: avoid double-emitting fence
    
    The act of ensuring that there is space can cause a flush to happen,
    which will emit the current screen fence. If that is the fence we're
    trying to wait on, then it will have been emitted as a result of doing
    the PUSH_SPACE. Don't attempt to emit it a second time.
    
    Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
    Fixes: 8053c9208f (nouveau: avoid emitting new fences unnecessarily)
    Cc: mesa-stable at lists.freedesktop.org
    (cherry picked from commit bf97f8d467ad1d485c2327da3f4fe1f9e1dc7379)




More information about the mesa-commit mailing list