VOGONS


dgVodooo 2.8.x and related WIP versions

Topic actions

Reply 100 of 129, by lowenz

User metadata
Rank Oldbie
Rank
Oldbie

At runtime only? It would be extremely good

Reply 101 of 129, 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 129, 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 129, 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 104 of 129, by Dege

User metadata
Rank l33t
Rank
l33t

For the time being, I think I'll release a new patch version, 2.82.4.
I'm (very slowly) working on other under-the-hood developments and ran into some bugs for which a fix worth to / should be released.

Reply 105 of 129, 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 129, 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 129, 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 129, 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...

Reply 109 of 129, by Sevirman

User metadata
Rank Newbie
Rank
Newbie

Dege, hey pal, please check email for 16 jun.

Reply 110 of 129, by Dege

User metadata
Rank l33t
Rank
l33t

I release a small update to publish the new D3D12 swapchain creator addon callback for testing:

=========================
WIP95.5:
=========================

  • Fixing a regression bug in the blitter backends (Ephinea PSOBB, my own tests)
  • Fixing a potential D3D12 deadlock problem (604)
  • Shared surface memory (Lock/GetDC) in DDraw and D3D9 (better performance)
  • Fixing a D3D7 vertex clipping incompatibility (Torte Le Magic)
  • More DDraw compatibility
  • Adding a new addon callback to the API for creating custom D3D12 swapchains
  • Fixing a 3D rendering bug in the D3D11/12 backends (SC Chaos Theory Versus Mode)

http://dege.fw.hu/temp/dgVoodooWIP95_5.zip
http://dege.fw.hu/temp/dgVoodooWIP95_5_dbg.zip
http://dege.fw.hu/temp/dgVoodooAPI_283_WIP.zip

Also, I'm going to look at reported problems.

=========================
WIP95.6:
=========================

  • YUV format support in DDraw
  • Fixing various regression bugs in surface handling (some DDraw games/demos)
  • Enabling flag DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING for FLIP presentation type swapchains if supported (D3D11/12)
  • Workarounding an invalid shader in D3D9 (Wall-E)

http://dege.fw.hu/temp/dgVoodooWIP95_6.zip
http://dege.fw.hu/temp/dgVoodooWIP95_6_dbg.zip

Edit: update to WIP95.6

Last edited by Dege on 2024-08-02, 21:41. Edited 2 times in total.

Reply 111 of 129, by Dege

User metadata
Rank l33t
Rank
l33t

I updated the latest WIP with a minor fixes.

Reply 112 of 129, by Dege

User metadata
Rank l33t
Rank
l33t

I updated the latest WIP with some new fixes.

Reply 113 of 129, by Crok

User metadata
Rank Newbie
Rank
Newbie

Do you know how to solve this problem? MSAA does not work in the game, it was launched in 4K with an internal resolution of 1600x900 to increase the subtitles.

Reply 114 of 129, by Dege

User metadata
Rank l33t
Rank
l33t

I decided to release the current state as a new version. I'll continue to investigate reported issues, and since I have very limited testing capabilities now (lack of time) probably I'll have to release a patch version anyway, so new bugfixes can be included as well.

=========================
v2.83:
=========================

  • Frontend
    * DD/D3D/8/9 objects consumes less memory and system resources
    * Adding bounds checking into generated VS cpu code
    * Improving API locking mechanism to avoid 'window message deadlock'
    * Minor refactorings here and there
    * Shared surface memory (Lock/GetDC) in DDraw and D3D9 where possible (better performance)
    * Workarounding an invalid shader in D3D9 (WALL-E, Ratatouille, Up)
    * Some changes in the capability of the GF9800 virtual card
  • DDraw changes
    * Refactoring a lot of code to implement resource sharing to be compatible with MS DDraw (e.g. flashing screen in Colin McRae Rally 2)
    * Implementing a shortcoming in DD compression Blt (Europe 1400)
    * Implementing DD surface duplicating
    * Adding some new dbg layer error messages into DD Blt'ing
    * More compatibility with MS DDraw
    * YUV format support
  • D3D
    * Implementing some missing validation in D3D Draw methods
    * Fixing minor debug layer bugs
    * Fixing a D3D7 vertex clipping incompatibility (Torte Le Magic)
    * Fixing a D3D8/9 resource binding bug
    * Fixing a thing in D3D execute buffers (shadow in Final Racing)
  • D3D11/12 backend
    * Adding a new option DirectXExt\D3D12BoundsChecking (try it if you run into a GPU crash with D3D8/9)
    * Fixing a surface readback bug (Virtua Fighter 2 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)
    * Fixing a regression bug in the blitter (Ephinea PSOBB, my own tests)
    * Fixing a potential D3D12 deadlock problem (604)
    * Adding a new addon callback to the API for creating custom D3D12 swapchains
    * Fixing a 3D rendering bug in the D3D11/12 backends (SC Chaos Theory Versus Mode)
    * Enabling flag DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING for FLIP presentation type swapchains if supported (windowed mode, fake fullscreen)
    * Improving the synchronization of GPU/CPU access of poorly used D3D8/9 static buffers
    * Fixing a regression bug in the blitter (Grand Prix 3 rearview mirrors)

http://dege.fw.hu/dgVoodoo2/bin/dgVoodoo2_83.zip
http://dege.fw.hu/dgVoodoo2/bin/dgVoodoo2_83_dbg.zip

Last edited by Dege on 2024-08-08, 21:50. Edited 3 times in total.

Reply 115 of 129, by KingSyphilis

User metadata
Rank Newbie
Rank
Newbie
Dege wrote on 2024-08-07, 19:26:

These return 404 for me; I think you meant to put http://dege.fw.hu/dgVoodoo2/bin/dgVoodoo2_83.zip?

Also, in recent weeks I've noticed many different versions prior to 2.82 are returning 404, and are also missing for download from the GitHub?

Reply 116 of 129, by lowenz

User metadata
Rank Oldbie
Rank
Oldbie

About the github repo, is that "official" code uploaded/updated by our man dege, right?

Reply 117 of 129, by Dege

User metadata
Rank l33t
Rank
l33t
KingSyphilis wrote on 2024-08-07, 22:53:
Dege wrote on 2024-08-07, 19:26:

These return 404 for me; I think you meant to put http://dege.fw.hu/dgVoodoo2/bin/dgVoodoo2_83.zip?

Also, in recent weeks I've noticed many different versions prior to 2.82 are returning 404, and are also missing for download from the GitHub?

Thanks, I fixed the links.

Yes, I don't want old versions to be used. If a regression bug or issue with the latest version(s) is detected then it's better to report it and get it fixed than fleeing back to an old version.
That's why I've thrown out the entire 2.7.x series. And also, I need space on the server of fw.hu so I usually delete old WIP versions as well.

Reply 118 of 129, by Dege

User metadata
Rank l33t
Rank
l33t

I reuploaded the 2.83 files: G-Police and Grand Prix 3 rearview mirrors was broken and I fixed it. Altough the latter was broken in the previous versions too.

Reply 119 of 129, by Squall Leonhart

User metadata
Rank Newbie
Rank
Newbie

Sim City 3000 unlimited suffers severe framerate drops when scrolling the map towards the edges in any direction, Can't try with Fast memory access because it won't run at all with the option enabled.

Using the Gog widescreen res patched exe on a 2.0.949 disk installation and running at 1440p, framerate is limited to 60 to avoid the fast scrolling bug.

without the cap, the framerate goes from 500+ to... 11 as the camera pans towards the land edge.