Stefan Dirsch
f72bdc5d3e
0002-glx-fix-some-indentation.patch, 0003-glx-add-an-implicit-param-to-createScreen.patch, 0004-glx-pass-implicit-load-param-through-allocation.patch, 0005-dri-plumb-a-implicit-param-through-createNewScreen-i.patch, 0006-gbm-plumb-an-implicit-param-through-device-creation.patch, 0007-frontends-dri-plumb-an-implicit-param-through-screen.patch, 0008-pipe-loader-plumb-a-flag-for-implicit-driver-load-th.patch, 0009-zink-don-t-print-error-messages-when-failing-an-impl.patch * get rid of error message: 'MESA: error: ZINK: vkEnumeratePhysicalDevices failed (VK_ERROR_INITIALIZATION_FAILED)' [gitlab mesa issue #10802] OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/Mesa?expand=0&rev=1273
83 lines
2.9 KiB
Diff
83 lines
2.9 KiB
Diff
From 664e73e7120fbf5ad62da643a7e4aff525d38d94 Mon Sep 17 00:00:00 2001
|
|
From: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
|
|
Date: Tue, 12 Mar 2024 10:01:29 -0400
|
|
Subject: [PATCH 6/9] gbm: plumb an 'implicit' param through device creation
|
|
|
|
this is always true except in the software fallback
|
|
---
|
|
src/gbm/backends/dri/gbm_dri.c | 20 ++++++++++----------
|
|
1 file changed, 10 insertions(+), 10 deletions(-)
|
|
|
|
Index: mesa-24.0.3/src/gbm/backends/dri/gbm_dri.c
|
|
===================================================================
|
|
--- mesa-24.0.3.orig/src/gbm/backends/dri/gbm_dri.c
|
|
+++ mesa-24.0.3/src/gbm/backends/dri/gbm_dri.c
|
|
@@ -287,7 +287,7 @@ dri_open_driver(struct gbm_dri_device *d
|
|
}
|
|
|
|
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. */
|
|
|
|
@@ -318,7 +318,7 @@ dri_screen_create_for_driver(struct gbm_
|
|
dri->screen = dri->mesa->createNewScreen3(0, swrast ? -1 : dri->base.v0.fd,
|
|
dri->loader_extensions,
|
|
dri->driver_extensions,
|
|
- &dri->driver_configs, false, dri);
|
|
+ &dri->driver_configs, implicit, dri);
|
|
if (dri->screen == NULL)
|
|
goto close_driver;
|
|
|
|
@@ -348,7 +348,7 @@ fail:
|
|
}
|
|
|
|
static int
|
|
-dri_screen_create(struct gbm_dri_device *dri)
|
|
+dri_screen_create(struct gbm_dri_device *dri, bool implicit)
|
|
{
|
|
char *driver_name;
|
|
|
|
@@ -356,11 +356,11 @@ dri_screen_create(struct gbm_dri_device
|
|
if (!driver_name)
|
|
return -1;
|
|
|
|
- return dri_screen_create_for_driver(dri, driver_name);
|
|
+ return dri_screen_create_for_driver(dri, driver_name, implicit);
|
|
}
|
|
|
|
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;
|
|
int ret;
|
|
@@ -369,9 +369,9 @@ dri_screen_create_sw(struct gbm_dri_devi
|
|
if (!driver_name)
|
|
return -errno;
|
|
|
|
- ret = dri_screen_create_for_driver(dri, driver_name);
|
|
+ ret = dri_screen_create_for_driver(dri, driver_name, implicit);
|
|
if (ret != 0)
|
|
- ret = dri_screen_create_for_driver(dri, NULL);
|
|
+ ret = dri_screen_create_for_driver(dri, NULL, implicit);
|
|
if (ret != 0)
|
|
return ret;
|
|
|
|
@@ -1289,11 +1289,11 @@ dri_device_create(int fd, uint32_t gbm_b
|
|
|
|
force_sw = debug_get_bool_option("GBM_ALWAYS_SOFTWARE", false);
|
|
if (!force_sw) {
|
|
- ret = dri_screen_create(dri);
|
|
+ ret = dri_screen_create(dri, false);
|
|
if (ret)
|
|
- ret = dri_screen_create_sw(dri);
|
|
+ ret = dri_screen_create_sw(dri, true);
|
|
} else {
|
|
- ret = dri_screen_create_sw(dri);
|
|
+ ret = dri_screen_create_sw(dri, false);
|
|
}
|
|
|
|
if (ret)
|