aco: remove radv specific streamout info

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16342>
This commit is contained in:
Dave Airlie 2022-05-05 12:17:15 +10:00 committed by Marge Bot
parent 9bd89af1bc
commit 3dba3458e9
3 changed files with 28 additions and 4 deletions

View file

@ -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;

View file

@ -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;
};

View file

@ -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