From c23114ab8d7dc062d2acf39f0d6123857f9eb300 Mon Sep 17 00:00:00 2001 From: Cacodemon345 Date: Fri, 14 Mar 2025 04:18:07 +0600 Subject: [PATCH 1/3] Attempt fixing OpenGL 3.x screenshot --- src/qt/qt_openglrenderer.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/qt/qt_openglrenderer.cpp b/src/qt/qt_openglrenderer.cpp index 70c70527a..88fefa0c3 100644 --- a/src/qt/qt_openglrenderer.cpp +++ b/src/qt/qt_openglrenderer.cpp @@ -1667,6 +1667,9 @@ OpenGLRenderer::render() unsigned char *rgba = (unsigned char *)calloc(1, width * height * 4); + glw.glFinish(); + glw.glBindFramebuffer(GL_FRAMEBUFFER, 0); + glw.glReadBuffer(GL_BACK); glw.glFinish(); glw.glReadPixels(window_rect.x, window_rect.y, width, height, GL_RGBA, GL_UNSIGNED_BYTE, rgba); From c166abbbc1242184dc0113b4e1a15ce93c7658f2 Mon Sep 17 00:00:00 2001 From: Cacodemon345 Date: Fri, 14 Mar 2025 14:07:33 +0600 Subject: [PATCH 2/3] Always use an alpha value of 1.0 for drawing scene to texture Fixes invisible screenshots and blank screens on certain systems --- src/qt/qt_openglrenderer.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/qt/qt_openglrenderer.cpp b/src/qt/qt_openglrenderer.cpp index 88fefa0c3..3b2ec58e0 100644 --- a/src/qt/qt_openglrenderer.cpp +++ b/src/qt/qt_openglrenderer.cpp @@ -107,6 +107,7 @@ const char* fragment_shader_default_tex_src = "void main()\n" "{\n" " color = texture(Texture, texCoord);\n" + " color.a = 1.0;\n" "}\n"; const char* vertex_shader_default_color_src = @@ -141,6 +142,7 @@ const char* fragment_shader_default_color_src = "void main()\n" "{\n" " outColor = color;\n" + " outColor.a = 1.0;\n" "}\n"; static inline int @@ -1667,9 +1669,6 @@ OpenGLRenderer::render() unsigned char *rgba = (unsigned char *)calloc(1, width * height * 4); - glw.glFinish(); - glw.glBindFramebuffer(GL_FRAMEBUFFER, 0); - glw.glReadBuffer(GL_BACK); glw.glFinish(); glw.glReadPixels(window_rect.x, window_rect.y, width, height, GL_RGBA, GL_UNSIGNED_BYTE, rgba); From 84112960c3f31df8455ea3c4b3d000f840cb5542 Mon Sep 17 00:00:00 2001 From: OBattler Date: Fri, 14 Mar 2025 15:06:06 +0100 Subject: [PATCH 3/3] VIA PIPC: Also return 0x50 on power management register 0x42 for every other non-VT82c586-family southbridge, fixes CUV4X-LS. --- src/chipset/via_pipc.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/chipset/via_pipc.c b/src/chipset/via_pipc.c index f7f5bf208..6b855f5aa 100644 --- a/src/chipset/via_pipc.c +++ b/src/chipset/via_pipc.c @@ -59,6 +59,7 @@ listings on forums, as VIA's datasheets are not very helpful regarding those. */ #define VIA_PIPC_586A 0x05862500 #define VIA_PIPC_586B 0x05864700 +#define VIA_PIPC_586 0x0586 #define VIA_PIPC_596A 0x05960900 #define VIA_PIPC_596B 0x05962300 #define VIA_PIPC_596 0x0596 @@ -414,7 +415,7 @@ pipc_reset_hard(void *priv) dev->power_regs[0x34] = 0x68; dev->power_regs[0x40] = 0x20; - dev->power_regs[0x42] = ((dev->local >> 16) == VIA_PIPC_596) ? 0x50 : 0x00; + dev->power_regs[0x42] = ((dev->local >> 16) == VIA_PIPC_586) ? 0x00 : 0x50; acpi_set_irq_line(dev->acpi, 0x00); dev->power_regs[0x48] = 0x01; @@ -1596,7 +1597,7 @@ pipc_reset(void *priv) pipc_write(pm_func, 0x48, 0x01, priv); pipc_write(pm_func, 0x49, 0x00, priv); - dev->power_regs[0x42] = ((dev->local >> 16) == VIA_PIPC_596) ? 0x50 : 0x00; + dev->power_regs[0x42] = ((dev->local >> 16) == VIA_PIPC_586) ? 0x00 : 0x50; acpi_set_irq_line(dev->acpi, 0x00); pipc_write(1, 0x04, 0x80, priv);