This release focuses on making sure all possible upload inefficiencies are minimized, thus a lot of games will get a significant CPU-bound performance boost as a result.
Fixes/additions:
- Implemented dirty texture tracking, to ensure that texture data is only uploaded when needed during SetTexture() calls.
- Refined and optimized how index buffer uploads are handled, by introducing a range of 5 predefined sizes that applications can use depending on the amount of index data they want to upload. This has the benefit of drastically speeding up small indexed draws and making more efficient use of memory by minimizing discards.
- Fixed/worked around missing or swapped mip maps in Unreal Engine 1 titles by enabling auto mip map generation (thanks to @elishacloud for the suggestion). This has the benefit of slightly improving performance as well, since all mip maps are now generated directly in video memory and don't require uploads.
- Added handling of gamma ramps via the dxvk (d3d9) backend, for better compatibility with various drivers.
- Fixed handling of texture/cube map render targets, which has addressed most rendering issues in Slient Hunter II and Giants: Citizen Kabuto.
- Added a workaround for applications that make improper use of vertex buffer lock flags (e.g. 1NSANE), resulting in a major performance boost when in base HAL mode, and correct (but comparatively less performant) rendering when using T&L HAL.
There are still quite a few remaining issues I'd like to look into before a v1.0 release, but things are definitely looking a lot better than they did 2 weeks ago.