Mesa (main): radeonsi: make si_llvm_emit_clipvertex non-static
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue Nov 16 02:41:11 UTC 2021
Module: Mesa
Branch: main
Commit: 42dbfd7206b5d4b0dbd4cac4016167790ca8a45c
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=42dbfd7206b5d4b0dbd4cac4016167790ca8a45c
Author: Marek Olšák <marek.olsak at amd.com>
Date: Sun Nov 7 16:30:19 2021 -0500
radeonsi: make si_llvm_emit_clipvertex non-static
it will be used in culling code
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer at amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13700>
---
src/gallium/drivers/radeonsi/si_shader_internal.h | 2 ++
src/gallium/drivers/radeonsi/si_shader_llvm_vs.c | 10 +++++-----
2 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/src/gallium/drivers/radeonsi/si_shader_internal.h b/src/gallium/drivers/radeonsi/si_shader_internal.h
index b99ded02a04..2acdd838bbf 100644
--- a/src/gallium/drivers/radeonsi/si_shader_internal.h
+++ b/src/gallium/drivers/radeonsi/si_shader_internal.h
@@ -259,6 +259,8 @@ void si_llvm_init_ps_callbacks(struct si_shader_context *ctx);
void si_llvm_init_resource_callbacks(struct si_shader_context *ctx);
/* si_shader_llvm_vs.c */
+void si_llvm_clipvertex_to_clipdist(struct si_shader_context *ctx,
+ struct ac_export_args clipdist[2], LLVMValueRef clipvertex[4]);
void si_llvm_streamout_store_output(struct si_shader_context *ctx, LLVMValueRef const *so_buffers,
LLVMValueRef const *so_write_offsets,
struct pipe_stream_output *stream_out,
diff --git a/src/gallium/drivers/radeonsi/si_shader_llvm_vs.c b/src/gallium/drivers/radeonsi/si_shader_llvm_vs.c
index 53cf9864122..d14f8a7780e 100644
--- a/src/gallium/drivers/radeonsi/si_shader_llvm_vs.c
+++ b/src/gallium/drivers/radeonsi/si_shader_llvm_vs.c
@@ -389,8 +389,8 @@ void si_llvm_emit_streamout(struct si_shader_context *ctx, struct si_shader_outp
ac_build_endif(&ctx->ac, 6501);
}
-static void si_llvm_emit_clipvertex(struct si_shader_context *ctx, struct ac_export_args *pos,
- LLVMValueRef *out_elts)
+void si_llvm_clipvertex_to_clipdist(struct si_shader_context *ctx,
+ struct ac_export_args clipdist[2], LLVMValueRef clipvertex[4])
{
unsigned reg_index;
unsigned chan;
@@ -403,7 +403,7 @@ static void si_llvm_emit_clipvertex(struct si_shader_context *ctx, struct ac_exp
~ctx->shader->key.ge.opt.kill_clip_distances;
for (reg_index = 0; reg_index < 2; reg_index++) {
- struct ac_export_args *args = &pos[2 + reg_index];
+ struct ac_export_args *args = &clipdist[reg_index];
if (!(clipdist_mask & BITFIELD_RANGE(reg_index * 4, 4)))
continue;
@@ -420,7 +420,7 @@ static void si_llvm_emit_clipvertex(struct si_shader_context *ctx, struct ac_exp
LLVMConstInt(ctx->ac.i32, ((reg_index * 4 + chan) * 4 + const_chan) * 4, 0);
base_elt = si_buffer_load_const(ctx, const_resource, addr);
args->out[chan] =
- ac_build_fmad(&ctx->ac, base_elt, out_elts[const_chan],
+ ac_build_fmad(&ctx->ac, base_elt, clipvertex[const_chan],
const_chan == 0 ? ctx->ac.f32_0 : args->out[chan]);
}
}
@@ -611,7 +611,7 @@ void si_llvm_build_vs_exports(struct si_shader_context *ctx,
}
break;
case VARYING_SLOT_CLIP_VERTEX:
- si_llvm_emit_clipvertex(ctx, pos_args, outputs[i].values);
+ si_llvm_clipvertex_to_clipdist(ctx, pos_args + 2, outputs[i].values);
break;
}
}
More information about the mesa-commit
mailing list