Author: Sergey Zhuravlevich Date: Tue Nov 20 13:17:37 CET 2018 Check for resources when validating KMSDRM device in check_modesetting. --- SDL2-2.0.9/src/video/kmsdrm/SDL_kmsdrmvideo.c 2018-11-20 12:30:50.575845883 +0100 +++ SDL2-2.0.9/src/video/kmsdrm/SDL_kmsdrmvideo.c 2018-11-20 12:34:14.055833946 +0100 @@ -61,8 +61,14 @@ if (SDL_KMSDRM_LoadSymbols()) { drmModeRes *resources = KMSDRM_drmModeGetResources(drm_fd); if (resources != NULL) { - available = SDL_TRUE; - KMSDRM_drmModeFreeResources(resources); + SDL_LogDebug(SDL_LOG_CATEGORY_VIDEO, "%scard%d connector, encoder and CRTC counts are: %d %d %d", + KMSDRM_DRI_PATH, devindex, + resources->count_connectors, resources->count_encoders, resources->count_crtcs); + + if (resources->count_connectors > 0 && resources->count_encoders > 0 && resources->count_crtcs > 0) { + available = SDL_TRUE; + KMSDRM_drmModeFreeResources(resources); + } } SDL_KMSDRM_UnloadSymbols(); } @@ -358,6 +364,7 @@ ret = SDL_OutOfMemory(); goto cleanup; } + SDL_LogDebug(SDL_LOG_CATEGORY_VIDEO, "Opening device /dev/dri/card%d", vdata->devindex); SDL_snprintf(devname, 16, "/dev/dri/card%d", vdata->devindex); vdata->drm_fd = open(devname, O_RDWR | O_CLOEXEC); SDL_free(devname);