VOGONS


dgVoodoo 2.6.x and related WIP versions

Topic actions

Reply 20 of 246, by Dege

User metadata
Rank Oldbie
Rank
Oldbie

dgVoodoo 2.62 is released:

- Fixing bugs in the DXBC generator (Halo CE, Splinter Cell 1, The Sims 2)
- Fixing a drawing bug causing polygon corruption (The Sims 2)
- Adding DX feature level 11.0 as output API for 16K size textures (DX8/9)
- True software vertex processing in Draw* methods in DX modules for special cases, when needed (Nosferatu)
(but it was a general long outstanding compatibility problem)
- Some DDraw blit refactor + adding option DirectXExt\PrimarySurfaceBatchedUpdate for batched update for primary surface changes
- Some DDraw improvement for GDI interaction (Bad Mojo Redux video playback)
- Size of the emulated hw cursor is now scaled according to the forced resolution and integer scale factors
- Fixing the behavior of the emulated cursor when no any draw-changes made on the app side
- Fixing bugs in handling rendering windows (Requiem)
- Now all sections of the configuration are accessible through the CPL GUI (Ext sections are hidden by default though)
- Adding a new option for, and implementing Display ROI (region of interest)
Now a subrectangle can be defined for scaling modes done by the wrapper. Useful for applications rendering into a widescreen subrectangle inside a 4:3 resolution - the widescreen subrectangle can be defined as display ROI, the input of the scaling process
- Dithering didn't work for render targets with format A2R10G10B10, fixed

http://dege.fw.hu/dgVoodoo2/dgVoodoo2_62.zip
http://dege.fw.hu/dgVoodoo2/dgVoodoo2_62_dbg.zip

Reply 25 of 246, by ZellSF

User metadata
Rank Oldbie
Rank
Oldbie

With the newest version Populous: The Beginning doesn't need any workarounds for the mouse to stop lagging, though it feels like it's only responding at 30 FPS. I'm going to test that more later.

Icewind Dale II doesn't have cursor flickering anymore, but the mouse is unbearably laggy in inventory screens.

Reply 27 of 246, by Dege

User metadata
Rank Oldbie
Rank
Oldbie

I've released a new version with minor fixes:

- Minor DDraw palette-incompatibility fix (Steel Beasts)
- Fixing a minor incompatibility for generated shader code (Richard Burns Rally)
- Minor optimization for generated shader code (Jurassic Park: Operation Genesis)
- Changing failed scissor rect validation from ERROR to WARNING in D3D9 (Grand Chase)

http://dege.fw.hu/dgVoodoo2/dgVoodoo2_62_1.zip
http://dege.fw.hu/dgVoodoo2/dgVoodoo2_62_1_dbg.zip

Reply 29 of 246, by Googolplexian

User metadata
Rank Newbie
Rank
Newbie

Hi Dege,
sorry I did a huge mistake. I can't reply to your PM's and my english is not the best, so I thought "report" a message means to reply. And I reported it. Now the moderators got a report. But sorry that was only my mistake and the fact that there is no possibility to contact you or to reply to your PM's.

Have you an email address?
It's about Indiana Jones and the Infernal Machine (GOG)

Reply 30 of 246, by Dege

User metadata
Rank Oldbie
Rank
Oldbie

Ok, no problem. I deleted the reports and sent you a new PM. 😉

lowenz wrote:

Aquamake 3 (B3D9.dll hack 😁 ) keeps crashing with resolution >= 1280x720 (or 1366x768)
The only way to run it is to force the resolution.

It's really weird. It just runs for me at 2560x1440 (set from Aquamark itself). What could be the difference?

Reply 31 of 246, by stranno

User metadata
Rank Member
Rank
Member

Dark Omen graphics ficklering was reported years ago, IDK if it can be fixed. UI doesnt flicker while battle display flicker 1/2 frames.

You have to set screen mode to Windowed + app control, since Fullscreen launch an "outdated DirectX" error, fullscreen mode in this game seems kinda bugged. Resolution forcing gives black screen.

https://www.youtube.com/watch?v=lBNyPNtbCoo

Same framework as Shadow of the Horned Rat i think.

Reply 32 of 246, by RimidalTAKP

User metadata
Rank Newbie
Rank
Newbie
Dege wrote:
It's weird because I didn't change parts related to detecting or enumerating adapters. At least, I can't remember. […]
Show full quote
RimidalTAKP wrote:

Version 2.55 of dgVoodoo2 works good, using D3D8.dll

However, newer version 2.6 and 2.6.1 don't seem to work. The game only detects on-board HD Intel Graphics card.
I also tried latest WIP build 64 but no luck.

It's weird because I didn't change parts related to detecting or enumerating adapters. At least, I can't remember.

RimidalTAKP wrote:

Do you know what might the issue be? I tried all versions of the dlls included in v2.6, but can't get Nvidia card to get recognized on laptop. Using Windows 10 build 1903

Could you plz identify which WIP version of dgVoodoo broke the thing? The first WIP after 2.55.4 was WIP51.
You can download them from here: http://dege.freeweb.hu/temp/
I myself has no such a laptop, so I can't test it. 😖

Hey man, thanks for getting back to me.
I have tested this, and it looks like it broke in the WIP51 version (when you started adding D3D9.dll files in there)

http://dege.freeweb.hu/temp/dgVoodooWIP50.zip - this is the last working version, it detects onboard Nvidia card fine
http://dege.freeweb.hu/temp/dgVoodooWIP51.zip - this no longer works, only see Intel HD 530 graphics from this build onwards

I am using D3D8.dll file from the MS folder

Reply 33 of 246, by Dege

User metadata
Rank Oldbie
Rank
Oldbie

It's weird. The only possibly affecting part of the code is basically the same in WIP50 and 51.
What about the cpl? What adapters can you see listed in 'Adapters to use/enable' on the General tab? Only the Intel one?

Also, could you test both versions of the cpl from WIP50/51 debug versions and attach their debug output logs here, plz?

Reply 34 of 246, by Googolplexian

User metadata
Rank Newbie
Rank
Newbie

Hi Dege,

recently I played "Need for Speed II - Special Edition" with dgVoodoo2 and the result is quite good, but this game runs even better with nGlide instead. The performance with nGlide is better. I love dgVoodoo more because of the support of custom resolutions and aspect ratios and anti aliasing etc. dgVoodoo2 has more options than nGlide, but nGlide on the other hand runs smoother with this game. No matter what config I use. I think it's the same with the other NFS classics up to Porsche Unleashed.

Reply 35 of 246, by RimidalTAKP

User metadata
Rank Newbie
Rank
Newbie
Dege wrote:

It's weird. The only possibly affecting part of the code is basically the same in WIP50 and 51.
What about the cpl? What adapters can you see listed in 'Adapters to use/enable' on the General tab? Only the Intel one?

Also, could you test both versions of the cpl from WIP50/51 debug versions and attach their debug output logs here, plz?

Heya, apologies for delay in responding. I haven't been using my home laptop, but I was able to replicate the issue on another laptop.

I am able to replicate the behavior my work laptop that uses ATI card, that is, the game display adapter behavior changes from WIP50 and WIP51 builds in similar fashion, so I will provide logs.

Some background: I don't need to use DGVoodoo on the work laptop, because it can detect the ATI card fine. We (the players who play EverQuest using this old client) only need to use DGVoodoo2 when we use Nvidia laptop bards because the issue occurs due to Nvidia's optimus technology. Some reference posts:
DirectX 8 games not working with Nvidia Optimus and Windows 10
https://forum-en.msi.com/index.php?topic=2588 … 3196#msg1483196
https://www.tenforums.com/graphic-cards/18863 … imus-issue.html

Anyway, back to the providing the requested information.

Here is the EverQuest client behavior regarding the display adapter options:

Without DGVoodoo2, these are the Display Options on a laptop using ATI card:
95fr.jpg

With DGVoogoo2 WIP version 50 (and previous versions), these are the Display Options on the laptop using ATI card. This is effectively the DGVoodoo2 wrapper 'working' and taking over the game.
95fs.jpg

With DGVoogoo2 WIP version 51 (and above versions), these are the Display Options on laptop using ATI card. This is effectively the wrapper not working, and not firing correctly.
95fu.jpg

Using the dgVoodooCpl.exe , the list of "Adapter(s) to use / enable" is identical between the two versions of WIP50 and WIP51 and looks like this
95fv.jpg

regarding this:
"attach their debug output logs"

I have performed steps as follows.
Copied D3D8.dll from "C:\EQ\DGVoodoo2\wip50_dbg\MS\D3D8.dll" into the game folder, launched dgVoodooCpl.exe and Dbgview.exe. Then launched the game. Refer to attached file ATILaptop-WIPbuild50.LOG

then performed same for D3D8.dll file from "C:\EQ\DGVoodoo2\wip51_dbg\MS\D3D8.dll", refer to attached file ATILaptop-WIPbuild51.LOG

If you like, I can perform the same steps on my NVIDIA laptop, but behavior should be similar. Basically, the graphics adapter options change between WIP50- builds and WIP51+ builds. I noticed this in the comments for WIP51:

=========================
WIP51:
=========================

Altough this is versioned as 2.55.5, it's compiled from the main dev branch (I was sluggard to raise version).
This version contains a lot of refactored code, so I might have broken things in spite of continuous testing.

- First version of D3D9 (shader model 1.x) is added (quite untested)
- Refactored code

Thank you so much for your time on this issue, much appreciated!

Attachments

  • Filename
    ATILaptop-WIPbuild51.LOG
    File size
    3.37 KiB
    Downloads
    9 downloads
    File license
    Fair use/fair dealing exception
  • Filename
    ATILaptop-WIPbuild50.LOG
    File size
    2.81 KiB
    Downloads
    6 downloads
    File license
    Fair use/fair dealing exception

Reply 36 of 246, by RimidalTAKP

User metadata
Rank Newbie
Rank
Newbie

Here is similar output from my NVIDIA laptop:

Using WIP50 debug version, here are in-game options
95h7.png

Here is control panel view
95h6.png

Attached is the debug file: DESKTOP-nvidia-wip50.LOG

Using WIP51 debug version, here are in-game options
95h8.png

Here is control panel view
95ha.png

And attached is debug file: DESKTOP-nvidia-wip51.LOG

Interesting Finding
When using WIP50 version, I noticed in debug log file that it didn't detect nvidia card.
[dgVoodoo] INFO: Direct3D8 (0438ECC8) Device 0: Name: "Intel(R) HD Graphics 530", Description: "\\.\DISPLAY1", Monitor rect: (0, 0, 1920, 1080)

So I tested with this build instead http://dege.freeweb.hu/dgVoodoo2/dgVoodoo2_55_4_1_dbg.zip
cpl.exe showed same version 2.55.4 but behavior was noticeably different

attached are stable files:
in-game options are the same as wip50 (display1 adapter)

control panel view:
95hj.png

refer to attached debug log file: DESKTOP-nvidia-Stable-2.55.4.1.LOG
in here we can see Nvidia card detected and used properly
[dgVoodoo] INFO: Direct3D8 (04301428) Device 0: Name: "NVIDIA GeForce GTX 1060", Description: "\\.\DISPLAY1", Monitor rect: (0, 0, 1920, 1080), system primary monitor

during the game running, can see task manager using the NVIDIA card:
95hh.png

whereas using WIP50 (and of course WIP51+) , in task manager, the nvidia graphics adapter stays at 0% and only Intel HD graphics 530 gets cpu usage

so it seems now there's a difference between stable 2.55.4, wip50 (also version 2.55.4), and of course wip51 onwards (and stable 2.6 onwards)

between wip50 and wip51 there is noticable difference in in-game options
but it seems WIP versions and Stable versions also behave differently

curious indeed

Attachments

Reply 37 of 246, by RimidalTAKP

User metadata
Rank Newbie
Rank
Newbie

While I was doing some testing on laptop, I discovered that what was potentially breaking things was this setting (or lack thereof)

Annotation 2019-10-09 180541.png
Filename
Annotation 2019-10-09 180541.png
File size
55.95 KiB
Views
855 views
File license
Fair use/fair dealing exception

I created profile for eqgame.exe and manually set it to NVIDIA high performance.
Tested with latest stable build: dgVoodoo2_62_1.zip

seems to be working fine, detecting NVIDIA 1060 graphics card now in-game

So, I think we can disregard all of the above? 😀

thanks for your help!

Reply 38 of 246, by Dege

User metadata
Rank Oldbie
Rank
Oldbie

Thanks for the extensive feedback!

But still there is something I don't understand.
Optimus and Enduro (for AMD GPU's) technology basically disables the discrete gpu for pre-DX9 interfaces, games built on those can only see the integrated one but all other (higher) should see both of them.
Maybe you can tweak the nvidia cpl to force only one of the integrated/discrete for a DX11 game but it doesn't explain why there is difference between nvidia-2.55.4.1 and nvidia-wip5x.

In nvidia-2.55.4.1 log there is only "NVIDIA GeForce GTX 1060" listed,
in nvidia-wip5x there is only "Intel(R) HD Graphics 530" listed

with the same nvidia cpl profile settings. That's what I don't understand, they should match, or, they both should list both of the gpu's by default because the game is DX11 if it's run through dgVoodoo (like both of them are listed in dgVoodoo CPL in the 'adapters' list).
As if the presence of dgVoodoo dlls with different versions had effect. 😕

Update: I remember I changed the source of device description (\\.\DISPLAY vs textual description) back in some early version but that shouldn't affect the detection method. I'll have a look into it though.

Reply 39 of 246, by RimidalTAKP

User metadata
Rank Newbie
Rank
Newbie

After the diagnostic troubleshooting session, I don't think there is an issue you need to investigate.

I think what threw me off was the change in device description text between the versions. Here is some background:
On my previous Nvidia laptop, I already configured high performance mode / nvidia card for the eqgame.exe to try to get it to work in various configurations. This was when versions v2.55 and below were the latest, where all you get would be \display1 in the game. That laptop sadly died sometime earlier this year.

I got a new nvidia laptop after some months, and set it up the same with v2.55 of dgvoodoo2, saw it use \display1 and the watermark, assuming it's all working, but not thinking much about the specifics of nvidia control panel settings. I noticed v2.6 came out and I tried using that, but it would only detect/display the Intel HD graphics card in the in-game adapter options, so I went back to v2.55 and continued using that.

After some months I kept trying newer versions, but it only detected Intel HD graphics, which is when I posted here.
In collecting debug logs yesterday, I noticed it was only using Intel HD graphics all along for all the versions. I wasn't aware of this previously because I assumed \display1 meant it was working due to previous laptop's config.
In collecting WIP50 debug logs, I noticed Nvidia card wasn't being detected and used for old version either. The logs I collected above was basically me trying to figure out why only Intel HD graphics was firing when looking at task manager performance, and in the debug logs.

What was actually happening was that I didn't enable high performance mode / nvidia card for eqgame.exe on the new laptop. I turned this on after log collecting above.
After setting this, it started detecting the Nvidia 1060 graphics properly on all versions. Checking now with WIP50, WIP51, stable 2.55, stable 2.6, and latest stable v2.6.2 it is detecting and using Nvidia 1060 graphics just fine. This is both with older versions, where the adapter shows as \display1, and also with the newer builds where the text shows proper adapter name.

The device description switching from \display1 to the proper adapter name tricked me. Under the hood, it wasn't using Nvidia card at all even with old versions. I wasn't aware of this until I fired up the debug logs to capture the troubleshooting info. After I manually set high performance mode for the eqgame.exe executable to explicitly force it to use Nvidia card, it all started working properly.

So no need for you to action anything. The act of troubleshooting and debugging pointed me to the missing nvidia control panel setting I forgot to apply on my new laptop.

All is well 😀 carry on, nothing to see here...
at least we had fun right?