mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 06:40:11 +01:00
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:
parent
9bd89af1bc
commit
3dba3458e9
3 changed files with 28 additions and 4 deletions
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue