marcin mikołajczak
9941769237
[util] Update comment for FIFA 19+ workaround ( #1197 )
2019-09-20 16:20:26 +02:00
Joshua Ashton
014870b1ff
[util] Add helpers for GDI/DDI interop
2019-09-20 01:44:18 +02:00
Philip Rebohle
c9a0f06ff4
[d3d11] Enable allowMapFlagNoWait by default
...
We still keep the option around so that in case of regressions,
users can check if disabling this option fixes their issue.
2019-09-20 01:44:02 +02:00
Philip Rebohle
51c6eb5cdb
[util] Enable FIFA 19 workaround for FIFA 20 as well
...
Same procedure as every year.
2019-09-20 00:50:01 +02:00
Philip Rebohle
9af8387e4e
[dxgi] Define IDXGIVkInteropAdapter interface
...
Can be used to pull the Vulkan instance and physical device from
a DXGI adapter.
2019-09-18 14:53:44 +02:00
Philip Rebohle
9e02b6b433
[dxgi] Rename IDXGIVkAdapter -> IDXGIDXVKAdapter
...
This interface exposes DXVK internals and cannot be used for
Vulkan interop. We shouldn't pretend like it could.
2019-09-18 14:07:13 +02:00
Philip Rebohle
65428da3fe
[util] Enable allowMapFlagNoWait for Warhammer II
2019-09-18 13:14:53 +02:00
Philip Rebohle
f57c021ab5
[util] Enable d3d11.allowMapFlagNoWait for Control
2019-09-08 10:35:57 +02:00
orbea
c57e63f7d2
Work around build failure with winegcc/clang. ( #1184 )
...
Fixes #1182 .
2019-09-05 18:01:33 +02:00
Joshua Ashton
8e54477c2a
[util] Use R string literals for app compat regexes
2019-08-24 21:32:51 +02:00
Philip Rebohle
54ca5900e1
[util] Use regular expressions on full exe path to match app profiles
...
This allows us to detect applications with non-unique executable names
or with variable executable names more reliably, and also allows us to
merge profiles for games that have multiple known exe names.
The matching is also no longer case-sensitive.
2019-08-18 17:49:22 +02:00
Philip Rebohle
c934333a5c
[util] Add method to retrieve full exe path
2019-08-17 11:50:39 +02:00
Philip Rebohle
1999ca9dd4
[util] Set d3d11.dcSingleUseMode=False for SteamVR perf test
...
*Actually* fixes #1160 .
2019-08-10 11:21:47 +02:00
Joshua Ashton
d579f07238
[util] Fix compiling with clang/clang-cl
2019-08-07 06:08:54 +02:00
Philip Rebohle
9a2da555c0
[util] Add helper for lazy initialization
...
a
2019-07-30 20:00:35 +02:00
Philip Rebohle
f3943934a7
[util] Improve multi-line logging
2019-07-18 13:34:52 +02:00
Philip Rebohle
21a2ce045f
[util] Add convenience method to return public/private references
2019-07-17 19:59:50 +02:00
Philip Rebohle
4e8122eda9
[dxvk] Add new signal class
2019-07-08 00:16:00 +02:00
Joshua Ashton
c381e8a29e
[util] Add correct type suffixes to Sha1Hash dword function to silence compiler warning
2019-07-01 02:46:54 +02:00
Joshua Ashton
a4a4f5a822
[util] Correct return value of SetThreadDescription
2019-06-19 19:43:36 +02:00
Philip Rebohle
3b1e03f988
[util] Report correct GPU vendor to Far Cry 3, 4 and Blood Dragon
...
Now that fast clear behaviour has been fixed in RADV, reporting an
Nvidia GPU breaks rendering again since the game expects the clear
behaviour to match that of the Windows D3D11 drivers exactly. To
recap, clear(0.5) on an R8_UNORM render target results in 127 on
Nvidia GPUs and 128 on AMD GPUs.
2019-06-12 12:32:30 +02:00
Philip Rebohle
96b9058fbf
[util] Fix COM private data bug when passing NULL interface
...
Fixes test failure in wine's DXGI tests.
2019-06-11 16:08:28 +02:00
Philip Rebohle
19adccea8f
[util] Add unlikely() around COM ref counting code
...
Improves code generation for the common case.
2019-06-02 23:34:53 +02:00
Philip Rebohle
7d91ff06a3
[util] Fix return value of AddRef
...
We're supposed to return the new ref count, not the old one.
2019-06-01 22:12:32 +02:00
Robin
6a4fafba3d
[util] Enable D3D11_MAP_FLAG_DO_NOT_WAIT for The Surge
2019-05-17 12:56:57 +02:00
Philip Rebohle
905f3fe520
[util] Spoof Nvidia GPUs for Mirror's Edge Catalyst
...
Closes #1062 .
2019-05-17 11:40:35 +02:00
Philip Rebohle
192310d481
[util] Don't use if constexpr
...
Fixes compilation on GCC 6.3.
2019-05-15 03:18:23 +02:00
Philip Rebohle
61b97e5dd1
[util] Add support for private references in Com<...> wrapper
2019-05-14 15:20:27 +02:00
Philip Rebohle
54d3103b04
[util] Fix COM reference count type
...
On Windows, ref counts are only 32 bits wide.
2019-05-14 14:48:42 +02:00
Philip Rebohle
dcd75a4f09
[util] Optimize popcnt operation
2019-05-09 18:04:33 +02:00
Sam Fomenko
078bc27b14
[util] Disable NvAPI hack for Mirror's Edge Catalyst
...
#893
2019-05-07 22:34:56 +02:00
Philip Rebohle
0224dbc371
[dxvk] Optimize spinlock implementation
2019-05-07 13:38:02 +02:00
Philip Rebohle
edbbdef787
[d3d11] Add interfaces to support D3D11 extensions
2019-05-06 00:08:57 +02:00
Eero Kelly
b92dc14c4d
[util] Enable constant buffer range check for NieR:Automata
...
This fixes a graphical corruption issue where Operator 6O's portrait
displays as a large flashing circle due to uninitialized buffer reads.
Fixes issue: https://github.com/ValveSoftware/Proton/issues/1543
Reviewed-by: Liam Middlebrook <lmiddlebrook@nvidia.com>
2019-04-30 16:08:52 +02:00
Philip Rebohle
ed0719432d
[dxvk] Add support for per-app configuration
...
Feature request by Alexandr Oleynikov (@tannisroot).
2019-04-26 19:17:32 +02:00
Philip Rebohle
2c0ddbd072
[util] Enable D3D11_MAP_FLAG_DO_NOT_WAIT for Anno 1800
...
Removes a sync point and almost doubles performance as a result.
2019-04-12 10:52:25 +02:00
Philip Rebohle
b89646584b
[util] Enable constant buffer range check for Dark Souls Remastered ans Grim Dawn
2019-04-05 20:56:32 +02:00
Philip Rebohle
d2395180af
[util] Add helpers to pack/unpack data to/from larger units
2019-04-04 13:00:31 +02:00
Marin Baron
1c434d86cb
[util] Enable deferred surface creation for "Dissidia Final Fantasy NT Free Edition".
...
Avoid white screen, "D3D11Device: No such vertex shader semantic: COLOR0"...
https://www.reddit.com/r/archlinux/comments/b7e38x/protondxvk_dissidia_nt/
2019-03-31 03:27:05 +02:00
Philip Rebohle
a646f8cf2c
[util] Enable deferred surface creation for Nioh
...
See discussion in #284 .
2019-03-29 08:49:37 +01:00
Philip Rebohle
cfdac13ea5
[dxgi] Add new COM interface for per-monitor data
2019-03-14 18:26:37 +01:00
Philip Rebohle
c35af973bb
[util] Disable NvAPI hack for Star Wars Battlefront 2015
...
Fixes #968 .
2019-03-14 16:33:35 +01:00
Philip Rebohle
833c433556
[util] Enable relaxed barriers for Devil May Cry 5
...
Same engine as RE2, same ~10% performance improvement.
2019-03-11 18:36:09 +01:00
Philip Rebohle
d9931e3621
[utils] Report Nvidia GPUs for Far Cry 3 and Far Cry 4
...
Both games make assumptions about the exact clear value for UNORM
render targets, which is incorrect on most Vulkan drivers.
2019-02-18 18:04:36 +01:00
Philip Rebohle
fe781df591
[util] Enable relaxed barriers for Resident Evil 7
...
Same engine as Resident Evil 2, although the impact will be lower.
2019-02-15 20:59:33 +01:00
Philip Rebohle
9bfa470581
[util] Implement createDirectory function
2019-02-11 21:59:46 +01:00
Philip Rebohle
629238ac36
[util] Implement tows method to convert strings to wide strings
2019-02-11 21:35:32 +01:00
Philip Rebohle
746562de5a
[dxgi,d3d11] Remove IDXGIVkPresentDevice
2019-02-11 20:06:12 +01:00
Philip Rebohle
f6380fa152
[util] Enable relaxed barriers for Resident Evil 2
...
Improves performance by up to 10% when GPU-bound.
2019-02-08 01:38:03 +01:00
Philip Rebohle
9c4a6ee950
[utils] Enable strict division for Final Fantasy XIV
...
Fixes #904 .
2019-02-05 21:28:27 +01:00
Philip Rebohle
405bd737e0
[util] Disable nvapi hack for Far Cry 4 / Primal
...
Dunia engine games don't seem to like this either.
2019-02-04 07:09:37 +01:00
Philip Rebohle
af92bc9d9b
[utils] Disable nvapi hack for Mass Effect Andromeda
...
Fixes #886 .
2019-01-26 18:38:58 +01:00
Philip Rebohle
cfc3f686bb
[util] Update per-app config overrides
2019-01-19 17:45:26 +01:00
Entryhazard
7306c3153c
[util] Change getEnvVar to use getenv ( #859 )
2019-01-13 21:27:59 +01:00
Philip Rebohle
3935d2540e
[util] Get rid of explicit wchar_t parameter
...
We shouldn't be catering to Windows' weird string encoding mechanisms.
2019-01-11 13:43:15 +01:00
Philip Rebohle
d12b2c6149
[util] Disable NVAPI hack for NFS2015 and CoD:WW2
...
Fixes #850 .
Fixes #832 .
2019-01-10 11:59:35 +01:00
Philip Rebohle
6282280f8d
[util] Enable raw SSBOs for FIFA 19
...
This game incorrectly binds a typed buffer view when the shader
expects a structured buffer. Using raw SSBOs matches Windows
behaviour in this case. Fixes #642 .
2019-01-08 23:18:46 +01:00
Philip Rebohle
524227d21c
[util] Add tristate config option type
2019-01-08 20:57:38 +01:00
Philip Rebohle
1e393bf24d
[d3d11] Implement IWineDXGISwapChainFactory
...
See #822 .
2018-12-21 14:03:28 +01:00
Philip Rebohle
1cc0455c8a
[dxgi] Remove old DXGIDevice implementation and IDXGIVkDevice
...
Both have been moved to the D3D11 module and are no longer needed.
2018-12-04 19:38:52 +01:00
Philip Rebohle
556e0d1dba
Revert "[util] Report Nvidia GPU for Battlefield 1"
...
This reverts commit 500d67e002
.
This game has some built-in driver detection on Nvidia which makes it
fail to start on non-Nvidia hardware or when nvapi is not present.
Fixes #795 .
2018-12-02 20:27:39 +01:00
Philip Rebohle
d1f179c5af
[util] Add likely/unlikely macros
2018-11-29 22:53:04 +01:00
Philip Rebohle
193d24a3e2
[dxgi] Remove IDXGIVkBackBuffer
2018-11-28 18:15:27 +01:00
Philip Rebohle
500d67e002
[util] Report Nvidia GPU for Battlefield 1
...
Reportedly improves performance for some weird reason.
2018-11-26 08:04:30 +01:00
Philip Rebohle
2d55852777
[dxvk] Disable state cache for Anno 2205
...
Fixes #686 .
2018-11-24 20:04:21 +01:00
Philip Rebohle
8081dc1591
[util] Enable TGSM initialization for Quantum Break
...
Fixes artifacting on Mesa 18.3.
2018-11-23 16:12:09 +01:00
Philip Rebohle
81765de35b
[util] Remove default options that spoof AMD GPUs
...
This is no longer necessary due to the nvapi workaround.
2018-11-20 13:17:36 +01:00
Philip Rebohle
bfb7e54218
[d3d11] Rename dcMapSpeedHack to dcSingleUseMode
2018-11-20 11:37:48 +01:00
Derek Lesho
66bcc4b3d8
Use std::string for util::getEnvVar input
...
This allows cleaner code when implementing DXVK as a native library
2018-11-16 06:43:45 +01:00
Philip Rebohle
305168d2bb
[util] Add method to set thread priority
2018-11-15 12:17:18 +01:00
Philip Rebohle
63d42073b8
[util] Add ticket lock implementation
2018-11-13 17:05:06 +01:00
Philip Rebohle
3d2e5a7cde
[util] Spoof Nvidia card for Elite Dangerous
2018-11-06 17:03:01 +01:00
Philip Rebohle
422cf71c55
[util] Spoof Nvidia GPU for The Vanishing of Ethan Carter Redux
...
For some reason it crashes with AMD cards, but apparently not in D3D code.
Closes #732 .
2018-10-25 18:31:55 +02:00
Philip Rebohle
7eeeeaa625
[util] Provide method to compute SHA-1 hash from multiple data chunks
...
The underlying implementation supports this trivially, so we should
provide a way to use this feature.
2018-10-25 10:34:38 +02:00
Philip Rebohle
7b9726fd93
[d3d11] D3D11Presenter -> D3D11PresentDevice
2018-10-23 15:10:01 +02:00
Philip Rebohle
967b276acb
[d3d11] Add COM interface for API-agnostic presenter
2018-10-23 14:58:57 +02:00
Andreas Heider
ac0f8d6a64
Spoof AMD GPU for Assetto Corsa Competizione
2018-10-22 10:57:54 +02:00
Błażej Szczygieł
57718dcf84
[util] Spoof AMD GPU for SAO FB
...
Improves performance by not trying to load nvapi.
2018-10-22 10:51:48 +02:00
Philip Rebohle
8630ee235a
[util] Re-enable D3D10 for Bioshock
2018-10-12 19:06:53 +02:00
Tk-Glitch
502af0f866
[util] Spoof AMD GPU for Dauntless and Redout.
...
It silences some nvapi related warnings and improves performance on both titles by up to 10%.
Also fixes a random crash on Redout.
2018-10-12 12:43:58 +02:00
Fredrick Lockert
27026f48a2
[util] Spoof AMD card for Star Citizen
2018-10-12 07:10:13 +02:00
Philip Rebohle
08b241b3ea
[d3d11] Add option to disable deferred context mapping speed hack
...
Fixes a regression in The Evil Within.
We should probably find a proper solution, but for now this is the best
thing we can do for games which reuse command lists.
2018-10-09 17:07:50 +02:00
Philip Rebohle
1e40a14a50
[d3d10] Disable D3D10 support for Bioshock
2018-09-24 15:30:13 +02:00
Philip Rebohle
f3a23ab81f
[util] Add convenience method for SHA1 hash compulation
2018-09-22 12:04:06 +02:00
Jens Peters
d4947261c6
[util] Improve logging of configuration options
2018-09-14 15:34:46 +02:00
Philip Rebohle
2d93452cba
[util] Spoof Nvidia card for Assassin's Creed Syndicate
...
This one actually doesn't work properly when the AMD AGS library
is not present, but is fine with nvapi not being there.
2018-09-12 14:10:49 +02:00
Philip Rebohle
6532302e34
[util] Implement dxvk: 🧵 :hardware_concurrency
2018-09-10 17:02:51 +02:00
Jens Peters
e48c27ac30
[util] Spoof AMD card for Batman: Arkham Knight ( #627 )
...
This prevents game crashes in "Detective Mode" for NVidia cards.
Fixes https://github.com/doitsujin/dxvk/issues/580
2018-09-08 16:33:44 +02:00
MartinPL
f949240b2f
Spoof AMD card for GTA V
...
GTA V working out of box on Proton for Nvidia users. Tested
#624
https://github.com/ValveSoftware/Proton/issues/37#issuecomment-415833819
2018-09-08 12:51:39 +02:00
Philip Rebohle
60796a8143
[util] Spoof AMD card for Dragon Quest XI
...
This game for some reason seems to keep searching for NVAPI DLLs
and runs at an extremely low framerate as a result. Fixes #622 .
2018-09-07 07:50:08 +02:00
Philip Rebohle
f74661daa4
Revert "[util] Limit device memory size to 4095 MB for Life is Feudal MMO"
...
This reverts commit 73cbf5b352
.
The workaround is no longer necessary due t a game update.
Closes #614 .
2018-08-31 22:54:16 +02:00
Jacek Caban
9fd30cf5bf
[util] Handle WCHAR strings in str::format.
2018-08-31 05:37:34 +02:00
Philip Rebohle
73cbf5b352
[util] Limit device memory size to 4095 MB for Life is Feudal MMO
...
Reporting 4GB or more VRAM causes an integer overflow in this game.
Fixes #591 .
2018-08-25 01:23:22 +02:00
Philip Rebohle
55632c6b61
[util] Add log message when loading a configuration file
2018-08-17 19:42:32 +02:00
Philip Rebohle
7fa6dddc9e
[dxgi] Remove dxgi.fakeDx10Support option
...
No longer needed because we have actual Dx10 support now.
2018-08-17 12:33:53 +02:00
Philip Rebohle
6e74db4c6f
[util] Update default per-app quirks
2018-08-10 12:50:31 +02:00
Philip Rebohle
fb9b520f60
[util] Move getAppConfig and getUserConfig to Config class
...
Fixes linker errors with winelib builds.
2018-08-07 16:59:49 +02:00
Philip Rebohle
5e58083c01
[util] Add classes and functions to support configuration files
2018-08-07 14:59:03 +02:00
Philip Rebohle
cdf6ffb9bc
[util] Add private reference count to COM object
...
This can be used in case DXVK needs to keep a strong reference
to an object but may not expose that reference to the application.
2018-08-05 21:31:09 +02:00
Philip Rebohle
2b8c96fe35
[util] Fix reference counting for thread objects
...
Fixes a potential race when threads run out of scope
before the thread function has started.
2018-07-22 02:24:04 +02:00