Mesa (master): amd/common: document PREDICATION OP 3 as 64-bit bool.

2017-03-06 Thread Dave Airlie
Module: Mesa
Branch: master
Commit: 03f5405fc2fa718ddab36e244f1abd2f038df777
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=03f5405fc2fa718ddab36e244f1abd2f038df777

Author: Dave Airlie 
Date:   Thu Mar  2 05:40:09 2017 +1000

amd/common: document PREDICATION OP 3 as 64-bit bool.

This just documents some info for possible future use.

Reviewed-by: Marek Olšák 
Signed-off-by: Dave Airlie 

---

 src/amd/common/sid.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/amd/common/sid.h b/src/amd/common/sid.h
index 285cfbf..7789add 100644
--- a/src/amd/common/sid.h
+++ b/src/amd/common/sid.h
@@ -56,6 +56,7 @@
 #define PREDICATION_OP_CLEAR 0x0
 #define PREDICATION_OP_ZPASS 0x1
 #define PREDICATION_OP_PRIMCOUNT 0x2
+#define PREDICATION_OP_BOOL64 0x3
 
 #define PRED_OP(x) ((x) << 16)
 

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): radv: move fast clear before resolve into own loop.

2017-03-06 Thread Dave Airlie
Module: Mesa
Branch: master
Commit: c5947e9787c700239da329fb4c373a5c6b4f35da
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=c5947e9787c700239da329fb4c373a5c6b4f35da

Author: Dave Airlie 
Date:   Mon Mar  6 23:31:48 2017 +

radv: move fast clear before resolve into own loop.

Don't fast clear inside the meta loop as things get
confused, fixes a crash in:
dEQP-VK.api.copy_and_blit.resolve_image.whole_array_image.2_bit

Reviewed-by: Bas Nieuwenhuizen 
Signed-off-by: Dave Airlie 

---

 src/amd/vulkan/radv_meta_resolve_cs.c | 23 +++
 1 file changed, 15 insertions(+), 8 deletions(-)

diff --git a/src/amd/vulkan/radv_meta_resolve_cs.c 
b/src/amd/vulkan/radv_meta_resolve_cs.c
index 9cb4ce8..3272d1f 100644
--- a/src/amd/vulkan/radv_meta_resolve_cs.c
+++ b/src/amd/vulkan/radv_meta_resolve_cs.c
@@ -326,6 +326,21 @@ void radv_meta_resolve_compute_image(struct 
radv_cmd_buffer *cmd_buffer,
struct radv_meta_saved_compute_state saved_state;
const uint32_t samples = src_image->samples;
const uint32_t samples_log2 = ffs(samples) - 1;
+
+   for (uint32_t r = 0; r < region_count; ++r) {
+   const VkImageResolve *region = ®ions[r];
+   const uint32_t src_base_layer =
+   radv_meta_get_iview_layer(src_image, 
®ion->srcSubresource,
+ ®ion->srcOffset);
+   VkImageSubresourceRange range;
+   range.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
+   range.baseMipLevel = region->srcSubresource.mipLevel;
+   range.levelCount = 1;
+   range.baseArrayLayer = src_base_layer;
+   range.layerCount = region->srcSubresource.layerCount;
+   radv_fast_clear_flush_image_inplace(cmd_buffer, src_image, 
&range);
+   }
+
radv_meta_save_compute(&saved_state, cmd_buffer, 16);
 
for (uint32_t r = 0; r < region_count; ++r) {
@@ -350,14 +365,6 @@ void radv_meta_resolve_compute_image(struct 
radv_cmd_buffer *cmd_buffer,
const struct VkOffset3D dstOffset =
radv_sanitize_image_offset(dest_image->type, 
region->dstOffset);
 
-   VkImageSubresourceRange range;
-   range.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
-   range.baseMipLevel = region->srcSubresource.mipLevel;
-   range.levelCount = 1;
-   range.baseArrayLayer = src_base_layer;
-   range.layerCount = region->srcSubresource.layerCount;
-   radv_fast_clear_flush_image_inplace(cmd_buffer, src_image, 
&range);
-
for (uint32_t layer = 0; layer < 
region->srcSubresource.layerCount;
 ++layer) {
 

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): radv: handle z offset for 3d image <-> buffer copies.

2017-03-06 Thread Dave Airlie
Module: Mesa
Branch: master
Commit: b26249781e5bc8fc00e8b94d2a1c0d8e48eebe9e
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=b26249781e5bc8fc00e8b94d2a1c0d8e48eebe9e

Author: Dave Airlie 
Date:   Tue Mar  7 00:30:01 2017 +

radv: handle z offset for 3d image <-> buffer copies.

This fixes:
dEQP-VK.pipeline.render_to_image.3d.huge.depth.r8g8b8a8_unorm

Reviewed-by: Bas Nieuwenhuizen 
Signed-off-by: Dave Airlie 

---

 src/amd/vulkan/radv_meta_copy.c | 4 
 1 file changed, 4 insertions(+)

diff --git a/src/amd/vulkan/radv_meta_copy.c b/src/amd/vulkan/radv_meta_copy.c
index 5473764..54dadde 100644
--- a/src/amd/vulkan/radv_meta_copy.c
+++ b/src/amd/vulkan/radv_meta_copy.c
@@ -169,6 +169,8 @@ meta_copy_buffer_to_image(struct radv_cmd_buffer 
*cmd_buffer,
.pitch = buf_extent_el.width,
};
 
+   if (image->type == VK_IMAGE_TYPE_3D)
+   img_bsurf.layer = img_offset_el.z;
/* Loop through each 3D or array slice */
unsigned num_slices_3d = img_extent_el.depth;
unsigned num_slices_array = 
pRegions[r].imageSubresource.layerCount;
@@ -276,6 +278,8 @@ meta_copy_image_to_buffer(struct radv_cmd_buffer 
*cmd_buffer,
.pitch = buf_extent_el.width,
};
 
+   if (image->type == VK_IMAGE_TYPE_3D)
+   img_info.layer = img_offset_el.z;
/* Loop through each 3D or array slice */
unsigned num_slices_3d = img_extent_el.depth;
unsigned num_slices_array = 
pRegions[r].imageSubresource.layerCount;

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): radv: Disable HTILE for textures with multiple layers/ levels.

2017-03-06 Thread Bas Nieuwenhuizen
Module: Mesa
Branch: master
Commit: 0ab2dd361fd80c3840b1547cb7e05b4361eaf928
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=0ab2dd361fd80c3840b1547cb7e05b4361eaf928

Author: Bas Nieuwenhuizen 
Date:   Mon Mar  6 23:23:57 2017 +0100

radv: Disable HTILE for textures with multiple layers/levels.

It has issues and the fix I'm working on is too complicated for stable,
so disable for now.

Signed-off-by: Bas Nieuwenhuizen 
Reviewed-by: Dave Airlie 
CC: 13.0 17.0 

---

 src/amd/vulkan/radv_image.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/amd/vulkan/radv_image.c b/src/amd/vulkan/radv_image.c
index 461d668..b71d8b7 100644
--- a/src/amd/vulkan/radv_image.c
+++ b/src/amd/vulkan/radv_image.c
@@ -655,6 +655,9 @@ radv_image_alloc_htile(struct radv_device *device,
if (device->debug_flags & RADV_DEBUG_NO_HIZ)
return;
 
+   if (image->array_size > 1 || image->levels > 1)
+   return;
+
image->htile.size = radv_image_get_htile_size(device, image);
 
if (!image->htile.size)

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): radeonsi/ac: move get_image_intr_name to common

2017-03-06 Thread Dave Airlie
Module: Mesa
Branch: master
Commit: 10ae83a9c2243511981215ae908fe66251ffdcd0
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=10ae83a9c2243511981215ae908fe66251ffdcd0

Author: Dave Airlie 
Date:   Mon Mar  6 08:37:22 2017 +1000

radeonsi/ac: move get_image_intr_name to common

This code is used in radv, so move to common build code.

Reviewed-by: Bas Nieuwenhuizen 
Reviewed-by: Marek Olšák 
Signed-off-by: Dave Airlie 

---

 src/amd/common/ac_llvm_build.c   | 26 ++
 src/amd/common/ac_llvm_build.h   |  5 
 src/gallium/drivers/radeonsi/si_shader.c | 46 +++-
 3 files changed, 41 insertions(+), 36 deletions(-)

diff --git a/src/amd/common/ac_llvm_build.c b/src/amd/common/ac_llvm_build.c
index 8996159..5745fab 100644
--- a/src/amd/common/ac_llvm_build.c
+++ b/src/amd/common/ac_llvm_build.c
@@ -1216,3 +1216,29 @@ LLVMValueRef ac_build_bfe(struct ac_llvm_context *ctx, 
LLVMValueRef input,
  AC_FUNC_ATTR_READNONE |
  AC_FUNC_ATTR_LEGACY);
 }
+
+void ac_get_image_intr_name(const char *base_name,
+   LLVMTypeRef data_type,
+   LLVMTypeRef coords_type,
+   LLVMTypeRef rsrc_type,
+   char *out_name, unsigned out_len)
+{
+char coords_type_name[8];
+
+ac_build_type_name_for_intr(coords_type, coords_type_name,
+sizeof(coords_type_name));
+
+if (HAVE_LLVM <= 0x0309) {
+snprintf(out_name, out_len, "%s.%s", base_name, 
coords_type_name);
+} else {
+char data_type_name[8];
+char rsrc_type_name[8];
+
+ac_build_type_name_for_intr(data_type, data_type_name,
+sizeof(data_type_name));
+ac_build_type_name_for_intr(rsrc_type, rsrc_type_name,
+sizeof(rsrc_type_name));
+snprintf(out_name, out_len, "%s.%s.%s.%s", base_name,
+ data_type_name, coords_type_name, rsrc_type_name);
+}
+}
diff --git a/src/amd/common/ac_llvm_build.h b/src/amd/common/ac_llvm_build.h
index d3c537b..d6edcde 100644
--- a/src/amd/common/ac_llvm_build.h
+++ b/src/amd/common/ac_llvm_build.h
@@ -234,6 +234,11 @@ LLVMValueRef ac_build_bfe(struct ac_llvm_context *ctx, 
LLVMValueRef input,
  LLVMValueRef offset, LLVMValueRef width,
  bool is_signed);
 
+void ac_get_image_intr_name(const char *base_name,
+   LLVMTypeRef data_type,
+   LLVMTypeRef coords_type,
+   LLVMTypeRef rsrc_type,
+   char *out_name, unsigned out_len);
 #ifdef __cplusplus
 }
 #endif
diff --git a/src/gallium/drivers/radeonsi/si_shader.c 
b/src/gallium/drivers/radeonsi/si_shader.c
index ec34235..1553fd4 100644
--- a/src/gallium/drivers/radeonsi/si_shader.c
+++ b/src/gallium/drivers/radeonsi/si_shader.c
@@ -3534,32 +3534,6 @@ static void load_emit_memory(
emit_data->output[emit_data->chan] = lp_build_gather_values(gallivm, 
channels, 4);
 }
 
-static void get_image_intr_name(const char *base_name,
-   LLVMTypeRef data_type,
-   LLVMTypeRef coords_type,
-   LLVMTypeRef rsrc_type,
-   char *out_name, unsigned out_len)
-{
-   char coords_type_name[8];
-
-   ac_build_type_name_for_intr(coords_type, coords_type_name,
-   sizeof(coords_type_name));
-
-   if (HAVE_LLVM <= 0x0309) {
-   snprintf(out_name, out_len, "%s.%s", base_name, 
coords_type_name);
-   } else {
-   char data_type_name[8];
-   char rsrc_type_name[8];
-
-   ac_build_type_name_for_intr(data_type, data_type_name,
-   sizeof(data_type_name));
-   ac_build_type_name_for_intr(rsrc_type, rsrc_type_name,
-   sizeof(rsrc_type_name));
-   snprintf(out_name, out_len, "%s.%s.%s.%s", base_name,
-data_type_name, coords_type_name, rsrc_type_name);
-   }
-}
-
 /**
  * Return true if the memory accessed by a LOAD or STORE instruction is
  * read-only or write-only, respectively.
@@ -3662,11 +3636,11 @@ static void load_emit(
emit_data->args, emit_data->arg_count,
get_load_intr_attribs(readonly_memory));
} else {
-   get_image_intr_name("llvm.amdgcn.image.load",
-   emit_data->dst_type,/* vdata */
-   LLVMTypeOf(emit_data->args[0]), /* coords */
-   LLVMTypeOf(emit_data->args[1]), /* rsrc */
-  

Mesa (master): radv: Properly handle destroying NULL devices and instances

2017-03-06 Thread Dave Airlie
Module: Mesa
Branch: master
Commit: 6bae1e44a99f909359879951743599e6d6c1cc28
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=6bae1e44a99f909359879951743599e6d6c1cc28

Author: Dave Airlie 
Date:   Mon Mar  6 15:40:16 2017 +1000

radv: Properly handle destroying NULL devices and instances

Ported from anv:
3d33a23e anv: Properly handle destroying NULL devices and instances

Reviewed-by: Bas Nieuwenhuizen 
Signed-off-by: Dave Airlie 

---

 src/amd/vulkan/radv_device.c | 6 ++
 1 file changed, 6 insertions(+)

diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c
index 58f37c6..ab04473 100644
--- a/src/amd/vulkan/radv_device.c
+++ b/src/amd/vulkan/radv_device.c
@@ -365,6 +365,9 @@ void radv_DestroyInstance(
 {
RADV_FROM_HANDLE(radv_instance, instance, _instance);
 
+   if (!instance)
+   return;
+
for (int i = 0; i < instance->physicalDeviceCount; ++i) {
radv_physical_device_finish(instance->physicalDevices + i);
}
@@ -988,6 +991,9 @@ void radv_DestroyDevice(
 {
RADV_FROM_HANDLE(radv_device, device, _device);
 
+   if (!device)
+   return;
+
if (device->trace_bo)
device->ws->buffer_destroy(device->trace_bo);
 

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): radv/ac: introduce i1true/i1false to context.

2017-03-06 Thread Dave Airlie
Module: Mesa
Branch: master
Commit: 5c45d2051a7872675982242849bfdefaaa275707
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=5c45d2051a7872675982242849bfdefaaa275707

Author: Dave Airlie 
Date:   Mon Mar  6 12:24:59 2017 +1000

radv/ac: introduce i1true/i1false to context.

This uses these in a few places, and fixes one or two
cases which were using da as 32-bit instead of bool.

Reviewed-by: Bas Nieuwenhuizen 
Signed-off-by: Dave Airlie 

---

 src/amd/common/ac_nir_to_llvm.c | 65 +
 1 file changed, 33 insertions(+), 32 deletions(-)

diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c
index b3fae26..e472408 100644
--- a/src/amd/common/ac_nir_to_llvm.c
+++ b/src/amd/common/ac_nir_to_llvm.c
@@ -122,6 +122,8 @@ struct nir_to_llvm_context {
LLVMTypeRef v16i8;
LLVMTypeRef voidt;
 
+   LLVMValueRef i1true;
+   LLVMValueRef i1false;
LLVMValueRef i32zero;
LLVMValueRef i32one;
LLVMValueRef f32zero;
@@ -688,6 +690,8 @@ static void setup_types(struct nir_to_llvm_context *ctx)
ctx->v4f32 = LLVMVectorType(ctx->f32, 4);
ctx->v16i8 = LLVMVectorType(ctx->i8, 16);
 
+   ctx->i1false = LLVMConstInt(ctx->i1, 0, false);
+   ctx->i1true = LLVMConstInt(ctx->i1, 1, false);
ctx->i32zero = LLVMConstInt(ctx->i32, 0, false);
ctx->i32one = LLVMConstInt(ctx->i32, 1, false);
ctx->f32zero = LLVMConstReal(ctx->f32, 0.0);
@@ -1835,8 +1839,8 @@ static void visit_store_ssbo(struct nir_to_llvm_context 
*ctx,
 
params[1] = get_src(ctx, instr->src[1]);
params[2] = LLVMConstInt(ctx->i32, 0, false); /* vindex */
-   params[4] = LLVMConstInt(ctx->i1, 0, false);  /* glc */
-   params[5] = LLVMConstInt(ctx->i1, 0, false);  /* slc */
+   params[4] = ctx->i1false;  /* glc */
+   params[5] = ctx->i1false;  /* slc */
 
if (components_32bit > 1)
data_type = LLVMVectorType(ctx->f32, components_32bit);
@@ -1920,7 +1924,7 @@ static LLVMValueRef visit_atomic_ssbo(struct 
nir_to_llvm_context *ctx,
params[arg_count++] = get_src(ctx, instr->src[0]);
params[arg_count++] = LLVMConstInt(ctx->i32, 0, false); /* vindex */
params[arg_count++] = get_src(ctx, instr->src[1]);  /* voffset */
-   params[arg_count++] = LLVMConstInt(ctx->i1, 0, false);  /* slc */
+   params[arg_count++] = ctx->i1false;  /* slc */
 
switch (instr->intrinsic) {
case nir_intrinsic_ssbo_atomic_add:
@@ -1994,8 +1998,8 @@ static LLVMValueRef visit_load_buffer(struct 
nir_to_llvm_context *ctx,
get_src(ctx, instr->src[0]),
LLVMConstInt(ctx->i32, 0, false),
offset,
-   LLVMConstInt(ctx->i1, 0, false),
-   LLVMConstInt(ctx->i1, 0, false),
+   ctx->i1false,
+   ctx->i1false,
};
 
results[i] = ac_build_intrinsic(&ctx->ac, load_name, data_type, 
params, 5, 0);
@@ -2415,9 +2419,9 @@ static LLVMValueRef 
adjust_sample_index_using_fmask(struct nir_to_llvm_context *
LLVMValueRef fmask_desc_ptr)
 {
LLVMValueRef fmask_load_address[4], params[7];
-   LLVMValueRef glc = LLVMConstInt(ctx->i1, 0, false);
-   LLVMValueRef slc = LLVMConstInt(ctx->i1, 0, false);
-   LLVMValueRef da = coord_z ? ctx->i32one : ctx->i32zero;
+   LLVMValueRef glc = ctx->i1false;
+   LLVMValueRef slc = ctx->i1false;
+   LLVMValueRef da = coord_z ? ctx->i1true : ctx->i1false;
LLVMValueRef res;
char intrinsic_name[64];
 
@@ -2431,7 +2435,7 @@ static LLVMValueRef 
adjust_sample_index_using_fmask(struct nir_to_llvm_context *
params[0] = ac_build_gather_values(&ctx->ac, fmask_load_address, 
coord_z ? 4 : 2);
params[1] = fmask_desc_ptr;
params[2] = LLVMConstInt(ctx->i32, 15, false); /* dmask */
-   LLVMValueRef lwe = LLVMConstInt(ctx->i1, 0, false);
+   LLVMValueRef lwe = ctx->i1false;
params[3] = glc;
params[4] = slc;
params[5] = lwe;
@@ -2578,8 +2582,8 @@ static LLVMValueRef visit_image_load(struct 
nir_to_llvm_context *ctx,
params[1] = LLVMBuildExtractElement(ctx->builder, get_src(ctx, 
instr->src[0]),
LLVMConstInt(ctx->i32, 0, 
false), ""); /* vindex */
params[2] = LLVMConstInt(ctx->i32, 0, false); /* voffset */
-   params[3] = LLVMConstInt(ctx->i1, 0, false);  /* glc */
-   params[4] = LLVMConstInt(ctx->i1, 0, false);  /* slc */
+   params[3] = ctx->i1false;  /* glc */
+   params[4] = ctx->i1false;  /* slc */
res = ac_build_intrinsic(&ctx->ac, 
"llvm.amdgcn.buffer.load.format.v4f32", ctx->v4f32,
 params, 5, 0);
 
@@ -2588,20 +2592,20 @@ static 

Mesa (master): radv/ac: handle Z export using new builder.

2017-03-06 Thread Dave Airlie
Module: Mesa
Branch: master
Commit: ca884aef865f85f4ec9d443e326d338a62beeb12
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=ca884aef865f85f4ec9d443e326d338a62beeb12

Author: Dave Airlie 
Date:   Mon Mar  6 10:06:11 2017 +1000

radv/ac: handle Z export using new builder.

Reviewed-by: Bas Nieuwenhuizen 
Signed-off-by: Dave Airlie 

---

 src/amd/common/ac_nir_to_llvm.c | 41 +++--
 1 file changed, 19 insertions(+), 22 deletions(-)

diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c
index 177f58b..b3fae26 100644
--- a/src/amd/common/ac_nir_to_llvm.c
+++ b/src/amd/common/ac_nir_to_llvm.c
@@ -4665,44 +4665,41 @@ si_export_mrt_z(struct nir_to_llvm_context *ctx,
LLVMValueRef depth, LLVMValueRef stencil,
LLVMValueRef samplemask)
 {
-   LLVMValueRef args[9];
-   unsigned mask = 0;
-   args[1] = ctx->i32one; /* whether the EXEC mask is valid */
-   args[2] = ctx->i32one; /* DONE bit */
-   /* Specify the target we are exporting */
-   args[3] = LLVMConstInt(ctx->i32, V_008DFC_SQ_EXP_MRTZ, false);
+   struct ac_export_args args;
 
-   args[4] = ctx->i32zero; /* COMP flag */
-   args[5] = LLVMGetUndef(ctx->f32); /* R, depth */
-   args[6] = LLVMGetUndef(ctx->f32); /* G, stencil test val[0:7], stencil 
op val[8:15] */
-   args[7] = LLVMGetUndef(ctx->f32); /* B, sample mask */
-   args[8] = LLVMGetUndef(ctx->f32); /* A, alpha to mask */
+   args.enabled_channels = 0;
+   args.valid_mask = 1;
+   args.done = 1;
+   args.target = V_008DFC_SQ_EXP_MRTZ;
+   args.compr = false;
+
+   args.out[0] = LLVMGetUndef(ctx->f32); /* R, depth */
+   args.out[1] = LLVMGetUndef(ctx->f32); /* G, stencil test val[0:7], 
stencil op val[8:15] */
+   args.out[2] = LLVMGetUndef(ctx->f32); /* B, sample mask */
+   args.out[3] = LLVMGetUndef(ctx->f32); /* A, alpha to mask */
 
if (depth) {
-   args[5] = depth;
-   mask |= 0x1;
+   args.out[0] = depth;
+   args.enabled_channels |= 0x1;
}
 
if (stencil) {
-   args[6] = stencil;
-   mask |= 0x2;
+   args.out[1] = stencil;
+   args.enabled_channels |= 0x2;
}
 
if (samplemask) {
-   args[7] = samplemask;
-   mask |= 0x04;
+   args.out[2] = samplemask;
+   args.enabled_channels |= 0x4;
}
 
/* SI (except OLAND) has a bug that it only looks
 * at the X writemask component. */
if (ctx->options->chip_class == SI &&
ctx->options->family != CHIP_OLAND)
-   mask |= 0x01;
+   args.enabled_channels |= 0x1;
 
-   args[0] = LLVMConstInt(ctx->i32, mask, false);
-   ac_build_intrinsic(&ctx->ac, "llvm.SI.export",
-  ctx->voidt, args, 9,
-  AC_FUNC_ATTR_LEGACY);
+   ac_build_export(&ctx->ac, &args);
 }
 
 static void

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): radv/ac: move to using common ac_get_image_intr_name.

2017-03-06 Thread Dave Airlie
Module: Mesa
Branch: master
Commit: bf2be507744e19f822e1ba45e0b4e69698428971
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=bf2be507744e19f822e1ba45e0b4e69698428971

Author: Dave Airlie 
Date:   Mon Mar  6 08:37:54 2017 +1000

radv/ac: move to using common ac_get_image_intr_name.

Reviewed-by: Bas Nieuwenhuizen 
Signed-off-by: Dave Airlie 

---

 src/amd/common/ac_nir_to_llvm.c | 55 +++--
 1 file changed, 15 insertions(+), 40 deletions(-)

diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c
index be97c67..177f58b 100644
--- a/src/amd/common/ac_nir_to_llvm.c
+++ b/src/amd/common/ac_nir_to_llvm.c
@@ -2393,31 +2393,6 @@ static int image_type_to_components_count(enum 
glsl_sampler_dim dim, bool array)
 }
 
 
-static void get_image_intr_name(const char *base_name,
-LLVMTypeRef data_type,
-LLVMTypeRef coords_type,
-LLVMTypeRef rsrc_type,
-char *out_name, unsigned out_len)
-{
-char coords_type_name[8];
-
-ac_build_type_name_for_intr(coords_type, coords_type_name,
-sizeof(coords_type_name));
-
-if (HAVE_LLVM <= 0x0309) {
-snprintf(out_name, out_len, "%s.%s", base_name, 
coords_type_name);
-} else {
-char data_type_name[8];
-char rsrc_type_name[8];
-
-ac_build_type_name_for_intr(data_type, data_type_name,
-sizeof(data_type_name));
-ac_build_type_name_for_intr(rsrc_type, rsrc_type_name,
-sizeof(rsrc_type_name));
-snprintf(out_name, out_len, "%s.%s.%s.%s", base_name,
- data_type_name, coords_type_name, rsrc_type_name);
-}
-}
 
 /* Adjust the sample index according to FMASK.
  *
@@ -2462,11 +2437,11 @@ static LLVMValueRef 
adjust_sample_index_using_fmask(struct nir_to_llvm_context *
params[5] = lwe;
params[6] = da;
 
-   get_image_intr_name("llvm.amdgcn.image.load",
-   ctx->v4f32, /* vdata */
-   LLVMTypeOf(params[0]), /* coords */
-   LLVMTypeOf(params[1]), /* rsrc */
-   intrinsic_name, sizeof(intrinsic_name));
+   ac_get_image_intr_name("llvm.amdgcn.image.load",
+  ctx->v4f32, /* vdata */
+  LLVMTypeOf(params[0]), /* coords */
+  LLVMTypeOf(params[1]), /* rsrc */
+  intrinsic_name, sizeof(intrinsic_name));
 
res = ac_build_intrinsic(&ctx->ac, intrinsic_name, ctx->v4f32,
 params, 7, AC_FUNC_ATTR_READONLY);
@@ -2633,11 +2608,11 @@ static LLVMValueRef visit_image_load(struct 
nir_to_llvm_context *ctx,
params[6] = da;
}
 
-   get_image_intr_name("llvm.amdgcn.image.load",
-   ctx->v4f32, /* vdata */
-   LLVMTypeOf(params[0]), /* coords */
-   LLVMTypeOf(params[1]), /* rsrc */
-   intrinsic_name, sizeof(intrinsic_name));
+   ac_get_image_intr_name("llvm.amdgcn.image.load",
+  ctx->v4f32, /* vdata */
+  LLVMTypeOf(params[0]), /* coords */
+  LLVMTypeOf(params[1]), /* rsrc */
+  intrinsic_name, sizeof(intrinsic_name));
 
res = ac_build_intrinsic(&ctx->ac, intrinsic_name, ctx->v4f32,
 params, 7, AC_FUNC_ATTR_READONLY);
@@ -2692,11 +2667,11 @@ static void visit_image_store(struct 
nir_to_llvm_context *ctx,
params[7] = da;
}
 
-   get_image_intr_name("llvm.amdgcn.image.store",
-   LLVMTypeOf(params[0]), /* vdata */
-   LLVMTypeOf(params[1]), /* coords */
-   LLVMTypeOf(params[2]), /* rsrc */
-   intrinsic_name, sizeof(intrinsic_name));
+   ac_get_image_intr_name("llvm.amdgcn.image.store",
+  LLVMTypeOf(params[0]), /* vdata */
+  LLVMTypeOf(params[1]), /* coords */
+  LLVMTypeOf(params[2]), /* rsrc */
+  intrinsic_name, sizeof(intrinsic_name));
 
ac_build_intrinsic(&ctx->ac, intrinsic_name, ctx->voidt,
   params, 8, 0);

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lis

Mesa (master): gallium/util: remove PIPE_THREAD_ROUTINE()

2017-03-06 Thread Timothy Arceri
Module: Mesa
Branch: master
Commit: da40ac65c7b9f8d877fb6f79b2a29138237ec868
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=da40ac65c7b9f8d877fb6f79b2a29138237ec868

Author: Timothy Arceri 
Date:   Mon Mar  6 11:58:26 2017 +1100

gallium/util: remove PIPE_THREAD_ROUTINE()

This was made unnecessary with fd33a6bcd7f12.

This was mostly done with:
find ./src -type f -exec sed -i -- \
's:PIPE_THREAD_ROUTINE(\([^,]*\), \([^)]*\)):int\n\1(void \*\2):g' {} \;

With some small manual tidy ups.

Reviewed-by: Plamena Manolova 
Reviewed-by: Marek Olšák 

---

 src/gallium/auxiliary/os/os_thread.h | 5 +
 src/gallium/auxiliary/util/u_queue.c | 3 ++-
 src/gallium/drivers/ddebug/dd_draw.c | 3 ++-
 src/gallium/drivers/ddebug/dd_pipe.h | 3 ++-
 src/gallium/drivers/llvmpipe/lp_rast.c   | 3 ++-
 src/gallium/drivers/radeon/r600_gpu_load.c   | 3 ++-
 src/gallium/drivers/rbug/rbug_core.c | 6 --
 src/gallium/state_trackers/nine/nine_state.c | 3 ++-
 src/gallium/tests/unit/pipe_barrier_test.c   | 3 ++-
 9 files changed, 19 insertions(+), 13 deletions(-)

diff --git a/src/gallium/auxiliary/os/os_thread.h 
b/src/gallium/auxiliary/os/os_thread.h
index b15dd05..bb767fa 100644
--- a/src/gallium/auxiliary/os/os_thread.h
+++ b/src/gallium/auxiliary/os/os_thread.h
@@ -47,10 +47,7 @@
 #endif
 
 
-#define PIPE_THREAD_ROUTINE( name, param ) \
-   int name( void *param )
-
-static inline thrd_t pipe_thread_create( PIPE_THREAD_ROUTINE((*routine), ), 
void *param )
+static inline thrd_t pipe_thread_create(int (*routine)(void *), void *param)
 {
thrd_t thread;
 #ifdef HAVE_PTHREAD
diff --git a/src/gallium/auxiliary/util/u_queue.c 
b/src/gallium/auxiliary/util/u_queue.c
index b20abc8f..a3aed29 100644
--- a/src/gallium/auxiliary/util/u_queue.c
+++ b/src/gallium/auxiliary/util/u_queue.c
@@ -135,7 +135,8 @@ struct thread_input {
int thread_index;
 };
 
-static PIPE_THREAD_ROUTINE(util_queue_thread_func, input)
+static int
+util_queue_thread_func(void *input)
 {
struct util_queue *queue = ((struct thread_input*)input)->queue;
int thread_index = ((struct thread_input*)input)->thread_index;
diff --git a/src/gallium/drivers/ddebug/dd_draw.c 
b/src/gallium/drivers/ddebug/dd_draw.c
index 59afde8..e01d2ae 100644
--- a/src/gallium/drivers/ddebug/dd_draw.c
+++ b/src/gallium/drivers/ddebug/dd_draw.c
@@ -899,7 +899,8 @@ dd_dump_record(struct dd_context *dctx, struct 
dd_draw_record *record,
fclose(f);
 }
 
-PIPE_THREAD_ROUTINE(dd_thread_pipelined_hang_detect, input)
+int
+dd_thread_pipelined_hang_detect(void *input)
 {
struct dd_context *dctx = (struct dd_context *)input;
struct dd_screen *dscreen = dd_screen(dctx->base.screen);
diff --git a/src/gallium/drivers/ddebug/dd_pipe.h 
b/src/gallium/drivers/ddebug/dd_pipe.h
index 64d5510..deb1ab7 100644
--- a/src/gallium/drivers/ddebug/dd_pipe.h
+++ b/src/gallium/drivers/ddebug/dd_pipe.h
@@ -251,7 +251,8 @@ dd_context_create(struct dd_screen *dscreen, struct 
pipe_context *pipe);
 
 void
 dd_init_draw_functions(struct dd_context *dctx);
-PIPE_THREAD_ROUTINE(dd_thread_pipelined_hang_detect, input);
+int
+dd_thread_pipelined_hang_detect(void *input);
 
 
 static inline struct dd_context *
diff --git a/src/gallium/drivers/llvmpipe/lp_rast.c 
b/src/gallium/drivers/llvmpipe/lp_rast.c
index 9e56c96..2f222d0 100644
--- a/src/gallium/drivers/llvmpipe/lp_rast.c
+++ b/src/gallium/drivers/llvmpipe/lp_rast.c
@@ -781,7 +781,8 @@ lp_rast_finish( struct lp_rasterizer *rast )
  *   2. do work
  *   3. signal that we're done
  */
-static PIPE_THREAD_ROUTINE( thread_function, init_data )
+static int
+thread_function(void *init_data)
 {
struct lp_rasterizer_task *task = (struct lp_rasterizer_task *) init_data;
struct lp_rasterizer *rast = task->rast;
diff --git a/src/gallium/drivers/radeon/r600_gpu_load.c 
b/src/gallium/drivers/radeon/r600_gpu_load.c
index b5b0359..df43a6e 100644
--- a/src/gallium/drivers/radeon/r600_gpu_load.c
+++ b/src/gallium/drivers/radeon/r600_gpu_load.c
@@ -132,7 +132,8 @@ static void r600_update_mmio_counters(struct 
r600_common_screen *rscreen,
 
 #undef UPDATE_COUNTER
 
-static PIPE_THREAD_ROUTINE(r600_gpu_load_thread, param)
+static int
+r600_gpu_load_thread(void *param)
 {
struct r600_common_screen *rscreen = (struct r600_common_screen*)param;
const int period_us = 100 / SAMPLES_PER_SEC;
diff --git a/src/gallium/drivers/rbug/rbug_core.c 
b/src/gallium/drivers/rbug/rbug_core.c
index a5d3ee4..5752e5e 100644
--- a/src/gallium/drivers/rbug/rbug_core.c
+++ b/src/gallium/drivers/rbug/rbug_core.c
@@ -58,7 +58,8 @@ struct rbug_rbug
boolean running;
 };
 
-PIPE_THREAD_ROUTINE(rbug_thread, void_rbug);
+int
+rbug_thread(void *void_rbug);
 
 
 /**
@@ -799,7 +800,8 @@ rbug_con(struct rbug_rbug *tr_rbug)
tr_rbug->con = NULL;
 }
 
-PIPE_THREAD_ROUTINE(rbug_thread, void_tr_rbug)
+int
+rbug_thread(void *void_tr_rbug)
 {
struct rbug_rbug *t

Mesa (master): gallium/util: remove unused header from u_queue.c

2017-03-06 Thread Timothy Arceri
Module: Mesa
Branch: master
Commit: 7eb85b820440b38ccf6491aabdcf68cac112e0fc
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=7eb85b820440b38ccf6491aabdcf68cac112e0fc

Author: Timothy Arceri 
Date:   Mon Mar  6 11:58:29 2017 +1100

gallium/util: remove unused header from u_queue.c

Reviewed-by: Plamena Manolova 
Reviewed-by: Marek Olšák 

---

 src/gallium/auxiliary/util/u_queue.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/src/gallium/auxiliary/util/u_queue.c 
b/src/gallium/auxiliary/util/u_queue.c
index 9565c53..bb63a6b 100644
--- a/src/gallium/auxiliary/util/u_queue.c
+++ b/src/gallium/auxiliary/util/u_queue.c
@@ -27,7 +27,6 @@
 #include "u_queue.h"
 #include "u_memory.h"
 #include "u_string.h"
-#include "os/os_time.h"
 
 static void util_queue_killall_and_wait(struct util_queue *queue);
 

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): gallium/util: remove unused pipe_thread_destroy()

2017-03-06 Thread Timothy Arceri
Module: Mesa
Branch: master
Commit: 60a2c2507d4df92fcc56d9772a427ef9638757f2
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=60a2c2507d4df92fcc56d9772a427ef9638757f2

Author: Timothy Arceri 
Date:   Mon Mar  6 11:58:28 2017 +1100

gallium/util: remove unused pipe_thread_destroy()

Reviewed-by: Plamena Manolova 
Reviewed-by: Marek Olšák 

---

 src/gallium/auxiliary/os/os_thread.h | 5 -
 1 file changed, 5 deletions(-)

diff --git a/src/gallium/auxiliary/os/os_thread.h 
b/src/gallium/auxiliary/os/os_thread.h
index 2aad3e2..2292123 100644
--- a/src/gallium/auxiliary/os/os_thread.h
+++ b/src/gallium/auxiliary/os/os_thread.h
@@ -68,11 +68,6 @@ static inline thrd_t pipe_thread_create(int (*routine)(void 
*), void *param)
return thread;
 }
 
-static inline int pipe_thread_destroy( thrd_t thread )
-{
-   return thrd_detach( thread );
-}
-
 static inline void pipe_thread_setname( const char *name )
 {
 #if defined(HAVE_PTHREAD)

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): gallium/util: replace pipe_thread_wait() with thrd_join()

2017-03-06 Thread Timothy Arceri
Module: Mesa
Branch: master
Commit: d82d8be6148b599ce47bf4c0e6ae4e27cf5cc233
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=d82d8be6148b599ce47bf4c0e6ae4e27cf5cc233

Author: Timothy Arceri 
Date:   Mon Mar  6 11:58:27 2017 +1100

gallium/util: replace pipe_thread_wait() with thrd_join()

Replace done using:
find ./src -type f -exec sed -i -- \
's:pipe_thread_wait(\([^)]*\)):thrd_join(\1, NULL):g' {} \;

Reviewed-by: Plamena Manolova 
Reviewed-by: Marek Olšák 

---

 src/gallium/auxiliary/os/os_thread.h | 5 -
 src/gallium/auxiliary/util/u_queue.c | 2 +-
 src/gallium/drivers/ddebug/dd_context.c  | 2 +-
 src/gallium/drivers/llvmpipe/lp_rast.c   | 2 +-
 src/gallium/drivers/radeon/r600_gpu_load.c   | 2 +-
 src/gallium/drivers/rbug/rbug_core.c | 2 +-
 src/gallium/state_trackers/nine/nine_state.c | 2 +-
 src/gallium/tests/unit/pipe_barrier_test.c   | 2 +-
 8 files changed, 7 insertions(+), 12 deletions(-)

diff --git a/src/gallium/auxiliary/os/os_thread.h 
b/src/gallium/auxiliary/os/os_thread.h
index bb767fa..2aad3e2 100644
--- a/src/gallium/auxiliary/os/os_thread.h
+++ b/src/gallium/auxiliary/os/os_thread.h
@@ -68,11 +68,6 @@ static inline thrd_t pipe_thread_create(int (*routine)(void 
*), void *param)
return thread;
 }
 
-static inline int pipe_thread_wait( thrd_t thread )
-{
-   return thrd_join( thread, NULL );
-}
-
 static inline int pipe_thread_destroy( thrd_t thread )
 {
return thrd_detach( thread );
diff --git a/src/gallium/auxiliary/util/u_queue.c 
b/src/gallium/auxiliary/util/u_queue.c
index a3aed29..9565c53 100644
--- a/src/gallium/auxiliary/util/u_queue.c
+++ b/src/gallium/auxiliary/util/u_queue.c
@@ -272,7 +272,7 @@ util_queue_killall_and_wait(struct util_queue *queue)
mtx_unlock(&queue->lock);
 
for (i = 0; i < queue->num_threads; i++)
-  pipe_thread_wait(queue->threads[i]);
+  thrd_join(queue->threads[i], NULL);
queue->num_threads = 0;
 }
 
diff --git a/src/gallium/drivers/ddebug/dd_context.c 
b/src/gallium/drivers/ddebug/dd_context.c
index a52975d..eae128a 100644
--- a/src/gallium/drivers/ddebug/dd_context.c
+++ b/src/gallium/drivers/ddebug/dd_context.c
@@ -597,7 +597,7 @@ dd_context_destroy(struct pipe_context *_pipe)
   mtx_lock(&dctx->mutex);
   dctx->kill_thread = 1;
   mtx_unlock(&dctx->mutex);
-  pipe_thread_wait(dctx->thread);
+  thrd_join(dctx->thread, NULL);
   mtx_destroy(&dctx->mutex);
   assert(!dctx->records);
}
diff --git a/src/gallium/drivers/llvmpipe/lp_rast.c 
b/src/gallium/drivers/llvmpipe/lp_rast.c
index 2f222d0..678ef0b 100644
--- a/src/gallium/drivers/llvmpipe/lp_rast.c
+++ b/src/gallium/drivers/llvmpipe/lp_rast.c
@@ -956,7 +956,7 @@ void lp_rast_destroy( struct lp_rasterizer *rast )
 #ifdef _WIN32
   pipe_semaphore_wait(&rast->tasks[i].work_done);
 #else
-  pipe_thread_wait(rast->threads[i]);
+  thrd_join(rast->threads[i], NULL);
 #endif
}
 
diff --git a/src/gallium/drivers/radeon/r600_gpu_load.c 
b/src/gallium/drivers/radeon/r600_gpu_load.c
index df43a6e..1b51af4 100644
--- a/src/gallium/drivers/radeon/r600_gpu_load.c
+++ b/src/gallium/drivers/radeon/r600_gpu_load.c
@@ -170,7 +170,7 @@ void r600_gpu_load_kill_thread(struct r600_common_screen 
*rscreen)
return;
 
p_atomic_inc(&rscreen->gpu_load_stop_thread);
-   pipe_thread_wait(rscreen->gpu_load_thread);
+   thrd_join(rscreen->gpu_load_thread, NULL);
rscreen->gpu_load_thread = 0;
 }
 
diff --git a/src/gallium/drivers/rbug/rbug_core.c 
b/src/gallium/drivers/rbug/rbug_core.c
index 5752e5e..d09c4b5 100644
--- a/src/gallium/drivers/rbug/rbug_core.c
+++ b/src/gallium/drivers/rbug/rbug_core.c
@@ -869,7 +869,7 @@ rbug_stop(struct rbug_rbug *tr_rbug)
   return;
 
tr_rbug->running = false;
-   pipe_thread_wait(tr_rbug->thread);
+   thrd_join(tr_rbug->thread, NULL);
 
FREE(tr_rbug);
 
diff --git a/src/gallium/state_trackers/nine/nine_state.c 
b/src/gallium/state_trackers/nine/nine_state.c
index 5ec3d34..47a715d 100644
--- a/src/gallium/state_trackers/nine/nine_state.c
+++ b/src/gallium/state_trackers/nine/nine_state.c
@@ -238,7 +238,7 @@ nine_csmt_destroy( struct NineDevice9 *device, struct 
csmt_context *ctx )
 
 FREE(ctx);
 
-pipe_thread_wait(render_thread);
+thrd_join(render_thread, NULL);
 }
 
 static void
diff --git a/src/gallium/tests/unit/pipe_barrier_test.c 
b/src/gallium/tests/unit/pipe_barrier_test.c
index 34a77b8..f77f1e1 100644
--- a/src/gallium/tests/unit/pipe_barrier_test.c
+++ b/src/gallium/tests/unit/pipe_barrier_test.c
@@ -117,7 +117,7 @@ int main(int argc, char *argv[])
}
 
for (i = 0; i < NUM_THREADS; i++ ) {
-  pipe_thread_wait(threads[i]);
+  thrd_join(threads[i], NULL);
}
 
CHECK(p_atomic_read(&proceeded) == NUM_THREADS);

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): gallium/util: replace pipe_condvar with cnd_t

2017-03-06 Thread Timothy Arceri
Module: Mesa
Branch: master
Commit: e92293a601bbc141bb85f88f962264fa0b1da916
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=e92293a601bbc141bb85f88f962264fa0b1da916

Author: Timothy Arceri 
Date:   Mon Mar  6 10:41:39 2017 +1100

gallium/util: replace pipe_condvar with cnd_t

pipe_condvar was made unnecessary with fd33a6bcd7f12.

Reviewed-by: Marek Olšák 

---

 src/gallium/auxiliary/os/os_thread.h  | 8 ++--
 src/gallium/auxiliary/pipebuffer/pb_bufmgr_slab.c | 2 +-
 src/gallium/auxiliary/util/u_queue.h  | 6 +++---
 src/gallium/auxiliary/util/u_ringbuffer.c | 2 +-
 src/gallium/drivers/llvmpipe/lp_fence.h   | 2 +-
 src/gallium/drivers/rbug/rbug_context.h   | 2 +-
 src/gallium/state_trackers/nine/nine_queue.c  | 4 ++--
 src/gallium/state_trackers/nine/nine_state.c  | 2 +-
 8 files changed, 12 insertions(+), 16 deletions(-)

diff --git a/src/gallium/auxiliary/os/os_thread.h 
b/src/gallium/auxiliary/os/os_thread.h
index ad2cda4..b15dd05 100644
--- a/src/gallium/auxiliary/os/os_thread.h
+++ b/src/gallium/auxiliary/os/os_thread.h
@@ -121,10 +121,6 @@ __pipe_mutex_assert_locked(mtx_t *mutex)
 #endif
 }
 
-/* pipe_condvar
- */
-typedef cnd_t pipe_condvar;
-
 
 /*
  * pipe_barrier
@@ -157,7 +153,7 @@ typedef struct {
unsigned waiters;
uint64_t sequence;
mtx_t mutex;
-   pipe_condvar condvar;
+   cnd_t condvar;
 } pipe_barrier;
 
 static inline void pipe_barrier_init(pipe_barrier *barrier, unsigned count)
@@ -209,7 +205,7 @@ static inline void pipe_barrier_wait(pipe_barrier *barrier)
 typedef struct
 {
mtx_t mutex;
-   pipe_condvar cond;
+   cnd_t cond;
int counter;
 } pipe_semaphore;
 
diff --git a/src/gallium/auxiliary/pipebuffer/pb_bufmgr_slab.c 
b/src/gallium/auxiliary/pipebuffer/pb_bufmgr_slab.c
index a89236e..96c0683 100644
--- a/src/gallium/auxiliary/pipebuffer/pb_bufmgr_slab.c
+++ b/src/gallium/auxiliary/pipebuffer/pb_bufmgr_slab.c
@@ -71,7 +71,7 @@ struct pb_slab_buffer

/** Use when validating, to signal that all mappings are finished */
/* TODO: Actually validation does not reach this stage yet */
-   pipe_condvar event;
+   cnd_t event;
 };
 
 
diff --git a/src/gallium/auxiliary/util/u_queue.h 
b/src/gallium/auxiliary/util/u_queue.h
index 635545f..d62d87d 100644
--- a/src/gallium/auxiliary/util/u_queue.h
+++ b/src/gallium/auxiliary/util/u_queue.h
@@ -41,7 +41,7 @@
  */
 struct util_queue_fence {
mtx_t mutex;
-   pipe_condvar cond;
+   cnd_t cond;
int signalled;
 };
 
@@ -58,8 +58,8 @@ struct util_queue_job {
 struct util_queue {
const char *name;
mtx_t lock;
-   pipe_condvar has_queued_cond;
-   pipe_condvar has_space_cond;
+   cnd_t has_queued_cond;
+   cnd_t has_space_cond;
thrd_t *threads;
int num_queued;
unsigned num_threads;
diff --git a/src/gallium/auxiliary/util/u_ringbuffer.c 
b/src/gallium/auxiliary/util/u_ringbuffer.c
index fd51f26..4d61668 100644
--- a/src/gallium/auxiliary/util/u_ringbuffer.c
+++ b/src/gallium/auxiliary/util/u_ringbuffer.c
@@ -16,7 +16,7 @@ struct util_ringbuffer
 */
unsigned head;
unsigned tail;
-   pipe_condvar change;
+   cnd_t change;
mtx_t mutex;
 };
 
diff --git a/src/gallium/drivers/llvmpipe/lp_fence.h 
b/src/gallium/drivers/llvmpipe/lp_fence.h
index 4fc0801..b720264 100644
--- a/src/gallium/drivers/llvmpipe/lp_fence.h
+++ b/src/gallium/drivers/llvmpipe/lp_fence.h
@@ -44,7 +44,7 @@ struct lp_fence
unsigned id;
 
mtx_t mutex;
-   pipe_condvar signalled;
+   cnd_t signalled;
 
boolean issued;
unsigned rank;
diff --git a/src/gallium/drivers/rbug/rbug_context.h 
b/src/gallium/drivers/rbug/rbug_context.h
index 6f11fa4..e89c6ea 100644
--- a/src/gallium/drivers/rbug/rbug_context.h
+++ b/src/gallium/drivers/rbug/rbug_context.h
@@ -59,7 +59,7 @@ struct rbug_context {
 
/* draw locking */
mtx_t draw_mutex;
-   pipe_condvar draw_cond;
+   cnd_t draw_cond;
unsigned draw_num_rules;
int draw_blocker;
int draw_blocked;
diff --git a/src/gallium/state_trackers/nine/nine_queue.c 
b/src/gallium/state_trackers/nine/nine_queue.c
index 2a65a1e..7a85798 100644
--- a/src/gallium/state_trackers/nine/nine_queue.c
+++ b/src/gallium/state_trackers/nine/nine_queue.c
@@ -72,8 +72,8 @@ struct nine_queue_pool {
 unsigned tail;
 unsigned cur_instr;
 BOOL worker_wait;
-pipe_condvar event_pop;
-pipe_condvar event_push;
+cnd_t event_pop;
+cnd_t event_push;
 mtx_t mutex_pop;
 mtx_t mutex_push;
 };
diff --git a/src/gallium/state_trackers/nine/nine_state.c 
b/src/gallium/state_trackers/nine/nine_state.c
index bfc..e6d215a 100644
--- a/src/gallium/state_trackers/nine/nine_state.c
+++ b/src/gallium/state_trackers/nine/nine_state.c
@@ -63,7 +63,7 @@ struct csmt_context {
 thrd_t worker;
 struct nine_queue_pool* pool;
 BOOL terminate;
-pipe_condvar event_processed;
+cnd_t event_processed;
 mtx_t mutex_processed;
 struct NineDevice9 *device;
 BOOL processed;

___

Mesa (master): gallium/util: replace pipe_mutex_lock() with mtx_lock()

2017-03-06 Thread Timothy Arceri
Module: Mesa
Branch: master
Commit: ba72554f3e576c1674d52ab16d8d2edff9398b71
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=ba72554f3e576c1674d52ab16d8d2edff9398b71

Author: Timothy Arceri 
Date:   Sun Mar  5 12:12:30 2017 +1100

gallium/util: replace pipe_mutex_lock() with mtx_lock()

replace pipe_mutex_lock() was made unnecessary with fd33a6bcd7f12.

Replaced using:
find ./src -type f -exec sed -i -- \
's:pipe_mutex_lock(\([^)]*\)):mtx_lock(\&\1):g' {} \;

Reviewed-by: Marek Olšák 

---

 src/gallium/auxiliary/hud/hud_cpufreq.c|   2 +-
 src/gallium/auxiliary/hud/hud_diskstat.c   |   2 +-
 src/gallium/auxiliary/hud/hud_nic.c|   2 +-
 src/gallium/auxiliary/hud/hud_sensors_temp.c   |   2 +-
 src/gallium/auxiliary/os/os_thread.h   |   9 +-
 .../auxiliary/pipebuffer/pb_buffer_fenced.c|  22 +-
 src/gallium/auxiliary/pipebuffer/pb_bufmgr_debug.c |  14 +-
 src/gallium/auxiliary/pipebuffer/pb_bufmgr_mm.c|   6 +-
 src/gallium/auxiliary/pipebuffer/pb_bufmgr_pool.c  |   8 +-
 src/gallium/auxiliary/pipebuffer/pb_bufmgr_slab.c  |   4 +-
 src/gallium/auxiliary/pipebuffer/pb_cache.c|   6 +-
 src/gallium/auxiliary/pipebuffer/pb_slab.c |   8 +-
 src/gallium/auxiliary/rtasm/rtasm_execmem.c|   4 +-
 src/gallium/auxiliary/util/u_debug_flush.c |  12 +-
 src/gallium/auxiliary/util/u_debug_memory.c|   6 +-
 src/gallium/auxiliary/util/u_debug_refcnt.c|   4 +-
 src/gallium/auxiliary/util/u_debug_symbol.c|   2 +-
 src/gallium/auxiliary/util/u_queue.c   |  18 +-
 src/gallium/auxiliary/util/u_range.h   |   2 +-
 src/gallium/auxiliary/util/u_ringbuffer.c  |   4 +-
 src/gallium/drivers/ddebug/dd_context.c|   2 +-
 src/gallium/drivers/ddebug/dd_draw.c   |   6 +-
 src/gallium/drivers/freedreno/freedreno_batch.c|   8 +-
 .../drivers/freedreno/freedreno_batch_cache.c  |  14 +-
 src/gallium/drivers/freedreno/freedreno_context.h  |   2 +-
 src/gallium/drivers/freedreno/freedreno_draw.c |   4 +-
 src/gallium/drivers/freedreno/freedreno_resource.c |   2 +-
 src/gallium/drivers/llvmpipe/lp_fence.c|   4 +-
 src/gallium/drivers/llvmpipe/lp_scene.c|   2 +-
 src/gallium/drivers/llvmpipe/lp_setup.c|   2 +-
 src/gallium/drivers/nouveau/nv50/nv50_surface.c|   2 +-
 src/gallium/drivers/nouveau/nvc0/nvc0_surface.c|   2 +-
 src/gallium/drivers/r300/r300_blit.c   |   2 +-
 src/gallium/drivers/r300/r300_texture.c|   2 +-
 src/gallium/drivers/radeon/r600_gpu_load.c |   2 +-
 src/gallium/drivers/radeon/r600_pipe_common.c  |   2 +-
 src/gallium/drivers/radeon/r600_texture.c  |   4 +-
 src/gallium/drivers/radeonsi/si_shader.c   |   2 +-
 src/gallium/drivers/radeonsi/si_state_shaders.c|   6 +-
 src/gallium/drivers/rbug/rbug_context.c| 124 +++---
 src/gallium/drivers/rbug/rbug_core.c   |  52 +--
 src/gallium/drivers/rbug/rbug_screen.h |   4 +-
 src/gallium/drivers/svga/svga_resource_buffer.c|   4 +-
 .../drivers/svga/svga_resource_buffer_upload.c |   2 +-
 src/gallium/drivers/svga/svga_sampler_view.c   |   4 +-
 src/gallium/drivers/svga/svga_screen_cache.c   |   6 +-
 src/gallium/drivers/trace/tr_dump.c|  10 +-
 src/gallium/drivers/vc4/vc4_bufmgr.c   |  10 +-
 src/gallium/drivers/vc4/vc4_bufmgr.h   |   2 +-
 src/gallium/state_trackers/dri/dri2.c  |   2 +-
 src/gallium/state_trackers/glx/xlib/xm_api.c   |   4 +-
 src/gallium/state_trackers/hgl/hgl.c   |   2 +-
 src/gallium/state_trackers/nine/nine_lock.c| 440 ++---
 src/gallium/state_trackers/nine/nine_queue.c   |   8 +-
 src/gallium/state_trackers/nine/nine_state.c   |  16 +-
 src/gallium/state_trackers/omx/entrypoint.c|   4 +-
 src/gallium/state_trackers/va/buffer.c |  18 +-
 src/gallium/state_trackers/va/config.c |   8 +-
 src/gallium/state_trackers/va/context.c|   6 +-
 src/gallium/state_trackers/va/image.c  |  10 +-
 src/gallium/state_trackers/va/picture.c|   8 +-
 src/gallium/state_trackers/va/subpicture.c |  10 +-
 src/gallium/state_trackers/va/surface.c|  10 +-
 src/gallium/state_trackers/vdpau/bitmap.c  |   8 +-
 src/gallium/state_trackers/vdpau/decode.c  |   8 +-
 src/gallium/state_trackers/vdpau/htab.c|  10 +-
 src/gallium/state_trackers/vdpau/mixer.c   |  12 +-
 src/gallium/state_trackers/vdpau/output.c  |  20 +-
 src/gallium/state_trackers/vdpau/presentation.c|  16 +-
 src/gallium/state_trackers/vdpau/query.c   |  18 +-
 src/gallium/state_trackers/vdpau/surface.c |  12 +-
 .../targets/haiku-softpipe/GalliumContext.cpp  |   2 +-
 src/gallium/winsys/amdgpu/drm/amdgpu_bo.c  |  10 +-
 src/gallium/win

Mesa (master): gallium/util: replace pipe_mutex_destroy() with mtx_destroy ()

2017-03-06 Thread Timothy Arceri
Module: Mesa
Branch: master
Commit: be188289e1bf0e259c91a751c405d54bb99bc5d4
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=be188289e1bf0e259c91a751c405d54bb99bc5d4

Author: Timothy Arceri 
Date:   Sun Mar  5 12:32:04 2017 +1100

gallium/util: replace pipe_mutex_destroy() with mtx_destroy()

pipe_mutex_destroy() was made unnecessary with fd33a6bcd7f12.

Replace was done with:
find ./src -type f -exec sed -i -- \
's:pipe_mutex_destroy(\([^)]*\)):mtx_destroy(\&\1):g' {} \;

Reviewed-by: Marek Olšák 

---

 src/gallium/auxiliary/os/os_thread.h  |  7 ++-
 src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c   |  2 +-
 src/gallium/auxiliary/pipebuffer/pb_bufmgr_debug.c|  4 ++--
 src/gallium/auxiliary/pipebuffer/pb_cache.c   |  2 +-
 src/gallium/auxiliary/pipebuffer/pb_slab.c|  2 +-
 src/gallium/auxiliary/util/u_queue.c  |  6 +++---
 src/gallium/auxiliary/util/u_range.h  |  2 +-
 src/gallium/auxiliary/util/u_ringbuffer.c |  2 +-
 src/gallium/drivers/ddebug/dd_context.c   |  4 ++--
 src/gallium/drivers/freedreno/freedreno_screen.c  |  2 +-
 src/gallium/drivers/llvmpipe/lp_fence.c   |  2 +-
 src/gallium/drivers/llvmpipe/lp_scene.c   |  2 +-
 src/gallium/drivers/llvmpipe/lp_screen.c  |  2 +-
 src/gallium/drivers/nouveau/nv50/nv50_surface.c   |  2 +-
 src/gallium/drivers/nouveau/nvc0/nvc0_surface.c   |  2 +-
 src/gallium/drivers/r300/r300_screen.c|  2 +-
 src/gallium/drivers/radeon/r600_pipe_common.c |  4 ++--
 src/gallium/drivers/radeonsi/si_pipe.c|  2 +-
 src/gallium/drivers/radeonsi/si_state_shaders.c   |  4 ++--
 src/gallium/drivers/svga/svga_screen.c|  4 ++--
 src/gallium/drivers/svga/svga_screen_cache.c  |  2 +-
 src/gallium/state_trackers/dri/dri_screen.c   |  2 +-
 src/gallium/state_trackers/nine/nine_queue.c  |  4 ++--
 src/gallium/state_trackers/nine/nine_state.c  |  2 +-
 src/gallium/state_trackers/va/context.c   |  2 +-
 src/gallium/state_trackers/vdpau/decode.c |  2 +-
 src/gallium/state_trackers/vdpau/device.c |  2 +-
 src/gallium/targets/haiku-softpipe/GalliumContext.cpp |  2 +-
 src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c |  4 ++--
 src/gallium/winsys/radeon/drm/radeon_drm_bo.c |  2 +-
 src/gallium/winsys/radeon/drm/radeon_drm_winsys.c | 10 +-
 src/gallium/winsys/svga/drm/pb_buffer_simple_fenced.c |  2 +-
 src/gallium/winsys/svga/drm/vmw_surface.c |  2 +-
 src/gallium/winsys/virgl/drm/virgl_drm_winsys.c   |  4 ++--
 src/gallium/winsys/virgl/vtest/virgl_vtest_winsys.c   |  2 +-
 35 files changed, 50 insertions(+), 53 deletions(-)

diff --git a/src/gallium/auxiliary/os/os_thread.h 
b/src/gallium/auxiliary/os/os_thread.h
index cccb531..571e3c6 100644
--- a/src/gallium/auxiliary/os/os_thread.h
+++ b/src/gallium/auxiliary/os/os_thread.h
@@ -108,9 +108,6 @@ static inline int pipe_thread_is_self( pipe_thread thread )
return 0;
 }
 
-#define pipe_mutex_destroy(mutex) \
-   mtx_destroy(&(mutex))
-
 #define pipe_mutex_lock(mutex) \
(void) mtx_lock(&(mutex))
 
@@ -185,7 +182,7 @@ static inline void pipe_barrier_init(pipe_barrier *barrier, 
unsigned count)
 static inline void pipe_barrier_destroy(pipe_barrier *barrier)
 {
assert(barrier->waiters == 0);
-   pipe_mutex_destroy(barrier->mutex);
+   mtx_destroy(&barrier->mutex);
cnd_destroy(&barrier->condvar);
 }
 
@@ -238,7 +235,7 @@ pipe_semaphore_init(pipe_semaphore *sema, int init_val)
 static inline void
 pipe_semaphore_destroy(pipe_semaphore *sema)
 {
-   pipe_mutex_destroy(sema->mutex);
+   mtx_destroy(&sema->mutex);
cnd_destroy(&sema->cond);
 }
 
diff --git a/src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c 
b/src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c
index fefdcef..b3b7828 100644
--- a/src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c
+++ b/src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c
@@ -992,7 +992,7 @@ fenced_bufmgr_destroy(struct pb_manager *mgr)
 #endif
 
pipe_mutex_unlock(fenced_mgr->mutex);
-   pipe_mutex_destroy(fenced_mgr->mutex);
+   mtx_destroy(&fenced_mgr->mutex);
 
if (fenced_mgr->provider)
   fenced_mgr->provider->destroy(fenced_mgr->provider);
diff --git a/src/gallium/auxiliary/pipebuffer/pb_bufmgr_debug.c 
b/src/gallium/auxiliary/pipebuffer/pb_bufmgr_debug.c
index f614abf..33f068e 100644
--- a/src/gallium/auxiliary/pipebuffer/pb_bufmgr_debug.c
+++ b/src/gallium/auxiliary/pipebuffer/pb_bufmgr_debug.c
@@ -240,7 +240,7 @@ pb_debug_buffer_destroy(struct pb_buffer *_buf)
LIST_DEL(&buf->head);
pipe_mutex_unlock(mgr->mutex);
 
-   pipe_mutex_destroy(buf->mutex);
+   mtx_destroy(&buf->mutex);

pb_reference(&buf->buffer, NULL);
FREE(buf);
@@ -449,7 +449,7 @@ pb_debug_manager_destroy(struct pb_manager *_mgr)
}
pipe_mutex_unlock(mgr->mutex);


Mesa (master): gallium/util: replace pipe_mutex with mtx_t

2017-03-06 Thread Timothy Arceri
Module: Mesa
Branch: master
Commit: 2efddc63ee864ab917e444b68a7c2dcf520d451e
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=2efddc63ee864ab917e444b68a7c2dcf520d451e

Author: Timothy Arceri 
Date:   Sun Mar  5 12:32:01 2017 +1100

gallium/util: replace pipe_mutex with mtx_t

pipe_mutex was made unnecessary with fd33a6bcd7f12.

Reviewed-by: Marek Olšák 

---

 src/gallium/auxiliary/os/os_thread.h  | 14 +-
 src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c   |  2 +-
 src/gallium/auxiliary/pipebuffer/pb_bufmgr_debug.c|  4 ++--
 src/gallium/auxiliary/pipebuffer/pb_bufmgr_mm.c   |  2 +-
 src/gallium/auxiliary/pipebuffer/pb_bufmgr_pool.c |  2 +-
 src/gallium/auxiliary/pipebuffer/pb_bufmgr_slab.c |  2 +-
 src/gallium/auxiliary/pipebuffer/pb_cache.h   |  2 +-
 src/gallium/auxiliary/pipebuffer/pb_slab.h|  2 +-
 src/gallium/auxiliary/util/u_debug_flush.c|  2 +-
 src/gallium/auxiliary/util/u_queue.h  |  4 ++--
 src/gallium/auxiliary/util/u_range.h  |  2 +-
 src/gallium/auxiliary/util/u_ringbuffer.c |  2 +-
 src/gallium/drivers/ddebug/dd_pipe.h  |  2 +-
 src/gallium/drivers/freedreno/freedreno_screen.h  |  2 +-
 src/gallium/drivers/llvmpipe/lp_fence.h   |  2 +-
 src/gallium/drivers/llvmpipe/lp_scene.h   |  2 +-
 src/gallium/drivers/llvmpipe/lp_screen.h  |  2 +-
 src/gallium/drivers/nouveau/nv50/nv50_surface.c   |  2 +-
 src/gallium/drivers/nouveau/nvc0/nvc0_surface.c   |  2 +-
 src/gallium/drivers/r300/r300_screen.h|  2 +-
 src/gallium/drivers/radeon/r600_pipe_common.h |  4 ++--
 src/gallium/drivers/radeonsi/si_pipe.h|  4 ++--
 src/gallium/drivers/radeonsi/si_shader.h  |  2 +-
 src/gallium/drivers/rbug/rbug_context.h   |  6 +++---
 src/gallium/drivers/rbug/rbug_screen.h|  2 +-
 src/gallium/drivers/svga/svga_screen.h|  4 ++--
 src/gallium/drivers/svga/svga_screen_cache.h  |  2 +-
 src/gallium/drivers/vc4/vc4_screen.h  |  4 ++--
 src/gallium/state_trackers/dri/dri_screen.h   |  2 +-
 src/gallium/state_trackers/glx/xlib/xm_api.h  |  2 +-
 src/gallium/state_trackers/hgl/hgl_context.h  |  2 +-
 src/gallium/state_trackers/nine/nine_queue.c  |  4 ++--
 src/gallium/state_trackers/nine/nine_state.c  |  6 +++---
 src/gallium/state_trackers/va/va_private.h|  2 +-
 src/gallium/state_trackers/vdpau/vdpau_private.h  |  4 ++--
 src/gallium/targets/haiku-softpipe/GalliumContext.h   |  2 +-
 src/gallium/winsys/amdgpu/drm/amdgpu_winsys.h |  4 ++--
 src/gallium/winsys/radeon/drm/radeon_drm_bo.h |  2 +-
 src/gallium/winsys/radeon/drm/radeon_drm_winsys.c |  2 +-
 src/gallium/winsys/radeon/drm/radeon_drm_winsys.h | 10 +-
 src/gallium/winsys/svga/drm/pb_buffer_simple_fenced.c |  2 +-
 src/gallium/winsys/svga/drm/vmw_fence.c   |  2 +-
 src/gallium/winsys/svga/drm/vmw_surface.h |  2 +-
 src/gallium/winsys/virgl/drm/virgl_drm_winsys.h   |  4 ++--
 src/gallium/winsys/virgl/vtest/virgl_vtest_winsys.h   |  2 +-
 45 files changed, 67 insertions(+), 71 deletions(-)

diff --git a/src/gallium/auxiliary/os/os_thread.h 
b/src/gallium/auxiliary/os/os_thread.h
index 6eca2ca..af350b8 100644
--- a/src/gallium/auxiliary/os/os_thread.h
+++ b/src/gallium/auxiliary/os/os_thread.h
@@ -108,12 +108,8 @@ static inline int pipe_thread_is_self( pipe_thread thread )
return 0;
 }
 
-/* pipe_mutex
- */
-typedef mtx_t pipe_mutex;
-
 #define pipe_static_mutex(mutex) \
-   static pipe_mutex mutex = _MTX_INITIALIZER_NP
+   static mtx_t mutex = _MTX_INITIALIZER_NP
 
 #define pipe_mutex_init(mutex) \
(void) mtx_init(&(mutex), mtx_plain)
@@ -131,11 +127,11 @@ typedef mtx_t pipe_mutex;
__pipe_mutex_assert_locked(&(mutex))
 
 static inline void
-__pipe_mutex_assert_locked(pipe_mutex *mutex)
+__pipe_mutex_assert_locked(mtx_t *mutex)
 {
 #ifdef DEBUG
/* NOTE: this would not work for recursive mutexes, but
-* pipe_mutex doesn't support those
+* mtx_t doesn't support those
 */
int ret = mtx_trylock(mutex);
assert(ret == thrd_busy);
@@ -179,7 +175,7 @@ typedef struct {
unsigned count;
unsigned waiters;
uint64_t sequence;
-   pipe_mutex mutex;
+   mtx_t mutex;
pipe_condvar condvar;
 } pipe_barrier;
 
@@ -231,7 +227,7 @@ static inline void pipe_barrier_wait(pipe_barrier *barrier)
 
 typedef struct
 {
-   pipe_mutex mutex;
+   mtx_t mutex;
pipe_condvar cond;
int counter;
 } pipe_semaphore;
diff --git a/src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c 
b/src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c
index 7717d78..f5e761b 100644
--- a/src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c
+++ b/src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c
@@ -81,7 +81,7 @@ struct fenced_manager
/**
 

Mesa (master): gallium/util: replace pipe_mutex_unlock() with mtx_unlock()

2017-03-06 Thread Timothy Arceri
Module: Mesa
Branch: master
Commit: 628e84a58fdb26c63a705861b92f65f242613321
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=628e84a58fdb26c63a705861b92f65f242613321

Author: Timothy Arceri 
Date:   Sun Mar  5 12:32:06 2017 +1100

gallium/util: replace pipe_mutex_unlock() with mtx_unlock()

pipe_mutex_unlock() was made unnecessary with fd33a6bcd7f12.

Replaced using:
find ./src -type f -exec sed -i -- \
's:pipe_mutex_unlock(\([^)]*\)):mtx_unlock(\&\1):g' {} \;

Reviewed-by: Marek Olšák 

---

 src/gallium/auxiliary/hud/hud_cpufreq.c|   6 +-
 src/gallium/auxiliary/hud/hud_diskstat.c   |   8 +-
 src/gallium/auxiliary/hud/hud_nic.c|   6 +-
 src/gallium/auxiliary/hud/hud_sensors_temp.c   |   6 +-
 src/gallium/auxiliary/os/os_thread.h   |   9 +-
 .../auxiliary/pipebuffer/pb_buffer_fenced.c|  24 +-
 src/gallium/auxiliary/pipebuffer/pb_bufmgr_debug.c |  14 +-
 src/gallium/auxiliary/pipebuffer/pb_bufmgr_mm.c|  10 +-
 src/gallium/auxiliary/pipebuffer/pb_bufmgr_pool.c  |  12 +-
 src/gallium/auxiliary/pipebuffer/pb_bufmgr_slab.c  |   6 +-
 src/gallium/auxiliary/pipebuffer/pb_cache.c|  10 +-
 src/gallium/auxiliary/pipebuffer/pb_slab.c |   8 +-
 src/gallium/auxiliary/rtasm/rtasm_execmem.c|   4 +-
 src/gallium/auxiliary/util/u_debug_flush.c |  12 +-
 src/gallium/auxiliary/util/u_debug_memory.c|   6 +-
 src/gallium/auxiliary/util/u_debug_refcnt.c|   4 +-
 src/gallium/auxiliary/util/u_debug_symbol.c|   2 +-
 src/gallium/auxiliary/util/u_queue.c   |  20 +-
 src/gallium/auxiliary/util/u_range.h   |   2 +-
 src/gallium/auxiliary/util/u_ringbuffer.c  |   4 +-
 src/gallium/drivers/ddebug/dd_context.c|   2 +-
 src/gallium/drivers/ddebug/dd_draw.c   |   6 +-
 src/gallium/drivers/freedreno/freedreno_batch.c|   8 +-
 .../drivers/freedreno/freedreno_batch_cache.c  |  14 +-
 src/gallium/drivers/freedreno/freedreno_context.h  |   2 +-
 src/gallium/drivers/freedreno/freedreno_draw.c |   4 +-
 src/gallium/drivers/freedreno/freedreno_resource.c |   2 +-
 src/gallium/drivers/llvmpipe/lp_fence.c|   4 +-
 src/gallium/drivers/llvmpipe/lp_scene.c|   2 +-
 src/gallium/drivers/llvmpipe/lp_setup.c|   2 +-
 src/gallium/drivers/nouveau/nv50/nv50_surface.c|   2 +-
 src/gallium/drivers/nouveau/nvc0/nvc0_surface.c|   2 +-
 src/gallium/drivers/r300/r300_blit.c   |   2 +-
 src/gallium/drivers/r300/r300_texture.c|   2 +-
 src/gallium/drivers/radeon/r600_gpu_load.c |   2 +-
 src/gallium/drivers/radeon/r600_pipe_common.c  |   2 +-
 src/gallium/drivers/radeon/r600_texture.c  |   4 +-
 src/gallium/drivers/radeonsi/si_shader.c   |   4 +-
 src/gallium/drivers/radeonsi/si_state_shaders.c|  22 +-
 src/gallium/drivers/rbug/rbug_context.c| 128 +++---
 src/gallium/drivers/rbug/rbug_core.c   |  94 ++---
 src/gallium/drivers/rbug/rbug_screen.h |   4 +-
 src/gallium/drivers/svga/svga_resource_buffer.c|   4 +-
 .../drivers/svga/svga_resource_buffer_upload.c |   4 +-
 src/gallium/drivers/svga/svga_sampler_view.c   |   6 +-
 src/gallium/drivers/svga/svga_screen_cache.c   |  10 +-
 src/gallium/drivers/trace/tr_dump.c|  10 +-
 src/gallium/drivers/vc4/vc4_bufmgr.c   |  12 +-
 src/gallium/drivers/vc4/vc4_bufmgr.h   |   2 +-
 src/gallium/state_trackers/dri/dri2.c  |   4 +-
 src/gallium/state_trackers/glx/xlib/xm_api.c   |   8 +-
 src/gallium/state_trackers/nine/nine_lock.c| 440 ++---
 src/gallium/state_trackers/nine/nine_queue.c   |   8 +-
 src/gallium/state_trackers/nine/nine_state.c   |  16 +-
 src/gallium/state_trackers/omx/entrypoint.c|   6 +-
 src/gallium/state_trackers/va/buffer.c |  30 +-
 src/gallium/state_trackers/va/config.c |   8 +-
 src/gallium/state_trackers/va/context.c|   8 +-
 src/gallium/state_trackers/va/image.c  |  40 +-
 src/gallium/state_trackers/va/picture.c|  14 +-
 src/gallium/state_trackers/va/subpicture.c |  30 +-
 src/gallium/state_trackers/va/surface.c|  28 +-
 src/gallium/state_trackers/vdpau/bitmap.c  |   8 +-
 src/gallium/state_trackers/vdpau/decode.c  |  18 +-
 src/gallium/state_trackers/vdpau/htab.c|  10 +-
 src/gallium/state_trackers/vdpau/mixer.c   |  26 +-
 src/gallium/state_trackers/vdpau/output.c  |  36 +-
 src/gallium/state_trackers/vdpau/presentation.c|  22 +-
 src/gallium/state_trackers/vdpau/query.c   |  26 +-
 src/gallium/state_trackers/vdpau/surface.c |  30 +-
 .../targets/haiku-softpipe/GalliumContext.cpp  |   2 +-
 src/gallium/winsys/amdgpu/drm/amdgpu_bo.c  |  10 +-
 src/gallium/winsys/amdgpu/drm/amdgpu_cs.c  |   6 +-
 src/gallium

Mesa (master): gallium/util: remove pipe_static_mutex()

2017-03-06 Thread Timothy Arceri
Module: Mesa
Branch: master
Commit: acdcaf9be4695ccdc4a589a3416591dd316e876c
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=acdcaf9be4695ccdc4a589a3416591dd316e876c

Author: Timothy Arceri 
Date:   Sun Mar  5 12:32:02 2017 +1100

gallium/util: remove pipe_static_mutex()

This was made unnecessary with fd33a6bcd7f12.

Reviewed-by: Marek Olšák 

---

 src/gallium/auxiliary/hud/hud_cpufreq.c | 2 +-
 src/gallium/auxiliary/hud/hud_diskstat.c| 2 +-
 src/gallium/auxiliary/hud/hud_nic.c | 2 +-
 src/gallium/auxiliary/hud/hud_sensors_temp.c| 2 +-
 src/gallium/auxiliary/os/os_thread.h| 3 ---
 src/gallium/auxiliary/rtasm/rtasm_execmem.c | 2 +-
 src/gallium/auxiliary/util/u_debug_flush.c  | 2 +-
 src/gallium/auxiliary/util/u_debug_memory.c | 2 +-
 src/gallium/auxiliary/util/u_debug_refcnt.c | 2 +-
 src/gallium/auxiliary/util/u_debug_symbol.c | 2 +-
 src/gallium/auxiliary/util/u_queue.c| 2 +-
 src/gallium/drivers/trace/tr_dump.c | 2 +-
 src/gallium/state_trackers/glx/xlib/xm_api.c| 2 +-
 src/gallium/state_trackers/nine/nine_lock.c | 2 +-
 src/gallium/state_trackers/omx/entrypoint.c | 2 +-
 src/gallium/state_trackers/vdpau/htab.c | 2 +-
 src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c   | 2 +-
 src/gallium/winsys/etnaviv/drm/etnaviv_drm_winsys.c | 2 +-
 src/gallium/winsys/freedreno/drm/freedreno_drm_winsys.c | 2 +-
 src/gallium/winsys/nouveau/drm/nouveau_drm_winsys.c | 2 +-
 src/gallium/winsys/radeon/drm/radeon_drm_winsys.c   | 2 +-
 src/gallium/winsys/virgl/drm/virgl_drm_winsys.c | 2 +-
 22 files changed, 21 insertions(+), 24 deletions(-)

diff --git a/src/gallium/auxiliary/hud/hud_cpufreq.c 
b/src/gallium/auxiliary/hud/hud_cpufreq.c
index 78754b2..41e5827 100644
--- a/src/gallium/auxiliary/hud/hud_cpufreq.c
+++ b/src/gallium/auxiliary/hud/hud_cpufreq.c
@@ -62,7 +62,7 @@ struct cpufreq_info
 
 static int gcpufreq_count = 0;
 static struct list_head gcpufreq_list;
-pipe_static_mutex(gcpufreq_mutex);
+static mtx_t gcpufreq_mutex = _MTX_INITIALIZER_NP;
 
 static struct cpufreq_info *
 find_cfi_by_index(int cpu_index, int mode)
diff --git a/src/gallium/auxiliary/hud/hud_diskstat.c 
b/src/gallium/auxiliary/hud/hud_diskstat.c
index af6e62d..fb64e3d 100644
--- a/src/gallium/auxiliary/hud/hud_diskstat.c
+++ b/src/gallium/auxiliary/hud/hud_diskstat.c
@@ -82,7 +82,7 @@ struct diskstat_info
  */
 static int gdiskstat_count = 0;
 static struct list_head gdiskstat_list;
-pipe_static_mutex(gdiskstat_mutex);
+static mtx_t gdiskstat_mutex = _MTX_INITIALIZER_NP;
 
 static struct diskstat_info *
 find_dsi_by_name(const char *n, int mode)
diff --git a/src/gallium/auxiliary/hud/hud_nic.c 
b/src/gallium/auxiliary/hud/hud_nic.c
index 634add1..2fbeaa5 100644
--- a/src/gallium/auxiliary/hud/hud_nic.c
+++ b/src/gallium/auxiliary/hud/hud_nic.c
@@ -67,7 +67,7 @@ struct nic_info
  */
 static int gnic_count = 0;
 static struct list_head gnic_list;
-pipe_static_mutex(gnic_mutex);
+static mtx_t gnic_mutex = _MTX_INITIALIZER_NP;
 
 static struct nic_info *
 find_nic_by_name(const char *n, int mode)
diff --git a/src/gallium/auxiliary/hud/hud_sensors_temp.c 
b/src/gallium/auxiliary/hud/hud_sensors_temp.c
index 11b8a4c..4d723cc 100644
--- a/src/gallium/auxiliary/hud/hud_sensors_temp.c
+++ b/src/gallium/auxiliary/hud/hud_sensors_temp.c
@@ -50,7 +50,7 @@
  */
 static int gsensors_temp_count = 0;
 static struct list_head gsensors_temp_list;
-pipe_static_mutex(gsensor_temp_mutex);
+static mtx_t gsensor_temp_mutex = _MTX_INITIALIZER_NP;
 
 struct sensors_temp_info
 {
diff --git a/src/gallium/auxiliary/os/os_thread.h 
b/src/gallium/auxiliary/os/os_thread.h
index af350b8..a6a9fea 100644
--- a/src/gallium/auxiliary/os/os_thread.h
+++ b/src/gallium/auxiliary/os/os_thread.h
@@ -108,9 +108,6 @@ static inline int pipe_thread_is_self( pipe_thread thread )
return 0;
 }
 
-#define pipe_static_mutex(mutex) \
-   static mtx_t mutex = _MTX_INITIALIZER_NP
-
 #define pipe_mutex_init(mutex) \
(void) mtx_init(&(mutex), mtx_plain)
 
diff --git a/src/gallium/auxiliary/rtasm/rtasm_execmem.c 
b/src/gallium/auxiliary/rtasm/rtasm_execmem.c
index f7e605e..a60d521 100644
--- a/src/gallium/auxiliary/rtasm/rtasm_execmem.c
+++ b/src/gallium/auxiliary/rtasm/rtasm_execmem.c
@@ -63,7 +63,7 @@
 
 #define EXEC_HEAP_SIZE (10*1024*1024)
 
-pipe_static_mutex(exec_mutex);
+static mtx_t exec_mutex = _MTX_INITIALIZER_NP;
 
 static struct mem_block *exec_heap = NULL;
 static unsigned char *exec_mem = NULL;
diff --git a/src/gallium/auxiliary/util/u_debug_flush.c 
b/src/gallium/auxiliary/util/u_debug_flush.c
index 6a8a91d..d125205 100644
--- a/src/gallium/auxiliary/util/u_debug_flush.c
+++ b/src/gallium/auxiliary/util/u_debug_flush.c
@@ -77,7 +77,7 @@ struct debug_flush_ctx {
struct list_head head;
 };
 
-pipe_static_mut

Mesa (master): gallium/util: replace pipe_thread with thrd_t

2017-03-06 Thread Timothy Arceri
Module: Mesa
Branch: master
Commit: e5375ba028c8ca48b11b86068efb65c4e03153eb
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=e5375ba028c8ca48b11b86068efb65c4e03153eb

Author: Timothy Arceri 
Date:   Sun Mar  5 12:39:49 2017 +1100

gallium/util: replace pipe_thread with thrd_t

pipe_thread was made unnecessary with fd33a6bcd7f12.

V2: fix compile error in u_queue.c

Reviewed-by: Marek Olšák 

---

 src/gallium/auxiliary/os/os_thread.h  | 16 ++--
 src/gallium/auxiliary/util/u_queue.c  |  2 +-
 src/gallium/auxiliary/util/u_queue.h  |  2 +-
 src/gallium/drivers/ddebug/dd_pipe.h  |  2 +-
 src/gallium/drivers/llvmpipe/lp_rast_priv.h   |  2 +-
 src/gallium/drivers/radeon/r600_pipe_common.h |  2 +-
 src/gallium/drivers/rbug/rbug_core.c  |  2 +-
 src/gallium/state_trackers/nine/nine_state.c  |  4 ++--
 src/gallium/tests/unit/pipe_barrier_test.c|  2 +-
 9 files changed, 15 insertions(+), 19 deletions(-)

diff --git a/src/gallium/auxiliary/os/os_thread.h 
b/src/gallium/auxiliary/os/os_thread.h
index a429f4e..ad2cda4 100644
--- a/src/gallium/auxiliary/os/os_thread.h
+++ b/src/gallium/auxiliary/os/os_thread.h
@@ -47,16 +47,12 @@
 #endif
 
 
-/* pipe_thread
- */
-typedef thrd_t pipe_thread;
-
 #define PIPE_THREAD_ROUTINE( name, param ) \
int name( void *param )
 
-static inline pipe_thread pipe_thread_create( PIPE_THREAD_ROUTINE((*routine), 
), void *param )
+static inline thrd_t pipe_thread_create( PIPE_THREAD_ROUTINE((*routine), ), 
void *param )
 {
-   pipe_thread thread;
+   thrd_t thread;
 #ifdef HAVE_PTHREAD
sigset_t saved_set, new_set;
int ret;
@@ -75,12 +71,12 @@ static inline pipe_thread pipe_thread_create( 
PIPE_THREAD_ROUTINE((*routine), ),
return thread;
 }
 
-static inline int pipe_thread_wait( pipe_thread thread )
+static inline int pipe_thread_wait( thrd_t thread )
 {
return thrd_join( thread, NULL );
 }
 
-static inline int pipe_thread_destroy( pipe_thread thread )
+static inline int pipe_thread_destroy( thrd_t thread )
 {
return thrd_detach( thread );
 }
@@ -97,7 +93,7 @@ static inline void pipe_thread_setname( const char *name )
 }
 
 
-static inline int pipe_thread_is_self( pipe_thread thread )
+static inline int pipe_thread_is_self( thrd_t thread )
 {
 #if defined(HAVE_PTHREAD)
 #  if defined(__GNU_LIBRARY__) && defined(__GLIBC__) && 
defined(__GLIBC_MINOR__) && \
@@ -307,7 +303,7 @@ pipe_tsd_set(pipe_tsd *tsd, void *value)
 
 /* Return the time of a thread's CPU time clock. */
 static inline int64_t
-pipe_thread_get_time_nano(pipe_thread thread)
+pipe_thread_get_time_nano(thrd_t thread)
 {
 #if defined(PIPE_OS_LINUX) && defined(HAVE_PTHREAD)
struct timespec ts;
diff --git a/src/gallium/auxiliary/util/u_queue.c 
b/src/gallium/auxiliary/util/u_queue.c
index 2525230..b20abc8f 100644
--- a/src/gallium/auxiliary/util/u_queue.c
+++ b/src/gallium/auxiliary/util/u_queue.c
@@ -216,7 +216,7 @@ util_queue_init(struct util_queue *queue,
cnd_init(&queue->has_queued_cond);
cnd_init(&queue->has_space_cond);
 
-   queue->threads = (pipe_thread*)CALLOC(num_threads, sizeof(pipe_thread));
+   queue->threads = (thrd_t*)CALLOC(num_threads, sizeof(thrd_t));
if (!queue->threads)
   goto fail;
 
diff --git a/src/gallium/auxiliary/util/u_queue.h 
b/src/gallium/auxiliary/util/u_queue.h
index 8d4804f..635545f 100644
--- a/src/gallium/auxiliary/util/u_queue.h
+++ b/src/gallium/auxiliary/util/u_queue.h
@@ -60,7 +60,7 @@ struct util_queue {
mtx_t lock;
pipe_condvar has_queued_cond;
pipe_condvar has_space_cond;
-   pipe_thread *threads;
+   thrd_t *threads;
int num_queued;
unsigned num_threads;
int kill_threads;
diff --git a/src/gallium/drivers/ddebug/dd_pipe.h 
b/src/gallium/drivers/ddebug/dd_pipe.h
index dc7c325..64d5510 100644
--- a/src/gallium/drivers/ddebug/dd_pipe.h
+++ b/src/gallium/drivers/ddebug/dd_pipe.h
@@ -234,7 +234,7 @@ struct dd_context
 * their fences. Records with signalled fences are freed. On fence timeout,
 * the thread dumps the record of the oldest unsignalled fence.
 */
-   pipe_thread thread;
+   thrd_t thread;
mtx_t mutex;
int kill_thread;
struct pipe_resource *fence;
diff --git a/src/gallium/drivers/llvmpipe/lp_rast_priv.h 
b/src/gallium/drivers/llvmpipe/lp_rast_priv.h
index 9aa7e87..3cc52b8 100644
--- a/src/gallium/drivers/llvmpipe/lp_rast_priv.h
+++ b/src/gallium/drivers/llvmpipe/lp_rast_priv.h
@@ -127,7 +127,7 @@ struct lp_rasterizer
struct lp_rasterizer_task tasks[LP_MAX_THREADS];
 
unsigned num_threads;
-   pipe_thread threads[LP_MAX_THREADS];
+   thrd_t threads[LP_MAX_THREADS];
 
/** For synchronizing the rasterization threads */
pipe_barrier barrier;
diff --git a/src/gallium/drivers/radeon/r600_pipe_common.h 
b/src/gallium/drivers/radeon/r600_pipe_common.h
index 726dbb3..3516884 100644
--- a/src/gallium/drivers/radeon/r600_pipe_common.h
+++ b/src/gallium/drivers/radeon/r600_pipe_common.h
@@ -395,7 +395,7 @@ struct r600_common_

Mesa (master): gallium/util: replace pipe_mutex_init() with mtx_init()

2017-03-06 Thread Timothy Arceri
Module: Mesa
Branch: master
Commit: 75b47dda0c8895afe77858cbb67efa38e17e1838
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=75b47dda0c8895afe77858cbb67efa38e17e1838

Author: Timothy Arceri 
Date:   Sun Mar  5 12:00:15 2017 +1100

gallium/util: replace pipe_mutex_init() with mtx_init()

pipe_mutex_init() was made unnecessary with fd33a6bcd7f12.

Replace was done using:
find ./src -type f -exec sed -i -- \
's:pipe_mutex_init(\([^)]*\)):(void) mtx_init(\&\1, mtx_plain):g' {} \;

Reviewed-by: Marek Olšák 

---

 src/gallium/auxiliary/os/os_thread.h  |  7 ++-
 src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c   |  2 +-
 src/gallium/auxiliary/pipebuffer/pb_bufmgr_debug.c|  4 ++--
 src/gallium/auxiliary/pipebuffer/pb_bufmgr_mm.c   |  2 +-
 src/gallium/auxiliary/pipebuffer/pb_bufmgr_pool.c |  2 +-
 src/gallium/auxiliary/pipebuffer/pb_bufmgr_slab.c |  2 +-
 src/gallium/auxiliary/pipebuffer/pb_cache.c   |  2 +-
 src/gallium/auxiliary/pipebuffer/pb_slab.c|  2 +-
 src/gallium/auxiliary/util/u_debug_flush.c|  2 +-
 src/gallium/auxiliary/util/u_debug_refcnt.c   |  2 +-
 src/gallium/auxiliary/util/u_debug_symbol.c   |  2 +-
 src/gallium/auxiliary/util/u_queue.c  |  4 ++--
 src/gallium/auxiliary/util/u_range.h  |  2 +-
 src/gallium/auxiliary/util/u_ringbuffer.c |  2 +-
 src/gallium/drivers/ddebug/dd_context.c   |  2 +-
 src/gallium/drivers/freedreno/freedreno_screen.c  |  2 +-
 src/gallium/drivers/llvmpipe/lp_fence.c   |  2 +-
 src/gallium/drivers/llvmpipe/lp_scene.c   |  2 +-
 src/gallium/drivers/llvmpipe/lp_screen.c  |  2 +-
 src/gallium/drivers/nouveau/nv50/nv50_surface.c   |  2 +-
 src/gallium/drivers/nouveau/nvc0/nvc0_surface.c   |  2 +-
 src/gallium/drivers/r300/r300_screen.c|  2 +-
 src/gallium/drivers/radeon/r600_pipe_common.c |  4 ++--
 src/gallium/drivers/radeonsi/si_pipe.c|  2 +-
 src/gallium/drivers/radeonsi/si_state_shaders.c   |  4 ++--
 src/gallium/drivers/rbug/rbug_context.c   |  6 +++---
 src/gallium/drivers/rbug/rbug_screen.c|  2 +-
 src/gallium/drivers/svga/svga_screen.c|  4 ++--
 src/gallium/drivers/svga/svga_screen_cache.c  |  2 +-
 src/gallium/drivers/vc4/vc4_screen.c  |  2 +-
 src/gallium/state_trackers/dri/dri2.c |  2 +-
 src/gallium/state_trackers/glx/xlib/xm_api.c  |  2 +-
 src/gallium/state_trackers/nine/nine_queue.c  |  4 ++--
 src/gallium/state_trackers/nine/nine_state.c  |  6 +++---
 src/gallium/state_trackers/va/context.c   |  2 +-
 src/gallium/state_trackers/vdpau/decode.c |  2 +-
 src/gallium/state_trackers/vdpau/device.c |  2 +-
 src/gallium/targets/haiku-softpipe/GalliumContext.cpp |  2 +-
 src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c |  4 ++--
 src/gallium/winsys/radeon/drm/radeon_drm_bo.c |  6 +++---
 src/gallium/winsys/radeon/drm/radeon_drm_winsys.c | 10 +-
 src/gallium/winsys/svga/drm/pb_buffer_simple_fenced.c |  2 +-
 src/gallium/winsys/svga/drm/vmw_fence.c   |  2 +-
 src/gallium/winsys/svga/drm/vmw_screen_svga.c |  2 +-
 src/gallium/winsys/virgl/drm/virgl_drm_winsys.c   |  4 ++--
 src/gallium/winsys/virgl/vtest/virgl_vtest_winsys.c   |  2 +-
 46 files changed, 65 insertions(+), 68 deletions(-)

diff --git a/src/gallium/auxiliary/os/os_thread.h 
b/src/gallium/auxiliary/os/os_thread.h
index a6a9fea..cccb531 100644
--- a/src/gallium/auxiliary/os/os_thread.h
+++ b/src/gallium/auxiliary/os/os_thread.h
@@ -108,9 +108,6 @@ static inline int pipe_thread_is_self( pipe_thread thread )
return 0;
 }
 
-#define pipe_mutex_init(mutex) \
-   (void) mtx_init(&(mutex), mtx_plain)
-
 #define pipe_mutex_destroy(mutex) \
mtx_destroy(&(mutex))
 
@@ -181,7 +178,7 @@ static inline void pipe_barrier_init(pipe_barrier *barrier, 
unsigned count)
barrier->count = count;
barrier->waiters = 0;
barrier->sequence = 0;
-   pipe_mutex_init(barrier->mutex);
+   (void) mtx_init(&barrier->mutex, mtx_plain);
cnd_init(&barrier->condvar);
 }
 
@@ -233,7 +230,7 @@ typedef struct
 static inline void
 pipe_semaphore_init(pipe_semaphore *sema, int init_val)
 {
-   pipe_mutex_init(sema->mutex);
+   (void) mtx_init(&sema->mutex, mtx_plain);
cnd_init(&sema->cond);
sema->counter = init_val;
 }
diff --git a/src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c 
b/src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c
index f5e761b..fefdcef 100644
--- a/src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c
+++ b/src/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c
@@ -1033,7 +1033,7 @@ fenced_bufmgr_create(struct pb_manager *provider,
LIST_INITHEAD(&fenced_mgr->unfenced);
fenced_mgr->num_unfenced = 0;
 
-   pipe_mutex_init(fenced_mgr->mutex);
+   (void) mtx_init(&f

Mesa (master): gallium/util: replace pipe_condvar_init() with cnd_init()

2017-03-06 Thread Timothy Arceri
Module: Mesa
Branch: master
Commit: 3f58242863e03c47e3b37a63c84a965d12047612
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=3f58242863e03c47e3b37a63c84a965d12047612

Author: Timothy Arceri 
Date:   Sun Mar  5 10:41:29 2017 +1100

gallium/util: replace pipe_condvar_init() with cnd_init()

pipe_condvar_init() was made unnecessary with fd33a6bcd7f12.

Reviewed-by: Emil Velikov 
Reviewed-by: Marek Olšák 

---

 src/gallium/auxiliary/os/os_thread.h  | 7 ++-
 src/gallium/auxiliary/pipebuffer/pb_bufmgr_slab.c | 2 +-
 src/gallium/auxiliary/util/u_queue.c  | 6 +++---
 src/gallium/auxiliary/util/u_ringbuffer.c | 2 +-
 src/gallium/drivers/llvmpipe/lp_fence.c   | 2 +-
 src/gallium/drivers/rbug/rbug_context.c   | 2 +-
 src/gallium/state_trackers/nine/nine_queue.c  | 4 ++--
 src/gallium/state_trackers/nine/nine_state.c  | 2 +-
 8 files changed, 12 insertions(+), 15 deletions(-)

diff --git a/src/gallium/auxiliary/os/os_thread.h 
b/src/gallium/auxiliary/os/os_thread.h
index 0caf955..e1dc210 100644
--- a/src/gallium/auxiliary/os/os_thread.h
+++ b/src/gallium/auxiliary/os/os_thread.h
@@ -148,9 +148,6 @@ __pipe_mutex_assert_locked(pipe_mutex *mutex)
  */
 typedef cnd_t pipe_condvar;
 
-#define pipe_condvar_init(cond)\
-   cnd_init(&(cond))
-
 #define pipe_condvar_destroy(cond) \
cnd_destroy(&(cond))
 
@@ -204,7 +201,7 @@ static inline void pipe_barrier_init(pipe_barrier *barrier, 
unsigned count)
barrier->waiters = 0;
barrier->sequence = 0;
pipe_mutex_init(barrier->mutex);
-   pipe_condvar_init(barrier->condvar);
+   cnd_init(&barrier->condvar);
 }
 
 static inline void pipe_barrier_destroy(pipe_barrier *barrier)
@@ -256,7 +253,7 @@ static inline void
 pipe_semaphore_init(pipe_semaphore *sema, int init_val)
 {
pipe_mutex_init(sema->mutex);
-   pipe_condvar_init(sema->cond);
+   cnd_init(&sema->cond);
sema->counter = init_val;
 }
 
diff --git a/src/gallium/auxiliary/pipebuffer/pb_bufmgr_slab.c 
b/src/gallium/auxiliary/pipebuffer/pb_bufmgr_slab.c
index fdbcf9e..541a6d9 100644
--- a/src/gallium/auxiliary/pipebuffer/pb_bufmgr_slab.c
+++ b/src/gallium/auxiliary/pipebuffer/pb_bufmgr_slab.c
@@ -350,7 +350,7 @@ pb_slab_create(struct pb_slab_manager *mgr)
   buf->slab = slab;
   buf->start = i* mgr->bufSize;
   buf->mapCount = 0;
-  pipe_condvar_init(buf->event);
+  cnd_init(&buf->event);
   LIST_ADDTAIL(&buf->head, &slab->freeBuffers);
   slab->numFree++;
   buf++;
diff --git a/src/gallium/auxiliary/util/u_queue.c 
b/src/gallium/auxiliary/util/u_queue.c
index 8dd4cb3..dff5b15 100644
--- a/src/gallium/auxiliary/util/u_queue.c
+++ b/src/gallium/auxiliary/util/u_queue.c
@@ -114,7 +114,7 @@ util_queue_fence_init(struct util_queue_fence *fence)
 {
memset(fence, 0, sizeof(*fence));
pipe_mutex_init(fence->mutex);
-   pipe_condvar_init(fence->cond);
+   cnd_init(&fence->cond);
fence->signalled = true;
 }
 
@@ -213,8 +213,8 @@ util_queue_init(struct util_queue *queue,
pipe_mutex_init(queue->lock);
 
queue->num_queued = 0;
-   pipe_condvar_init(queue->has_queued_cond);
-   pipe_condvar_init(queue->has_space_cond);
+   cnd_init(&queue->has_queued_cond);
+   cnd_init(&queue->has_space_cond);
 
queue->threads = (pipe_thread*)CALLOC(num_threads, sizeof(pipe_thread));
if (!queue->threads)
diff --git a/src/gallium/auxiliary/util/u_ringbuffer.c 
b/src/gallium/auxiliary/util/u_ringbuffer.c
index 19830a9..e3be3ef 100644
--- a/src/gallium/auxiliary/util/u_ringbuffer.c
+++ b/src/gallium/auxiliary/util/u_ringbuffer.c
@@ -35,7 +35,7 @@ struct util_ringbuffer *util_ringbuffer_create( unsigned 
dwords )
 
ring->mask = dwords - 1;
 
-   pipe_condvar_init(ring->change);
+   cnd_init(&ring->change);
pipe_mutex_init(ring->mutex);
return ring;
 
diff --git a/src/gallium/drivers/llvmpipe/lp_fence.c 
b/src/gallium/drivers/llvmpipe/lp_fence.c
index a21a3c7..1529981 100644
--- a/src/gallium/drivers/llvmpipe/lp_fence.c
+++ b/src/gallium/drivers/llvmpipe/lp_fence.c
@@ -53,7 +53,7 @@ lp_fence_create(unsigned rank)
pipe_reference_init(&fence->reference, 1);
 
pipe_mutex_init(fence->mutex);
-   pipe_condvar_init(fence->signalled);
+   cnd_init(&fence->signalled);
 
fence->id = fence_id++;
fence->rank = rank;
diff --git a/src/gallium/drivers/rbug/rbug_context.c 
b/src/gallium/drivers/rbug/rbug_context.c
index 1dd0f6d..9634f88 100644
--- a/src/gallium/drivers/rbug/rbug_context.c
+++ b/src/gallium/drivers/rbug/rbug_context.c
@@ -1204,7 +1204,7 @@ rbug_context_create(struct pipe_screen *_screen, struct 
pipe_context *pipe)
   return NULL;
 
pipe_mutex_init(rb_pipe->draw_mutex);
-   pipe_condvar_init(rb_pipe->draw_cond);
+   cnd_init(&rb_pipe->draw_cond);
pipe_mutex_init(rb_pipe->call_mutex);
pipe_mutex_init(rb_pipe->list_mutex);
make_empty_list(&rb_pipe->shaders);
diff --git a/src/gallium/state_trackers/nine/nine_queue.c 
b/src/gallium/state_trackers/nine/nine_queue.

Mesa (master): gallium/util: replace pipe_condvar_wait() with cnd_wait()

2017-03-06 Thread Timothy Arceri
Module: Mesa
Branch: master
Commit: 74c879ac75d5e9262b668c8c6fdaa5d36e3c3bf3
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=74c879ac75d5e9262b668c8c6fdaa5d36e3c3bf3

Author: Timothy Arceri 
Date:   Sun Mar  5 10:41:31 2017 +1100

gallium/util: replace pipe_condvar_wait() with cnd_wait()

pipe_condvar_wait() was made unnecessary with fd33a6bcd7f12.

Reviewed-by: Emil Velikov 
Reviewed-by: Marek Olšák 

---

 src/gallium/auxiliary/os/os_thread.h | 7 ++-
 src/gallium/auxiliary/util/u_queue.c | 6 +++---
 src/gallium/auxiliary/util/u_ringbuffer.c| 4 ++--
 src/gallium/drivers/llvmpipe/lp_fence.c  | 2 +-
 src/gallium/drivers/rbug/rbug_context.c  | 2 +-
 src/gallium/state_trackers/nine/nine_queue.c | 4 ++--
 src/gallium/state_trackers/nine/nine_state.c | 2 +-
 7 files changed, 12 insertions(+), 15 deletions(-)

diff --git a/src/gallium/auxiliary/os/os_thread.h 
b/src/gallium/auxiliary/os/os_thread.h
index e230d06..6895f4e 100644
--- a/src/gallium/auxiliary/os/os_thread.h
+++ b/src/gallium/auxiliary/os/os_thread.h
@@ -148,9 +148,6 @@ __pipe_mutex_assert_locked(pipe_mutex *mutex)
  */
 typedef cnd_t pipe_condvar;
 
-#define pipe_condvar_wait(cond, mutex) \
-   cnd_wait(&(cond), &(mutex))
-
 #define pipe_condvar_signal(cond) \
cnd_signal(&(cond))
 
@@ -219,7 +216,7 @@ static inline void pipe_barrier_wait(pipe_barrier *barrier)
   uint64_t sequence = barrier->sequence;
 
   do {
- pipe_condvar_wait(barrier->condvar, barrier->mutex);
+ cnd_wait(&barrier->condvar, &barrier->mutex);
   } while (sequence == barrier->sequence);
} else {
   barrier->waiters = 0;
@@ -277,7 +274,7 @@ pipe_semaphore_wait(pipe_semaphore *sema)
 {
pipe_mutex_lock(sema->mutex);
while (sema->counter <= 0) {
-  pipe_condvar_wait(sema->cond, sema->mutex);
+  cnd_wait(&sema->cond, &sema->mutex);
}
sema->counter--;
pipe_mutex_unlock(sema->mutex);
diff --git a/src/gallium/auxiliary/util/u_queue.c 
b/src/gallium/auxiliary/util/u_queue.c
index 87f0120..8fc2f3b 100644
--- a/src/gallium/auxiliary/util/u_queue.c
+++ b/src/gallium/auxiliary/util/u_queue.c
@@ -105,7 +105,7 @@ util_queue_fence_wait(struct util_queue_fence *fence)
 {
pipe_mutex_lock(fence->mutex);
while (!fence->signalled)
-  pipe_condvar_wait(fence->cond, fence->mutex);
+  cnd_wait(&fence->cond, &fence->mutex);
pipe_mutex_unlock(fence->mutex);
 }
 
@@ -156,7 +156,7 @@ static PIPE_THREAD_ROUTINE(util_queue_thread_func, input)
 
   /* wait if the queue is empty */
   while (!queue->kill_threads && queue->num_queued == 0)
- pipe_condvar_wait(queue->has_queued_cond, queue->lock);
+ cnd_wait(&queue->has_queued_cond, &queue->lock);
 
   if (queue->kill_threads) {
  pipe_mutex_unlock(queue->lock);
@@ -305,7 +305,7 @@ util_queue_add_job(struct util_queue *queue,
 
/* if the queue is full, wait until there is space */
while (queue->num_queued == queue->max_jobs)
-  pipe_condvar_wait(queue->has_space_cond, queue->lock);
+  cnd_wait(&queue->has_space_cond, &queue->lock);
 
ptr = &queue->jobs[queue->write_idx];
assert(ptr->job == NULL);
diff --git a/src/gallium/auxiliary/util/u_ringbuffer.c 
b/src/gallium/auxiliary/util/u_ringbuffer.c
index 334be6a..adba9ea 100644
--- a/src/gallium/auxiliary/util/u_ringbuffer.c
+++ b/src/gallium/auxiliary/util/u_ringbuffer.c
@@ -85,7 +85,7 @@ void util_ringbuffer_enqueue( struct util_ringbuffer *ring,
/* Wait for free space:
 */
while (util_ringbuffer_space(ring) < packet->dwords)
-  pipe_condvar_wait(ring->change, ring->mutex);
+  cnd_wait(&ring->change, &ring->mutex);
 
/* Copy data to ring:
 */
@@ -123,7 +123,7 @@ enum pipe_error util_ringbuffer_dequeue( struct 
util_ringbuffer *ring,
 */
if (wait) {
   while (util_ringbuffer_empty(ring))
- pipe_condvar_wait(ring->change, ring->mutex);
+ cnd_wait(&ring->change, &ring->mutex);
}
else {
   if (util_ringbuffer_empty(ring)) {
diff --git a/src/gallium/drivers/llvmpipe/lp_fence.c 
b/src/gallium/drivers/llvmpipe/lp_fence.c
index 3b35eb2..1a8e365 100644
--- a/src/gallium/drivers/llvmpipe/lp_fence.c
+++ b/src/gallium/drivers/llvmpipe/lp_fence.c
@@ -119,7 +119,7 @@ lp_fence_wait(struct lp_fence *f)
pipe_mutex_lock(f->mutex);
assert(f->issued);
while (f->count < f->rank) {
-  pipe_condvar_wait(f->signalled, f->mutex);
+  cnd_wait(&f->signalled, &f->mutex);
}
pipe_mutex_unlock(f->mutex);
 }
diff --git a/src/gallium/drivers/rbug/rbug_context.c 
b/src/gallium/drivers/rbug/rbug_context.c
index 9634f88..e34278e 100644
--- a/src/gallium/drivers/rbug/rbug_context.c
+++ b/src/gallium/drivers/rbug/rbug_context.c
@@ -108,7 +108,7 @@ rbug_draw_block_locked(struct rbug_context *rb_pipe, int 
flag)
/* wait for rbug to clear the blocked flag */
while (rb_pipe->draw_blocked & flag) {
   rb_pipe->draw_blocked |= flag;
-  pipe_condvar_wait(rb_pipe->

Mesa (master): gallium/util: replace pipe_condvar_destroy() with cnd_destroy()

2017-03-06 Thread Timothy Arceri
Module: Mesa
Branch: master
Commit: 1e0314281a7d2e57b0e0ad2296445dffdb26dbd2
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=1e0314281a7d2e57b0e0ad2296445dffdb26dbd2

Author: Timothy Arceri 
Date:   Sun Mar  5 10:41:30 2017 +1100

gallium/util: replace pipe_condvar_destroy() with cnd_destroy()

pipe_condvar_destroy() was made unnecessary with fd33a6bcd7f12.

Reviewed-by: Emil Velikov 
Reviewed-by: Marek Olšák 

---

 src/gallium/auxiliary/os/os_thread.h  |  7 ++-
 src/gallium/auxiliary/util/u_queue.c  | 10 +-
 src/gallium/auxiliary/util/u_ringbuffer.c |  2 +-
 src/gallium/drivers/llvmpipe/lp_fence.c   |  2 +-
 4 files changed, 9 insertions(+), 12 deletions(-)

diff --git a/src/gallium/auxiliary/os/os_thread.h 
b/src/gallium/auxiliary/os/os_thread.h
index e1dc210..e230d06 100644
--- a/src/gallium/auxiliary/os/os_thread.h
+++ b/src/gallium/auxiliary/os/os_thread.h
@@ -148,9 +148,6 @@ __pipe_mutex_assert_locked(pipe_mutex *mutex)
  */
 typedef cnd_t pipe_condvar;
 
-#define pipe_condvar_destroy(cond) \
-   cnd_destroy(&(cond))
-
 #define pipe_condvar_wait(cond, mutex) \
cnd_wait(&(cond), &(mutex))
 
@@ -208,7 +205,7 @@ static inline void pipe_barrier_destroy(pipe_barrier 
*barrier)
 {
assert(barrier->waiters == 0);
pipe_mutex_destroy(barrier->mutex);
-   pipe_condvar_destroy(barrier->condvar);
+   cnd_destroy(&barrier->condvar);
 }
 
 static inline void pipe_barrier_wait(pipe_barrier *barrier)
@@ -261,7 +258,7 @@ static inline void
 pipe_semaphore_destroy(pipe_semaphore *sema)
 {
pipe_mutex_destroy(sema->mutex);
-   pipe_condvar_destroy(sema->cond);
+   cnd_destroy(&sema->cond);
 }
 
 /** Signal/increment semaphore counter */
diff --git a/src/gallium/auxiliary/util/u_queue.c 
b/src/gallium/auxiliary/util/u_queue.c
index dff5b15..87f0120 100644
--- a/src/gallium/auxiliary/util/u_queue.c
+++ b/src/gallium/auxiliary/util/u_queue.c
@@ -122,7 +122,7 @@ void
 util_queue_fence_destroy(struct util_queue_fence *fence)
 {
assert(fence->signalled);
-   pipe_condvar_destroy(fence->cond);
+   cnd_destroy(&fence->cond);
pipe_mutex_destroy(fence->mutex);
 }
 
@@ -249,8 +249,8 @@ fail:
FREE(queue->threads);
 
if (queue->jobs) {
-  pipe_condvar_destroy(queue->has_space_cond);
-  pipe_condvar_destroy(queue->has_queued_cond);
+  cnd_destroy(&queue->has_space_cond);
+  cnd_destroy(&queue->has_queued_cond);
   pipe_mutex_destroy(queue->lock);
   FREE(queue->jobs);
}
@@ -281,8 +281,8 @@ util_queue_destroy(struct util_queue *queue)
util_queue_killall_and_wait(queue);
remove_from_atexit_list(queue);
 
-   pipe_condvar_destroy(queue->has_space_cond);
-   pipe_condvar_destroy(queue->has_queued_cond);
+   cnd_destroy(&queue->has_space_cond);
+   cnd_destroy(&queue->has_queued_cond);
pipe_mutex_destroy(queue->lock);
FREE(queue->jobs);
FREE(queue->threads);
diff --git a/src/gallium/auxiliary/util/u_ringbuffer.c 
b/src/gallium/auxiliary/util/u_ringbuffer.c
index e3be3ef..334be6a 100644
--- a/src/gallium/auxiliary/util/u_ringbuffer.c
+++ b/src/gallium/auxiliary/util/u_ringbuffer.c
@@ -47,7 +47,7 @@ fail:
 
 void util_ringbuffer_destroy( struct util_ringbuffer *ring )
 {
-   pipe_condvar_destroy(ring->change);
+   cnd_destroy(&ring->change);
pipe_mutex_destroy(ring->mutex);
FREE(ring->buf);
FREE(ring);
diff --git a/src/gallium/drivers/llvmpipe/lp_fence.c 
b/src/gallium/drivers/llvmpipe/lp_fence.c
index 1529981..3b35eb2 100644
--- a/src/gallium/drivers/llvmpipe/lp_fence.c
+++ b/src/gallium/drivers/llvmpipe/lp_fence.c
@@ -73,7 +73,7 @@ lp_fence_destroy(struct lp_fence *fence)
   debug_printf("%s %d\n", __FUNCTION__, fence->id);
 
pipe_mutex_destroy(fence->mutex);
-   pipe_condvar_destroy(fence->signalled);
+   cnd_destroy(&fence->signalled);
FREE(fence);
 }
 

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): gallium/util: replace pipe_condvar_broadcast() with cnd_broadcast()

2017-03-06 Thread Timothy Arceri
Module: Mesa
Branch: master
Commit: 464d4806c112c6d224a55b328cde327a025acd91
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=464d4806c112c6d224a55b328cde327a025acd91

Author: Timothy Arceri 
Date:   Sun Mar  5 10:41:33 2017 +1100

gallium/util: replace pipe_condvar_broadcast() with cnd_broadcast()

pipe_condvar_broadcast() was made unnecessary with fd33a6bcd7f12.

Reviewed-by: Emil Velikov 
Reviewed-by: Marek Olšák 

---

 src/gallium/auxiliary/os/os_thread.h  | 5 +
 src/gallium/auxiliary/pipebuffer/pb_bufmgr_slab.c | 2 +-
 src/gallium/auxiliary/util/u_queue.c  | 4 ++--
 src/gallium/drivers/llvmpipe/lp_fence.c   | 2 +-
 src/gallium/drivers/rbug/rbug_core.c  | 6 +++---
 5 files changed, 8 insertions(+), 11 deletions(-)

diff --git a/src/gallium/auxiliary/os/os_thread.h 
b/src/gallium/auxiliary/os/os_thread.h
index a8b5d92..6eca2ca 100644
--- a/src/gallium/auxiliary/os/os_thread.h
+++ b/src/gallium/auxiliary/os/os_thread.h
@@ -148,9 +148,6 @@ __pipe_mutex_assert_locked(pipe_mutex *mutex)
  */
 typedef cnd_t pipe_condvar;
 
-#define pipe_condvar_broadcast(cond) \
-   cnd_broadcast(&(cond))
-
 
 /*
  * pipe_barrier
@@ -218,7 +215,7 @@ static inline void pipe_barrier_wait(pipe_barrier *barrier)
} else {
   barrier->waiters = 0;
   barrier->sequence++;
-  pipe_condvar_broadcast(barrier->condvar);
+  cnd_broadcast(&barrier->condvar);
}
 
pipe_mutex_unlock(barrier->mutex);
diff --git a/src/gallium/auxiliary/pipebuffer/pb_bufmgr_slab.c 
b/src/gallium/auxiliary/pipebuffer/pb_bufmgr_slab.c
index 541a6d9..cc42eea 100644
--- a/src/gallium/auxiliary/pipebuffer/pb_bufmgr_slab.c
+++ b/src/gallium/auxiliary/pipebuffer/pb_bufmgr_slab.c
@@ -246,7 +246,7 @@ pb_slab_buffer_unmap(struct pb_buffer *_buf)
 
--buf->mapCount;
if (buf->mapCount == 0) 
-   pipe_condvar_broadcast(buf->event);
+   cnd_broadcast(&buf->event);
 }
 
 
diff --git a/src/gallium/auxiliary/util/u_queue.c 
b/src/gallium/auxiliary/util/u_queue.c
index 3cef7d2..c84e0ad 100644
--- a/src/gallium/auxiliary/util/u_queue.c
+++ b/src/gallium/auxiliary/util/u_queue.c
@@ -96,7 +96,7 @@ util_queue_fence_signal(struct util_queue_fence *fence)
 {
pipe_mutex_lock(fence->mutex);
fence->signalled = true;
-   pipe_condvar_broadcast(fence->cond);
+   cnd_broadcast(&fence->cond);
pipe_mutex_unlock(fence->mutex);
 }
 
@@ -267,7 +267,7 @@ util_queue_killall_and_wait(struct util_queue *queue)
/* Signal all threads to terminate. */
pipe_mutex_lock(queue->lock);
queue->kill_threads = 1;
-   pipe_condvar_broadcast(queue->has_queued_cond);
+   cnd_broadcast(&queue->has_queued_cond);
pipe_mutex_unlock(queue->lock);
 
for (i = 0; i < queue->num_threads; i++)
diff --git a/src/gallium/drivers/llvmpipe/lp_fence.c 
b/src/gallium/drivers/llvmpipe/lp_fence.c
index 1a8e365..115589f 100644
--- a/src/gallium/drivers/llvmpipe/lp_fence.c
+++ b/src/gallium/drivers/llvmpipe/lp_fence.c
@@ -99,7 +99,7 @@ lp_fence_signal(struct lp_fence *fence)
 
/* Wakeup all threads waiting on the mutex:
 */
-   pipe_condvar_broadcast(fence->signalled);
+   cnd_broadcast(&fence->signalled);
 
pipe_mutex_unlock(fence->mutex);
 }
diff --git a/src/gallium/drivers/rbug/rbug_core.c 
b/src/gallium/drivers/rbug/rbug_core.c
index dedbc14..3bb781b 100644
--- a/src/gallium/drivers/rbug/rbug_core.c
+++ b/src/gallium/drivers/rbug/rbug_core.c
@@ -409,7 +409,7 @@ rbug_context_draw_step(struct rbug_rbug *tr_rbug, struct 
rbug_header *header, ui
}
pipe_mutex_unlock(rb_context->draw_mutex);
 
-   pipe_condvar_broadcast(rb_context->draw_cond);
+   cnd_broadcast(&rb_context->draw_cond);
 
pipe_mutex_unlock(rb_screen->list_mutex);
 
@@ -442,7 +442,7 @@ rbug_context_draw_unblock(struct rbug_rbug *tr_rbug, struct 
rbug_header *header,
rb_context->draw_blocker &= ~unblock->unblock;
pipe_mutex_unlock(rb_context->draw_mutex);
 
-   pipe_condvar_broadcast(rb_context->draw_cond);
+   cnd_broadcast(&rb_context->draw_cond);
 
pipe_mutex_unlock(rb_screen->list_mutex);
 
@@ -474,7 +474,7 @@ rbug_context_draw_rule(struct rbug_rbug *tr_rbug, struct 
rbug_header *header, ui
rb_context->draw_blocker |= RBUG_BLOCK_RULE;
pipe_mutex_unlock(rb_context->draw_mutex);
 
-   pipe_condvar_broadcast(rb_context->draw_cond);
+   cnd_broadcast(&rb_context->draw_cond);
 
pipe_mutex_unlock(rb_screen->list_mutex);
 

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): gallium/util: replace pipe_condvar_signal() with cnd_signal ()

2017-03-06 Thread Timothy Arceri
Module: Mesa
Branch: master
Commit: 5e56c2c79d6d7e59d9098b79912149b00973251d
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=5e56c2c79d6d7e59d9098b79912149b00973251d

Author: Timothy Arceri 
Date:   Sun Mar  5 10:41:32 2017 +1100

gallium/util: replace pipe_condvar_signal() with cnd_signal()

pipe_condvar_signal() was made unnecessary with fd33a6bcd7f12.

Reviewed-by: Emil Velikov 
Reviewed-by: Marek Olšák 

---

 src/gallium/auxiliary/os/os_thread.h | 5 +
 src/gallium/auxiliary/util/u_queue.c | 4 ++--
 src/gallium/auxiliary/util/u_ringbuffer.c| 4 ++--
 src/gallium/state_trackers/nine/nine_queue.c | 4 ++--
 src/gallium/state_trackers/nine/nine_state.c | 4 ++--
 5 files changed, 9 insertions(+), 12 deletions(-)

diff --git a/src/gallium/auxiliary/os/os_thread.h 
b/src/gallium/auxiliary/os/os_thread.h
index 6895f4e..a8b5d92 100644
--- a/src/gallium/auxiliary/os/os_thread.h
+++ b/src/gallium/auxiliary/os/os_thread.h
@@ -148,9 +148,6 @@ __pipe_mutex_assert_locked(pipe_mutex *mutex)
  */
 typedef cnd_t pipe_condvar;
 
-#define pipe_condvar_signal(cond) \
-   cnd_signal(&(cond))
-
 #define pipe_condvar_broadcast(cond) \
cnd_broadcast(&(cond))
 
@@ -264,7 +261,7 @@ pipe_semaphore_signal(pipe_semaphore *sema)
 {
pipe_mutex_lock(sema->mutex);
sema->counter++;
-   pipe_condvar_signal(sema->cond);
+   cnd_signal(&sema->cond);
pipe_mutex_unlock(sema->mutex);
 }
 
diff --git a/src/gallium/auxiliary/util/u_queue.c 
b/src/gallium/auxiliary/util/u_queue.c
index 8fc2f3b..3cef7d2 100644
--- a/src/gallium/auxiliary/util/u_queue.c
+++ b/src/gallium/auxiliary/util/u_queue.c
@@ -168,7 +168,7 @@ static PIPE_THREAD_ROUTINE(util_queue_thread_func, input)
   queue->read_idx = (queue->read_idx + 1) % queue->max_jobs;
 
   queue->num_queued--;
-  pipe_condvar_signal(queue->has_space_cond);
+  cnd_signal(&queue->has_space_cond);
   pipe_mutex_unlock(queue->lock);
 
   if (job.job) {
@@ -316,7 +316,7 @@ util_queue_add_job(struct util_queue *queue,
queue->write_idx = (queue->write_idx + 1) % queue->max_jobs;
 
queue->num_queued++;
-   pipe_condvar_signal(queue->has_queued_cond);
+   cnd_signal(&queue->has_queued_cond);
pipe_mutex_unlock(queue->lock);
 }
 
diff --git a/src/gallium/auxiliary/util/u_ringbuffer.c 
b/src/gallium/auxiliary/util/u_ringbuffer.c
index adba9ea..a97236f 100644
--- a/src/gallium/auxiliary/util/u_ringbuffer.c
+++ b/src/gallium/auxiliary/util/u_ringbuffer.c
@@ -102,7 +102,7 @@ void util_ringbuffer_enqueue( struct util_ringbuffer *ring,
 
/* Signal change:
 */
-   pipe_condvar_signal(ring->change);
+   cnd_signal(&ring->change);
pipe_mutex_unlock(ring->mutex);
 }
 
@@ -154,7 +154,7 @@ enum pipe_error util_ringbuffer_dequeue( struct 
util_ringbuffer *ring,
 out:
/* Signal change:
 */
-   pipe_condvar_signal(ring->change);
+   cnd_signal(&ring->change);
pipe_mutex_unlock(ring->mutex);
return ret;
 }
diff --git a/src/gallium/state_trackers/nine/nine_queue.c 
b/src/gallium/state_trackers/nine/nine_queue.c
index fdfbdbb..b50b57b 100644
--- a/src/gallium/state_trackers/nine/nine_queue.c
+++ b/src/gallium/state_trackers/nine/nine_queue.c
@@ -114,7 +114,7 @@ nine_queue_get(struct nine_queue_pool* ctx)
 pipe_mutex_lock(ctx->mutex_pop);
 DBG("freeing cmdbuf=%p\n", cmdbuf);
 cmdbuf->full = 0;
-pipe_condvar_signal(ctx->event_pop);
+cnd_signal(&ctx->event_pop);
 pipe_mutex_unlock(ctx->mutex_pop);
 
 ctx->tail = (ctx->tail + 1) & NINE_CMD_BUFS_MASK;
@@ -150,7 +150,7 @@ nine_queue_flush(struct nine_queue_pool* ctx)
 /* signal waiting worker */
 pipe_mutex_lock(ctx->mutex_push);
 cmdbuf->full = 1;
-pipe_condvar_signal(ctx->event_push);
+cnd_signal(&ctx->event_push);
 pipe_mutex_unlock(ctx->mutex_push);
 
 ctx->head = (ctx->head + 1) & NINE_CMD_BUFS_MASK;
diff --git a/src/gallium/state_trackers/nine/nine_state.c 
b/src/gallium/state_trackers/nine/nine_state.c
index 0a2a0b9..90c49cf 100644
--- a/src/gallium/state_trackers/nine/nine_state.c
+++ b/src/gallium/state_trackers/nine/nine_state.c
@@ -108,7 +108,7 @@ PIPE_THREAD_ROUTINE(nine_csmt_worker, arg)
 if (instr->func(ctx->device, instr)) {
 pipe_mutex_lock(ctx->mutex_processed);
 p_atomic_set(&ctx->processed, TRUE);
-pipe_condvar_signal(ctx->event_processed);
+cnd_signal(&ctx->event_processed);
 pipe_mutex_unlock(ctx->mutex_processed);
 }
 if (p_atomic_read(&ctx->toPause)) {
@@ -124,7 +124,7 @@ PIPE_THREAD_ROUTINE(nine_csmt_worker, arg)
 if (p_atomic_read(&ctx->terminate)) {
 pipe_mutex_lock(ctx->mutex_processed);
 p_atomic_set(&ctx->processed, TRUE);
-pipe_condvar_signal(ctx->event_processed);
+cnd_signal(&ctx->event_processed);
 pipe_mutex_unlock(ctx->mutex_processed);
 break;
 }

___

Mesa (master): st/dri: use local pointer to st_context_iface

2017-03-06 Thread Timothy Arceri
Module: Mesa
Branch: master
Commit: 696c5115b90804b779d033d4a2b0729c8e4aa400
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=696c5115b90804b779d033d4a2b0729c8e4aa400

Author: Marek Olšák 
Date:   Mon Mar  6 15:03:16 2017 +1100

st/dri: use local pointer to st_context_iface

Reviewed-by: Timothy Arceri 
Reviewed-by: Michel Dänzer 

---

 src/gallium/state_trackers/dri/dri_drawable.c | 11 +++
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/gallium/state_trackers/dri/dri_drawable.c 
b/src/gallium/state_trackers/dri/dri_drawable.c
index edcd0e6..fd3b458 100644
--- a/src/gallium/state_trackers/dri/dri_drawable.c
+++ b/src/gallium/state_trackers/dri/dri_drawable.c
@@ -443,6 +443,7 @@ dri_flush(__DRIcontext *cPriv,
 {
struct dri_context *ctx = dri_context(cPriv);
struct dri_drawable *drawable = dri_drawable(dPriv);
+   struct st_context_iface *st;
unsigned flush_flags;
boolean swap_msaa_buffers = FALSE;
 
@@ -451,6 +452,8 @@ dri_flush(__DRIcontext *cPriv,
   return;
}
 
+   st = ctx->st;
+
if (drawable) {
   /* prevent recursion */
   if (drawable->flushing)
@@ -465,12 +468,12 @@ dri_flush(__DRIcontext *cPriv,
/* Flush the drawable. */
if ((flags & __DRI2_FLUSH_DRAWABLE) &&
drawable->textures[ST_ATTACHMENT_BACK_LEFT]) {
-  struct pipe_context *pipe = ctx->st->pipe;
+  struct pipe_context *pipe = st->pipe;
 
   if (drawable->stvis.samples > 1 &&
   reason == __DRI2_THROTTLE_SWAPBUFFER) {
  /* Resolve the MSAA back buffer. */
- dri_pipe_blit(ctx->st->pipe,
+ dri_pipe_blit(st->pipe,
drawable->textures[ST_ATTACHMENT_BACK_LEFT],
drawable->msaa_textures[ST_ATTACHMENT_BACK_LEFT]);
 
@@ -529,7 +532,7 @@ dri_flush(__DRIcontext *cPriv,
  screen->fence_reference(screen, &fence, NULL);
   }
 
-  ctx->st->flush(ctx->st, flush_flags, &fence);
+  st->flush(st, flush_flags, &fence);
 
   if (fence) {
  swap_fences_push_back(drawable, fence);
@@ -537,7 +540,7 @@ dri_flush(__DRIcontext *cPriv,
   }
}
else if (flags & (__DRI2_FLUSH_DRAWABLE | __DRI2_FLUSH_CONTEXT)) {
-  ctx->st->flush(ctx->st, flush_flags, NULL);
+  st->flush(st, flush_flags, NULL);
}
 
if (drawable) {

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): st/dri: reduce dri_fill_st_options() params

2017-03-06 Thread Timothy Arceri
Module: Mesa
Branch: master
Commit: 63d7a12fad8216dce4a0212c705678d2d07653b3
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=63d7a12fad8216dce4a0212c705678d2d07653b3

Author: Marek Olšák 
Date:   Mon Mar  6 15:03:17 2017 +1100

st/dri: reduce dri_fill_st_options() params

Reviewed-by: Timothy Arceri 
Reviewed-by: Michel Dänzer 

---

 src/gallium/state_trackers/dri/dri_screen.c | 8 +---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/gallium/state_trackers/dri/dri_screen.c 
b/src/gallium/state_trackers/dri/dri_screen.c
index c2da7e3..da0e414 100644
--- a/src/gallium/state_trackers/dri/dri_screen.c
+++ b/src/gallium/state_trackers/dri/dri_screen.c
@@ -83,9 +83,11 @@ const __DRIconfigOptionsExtension gallium_config_options = {
 #define false 0
 
 static void
-dri_fill_st_options(struct st_config_options *options,
-const struct driOptionCache * optionCache)
+dri_fill_st_options(struct dri_screen *screen)
 {
+   struct st_config_options *options = &screen->options;
+   const struct driOptionCache *optionCache = &screen->optionCache;
+
options->disable_blend_func_extended =
   driQueryOptionb(optionCache, "disable_blend_func_extended");
options->disable_glsl_line_continuations =
@@ -455,7 +457,7 @@ dri_init_screen_helper(struct dri_screen *screen,
screen->sPriv->myNum,
driver_name);
 
-   dri_fill_st_options(&screen->options, &screen->optionCache);
+   dri_fill_st_options(screen);
 
/* Handle force_s3tc_enable. */
if (!util_format_s3tc_enabled && screen->options.force_s3tc_enable) {

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): glapi: fix typo in count_scale

2017-03-06 Thread Timothy Arceri
Module: Mesa
Branch: master
Commit: 2ab5eccf5de4a68d0d8d2668f6c5244cc6a41846
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=2ab5eccf5de4a68d0d8d2668f6c5244cc6a41846

Author: Gregory Hainaut 
Date:   Mon Mar  6 15:25:32 2017 +1100

glapi: fix typo in count_scale

 2*4=8

Signed-off-by: Gregory Hainaut 
Reviewed-by: Timothy Arceri 
Reviewed-by: Matt Turner 

---

 src/mapi/glapi/gen/gl_API.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/mapi/glapi/gen/gl_API.xml b/src/mapi/glapi/gen/gl_API.xml
index 2f421f5..2c5 100644
--- a/src/mapi/glapi/gen/gl_API.xml
+++ b/src/mapi/glapi/gen/gl_API.xml
@@ -5858,7 +5858,7 @@
 
 
 
-
+
 
 
 

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): i965: Return NULL from initScreen2, not false.

2017-03-06 Thread Kenneth Graunke
Module: Mesa
Branch: master
Commit: 7782936cbcb6d17723a19802a17d4ce3fe93f34f
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=7782936cbcb6d17723a19802a17d4ce3fe93f34f

Author: Kenneth Graunke 
Date:   Wed Mar  1 16:02:58 2017 -0800

i965: Return NULL from initScreen2, not false.

This returns a pointer, not a boolean.  No actual effect, but cleaner.

Signed-off-by: Kenneth Graunke 
Reviewed-by: Jason Ekstrand 
Reviewed-by: Emil Velikov 

---

 src/mesa/drivers/dri/i965/intel_screen.c | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/intel_screen.c 
b/src/mesa/drivers/dri/i965/intel_screen.c
index 1e752f4..9cd2a65 100644
--- a/src/mesa/drivers/dri/i965/intel_screen.c
+++ b/src/mesa/drivers/dri/i965/intel_screen.c
@@ -1654,14 +1654,14 @@ __DRIconfig **intelInitScreen2(__DRIscreen *dri_screen)
   fprintf(stderr,
  "\nERROR!  DRI2 loader with getBuffersWithFormat() "
  "support required\n");
-  return false;
+  return NULL;
}
 
/* Allocate the private area */
screen = rzalloc(NULL, struct intel_screen);
if (!screen) {
   fprintf(stderr, "\nERROR!  Allocating private area failed\n");
-  return false;
+  return NULL;
}
/* parse information in __driConfigOptions */
driParseOptionInfo(&screen->optionCache, brw_config_options.xml);
@@ -1670,11 +1670,11 @@ __DRIconfig **intelInitScreen2(__DRIscreen *dri_screen)
dri_screen->driverPrivate = (void *) screen;
 
if (!intel_init_bufmgr(screen))
-   return false;
+   return NULL;
 
screen->deviceID = drm_intel_bufmgr_gem_get_devid(screen->bufmgr);
if (!gen_get_device_info(screen->deviceID, &screen->devinfo))
-  return false;
+  return NULL;
 
const struct gen_device_info *devinfo = &screen->devinfo;
 

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): i965: Make a devinfo local variable.

2017-03-06 Thread Kenneth Graunke
Module: Mesa
Branch: master
Commit: b5b123ac8f7e24c2f7949d2be0160a716d3a9870
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=b5b123ac8f7e24c2f7949d2be0160a716d3a9870

Author: Kenneth Graunke 
Date:   Wed Mar  1 15:52:55 2017 -0800

i965: Make a devinfo local variable.

screen->devinfo.gen is annoying to type and linewrap.

Signed-off-by: Kenneth Graunke 
Reviewed-by: Jason Ekstrand 
Reviewed-by: Emil Velikov 

---

 src/mesa/drivers/dri/i965/intel_screen.c | 25 +
 1 file changed, 13 insertions(+), 12 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/intel_screen.c 
b/src/mesa/drivers/dri/i965/intel_screen.c
index 61eb6fb..1e752f4 100644
--- a/src/mesa/drivers/dri/i965/intel_screen.c
+++ b/src/mesa/drivers/dri/i965/intel_screen.c
@@ -1676,12 +1676,14 @@ __DRIconfig **intelInitScreen2(__DRIscreen *dri_screen)
if (!gen_get_device_info(screen->deviceID, &screen->devinfo))
   return false;
 
+   const struct gen_device_info *devinfo = &screen->devinfo;
+
brw_process_intel_debug_variable();
 
if (INTEL_DEBUG & DEBUG_BUFMGR)
   dri_bufmgr_set_debug(screen->bufmgr, true);
 
-   if ((INTEL_DEBUG & DEBUG_SHADER_TIME) && screen->devinfo.gen < 7) {
+   if ((INTEL_DEBUG & DEBUG_SHADER_TIME) && devinfo->gen < 7) {
   fprintf(stderr,
   "shader_time debugging requires gen7 (Ivybridge) or better.\n");
   INTEL_DEBUG &= ~DEBUG_SHADER_TIME;
@@ -1728,10 +1730,10 @@ __DRIconfig **intelInitScreen2(__DRIscreen *dri_screen)
screen->hw_has_timestamp = intel_detect_timestamp(screen);
 
/* GENs prior to 8 do not support EU/Subslice info */
-   if (screen->devinfo.gen >= 8) {
+   if (devinfo->gen >= 8) {
   intel_detect_sseu(screen);
-   } else if (screen->devinfo.gen == 7) {
-  screen->subslice_total = 1 << (screen->devinfo.gt - 1);
+   } else if (devinfo->gen == 7) {
+  screen->subslice_total = 1 << (devinfo->gt - 1);
}
 
if (intel_detect_pipelined_so(screen))
@@ -1758,7 +1760,7 @@ __DRIconfig **intelInitScreen2(__DRIscreen *dri_screen)
 *
 * Don't even try on pre-Gen6, since we don't attempt to use contexts there.
 */
-   if (screen->devinfo.gen >= 6) {
+   if (devinfo->gen >= 6) {
   struct drm_i915_reset_stats stats;
   memset(&stats, 0, sizeof(stats));
 
@@ -1773,13 +1775,13 @@ __DRIconfig **intelInitScreen2(__DRIscreen *dri_screen)
   screen->cmd_parser_version = 0;
}
 
-   if (screen->devinfo.gen >= 8 || screen->cmd_parser_version >= 2)
+   if (devinfo->gen >= 8 || screen->cmd_parser_version >= 2)
   screen->kernel_features |= KERNEL_ALLOWS_PREDICATE_WRITES;
 
/* Haswell requires command parser version 4 in order to have L3
 * atomic scratch1 and chicken3 bits
 */
-   if (screen->devinfo.is_haswell && screen->cmd_parser_version >= 4) {
+   if (devinfo->is_haswell && screen->cmd_parser_version >= 4) {
   screen->kernel_features |=
  KERNEL_ALLOWS_HSW_SCRATCH1_AND_ROW_CHICKEN3;
}
@@ -1788,20 +1790,19 @@ __DRIconfig **intelInitScreen2(__DRIscreen *dri_screen)
 * MI_MATH GPR registers, and version 7 in order to use
 * MI_LOAD_REGISTER_REG (which all users of MI_MATH use).
 */
-   if (screen->devinfo.gen >= 8 ||
-   (screen->devinfo.is_haswell && screen->cmd_parser_version >= 7)) {
+   if (devinfo->gen >= 8 ||
+   (devinfo->is_haswell && screen->cmd_parser_version >= 7)) {
   screen->kernel_features |= KERNEL_ALLOWS_MI_MATH_AND_LRR;
}
 
/* Gen7 needs at least command parser version 5 to support compute */
-   if (screen->devinfo.gen >= 8 || screen->cmd_parser_version >= 5)
+   if (devinfo->gen >= 8 || screen->cmd_parser_version >= 5)
   screen->kernel_features |= KERNEL_ALLOWS_COMPUTE_DISPATCH;
 
dri_screen->extensions = !screen->has_context_reset_notification
   ? screenExtensions : intelRobustScreenExtensions;
 
-   screen->compiler = brw_compiler_create(screen,
-  &screen->devinfo);
+   screen->compiler = brw_compiler_create(screen, devinfo);
screen->compiler->shader_debug_log = shader_debug_log_mesa;
screen->compiler->shader_perf_log = shader_perf_log_mesa;
screen->program_id = 1;

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): i965: Delete vestiges of resource streamer code.

2017-03-06 Thread Kenneth Graunke
Module: Mesa
Branch: master
Commit: 951f56cd43bc870da2b0332cc388915ab604598e
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=951f56cd43bc870da2b0332cc388915ab604598e

Author: Kenneth Graunke 
Date:   Wed Mar  1 15:36:54 2017 -0800

i965: Delete vestiges of resource streamer code.

We never actually used the resource streamer in any shipping build
of Mesa.  We have no plans to do so in the future.  We looked into
using it in Vulkan, and concluded that it was unusable.  We're not
the only ones to arrive at the conclusion that it's not worth using.

So, drop the last vestiges of resource streamer support and move on.

Signed-off-by: Kenneth Graunke 
Reviewed-by: Jason Ekstrand 
Reviewed-by: Emil Velikov 

---

 src/mesa/drivers/dri/i965/brw_binding_tables.c | 223 +
 src/mesa/drivers/dri/i965/brw_context.c|   8 -
 src/mesa/drivers/dri/i965/brw_context.h|   6 -
 src/mesa/drivers/dri/i965/brw_defines.h|  52 --
 src/mesa/drivers/dri/i965/brw_misc_state.c |  40 -
 src/mesa/drivers/dri/i965/brw_state.h  |  15 --
 src/mesa/drivers/dri/i965/brw_state_upload.c   |   4 -
 src/mesa/drivers/dri/i965/genX_blorp_exec.c|   3 -
 src/mesa/drivers/dri/i965/intel_batchbuffer.c  |   6 +-
 src/mesa/drivers/dri/i965/intel_screen.c   |   5 -
 src/mesa/drivers/dri/i965/intel_screen.h   |   5 -
 11 files changed, 10 insertions(+), 357 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_binding_tables.c 
b/src/mesa/drivers/dri/i965/brw_binding_tables.c
index 7a33002..4c4c9c2 100644
--- a/src/mesa/drivers/dri/i965/brw_binding_tables.c
+++ b/src/mesa/drivers/dri/i965/brw_binding_tables.c
@@ -44,41 +44,6 @@
 #include "brw_state.h"
 #include "intel_batchbuffer.h"
 
-static const GLuint stage_to_bt_edit[] = {
-   [MESA_SHADER_VERTEX] = _3DSTATE_BINDING_TABLE_EDIT_VS,
-   [MESA_SHADER_GEOMETRY] = _3DSTATE_BINDING_TABLE_EDIT_GS,
-   [MESA_SHADER_FRAGMENT] = _3DSTATE_BINDING_TABLE_EDIT_PS,
-};
-
-static uint32_t
-reserve_hw_bt_space(struct brw_context *brw, unsigned bytes)
-{
-   /* From the Broadwell PRM, Volume 16, "Workarounds",
-* WaStateBindingTableOverfetch:
-* "HW over-fetches two cache lines of binding table indices.  When
-*  using the resource streamer, SW needs to pad binding table pointer
-*  updates with an additional two cache lines."
-*
-* Cache lines are 64 bytes, so we subtract 128 bytes from the size of
-* the binding table pool buffer.
-*/
-   if (brw->hw_bt_pool.next_offset + bytes >= brw->hw_bt_pool.bo->size - 128) {
-  gen7_reset_hw_bt_pool_offsets(brw);
-   }
-
-   uint32_t offset = brw->hw_bt_pool.next_offset;
-
-   /* From the Haswell PRM, Volume 2b: Command Reference: Instructions,
-* 3DSTATE_BINDING_TABLE_POINTERS_xS:
-*
-* "If HW Binding Table is enabled, the offset is relative to the
-*  Binding Table Pool Base Address and the alignment is 64 bytes."
-*/
-   brw->hw_bt_pool.next_offset += ALIGN(bytes, 64);
-
-   return offset;
-}
-
 /**
  * Upload a shader stage's binding table as indirect state.
  *
@@ -106,41 +71,25 @@ brw_upload_binding_table(struct brw_context *brw,
 brw->shader_time.bo, 0, ISL_FORMAT_RAW,
 brw->shader_time.bo->size, 1, true);
   }
-  /* When RS is enabled use hw-binding table uploads, otherwise fallback to
-   * software-uploads.
-   */
-  if (brw->use_resource_streamer) {
- gen7_update_binding_table_from_array(brw, stage_state->stage,
-  stage_state->surf_offset,
-  prog_data->binding_table
-  .size_bytes / 4);
-  } else {
- uint32_t *bind = brw_state_batch(brw, AUB_TRACE_BINDING_TABLE,
-  prog_data->binding_table.size_bytes,
-  32,
-  &stage_state->bind_bo_offset);
-
- /* BRW_NEW_SURFACES and BRW_NEW_*_CONSTBUF */
- memcpy(bind, stage_state->surf_offset,
-prog_data->binding_table.size_bytes);
-  }
+  uint32_t *bind = brw_state_batch(brw, AUB_TRACE_BINDING_TABLE,
+   prog_data->binding_table.size_bytes,
+   32,
+   &stage_state->bind_bo_offset);
+
+  /* BRW_NEW_SURFACES and BRW_NEW_*_CONSTBUF */
+  memcpy(bind, stage_state->surf_offset,
+ prog_data->binding_table.size_bytes);
}
 
brw->ctx.NewDriverState |= BRW_NEW_BINDING_TABLE_POINTERS;
 
if (brw->gen >= 7) {
-  if (brw->use_resource_streamer) {
- stage_state->bind_bo_offset =
-reserve_hw_bt_space(brw, prog_data->binding_table.size_bytes);
-  }
   BEGIN_BATCH(2);
   OUT_BATCH(packet_name << 16 | (2 - 2));
   /* Align SurfaceStateOffset[16:6] format to [15:5] PS Bindi

Mesa (master): i965: Drop duplicate #defines now that we' ve bumped libdrm requirements.

2017-03-06 Thread Kenneth Graunke
Module: Mesa
Branch: master
Commit: 4dc785728aacdf63e123c801215f686d547819c1
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=4dc785728aacdf63e123c801215f686d547819c1

Author: Kenneth Graunke 
Date:   Wed Mar  1 15:29:09 2017 -0800

i965: Drop duplicate #defines now that we've bumped libdrm requirements.

We've updated our libdrm requirement, and it will already provide these.

Signed-off-by: Kenneth Graunke 
Reviewed-by: Jason Ekstrand 
Reviewed-by: Emil Velikov 

---

 src/mesa/drivers/dri/i965/intel_batchbuffer.c | 5 -
 src/mesa/drivers/dri/i965/intel_screen.c  | 8 
 2 files changed, 13 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/intel_batchbuffer.c 
b/src/mesa/drivers/dri/i965/intel_batchbuffer.c
index 67054cf..3e87e34 100644
--- a/src/mesa/drivers/dri/i965/intel_batchbuffer.c
+++ b/src/mesa/drivers/dri/i965/intel_batchbuffer.c
@@ -311,11 +311,6 @@ throttle(struct brw_context *brw)
}
 }
 
-/* Drop when RS headers get pulled to libdrm */
-#ifndef I915_EXEC_RESOURCE_STREAMER
-#define I915_EXEC_RESOURCE_STREAMER (1<<15)
-#endif
-
 /* TODO: Push this whole function into bufmgr.
  */
 static int
diff --git a/src/mesa/drivers/dri/i965/intel_screen.c 
b/src/mesa/drivers/dri/i965/intel_screen.c
index f98431f..991fb5b 100644
--- a/src/mesa/drivers/dri/i965/intel_screen.c
+++ b/src/mesa/drivers/dri/i965/intel_screen.c
@@ -1597,11 +1597,6 @@ brw_get_revision(int fd)
return revision;
 }
 
-/* Drop when RS headers get pulled to libdrm */
-#ifndef I915_PARAM_HAS_RESOURCE_STREAMER
-#define I915_PARAM_HAS_RESOURCE_STREAMER 36
-#endif
-
 static void
 shader_debug_log_mesa(void *data, const char *fmt, ...)
 {
@@ -1695,9 +1690,6 @@ __DRIconfig **intelInitScreen2(__DRIscreen *dri_screen)
if (INTEL_DEBUG & DEBUG_AUB)
   drm_intel_bufmgr_gem_set_aub_dump(screen->bufmgr, true);
 
-#ifndef I915_PARAM_MMAP_GTT_VERSION
-#define I915_PARAM_MMAP_GTT_VERSION 40 /* XXX delete me with new libdrm */
-#endif
if (intel_get_integer(screen, I915_PARAM_MMAP_GTT_VERSION) >= 1) {
   /* Theorectically unlimited! At least for individual objects...
*

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): getteximage: fix _mesa_GetTextureSubImage()

2017-03-06 Thread Samuel Pitoiset
Module: Mesa
Branch: master
Commit: 4317cd96d3022ad0ef7e1d5ffa82f5c2693bb44e
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=4317cd96d3022ad0ef7e1d5ffa82f5c2693bb44e

Author: Samuel Pitoiset 
Date:   Mon Mar  6 21:33:28 2017 +0100

getteximage: fix _mesa_GetTextureSubImage()

Oops.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=100088
Fixes: 5ae54c0cf7 ("getteximage: avoid to lookup textures with id 0")
Signed-off-by: Samuel Pitoiset 
Reviewed-by: Marek Olšák 

---

 src/mesa/main/texgetimage.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/mesa/main/texgetimage.c b/src/mesa/main/texgetimage.c
index 37fda3d..658b0e5 100644
--- a/src/mesa/main/texgetimage.c
+++ b/src/mesa/main/texgetimage.c
@@ -1461,7 +1461,7 @@ _mesa_GetTextureSubImage(GLuint texture, GLint level,
struct gl_texture_object *texObj = NULL;
 
if (texture > 0)
-  _mesa_lookup_texture(ctx, texture);
+  texObj = _mesa_lookup_texture(ctx, texture);
 
if (!texObj) {
   _mesa_error(ctx, GL_INVALID_VALUE, "%s(texture)", caller);

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): ralloc: don't leave out the alignment factor

2017-03-06 Thread Eric Anholt
Module: Mesa
Branch: master
Commit: ff494fe999510ea40e3ed5827e7818550b6de126
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=ff494fe999510ea40e3ed5827e7818550b6de126

Author: Grazvydas Ignotas 
Date:   Sat Mar  4 02:49:18 2017 +0200

ralloc: don't leave out the alignment factor

Experimentation shows that without alignment factor gcc and clang choose
a factor of 16 even on IA-32, which doesn't match what malloc() uses (8).
The problem is it makes gcc assume the pointer is 16 byte aligned, so
with -O3 it starts using aligned SSE instructions that later fault,
so always specify a suitable alignment factor.

Cc: Jonas Pfeil 
Fixes: cd2b55e5 "ralloc: Make sure ralloc() allocations match malloc()'s 
alignment."
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=100049
Signed-off-by: Grazvydas Ignotas 
Tested by: Mike Lothian 
Tested by: Jonas Pfeil 

---

 src/util/ralloc.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/util/ralloc.c b/src/util/ralloc.c
index 03283de..7bf192e 100644
--- a/src/util/ralloc.c
+++ b/src/util/ralloc.c
@@ -59,8 +59,10 @@ _CRTIMP int _vscprintf(const char *format, va_list argptr);
 struct
 #ifdef _MSC_VER
  __declspec(align(8))
+#elif defined(__LP64__)
+ __attribute__((aligned(16)))
 #else
- __attribute__((aligned))
+ __attribute__((aligned(8)))
 #endif
ralloc_header
 {

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): i965: don't require 64bit cmpxchg

2017-03-06 Thread Matt Turner
Module: Mesa
Branch: master
Commit: b384c23b9e804916f125354e06c735bd3bb22811
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=b384c23b9e804916f125354e06c735bd3bb22811

Author: Grazvydas Ignotas 
Date:   Sun Mar  5 23:23:25 2017 +0200

i965: don't require 64bit cmpxchg

There are still some distributions trying to support unfortunate people
with old or exotic CPUs that don't have 64bit atomic operations. The
only thing preventing compile of the Intel driver for them seems to be
initialization of a debug variable.

v2: use call_once() instead of unsafe code, as suggested by Matt Turner

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93089
Signed-off-by: Grazvydas Ignotas 

---

 src/intel/common/gen_debug.c | 14 +++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/src/intel/common/gen_debug.c b/src/intel/common/gen_debug.c
index 858f04d..96efdab 100644
--- a/src/intel/common/gen_debug.c
+++ b/src/intel/common/gen_debug.c
@@ -33,8 +33,8 @@
 
 #include "common/gen_debug.h"
 #include "util/macros.h"
-#include "util/u_atomic.h" /* for p_atomic_cmpxchg */
 #include "util/debug.h"
+#include "c11/threads.h"
 
 uint64_t INTEL_DEBUG = 0;
 
@@ -101,9 +101,17 @@ intel_debug_flag_for_shader_stage(gl_shader_stage stage)
return flags[stage];
 }
 
+static void
+brw_process_intel_debug_variable_once(void)
+{
+   INTEL_DEBUG = parse_debug_string(getenv("INTEL_DEBUG"), debug_control);
+}
+
 void
 brw_process_intel_debug_variable(void)
 {
-   uint64_t intel_debug = parse_debug_string(getenv("INTEL_DEBUG"), 
debug_control);
-   (void) p_atomic_cmpxchg(&INTEL_DEBUG, 0, intel_debug);
+   static once_flag process_intel_debug_variable_flag = ONCE_FLAG_INIT;
+
+   call_once(&process_intel_debug_variable_flag,
+ brw_process_intel_debug_variable_once);
 }

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): radv: Emit pending flushes before executing a secondary command buffer

2017-03-06 Thread Bas Nieuwenhuizen
Module: Mesa
Branch: master
Commit: 290d7e892dfa6d04767142f4f6d7ec689933a105
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=290d7e892dfa6d04767142f4f6d7ec689933a105

Author: Alex Smith 
Date:   Mon Mar  6 14:54:28 2017 +

radv: Emit pending flushes before executing a secondary command buffer

If we have any pending flushes on the primary command buffer, these
must be performed before executing the secondary buffer.

This fixes potential corruption when the contents of a subpass which
clears any of its render targets are given in a secondary buffer: the
flushes after a fast clear would not have been performed until the
vkCmdEndRenderPass call.

Signed-off-by: Alex Smith 
Reviewed-by: Bas Nieuwenhuizen 
Cc: 13.0 17.0 

---

 src/amd/vulkan/radv_cmd_buffer.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c
index 3ff5250..d99288a 100644
--- a/src/amd/vulkan/radv_cmd_buffer.c
+++ b/src/amd/vulkan/radv_cmd_buffer.c
@@ -2110,6 +2110,9 @@ void radv_CmdExecuteCommands(
 {
RADV_FROM_HANDLE(radv_cmd_buffer, primary, commandBuffer);
 
+   /* Emit pending flushes on primary prior to executing secondary */
+   si_emit_cache_flush(primary);
+
for (uint32_t i = 0; i < commandBufferCount; i++) {
RADV_FROM_HANDLE(radv_cmd_buffer, secondary, pCmdBuffers[i]);
 

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): getteximage: avoid to lookup textures with id 0

2017-03-06 Thread Samuel Pitoiset
Module: Mesa
Branch: master
Commit: 5ae54c0cf7acfb792d2ca9b22cd5fb5ba811d32c
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=5ae54c0cf7acfb792d2ca9b22cd5fb5ba811d32c

Author: Samuel Pitoiset 
Date:   Wed Mar  1 22:54:09 2017 +0100

getteximage: avoid to lookup textures with id 0

This fixes the following assertion when the key is 0.

main/hash.c:181: _mesa_HashLookup_unlocked: Assertion `key' failed.

Fixes: 633c959fae ("getteximage: Return correct error value when texure object 
is not found")
Signed-off-by: Samuel Pitoiset 
Reviewed-by: Marek Olšák 

---

 src/mesa/main/texgetimage.c | 10 +++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/mesa/main/texgetimage.c b/src/mesa/main/texgetimage.c
index c0c50b0..37fda3d 100644
--- a/src/mesa/main/texgetimage.c
+++ b/src/mesa/main/texgetimage.c
@@ -1458,7 +1458,9 @@ _mesa_GetTextureSubImage(GLuint texture, GLint level,
 {
GET_CURRENT_CONTEXT(ctx);
static const char *caller = "glGetTextureSubImage";
-   struct gl_texture_object *texObj =
+   struct gl_texture_object *texObj = NULL;
+
+   if (texture > 0)
   _mesa_lookup_texture(ctx, texture);
 
if (!texObj) {
@@ -1774,9 +1776,11 @@ _mesa_GetCompressedTextureSubImage(GLuint texture, GLint 
level,
 {
GET_CURRENT_CONTEXT(ctx);
static const char *caller = "glGetCompressedTextureImage";
-   struct gl_texture_object *texObj;
+   struct gl_texture_object *texObj = NULL;
+
+   if (texture > 0)
+  texObj = _mesa_lookup_texture(ctx, texture);
 
-   texObj = _mesa_lookup_texture(ctx, texture);
if (!texObj) {
   _mesa_error(ctx, GL_INVALID_VALUE, "%s(texture)", caller);
   return;

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): mesa/main: remove useless check in _mesa_IsSampler()

2017-03-06 Thread Samuel Pitoiset
Module: Mesa
Branch: master
Commit: 052c81faa1147ab758dc4430e4483c7d9fc5fe25
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=052c81faa1147ab758dc4430e4483c7d9fc5fe25

Author: Samuel Pitoiset 
Date:   Wed Mar  1 22:53:52 2017 +0100

mesa/main: remove useless check in _mesa_IsSampler()

_mesa_lookup_samplerobj() returns NULL if sampler is 0.

v2: use _mesa_lookup...(...) != NULL

Signed-off-by: Samuel Pitoiset 
Reviewed-by: Marek Olšák 

---

 src/mesa/main/samplerobj.c | 8 +---
 1 file changed, 1 insertion(+), 7 deletions(-)

diff --git a/src/mesa/main/samplerobj.c b/src/mesa/main/samplerobj.c
index 8a0835a..2baa016 100644
--- a/src/mesa/main/samplerobj.c
+++ b/src/mesa/main/samplerobj.c
@@ -270,17 +270,11 @@ _mesa_DeleteSamplers(GLsizei count, const GLuint 
*samplers)
 GLboolean GLAPIENTRY
 _mesa_IsSampler(GLuint sampler)
 {
-   struct gl_sampler_object *sampObj;
GET_CURRENT_CONTEXT(ctx);
 
ASSERT_OUTSIDE_BEGIN_END_WITH_RETVAL(ctx, GL_FALSE);
 
-   if (sampler == 0)
-  return GL_FALSE;
-
-   sampObj = _mesa_lookup_samplerobj(ctx, sampler);
-
-   return sampObj != NULL;
+   return _mesa_lookup_samplerobj(ctx, sampler) != NULL;
 }
 
 void

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): docs/relnotes/17.1.0: document the new LLVM requirement

2017-03-06 Thread Marek Olšák
Module: Mesa
Branch: master
Commit: 5ac6ab701f05ed7e5b9e8c277ca8eba085a98315
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=5ac6ab701f05ed7e5b9e8c277ca8eba085a98315

Author: Marek Olšák 
Date:   Mon Mar  6 17:34:41 2017 +0100

docs/relnotes/17.1.0: document the new LLVM requirement

---

 docs/relnotes/17.1.0.html | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/docs/relnotes/17.1.0.html b/docs/relnotes/17.1.0.html
index b07cf0b..ada1e38 100644
--- a/docs/relnotes/17.1.0.html
+++ b/docs/relnotes/17.1.0.html
@@ -60,7 +60,8 @@ Note: some of the new features are only available with 
certain drivers.
 
 Removed the ilo gallium driver.
 The configure option --enable-gallium-llvm is superseded by 
--enable-llvm.
-swr driver now requires llvm >= 3.9.0.
+The swr driver now requires LLVM >= 3.9.0.
+The radeonsi driver now requires LLVM 3.8.0.
 
 
 

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): radeonsi: set the convergent attribute where needed

2017-03-06 Thread Marek Olšák
Module: Mesa
Branch: master
Commit: d5d74fe2b528da8124193366c9c3ad739a3abd50
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=d5d74fe2b528da8124193366c9c3ad739a3abd50

Author: Marek Olšák 
Date:   Sun Feb 26 19:00:44 2017 +0100

radeonsi: set the convergent attribute where needed

Reviewed-by: Dave Airlie 

---

 src/amd/common/ac_llvm_build.c   | 8 ++--
 src/gallium/drivers/radeonsi/si_shader.c | 2 +-
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/amd/common/ac_llvm_build.c b/src/amd/common/ac_llvm_build.c
index 20c6eb8..0039e63 100644
--- a/src/amd/common/ac_llvm_build.c
+++ b/src/amd/common/ac_llvm_build.c
@@ -861,13 +861,17 @@ ac_build_ddxy(struct ac_llvm_context *ctx,
args[1] = val;
tl = ac_build_intrinsic(ctx,
"llvm.amdgcn.ds.bpermute", ctx->i32,
-   args, 2, AC_FUNC_ATTR_READNONE);
+   args, 2,
+   AC_FUNC_ATTR_READNONE |
+   AC_FUNC_ATTR_CONVERGENT);
 
args[0] = LLVMBuildMul(ctx->builder, trbl_tid,
   LLVMConstInt(ctx->i32, 4, false), "");
trbl = ac_build_intrinsic(ctx,
  "llvm.amdgcn.ds.bpermute", ctx->i32,
- args, 2, AC_FUNC_ATTR_READNONE);
+ args, 2,
+ AC_FUNC_ATTR_READNONE |
+ AC_FUNC_ATTR_CONVERGENT);
} else {
LLVMValueRef store_ptr, load_ptr0, load_ptr1;
 
diff --git a/src/gallium/drivers/radeonsi/si_shader.c 
b/src/gallium/drivers/radeonsi/si_shader.c
index 4e133ec..edfa284 100644
--- a/src/gallium/drivers/radeonsi/si_shader.c
+++ b/src/gallium/drivers/radeonsi/si_shader.c
@@ -5207,7 +5207,7 @@ static void si_llvm_emit_barrier(const struct 
lp_build_tgsi_action *action,
lp_build_intrinsic(gallivm->builder,
   HAVE_LLVM >= 0x0309 ? "llvm.amdgcn.s.barrier"
   : "llvm.AMDGPU.barrier.local",
-  ctx->voidt, NULL, 0, 0);
+  ctx->voidt, NULL, 0, LP_FUNC_ATTR_CONVERGENT);
 }
 
 static const struct lp_build_tgsi_action tex_action = {

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): gallivm,ac: add LP_FUNC_ATTR_CONVERGENT

2017-03-06 Thread Marek Olšák
Module: Mesa
Branch: master
Commit: ef883fc5542f642ea547f9865b3310e6343533c7
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=ef883fc5542f642ea547f9865b3310e6343533c7

Author: Marek Olšák 
Date:   Sun Jan 22 02:36:48 2017 +0100

gallivm,ac: add LP_FUNC_ATTR_CONVERGENT

Reviewed-by: Dave Airlie 

---

 src/amd/common/ac_llvm_util.c   | 1 +
 src/amd/common/ac_llvm_util.h   | 1 +
 src/gallium/auxiliary/gallivm/lp_bld_intr.c | 1 +
 src/gallium/auxiliary/gallivm/lp_bld_intr.h | 1 +
 4 files changed, 4 insertions(+)

diff --git a/src/amd/common/ac_llvm_util.c b/src/amd/common/ac_llvm_util.c
index 2598875..4b5d2fe 100644
--- a/src/amd/common/ac_llvm_util.c
+++ b/src/amd/common/ac_llvm_util.c
@@ -174,6 +174,7 @@ static const char *attr_to_str(enum ac_func_attr attr)
case AC_FUNC_ATTR_READONLY: return "readonly";
case AC_FUNC_ATTR_WRITEONLY: return "writeonly";
case AC_FUNC_ATTR_INACCESSIBLE_MEM_ONLY: return "inaccessiblememonly";
+   case AC_FUNC_ATTR_CONVERGENT: return "convergent";
default:
   fprintf(stderr, "Unhandled function attribute: %x\n", attr);
   return 0;
diff --git a/src/amd/common/ac_llvm_util.h b/src/amd/common/ac_llvm_util.h
index e786bb7..4b0ccdd 100644
--- a/src/amd/common/ac_llvm_util.h
+++ b/src/amd/common/ac_llvm_util.h
@@ -43,6 +43,7 @@ enum ac_func_attr {
AC_FUNC_ATTR_READONLY = (1 << 6),
AC_FUNC_ATTR_WRITEONLY= HAVE_LLVM >= 0x0400 ? (1 << 7) : 0,
AC_FUNC_ATTR_INACCESSIBLE_MEM_ONLY = HAVE_LLVM >= 0x0400 ? (1 << 8) : 0,
+   AC_FUNC_ATTR_CONVERGENT = HAVE_LLVM >= 0x0400 ? (1 << 9) : 0,
 
/* Legacy intrinsic that needs attributes on function declarations
 * and they must match the internal LLVM definition exactly, otherwise
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_intr.c 
b/src/gallium/auxiliary/gallivm/lp_bld_intr.c
index 07d3102..19f98bb 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_intr.c
+++ b/src/gallium/auxiliary/gallivm/lp_bld_intr.c
@@ -152,6 +152,7 @@ static const char *attr_to_str(enum lp_func_attr attr)
case LP_FUNC_ATTR_READONLY: return "readonly";
case LP_FUNC_ATTR_WRITEONLY: return "writeonly";
case LP_FUNC_ATTR_INACCESSIBLE_MEM_ONLY: return "inaccessiblememonly";
+   case LP_FUNC_ATTR_CONVERGENT: return "convergent";
default:
   _debug_printf("Unhandled function attribute: %x\n", attr);
   return 0;
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_intr.h 
b/src/gallium/auxiliary/gallivm/lp_bld_intr.h
index 7bd6efa..0a929c5 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_intr.h
+++ b/src/gallium/auxiliary/gallivm/lp_bld_intr.h
@@ -56,6 +56,7 @@ enum lp_func_attr {
LP_FUNC_ATTR_READONLY = (1 << 6),
LP_FUNC_ATTR_WRITEONLY= HAVE_LLVM >= 0x0400 ? (1 << 7) : 0,
LP_FUNC_ATTR_INACCESSIBLE_MEM_ONLY = HAVE_LLVM >= 0x0400 ? (1 << 8) : 0,
+   LP_FUNC_ATTR_CONVERGENT   = HAVE_LLVM >= 0x0400 ? (1 << 9) : 0,
 
/* Legacy intrinsic that needs attributes on function declarations
 * and they must match the internal LLVM definition exactly, otherwise

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): radeonsi: drop support for LLVM 3.6 & 3.7

2017-03-06 Thread Marek Olšák
Module: Mesa
Branch: master
Commit: 7e1faa79d31b44e3b3d7a4dc22d9b136300a761e
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=7e1faa79d31b44e3b3d7a4dc22d9b136300a761e

Author: Marek Olšák 
Date:   Sun Mar  5 00:15:31 2017 +0100

radeonsi: drop support for LLVM 3.6 & 3.7

They are too old.

Reviewed-by: Dave Airlie 

---

 configure.ac   |  4 +--
 src/amd/common/ac_llvm_build.c | 30 --
 src/amd/common/ac_llvm_helper.cpp  |  6 ++---
 src/amd/common/ac_llvm_util.c  | 16 +---
 src/gallium/drivers/radeon/r600_pipe_common.c  |  8 +++---
 src/gallium/drivers/radeonsi/si_pipe.c | 13 ++
 src/gallium/drivers/radeonsi/si_shader.c   |  2 +-
 src/gallium/drivers/radeonsi/si_shader_tgsi_alu.c  |  6 ++---
 .../drivers/radeonsi/si_shader_tgsi_setup.c|  8 --
 src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c  |  8 --
 10 files changed, 25 insertions(+), 76 deletions(-)

diff --git a/configure.ac b/configure.ac
index 73bd749..21a73b0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -104,8 +104,8 @@ ZLIB_REQUIRED=1.2.8
 dnl LLVM versions
 LLVM_REQUIRED_GALLIUM=3.3.0
 LLVM_REQUIRED_OPENCL=3.6.0
-LLVM_REQUIRED_R600=3.6.0
-LLVM_REQUIRED_RADEONSI=3.6.0
+LLVM_REQUIRED_R600=3.8.0
+LLVM_REQUIRED_RADEONSI=3.8.0
 LLVM_REQUIRED_RADV=3.9.0
 LLVM_REQUIRED_SWR=3.9.0
 
diff --git a/src/amd/common/ac_llvm_build.c b/src/amd/common/ac_llvm_build.c
index 0039e63..8996159 100644
--- a/src/amd/common/ac_llvm_build.c
+++ b/src/amd/common/ac_llvm_build.c
@@ -792,22 +792,16 @@ ac_get_thread_id(struct ac_llvm_context *ctx)
 {
LLVMValueRef tid;
 
-   if (HAVE_LLVM < 0x0308) {
-   tid = ac_build_intrinsic(ctx, "llvm.SI.tid",
-ctx->i32,
-NULL, 0, AC_FUNC_ATTR_READNONE);
-   } else {
-   LLVMValueRef tid_args[2];
-   tid_args[0] = LLVMConstInt(ctx->i32, 0x, false);
-   tid_args[1] = LLVMConstInt(ctx->i32, 0, false);
-   tid_args[1] = ac_build_intrinsic(ctx,
-"llvm.amdgcn.mbcnt.lo", 
ctx->i32,
-tid_args, 2, 
AC_FUNC_ATTR_READNONE);
-
-   tid = ac_build_intrinsic(ctx, "llvm.amdgcn.mbcnt.hi",
-ctx->i32, tid_args,
-2, AC_FUNC_ATTR_READNONE);
-   }
+   LLVMValueRef tid_args[2];
+   tid_args[0] = LLVMConstInt(ctx->i32, 0x, false);
+   tid_args[1] = LLVMConstInt(ctx->i32, 0, false);
+   tid_args[1] = ac_build_intrinsic(ctx,
+"llvm.amdgcn.mbcnt.lo", ctx->i32,
+tid_args, 2, AC_FUNC_ATTR_READNONE);
+
+   tid = ac_build_intrinsic(ctx, "llvm.amdgcn.mbcnt.hi",
+ctx->i32, tid_args,
+2, AC_FUNC_ATTR_READNONE);
set_range_metadata(ctx, tid, 0, 64);
return tid;
 }
@@ -972,15 +966,13 @@ LLVMValueRef ac_build_clamp(struct ac_llvm_context *ctx, 
LLVMValueRef value)
  AC_FUNC_ATTR_READNONE);
}
 
-   const char *intr = HAVE_LLVM >= 0x0308 ? "llvm.AMDGPU.clamp." :
-"llvm.AMDIL.clamp.";
LLVMValueRef args[3] = {
value,
LLVMConstReal(ctx->f32, 0),
LLVMConstReal(ctx->f32, 1),
};
 
-   return ac_build_intrinsic(ctx, intr, ctx->f32, args, 3,
+   return ac_build_intrinsic(ctx, "llvm.AMDGPU.clamp.", ctx->f32, args, 3,
  AC_FUNC_ATTR_READNONE |
  AC_FUNC_ATTR_LEGACY);
 }
diff --git a/src/amd/common/ac_llvm_helper.cpp 
b/src/amd/common/ac_llvm_helper.cpp
index 594339e..4f03103 100644
--- a/src/amd/common/ac_llvm_helper.cpp
+++ b/src/amd/common/ac_llvm_helper.cpp
@@ -26,10 +26,8 @@
 /* based on Marek's patch to lp_bld_misc.cpp */
 
 // Workaround http://llvm.org/PR23628
-#if HAVE_LLVM >= 0x0307
-#  pragma push_macro("DEBUG")
-#  undef DEBUG
-#endif
+#pragma push_macro("DEBUG")
+#undef DEBUG
 
 #include "ac_llvm_util.h"
 #include 
diff --git a/src/amd/common/ac_llvm_util.c b/src/amd/common/ac_llvm_util.c
index 4b5d2fe..a2fe631 100644
--- a/src/amd/common/ac_llvm_util.c
+++ b/src/amd/common/ac_llvm_util.c
@@ -35,17 +35,10 @@
 
 static void ac_init_llvm_target()
 {
-#if HAVE_LLVM < 0x0307
-   LLVMInitializeR600TargetInfo();
-   LLVMInitializeR600Target();
-   LLVMInitializeR600TargetMC();
-   LLVMInitializeR600AsmPrinter();
-#else
LLVMInitializeAMDGPUTargetInfo();
LLVMInitializeAMDGPUTarget();
LLVMInitializeAMDGPUTargetMC();
LLVMInitializeAMDGPUAsmPrinter();
-#endif
 }
 
 static once_flag ac_init_llvm_tar

Mesa (master): gallium/radeon: don't monitor SDMA busyness on EG/Cayman/SI

2017-03-06 Thread Marek Olšák
Module: Mesa
Branch: master
Commit: c416d8a3bcc085d13489da618c9169b343c226eb
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=c416d8a3bcc085d13489da618c9169b343c226eb

Author: Marek Olšák 
Date:   Tue Feb 28 21:27:59 2017 +0100

gallium/radeon: don't monitor SDMA busyness on EG/Cayman/SI

It's always busy.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99955

Reviewed-by: Dave Airlie 

---

 src/gallium/drivers/radeon/r600_gpu_load.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/gallium/drivers/radeon/r600_gpu_load.c 
b/src/gallium/drivers/radeon/r600_gpu_load.c
index 24f54c0..9697314 100644
--- a/src/gallium/drivers/radeon/r600_gpu_load.c
+++ b/src/gallium/drivers/radeon/r600_gpu_load.c
@@ -105,7 +105,7 @@ static void r600_update_mmio_counters(struct 
r600_common_screen *rscreen,
UPDATE_COUNTER(gui, GUI_ACTIVE);
gui_busy = GUI_ACTIVE(value);
 
-   if (rscreen->chip_class >= EVERGREEN) {
+   if (rscreen->chip_class >= CIK) {
/* SRBM_STATUS2 */
rscreen->ws->read_registers(rscreen->ws, SRBM_STATUS2, 1, 
&value);
 

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): radeonsi: fix LLVM 3.9 - don' t use non-matching attributes on declarations

2017-03-06 Thread Marek Olšák
Module: Mesa
Branch: master
Commit: 9b08f044bef03194759064c3d680143d264f507f
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=9b08f044bef03194759064c3d680143d264f507f

Author: Marek Olšák 
Date:   Sun Mar  5 23:19:57 2017 +0100

radeonsi: fix LLVM 3.9 - don't use non-matching attributes on declarations

Call site attributes are used since LLVM 4.0.

This also reverts commit b19caecbd6f310c1663b0cfe483d113ae3bd5fe2
"radeon/ac: fix intrinsic version check", because this is the correct fix.

Reviewed-by: Dave Airlie 

---

 src/amd/common/ac_llvm_build.c   | 6 +++---
 src/gallium/drivers/radeonsi/si_shader.c | 6 --
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/amd/common/ac_llvm_build.c b/src/amd/common/ac_llvm_build.c
index acda5e2..20c6eb8 100644
--- a/src/amd/common/ac_llvm_build.c
+++ b/src/amd/common/ac_llvm_build.c
@@ -693,7 +693,7 @@ ac_build_buffer_load(struct ac_llvm_context *ctx,
  /* READNONE means writes can't
   * affect it, while READONLY means
   * that writes can affect it. */
- readonly_memory ?
+ readonly_memory && HAVE_LLVM >= 
0x0400 ?
  AC_FUNC_ATTR_READNONE :
  AC_FUNC_ATTR_READONLY);
} else {
@@ -736,7 +736,7 @@ LLVMValueRef ac_build_buffer_load_format(struct 
ac_llvm_context *ctx,
 LLVMValueRef voffset,
 bool readonly_memory)
 {
-   if (HAVE_LLVM >= 0x0400) {
+   if (HAVE_LLVM >= 0x0309) {
LLVMValueRef args [] = {
LLVMBuildBitCast(ctx->builder, rsrc, ctx->v4i32, ""),
vindex,
@@ -751,7 +751,7 @@ LLVMValueRef ac_build_buffer_load_format(struct 
ac_llvm_context *ctx,
  /* READNONE means writes can't
   * affect it, while READONLY means
   * that writes can affect it. */
- readonly_memory ?
+ readonly_memory && HAVE_LLVM >= 
0x0400 ?
  AC_FUNC_ATTR_READNONE :
  AC_FUNC_ATTR_READONLY);
}
diff --git a/src/gallium/drivers/radeonsi/si_shader.c 
b/src/gallium/drivers/radeonsi/si_shader.c
index 319c0c8..4e133ec 100644
--- a/src/gallium/drivers/radeonsi/si_shader.c
+++ b/src/gallium/drivers/radeonsi/si_shader.c
@@ -3442,13 +3442,15 @@ static unsigned get_load_intr_attribs(bool 
readonly_memory)
 {
/* READNONE means writes can't affect it, while READONLY means that
 * writes can affect it. */
-   return readonly_memory ? LP_FUNC_ATTR_READNONE :
+   return readonly_memory && HAVE_LLVM >= 0x0400 ?
+LP_FUNC_ATTR_READNONE :
 LP_FUNC_ATTR_READONLY;
 }
 
 static unsigned get_store_intr_attribs(bool writeonly_memory)
 {
-   return writeonly_memory ? LP_FUNC_ATTR_INACCESSIBLE_MEM_ONLY :
+   return writeonly_memory && HAVE_LLVM >= 0x0400 ?
+ LP_FUNC_ATTR_INACCESSIBLE_MEM_ONLY :
  LP_FUNC_ATTR_WRITEONLY;
 }
 

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): st/va: Support fractional framerate in misc parameter

2017-03-06 Thread Christian König
Module: Mesa
Branch: master
Commit: c93a157078591847a226265edf1c701d81635fc1
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=c93a157078591847a226265edf1c701d81635fc1

Author: Mark Thompson 
Date:   Fri Jan 27 22:03:10 2017 +

st/va: Support fractional framerate in misc parameter

Signed-off-by: Mark Thompson 
Acked-by: Christian König 

---

 src/gallium/state_trackers/va/picture.c | 8 +++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/gallium/state_trackers/va/picture.c 
b/src/gallium/state_trackers/va/picture.c
index 53bb9eb..ef8b57a 100644
--- a/src/gallium/state_trackers/va/picture.c
+++ b/src/gallium/state_trackers/va/picture.c
@@ -348,7 +348,13 @@ static VAStatus
 handleVAEncMiscParameterTypeFrameRate(vlVaContext *context, 
VAEncMiscParameterBuffer *misc)
 {
VAEncMiscParameterFrameRate *fr = (VAEncMiscParameterFrameRate *)misc->data;
-   context->desc.h264enc.rate_ctrl.frame_rate_num = fr->framerate;
+   if (fr->framerate & 0x) {
+  context->desc.h264enc.rate_ctrl.frame_rate_num = fr->framerate   & 
0x;
+  context->desc.h264enc.rate_ctrl.frame_rate_den = fr->framerate >> 16 & 
0x;
+   } else {
+  context->desc.h264enc.rate_ctrl.frame_rate_num = fr->framerate;
+  context->desc.h264enc.rate_ctrl.frame_rate_den = 1;
+   }
return VA_STATUS_SUCCESS;
 }
 

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): st/omx: Set end-of-frame flag on bitstream output buffers

2017-03-06 Thread Christian König
Module: Mesa
Branch: master
Commit: 6398a092131ab0c9cb47f2a6f78ae1d8ba0ea65c
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=6398a092131ab0c9cb47f2a6f78ae1d8ba0ea65c

Author: Mark Thompson 
Date:   Sun Mar  5 23:18:11 2017 +

st/omx: Set end-of-frame flag on bitstream output buffers

Since all output buffers are whole frames, this should always be set.

Technically, setting this flag is is optional (see OpenMAX IL section
3.1.2.7.1), but some clients assume that it will be used and
therefore buffer indefinitely thinking that all output buffers are
fragments of the first frame when it is not set.

Signed-off-by: Mark Thompson 
Reviewed-by: Christian König 

---

 src/gallium/state_trackers/omx/vid_enc.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/gallium/state_trackers/omx/vid_enc.c 
b/src/gallium/state_trackers/omx/vid_enc.c
index b2970a5..b58063e 100644
--- a/src/gallium/state_trackers/omx/vid_enc.c
+++ b/src/gallium/state_trackers/omx/vid_enc.c
@@ -1271,4 +1271,7 @@ static void vid_enc_BufferEncoded(OMX_COMPONENTTYPE 
*comp, OMX_BUFFERHEADERTYPE*
 
output->nOffset = 0;
output->nFilledLen = size; /* mark buffer as full */
+
+   /* all output buffers contain exactly one frame */
+   output->nFlags = OMX_BUFFERFLAG_ENDOFFRAME;
 }

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): st/va encode handle ntsc framerate rate control

2017-03-06 Thread Christian König
Module: Mesa
Branch: master
Commit: 012b6d3fe7937d1624f906351b2ba555d9e7e112
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=012b6d3fe7937d1624f906351b2ba555d9e7e112

Author: Andy Furniss 
Date:   Sun Jan 29 14:22:31 2017 +

st/va encode handle ntsc framerate rate control

Tested with ffmpeg and gst-vaapi. Without this bits per
frame is set way too low for fractional framerates.

v2: Mark Thompson: simplify calculation.
Use float.

Signed-off-by: Andy Furniss 
Acked-by: Christian König 

---

 src/gallium/state_trackers/va/picture.c | 19 +--
 1 file changed, 13 insertions(+), 6 deletions(-)

diff --git a/src/gallium/state_trackers/va/picture.c 
b/src/gallium/state_trackers/va/picture.c
index 82584ea..53bb9eb 100644
--- a/src/gallium/state_trackers/va/picture.c
+++ b/src/gallium/state_trackers/va/picture.c
@@ -119,14 +119,21 @@ getEncParamPreset(vlVaContext *context)
context->desc.h264enc.rate_ctrl.fill_data_enable = 1;
context->desc.h264enc.rate_ctrl.enforce_hrd = 1;
context->desc.h264enc.enable_vui = false;
-   if (context->desc.h264enc.rate_ctrl.frame_rate_num == 0)
-  context->desc.h264enc.rate_ctrl.frame_rate_num = 30;
+   if (context->desc.h264enc.rate_ctrl.frame_rate_num == 0 ||
+   context->desc.h264enc.rate_ctrl.frame_rate_den == 0) {
+ context->desc.h264enc.rate_ctrl.frame_rate_num = 30;
+ context->desc.h264enc.rate_ctrl.frame_rate_den = 1;
+   }
context->desc.h264enc.rate_ctrl.target_bits_picture =
-  context->desc.h264enc.rate_ctrl.target_bitrate / 
context->desc.h264enc.rate_ctrl.frame_rate_num;
+  context->desc.h264enc.rate_ctrl.target_bitrate *
+  ((float)context->desc.h264enc.rate_ctrl.frame_rate_den /
+  context->desc.h264enc.rate_ctrl.frame_rate_num);
context->desc.h264enc.rate_ctrl.peak_bits_picture_integer =
-  context->desc.h264enc.rate_ctrl.peak_bitrate / 
context->desc.h264enc.rate_ctrl.frame_rate_num;
-   context->desc.h264enc.rate_ctrl.peak_bits_picture_fraction = 0;
+  context->desc.h264enc.rate_ctrl.peak_bitrate *
+  ((float)context->desc.h264enc.rate_ctrl.frame_rate_den /
+  context->desc.h264enc.rate_ctrl.frame_rate_num);
 
+   context->desc.h264enc.rate_ctrl.peak_bits_picture_fraction = 0;
context->desc.h264enc.ref_pic_mode = 0x0201;
 }
 
@@ -362,7 +369,7 @@ handleVAEncSequenceParameterBufferType(vlVaDriver *drv, 
vlVaContext *context, vl
   context->gop_coeff = VL_VA_ENC_GOP_COEFF;
context->desc.h264enc.gop_size = h264->intra_idr_period * 
context->gop_coeff;
context->desc.h264enc.rate_ctrl.frame_rate_num = h264->time_scale / 2;
-   context->desc.h264enc.rate_ctrl.frame_rate_den = 1;
+   context->desc.h264enc.rate_ctrl.frame_rate_den = h264->num_units_in_tick;
return VA_STATUS_SUCCESS;
 }
 

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): st/va: Fix forward/backward referencing for deinterlacing

2017-03-06 Thread Christian König
Module: Mesa
Branch: master
Commit: 0798fddb5000f2b1edffc693ec65236a680ce61f
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=0798fddb5000f2b1edffc693ec65236a680ce61f

Author: Mark Thompson 
Date:   Wed Mar  1 20:07:09 2017 +

st/va: Fix forward/backward referencing for deinterlacing

The VAAPI documentation is not very clear here, but the intent
appears to be that a forward reference is forward from a frame in the
past, not forward to a frame in the future (that is, forward as in
forward prediction, not as in a forward reference in source code).
This interpretation is derived from other implementations, in
particular the i965 driver and the gstreamer client.

In order to match those other implementations, this patch swaps the
meaning of forward and backward references as they currently appear
for motion-adaptive deinterlacing.

Signed-off-by: Mark Thompson 
Reviewed-by: Christian König 

---

 src/gallium/state_trackers/va/postproc.c | 10 +-
 src/gallium/state_trackers/va/surface.c  |  4 ++--
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/src/gallium/state_trackers/va/postproc.c 
b/src/gallium/state_trackers/va/postproc.c
index 01e240f..fbec69a 100644
--- a/src/gallium/state_trackers/va/postproc.c
+++ b/src/gallium/state_trackers/va/postproc.c
@@ -184,13 +184,13 @@ vlVaApplyDeint(vlVaDriver *drv, vlVaContext *context,
 {
vlVaSurface *prevprev, *prev, *next;
 
-   if (param->num_forward_references < 1 ||
-   param->num_backward_references < 2)
+   if (param->num_forward_references < 2 ||
+   param->num_backward_references < 1)
   return current;
 
-   prevprev = handle_table_get(drv->htab, param->backward_references[1]);
-   prev = handle_table_get(drv->htab, param->backward_references[0]);
-   next = handle_table_get(drv->htab, param->forward_references[0]);
+   prevprev = handle_table_get(drv->htab, param->forward_references[1]);
+   prev = handle_table_get(drv->htab, param->forward_references[0]);
+   next = handle_table_get(drv->htab, param->backward_references[0]);
 
if (!prevprev || !prev || !next)
   return current;
diff --git a/src/gallium/state_trackers/va/surface.c 
b/src/gallium/state_trackers/va/surface.c
index 0e1dbe0..b129e6c 100644
--- a/src/gallium/state_trackers/va/surface.c
+++ b/src/gallium/state_trackers/va/surface.c
@@ -845,8 +845,8 @@ vlVaQueryVideoProcPipelineCaps(VADriverContextP ctx, 
VAContextID context,
   case VAProcFilterDeinterlacing: {
  VAProcFilterParameterBufferDeinterlacing *deint = buf->data;
  if (deint->algorithm == VAProcDeinterlacingMotionAdaptive) {
-pipeline_cap->num_forward_references = 1;
-pipeline_cap->num_backward_references = 2;
+pipeline_cap->num_forward_references = 2;
+pipeline_cap->num_backward_references = 1;
  }
  break;
   }

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): st/omx: Fix port format enumeration

2017-03-06 Thread Christian König
Module: Mesa
Branch: master
Commit: 6d95358aacc184b8927ff138e90d5920885365e7
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=6d95358aacc184b8927ff138e90d5920885365e7

Author: Mark Thompson 
Date:   Sun Mar  5 22:10:14 2017 +

st/omx: Fix port format enumeration

From OpenMAX IL section 4.3.5:
"The value of nIndex is the range 0 to N-1, where N is the number of
formats supported by the port.  There is no need for the port to
report N, as the caller can determine N by enumerating all the
formats supported by the port.  Each port shall support at least one
format.  If there are no more formats, OMX_GetParameter returns
OMX_ErrorNoMore (i.e., nIndex is supplied where the value is N or
greater)."

Only one format is supported, so N = 1 and OMX_ErrorNoMore should be
returned if nIndex >= 1.  The previous code here would return the
same format for all values of nIndex, resulting in an infinite loop
when a client attempts to enumerate all formats.

Signed-off-by: Mark Thompson 
Reviewed-by: Christian König 

---

 src/gallium/state_trackers/omx/vid_enc.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/gallium/state_trackers/omx/vid_enc.c 
b/src/gallium/state_trackers/omx/vid_enc.c
index 07f6799..b2970a5 100644
--- a/src/gallium/state_trackers/omx/vid_enc.c
+++ b/src/gallium/state_trackers/omx/vid_enc.c
@@ -473,6 +473,8 @@ static OMX_ERRORTYPE vid_enc_GetParameter(OMX_HANDLETYPE 
handle, OMX_INDEXTYPE i
 
   if (format->nPortIndex > 1)
  return OMX_ErrorBadPortIndex;
+  if (format->nIndex >= 1)
+ return OMX_ErrorNoMore;
 
   port = (omx_base_video_PortType *)priv->ports[format->nPortIndex];
   memcpy(format, &port->sVideoParam, 
sizeof(OMX_VIDEO_PARAM_PORTFORMATTYPE));

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): radv: Use the new L2 writeback flag.

2017-03-06 Thread Bas Nieuwenhuizen
Module: Mesa
Branch: master
Commit: f3dc318464b786c2696e650e7c69984b5453624b
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=f3dc318464b786c2696e650e7c69984b5453624b

Author: Bas Nieuwenhuizen 
Date:   Mon Mar  6 01:34:42 2017 +0100

radv: Use the new L2 writeback flag.

Signed-off-by: Bas Nieuwenhuizen 
Reviewed-by: Dave Airlie 

---

 src/amd/vulkan/radv_cmd_buffer.c | 8 
 src/amd/vulkan/radv_meta_clear.c | 4 ++--
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c
index 16c3f78..3ff5250 100644
--- a/src/amd/vulkan/radv_cmd_buffer.c
+++ b/src/amd/vulkan/radv_cmd_buffer.c
@@ -1461,7 +1461,7 @@ static void radv_src_access_flush(struct radv_cmd_buffer 
*cmd_buffer,
for_each_bit(b, src_flags) {
switch ((VkAccessFlagBits)(1 << b)) {
case VK_ACCESS_SHADER_WRITE_BIT:
-   flush_bits |= RADV_CMD_FLAG_INV_GLOBAL_L2;
+   flush_bits |= RADV_CMD_FLAG_WRITEBACK_GLOBAL_L2;
break;
case VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT:
flush_bits |= RADV_CMD_FLAG_FLUSH_AND_INV_CB;
@@ -2713,7 +2713,7 @@ static void radv_initialize_htile(struct radv_cmd_buffer 
*cmd_buffer,
cmd_buffer->state.flush_bits |= RADV_CMD_FLAG_FLUSH_AND_INV_DB_META |
RADV_CMD_FLAG_CS_PARTIAL_FLUSH |
RADV_CMD_FLAG_INV_VMEM_L1 |
-   RADV_CMD_FLAG_INV_GLOBAL_L2;
+   RADV_CMD_FLAG_WRITEBACK_GLOBAL_L2;
 }
 
 static void radv_handle_depth_image_transition(struct radv_cmd_buffer 
*cmd_buffer,
@@ -2762,7 +2762,7 @@ void radv_initialise_cmask(struct radv_cmd_buffer 
*cmd_buffer,
cmd_buffer->state.flush_bits |= RADV_CMD_FLAG_FLUSH_AND_INV_CB_META |
RADV_CMD_FLAG_CS_PARTIAL_FLUSH |
RADV_CMD_FLAG_INV_VMEM_L1 |
-   RADV_CMD_FLAG_INV_GLOBAL_L2;
+   RADV_CMD_FLAG_WRITEBACK_GLOBAL_L2;
 }
 
 static void radv_handle_cmask_image_transition(struct radv_cmd_buffer 
*cmd_buffer,
@@ -2799,7 +2799,7 @@ void radv_initialize_dcc(struct radv_cmd_buffer 
*cmd_buffer,
RADV_CMD_FLAG_FLUSH_AND_INV_CB_META |
RADV_CMD_FLAG_CS_PARTIAL_FLUSH |
RADV_CMD_FLAG_INV_VMEM_L1 |
-   RADV_CMD_FLAG_INV_GLOBAL_L2;
+   RADV_CMD_FLAG_WRITEBACK_GLOBAL_L2;
 }
 
 static void radv_handle_dcc_image_transition(struct radv_cmd_buffer 
*cmd_buffer,
diff --git a/src/amd/vulkan/radv_meta_clear.c b/src/amd/vulkan/radv_meta_clear.c
index c4f728b..6770099 100644
--- a/src/amd/vulkan/radv_meta_clear.c
+++ b/src/amd/vulkan/radv_meta_clear.c
@@ -907,11 +907,11 @@ emit_fast_color_clear(struct radv_cmd_buffer *cmd_buffer,
if (post_flush)
*post_flush |= RADV_CMD_FLAG_CS_PARTIAL_FLUSH |
   RADV_CMD_FLAG_INV_VMEM_L1 |
-  RADV_CMD_FLAG_INV_GLOBAL_L2;
+  RADV_CMD_FLAG_WRITEBACK_GLOBAL_L2;
else
cmd_buffer->state.flush_bits |= RADV_CMD_FLAG_CS_PARTIAL_FLUSH |
RADV_CMD_FLAG_INV_VMEM_L1 |
-   RADV_CMD_FLAG_INV_GLOBAL_L2;
+   
RADV_CMD_FLAG_WRITEBACK_GLOBAL_L2;
 
radv_set_color_clear_regs(cmd_buffer, iview->image, subpass_att, 
clear_color);
 

___
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-commit


Mesa (master): radv: Add L2 writeback.

2017-03-06 Thread Bas Nieuwenhuizen
Module: Mesa
Branch: master
Commit: 66e12d4073ddf4143dd093a9cc50e9efbebc4048
URL:
http://cgit.freedesktop.org/mesa/mesa/commit/?id=66e12d4073ddf4143dd093a9cc50e9efbebc4048

Author: Bas Nieuwenhuizen 
Date:   Mon Mar  6 01:28:53 2017 +0100

radv: Add L2 writeback.

Signed-off-by: Bas Nieuwenhuizen 
Reviewed-by: Dave Airlie 

---

 src/amd/vulkan/radv_private.h  | 18 ++-
 src/amd/vulkan/si_cmd_buffer.c | 70 ++
 2 files changed, 54 insertions(+), 34 deletions(-)

diff --git a/src/amd/vulkan/radv_private.h b/src/amd/vulkan/radv_private.h
index 0e629fc..30201a6 100644
--- a/src/amd/vulkan/radv_private.h
+++ b/src/amd/vulkan/radv_private.h
@@ -587,16 +587,18 @@ enum radv_cmd_flush_bits {
RADV_CMD_FLAG_INV_VMEM_L1 = 1 << 2,
/* Used by everything except CB/DB, can be bypassed (SLC=1). Other 
names: TC L2 */
RADV_CMD_FLAG_INV_GLOBAL_L2 = 1 << 3,
+   /* Same as above, but only writes back and doesn't invalidate */
+   RADV_CMD_FLAG_WRITEBACK_GLOBAL_L2 = 1 << 4,
/* Framebuffer caches */
-   RADV_CMD_FLAG_FLUSH_AND_INV_CB_META = 1 << 4,
-   RADV_CMD_FLAG_FLUSH_AND_INV_DB_META = 1 << 5,
-   RADV_CMD_FLAG_FLUSH_AND_INV_DB = 1 << 6,
-   RADV_CMD_FLAG_FLUSH_AND_INV_CB = 1 << 7,
+   RADV_CMD_FLAG_FLUSH_AND_INV_CB_META = 1 << 5,
+   RADV_CMD_FLAG_FLUSH_AND_INV_DB_META = 1 << 6,
+   RADV_CMD_FLAG_FLUSH_AND_INV_DB = 1 << 7,
+   RADV_CMD_FLAG_FLUSH_AND_INV_CB = 1 << 8,
/* Engine synchronization. */
-   RADV_CMD_FLAG_VS_PARTIAL_FLUSH = 1 << 8,
-   RADV_CMD_FLAG_PS_PARTIAL_FLUSH = 1 << 9,
-   RADV_CMD_FLAG_CS_PARTIAL_FLUSH = 1 << 10,
-   RADV_CMD_FLAG_VGT_FLUSH= 1 << 11,
+   RADV_CMD_FLAG_VS_PARTIAL_FLUSH = 1 << 9,
+   RADV_CMD_FLAG_PS_PARTIAL_FLUSH = 1 << 10,
+   RADV_CMD_FLAG_CS_PARTIAL_FLUSH = 1 << 11,
+   RADV_CMD_FLAG_VGT_FLUSH= 1 << 12,
 
RADV_CMD_FLUSH_AND_INV_FRAMEBUFFER = (RADV_CMD_FLAG_FLUSH_AND_INV_CB |
  
RADV_CMD_FLAG_FLUSH_AND_INV_CB_META |
diff --git a/src/amd/vulkan/si_cmd_buffer.c b/src/amd/vulkan/si_cmd_buffer.c
index 4709ef6..5d35287 100644
--- a/src/amd/vulkan/si_cmd_buffer.c
+++ b/src/amd/vulkan/si_cmd_buffer.c
@@ -689,6 +689,30 @@ si_get_ia_multi_vgt_param(struct radv_cmd_buffer 
*cmd_buffer,
 
 }
 
+static void
+si_emit_acquire_mem(struct radeon_winsys_cs *cs,
+bool is_mec,
+unsigned cp_coher_cntl)
+{
+   if (is_mec) {
+   radeon_emit(cs, PKT3(PKT3_ACQUIRE_MEM, 5, 0) |
+   PKT3_SHADER_TYPE_S(1));
+   radeon_emit(cs, cp_coher_cntl);   /* CP_COHER_CNTL */
+   radeon_emit(cs, 0x);  /* CP_COHER_SIZE */
+   radeon_emit(cs, 0xff);/* CP_COHER_SIZE_HI */
+   radeon_emit(cs, 0);   /* CP_COHER_BASE */
+   radeon_emit(cs, 0);   /* CP_COHER_BASE_HI */
+   radeon_emit(cs, 0x000A);  /* POLL_INTERVAL */
+   } else {
+   /* ACQUIRE_MEM is only required on a compute ring. */
+   radeon_emit(cs, PKT3(PKT3_SURFACE_SYNC, 3, 0));
+   radeon_emit(cs, cp_coher_cntl);   /* CP_COHER_CNTL */
+   radeon_emit(cs, 0x);  /* CP_COHER_SIZE */
+   radeon_emit(cs, 0);   /* CP_COHER_BASE */
+   radeon_emit(cs, 0x000A);  /* POLL_INTERVAL */
+   }
+}
+
 void
 si_cs_emit_cache_flush(struct radeon_winsys_cs *cs,
enum chip_class chip_class,
@@ -701,13 +725,6 @@ si_cs_emit_cache_flush(struct radeon_winsys_cs *cs,
cp_coher_cntl |= S_0085F0_SH_ICACHE_ACTION_ENA(1);
if (flush_bits & RADV_CMD_FLAG_INV_SMEM_L1)
cp_coher_cntl |= S_0085F0_SH_KCACHE_ACTION_ENA(1);
-   if (flush_bits & RADV_CMD_FLAG_INV_VMEM_L1)
-   cp_coher_cntl |= S_0085F0_TCL1_ACTION_ENA(1);
-   if (flush_bits & RADV_CMD_FLAG_INV_GLOBAL_L2) {
-   cp_coher_cntl |= S_0085F0_TC_ACTION_ENA(1);
-   if (chip_class >= VI)
-   cp_coher_cntl |= S_0301F0_TC_WB_ACTION_ENA(1);
-   }
 
if (flush_bits & RADV_CMD_FLAG_FLUSH_AND_INV_CB) {
cp_coher_cntl |= S_0085F0_CB_ACTION_ENA(1) |
@@ -778,28 +795,29 @@ si_cs_emit_cache_flush(struct radeon_winsys_cs *cs,
radeon_emit(cs, 0);
}
 
+   if ((flush_bits & RADV_CMD_FLAG_INV_GLOBAL_L2) ||
+   (chip_class <= CIK && (flush_bits & 
RADV_CMD_FLAG_WRITEBACK_GLOBAL_L2))) {
+   cp_coher_cntl |= S_0085F0_TC_ACTION_ENA(1);
+   if (chip_class >= VI)
+   cp_coher_cntl |= S_0301F0_TC_WB_ACTION_ENA(1);
+   } else  if(flush_bits & RADV_CMD_FLAG_WRITEBACK_GLOBAL_L2) {
+   cp_coher_cntl |= S_0301F0_TC_WB_ACTION_ENA(1) |
+S_0301F0_TC_NC_AC