blob: db25e16f4a811992b253d8274e0bd477eba7b6de [file] [log] [blame]
From feb4ec510b1328fdd9aa77305d3273d1f9c7e124 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex@linutronix.de>
Date: Thu, 9 Jun 2022 11:42:05 +0200
Subject: [PATCH] swrast_kms: use swkmsDRI2Extension instead of
driDRI2Extension
This set of changes:
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15649
caused a regression in Xorg when using swrast_kms:
(EE) AIGLX error: Calling driver entry point failed
This commit changes the swrast_kms driver to use a dedicated screen init function
(which I believe was overlooked); I also took the opportunity to rename the
associated plumbling to have swrast-specific names.
Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16942]
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
---
src/gallium/frontends/dri/dri2.c | 16 ++++++++--------
src/gallium/frontends/dri/dri_screen.h | 4 ++--
src/gallium/frontends/dri/dri_util.c | 2 +-
src/gallium/targets/dri/target.c | 2 +-
4 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/src/gallium/frontends/dri/dri2.c b/src/gallium/frontends/dri/dri2.c
index 63ac9d5..de33789 100644
--- a/src/gallium/frontends/dri/dri2.c
+++ b/src/gallium/frontends/dri/dri2.c
@@ -2508,7 +2508,7 @@ release_pipe:
* Returns the struct gl_config supported by this driver.
*/
static const __DRIconfig **
-dri_kms_init_screen(__DRIscreen * sPriv)
+dri_swrast_kms_init_screen(__DRIscreen * sPriv)
{
#if defined(GALLIUM_SOFTPIPE)
const __DRIconfig **configs;
@@ -2613,8 +2613,8 @@ static const struct __DRIDriverVtableExtensionRec galliumdrm_vtable = {
* hook. The latter is used to explicitly initialise the kms_swrast driver
* rather than selecting the approapriate driver as suggested by the loader.
*/
-const struct __DriverAPIRec dri_kms_driver_api = {
- .InitScreen = dri_kms_init_screen,
+const struct __DriverAPIRec dri_swrast_kms_driver_api = {
+ .InitScreen = dri_swrast_kms_init_screen,
.DestroyScreen = dri_destroy_screen,
.CreateBuffer = dri2_create_buffer,
.DestroyBuffer = dri_destroy_buffer,
@@ -2633,17 +2633,17 @@ const __DRIextension *galliumdrm_driver_extensions[] = {
NULL
};
-static const struct __DRIDriverVtableExtensionRec dri_kms_vtable = {
+static const struct __DRIDriverVtableExtensionRec dri_swrast_kms_vtable = {
.base = { __DRI_DRIVER_VTABLE, 1 },
- .vtable = &dri_kms_driver_api,
+ .vtable = &dri_swrast_kms_driver_api,
};
-const __DRIextension *dri_kms_driver_extensions[] = {
+const __DRIextension *dri_swrast_kms_driver_extensions[] = {
&driCoreExtension.base,
&driImageDriverExtension.base,
- &driDRI2Extension.base,
+ &swkmsDRI2Extension.base,
&gallium_config_options.base,
- &dri_kms_vtable.base,
+ &dri_swrast_kms_vtable.base,
NULL
};
diff --git a/src/gallium/frontends/dri/dri_screen.h b/src/gallium/frontends/dri/dri_screen.h
index 0ee2feb..0bb8817 100644
--- a/src/gallium/frontends/dri/dri_screen.h
+++ b/src/gallium/frontends/dri/dri_screen.h
@@ -168,8 +168,8 @@ dri_destroy_screen_helper(struct dri_screen * screen);
void
dri_destroy_screen(__DRIscreen * sPriv);
-extern const struct __DriverAPIRec dri_kms_driver_api;
-extern const __DRIextension *dri_kms_driver_extensions[];
+extern const struct __DriverAPIRec dri_swrast_kms_driver_api;
+extern const __DRIextension *dri_swrast_kms_driver_extensions[];
extern const struct __DriverAPIRec galliumdrm_driver_api;
extern const __DRIextension *galliumdrm_driver_extensions[];
extern const struct __DriverAPIRec galliumsw_driver_api;
diff --git a/src/gallium/frontends/dri/dri_util.c b/src/gallium/frontends/dri/dri_util.c
index 8d60526..03614e1 100644
--- a/src/gallium/frontends/dri/dri_util.c
+++ b/src/gallium/frontends/dri/dri_util.c
@@ -187,7 +187,7 @@ swkmsCreateNewScreen(int scrn, int fd,
const __DRIconfig ***driver_configs, void *data)
{
return driCreateNewScreen2(scrn, fd, extensions,
- dri_kms_driver_extensions,
+ dri_swrast_kms_driver_extensions,
driver_configs, data);
}
diff --git a/src/gallium/targets/dri/target.c b/src/gallium/targets/dri/target.c
index 9b78351..e02b03b 100644
--- a/src/gallium/targets/dri/target.c
+++ b/src/gallium/targets/dri/target.c
@@ -25,7 +25,7 @@ const __DRIextension **__driDriverGetExtensions_kms_swrast(void);
PUBLIC const __DRIextension **__driDriverGetExtensions_kms_swrast(void)
{
- return dri_kms_driver_extensions;
+ return dri_swrast_kms_driver_extensions;
}
#endif