File 0006-gbm-plumb-an-implicit-param-through-device-creation.patch of Package Mesa

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)
openSUSE Build Service is sponsored by