modesetting: resubmit dirty rects on EINVAL (v2)
This error code can mean we're submitting more rects at once than the driver can handle. If that happens, resubmit one at a time. v2: Make the rect submit loop more error-proof (Walter Harms) Signed-off-by: Adam Jackson <ajax@redhat.com> Reviewed-by: Michael Thayer <michael.thayer@oracle.com>
This commit is contained in:
parent
8d3a368d89
commit
4b311d23e8
@ -515,6 +515,15 @@ dispatch_dirty_region(ScrnInfoPtr scrn,
|
||||
|
||||
/* TODO query connector property to see if this is needed */
|
||||
ret = drmModeDirtyFB(ms->fd, fb_id, clip, num_cliprects);
|
||||
|
||||
/* if we're swamping it with work, try one at a time */
|
||||
if (ret == -EINVAL) {
|
||||
for (i = 0; i < num_cliprects; i++) {
|
||||
if ((ret = drmModeDirtyFB(ms->fd, fb_id, &clip[i], 1)) < 0)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
free(clip);
|
||||
DamageEmpty(damage);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user