mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-25 02:10:11 +01:00
radeonsi/gfx9: fix a hang with an empty first IB
This packet causes the no-op IB detection to fail, so the IB is always submitted. Also fix the no-op IB detection by moving the begin call. Cc: 18.0 <mesa-stable@lists.freedesktop.org> Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
This commit is contained in:
parent
d28c246501
commit
d15fb766aa
1 changed files with 4 additions and 3 deletions
|
|
@ -474,9 +474,6 @@ static struct pipe_context *si_create_context(struct pipe_screen *screen,
|
|||
|
||||
sctx->sample_mask.sample_mask = 0xffff;
|
||||
|
||||
/* these must be last */
|
||||
si_begin_new_gfx_cs(sctx);
|
||||
|
||||
if (sctx->chip_class >= GFX9) {
|
||||
sctx->wait_mem_scratch = (struct r600_resource*)
|
||||
pipe_buffer_create(screen, 0, PIPE_USAGE_DEFAULT, 4);
|
||||
|
|
@ -492,6 +489,8 @@ static struct pipe_context *si_create_context(struct pipe_screen *screen,
|
|||
radeon_emit(cs, sctx->wait_mem_scratch->gpu_address);
|
||||
radeon_emit(cs, sctx->wait_mem_scratch->gpu_address >> 32);
|
||||
radeon_emit(cs, sctx->wait_mem_number);
|
||||
radeon_add_to_buffer_list(sctx, cs, sctx->wait_mem_scratch,
|
||||
RADEON_USAGE_WRITE, RADEON_PRIO_FENCE);
|
||||
}
|
||||
|
||||
/* CIK cannot unbind a constant buffer (S_BUFFER_LOAD doesn't skip loads
|
||||
|
|
@ -564,6 +563,8 @@ static struct pipe_context *si_create_context(struct pipe_screen *screen,
|
|||
util_dynarray_init(&sctx->resident_img_needs_color_decompress, NULL);
|
||||
util_dynarray_init(&sctx->resident_tex_needs_depth_decompress, NULL);
|
||||
|
||||
/* this must be last */
|
||||
si_begin_new_gfx_cs(sctx);
|
||||
return &sctx->b;
|
||||
fail:
|
||||
fprintf(stderr, "radeonsi: Failed to create a context.\n");
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue