drm: Don't print warning if cursor stride isn't right
gbm_bo_create_from_egl_image() should catch this based on the GBM_BO_USE_CURSOR_64X64 flag. It currently doesn't so we end up with a cursor buffer with invalid stride.
This commit is contained in:
@@ -229,16 +229,18 @@ drm_output_set_cursor(struct weston_output *output_base,
|
|||||||
c->base.display,
|
c->base.display,
|
||||||
eid->sprite->image, 64, 64,
|
eid->sprite->image, 64, 64,
|
||||||
GBM_BO_USE_CURSOR_64X64);
|
GBM_BO_USE_CURSOR_64X64);
|
||||||
|
/* Not suitable for hw cursor, fall back */
|
||||||
|
if (bo == NULL)
|
||||||
|
goto out;
|
||||||
|
|
||||||
handle = gbm_bo_get_handle(bo).s32;
|
handle = gbm_bo_get_handle(bo).s32;
|
||||||
stride = gbm_bo_get_pitch(bo);
|
stride = gbm_bo_get_pitch(bo);
|
||||||
|
|
||||||
gbm_bo_destroy(bo);
|
gbm_bo_destroy(bo);
|
||||||
|
|
||||||
if (stride != 64 * 4) {
|
/* gbm_bo_create_from_egl_image() didn't always validate the usage
|
||||||
fprintf(stderr, "info: cursor stride is != 64\n");
|
* flags, and in that case we might end up with a bad stride. */
|
||||||
|
if (stride != 64 * 4)
|
||||||
goto out;
|
goto out;
|
||||||
}
|
|
||||||
|
|
||||||
ret = drmModeSetCursor(c->drm.fd, output->crtc_id, handle, 64, 64);
|
ret = drmModeSetCursor(c->drm.fd, output->crtc_id, handle, 64, 64);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
|
|||||||
Reference in New Issue
Block a user