VOGONS


dgVodooo 2.8.x and related WIP versions

Topic actions

Reply 101 of 108, by mitradis

User metadata
Rank Newbie
Rank
Newbie

UPD: in Vice City just need to disable the game frame limit (in game menu - video options). And ResX\Y=-1 if using GTAVC.WidescreenFix.

I suggest option for wrapper set affinity mask for game. Many games can work only on one or two cores (or 2 or 4 threads if HT is on).
For example i noticed from the game Blitzkrieg 2 (which not runs if not start with /affinity, because this game not see more 6 threads) if i start Blitzkrieg 2 with /affinity 1 game start but perfomance dramatically bad (because used 1\2 from one physical core). If /affinity 3 (1 + 2) that better but have stutters (because in reality game runs on 1 physical core). If /affinity F (1 + 2 + 4 + 8 = F) that much better (because game use 2 physical core). If /affinity 6 (2 + 4) game can (50% chance) not runs (something with threads between physical cores). F - best choice with HT.

Reply 102 of 108, by Glurak

User metadata
Rank Newbie
Rank
Newbie

So i tryed newest version with dungeon keeper D3DImm and DDraw. Games lunches. Intro Works fine menu works fine. But when you start a game. The game crashes.

Tryed Dungeon Keeper Gold with 3d3 patch

Deeper Dungeon and the Original with D3d Patch 😀

Reply 103 of 108, by Dege

User metadata
Rank l33t
Rank
l33t

I don't have a clue when I will have a new version, so I release the current state as a WIP (mostly fixes for problems I encountered):

=========================
WIP95
=========================

Changes compared to v2.82.3:

  • Fixing vertex clipping in D3D5 (regression) (Jet Moto)
  • Refactoring a lot of code in DDraw to implement resource sharing, to be compatible with MS DDraw (flashing screen in Colin McRae Rally 2)
  • Fixing DDraw clipped cursor problem (like with the config app of game Driver)
  • DD/D3D/8/9 frontend objects consumes less memory
  • Removing paletted texture format support of the GF9800 virtual card
  • Fixing a potential D3D8/9 swapchain leaking bug
  • Implementing some missing validation in D3D Draw methods
  • Fixing a clip coordinate space bug with sst origin lower left in Glide3+
  • Adding a new option DirectXExt\D3D12BoundsChecking (try it if you run into a GPU crash with D3D8/9)

http://dege.fw.hu/temp/dgVoodooWIP95.zip
http://dege.fw.hu/temp/dgVoodooWIP95_dbg.zip

Some explanation for DirectXExt\D3D12BoundsChecking: it's for cases when a D3D8/9 game accesses the vertex shader register array in out-of-bounds (OOB) way (buffer overrun).
It causes a GPU crash with dgVoodoo by default. The fix should not have an option, because D3D8/9 specs are clear about this case, so it should just be implemented in dgVoodoo.
However, according to my profiling, the implementation of bounds checking can cause 8-9% performance drop in certain cases wih certain games. That's a lot.
I cannot optimize it away, the (certain) needed D3D12 call is simply too expensive for extreme frequent usage, at least with my NV driver (did not tested other GPU's).
I only know of 2 games requiring this, The Witcher and Bound by Flame, so I decided to make this feature optional. Enable it if your GPU crashes with the D3D12 backend.

Reply 105 of 108, by Dege

User metadata
Rank l33t
Rank
l33t

I backported some fixes to the lates release, that's what 2.82.4 is about:

=========================
2.82.4
=========================

  • Fixing DDraw bugs (Konami Collector's Series: Castlevania & Contra, Blackstone Chronicles)
  • Workarounding a DDraw internal resource sharing problem
  • Fixing DDraw clipped cursor problem (like with the config app of game Driver)
  • Fixing D3D5 vertex clipping (regression) (Jet Moto)
  • Removing paletted texture format support of the GF9800 virtual card
  • Fixing a potential D3D8/9 swapchain leaking bug
  • Fixing a D3D9 frontend bug (The Mark)
  • Fixing stenciling without a stencil plane in the D3D12 DX backend (Test Drive Unlimited 2)
  • Fixing potential descriptor corruption with sRGB textures in the D3D12 DX backend (Test Drive Unlimited 2)
  • Some minor refactoring in the DX frontent/backends
  • Fixing a clip coordinate space bug with sst origin lower left in Glide3+

http://dege.fw.hu/dgVoodoo2/bin/dgVoodoo2_82_4.zip
http://dege.fw.hu/dgVoodoo2/bin/dgVoodoo2_82_4_dbg.zip

I also updated WIP95 with the latest fixes:

=========================
WIP95.1
=========================

  • Fixing a D3D9 frontend bug (The Mark)
  • Fixing stenciling without a stencil plane in the D3D12 DX backend (Test Drive Unlimited 2)
  • Fixing potential descriptor corruption with sRGB textures in the D3D12 DX backend (Test Drive Unlimited 2)
  • Some minor refactoring in the DX frontent/backends
  • Fixing DDraw bugs (Konami Collector's Series: Castlevania & Contra, Blackstone Chronicles)

http://dege.fw.hu/temp/dgVoodooWIP95_1.zip
http://dege.fw.hu/temp/dgVoodooWIP95_1_dbg.zip

Reply 106 of 108, by Dege

User metadata
Rank l33t
Rank
l33t

I release a new version with the latest fixes and also updated WIP95:

=========================
2.82.5 / WIP95.2
=========================

  • Fixing a bug in the ps.3.0 shader code translator (FFXIII crash)
  • Fixing a bug in the D3D12 backend related to compressed textures (FFXIII Lightning Returns crash)
  • Fixing a DX frontend bug causing missing cutscenes (Ascension to the Throne)

http://dege.fw.hu/dgVoodoo2/bin/dgVoodoo2_82_5.zip
http://dege.fw.hu/dgVoodoo2/bin/dgVoodoo2_82_5_dbg.zip

http://dege.fw.hu/temp/dgVoodooWIP95_2.zip
http://dege.fw.hu/temp/dgVoodooWIP95_2_dbg.zip

Reply 107 of 108, by Krolin

User metadata
Rank Newbie
Rank
Newbie
Dege wrote on 2024-03-19, 12:42:

  • Refactoring a lot of code in DDraw to implement resource sharing, to be compatible with MS DDraw (flashing screen in Colin McRae Rally 2)

Now CMR2 flashes really badly on 2.82.5 after changing in-game resolution (Options -> Graphics -> Advanced Graphics -> Display Mode). I'm using SilentPatchCMR2 and flashing only occurs when I set "Window=0" in SPCMR2.ini (I prefer forcing windowed mode through dgVoodoo because SilentPatch "Window=1" performs horribly).

Reply 108 of 108, by Dege

User metadata
Rank l33t
Rank
l33t

I cannot work on dgVoodoo these days, and I need some fresh air anyway, but I have some minor changes:

=========================
WIP95.3
=========================

  • Implementing a shortcoming in DD compression Blt (Europe 1400)
  • Implementing DD surface duplicating
  • Adding some new dbg layer error messages into DD Blt'ing
  • Adding bounds checking into generated VS cpu code
  • Improving API locking mechanism to avoid 'window message deadlock'
  • Minor refactoring here and there
  • Fixing a surface readback bug in the D3D11/12 backends (Virtua Fighter with forced resolution)
  • Fixing some problems related to PS2/3 input registers declared as centroid (Insane 2 with ingame MSAA)
  • Fixing a PS3 code generation problem (Borderlands with depth of field enabled)

http://dege.fw.hu/temp/dgVoodooWIP95_3.zip
http://dege.fw.hu/temp/dgVoodooWIP95_3_dbg.zip

*Notes:

  • dgVoodoo won't get into deadlock anymore with its own code in multithreaded window-message situations.
    However there are games (like TR4) that wait for DD/D3D without pumping the message queue, still causing
    deadlock/livelock. It cannot be resolved at wrapper side, it's only patching the game code that helps.
  • BL Depth of field is still wrong for me with D3D12 NV. The D3D compiler generates the same bytecode as dgVoodoo
    for the code in question, so I don't think my codegenerator is the culprit. The code gets converted into DXIL anyway,
    and no problem with AMD/Intel.
  • I upgraded compiler and now Defender detects some modules of dgVoodoo as Trojan (here we go again...).
    I might downgrade back to the old one.

I'll work on other reported problems. Slowly...