radeonsi: make si_llvm_export_vs externally available
authorNicolai Hähnle <nicolai.haehnle@amd.com>
Thu, 16 Nov 2017 15:49:06 +0000 (16:49 +0100)
committerMarek Olšák <marek.olsak@amd.com>
Wed, 3 Jul 2019 19:51:12 +0000 (15:51 -0400)
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
src/gallium/drivers/radeonsi/si_shader.c
src/gallium/drivers/radeonsi/si_shader_internal.h

index 0489399b8272063f58cccb145b014bb062afc385..1189f776debf3a16703319ad76770633cc3b3d27 100644 (file)
@@ -47,14 +47,6 @@ static const char scratch_rsrc_dword0_symbol[] =
 static const char scratch_rsrc_dword1_symbol[] =
        "SCRATCH_RSRC_DWORD1";
 
-struct si_shader_output_values
-{
-       LLVMValueRef values[4];
-       unsigned semantic_name;
-       unsigned semantic_index;
-       ubyte vertex_stream[4];
-};
-
 static void si_init_shader_ctx(struct si_shader_context *ctx,
                               struct si_screen *sscreen,
                               struct ac_llvm_compiler *compiler);
@@ -2870,10 +2862,12 @@ static void si_vertex_color_clamping(struct si_shader_context *ctx,
        }
 }
 
-/* Generate export instructions for hardware VS shader stage */
-static void si_llvm_export_vs(struct si_shader_context *ctx,
-                             struct si_shader_output_values *outputs,
-                             unsigned noutput)
+/* Generate export instructions for hardware VS shader stage or NGG GS stage
+ * (position and parameter data only).
+ */
+void si_llvm_export_vs(struct si_shader_context *ctx,
+                      struct si_shader_output_values *outputs,
+                      unsigned noutput)
 {
        struct si_shader *shader = ctx->shader;
        struct ac_export_args pos_args[4] = {};
index 4a7b059de9a5b9ab1a0a2669037702c9fb16c25f..e7689520968c737a927a1d25a15e5602a4f8b939 100644 (file)
@@ -60,6 +60,13 @@ struct si_function_info {
        unsigned num_params;
 };
 
+struct si_shader_output_values {
+       LLVMValueRef values[4];
+       unsigned semantic_name;
+       unsigned semantic_index;
+       ubyte vertex_stream[4];
+};
+
 struct si_shader_context {
        struct lp_build_tgsi_context bld_base;
        struct gallivm_state gallivm;
@@ -339,6 +346,10 @@ void si_declare_compute_memory(struct si_shader_context *ctx);
 void si_tgsi_declare_compute_memory(struct si_shader_context *ctx,
                                    const struct tgsi_full_declaration *decl);
 
+void si_llvm_export_vs(struct si_shader_context *ctx,
+                      struct si_shader_output_values *outputs,
+                      unsigned noutput);
+
 void si_llvm_load_input_vs(
        struct si_shader_context *ctx,
        unsigned input_index,