https://bugs.winehq.org/show_bug.cgi?id=53671
Bug ID: 53671 Summary: No objects are being rendered in any DX10/11 apps with older GPU drivers Product: Wine Version: 7.17 Hardware: x86-64 OS: Windows Status: UNCONFIRMED Severity: normal Priority: P2 Component: d3d Assignee: wine-bugs@winehq.org Reporter: svyatpro@gmail.com
There is a regression after a patch 5ce7adaace3637ff6f8a33264b62c69bf2e53967
I have AMD graphics with outdated driver for Windows XP. Stating from the patch above it broke WineD3D10/11 compatibility. This BUG appeared with WineD3D 6.13 and above.
https://bugs.winehq.org/show_bug.cgi?id=53671
Zeb Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Regression SHA1| |5ce7adaace3637ff6f8a33264b6 | |2c69bf2e53967 Ever confirmed|0 |1 Status|UNCONFIRMED |NEEDINFO Keywords| |regression CC| |z.figura12@gmail.com
--- Comment #1 from Zeb Figura z.figura12@gmail.com --- To clarify, you are using wined3d.dll on Windows XP, not on Linux or Mac?
What applications are you trying to run?
https://bugs.winehq.org/show_bug.cgi?id=53671
--- Comment #2 from Svyatpro svyatpro@gmail.com --- Yes. WinXP with AMD graphics and DX11 GPU (HD7340) and latest driver. NVIDIA works fine. AMD fails after this patch.
https://bugs.winehq.org/show_bug.cgi?id=53671
--- Comment #3 from Svyatpro svyatpro@gmail.com --- DirectX SDK Direct3D11 samples DDSWithoutD3DX11.exe for example. Any other simple DX11 demo application.
https://bugs.winehq.org/show_bug.cgi?id=53671
Zeb Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEEDINFO |UNCONFIRMED Ever confirmed|1 |0
https://bugs.winehq.org/show_bug.cgi?id=53671
Stefan Dösinger stefan@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |stefan@codeweavers.com
--- Comment #4 from Stefan Dösinger stefan@codeweavers.com --- Woo, so 15 years late a non-zero number of users cares about using wined3d to bring d3d10 to Windows XP :-) .
We most likely get some GL capability check wrong. Do you get an GL errors? Those would be reported to stderr. If the application you are running is marked as GUI subsystem (not console subsystem) it won't print anything by default, even if you run it from a cmd shell. You'll have to redirect output to a file (e.g. foo.exe 2>> log.txt)
with "set WINEDEBUG=d3d" you enable d3d debug logging. If the output file is empty, something is wrong. It should have lots of content. An error reported from GL is marked with ">>>>>>>" in the output.
https://bugs.winehq.org/show_bug.cgi?id=53671
--- Comment #5 from Svyatpro svyatpro@gmail.com --- Stefan, you forgot to mention DX11 DWRITE D2D =) Thx for advice.
Here are debug messages:
nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618. 0214:err:d3d:wined3d_check_gl_call >>>>>>> GL_INVALID_VALUE (0x501) from bind co nstant buffers @ ../dlls/wined3d/state.c / 4618.
https://bugs.winehq.org/show_bug.cgi?id=53671
--- Comment #6 from Svyatpro svyatpro@gmail.com --- line 4618 in my staging build is checkGLcall("bind constant buffers");
https://bugs.winehq.org/show_bug.cgi?id=53671
--- Comment #7 from Stefan Dösinger stefan@codeweavers.com --- Does this driver support GL_ARB_uniform_buffer_object? I'd expect it to, and I guess things would not have worked previously otherwise.
I wonder what the value of GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT is. We are not checking it, and maybe the driver is trying to tell us that it can't do UBO offsets ("If an implementation can not support non-zero offsets, they can set UNIFORM_BUFFER_OFFSET_ALIGNMENT to a sufficiently large value").
Can you try to edit dlls/d3d11/device.c, d3d11_device_CheckFeatureSupport() to set options->ConstantBufferOffsetting = FALSE? If the application(s) listen to it, querying the GL value and reporting no UBO offset support if the driver's alignment is > 16 might fix things. Otherwise, it is possible that your driver just rejects calls to glBindBufferRange even if alignment = 0 and size = full buffer size.
https://bugs.winehq.org/show_bug.cgi?id=53671
--- Comment #8 from Svyatpro svyatpro@gmail.com --- Yes the driver supports GL_ARB_uniform_buffer_object. Setting ConstantBufferOffsetting to FALSE doesn't affect anything
https://bugs.winehq.org/show_bug.cgi?id=53671
--- Comment #9 from Svyatpro svyatpro@gmail.com --- GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT value is 256
https://bugs.winehq.org/show_bug.cgi?id=53671
--- Comment #10 from Stefan Dösinger stefan@codeweavers.com --- Created attachment 73763 --> https://bugs.winehq.org/attachment.cgi?id=73763 More checkGLcalls for testing
Here is a patch to further pin down where the driver complains.
GL errors persist until they are retrieved with glGetError, so the error you are seeing might be from an older call. This patch adds a few more checkGLcall invocations that will tell us if this is the case.
https://bugs.winehq.org/show_bug.cgi?id=53671
--- Comment #11 from Stefan Dösinger stefan@codeweavers.com --- Created attachment 73764 --> https://bugs.winehq.org/attachment.cgi?id=73764 go back to glBindBufferBase
Here is a second test patch (don't apply together with the first) that goes back to glBindBufferBase instead of glBindBufferRange to see how the driver responds. It also adds some ERRs if there are non-zero offsets either from Wine's buffer allocator or the d3d11 application.
Questions are: 1) Does it fix rendering? 2) Do any of the ERRs I am adding trigger? 3) Are the opengl errors gone?
I expect the GL errors to be gone, but if Wine suballocates buffers then rendering is probably still broken.
https://bugs.winehq.org/show_bug.cgi?id=53671
--- Comment #12 from Svyatpro svyatpro@gmail.com --- Thank you, Stefan
1. Second patch fixes the issue 2. Logs from first patch attached 3. Yes, with second patch gone
https://bugs.winehq.org/show_bug.cgi?id=53671
--- Comment #13 from Svyatpro svyatpro@gmail.com --- Created attachment 73768 --> https://bugs.winehq.org/attachment.cgi?id=73768 patch1 logs
patch1 logs
https://bugs.winehq.org/show_bug.cgi?id=53671
--- Comment #14 from Stefan Dösinger stefan@codeweavers.com --- Can you attach a log from the second patch? I am curious if any non-zero offsets are in play.
https://bugs.winehq.org/show_bug.cgi?id=53671
--- Comment #15 from Svyatpro svyatpro@gmail.com --- Created attachment 73771 --> https://bugs.winehq.org/attachment.cgi?id=73771 patch2 logs
https://bugs.winehq.org/show_bug.cgi?id=53671
--- Comment #16 from Stefan Dösinger stefan@codeweavers.com --- ok, just zero offsets. As best I can say, the driver just doesn't like glBindBufferRange. Zeb, Henri, can you think of a legitimate reason why? Supposedly glBindBufferRange and glBindBufferBase are added by the same extension...
If there is no good explanation we can try to detect this by calling glBindBufferRange during wined3d init, and if it generates an error advertise no buffer offsetting support to the d3d11 client and disable UBO buffer suballocation. The latter will hurt quite a bit as UBOs are discarded a lot.
Arguably we should at least check the minimum alignment and disable offsetting if it is > 16, which afaics is the maximum allowed by by d3d11. So we need that kind of disabling logic anyway.
https://bugs.winehq.org/show_bug.cgi?id=53671
--- Comment #17 from Stefan Dösinger stefan@codeweavers.com --- One more thought - can you check the values of buffer_state->size? If they are not 256 byte aligned it might fail as well. My suspicion is that we're dealing with e.g. a 128 byte buffer (though 4096 byte are more common), which the driver might accept as "bind the whole buffer" but doesn't accept as "bind the first 128 byte of this buffer", even though it actually means the same.
https://bugs.winehq.org/show_bug.cgi?id=53671
--- Comment #18 from Svyatpro svyatpro@gmail.com --- If I would know how to check those values. I can attach full report from OGL Caps Viewer
https://bugs.winehq.org/show_bug.cgi?id=53671
Stefan Dösinger stefan@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #73764|0 |1 is obsolete| |
--- Comment #19 from Stefan Dösinger stefan@codeweavers.com --- Created attachment 73778 --> https://bugs.winehq.org/attachment.cgi?id=73778 Debug buffer state size
I mean something like the attached diff - it is a modification of patch 2, but in addition to printing the offset prints the sizes we pass to glBindBufferRange
https://bugs.winehq.org/show_bug.cgi?id=53671
--- Comment #20 from Svyatpro svyatpro@gmail.com --- Created attachment 73780 --> https://bugs.winehq.org/attachment.cgi?id=73780 3rd patch logs
https://bugs.winehq.org/show_bug.cgi?id=53671
--- Comment #21 from Svyatpro svyatpro@gmail.com --- Added logs for 3rd patch
https://bugs.winehq.org/show_bug.cgi?id=53671
--- Comment #22 from Stefan Dösinger stefan@codeweavers.com --- huh, i wonder if the driver rejects us because we want to bind the first 64kb of a 128 byte buffer. I'll prepare another test patch for that...
https://bugs.winehq.org/show_bug.cgi?id=53671
--- Comment #23 from Stefan Dösinger stefan@codeweavers.com --- Created attachment 73788 --> https://bugs.winehq.org/attachment.cgi?id=73788 Cap the bound size to the buffer size
Can you give this patch a try? It should make sure that we don't bind beyond the size of the buffer. This might be what your driver is complaining about.
https://bugs.winehq.org/show_bug.cgi?id=53671
--- Comment #24 from Svyatpro svyatpro@gmail.com --- Yes, last 4th patch also fixes this issue
https://bugs.winehq.org/show_bug.cgi?id=53671
--- Comment #25 from Stefan Dösinger stefan@codeweavers.com --- The last one even seems necessary according to the glBindBufferRange docs. I'll send a merge request.
https://bugs.winehq.org/show_bug.cgi?id=53671
Zeb Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Fixed by SHA1| |09cafcc3b6eff3b046d3c08f64d | |9c1fb9ce54c47 Status|UNCONFIRMED |RESOLVED
--- Comment #26 from Zeb Figura z.figura12@gmail.com --- Fixed by https://source.winehq.org/git/wine.git/commitdiff/09cafcc3b6eff3b046d3c08f64d9c1fb9ce54c47.
https://bugs.winehq.org/show_bug.cgi?id=53671
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #27 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 8.0-rc4.