https://bugs.winehq.org/show_bug.cgi?id=57823
Alex Henrie alexhenrie24@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |d3d Regression SHA1| |93a6d341d4cc00c46d576333fa0 | |a8049f67b8692 See Also| |https://bugs.winehq.org/sho | |w_bug.cgi?id=44514 Version|10.0 |10.0-rc3 URL| |https://www.gog.com/en/game | |/serious_sam_4
--- Comment #4 from Alex Henrie alexhenrie24@gmail.com --- I did the test today. The result was:
93a6d341d4cc00c46d576333fa0a8049f67b8692 is the first bad commit commit 93a6d341d4cc00c46d576333fa0a8049f67b8692 Author: Elizabeth Figura zfigura@codeweavers.com AuthorDate: Sat Dec 14 12:35:38 2024 -0600 Commit: Alexandre Julliard julliard@winehq.org CommitDate: Tue Dec 17 14:54:34 2024 +0100
Revert "wined3d: Use bindless textures for GLSL shaders if possible.".
This reverts commit f6a1844dbed91b441ad69e7b15b5be242d063e87.
The use of bindless textures results in several bugs. Some appear to be our bugs; at least some of these would require us to attempt to keep textures nonresident when not used, and others have not yet been debugged. Some appear to be driver bugs or at least exacerbations of existing bugs that are not really fixable.
At the same time, separate samplers are a d3d10-level feature, and any d3d10-level GPU should be capable of supporting Vulkan, which does not use combined samplers. The Vulkan renderer does not suffer from the problem that the GL renderer does in this case.
Put another way, any application that is helped by the original commit should also be helped by the Vulkan renderer, and if the application in question is capable of running on a given GPU in the first place then the GPU should in practice support Vulkan.
The original commit fixed a clear and definite bug, and thus this revert reintroduces regressions in some applications, while fixing regressions in others. The long-term fix for these regressions is to finish the Vulkan renderer and default to it where possible.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56474 Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56523 Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56605 Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56627 Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=57409
dlls/d3d11/tests/d3d11.c | 4 ++-- dlls/wined3d/adapter_gl.c | 15 --------------- dlls/wined3d/context_gl.c | 38 ++------------------------------------ dlls/wined3d/device.c | 24 ------------------------ dlls/wined3d/glsl_shader.c | 70 +--------------------------------------------------------------------- dlls/wined3d/texture.c | 20 +++++++------------- dlls/wined3d/view.c | 39 --------------------------------------- dlls/wined3d/wined3d_gl.h | 22 ---------------------- 8 files changed, 12 insertions(+), 220 deletions(-)
As the commit message suggested, I tried running Serious Sam 4 on Wine 10.3 with the environment variable WINE_D3D_CONFIG=renderer=vulkan and the textures came back. Alternatively, you can set the registry value HKCU\Software\Wine\Direct3D\renderer to vulkan. This workaround will be required until WineD3D switches to the Vulkan backend by default in a future version of Wine.