radeonsi: Enable loading into CE RAM.
We need to enable a bit in the CONTEXT_CONTROL packet for the loads to work. v2: Style issues. Signed-off-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
This commit is contained in:
parent
f45f54e14a
commit
4d13c7c879
|
@ -185,6 +185,14 @@ static void si_reinitialize_ce_ram(struct si_context *sctx,
|
|||
desc->ce_ram_dirty = false;
|
||||
}
|
||||
|
||||
void si_ce_enable_loads(struct radeon_winsys_cs *ib)
|
||||
{
|
||||
radeon_emit(ib, PKT3(PKT3_CONTEXT_CONTROL, 1, 0));
|
||||
radeon_emit(ib, CONTEXT_CONTROL_LOAD_ENABLE(1) |
|
||||
CONTEXT_CONTROL_LOAD_CE_RAM(1));
|
||||
radeon_emit(ib, CONTEXT_CONTROL_SHADOW_ENABLE(1));
|
||||
}
|
||||
|
||||
static bool si_upload_descriptors(struct si_context *sctx,
|
||||
struct si_descriptors *desc,
|
||||
struct r600_atom * atom)
|
||||
|
|
|
@ -202,6 +202,11 @@ void si_begin_new_cs(struct si_context *ctx)
|
|||
if (ctx->init_config_gs_rings)
|
||||
si_pm4_emit(ctx, ctx->init_config_gs_rings);
|
||||
|
||||
if (ctx->ce_preamble_ib)
|
||||
si_ce_enable_loads(ctx->ce_preamble_ib);
|
||||
else if (ctx->ce_ib)
|
||||
si_ce_enable_loads(ctx->ce_ib);
|
||||
|
||||
ctx->framebuffer.dirty_cbufs = (1 << 8) - 1;
|
||||
ctx->framebuffer.dirty_zsbuf = true;
|
||||
si_mark_atom_dirty(ctx, &ctx->framebuffer.atom);
|
||||
|
|
|
@ -251,6 +251,7 @@ struct si_buffer_resources {
|
|||
} while(0)
|
||||
|
||||
/* si_descriptors.c */
|
||||
void si_ce_enable_loads(struct radeon_winsys_cs *ib);
|
||||
void si_set_ring_buffer(struct pipe_context *ctx, uint shader, uint slot,
|
||||
struct pipe_resource *buffer,
|
||||
unsigned stride, unsigned num_records,
|
||||
|
|
Loading…
Reference in New Issue