From f653e5c1d6979812ade6323b4a40933ac1b329ed Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Wed, 10 Jul 2019 15:18:53 +0200 Subject: [PATCH] radv: remove an extra memcpy when exporting clip/cull distances Cleanup. Signed-off-by: Samuel Pitoiset Reviewed-by: Bas Nieuwenhuizen --- src/amd/vulkan/radv_nir_to_llvm.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/amd/vulkan/radv_nir_to_llvm.c b/src/amd/vulkan/radv_nir_to_llvm.c index bd14f9fff1b..c0ff3210bd2 100644 --- a/src/amd/vulkan/radv_nir_to_llvm.c +++ b/src/amd/vulkan/radv_nir_to_llvm.c @@ -2717,9 +2717,8 @@ handle_vs_outputs_post(struct radv_shader_context *ctx, struct radv_vs_output_info *outinfo) { uint32_t param_count = 0; - unsigned target; unsigned pos_idx, num_pos_exports = 0; - struct ac_export_args args, pos_args[4] = {}; + struct ac_export_args pos_args[4] = {}; LLVMValueRef psize_value = NULL, layer_value = NULL, viewport_index_value = NULL; int i; @@ -2765,10 +2764,10 @@ handle_vs_outputs_post(struct radv_shader_context *ctx, for (i = length; i < 4; i++) slots[i] = LLVMGetUndef(ctx->ac.f32); - target = V_008DFC_SQ_EXP_POS + 2 + (location - VARYING_SLOT_CLIP_DIST0); - si_llvm_init_export_args(ctx, &slots[0], 0xf, target, &args); - memcpy(&pos_args[target - V_008DFC_SQ_EXP_POS], - &args, sizeof(args)); + unsigned index = 2 + (location - VARYING_SLOT_CLIP_DIST0); + si_llvm_init_export_args(ctx, &slots[0], 0xf, + V_008DFC_SQ_EXP_POS + index, + &pos_args[index]); if (export_clip_dists) { /* Export the clip/cull distances values to the next stage. */ -- 2.30.2