mirror of
https://repo.dec05eba.com/gpu-screen-recorder
synced 2026-05-06 23:06:22 +09:00
Debug test again
This commit is contained in:
@@ -80,12 +80,12 @@ static int max_int(int a, int b) {
|
|||||||
|
|
||||||
static void gsr_capture_kms_create_input_texture_ids(gsr_capture_kms *self) {
|
static void gsr_capture_kms_create_input_texture_ids(gsr_capture_kms *self) {
|
||||||
self->params.egl->glGenTextures(1, &self->input_texture_id);
|
self->params.egl->glGenTextures(1, &self->input_texture_id);
|
||||||
self->params.egl->glBindTexture(GL_TEXTURE_2D, self->input_texture_id);
|
self->params.egl->glBindTexture(GL_TEXTURE_EXTERNAL_OES, self->input_texture_id);
|
||||||
self->params.egl->glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
|
self->params.egl->glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
|
||||||
self->params.egl->glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
|
self->params.egl->glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
|
||||||
self->params.egl->glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
|
self->params.egl->glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
|
||||||
self->params.egl->glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
|
self->params.egl->glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
|
||||||
self->params.egl->glBindTexture(GL_TEXTURE_2D, 0);
|
self->params.egl->glBindTexture(GL_TEXTURE_EXTERNAL_OES, 0);
|
||||||
|
|
||||||
const bool cursor_texture_id_is_external = self->params.egl->gpu_info.vendor == GSR_GPU_VENDOR_NVIDIA;
|
const bool cursor_texture_id_is_external = self->params.egl->gpu_info.vendor == GSR_GPU_VENDOR_NVIDIA;
|
||||||
const int cursor_texture_id_target = cursor_texture_id_is_external ? GL_TEXTURE_EXTERNAL_OES : GL_TEXTURE_2D;
|
const int cursor_texture_id_target = cursor_texture_id_is_external ? GL_TEXTURE_EXTERNAL_OES : GL_TEXTURE_2D;
|
||||||
@@ -351,18 +351,19 @@ static int gsr_capture_kms_capture(gsr_capture *cap, AVFrame *frame, gsr_color_c
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(self->params.egl->eglGetError() != EGL_SUCCESS)
|
while(self->params.egl->glGetError() != 0){}
|
||||||
|
if(self->params.egl->glGetError() != 0)
|
||||||
fprintf(stderr, "kms error 1\n");
|
fprintf(stderr, "kms error 1\n");
|
||||||
self->params.egl->glBindTexture(GL_TEXTURE_2D, self->input_texture_id);
|
self->params.egl->glBindTexture(GL_TEXTURE_EXTERNAL_OES, self->input_texture_id);
|
||||||
if(self->params.egl->eglGetError() != EGL_SUCCESS)
|
if(self->params.egl->glGetError() != 0)
|
||||||
fprintf(stderr, "kms error 2\n");
|
fprintf(stderr, "kms error 2\n");
|
||||||
self->params.egl->glEGLImageTargetTexture2DOES(GL_TEXTURE_2D, image);
|
self->params.egl->glEGLImageTargetTexture2DOES(GL_TEXTURE_EXTERNAL_OES, image);
|
||||||
if(self->params.egl->eglGetError() != EGL_SUCCESS)
|
if(self->params.egl->glGetError() != 0)
|
||||||
fprintf(stderr, "kms error 3\n");
|
fprintf(stderr, "kms error 3\n");
|
||||||
self->params.egl->eglDestroyImage(self->params.egl->egl_display, image);
|
self->params.egl->eglDestroyImage(self->params.egl->egl_display, image);
|
||||||
if(self->params.egl->eglGetError() != EGL_SUCCESS)
|
if(self->params.egl->glGetError() != 0)
|
||||||
fprintf(stderr, "kms error 4\n");
|
fprintf(stderr, "kms error 4\n");
|
||||||
self->params.egl->glBindTexture(GL_TEXTURE_2D, 0);
|
self->params.egl->glBindTexture(GL_TEXTURE_EXTERNAL_OES, 0);
|
||||||
|
|
||||||
vec2i capture_pos = self->capture_pos;
|
vec2i capture_pos = self->capture_pos;
|
||||||
if(!capture_is_combined_plane)
|
if(!capture_is_combined_plane)
|
||||||
@@ -376,7 +377,7 @@ static int gsr_capture_kms_capture(gsr_capture *cap, AVFrame *frame, gsr_color_c
|
|||||||
gsr_color_conversion_draw(color_conversion, self->input_texture_id,
|
gsr_color_conversion_draw(color_conversion, self->input_texture_id,
|
||||||
(vec2i){target_x, target_y}, self->capture_size,
|
(vec2i){target_x, target_y}, self->capture_size,
|
||||||
capture_pos, self->capture_size,
|
capture_pos, self->capture_size,
|
||||||
texture_rotation, false);
|
texture_rotation, true);
|
||||||
|
|
||||||
if(self->params.record_cursor && cursor_drm_fd) {
|
if(self->params.record_cursor && cursor_drm_fd) {
|
||||||
const vec2i cursor_size = {cursor_drm_fd->width, cursor_drm_fd->height};
|
const vec2i cursor_size = {cursor_drm_fd->width, cursor_drm_fd->height};
|
||||||
@@ -462,7 +463,7 @@ static gsr_source_color gsr_capture_kms_get_source_color(gsr_capture *cap) {
|
|||||||
|
|
||||||
static bool gsr_capture_kms_uses_external_image(gsr_capture *cap) {
|
static bool gsr_capture_kms_uses_external_image(gsr_capture *cap) {
|
||||||
gsr_capture_kms *self = cap->priv;
|
gsr_capture_kms *self = cap->priv;
|
||||||
return self->params.egl->gpu_info.vendor == GSR_GPU_VENDOR_NVIDIA;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool gsr_capture_kms_set_hdr_metadata(gsr_capture *cap, AVMasteringDisplayMetadata *mastering_display_metadata, AVContentLightMetadata *light_metadata) {
|
static bool gsr_capture_kms_set_hdr_metadata(gsr_capture *cap, AVMasteringDisplayMetadata *mastering_display_metadata, AVContentLightMetadata *light_metadata) {
|
||||||
|
|||||||
Reference in New Issue
Block a user