Skip to content
This repository has been archived by the owner on Jan 21, 2025. It is now read-only.

Version 0.30 - Froglet 🐸🍼

Pre-release
Pre-release
Compare
Choose a tag to compare
@misyltoad misyltoad released this 28 Oct 16:15
· 1447 commits to master since this release

Smol frogs be like: ᵣᵢᵦᵦᵢₜ ᵣᵢᵦᵦᵢₜ 🐸🍼


Features

  • Rebased upon latest DXVK 1.4.4! 🐸🎉
  • Improved performance when locking D3DPOOL_DEFAULT textures via. dirty tracking to avoid unnecessary waiting and copies.
  • Improved performance by avoiding throwing out D3DUSAGE_DYNAMIC buffers on unlock.
  • Allow DISCARD on non-D3DUSAGE_DYNAMIC resources, which may improve perf in some cases (mirrors native behaviour.)
  • Other misc. locking changes.
  • Implemented D3DRS_POINTSIZE, D3DRS_POINTSIZE_MIN, D3DRS_POINTSIZE_MAX, D3DRS_POINTSCALE_A, D3DRS_POINTSCALE_B, D3DRS_POINTSCALE_C, D3DRS_POINTSCALEENABLE and D3DRS_POINTSPRITEENABLE.
  • Implemented D3DRS_SHADEMODE.
    • Fixes some GameMaker titles.
  • Implemented shader predication (experimental).
  • Compressed down and improved normalization of fixed function shader keys.
  • Implemented a new, more efficient method of hazard tracking enabled for all titles.
    • Removes the now-redundant d3d9.hasHazards option.
  • Improved perf. by respecting access type across all of WaitForResource.
  • Improved perf. by checking for resource usage before before syncing with the thread in WaitForResource. (mirrors D3D11 change)
  • Faked AMD for CS:GO to bypass NVAPI
    • Note: You still cannot play CS:GO with D9VK or Proton w/ VAC due to signature checks! (You will be dumped into -insecure on launch.)
  • Improve perf by removing duplicate blend state sent to the CS.
  • Generate adapter LUIDs when Vulkan does not provide them.
  • Spoof device/vendor for Halo 2
    • Fixes it falling into an invalid render path on some systems where it'd render degenerate tris for fullscreen passes.
    • Fixes it showing annoying unsupported driver/device messages on startup.

Bug Fixes

  • Implemented d3d9.invariantPosition option.
    • Enabled this for Halo 2, as otherwise imprecision messes up depth test on NV.
  • Disabled D3DLOCK_DISCARD and D3DLOCK_NOOVERWRITE for anything other than D3DPOOL_DEFAULT pool
    • Fixes flickering in Halo CE.
  • Retry setting display mode without frequency if it fails.
    • Fixes Battlefield 2 CTD.
  • Respected projection texture stage flag in PS 1.x
    • Fixes Psychonauts' video projections and shadows in some older titles.
  • Apply given swizzle to texture sample ops.
    • Affects a lot of games, pretty silly oversight on my behalf.
  • Disabled alpha test if alpha to coverage is active.
    • Fixes the spoopy ghosty people in Alan Wake 2.
  • Zero-initialized output registers that get used
    • The Sims 2 sometimes only writes to .x of them, but reads .yzw and expects 0.
  • Fixed a bug where StretchRect would fail if the dst sample count was != 1.
    • Fixes Anno 1404 and Halo 2's player customizer notably.
  • Fixed handling of Z extent with POSITION_T, notably wrt. depth testing being enabled.
    • Fixes Manhunt.
  • Use VK_BLEND_FACTOR_ONE when with an X8 render target and wanting to get DESTALPHA/INVDESTALPHA.
  • Try-catch all of Present, not just the presentation.
    • Fixes a bug where if recreation failed the application would crash.
  • Fixed the return value for failed presentations.
  • Set the driver version to INT64_MAX rather than UINT64_MAX.
    • Some games, such as Halo 2, interpret this as signed data.
  • Fixed a bug where multiple mips were exposed in RT views causing validation errors.
  • Fixed the wrong view being used in the generateMipMaps call.
  • Default invalid/OOR blend factors to ZERO rather than ONE
    • Fixes lighting in Payday 2.

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
  • You: for your love and support and helping me get to where I am today! ❤

Thank you and Enjoy! <3

- Josh 🐸 ❤️ ~