D3D8 Software Vertex Processing

Jan Havran havran.jan at email.cz
Sun Aug 6 10:19:17 CDT 2017


Hello,

i am trying to fix #9337 [1] for VietCong game (game is crashing during 
loading 3D objects) for which exists community util which fixes it. This 
util was made to fix issues for VC on newer Windows - fixing this bug in 
Wine was just side effect. Anyway, i have talked to creator of this util 
(Brchi from The Archi Family) about it. The game originally use software 
vertexes only, but he edited the game and switched to hardware vertexes 
(which increased FPS rapidly on Windows), but he was facing the same 
problem - the game was crashing. Fortunately, he found that the game 
uses  different code branches when hardware vertex are used - developers 
probably never finished support for hardware vertexes and that is reason 
why it is crashing when HW vertexes are used. He fixed game code so it 
works with HW vertexes (even in Wine).

The problem is that game uses only SW vertexes and these unfinished 
branches are called only when HW vertexes are used, which is not a 
problem for Windows (which support SW vertexes). But for some reason 
Wine uses HW vertexes even if game wants to use SW vertexes. Thats why 
the game works in Wine only with this util applied.

I can see from report [2] that game tries to use SW vertexes, which are 
unsupported by Wine. Can I simply edit some code in Wine (some D3D flag) 
so the game will think that it use SW vertexes, so after checking some 
flags by game it will not jump into some unfinished branches for HW 
vertexes? I just want to test if it is really caused by this. From 
application view, what is difference between using SW and HW vertexes, 
do you think that using HW vertexes with code done for SW vertexes will 
work?

[1] https://bugs.winehq.org/show_bug.cgi?id=9337
[2] https://bugs.winehq.org/show_bug.cgi?id=9337#c35

Thanks,
Jan




More information about the wine-devel mailing list