Skip to content
Pre-release

@Joshua-Ashton Joshua-Ashton released this May 29, 2019 · 837 commits to master since this release

Hi! I'm happy and pleased to release version 0.12 for all you froggos out there 🐸 ❤️ 😄

Hope you enjoy, ribbit! 🐸

Features

Improved Performance

  • Entirely rewritten texture code
    • Should be faster in every instance and correct some memory errors.
    • SystemMem textures are system-mem only and have no image, copies to real textures (ie. DEFAULT) are done when needed, reducing video memory and improving performance.
  • Refactored and rewritten presentation and swapchain code
    • Includes support for vsync + proper fullscreen w/ mode setting. Fixes other issues also.
  • Contiguous surface allocation
    • Improves stuttering in games which spam and abuse CreateTexture (eg. A Hat in Time, League of Legends)
  • Improve determining when we should wait on textures.
  • Optimized image views by avoiding creating duplicates and instead dually referencing existing ones if SRGB formats do not exist for the given D3D9 format.

New Features

  • Build
    • You can now choose what modules to build, if you so desire.
  • Queries
    • Minor query optimisations
    • Implement D3DQUERYTYPE_VERTEXSTATS
  • Alpha to Coverage
    • Supports both the AMD/NV driver hacks
    • Fixes hair in Final Fantasy [some roman numeral].
    • May improve appearance of other games also
  • Cursor Position Setting
    • The cursor position is correctly set/flushed when the application desires (immediate or at Present time)
  • Partial support for Presentation Rects
    • Fixes the fact that A Hat in Time doesn't recreate its backbuffer when making the resolution go down. (pls fix devs ❤️)
  • Resolve Z
    • The AMD resolve-z hack has been implemented.
  • Initial Data
    • Added support for CreateTexture InitialData in the shared handle for D3DPOOL_SYSTEMMEM.
    • Fixes CS:GO
  • GDI Interop
    • There is now experimental support for GetDC/ReleaseDC.
  • Version Info
    • Correct version info is now reported in the DLL, this should satisfy some anti-cheats.
  • GetStreamSourceFreq got implemented (by Rhedox)
  • Basic support for D3D9Ex

Bug Fixes

  • D3D9
    • We now hold a reference to the auto depth stencil created by device Reset, some applications depended on this (ie. Gothic III)
    • Minor query fixes
    • Fixes for initializing both regular and lazy alloced resources
      • Fixes "punch card" issue in The Sims 3
    • Fix for stride returned for ATI1/2 formats not respecting Mip
    • Don't apply view sample swizzle on depth views (fixes some validation errors)
    • Fixed vsync + fullscreen issues
    • Corrected some cursor bugs where it would vanish in, for eg. GW2
    • In theory, some OOM issues may be corrected.
    • Fixed R8G8B8 fixup not working properly in some instances.
    • Fix mode order being incorrect.
    • Some extra undocumented interfaces are now stubbed and exposed (ie. Direct3DCreateShaderValidator9, PGSPError, etc)
    • Corrected refcounting for surfaces and fixed a bug where sometimes invalid memory would be used/deleted there.
    • Fixed a bug where UpdateSurface would pass an incorrect extent to Vk.
    • Fixed a bug where RestoreDisplayMode would fail
    • Fixed FP precision being set invalidly on x64 MSVC builds.
    • Fixes for multisample state not being bound in some instances causing no rendering.
  • DXSO (Shaders)
    • Fixed a GPU hang in some games on RADV. This has been fixed with discard deferral.

Notes

Please do not use wine's d3d9x or d3dcompiler with d9vk. They make invalid API calls and generate bad shaders. I cannot stress this enough.

If you are compiling with MinGW, please use the dwarf2 exception patch to improve performance.

Acknowledgements

  • ドイツ人 (doitsujin): for creating the base of the project, DXVK
  • Rhedox and CME: for helping with debugging
  • VKx and Frog Family Discords: for helping with testing

Thank you and Enjoy! <3

- Josh 🐸 ❤️ ~

Assets 3
May 28, 2019
[d3d9] Account for mip level when returning fake stride of ATI1/2
Pre-release

@Joshua-Ashton Joshua-Ashton released this May 12, 2019 · 867 commits to master since this release

hi im release 0.11 now enjoy 🐸
i called it poison dart because thats like a frog thing isnt it
wahoo

Features

Improved Performance

  • Rewritten buffer code
    • Should be faster in every instance and correct some memory errors.
  • Flushes
    • Flush aggressively when rt of index 0 changes.
    • No longer flush inappropriately on some copies.
    • Mirror D3D11 flush behaviour
      • Should improve some scenarios where a sync is involved.
  • Minor query changes.
  • Defer framebuffer binding until we are about to draw.
    • Avoids needless rebinds saturating CS thread whenever a single RT/DS changes.
  • Implemented partial clears with respect to viewport/stencil and a fastpath if the whole rendertarget is cleared.
    • Fixes shadows in A Hat in Time (1)
  • Support for cube render target/depth stencils
    • Fixes flickering water in TESV: Skyrim

Bug Fixes

  • D3D9
    • Implement memory "tracking" and report OOM errors correctly back to the application.
    • Respect SRGBWRITE when Clear is called for the color.
    • Fixed things being invisible in some games due to vertex texturing being broken (they were always being depth compared)
  • DXSO (Shaders)
    • Fix incorrect index being taken out of the bool bitfield in the shader
      • Fixes shadows in A Hat in Time (2)
    • Correct projected textures (texldp, texProj in HLSL)
    • Correct SinCos implementation
      • Fixes bad colours/incorrect textures in some games.
    • Correct Pointsize
    • Slightly better support for SM1 shaders
      • Fixed incorrect swizzle on address register due to typo
      • Implemented SM1 float "bitshifting"

Notes

Please do not use wine's d3d9x or d3dcompiler with d9vk. They make invalid API calls and generate bad shaders. I cannot stress this enough.

If you are compiling with MinGW, please use the dwarf2 exception patch to improve performance.

Acknowledgements

  • ドイツ人 (doitsujin): for creating the base of the project, DXVK
  • Rhedox and CME: for helping with debugging
  • VKx and Frog Family Discords: for helping with testing

Thank you and Enjoy! <3

- Josh 🐸

Edit

I've re-uploaded the release here with a corrected RELEASE version and naming scheme.

Assets 3
May 12, 2019
[dxso] Correct conversion moving out of a0 register
Pre-release
Pre-release

@Joshua-Ashton Joshua-Ashton released this May 8, 2019

I am pleased and happy to announce the first release of D9VK -- Version 0.10!

It's beginning to run a large amount of modern (ie. Shader Model 2 and 3) D3D9 games fairly well, so I figured I should probably start shipping releases now that we are at this stage.

There are still a few missing features (Shader Model 1 support is incomplete -- as well as fixed function.)

Hopefully you'll try it out and it'll work. If it doesn't please do report an issue!

Notes

Please do not use wine's d3d9x or d3dcompiler with d9vk. They make invalid API calls and generate bad shaders. I cannot stress this enough.

Acknowledgements

  • ドイツ人 (doitsujin): for creating the base of the project, DXVK
  • Rhedox and CME: for helping with debugging
  • VKx and Frog Family Discords: for helping with testing

Thank you and Enjoy! <3

- Josh 🐸

Assets 3
May 8, 2019
[meta] Update dxvk.conf with d3d9 config options
You can’t perform that action at this time.