diff options
| author | Christian Krinitsin <mail@krinitsin.com> | 2025-07-17 09:10:43 +0200 |
|---|---|---|
| committer | Christian Krinitsin <mail@krinitsin.com> | 2025-07-17 09:10:43 +0200 |
| commit | f2ec263023649e596c5076df32c2d328bc9393d2 (patch) | |
| tree | 5dd86caab46e552bd2e62bf9c4fb1a7504a44db4 /results/scraper/fex/2192 | |
| parent | 63d2e9d409831aa8582787234cae4741847504b7 (diff) | |
| download | qemu-analysis-main.tar.gz qemu-analysis-main.zip | |
Diffstat (limited to 'results/scraper/fex/2192')
| -rw-r--r-- | results/scraper/fex/2192 | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/results/scraper/fex/2192 b/results/scraper/fex/2192 new file mode 100644 index 000000000..7324b45b4 --- /dev/null +++ b/results/scraper/fex/2192 @@ -0,0 +1,104 @@ +[wine-i386]: [opengl can't detect hardware vendor] +**wine-i386 and winecheck* +Wine(https://www.winehq.org/) +winecheck + + +**Describe the bug** +I try to run x86 program in ubuntu-aarch64, so i use FEXLoader to load wine, then wine load x86 program wincheck.exe. But it seems cant find vendor +``` +progwrapper$ FEXLoader -R Ubuntu_i386 ./wine-progwrapper/bin/wine ./winecheck.exe +[ERROR] Couldn't connect to FEXServer socket 1000.FEXServer.Socket 111 Connection refused +RootFS Position: /home/bogus/.fex-emu/RootFS/Ubuntu_i386 : ./wine-progwrapper/bin/wine +RootFS Position: /home/bogus/.fex-emu/RootFS/Ubuntu_i386 : /usr/local/share/progwrapper/wine-progwrapper/bin/wine-preloader +RootFS Position: /home/bogus/.fex-emu/RootFS/Ubuntu_i386 : /usr/local/share/progwrapper/wine-progwrapper/bin/wineserver +fixme:winediag:start_process Wine Staging 1.9.7 is a testing version containing experimental patches. +fixme:winediag:start_process Please mention your exact version when filing bug reports on winehq.org. +err:menubuilder:init_xdg error looking up the desktop directory +Checking OpenGL ... +radeon: Failed to get PCI ID, error number -1 +libGL error: failed to create dri screen +libGL error: failed to load driver: radeonsi +OpenGL Vendor: VMware, Inc. +OpenGL Renderer: llvmpipe (LLVM 6.0, 128 bits) +OpenGL Direct Rendering: True +ERROR: found bad OpenGL Vendor: VMware, Inc. +ERROR: found bad OpenGL Renderer: llvmpipe +OpenGL: FAILURE +``` +I read the source code, it seems failure in below part code, like this(https://github.com/wine-mirror/wine/blob/master/dlls/opengl32/tests/opengl.c#L1190), but is not the same: +``` + hWnd = CreateWindowExA(0, clsName, "OpenGL Test", WS_TILEDWINDOW, 0, 0, 100, 100, 0, 0, 0, 0); + if (!hWnd) + return false; + + hDC = GetDC(hWnd); + if (!hDC) + goto error; + + pixelformat = ChoosePixelFormat(hDC, &pfd); + if (!pixelformat) + goto error; + + if (!SetPixelFormat(hDC, pixelformat, &pfd)) + goto error; + + context = wglCreateContext(hDC); + if (!context) + goto error; + + if (!wglMakeCurrent(hDC, context)) + goto error; + + vendor = (const char *)glGetString(GL_VENDOR); + renderer = (const char *)glGetString(GL_RENDERER); + extensions = (const char *)glGetString(GL_EXTENSIONS); + + if (extensions && strstr(extensions, "WINE_EXT_direct_rendering")) + directRendering = true; + + printf("OpenGL Vendor: %s\n", vendor); + printf("OpenGL Renderer: %s\n", renderer); + printf("OpenGL Direct Rendering: %s\n", + directRendering ? "True" : "False (or old/wrong wine version)"); +``` +glGetString(GL_VENDOR) cant get real vendor info, it's just return software implement. + +real vendor info : + + +Because I cant run winecheck, so I use some opengl test program do test, all is ok + +1. FEXLoader ~/Downloads/ogl/glxinfo +2. WINEPREFIX="/home/bogus/.wine64/" ./wine ~/.wine64/drive_c/users/bogus/Temp/wct/opengl32_test.exe +3. FEXLoader -k ~/.fex-emu/ThunkConfigs/thunks.json -t /usr/lib/fex-emu/HostThunks/ -j /usr/share/fex-emu/GuestThunks -R ~/.fex-emu/RootFS/Ubuntu_22_04 -- ~/Downloads/ogl/glxinfo + +And I think it is maybe FEX not implement some opengl32 compatibility interface, But how can I to verify my guess and to fix it? + +**To Reproduce** +FEXLoader -R Ubuntu_i386 ./wine-progwrapper/bin/wine ./winecheck.exe + +**Expected behavior** +should like this: + + +**Screenshots and Video** + + +**System information:** + - OS: Ubuntu 22.04.1 LTS + - CPU/SoC: AMD + - Video driver version: Device: AMD OLAND (LLVM 13.0.1, DRM 2.50, 5.15.0-54-generic) (0x6611) + - RootFS used: Ubuntu 16.04 (i386) + - FEX version: commit c37fcf136ababf13b491ae8f1a878cc70f8d1c33 (FEXGetConfig build by myself, it seems is the latest version ) + - Thunks Enabled: No (I don't know how to enable libgl32 thunk) + +**Additional context** + - Is this an x86 or x86-64 game: No + - Does this reproduce on x86-64 host with FEX: NoTest + - Does this reproduce on AArch64 with Radeon/Intel/Nvidia: yes + - Is this a Vulkan game: No + - + +**And I think it is maybe FEX not implement some opengl32 compatibility interface, But how can I to verify my guess and to fix it?** + |