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
Philip Rebohle
e4c5880ac6
[util] Fix Win32 thread helper
...
- Implements move semantics for thread objects properly.
This is necessary in order to avoid closing the thread
handle multiple times, and to avoid passing invalid
pointers to the thread function in some cases.
- More closely emulates the behaviour of std::thread.
2018-07-22 01:28:35 +02:00
Philip Rebohle
64ffcbc9ef
[util] Code cleanup for winegcc stuff
2018-07-21 12:51:50 +02:00
Mikhail Paulyshka
f38ee85a39
[build] Fix compilation on MSVC ( #505 )
...
* [build] do not use shared_library/objects property with MSVC
* [util] use ./com/com_include.h instead of windef.h
It is required for Windows 10 SDK.
* [util] store thread procedure lambda in std::function
* [dxgi] fix annoying MSVC warning
warning C4099: 'IDXGIVkInteropDevice': type name first seen using 'class' now seen using 'struct'
2018-07-21 12:43:33 +02:00
Jacek Caban
6d16bb4c87
Don't use std::thread.
...
Wine needs to setup each thread that has an access to Windows APIs. It means that in winelib builds, we can't let standard C++ library create threads and need to use Wine for that instead. I wrote a thin wrapper around Windows thread functions so that the rest of code just has to use new dxvk::thread class instead of std::thread.
2018-07-19 08:55:34 +02:00
Jacek Caban
cea1f15eab
[util] Don't use std::wstring.
...
std::wstring is problematic, because wchar_t on other platforms might not be what we need. -fshort-wchar can mitigate that partially, but it's more problematic for stdc++ classes.
2018-07-19 08:55:34 +02:00
Jacek Caban
c2c10cc207
[util] Reimplement fromws using WideCharToMultiByte and system codepage.
...
Also, using UTF-8 for convertion may not be what's intended, esp. if such strings end up being passed back to system API (eg. open file). The patch uses CP_ACP on mingw build (which is how Windows APIs will interpret it) or CP_UNIXCP on Wine (which is Wine extension to convert to whatever glibc and other host libs expect).
It's also needed for the next patch.
2018-07-19 08:55:34 +02:00
Jacek Caban
02ae42c7de
[util] Remove getTempDirectory
...
It's not used anywhere.
2018-07-19 08:55:34 +02:00
Philip Rebohle
2aa6b04fd9
[dxvk] Fix tzcnt return value when source value is 0
2018-07-09 13:32:43 +02:00
Philip Rebohle
79a1703aea
[util] Set thread names for DXVK's own threads
...
Makes it easier to identify the command stream thread and the
queue processing thread easier when using a wine build that
supports SetThreadDescription.
2018-06-21 15:12:04 +02:00
Philip Rebohle
518c260ad6
[util] Add == and != operator to Flags
2018-06-06 23:09:23 +02:00
Joshua Ashton
5cc3afcf30
Fix tzcnt intrinsic on MSVC ( #381 )
2018-05-19 09:26:25 +02:00
Philip Rebohle
ec3b7e39af
[util] Fix includes
2018-05-09 20:37:49 +02:00
Philip Rebohle
c7d2957d8f
[util] Remove duplicate tzcnt function
2018-05-09 20:09:09 +02:00
Philip Rebohle
5465ee8a85
[util] Add tzcnt function
2018-05-09 00:01:00 +02:00
Philip Rebohle
59d4f1a1fb
[util] Add method to retrieve SHA1 hashes in 32-bit chunks
2018-05-03 23:47:42 +02:00
Philip Rebohle
c2854e1fb9
[dxgi] Added IDXGIVkInteropSurface interface
2018-04-19 20:13:53 +02:00
Philip Rebohle
478a87f6d2
[dxgi] Added IDXGIVkInteropDevice interface
2018-04-19 15:46:57 +02:00
pchome
62b99c9bd2
[util] Fix compilation with WINE headers ( #246 )
...
* [util] Define typeof keyword for WINE guiddef.h
GCC: `-std options disable certain keywords`
https://gcc.gnu.org/onlinedocs/gcc/Alternate-Keywords.html
MinGW: `#define __uuidof(type) __mingw_uuidof<__typeof(type)>()`
WINE: `#define __uuidof(type) __wine_uuidof<typeof(type)>()`
* [util] Fix compilation with WINE headers
Overall definitions are the same but `__wine_` prefix used in .
MinGW: _mingw.h + guiddef.h
WINE: guiddef.h
2018-04-07 14:01:13 +02:00
Philip Rebohle
00a452ed89
[d3d11] Implement DXBC shader module cache
...
If an application compiles the same shader multiple times, we should reuse
an already existing DxvkShaderModule instead of creating a new one. This
helps keep the number of DxvkGraphicsPipeline objects low in games such
as Rise of the Tomb Raider.
2018-04-06 17:54:02 +02:00