Releases: misyltoad/d9vk
Version 0.40.1 - Croakacola Zero 🥤0️⃣🐸
Of course @tannisroot finds a hidden bug via. The Sims 2 that's existed since forever and is mildly significant...
Please don't do it again! 🐸🐸🐸🐸🐸🐸🐸🐸🐸🐸
Bug Fixes
- Fixed the default value for COLOR0 in vertex shaders to be vec4(1)
- Fixed a bug where the slot bits for default shader outputs were being incorrectly applied and therefore incorrectly patched by the backend causing them to be replaced with vec4(0)
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 🐸 ❤️ ~
Version 0.40 - Croakacola 🥤🐸
Ah, refreshing. Much better than the ripoff by that 🐕 called 'Bepis'.
Features
- Implemented the ability to use more than 4GB VRAM on 32-bit applications.
- Helps greatly in modded Skyrim/Oblivion, etc.
- Enabled async presentation across all vendors
- Removed an unncecessary CS sync point in query data retrieval
- Minor query flushing improvements
- Improve internal time measurement (use new platform-specific clock)
- Works around MinGW's
high_resolution_clock
being absolutely terrible.
- Works around MinGW's
- Deferred
MANAGED
+SYSTEMMEM
buffers upload untilPrepareDraw
time- Fixes performance in Risen and Legend of the Heroes: Trails of the Sky.
- Implemented
D3DTA_CONSTANT
- Fixes bloom rendering in SpinTyres/Mudrunner
- Improved D3D9Ex compatibility/specifics
- Handled ResetEx vs. Reset nuance.
- Misc. code cleanup/refactoring
- Made
WRITEONLY
buffers mapped directly- May improve performance, but also works around a game bug in CS:GO where it was still writing to the buffer after it was unlocked.
- Implemented
SetDialogBoxMode
- Implemented vertex blending
- Implemented indexed vertex blending (including for SWVP)
- Remade the sampler count HUD to use the new more extensible HUD system
- Minor performance improvements wrt. binding shaders, binding input layouts and constant uploading
- Added option
d3d9.dialogBoxMode
, which can be enabled to disable D9VK taking exclusive fullscreen
Bug Fixes
- Correctly handled a
w == 0
quirk forPOSITION_T
- Fixed Sun Flares in GTA: SA.
- Fixed
NaN
/INF
light attentations rendering incorrectly (@CME42)- Fixes Virtual Vodka demo by Fairlight.
- Fixed ending
TIMESTAMPDISJOINT
queries - Removed exposing
VCACHE
for Nvidia (matches native) and updated the values to what modern cards expose. - Fixed memory tracking behaviour for D3D9Ex
- Fixed Vampire: The Masquerade Bloodlines launching on machines with high amounts of VRAM
- Worked around a game bug, it was creating textures until it couldn't anymore to measure VRAM amount.
- Fixed mirrors in Max Payne 2.
- Implicitly saturated some fixed function operations
- Fixed user videos on TVs in The Sims 2.
- Worked around a game bug where they would display black if
X4R4G4B4
was exposed as a potential RT format.
- Worked around a game bug where they would display black if
- Fixed Silent Hunter 3 rendering.
- Fixed function texture transform paddings now behave as 1 in range of the actual input to what the rasterizer texcoord, and 0 outside of that.
- Fixed aspect ratio in Senran Kagura Shinovi Versus
- Worked around a game bug where if any ultra-wide modes were exposed (even though the game is 16:9 only) it would chose them by disabling non 16:9 modes for that game.
- Fix width/height for "partial presentations" that we do.
- Fixed Dungeons and Dragons: Dragonshard rendering as black
- It was writing to
FOG
but it didn't haveFOG
enabled which we weren't treating properly.
- It was writing to
- Fixed shadows in Crysis rendering incorrectly
- The Microsoft documentation for the
TEXKILL
op is incorrect, all 4 components are used when the shader is SM2 or above.
- The Microsoft documentation for the
- Fixed a potential race that could happen in ProcessVertices
- Fixed Metal Slug X crash to startup
- A bug in this old version of ANGLE lists
D3DFMT_D32
as a possible depth format but then proceeds to not handle it in the OpenGL conversion, causing anUNREACHABLE
to occur and thus a crash. - Disabled
D3DFMT_D32
for this game.
- A bug in this old version of ANGLE lists
- Fixed autosculpt in Need for Speed: Carbon
- Mark
MANAGED
as needing an upload in Lock rather than Unlock, the game relies on this quirk as it doesnt unlock it until after the frame but still expects you to see the preview by locking it.
- Mark
- Carried over the The Sims 2 app profiles over to the spinoff titles (@nelsonjchen)
- Fixed black trees in Risen 1
- Position needed to be marked as invariant.
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 🐸 ❤️ ~
Version 0.30 - Froglet 🐸🍼
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
andD3DRS_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.
- Removes the now-redundant
- 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.)
- Note: You still cannot play CS:GO with D9VK or Proton w/ VAC due to signature checks! (You will be dumped into
- 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
andD3DLOCK_NOOVERWRITE
for anything other thanD3DPOOL_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 🐸 ❤️ ~
Version 0.22 - Kero Kero 🐸🐸
Ribbit 🐸
A smaller bug fixy release (frogs eat bugs) with some important performance improvements.
Features
- Implemented Set/GetSoftwareVertexProcessing
- Worked around a game bug in The Sims 2 where it would try to render shadows to a A8 texture and completely mess everything up
Bug Fixes
- Fixed a regression where full constant uploads were happening all the time
- Fixed some games complaining about drivers being too old to run
- Return D3DERR_INVALIDCALL when trying to create textures with unsupported formats
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 🐸 ❤️ ~
Version 0.21 - Lollihop
I know, the pun really sucks 🍭🐸
Features
D3D9
- Implemented D3DBLEND_BOTHSRCALPHA
- Implemented D3DBLEND_BOTHINVSRCALPHA
- Implemented locking of MSAA images with intermediate resolve (invalid behaviour in d3d9 docs, but everyone supports this)
- Implemented locking of depth stencil images (and MSAA depth stencil images)
- Implemented video formats YUV2 and YUVY via. compute shader
- Implemented extended constant set when software vertex processing is enabled
- Minor performance improvements
DXSO
- Implemented TexM3x3Spec
- Implemented TexM3x3VSpec
- Implemented constant bounds checking (fixes vert. explosions in The Witcher 2) by @doitsujin
Fixed Function
- Implemented D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR
- Implemented D3DTSS_TCI_SPHEREMAP
- Use unresolved arguments for fastpath decision, may improve performance
Bug Fixes
D3D9
- Made ProcessVertices support optional (fixes D9VK on Haswell)
- Fixed texture offsets and alignments when locking block compressed textures
- Fixed a bug in UpdateSurface where block compressed textures had incorrect copy offsets
- Fixed a crash when calling SetLOD on a D3DPOOL_SYSTEMMEM image
- Handle degenerate present regions (fixes a crash when playing a recent version of A Hat in Time)
- Set scissor to viewport (fixes minimap in GTA IV)
- Removed pointer initialization in CreateVertexShader (matches native behaviour, fixes a crash in The Witcher)
- Fixed the texture (and not the mip) extent being used in ColorFill on full surfaces
- Fixed src/dst subresource being confused in GetRenderTargetData (fixes cars in GRID)
- Report NOTAVAILABLE rather than INVALIDCALL for unavailable sample counts
- Fixed uploads of partial locking of buffers -- some games go OOB
- Removed unbinding for mismatching rt/ds extents (introduces regressions)
- Fully wait in GetRenderTargetData for it to complete (fixes rthdribl 2.0 demo)
- Fixed black walls in Serious Sam 2 (improved border color normalization)
DXSO
- Always export COLOR0 and COLOR1 in vertex shaders (fixes rendering errors in some fixed func. games)
Fixed Function
- Ensured normalize(0) -> 0 in fixed function (@CME42 fixes a bug in fr-030 demo)
- Fixed a bug where fixed function shaders were generating incorrect keys
- Handled color/alpha write special case behaviour for D3DTOP_DOTPRODUCT3
- Fixed some minor validation errors and a bug where some fixed function shaders were using features not exposed in GLSL
- Ignore texcoord count given to API when special transform flags are used.
- Respect count for texture projection, rather than use the image count
- Workaround for an Nvidia bug where they were using the incorrect value for projection
- Fixed bias in D3DTOP_DOTPRODUCT3
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 🐸 ❤️ ~
Version 0.20 - Frog Cookie 🐸🍪
henlo 🦢
🐸🍪🐸 Frog Cookies Detected 🐸🍪🐸
🐸🍪🐸 Eat the frog cookies! 🐸🍪🐸
Features
Improved Perf
- Stopped using DEVICE_LOCAL memory for shader constant buffers (@doitsujin)
- Misc. performance improvements
- Skip waiting for D3DLOCK_READONLY on buffers
- Optimized UndirtySamplers
General
- Implemented d3d9.samplerAnisotropy option
- Implemented d3d9.maxAvailableMemory option
- Implemented d3d9.floatEmulation option
- Implemented GetRasterStatus (for Undertale)
- Cache monitor info
- Implemented ProcessVertices (Software Vertex Processing)
- Uses a geometry shader that emits no vertices and does buffer writes
- Correctly implement D3DMULTISAMPLE_NONMASKABLE
- Implemented TexBem, TexM3x2Tex and TexM3x3Tex
- Enabled lenient clear for some UE3 titles
- Otherwise they don't end up clearing their full RT due to viewport rules and random alignment
- Implement undocumented managed pool for D3D9Ex
- Implement async. present
- Implemented presentation regions
Bug Fixes
- Ignore lock flag DISCARD when NOOVERWRITE/not a dynamic resource is specified
- Improved nested locking behaviour and other locking fixes
- Fixed systemmem texture wait behaviour
- Ignore partial discards for textures
- Fixed a bug setting dirty vertex/pixel shader flag in SetTextureStageState
- Improved memory tracking behaviour
- Fixed ResolveZ implementation
- Fixed some blending behaviour in fixed function pipeline
- Improved app compatibility in CheckDeviceFormatConversion
New Fixed Function Support!
- Implemented fixed function lighting
- Implemented fixed function frog fog (🐸🌁🌫)
- Lots more (eg. texcoord offset, tci_cameraspaceposition, specular magic!)
There is a lot more that wasn't mentioned above too, but was either bugs fixed that didn't affect the previous release or new behaviour or too minor to mention (I actually want to release this and not spend all day writing a changelog 🐸).
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 🐸 ❤️ ~
Version 0.13f - Hypnofrog
Croak, here to release 0.13f. (the f stands for 🐸)
This is a release has come a lot sooner than usual but still has quite a lot of new features and bug fixes.
Enjoy! 😊
Features
New General API Stuff
- Properly implement queries for format support w/ respective usages
- Implement D3DOK_NOAUTOGEN return code for CreateTexture functions
- Quietened a lot of stubs that don't matter
- Improved return codes to not advertise things we don't support
- Refactored adapter code, w/ misc. cleanup and safer code
- Very basic border color support
- Fixes shadows in some games that use inverse blending + border of ~ 1,1,1,1
- Improved AllocUpBuffer behaviour to reduce memory fragmentation (@doitsujin)
New Fixed Function Support!
- Implemented D3DTSS_TEXCOORDINDEX
New Shader Support!
- Implement DemoteToHelperInvocation for NV/Intel for Discards
- Implemented sign and bias modifiers
- Implemented TexReg{Ar,Gb,Rgb} ops
- Implemented TexDp3Tex
- Implemented Crs
Bug Fixes
D3D9
- Removed support for R8G8B8 (not supported anywhere natively anymore, and causes issues in newer games that use it incorrectly
- Add a low weight implicit flush to UpdateTexture
- Can improve loading times in some games where we used to stall on some uploads (eg. Sims 2)
- Check mip level range in GetCubeMapSurface (@K0bin)
DXSO (Shader Fixes)
- Saturated diffuse and specular color on PS 1.x and 2.x (COLOR0 and COLOR1 outputs in VS)
- Clamped constants to -1.0f and 1.0f in PS 1.x shaders
- Corrected Dz and Dw implementation
- Fixed texcoord/texcrd op across all shader models (@Joshua-Ashton & @K0bin)
- Fixed implicit samplers for indices > 0
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 🐸 ❤️ ~
Version 0.13 - Hypnotoad
Ribbit, here is 0.13 for you all. It's been a while since we marked a stable release 🐸
🐸🐸 Hypnotoad commands you to download! 🐸🐸
Features
- Implemented fixed function
- Includes everything except lighting, texcoord transforms, spheremap texcoords and constant texture arg.
- Works well enough for most games if you can deal with with them being fullbright.
- Better fallback for D16_S8, going to D24_S8 if it is not supported rather than D32
- Implemented GetGammaRamp
- Implemented ColorFill
- Added a way to workaround resource hazards
d3d9.hasHazards = True
to enable hazard checks -- only necessary on AMD
- Implemented disjointed timestamp queries
- Implemented Hardware Cursor support (for games like old WoW and Guild 2)
- Implemented implicit samplers for PS 1.x (ie. cubemaps/volume textures)
- Respect ordinal indices for exports of the DLL (may help with some anti cheats or older games)
Better Performance
- Use a push constant for the Alpha Test Reference
- Only dirty a clip plane if it is enabled
- Avoid redundant vertex buffer changes (@doitsujin)
- Offload input layout creation to command stream (@doitsujin)
- Only update input assembly state if necessary (@doitsujin)
- Avoid referencing dxvk device in BindSamplers
- Constant uploading optimizations (via. ranges & dirtying)
- Implemented async. presentation
- Avoid some unnecessary syncs with CS thread
- Use new DXVK signals as frame sync events
- Enabled early discard for ACO compiler
Bug Fixes
- D3D9
- Clamp reference counting, avoid it wrapping around
- Fixes a crash in Star Wars: The Force Unleashed
- Use a private reference for auto depth stencil
- Fixes another crash in Star Wars: The Force Unleashed
- Normalized floating point inputs given to us (ie. remove NaNs)
- Fixes a glowy man in Mass Effect: 2
- Fixed a bug in GDI code where things would not be updated after being modified
- Fixed the range of returned elements in GetDeclaration
- Fixes a bug in Assassin's Creed
- Correct mip view indices for framebuffer
- Fixes black rendering in Lego Star Wars Saga
- Normalize mipmapLodBias in range -15.0f to 15.0f and round to nearest .5
- Avoids invalid state and stops runaway pipeline creation for games that using mip fading (a better solution instead of rounding would be good here)
- Fix fast path for StretchRect occasionally firing when it shouldn't
- Fixes wacky colours in GTA: SA
- Use BC2 for DXT2 rather than BC1 which was incorrect
- Fix crash on SWVP shaders
- Correct range check in SetRenderState to mirror native behaviour
- Fixes crash in SWTFU
- Disable the READONLY lock flag for games in the Risen series
- Fixes black rendering as they use it incorrectly
- Clamp reference counting, avoid it wrapping around
- DXSO (Shaders)
- Fixed a bug when parsing shaders that used relative indices for control flow ops.
- Account for header token in bytecode size
- Fixes games that readback their own shaders
- Correct EXPP implementation
- Fixes spots in HDR in TESIV: Oblivion, Fallout Series
- Correct LIT implementation
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 🐸 ❤️ ~
Version 0.12 - Cool Lookin' Blue Frog
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 🐸 ❤️ ~
Version 0.11 - Poison Dart
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"
- Fix incorrect index being taken out of the bool bitfield in the shader
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.