- Topic Author
(EDIT: devblogs.microsoft.com/directx/world-of-...unning-on-windows-7/ )
(EDIT: Which I suppose means that it lacks this which came in effect with Windows 8 and taken further with Windows 10 software.intel.com/en-us/articles/sample...ip-model-swap-chains )
Metro Exodus and Division 2 can be toggled from in-game (Starting to see some nice performance gains with D3D12 too now.) should ReShade be preferred though Division 2 switched from the first games server-side FairFight to the stricter EasyAntiCheat although 4.0.2 is whitelisted and over time and through later updates additional versions might also slowly be whitelisted.
Devil May Cry 5 (Which is different from the previous Devil May Cry V often just called DMC V) also uses DirectX 12 but it has to be adjusted from the config file or the game will be set up to target D3D12 and if that isn't supported fall back to D3D11 which for Windows 10 and most newer GPU's it'll be D3D12 unless the config file is adjusted first changing the target from D3D12 to D3D11, would be nice with a in-game option for it but for some reason that wasn't added.
Not in metro, at least not for me and many others: with an RTX 2080, when you selected DX11, and restarted the game, the game simply hangs before the menu. You have to edit the config file to make it use dx12 to continue.
crosire wrote: ReShade does not currently support DX12. Both Metro and the latest WOW render with DX12 to my knowledge. IIRC there are options to switch to DX11 in both of them though, which would make ReShade work again.
More and more games support dx12, with DMC5 using DX12 by default without an in-game selector (you have to edit an ini file to move to dx11). Are there massive roadblocks to support dx12 (as in: a lot of refactoring is needed to the inner core to make it work) ?
Sigh and then we have game specific issues, API best-practices and total disregard for these and all kinds of broken things hitting low-level here with Vulkan and D3D12 could be a major roadblock for compatibility in a few games at worst but maybe I'm just worrying for nothing and the implementation itself is likely also quite time consuming for all the code that would still be needed regardless of DXGI and a common feature set and hookup into the API or DirectX but that's only part of it.
But the API is seeing more use and the games are also starting to show more performance gains and once shader model 6 and other features come into effect there will also be additional advantages over D3D11 beyond "merely" CPU multi-threading gains and overall performance and efficiency.
(Assuming the developers take their time implementing and using DirectX 12 in full but it's improving little by little. )
Well I would also like to see it supported, thinking the current Vulkan support means that API has a priority though before starting on a new one but I guess Crosire would have to say what the current roadmap for ReShade might be looking like.
Nice to see ReShade continuing development too, fixes and improvements and new features from 4.0 and on even without even more graphical API's added in the code and support for these and all that would require and then maintaining and what not. Not like I can say much on it but I'd imagine low-level is a bit of a different game entirely in how things work and what is needed and how they can at worst also break not that ReShade has game specific profiles or internals like that being a global injector but trying to maintain a good overall compatibility can probably be a even greater challenge leaving much in the hands of the developers in this regard.
Well just some random comments and thoughts really, looking forward to seeing both VLK and D3D12 supported at some point if it's planned though for now the number of games and apps using them is still fairly low but it's gaining a bit of traction again after a bit of downtime since the first few DirectX 12 games popped up, guessing VLK support would also open up for Proton and native Linux support for ReShade making ports to that system easier, just thinking out loud really but that's also growing a bit and with ReShade open sourced it would be possible for others to support additional platforms I'm thinking.
EDIT: Well shader compilation in ReShade for D3D12 is probably just one thing, DXGI or no. Dependencies in ReShade would also need support for the API(s) I'm guessing and well much more no doubt.
-when klicking "reset all to default" and then "reload", parameters get changed back to the state before the reset
-when alt-tabbing back into a game, pressing the reload key (only the key, the GUI button works well) lets the GUI switch to the last tab (recently there was a bugfix for a similar issue)
- Added option to disable the screenshot notification message
- Changed default screenshot format to PNG
(EDIT: Well that's not entirely D3D12 but they improved it further from Microsoft's way of doing it under D3D11 and then there's NVIDIA and a method with deferred render context threads which they make use of to also improve performance over the API defaults.)
DirectX 12 also enforces flip model presentation and draws upon newer features form DXGI 1.5+ now including HDR and 10-bit which I assume would also need to be tackled at some point. (The pink screen you get if you use ReShade for screenshots if I'm not fumbling this too badly as part of the frame buffer and formats involved.)
And more, well yeah time and tons of work I would imagine plus a matter of compatibility and it also being a evolving API with both D3D12 and Vulkan seeing extensive changes and development though this would probably be a lesser issue than the rest since neither Microsoft nor Khronos would risk breaking backwards compatibility either.
Entirely new API even more so than the break between D3D9 to D3D10 and then D3D11 after that so not a small change at all and likely not a trivial amount of code either to support and wrap all it's features and who knows what things look like on the game/software side of things giving developers greater control over certain parts and how this risks causing problems like say random crashes and graphical artifacts, error handling and other bits but introduce entirely new untested variables via third party utilities and yeah who knows how it's going to end up.
Wonder how much work NVIDIA are doing driver side for Ansel and it's variant of ReShade and shaders also riding on this functionality though it's good to hear that does work with D3D12 along with the previous API's.
EDIT: Well I only know a small overview really, it's fascinating to read up on but it's a massive subject and a very complex one too so not much more than some of the basics and what's already *very* well documented and more widely known.
EDIT: And come to think of it with partial Vulkan support now part of ReShade I expect that first before the program would tackle a different API, either of the two supported would be nice to see eventually and both would be excellent but I can imagine it would take a lot of free time and quite a bit of code to see that done so probably not for some time yet. Well I wouldn't know but looking forward to having it supported when the program gets there maybe at some point in the future.
DirectX 11 isn't going away in any hurry either, pretty sure the plan is still to keep D3D11 as a high-level and D3D12 as a low-level so both are maintained and updated and will be around for years but DirectX 12 is picking up again after a bit of a hiatus following the earlier titles using it.
(Should also help with both display driver maturity and functionality or support for newer features and also familiarity from the software side and game implementation and programming.)
- Topic Author
It's not about the compiler. The ReShade FX compiler now supports shader model 6 for DX12 and SPIR-V for Vulkan. Code for the hooks is already there too (it was removed from the master branch a while ago, but I still have it in a side branch that's not on GitHub). Only the runtime implementation is missing. No roadblocks there, it's just a matter of time and me feeling like doing it. I started the work, but it's gonna take a while, since I'm not putting a lot of time on it.
OtisInf wrote: @JBeckman Ansel uses the (standalone) reshade compiler and works for DX12, so I guess that's not really an issue (or it might be using the older one, no idea). the multithreaded aspect of dx12 might be a problem, I've frankly not enough knowledge about what the roadblocks are for reshade in particular. If it's a matter of time, perhaps others can chime in and do parts.
I would believe that the most feasible price is not counted in currency but rather as your own ability to code and willingness to throw your skills into the mix. I do not speak for the developers, but I've been following the developement from the start of SweetFX and I believe it is quite accurate that finding both suitable code and time to research that is much more bigger problem than money. Somebody can correct me, if I'm wrong.
Seaclean wrote: How big a donation should I grant you for motivating you to make Reshade fully compatible with DX12?
There is currently an issue with depth buffer detection resulting in log spamming with the error message: ERROR | Failed to create depth stencil replacement resource view! HRESULT is '0x80070057'. When "Copy depth before clearing" is checked, the error is logged every(!) frame.