It's no big secret that 2D heavy D3D games haven't really been the strong suit of D7VK, to put it midly... until now. This release marks a major milestone in our support for 2D/3D interoperability. Taking a lesson from the legacy presentation path we've added in v1.8, we've since implemented a system of delayed image uploads and dirty tracking, which postpones any image copies until the last possible moment (in the JIT ethos). This has had a dramatic impact on performance in games which make heavy use of 2D elements and image composition.
| Anno 1503 - v1.8 | Anno 1503 - v1.9 |
|---|---|
|
|
In some cases, the improvements are not only in performance, but also in overall scene correctness, fixing both missing 3D and 2D elements.
| Hogs of War - v1.8 | Hogs of War - v1.9 |
|---|---|
|
|
The new tracking system doesn't only guarantee both correctness and better performance, it also:
- lowers GPU usage
- has a lower overall memory footprint (in conjunction with some additional cleanup done for this release)
- generally improves frametime consistency in 2D heavy scenarios
Though well behaving/purely 3D games are mostly unaffected, when considering bad behaving games the differences between v1.8 and v1.9 can be quite dramatic on all accounts.
| Combat Mission 3: Afrika Korps - v1.8 | Combat Mission 3: Afrika Korps - v1.9 |
|---|---|
|
|
Fixes/additions:
- Implemented full surface dirty tracking, both for DDraw and D3D9 surfaces, with a dramatic impact on performance and the correctness of image composition. This has fixed numerous bugs relating to missing 2D and 3D content, closing over 30 pending issues on our tracker.
- Unified D3D9 objects between object interfaces in order to reduce the overall memory footprint and fix corner case multi-versioned interface use, which has fixed rendering in Dungeon Keeper 2.
- Slightly improved indexed draw performance by tweaking D3D9 index buffer sizes.
- Thanks to @CkNoSFeRaTU we've drastically improved color key transparency precision, especially on Nvidia GPUs.
- Also thanks to @CkNoSFeRaTU, we've fixed clipping related missing geometry and shadows in various games, such as RIM: Battle Planets and Revenant.
- Fixed a color key value overrun issue which was causing white text backgrounds in various Combat Mission series games (discovered by @CkNoSFeRaTU).
- Fixed missing loading screen backgrounds in Gothic 1 / 2.
- Added a workaround for concurrent device use in scene drawing, fixing rendering in The Settlers IV.
- Fixed missing pause screen menu in Metal Gear Solid Integral.
- Fixed a black screen issue with the PlayOnline Viewer (Final Fantasy 11 launcher).
- Added a compatible device name config option, needed to enable hardware acceleration in Dungeon Keeper 2.
Needless to say, all the improvements mentioned above have been made path of both our default rendering path and legacy presentation, to the benefit of both 3D and 2D heavy titles. As such, though we still have a few challenges left to address, I believe we've now cleared our top problem area and have vastly improved compatibility with nearly all early D3D games.
You can expect the usual flow of fixes and improvements to continue in the next releases, however we've run out of miracles in the performance department. With most inefficiencies now addressed, there's only room for some marginal improvements here and there at best. But, should you run benchmarks on the current status quo, I'm sure you won't be disappointed.





