Use drmModeAddFB() if drmModeAddFB2WithModifiers() fails

Fixes https://github.com/libsdl-org/SDL/issues/10276

(cherry picked from commit 8e99ec34bb)
This commit is contained in:
Sam Lantinga
2024-08-15 11:51:46 -07:00
parent dd6c663918
commit b360214950

View File

@@ -380,15 +380,9 @@ KMSDRM_FBInfo *KMSDRM_FBFromBO(_THIS, struct gbm_bo *bo)
ret = KMSDRM_drmModeAddFB2WithModifiers(viddata->drm_fd, w, h, format, handles, strides, offsets, modifiers, &fb_info->fb_id, flags); ret = KMSDRM_drmModeAddFB2WithModifiers(viddata->drm_fd, w, h, format, handles, strides, offsets, modifiers, &fb_info->fb_id, flags);
if (ret) { if (ret) {
handles[0] = KMSDRM_gbm_bo_get_handle(bo).u32;
strides[0] = KMSDRM_gbm_bo_get_stride(bo); strides[0] = KMSDRM_gbm_bo_get_stride(bo);
offsets[0] = 0; handles[0] = KMSDRM_gbm_bo_get_handle(bo).u32;
for (int i = 1; i<4; i++) { ret = KMSDRM_drmModeAddFB(viddata->drm_fd, w, h, 24, 32, strides[0], handles[0], &fb_info->fb_id);
handles[i] = 0;
strides[i] = 0;
offsets[i] = 0;
}
ret = KMSDRM_drmModeAddFB2(viddata->drm_fd, w, h, format, handles, strides, offsets, &fb_info->fb_id, 0);
} }
if (ret) { if (ret) {