http://bugs.winehq.org/show_bug.cgi?id=60364 Bug ID: 60364 Summary: YAPE 1.3.0/1.4.0: black screen after switching to fullscreen with OpenGL on NVIDIA + X11 + EGL Product: Wine Version: 11.18 Hardware: x86-64 URL: http://yape.homeserver.hu/download/yape1.4.0.zip OS: Linux Status: NEW Keywords: download Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@list.winehq.org Reporter: gyebro69@gmail.com Target Milestone: --- Distribution: ArchLinux YAPE (Yet Another Plus/4 Emulator) displays a black screen when switching from windowed to fullscreen mode with its OpenGL renderer under Wine. The application remains responsive, and pressing Esc restores the windowed display. The black screen issue occurs when entering fullscreen from either a normal-sized or a maximized window, and also inside a Wine virtual desktop. Steps to reproduce: 1. Start the emulator with YAPE.exe. In the top menu select Screen->Video driver->OpenGL 2. Press <Alt-Enter> or use the top menu's Toggle fullscreen mode option 3. The screen turns black 4. Press Esc to return to windowed mode; the image reappears. Configurations I tested the bug on and their results: NVIDIA + XFCE/X11 + EGL: affected NVIDIA + XFCE/X11 + legacy GLX: works NVIDIA + KDE Plasma Wayland session, using either Wine's native Wayland driver or XWayland, with EGL: works Nouveau/Mesa 26.2.3 + X11 or Wayland, with EGL: works NVIDIA + XFCE/X11 + EGL with EmulateModeset=Y: works So there are at least 2 workarounds when using NVIDIA + X11: either switch to the legacy GLX backend or set 'EmulateModeset=Y' in the registry when using EGL. I also tried older NVIDIA driver 580.178.04 with the same black issue. Application version comparison: YAPE 1.2.7 works in the otherwise affected configuration, while YAPE 1.3.0 and 1.4.0 exhibit the problem. I haven't tested these versions on Windows, so I can't tell if the bug exists there as well. Arch Linux, XFCE/X11 NVIDIA GeForce GTX 1660 SUPER NVIDIA proprietary drivers 615.71.09 and 580.178.04: both affected Wine 11.18; also reproduced with Wine 10.18 using UseEGL=Y YAPE 1.4.0, 64-bit executable (PE32+, x86-64) Desktop resolution: 1440×900 YAPE homepage: http://yape.homeserver.hu/ Download: http://yape.homeserver.hu/download/yape1.4.0.zip sha256sum: 66356550332b5126128aaadb7d069ece20908c38bbc1bf7154021c22251028a9 **AI-assisted diagnostic findings** A temporary Wine patch adds diagnostic calls immediately before eglSwapBuffers() in x11drv_egl_surface_swap(). Adding any one of the following glGetIntegerv() queries before each swap makes fullscreen switching work: GL_VIEWPORT GL_DRAW_BUFFER GL_READ_BUFFER GL_DRAW_FRAMEBUFFER_BINDING GL_READ_FRAMEBUFFER_BINDING The returned values are not used to modify any state. Each query was tested separately, with WINEDEBUG=-all and EmulateModeset disabled. This workaround works with both NVIDIA 580.178.04 and 615.71.09. Without the diagnostic calls, both drivers reproduce the black screen. In contrast: - Querying EGL_WIDTH and EGL_HEIGHT with eglQuerySurface() does not help. - Calling eglGetError() before and after the swap does not help. - Debug logging without the diagnostic calls does not help. In the original failing log, texture updates, drawing calls, and swap calls continue during the black-screen period. In the successful diagnostic runs, the EGL surface reaches 1440×900, the viewport is (120, 0, 1200, 900), and the swap calls report success. These successful runs do not establish whether the original failing swaps return an error, since the diagnostic calls themselves prevent reproduction. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.