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

mesa: Changes to 'upstream-experimental'



 Android.common.mk                                         |    4 +
 Android.mk                                                |    6 +-
 Makefile.am                                               |    7 +-
 VERSION                                                   |    2 
 bin/get-extra-pick-list.sh                                |   35 ++++++++++++
 include/pci_ids/virtio_gpu_pci_ids.h                      |    1 
 install-gallium-links.mk                                  |   15 ++++-
 src/compiler/Android.gen.mk                               |    4 +
 src/compiler/glsl/Android.gen.mk                          |    4 +
 src/compiler/glsl/Android.mk                              |    3 -
 src/compiler/glsl/ir.h                                    |    1 
 src/compiler/glsl/linker.cpp                              |    1 
 src/egl/Android.mk                                        |    6 +-
 src/egl/drivers/dri2/platform_wayland.c                   |   39 ++++++++++++--
 src/gallium/auxiliary/Android.mk                          |    6 +-
 src/gallium/auxiliary/tgsi/tgsi_scan.c                    |   10 +++
 src/gallium/drivers/freedreno/Android.mk                  |    8 +-
 src/gallium/drivers/nouveau/codegen/nv50_ir_emit_nvc0.cpp |    7 ++
 src/gallium/drivers/nouveau/nv50/nv50_screen.c            |    2 
 src/gallium/drivers/nouveau/nvc0/nvc0_screen.c            |    2 
 src/gallium/drivers/r300/Android.mk                       |    1 
 src/gallium/drivers/r600/evergreen_state.c                |   13 ----
 src/gallium/drivers/r600/r600_isa.h                       |   16 ++---
 src/gallium/drivers/r600/r600_state.c                     |    6 --
 src/gallium/drivers/r600/r600_state_common.c              |    7 ++
 src/gallium/drivers/radeon/r600_pipe_common.h             |    2 
 src/gallium/drivers/radeon/r600_texture.c                 |    9 ++-
 src/gallium/drivers/radeonsi/si_state.c                   |    6 --
 src/gallium/drivers/vc4/Android.mk                        |    6 +-
 src/gallium/drivers/virgl/virgl_encode.c                  |    4 +
 src/gallium/drivers/virgl/virgl_protocol.h                |    2 
 src/gallium/state_trackers/clover/Makefile.am             |    1 
 src/gallium/state_trackers/nine/Makefile.sources          |    1 
 src/gallium/state_trackers/nine/buffer9.c                 |   26 ++++++---
 src/gallium/state_trackers/nine/nine_shader.c             |   38 +++++++------
 src/gallium/targets/dri/Android.mk                        |    5 +
 src/gallium/targets/opencl/Makefile.am                    |    3 -
 src/mesa/Android.libmesa_dricore.mk                       |    1 
 src/mesa/Android.libmesa_glsl_utils.mk                    |    2 
 src/mesa/Android.libmesa_st_mesa.mk                       |    1 
 src/mesa/Android.mesa_gen_matypes.mk                      |    3 -
 src/mesa/drivers/dri/Android.mk                           |    5 -
 src/mesa/drivers/dri/common/Android.mk                    |   22 ++++---
 src/mesa/drivers/dri/i915/Android.mk                      |    5 +
 src/mesa/drivers/dri/i965/Android.mk                      |    5 +
 src/mesa/drivers/dri/i965/brw_fs_cse.cpp                  |    2 
 src/mesa/main/debug_output.c                              |   20 ++-----
 src/mesa/main/fbobject.c                                  |    1 
 src/mesa/main/get.c                                       |    2 
 src/mesa/main/get_hash_params.py                          |    3 +
 src/mesa/main/readpix.c                                   |    2 
 src/mesa/main/shaderobj.c                                 |    2 
 src/mesa/program/Android.mk                               |    5 +
 src/mesa/state_tracker/st_cb_fbo.c                        |   13 +++-
 54 files changed, 273 insertions(+), 130 deletions(-)

New commits:
commit 9f21fdd8e697a1a0868f4ec4573235325294b7b3
Author: Emil Velikov <emil.velikov@collabora.com>
Date:   Mon Mar 7 09:19:12 2016 +0000

    Update version to 11.2.0-rc3
    
    Signed-off-by: Emil Velikov <emil.velikov@collabora.com>

diff --git a/VERSION b/VERSION
index b7ce1a2..1568ccd 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-11.2.0-rc2
+11.2.0-rc3

commit 3d32af2d59a486761fdb030cbccdf6e8308ff83f
Author: Kenneth Graunke <kenneth@whitecape.org>
Date:   Thu Mar 3 00:43:15 2016 -0800

    mesa: Allow Get*() of several forgotten IsEnabled() pnames.
    
    From section 6.2 ("State Tables") of the GL 2.1 specification
    (the text also appears in the GL 3.0 and ES 3.1 specifications):
    "However, state variables for which IsEnabled is listed as the query
     command can also be obtained using GetBooleanv, GetIntegerv, GetFloatv,
     and GetDoublev."
    
    GL_DEBUG_OUTPUT, GL_DEBUG_OUTPUT_SYNCHRONOUS, and GL_FRAGMENT_SHADER_ATI
    were missing from the glGet*() functions.  All other IsEnabled() pnames
    look to be present, as far as I can tell.
    
    Fixes 8 dEQP-GLES31.functional.debug.state_query subtests:
    debug_output[_synchronous]_get{boolean,float,integer,integer64}.
    
    Cc: mesa-stable@lists.freedesktop.org
    Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
    Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
    Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
    (cherry picked from commit aa37cbdff7bb1d2170f1603b02a8b8517255894f)

diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c
index f40c570..4cc82d8 100644
--- a/src/mesa/main/get.c
+++ b/src/mesa/main/get.c
@@ -1055,6 +1055,8 @@ find_custom_value(struct gl_context *ctx, const struct value_desc *d, union valu
       }
       break;
    /* GL_KHR_DEBUG */
+   case GL_DEBUG_OUTPUT:
+   case GL_DEBUG_OUTPUT_SYNCHRONOUS:
    case GL_DEBUG_LOGGED_MESSAGES:
    case GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH:
    case GL_DEBUG_GROUP_STACK_DEPTH:
diff --git a/src/mesa/main/get_hash_params.py b/src/mesa/main/get_hash_params.py
index 07d2d20..f9d66f8 100644
--- a/src/mesa/main/get_hash_params.py
+++ b/src/mesa/main/get_hash_params.py
@@ -126,6 +126,8 @@ descriptor=[
   [ "MAX_TEXTURE_MAX_ANISOTROPY_EXT", "CONTEXT_FLOAT(Const.MaxTextureMaxAnisotropy), extra_EXT_texture_filter_anisotropic" ],
 
 # GL_KHR_debug (GL 4.3)/ GL_ARB_debug_output
+  [ "DEBUG_OUTPUT", "LOC_CUSTOM, TYPE_BOOLEAN, 0, NO_EXTRA" ],
+  [ "DEBUG_OUTPUT_SYNCHRONOUS", "LOC_CUSTOM, TYPE_BOOLEAN, 0, NO_EXTRA" ],
   [ "DEBUG_LOGGED_MESSAGES", "LOC_CUSTOM, TYPE_INT, 0, NO_EXTRA" ],
   [ "DEBUG_NEXT_LOGGED_MESSAGE_LENGTH", "LOC_CUSTOM, TYPE_INT, 0, NO_EXTRA" ],
   [ "MAX_DEBUG_LOGGED_MESSAGES", "CONST(MAX_DEBUG_LOGGED_MESSAGES), NO_EXTRA" ],
@@ -773,6 +775,7 @@ descriptor=[
   [ "DEPTH_CLAMP", "CONTEXT_BOOL(Transform.DepthClamp), extra_ARB_depth_clamp" ],
 
 # GL_ATI_fragment_shader
+  [ "FRAGMENT_SHADER_ATI", "CONTEXT_BOOL(ATIFragmentShader.Enabled), extra_ATI_fragment_shader" ],
   [ "NUM_FRAGMENT_REGISTERS_ATI", "CONST(6), extra_ATI_fragment_shader" ],
   [ "NUM_FRAGMENT_CONSTANTS_ATI", "CONST(8), extra_ATI_fragment_shader" ],
   [ "NUM_PASSES_ATI", "CONST(2), extra_ATI_fragment_shader" ],

commit c9da4f896685e061947f41664d4fb7492a31327d
Author: Kenneth Graunke <kenneth@whitecape.org>
Date:   Wed Mar 2 23:19:27 2016 -0800

    mesa: Make glGet queries initialize ctx->Debug when necessary.
    
    dEQP-GLES31.functional.debug.state_query.debug_group_stack_depth_*
    tries to call glGet on GL_DEBUG_GROUP_STACK_DEPTH right away, before
    doing any other debug setup.  This should return 1.
    
    However, because ctx->Debug wasn't allocated, we bailed and returned 0.
    
    This patch removes the open-coded locking and switches the two glGet
    functions to use _mesa_lock_debug_state(), which takes care of
    allocating and initializing that state on the first time.  It also
    conveniently takes care of unlocking on failure for us, so we don't
    need to handle that in every caller.
    
    Fixes dEQP-GLES31.functional.debug.state_query.debug_group_stack_depth_
    {getboolean,getfloat,getinteger,getinteger64}.
    
    Cc: mesa-stable@lists.freedesktop.org
    Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
    Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu>
    Reviewed-by: Timothy Arceri <timothy.arceri@collabora.com>
    Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
    (cherry picked from commit b4b50b074beae9b679e5acdbb4b49193e539576d)

diff --git a/src/mesa/main/debug_output.c b/src/mesa/main/debug_output.c
index 10ee675..c2b9f05 100644
--- a/src/mesa/main/debug_output.c
+++ b/src/mesa/main/debug_output.c
@@ -761,15 +761,11 @@ _mesa_set_debug_state_int(struct gl_context *ctx, GLenum pname, GLint val)
 GLint
 _mesa_get_debug_state_int(struct gl_context *ctx, GLenum pname)
 {
-   struct gl_debug_state *debug;
    GLint val;
 
-   mtx_lock(&ctx->DebugMutex);
-   debug = ctx->Debug;
-   if (!debug) {
-      mtx_unlock(&ctx->DebugMutex);
+   struct gl_debug_state *debug = _mesa_lock_debug_state(ctx);
+   if (!debug)
       return 0;
-   }
 
    switch (pname) {
    case GL_DEBUG_OUTPUT:
@@ -794,7 +790,7 @@ _mesa_get_debug_state_int(struct gl_context *ctx, GLenum pname)
       break;
    }
 
-   mtx_unlock(&ctx->DebugMutex);
+   _mesa_unlock_debug_state(ctx);
 
    return val;
 }
@@ -806,15 +802,11 @@ _mesa_get_debug_state_int(struct gl_context *ctx, GLenum pname)
 void *
 _mesa_get_debug_state_ptr(struct gl_context *ctx, GLenum pname)
 {
-   struct gl_debug_state *debug;
    void *val;
+   struct gl_debug_state *debug = _mesa_lock_debug_state(ctx);
 
-   mtx_lock(&ctx->DebugMutex);
-   debug = ctx->Debug;
-   if (!debug) {
-      mtx_unlock(&ctx->DebugMutex);
+   if (!debug)
       return NULL;
-   }
 
    switch (pname) {
    case GL_DEBUG_CALLBACK_FUNCTION_ARB:
@@ -829,7 +821,7 @@ _mesa_get_debug_state_ptr(struct gl_context *ctx, GLenum pname)
       break;
    }
 
-   mtx_unlock(&ctx->DebugMutex);
+   _mesa_unlock_debug_state(ctx);
 
    return val;
 }

commit a07e84278c06a8008087c0b9526b208cb257844a
Author: Oded Gabbay <oded.gabbay@gmail.com>
Date:   Wed Mar 2 21:11:57 2016 +0200

    radeonsi: Do colorformat endian swap for PIPE_USAGE_STAGING
    
    There is an old if statement (dated to 2011) that prevented doing
    endian swap for colorformat, in case the buffer is marked as
    PIPE_USAGE_STAGING.
    
    This is now wrong because st_ReadPixels() reads into a destination
    texture that is marked with PIPE_USAGE_STAGING. Therefore, even if
    the texture is rendered correctly to the monitor, when reading it
    back we get unswapped/wrong values.
    
    This patch makes the check_rgba() function in gl-1.0-readpixsanity
    piglit test pass in big-endian.
    
    Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
    Cc: "11.1 11.2" <mesa-stable@lists.freedesktop.org>
    Reviewed-by: Marek Olšák <marek.olsak@amd.com>
    (cherry picked from commit 914d4967d723c58ec073eef677237798c2dc9751)

diff --git a/src/gallium/drivers/radeonsi/si_state.c b/src/gallium/drivers/radeonsi/si_state.c
index 2dfdbeb..663ebb3 100644
--- a/src/gallium/drivers/radeonsi/si_state.c
+++ b/src/gallium/drivers/radeonsi/si_state.c
@@ -2250,11 +2250,7 @@ static void si_initialize_color_surface(struct si_context *sctx,
 	}
 	assert(format != V_028C70_COLOR_INVALID);
 	swap = r600_translate_colorswap(surf->base.format);
-	if (rtex->resource.b.b.usage == PIPE_USAGE_STAGING) {
-		endian = V_028C70_ENDIAN_NONE;
-	} else {
-		endian = si_colorformat_endian_swap(format);
-	}
+	endian = si_colorformat_endian_swap(format);
 
 	/* blend clamp should be set for all NORM/SRGB types */
 	if (ntype == V_028C70_NUMBER_UNORM ||

commit feb1972a80ee7009261289c40dad8fda696cd8d0
Author: Oded Gabbay <oded.gabbay@gmail.com>
Date:   Wed Mar 2 21:11:49 2016 +0200

    r600g: Do colorformat endian swap for PIPE_USAGE_STAGING
    
    There is an old if statement (dated to 2011) that prevented doing
    endian swap for colorformat, in case the buffer is marked
    as PIPE_USAGE_STAGING.
    
    This is now wrong because st_ReadPixels() reads into a destination
    texture that is marked with PIPE_USAGE_STAGING. Therefore, even if
    the texture is rendered correctly to the monitor, when reading it
    back we get unswapped/wrong values.
    
    This patch makes the check_rgba() function in gl-1.0-readpixsanity
    piglit test pass in big-endian.
    
    v2: removed duplicate call to r600_colorformat_endian_swap() inside
    evergreen_init_color_surface_rat()
    
    Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
    Cc: "11.1 11.2" <mesa-stable@lists.freedesktop.org>
    Reviewed-by: Marek Olšák <marek.olsak@amd.com>
    (cherry picked from commit ef5183faea98dfdaa1ca0c7368c4678a031dd804)

diff --git a/src/gallium/drivers/r600/evergreen_state.c b/src/gallium/drivers/r600/evergreen_state.c
index 61d32c0..c6ac5ef 100644
--- a/src/gallium/drivers/r600/evergreen_state.c
+++ b/src/gallium/drivers/r600/evergreen_state.c
@@ -989,13 +989,6 @@ void evergreen_init_color_surface_rat(struct r600_context *rctx,
 		MAX2(64, rctx->screen->b.info.pipe_interleave_bytes / block_size);
 	unsigned pitch = align(pipe_buffer->width0, pitch_alignment);
 
-	/* XXX: This is copied from evergreen_init_color_surface().  I don't
-	 * know why this is necessary.
-	 */
-	if (pipe_buffer->usage == PIPE_USAGE_STAGING) {
-		endian = ENDIAN_NONE;
-	}
-
 	surf->cb_color_base = r600_resource(pipe_buffer)->gpu_address >> 8;
 
 	surf->cb_color_pitch = (pitch / 8) - 1;
@@ -1146,11 +1139,7 @@ void evergreen_init_color_surface(struct r600_context *rctx,
 	swap = r600_translate_colorswap(surf->base.format);
 	assert(swap != ~0);
 
-	if (rtex->resource.b.b.usage == PIPE_USAGE_STAGING) {
-		endian = ENDIAN_NONE;
-	} else {
-		endian = r600_colorformat_endian_swap(format);
-	}
+	endian = r600_colorformat_endian_swap(format);
 
 	/* blend clamp should be set for all NORM/SRGB types */
 	if (ntype == V_028C70_NUMBER_UNORM || ntype == V_028C70_NUMBER_SNORM ||
diff --git a/src/gallium/drivers/r600/r600_state.c b/src/gallium/drivers/r600/r600_state.c
index f60e304..f902619 100644
--- a/src/gallium/drivers/r600/r600_state.c
+++ b/src/gallium/drivers/r600/r600_state.c
@@ -930,11 +930,7 @@ static void r600_init_color_surface(struct r600_context *rctx,
 	swap = r600_translate_colorswap(surf->base.format);
 	assert(swap != ~0);
 
-	if (rtex->resource.b.b.usage == PIPE_USAGE_STAGING) {
-		endian = ENDIAN_NONE;
-	} else {
-		endian = r600_colorformat_endian_swap(format);
-	}
+	endian = r600_colorformat_endian_swap(format);
 
 	/* set blend bypass according to docs if SINT/UINT or
 	   8/24 COLOR variants */

commit caa10464ab1e58d34a70ed38323613fefa52a766
Author: Matt Turner <mattst88@gmail.com>
Date:   Sat Feb 27 16:38:26 2016 -0800

    glsl: Initialize gl_shader_program::EmptyUniformLocations.
    
    Commit 65dfb30 added exec_list EmptyUniformLocations, but only
    initialized the list if ARB_explicit_uniform_location was enabled,
    leading to crashes if the extension was not available.
    
    Cc: "11.2" <mesa-stable@lists.freedesktop.org>
    Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
    (cherry picked from commit f3b68fc5fc806cbfd5e7d79b8679fd2bcbae71f4)

diff --git a/src/compiler/glsl/linker.cpp b/src/compiler/glsl/linker.cpp
index 5326bfd..3039232 100644
--- a/src/compiler/glsl/linker.cpp
+++ b/src/compiler/glsl/linker.cpp
@@ -3180,7 +3180,6 @@ check_explicit_uniform_locations(struct gl_context *ctx,
       }
    }
 
-   exec_list_make_empty(&prog->EmptyUniformLocations);
    struct empty_uniform_block *current_block = NULL;
 
    for (unsigned i = 0; i < prog->NumUniformRemapTable; i++) {
diff --git a/src/mesa/main/shaderobj.c b/src/mesa/main/shaderobj.c
index 203ccef..9a4eb6b 100644
--- a/src/mesa/main/shaderobj.c
+++ b/src/mesa/main/shaderobj.c
@@ -240,6 +240,8 @@ init_shader_program(struct gl_shader_program *prog)
 
    prog->TransformFeedback.BufferMode = GL_INTERLEAVED_ATTRIBS;
 
+   exec_list_make_empty(&prog->EmptyUniformLocations);
+
    prog->InfoLog = ralloc_strdup(prog, "");
 }
 

commit 50c678c7069cf97178b97d6c46972680e8e6495e
Author: Dave Airlie <airlied@redhat.com>
Date:   Tue Mar 1 15:48:44 2016 +1000

    virgl: add support for passing render condition flags to host.
    
    This just passes the extra blit info to fix the render condition
    tests.
    
    Cc: "11.2" <mesa-stable@lists.freedesktop.org>
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    (cherry picked from commit ac222626adfc7a03bf537deba66bad5e57b2c91d)

diff --git a/src/gallium/drivers/virgl/virgl_encode.c b/src/gallium/drivers/virgl/virgl_encode.c
index 22fb529..1a1c40b 100644
--- a/src/gallium/drivers/virgl/virgl_encode.c
+++ b/src/gallium/drivers/virgl/virgl_encode.c
@@ -741,7 +741,9 @@ int virgl_encode_blit(struct virgl_context *ctx,
    virgl_encoder_write_cmd_dword(ctx, VIRGL_CMD0(VIRGL_CCMD_BLIT, 0, VIRGL_CMD_BLIT_SIZE));
    tmp = VIRGL_CMD_BLIT_S0_MASK(blit->mask) |
       VIRGL_CMD_BLIT_S0_FILTER(blit->filter) |
-      VIRGL_CMD_BLIT_S0_SCISSOR_ENABLE(blit->scissor_enable);
+      VIRGL_CMD_BLIT_S0_SCISSOR_ENABLE(blit->scissor_enable) |
+      VIRGL_CMD_BLIT_S0_RENDER_CONDITION_ENABLE(blit->render_condition_enable) |
+      VIRGL_CMD_BLIT_S0_ALPHA_BLEND(blit->alpha_blend);
    virgl_encoder_write_dword(ctx->cbuf, tmp);
    virgl_encoder_write_dword(ctx->cbuf, (blit->scissor.minx | blit->scissor.miny << 16));
    virgl_encoder_write_dword(ctx->cbuf, (blit->scissor.maxx | blit->scissor.maxy << 16));
diff --git a/src/gallium/drivers/virgl/virgl_protocol.h b/src/gallium/drivers/virgl/virgl_protocol.h
index ca3142f..a2f1e81 100644
--- a/src/gallium/drivers/virgl/virgl_protocol.h
+++ b/src/gallium/drivers/virgl/virgl_protocol.h
@@ -388,6 +388,8 @@ enum virgl_context_cmd {
 #define VIRGL_CMD_BLIT_S0_MASK(x) (((x) & 0xff) << 0)
 #define VIRGL_CMD_BLIT_S0_FILTER(x) (((x) & 0x3) << 8)
 #define VIRGL_CMD_BLIT_S0_SCISSOR_ENABLE(x) (((x) & 0x1) << 10)
+#define VIRGL_CMD_BLIT_S0_RENDER_CONDITION_ENABLE(x) (((x) & 0x1) << 11)
+#define VIRGL_CMD_BLIT_S0_ALPHA_BLEND(x) (((x) & 0x1) << 12)
 #define VIRGL_CMD_BLIT_SCISSOR_MINX_MINY 2
 #define VIRGL_CMD_BLIT_SCISSOR_MAXX_MAXY 3
 #define VIRGL_CMD_BLIT_DST_RES_HANDLE 4

commit ae4a7a5962d418b3dc29325169f301ee4a8fc945
Author: Dave Airlie <airlied@redhat.com>
Date:   Mon Feb 29 17:16:10 2016 +1000

    mesa/fbobject: propogate Layered when reusing attachments.
    
    When reusing a depth attachment as a stencil, we need to propogate
    the layered bit, otherwise we fail to complete the framebuffer.
    
    discovered running ./bin/fbo-depth-array depth-layered-clear
    on virgl on haswell.
    
    Reviewed-by: Marek Olšák <marek.olsak@amd.com>
    Cc: "11.1 11.2" <mesa-stable@lists.freedesktop.org>
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    (cherry picked from commit 35859d5bbba998aa41ec87bc53d946add4662dea)

diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c
index 1f10050..621f84f 100644
--- a/src/mesa/main/fbobject.c
+++ b/src/mesa/main/fbobject.c
@@ -2815,6 +2815,7 @@ reuse_framebuffer_texture_attachment(struct gl_framebuffer *fb,
    dst_att->Complete = src_att->Complete;
    dst_att->TextureLevel = src_att->TextureLevel;
    dst_att->Zoffset = src_att->Zoffset;
+   dst_att->Layered = src_att->Layered;
 }
 
 

commit d956cfebd5391e23b5ffdaf07b59f312acabe8d4
Author: Axel Davy <axel.davy@ens.fr>
Date:   Sat Feb 27 11:02:21 2016 +0100

    st/nine: Fix second Multithreading issue with MANAGED buffers
    
    Here is another threading issue with MANAGED buffers:
    
    Thread 1: buffer creation
    Thread 1: buffer lock
    Thread 2: Draw call
    Thread 1: writes data
    Thread 1: Unlock
    
    Without this patch, the buffer is initially dirty
    and in the list of things to upload after its creation.
    The draw call will then upload the data and unset the dirty flag,
    and the Unlock won't trigger a second upload.
    
    Fixes regression introduced by cc0114f30b587a10766ec212afb3ad356099ef23:
    "st/nine: Implement Managed vertex/index buffers"
    
    Cc: "11.2" <mesa-stable@lists.freedesktop.org>
    
    Signed-off-by: Axel Davy <axel.davy@ens.fr>
    (cherry picked from commit 83bc2acfe90fd2e503bab4b5a586c1e2822863f5)

diff --git a/src/gallium/state_trackers/nine/buffer9.c b/src/gallium/state_trackers/nine/buffer9.c
index 6d5d9d6..1103741 100644
--- a/src/gallium/state_trackers/nine/buffer9.c
+++ b/src/gallium/state_trackers/nine/buffer9.c
@@ -182,6 +182,9 @@ NineBuffer9_Lock( struct NineBuffer9 *This,
                 This->managed.dirty_box = box;
             } else {
                 u_box_union_2d(&This->managed.dirty_box, &This->managed.dirty_box, &box);
+                /* Do not upload while we are locking, we'll add it back later */
+                if (!LIST_IS_EMPTY(&This->managed.list))
+                    list_delinit(&This->managed.list);
             }
         }
         *ppbData = (char *)This->managed.data + OffsetToLock;

commit d29f41e1ba4414f4d3ed324ec44e389f6fceb51a
Author: Axel Davy <axel.davy@ens.fr>
Date:   Thu Feb 25 19:07:37 2016 +0100

    st/nine: Fix Multithreading issue with MANAGED buffers
    
    d3d calls are protected by mutexes, however if app is doing in
    two threads:
    
    Thread 1: buffer Lock
    Thread 2: Draw call
    Thread 1: writes data
    Thread 1: Unlock
    
    Then before this patch, the Draw call would begin to upload
    the buffer.
    
    Solves this by moving the moment we add the buffer to the queue
    of things to upload (We move it from Lock time to Unlock time).
    
    Cc: "11.2" <mesa-stable@lists.freedesktop.org>
    
    Signed-off-by: Axel Davy <axel.davy@ens.fr>
    (cherry picked from commit 44246fe99d4c880b70a58043624bf023237009f5)

diff --git a/src/gallium/state_trackers/nine/buffer9.c b/src/gallium/state_trackers/nine/buffer9.c
index 8efb4ce..6d5d9d6 100644
--- a/src/gallium/state_trackers/nine/buffer9.c
+++ b/src/gallium/state_trackers/nine/buffer9.c
@@ -178,7 +178,6 @@ NineBuffer9_Lock( struct NineBuffer9 *This,
         if (!(Flags & D3DLOCK_READONLY)) {
             if (!This->managed.dirty) {
                 assert(LIST_IS_EMPTY(&This->managed.list));
-                list_add(&This->managed.list, &This->base.base.device->update_buffers);
                 This->managed.dirty = TRUE;
                 This->managed.dirty_box = box;
             } else {
@@ -232,8 +231,13 @@ NineBuffer9_Unlock( struct NineBuffer9 *This )
     user_assert(This->nmaps > 0, D3DERR_INVALIDCALL);
     if (This->base.pool != D3DPOOL_MANAGED)
         This->pipe->transfer_unmap(This->pipe, This->maps[--(This->nmaps)]);
-    else
+    else {
         This->nmaps--;
+        /* TODO: Fix this to upload at the first draw call needing the data,
+         * instead of at the next draw call */
+        if (!This->nmaps && This->managed.dirty && LIST_IS_EMPTY(&This->managed.list))
+            list_add(&This->managed.list, &This->base.base.device->update_buffers);
+    }
     return D3D_OK;
 }
 

commit eda0880f77217233c2cb1acc538d55a6227da834
Author: Axel Davy <axel.davy@ens.fr>
Date:   Wed Feb 24 23:44:40 2016 +0100

    st/nine: Handle READONLY for buffer MANAGED pool
    
    READONLY won't trigger an upload.
    
    Cc: "11.2" <mesa-stable@lists.freedesktop.org>
    
    Signed-off-by: Axel Davy <axel.davy@ens.fr>
    (cherry picked from commit 35c858c42c818d5bf5b4bfee03a342df52acface)

diff --git a/src/gallium/state_trackers/nine/buffer9.c b/src/gallium/state_trackers/nine/buffer9.c
index e066fc5..8efb4ce 100644
--- a/src/gallium/state_trackers/nine/buffer9.c
+++ b/src/gallium/state_trackers/nine/buffer9.c
@@ -174,13 +174,16 @@ NineBuffer9_Lock( struct NineBuffer9 *This,
     u_box_1d(OffsetToLock, SizeToLock, &box);
 
     if (This->base.pool == D3DPOOL_MANAGED) {
-        if (!This->managed.dirty) {
-            assert(LIST_IS_EMPTY(&This->managed.list));
-            list_add(&This->managed.list, &This->base.base.device->update_buffers);
-            This->managed.dirty = TRUE;
-            This->managed.dirty_box = box;
-        } else {
-            u_box_union_2d(&This->managed.dirty_box, &This->managed.dirty_box, &box);
+        /* READONLY doesn't dirty the buffer */
+        if (!(Flags & D3DLOCK_READONLY)) {
+            if (!This->managed.dirty) {
+                assert(LIST_IS_EMPTY(&This->managed.list));
+                list_add(&This->managed.list, &This->base.base.device->update_buffers);
+                This->managed.dirty = TRUE;
+                This->managed.dirty_box = box;
+            } else {
+                u_box_union_2d(&This->managed.dirty_box, &This->managed.dirty_box, &box);
+            }
         }
         *ppbData = (char *)This->managed.data + OffsetToLock;
         DBG("returning pointer %p\n", *ppbData);

commit ac909bf6f71e37d4fa795cbbafe90d8ecb6c8b16
Author: Axel Davy <axel.davy@ens.fr>
Date:   Sun Feb 21 16:35:31 2016 +0100

    st/nine: Use Position input helper for ps3 declared inputs
    
    When the semantic is Position (which can happen with index 0 only),
    use the helper to get Position input.
    
    Cc: "11.2" <mesa-stable@lists.freedesktop.org>
    
    Signed-off-by: Axel Davy <axel.davy@ens.fr>
    (cherry picked from commit 8a8affdfdace486f4e416e66e2dd0ed122505a90)

diff --git a/src/gallium/state_trackers/nine/nine_shader.c b/src/gallium/state_trackers/nine/nine_shader.c
index f0c5236..eb6479b 100644
--- a/src/gallium/state_trackers/nine/nine_shader.c
+++ b/src/gallium/state_trackers/nine/nine_shader.c
@@ -2052,9 +2052,16 @@ DECL_SPECIAL(DCL)
             unsigned interp_location = 0;
             /* SM3 only, SM2 input semantic determined by file */
             assert(sem.reg.idx < Elements(tx->regs.v));
+
+            if (tgsi.Name == TGSI_SEMANTIC_POSITION) {
+                tx->regs.v[sem.reg.idx] = nine_get_position_input(tx);
+                return D3D_OK;
+            }
+
             if (sem.reg.mod & NINED3DSPDM_CENTROID ||
                 (tgsi.Name == TGSI_SEMANTIC_COLOR && tx->info->force_color_in_centroid))
                 interp_location = TGSI_INTERPOLATE_LOC_CENTROID;
+
             tx->regs.v[sem.reg.idx] = ureg_DECL_fs_input_cyl_centroid(
                 ureg, tgsi.Name, tgsi.Index,
                 nine_tgsi_to_interp_mode(&tgsi),

commit 7073248f2f7e4c30af77526892ad9ff0f4e0aaed
Author: Axel Davy <axel.davy@ens.fr>
Date:   Sun Feb 21 16:30:15 2016 +0100

    st/nine: Introduce helper for Position shader input
    
    Cc: "11.2" <mesa-stable@lists.freedesktop.org>
    
    Signed-off-by: Axel Davy <axel.davy@ens.fr>
    (cherry picked from commit f08c990af53e91114257b19e5679e2dbbc277e45)

diff --git a/src/gallium/state_trackers/nine/nine_shader.c b/src/gallium/state_trackers/nine/nine_shader.c
index a7a7da2..f0c5236 100644
--- a/src/gallium/state_trackers/nine/nine_shader.c
+++ b/src/gallium/state_trackers/nine/nine_shader.c
@@ -830,6 +830,18 @@ nine_ureg_dst_register(unsigned file, int index)
     return ureg_dst(ureg_src_register(file, index));
 }
 
+static inline struct ureg_src
+nine_get_position_input(struct shader_translator *tx)
+{
+    struct ureg_program *ureg = tx->ureg;
+
+    if (tx->wpos_is_sysval)
+        return ureg_DECL_system_value(ureg, TGSI_SEMANTIC_POSITION, 0);
+    else
+        return ureg_DECL_fs_input(ureg, TGSI_SEMANTIC_POSITION,
+                                  0, TGSI_INTERPOLATE_LINEAR);
+}
+
 static struct ureg_src
 tx_src_param(struct shader_translator *tx, const struct sm1_src_param *param)
 {
@@ -955,16 +967,8 @@ tx_src_param(struct shader_translator *tx, const struct sm1_src_param *param)
     case D3DSPR_MISCTYPE:
         switch (param->idx) {
         case D3DSMO_POSITION:
-           if (ureg_src_is_undef(tx->regs.vPos)) {
-              if (tx->wpos_is_sysval) {
-                  tx->regs.vPos =
-                      ureg_DECL_system_value(ureg, TGSI_SEMANTIC_POSITION, 0);
-              } else {
-                  tx->regs.vPos =
-                      ureg_DECL_fs_input(ureg, TGSI_SEMANTIC_POSITION, 0,
-                                         TGSI_INTERPOLATE_LINEAR);
-              }
-           }
+           if (ureg_src_is_undef(tx->regs.vPos))
+              tx->regs.vPos = nine_get_position_input(tx);
            if (tx->shift_wpos) {
                /* TODO: do this only once */
                struct ureg_dst wpos = tx_scratch(tx);
@@ -3269,12 +3273,7 @@ shader_add_ps_fog_stage(struct shader_translator *tx, struct ureg_src src_col)
     }
 
     if (tx->info->fog_mode != D3DFOG_NONE) {
-        if (tx->wpos_is_sysval) {
-            depth = ureg_DECL_system_value(ureg, TGSI_SEMANTIC_POSITION, 0);
-        } else {
-            depth = ureg_DECL_fs_input(ureg, TGSI_SEMANTIC_POSITION, 0,
-                                       TGSI_INTERPOLATE_LINEAR);
-        }
+        depth = nine_get_position_input(tx);
         depth = ureg_scalar(depth, TGSI_SWIZZLE_Z);
     }
 

commit 33b045688ddf70f69243e1b792b81b0f4180be0f
Author: Emil Velikov <emil.velikov@collabora.com>
Date:   Mon Feb 29 11:46:35 2016 +0000

    Update version to 11.2.0-rc2
    
    Signed-off-by: Emil Velikov <emil.velikov@collabora.com>

diff --git a/VERSION b/VERSION
index 94ba9ae..b7ce1a2 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-11.2.0-rc1
+11.2.0-rc2

commit 7d056d2ec9b3717cad09d6694d920033fa30edad
Author: Thomas Hindoe Paaboel Andersen <phomes@gmail.com>
Date:   Mon Feb 22 15:58:00 2016 -0700

    mesa: use sizeof on the correct type
    
    Before the luminance stride was based on the size of GL_FLOAT
    which is just the type constant (0x1406). Change it to use the
    size of GLfloat.
    
    Reviewed-by: Brian Paul <brianp@vmware.com>
    (cherry picked from commit 1807806add36327ba1e713c49554b61b2855d5f9)
    Nominated-by: Emil Velikov <emil.velikov@collabora.com>

diff --git a/src/mesa/main/readpix.c b/src/mesa/main/readpix.c
index 470182a..882d863 100644
--- a/src/mesa/main/readpix.c
+++ b/src/mesa/main/readpix.c
@@ -582,7 +582,7 @@ read_rgba_pixels( struct gl_context *ctx,
       void *luminance;
       uint32_t luminance_format;
 
-      luminance_stride = width * sizeof(GL_FLOAT);
+      luminance_stride = width * sizeof(GLfloat);
       if (format == GL_LUMINANCE_ALPHA)
          luminance_stride *= 2;
       luminance_bytes = height * luminance_stride;

commit 188e698e1a6f0d7c822e13e67ff6c1ea973c3ec4
Author: Marc-André Lureau <marcandre.lureau@gmail.com>
Date:   Fri Feb 12 22:11:05 2016 +0100

    virtio_gpu: Add virtio 1.0 PCI ID to driver map
    
    Add the virtio-gpu PCI ID for virtio 1.0 (according to the
    specification, "the PCI Device ID is calculated by adding 0x1040 to the
    Virtio Device ID")
    
    Support for virtio 1.0 was added in qemu 2.4 (same time virtio-gpu
    landed).
    
    Cc: "11.1 11.2" <mesa-stable@lists.freedesktop.org>
    Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
    Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
    (cherry picked from commit f1d12e7392896f45a76df87b6ad0bf18647922df)

diff --git a/include/pci_ids/virtio_gpu_pci_ids.h b/include/pci_ids/virtio_gpu_pci_ids.h
index 2e6ecaf..9232cd2 100644
--- a/include/pci_ids/virtio_gpu_pci_ids.h
+++ b/include/pci_ids/virtio_gpu_pci_ids.h
@@ -1 +1,2 @@
 CHIPSET(0x0010, VIRTGL, VIRTGL)
+CHIPSET(0x1050, VIRTGL, VIRTGL)

commit 6f561c535db35e4895d72e155e391a9fc7824e7f
Author: Koop Mast <kwm@rainbow-runner.nl>
Date:   Mon Dec 28 20:26:48 2015 +0100

    st/clover: Add libelf cflags to the build
    
    Otherwise the build will fail, when the library is in a non default
    location.
    
    v2 [Emil Velikov]
     - drop the unneeded cflags from targets/opencl.
    
    Cc: "11.1 11.2" <mesa-stable@lists.freedesktop.org>
    Fixes: 7f585a6a98d "configure.ac: use pkg-config for libelf"
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93524
    Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
    (cherry picked from commit 04bc09fdf9e353fbb1303635236da551785373c9)

diff --git a/src/gallium/state_trackers/clover/Makefile.am b/src/gallium/state_trackers/clover/Makefile.am
index 3c94216..4c9d7d9 100644
--- a/src/gallium/state_trackers/clover/Makefile.am
+++ b/src/gallium/state_trackers/clover/Makefile.am
@@ -41,6 +41,7 @@ libclllvm_la_CXXFLAGS = \
 	$(VISIBILITY_CXXFLAGS) \
 	$(LLVM_CXXFLAGS) \
 	$(DEFINES) \
+	$(LIBELF_CFLAGS) \
 	-DLIBCLC_INCLUDEDIR=\"$(LIBCLC_INCLUDEDIR)/\" \
 	-DLIBCLC_LIBEXECDIR=\"$(LIBCLC_LIBEXECDIR)/\" \
 	-DCLANG_RESOURCE_DIR=\"$(CLANG_RESOURCE_DIR)\"
diff --git a/src/gallium/targets/opencl/Makefile.am b/src/gallium/targets/opencl/Makefile.am
index f3ba1e3..99532f0 100644
--- a/src/gallium/targets/opencl/Makefile.am
+++ b/src/gallium/targets/opencl/Makefile.am
@@ -2,9 +2,6 @@ include $(top_srcdir)/src/gallium/Automake.inc
 
 lib_LTLIBRARIES = lib@OPENCL_LIBNAME@.la
 
-AM_CPPFLAGS = \
-        $(LIBELF_CFLAGS)
-
 lib@OPENCL_LIBNAME@_la_LDFLAGS = \
 	$(LLVM_LDFLAGS) \
 	-no-undefined \

commit 5fb53ff66adc05500057543868cc0da33003591f
Author: Emil Velikov <emil.l.velikov@gmail.com>
Date:   Wed Sep 2 17:36:22 2015 +0100

    mesa; add get-extra-pick-list.sh script into bin/
    
    This is a very rudimentary script that checks if any of the applied
    cherry-picks have been referenced (fixed?) by another patch. With the
    latter either missing the stable tag or hasn't yet been picked.
    
    Cc: "11.1 11.2" <mesa-stable@lists.freedesktop.org>
    Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
    (cherry picked from commit c212a70cd9d5f5731841e4194c57e8a77e0b4e41)

diff --git a/bin/get-extra-pick-list.sh b/bin/get-extra-pick-list.sh
new file mode 100755
index 0000000..a9d25b9
--- /dev/null
+++ b/bin/get-extra-pick-list.sh
@@ -0,0 +1,35 @@
+#!/bin/sh
+
+# Script for generating a list of candidates which fix commits that have been
+# previously cherry-picked to a stable branch.
+#
+# Usage examples:
+#
+# $ bin/get-extra-pick-list.sh
+# $ bin/get-extra-pick-list.sh > picklist
+# $ bin/get-extra-pick-list.sh | tee picklist
+
+# Use the last branchpoint as our limit for the search
+# XXX: there should be a better way for this
+latest_branchpoint=`git branch | grep \* | cut -c 3-`-branchpoint
+
+# Grep for commits with "cherry picked from commit" in the commit message.
+git log --reverse --grep="cherry picked from commit" $latest_branchpoint..HEAD |\
+	grep "cherry picked from commit" |\
+	sed -e 's/^[[:space:]]*(cherry picked from commit[[:space:]]*//' -e 's/)//' |\
+	cut -c -8 |\
+while read sha
+do
+	# Check if the original commit is referenced in master
+	git log -n1 --pretty=oneline --grep=$sha $latest_branchpoint..origin/master |\
+		cut -c -8 |\
+	while read candidate
+	do
+		# Check if the potential fix, hasn't landed in branch yet.
+		found=`git log -n1 --pretty=oneline --reverse --grep=$candidate $latest_branchpoint..HEAD |wc -l`
+		if test $found = 0
+		then
+			echo Commit $candidate might need to be picked, as it references $sha
+		fi
+	done
+done

commit aeacc8633652879063e3079a8d90607b8df0f05b
Author: Emil Velikov <emil.velikov@collabora.com>
Date:   Thu Feb 25 15:20:04 2016 +0000

    automake: add more missing options for make distcheck
    
    Namely - opencl, osmesa (only the gallium flavour as it conflicts with
    the classic one), surfaceless egl platform and a couple gallium drivers
    (virgl and vc4).
    
    Cc: "11.1 11.2" <mesa-stable@lists.freedesktop.org>
    Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
    (cherry picked from commit 325bc6fb4a045b4643f284a6b76c336e418064c2)

diff --git a/Makefile.am b/Makefile.am
index 5df8bc3..2c06e3a 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -24,19 +24,21 @@ SUBDIRS = src
 AM_DISTCHECK_CONFIGURE_FLAGS = \
 	--enable-dri3 \
 	--enable-gallium-tests \
+	--enable-gallium-osmesa \
 	--enable-gbm \
 	--enable-gles1 \
 	--enable-gles2 \
 	--enable-glx-tls \
 	--enable-nine \
+	--enable-opencl \
 	--enable-va \
 	--enable-vdpau \
 	--enable-xa \
 	--enable-xvmc \
 	--disable-llvm-shared-libs \
-	--with-egl-platforms=x11,wayland,drm \
+	--with-egl-platforms=x11,wayland,drm,surfaceless \
 	--with-dri-drivers=i915,i965,nouveau,radeon,r200,swrast \
-	--with-gallium-drivers=i915,ilo,nouveau,r300,r600,radeonsi,freedreno,svga,swrast
+	--with-gallium-drivers=i915,ilo,nouveau,r300,r600,radeonsi,freedreno,svga,swrast,vc4,virgl
 
 ACLOCAL_AMFLAGS = -I m4
 

commit 06bc8e251555b5aa38eccaeded9f625c8394164e
Author: Emil Velikov <emil.velikov@collabora.com>
Date:   Thu Feb 25 16:53:06 2016 +0000

    install-gallium-links: port changes from install-lib-links
    
    Namely:
    b662d5282f7 mesa: Add clean-local rule to remove .lib links.
    5c1aac17adf install-lib-links: don't depend on .libs directory
    fece147be53 install-lib-links: remove the .install-lib-links file
    
    With these in place, make distcheck now passes and a race condition has
    been avoided.
    
    Cc: "11.1 11.2" <mesa-stable@lists.freedesktop.org>
    Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
    (cherry picked from commit 0b6157e9713c662a6635fc0d79a393d95550c4ad)

diff --git a/install-gallium-links.mk b/install-gallium-links.mk
index f45f1b4..4010cad 100644
--- a/install-gallium-links.mk
+++ b/install-gallium-links.mk
@@ -3,9 +3,9 @@
 
 if BUILD_SHARED
 if HAVE_COMPAT_SYMLINKS
-all-local : .libs/install-gallium-links
+all-local : .install-gallium-links
 
-.libs/install-gallium-links : $(dri_LTLIBRARIES) $(egl_LTLIBRARIES) $(lib_LTLIBRARIES)
+.install-gallium-links : $(dri_LTLIBRARIES) $(egl_LTLIBRARIES) $(lib_LTLIBRARIES)
 	$(AM_V_GEN)$(MKDIR_P) $(top_builddir)/$(LIB_DIR);	\
 	link_dir=$(top_builddir)/$(LIB_DIR)/gallium;		\
 	if test x$(egl_LTLIBRARIES) != x; then			\
@@ -23,4 +23,15 @@ all-local : .libs/install-gallium-links
 		fi;						\
 	done && touch $@
 endif
+
+clean-local:
+	for f in $(notdir $(dri_LTLIBRARIES:%.la=.libs/%.$(LIB_EXT)*)) \
+		 $(notdir $(egl_LTLIBRARIES:%.la=.libs/%.$(LIB_EXT)*)) \
+		 $(notdir $(lib_LTLIBRARIES:%.la=.libs/%.$(LIB_EXT)*)); do \
+		echo $$f; \
+		$(RM) $(top_builddir)/$(LIB_DIR)/gallium/$$f;   \
+	done;
+	rmdir $(top_builddir)/$(LIB_DIR)/gallium || true
+	$(RM) .install-gallium-links
+
 endif

commit c1e82fcf967dddcb8cc7f737fae7bdd674292bc1
Author: Rob Herring <robh@kernel.org>
Date:   Wed Feb 24 12:56:31 2016 -0600

    r600: Make enum alu_op_flags unsigned
    
    In builds with clang, there are several errors related to the enum
    alu_op_flags like this:
    
    src/gallium/drivers/r600/sb/sb_expr.cpp:887:8:
    error: case value evaluates to -1610612736, which cannot be narrowed to
    type 'unsigned int' [-Wc++11-narrowing]
    
    These are due to the MSB being set in the enum. Fix these errors by
    making the enum values unsigned as needed. The flags field that stores
    this enum also needs to be unsigned.
    
    Cc: "11.1 11.2" <mesa-stable@lists.freedesktop.org>
    Cc: Marek Olšák <marek.olsak@amd.com>
    Signed-off-by: Rob Herring <robh@kernel.org>
    Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
    (cherry picked from commit 51b22bd46888c972eb8c80ee5524d94f6f0b8996)

diff --git a/src/gallium/drivers/r600/r600_isa.h b/src/gallium/drivers/r600/r600_isa.h
index 27fc1e8..b3f49bd 100644
--- a/src/gallium/drivers/r600/r600_isa.h
+++ b/src/gallium/drivers/r600/r600_isa.h
@@ -102,13 +102,13 @@ enum alu_op_flags
 
 	/* condition codes - 3 bits */
 	AF_CC_SHIFT = 29,
-	AF_CC_MASK	= (7 << AF_CC_SHIFT),
-	AF_CC_E		= (0 << AF_CC_SHIFT),
-	AF_CC_GT	= (1 << AF_CC_SHIFT),
-	AF_CC_GE	= (2 << AF_CC_SHIFT),
-	AF_CC_NE	= (3 << AF_CC_SHIFT),
-	AF_CC_LT	= (4 << AF_CC_SHIFT),
-	AF_CC_LE	= (5 << AF_CC_SHIFT),
+	AF_CC_MASK	= (7U << AF_CC_SHIFT),
+	AF_CC_E		= (0U << AF_CC_SHIFT),
+	AF_CC_GT	= (1U << AF_CC_SHIFT),
+	AF_CC_GE	= (2U << AF_CC_SHIFT),
+	AF_CC_NE	= (3U << AF_CC_SHIFT),
+	AF_CC_LT	= (4U << AF_CC_SHIFT),
+	AF_CC_LE	= (5U << AF_CC_SHIFT),
 };


Reply to: