Fix capture not working on intel + wayland

Ignore nouveau cards.
Fix lag on start of recording on amd/intel by only loading egl once,
on startup.
This commit is contained in:
dec05eba
2023-07-21 18:56:34 +02:00
parent 5a9673b1d7
commit a1d31a5cf0
13 changed files with 222 additions and 209 deletions

View File

@@ -8,6 +8,7 @@
typedef struct _XDisplay Display;
typedef struct {
gsr_egl *egl;
const char *display_to_capture; /* if this is "screen", then the entire x11 screen is captured (all displays). A copy is made of this */
gsr_gpu_info gpu_inf;
const char *card_path; /* reference */

View File

@@ -8,6 +8,7 @@
typedef struct _XDisplay Display;
typedef struct {
gsr_egl *egl;
const char *display_to_capture; /* if this is "screen", then the entire x11 screen is captured (all displays). A copy is made of this */
gsr_gpu_info gpu_inf;
const char *card_path; /* reference */

View File

@@ -2,12 +2,14 @@
#define GSR_CAPTURE_NVFBC_H
#include "capture.h"
#include "../egl.h"
#include "../vec2.h"
typedef struct _XDisplay Display;
typedef struct {
Display *dpy;
gsr_egl *egl;
const char *display_to_capture; /* if this is "screen", then the entire x11 screen is captured (all displays). A copy is made of this */
int fps;
vec2i pos;

View File

@@ -2,12 +2,14 @@
#define GSR_CAPTURE_XCOMPOSITE_CUDA_H
#include "capture.h"
#include "../egl.h"
#include "../vec2.h"
#include <X11/X.h>
typedef struct _XDisplay Display;
typedef struct {
gsr_egl *egl;
Window window;
bool follow_focused; /* If this is set then |window| is ignored */
vec2i region_size; /* This is currently only used with |follow_focused| */

View File

@@ -2,12 +2,14 @@
#define GSR_CAPTURE_XCOMPOSITE_VAAPI_H
#include "capture.h"
#include "../egl.h"
#include "../vec2.h"
#include <X11/X.h>
typedef struct _XDisplay Display;
typedef struct {
gsr_egl *egl;
Window window;
bool follow_focused; /* If this is set then |window| is ignored */
vec2i region_size; /* This is currently only used with |follow_focused| */