https://bugs.winehq.org/show_bug.cgi?id=25528
--- Comment #19 from swswine@gmail.com --- (In reply to Matteo Bruni from comment #15)
(In reply to swswine from comment #14)
There is the issue with shader constant limit, which natively not that strict than Wine currently imposes (documented for software vertex processing mode, but even for hardware vertex processing mode the actually allowed limit on many cards seems to be higher than that advertised through caps).
No, for hardware shaders the limit is correct; see test_unsupported_shaders() in d3d9/tests/device.c.
Is it possible that the game creates shader when software mode is on, then turns the software mode off, using created shaders and this works (even if the shaders are actually executed in software maybe)? As I remember studying the full trace logs of some of these the game does not have software mode on while rendering. Anyway, I realize that this requires more testing & discovering the exact scenario of what game is doing.
If anyone can send me a full log of the game (with WINEDEBUG=+d3d,+d3d9,+d3d_shaders), better without any custom patches applied, I can discover the sequence how it creates the device and switches software mode in respect to shader creation and usage.