mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 13:58:04 +02:00
freedreno: reduce the upper bound of IB size by one
Going beyond 0x100000 results in hangs, however I found that the last 0x100000 packet just doesn't get executed. Thus the real limit is 0x0FFFFF. At least this is true for a6xx. This could be tested by appending nops to the cmdstream and placing e.g. CP_INTERRUPT at the end, at any position other than being 0x100000 packet it results in a hang. Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10786>
This commit is contained in:
parent
f38fd3c577
commit
8d0c76b143
1 changed files with 2 additions and 3 deletions
|
|
@ -173,9 +173,8 @@ fd_ringbuffer_grow(struct fd_ringbuffer *ring, uint32_t ndwords)
|
|||
{
|
||||
assert(ring->funcs->grow); /* unsupported on kgsl */
|
||||
|
||||
/* there is an upper bound on IB size, which appears to be 0x100000 */
|
||||
if (ring->size < 0x100000)
|
||||
ring->size *= 2;
|
||||
/* there is an upper bound on IB size, which appears to be 0x0fffff */
|
||||
ring->size = MIN2(ring->size << 1, 0x0fffff);
|
||||
|
||||
ring->funcs->grow(ring, ring->size);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue