Mesa (main): aco: remove radv specific streamout info
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Wed May 11 19:36:11 UTC 2022
Module: Mesa
Branch: main
Commit: 3dba3458e94ac3ac7b7a7819d0fc87e64875ded2
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3dba3458e94ac3ac7b7a7819d0fc87e64875ded2
Author: Dave Airlie <airlied at redhat.com>
Date: Thu May 5 12:17:15 2022 +1000
aco: remove radv specific streamout info
Reviewed-by: Timur Kristóf <timur.kristof at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16342>
---
src/amd/compiler/aco_instruction_selection.cpp | 4 ++--
src/amd/compiler/aco_shader_info.h | 16 +++++++++++++++-
src/amd/vulkan/radv_aco_shader_info.h | 12 +++++++++++-
3 files changed, 28 insertions(+), 4 deletions(-)
diff --git a/src/amd/compiler/aco_instruction_selection.cpp b/src/amd/compiler/aco_instruction_selection.cpp
index d48aae816e1..186445dc8c1 100644
--- a/src/amd/compiler/aco_instruction_selection.cpp
+++ b/src/amd/compiler/aco_instruction_selection.cpp
@@ -10846,7 +10846,7 @@ create_fs_exports(isel_context* ctx)
static void
emit_stream_output(isel_context* ctx, Temp const* so_buffers, Temp const* so_write_offset,
- const struct radv_stream_output* output)
+ const struct aco_stream_output* output)
{
assert(ctx->stage.hw == HWStage::VS);
@@ -10946,7 +10946,7 @@ emit_streamout(isel_context* ctx, unsigned stream)
}
for (unsigned i = 0; i < ctx->program->info.so.num_outputs; i++) {
- const struct radv_stream_output* output = &ctx->program->info.so.outputs[i];
+ const struct aco_stream_output* output = &ctx->program->info.so.outputs[i];
if (stream != output->stream)
continue;
diff --git a/src/amd/compiler/aco_shader_info.h b/src/amd/compiler/aco_shader_info.h
index 779ae0b5297..61963f370cd 100644
--- a/src/amd/compiler/aco_shader_info.h
+++ b/src/amd/compiler/aco_shader_info.h
@@ -35,6 +35,20 @@
extern "C" {
#endif
+struct aco_stream_output {
+ uint8_t location;
+ uint8_t buffer;
+ uint16_t offset;
+ uint8_t component_mask;
+ uint8_t stream;
+};
+
+struct aco_streamout_info {
+ uint16_t num_outputs;
+ struct aco_stream_output outputs[MAX_SO_OUTPUTS];
+ uint16_t strides[MAX_SO_BUFFERS];
+};
+
struct aco_shader_info {
bool has_ngg_culling;
bool has_ngg_early_prim_export;
@@ -74,7 +88,7 @@ struct aco_shader_info {
struct {
struct radv_vs_output_info outinfo;
} ms;
- struct radv_streamout_info so;
+ struct aco_streamout_info so;
uint32_t gfx9_gs_ring_lds_size;
};
diff --git a/src/amd/vulkan/radv_aco_shader_info.h b/src/amd/vulkan/radv_aco_shader_info.h
index 2a7da8651f0..54bdeebc2e1 100644
--- a/src/amd/vulkan/radv_aco_shader_info.h
+++ b/src/amd/vulkan/radv_aco_shader_info.h
@@ -34,6 +34,16 @@
#define ASSIGN_FIELD(x) aco_info->x = radv->x
#define ASSIGN_FIELD_CP(x) memcpy(&aco_info->x, &radv->x, sizeof(radv->x))
+static inline void
+radv_aco_convert_shader_so_info(struct aco_shader_info *aco_info,
+ const struct radv_shader_info *radv)
+{
+ ASSIGN_FIELD(so.num_outputs);
+ ASSIGN_FIELD_CP(so.outputs);
+ ASSIGN_FIELD_CP(so.strides);
+ /* enabled_stream_buffers_mask unused */
+}
+
static inline void
radv_aco_convert_shader_info(struct aco_shader_info *aco_info,
const struct radv_shader_info *radv)
@@ -62,7 +72,7 @@ radv_aco_convert_shader_info(struct aco_shader_info *aco_info,
ASSIGN_FIELD(ps.spi_ps_input);
ASSIGN_FIELD(cs.subgroup_size);
ASSIGN_FIELD(ms.outinfo);
- ASSIGN_FIELD(so);
+ radv_aco_convert_shader_so_info(aco_info, radv);
aco_info->gfx9_gs_ring_lds_size = radv->gs_ring_info.lds_size;
}
#undef ASSIGN_FIELD
More information about the mesa-commit
mailing list