https://bugs.winehq.org/show_bug.cgi?id=39057
Paul Gofman gofmanp@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |gofmanp@gmail.com
--- Comment #88 from Paul Gofman gofmanp@gmail.com --- (In reply to David Gámiz Jiménez from comment #84)
Hi community,
And thanks for the efforts to implement vertex skinning animations. Various LithTech engine games had this feature and issues in wine.
I has checked in Die Hard Nakatomi Plaza, LithTech engine 2.x. With wine-staging 2.16, that include improve patch for this feature. But this it not show the character models correctly. I has added 3 screen-shots, from the intro cut-scene(full game last official patch).
You can check with a demo version: https://www.fileplanet.com/84666/80000/fileinfo/Die-Hard:-Nakatomi-Plaza-Dem...
Thanks in advance,
David Gámiz Jiménez
I've tested the demo and was able to reproduce the glitch, it can be seen right on the first cut scene after starting new game.
The glitch is not there with the original patch attached to this bug. The relevant difference is that original patch always uses maximum supported indexes regardless of software or hardware vertex processing mode selected (which does not look like correct behaviour either), while Staging version supports max index of 7 in HWVP and 255 in SWVP mode only. If to make it use SWVP mode path only, the glitch goes away (* see note below).
The game uses d3d8 interface and creates mixed vertex processing (MVP) device. The way of setting SWVP in MVP for d3d8 is done through D3DRS_SOFTWAREVERTEXPROCESSING render state, unlike d3d9 SetSoftwareVertexProcessing call (which is not there for d3d8). This render state is not taken into account, but this is not the reason for this glitch actually: the demo never sets this state. I did not test how many indexes are de facto supported in MVP mode on Windows, but can guess that it might be different from what is reported through capabilities.
* The core GL profiles must not be used for indexed vertex blending in Staging to work, that is, HKEY_CURRENT_USER\Software\Wine\Direct3D\MaxVersionGL registry entry must not be set or set to something below 3.2. This is due to glVertex... and similar functions which are used in 'software emulation' codepath are not supported on opengl 3.2+ core profiles.