Mesa (master): amd/common: document PREDICATION OP 3 as 64-bit bool.
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.
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.
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.
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
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
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.
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.
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.
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()
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
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()
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()
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
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()
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 ()
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
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()
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()
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
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()
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()
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()
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()
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()
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 ()
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
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
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
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.
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.
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.
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.
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()
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
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
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
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
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()
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
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
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
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
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
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
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
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
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
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
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
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.
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.
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