From 02673c46445a78324416e08ec61284012f7bcc8d Mon Sep 17 00:00:00 2001 From: dec05eba Date: Thu, 21 Nov 2024 00:25:56 +0100 Subject: Fix portal capture on broken amd drivers: fallback to opengl copy instead of vaapi on known buggy mesa version --- include/defs.h | 5 +++++ include/egl.h | 1 + include/utils.h | 1 + 3 files changed, 7 insertions(+) (limited to 'include') 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); -- cgit v1.2.3