aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2024-11-21 00:25:56 +0100
committerdec05eba <dec05eba@protonmail.com>2024-11-21 00:25:56 +0100
commit02673c46445a78324416e08ec61284012f7bcc8d (patch)
tree54cf80ba361b6981cdecebe74e89c8b89dd8680a /include
parent68c9781f44bddc7256677668b559cd02f29bb059 (diff)
Fix portal capture on broken amd drivers: fallback to opengl copy instead of vaapi on known buggy mesa version
Diffstat (limited to 'include')
-rw-r--r--include/defs.h5
-rw-r--r--include/egl.h1
-rw-r--r--include/utils.h1
3 files changed, 7 insertions, 0 deletions
diff --git a/include/defs.h b/include/defs.h
index 8fd2ddc..76e798e 100644
--- a/include/defs.h
+++ b/include/defs.h
@@ -13,6 +13,11 @@ typedef struct {
gsr_gpu_vendor vendor;
int gpu_version; /* 0 if unknown */
bool is_steam_deck;
+
+ /* Only currently set for Mesa. 0 if unknown format */
+ int driver_major;
+ int driver_minor;
+ int driver_patch;
} gsr_gpu_info;
typedef enum {
diff --git a/include/egl.h b/include/egl.h
index 82014b9..8958f31 100644
--- a/include/egl.h
+++ b/include/egl.h
@@ -131,6 +131,7 @@ typedef void(*__GLXextFuncPtr)(void);
#define GL_VENDOR 0x1F00
#define GL_RENDERER 0x1F01
+#define GL_VERSION 0x1F02
#define GL_COMPILE_STATUS 0x8B81
#define GL_INFO_LOG_LENGTH 0x8B84
diff --git a/include/utils.h b/include/utils.h
index 984b963..5b771ba 100644
--- a/include/utils.h
+++ b/include/utils.h
@@ -39,6 +39,7 @@ bool get_monitor_by_name(const gsr_egl *egl, gsr_connection_type connection_type
gsr_monitor_rotation drm_monitor_get_display_server_rotation(const gsr_egl *egl, const gsr_monitor *monitor);
bool gl_get_gpu_info(gsr_egl *egl, gsr_gpu_info *info);
+bool gl_driver_version_greater_than(const gsr_egl *egl, int major, int minor, int patch);
/* |output| should be at least 128 bytes in size */
bool gsr_get_valid_card_path(gsr_egl *egl, char *output, bool is_monitor_capture);