mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 11:18:08 +02:00
radv/winsys: fix padding command stream for SI
We were adding pad to size after creating the object, so we could submit a CS bigger than the bo created for it. Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
a81e99f50a
commit
d4b079e708
1 changed files with 6 additions and 4 deletions
|
|
@ -841,7 +841,7 @@ static int radv_amdgpu_winsys_cs_submit_sysmem(struct radeon_winsys_ctx *_ctx,
|
||||||
uint32_t *ptr;
|
uint32_t *ptr;
|
||||||
unsigned cnt = 0;
|
unsigned cnt = 0;
|
||||||
unsigned size = 0;
|
unsigned size = 0;
|
||||||
|
unsigned pad_words = 0;
|
||||||
if (preamble_cs)
|
if (preamble_cs)
|
||||||
size += preamble_cs->cdw;
|
size += preamble_cs->cdw;
|
||||||
|
|
||||||
|
|
@ -850,6 +850,10 @@ static int radv_amdgpu_winsys_cs_submit_sysmem(struct radeon_winsys_ctx *_ctx,
|
||||||
++cnt;
|
++cnt;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
while(!size || (size & 7)) {
|
||||||
|
size++;
|
||||||
|
pad_words++;
|
||||||
|
}
|
||||||
assert(cnt);
|
assert(cnt);
|
||||||
|
|
||||||
bo = ws->buffer_create(ws, 4 * size, 4096, RADEON_DOMAIN_GTT, RADEON_FLAG_CPU_ACCESS);
|
bo = ws->buffer_create(ws, 4 * size, 4096, RADEON_DOMAIN_GTT, RADEON_FLAG_CPU_ACCESS);
|
||||||
|
|
@ -867,10 +871,8 @@ static int radv_amdgpu_winsys_cs_submit_sysmem(struct radeon_winsys_ctx *_ctx,
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
while(!size || (size & 7)) {
|
for (unsigned j = 0; j < pad_words; ++j)
|
||||||
*ptr++ = pad_word;
|
*ptr++ = pad_word;
|
||||||
++size;
|
|
||||||
}
|
|
||||||
|
|
||||||
memset(&request, 0, sizeof(request));
|
memset(&request, 0, sizeof(request));
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue