kmsdrm: Added a hint to specify device index.

Fixes #2811.
This commit is contained in:
Ryan C. Gordon 2022-07-26 00:19:16 -04:00
parent 20a76b0e3e
commit 5d85c7d300
No known key found for this signature in database
GPG Key ID: FA148B892AB48044
2 changed files with 20 additions and 0 deletions

View File

@ -2140,6 +2140,20 @@ extern "C" {
*/
#define SDL_HINT_AUDIODRIVER "SDL_AUDIODRIVER"
/**
* \brief A variable that decides what KMSDRM device to use.
*
* Internally, SDL might open something like "/dev/dri/cardNN" to
* access KMSDRM functionality, where "NN" is a device index number.
*
* SDL makes a guess at the best index to use (usually zero), but the
* app or user can set this hint to a number between 0 and 99 to
* force selection.
*
* This hint is available since SDL 2.24.0.
*/
#define SDL_HINT_KMSDRM_DEVICE_INDEX "SDL_KMSDRM_DEVICE_INDEX"
/**
* \brief An enumeration of hint priorities

View File

@ -218,11 +218,17 @@ KMSDRM_CreateDevice(void)
SDL_VideoDevice *device;
SDL_VideoData *viddata;
int devindex = 0; /* !!! FIXME: let app/user specify this. */
const char *hint;
if (!KMSDRM_Available()) {
return NULL;
}
hint = SDL_GetHint(SDL_HINT_KMSDRM_DEVICE_INDEX);
if (hint) {
devindex = SDL_atoi(hint);
}
if (!devindex || (devindex > 99)) {
devindex = get_driindex();
}