diff options
author | dec05eba <dec05eba@protonmail.com> | 2024-11-21 00:25:56 +0100 |
---|---|---|
committer | dec05eba <dec05eba@protonmail.com> | 2024-11-21 00:25:56 +0100 |
commit | 02673c46445a78324416e08ec61284012f7bcc8d (patch) | |
tree | 54cf80ba361b6981cdecebe74e89c8b89dd8680a /include | |
parent | 68c9781f44bddc7256677668b559cd02f29bb059 (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.h | 5 | ||||
-rw-r--r-- | include/egl.h | 1 | ||||
-rw-r--r-- | include/utils.h | 1 |
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); |