gbm: plumb an 'implicit' param through device creation
this is always true except in the software fallback Acked-by: Dave Airlie <airlied@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28139>
This commit is contained in:

committed by
Marge Bot

parent
14c44aacff
commit
4742d9bc1a
@@ -287,7 +287,7 @@ dri_open_driver(struct gbm_dri_device *dri)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
dri_screen_create_for_driver(struct gbm_dri_device *dri, char *driver_name)
|
dri_screen_create_for_driver(struct gbm_dri_device *dri, char *driver_name, bool implicit)
|
||||||
{
|
{
|
||||||
bool swrast = driver_name == NULL; /* If it's pure swrast, not just swkms. */
|
bool swrast = driver_name == NULL; /* If it's pure swrast, not just swkms. */
|
||||||
|
|
||||||
@@ -318,7 +318,7 @@ dri_screen_create_for_driver(struct gbm_dri_device *dri, char *driver_name)
|
|||||||
dri->screen = dri->mesa->createNewScreen3(0, swrast ? -1 : dri->base.v0.fd,
|
dri->screen = dri->mesa->createNewScreen3(0, swrast ? -1 : dri->base.v0.fd,
|
||||||
dri->loader_extensions,
|
dri->loader_extensions,
|
||||||
dri->driver_extensions,
|
dri->driver_extensions,
|
||||||
&dri->driver_configs, false, dri);
|
&dri->driver_configs, implicit, dri);
|
||||||
if (dri->screen == NULL)
|
if (dri->screen == NULL)
|
||||||
goto close_driver;
|
goto close_driver;
|
||||||
|
|
||||||
@@ -348,7 +348,7 @@ fail:
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
dri_screen_create(struct gbm_dri_device *dri)
|
dri_screen_create(struct gbm_dri_device *dri, bool implicit)
|
||||||
{
|
{
|
||||||
char *driver_name;
|
char *driver_name;
|
||||||
|
|
||||||
@@ -356,11 +356,11 @@ dri_screen_create(struct gbm_dri_device *dri)
|
|||||||
if (!driver_name)
|
if (!driver_name)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
return dri_screen_create_for_driver(dri, driver_name);
|
return dri_screen_create_for_driver(dri, driver_name, implicit);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
dri_screen_create_sw(struct gbm_dri_device *dri)
|
dri_screen_create_sw(struct gbm_dri_device *dri, bool implicit)
|
||||||
{
|
{
|
||||||
char *driver_name;
|
char *driver_name;
|
||||||
int ret;
|
int ret;
|
||||||
@@ -369,9 +369,9 @@ dri_screen_create_sw(struct gbm_dri_device *dri)
|
|||||||
if (!driver_name)
|
if (!driver_name)
|
||||||
return -errno;
|
return -errno;
|
||||||
|
|
||||||
ret = dri_screen_create_for_driver(dri, driver_name);
|
ret = dri_screen_create_for_driver(dri, driver_name, implicit);
|
||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
ret = dri_screen_create_for_driver(dri, NULL);
|
ret = dri_screen_create_for_driver(dri, NULL, implicit);
|
||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
@@ -1202,11 +1202,11 @@ dri_device_create(int fd, uint32_t gbm_backend_version)
|
|||||||
|
|
||||||
force_sw = debug_get_bool_option("GBM_ALWAYS_SOFTWARE", false);
|
force_sw = debug_get_bool_option("GBM_ALWAYS_SOFTWARE", false);
|
||||||
if (!force_sw) {
|
if (!force_sw) {
|
||||||
ret = dri_screen_create(dri);
|
ret = dri_screen_create(dri, false);
|
||||||
if (ret)
|
if (ret)
|
||||||
ret = dri_screen_create_sw(dri);
|
ret = dri_screen_create_sw(dri, true);
|
||||||
} else {
|
} else {
|
||||||
ret = dri_screen_create_sw(dri);
|
ret = dri_screen_create_sw(dri, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ret)
|
if (ret)
|
||||||
|
Reference in New Issue
Block a user