VOGONS


First post, by pineapple pizza

User metadata
Rank Newbie
Rank
Newbie

I tested these games using dgVoodoo 2.85. The configuration is default apart from the scaling mode that's set to "Stretched, 4:3 aspect ratio" and "Force vSync" is enabled. Using Windows 10 and RTX 2080 Super with 572.83 drivers. Confirmed the drivers aren't overriding dgVoodoo's scaling mode.

Viewport issue in Dawn of War (see attachment). This warning seems to repeat for each draw call in the logs:

[dgVoodoo] WARNING: Direct3DDevice9 (0BF61AD0): Draw*/Clear: Bounds of the current viewport is invalid for the current rendertarget.

Silent Hunter 3 apparently runs at a fixed 1024x768 resolution yet it ignores the scaling mode set in dgVoodoo and stretches to fill the monitor.
Error found in the logs:

[dgVoodoo] ERROR: Direct3D9 (066C2B10)::CreateDevice: Both focus window and device window are NULL or desktop window for presentation parameters 187433104. At least one of them must be non-NULL/non-desktop window for swapchains.

Also both games log some warnings related to texture resources, not sure if these are relevant:

Details
[dgVoodoo] WARNING: Direct3D9 (0BD143C8)::CheckDeviceFormat: Resource type D3DRTYPE_TEXTURE with format D3DFMT_R8G8B8 and usage (0x0)  is not available on device type D3DDEVTYPE_HAL with adapter format D3DFMT_X8R8G8B8.
[dgVoodoo] WARNING: Direct3D9 (0BD143C8)::CheckDeviceFormat: Resource type D3DRTYPE_TEXTURE with format D3DFMT_P8 and usage (0x1) D3DUSAGE_RENDERTARGET is not available on device type D3DDEVTYPE_HAL with adapter format D3DFMT_X8R8G8B8.
[dgVoodoo] WARNING: Direct3D9 (0BD143C8)::CheckDeviceFormat: Resource type D3DRTYPE_TEXTURE with format D3DFMT_DXT1 and usage (0x1) D3DUSAGE_RENDERTARGET is not available on device type D3DDEVTYPE_HAL with adapter format D3DFMT_X8R8G8B8.
[dgVoodoo] WARNING: Direct3D9 (0BD143C8)::CheckDeviceFormat: Resource type D3DRTYPE_TEXTURE with format D3DFMT_DXT3 and usage (0x1) D3DUSAGE_RENDERTARGET is not available on device type D3DDEVTYPE_HAL with adapter format D3DFMT_X8R8G8B8.
[dgVoodoo] WARNING: Direct3D9 (0BD143C8)::CheckDeviceFormat: Resource type D3DRTYPE_TEXTURE with format D3DFMT_DXT5 and usage (0x1) D3DUSAGE_RENDERTARGET is not available on device type D3DDEVTYPE_HAL with adapter format D3DFMT_X8R8G8B8.
...
[dgVoodoo] WARNING: Direct3D9 (0B7836C8)::CheckDeviceFormat: Resource type D3DRTYPE_TEXTURE with format D3DFMT_R8G8B8 and usage (0x0) is not available on device type D3DDEVTYPE_HAL with adapter format D3DFMT_X8R8G8B8.
[dgVoodoo] WARNING: Direct3D9 (0B7836C8)::CheckDeviceFormat: Resource type D3DRTYPE_TEXTURE with format D3DFMT_R8G8B8 and usage (0x1) D3DUSAGE_RENDERTARGET is not available on device type D3DDEVTYPE_HAL with adapter format D3DFMT_X8R8G8B8.
[dgVoodoo] WARNING: Direct3D9 (0B7836C8)::CheckDeviceFormat: Resource type D3DRTYPE_TEXTURE with format D3DFMT_A4L4 and usage (0x0) is not available on device type D3DDEVTYPE_HAL with adapter format D3DFMT_X8R8G8B8.

Reply 1 of 1, by Dege

User metadata
Rank l33t
Rank
l33t

I don't have this game so can't look into it right now but the picture (and the warning about the invalid viewport) tells me that this game is not compatible with scaling.

The typical case is that a game sets the resolution and resizes the rendering window to match it. Later (or right after that) it queries the window size to provide it to the rendering code, which is a generalized code that produces normalized coordinates that are scaled to the physical pixel size of the window.
Now, if scaling is forced then the rendering window size is the desktop size (say, 2560x1440 instead of 1024x768) so the rendering code overscales and tries to set a large viewport (2560x1440) on a small rendertarget (1024x768). That's why the warning is there and the image is large and cropped.

You can try to enable DirectXExt\DeferredScreenModeSwitch to defer the resizing of the rendering window, maybe the game queries the window size before that.
If it does not help then only patching the game executable what helps.