Tiagoquix
79eea564fb
Add dxvk.maxChunkSize 1 to Origin
2024-05-31 23:46:26 +02:00
Robin Kertels
7df8017e46
[d3d9] FF: Apply transform flags count to generated texture coords
...
... and fix cases where projection doesn't get applied.
2024-05-27 20:52:32 +00:00
WinterSnowfall
c98152683f
[d3d9] Tweak VCache query results
2024-05-27 19:53:19 +02:00
Robin Kertels
60cfafe027
[d3d9] Fix strange type in dynamic vertex upload
2024-05-26 04:58:47 +00:00
Robin Kertels
889802887f
[d3d9] Rework uploading dynamic sysmem buffers at draw time
...
... and handle mismatching vertex sizes and vertex strides.
2024-05-23 16:44:49 +02:00
WinterSnowfall
a1ce690c5c
[d3d9] Determine DF format support in the options parser
2024-05-23 16:37:09 +02:00
WinterSnowfall
07d007c642
[d3d9] Use customVendorId to determine the options vendorId
2024-05-23 16:37:09 +02:00
Danylo Piliaiev
58d8ea2d31
[d3d11,d3d9,util] Add a config option for reproducible VK output
...
It ensures that for the same D3D commands the output VK commands
don't change between runs.
Useful for comparative benchmarking, can negatively affect performance.
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
2024-05-23 15:20:28 +02:00
Philip Rebohle
61bd62c327
[dxvk] Allow descriptor pool overallocation if supported
2024-05-23 14:27:28 +02:00
Philip Rebohle
7bc77b597e
[dxvk] Enable VK_NV_descriptor_pool_overallocation if available
2024-05-23 14:27:28 +02:00
Simon McVittie
2ff2c826a5
[build] Generate pkg-config metadata to link to DXVK libraries
...
This allows dependent projects to query the version and location of DXVK
via the pkg-config interface.
The include directories aren't yet set, because the headers aren't
installed; that will follow in a subsequent commit.
The naming of these pkg-config files is based on proposed Fedora packages
for DXVK 2.0, and is not compatible with older Fedora packages for DXVK
1.x (which used the naming convention dxvk-native-d3d9 and so on).
Packagers can create symlinks such as dxvk-native-d3d9.pc -> dxvk-d3d9.pc
if they want to retain compatibility with older names.
Signed-off-by: Simon McVittie <smcv@collabora.com>
2024-05-21 19:18:12 +00:00
Simon McVittie
83436a97f2
[meson] Set the stem of library names instead of the name_prefix
...
This is necessary for compatibility with Meson's pkg module, which
generates pkg-config metadata containing "-lNAME" where NAME is the
first argument to shared_library(). Changing the name_prefix parameter
would break that.
Conversely, including .dll or .so in the first parameter would also
break that, so remove the `+dll_ext` part (in practice this is not a
functional change, because `dll_ext` is always set to an empty string).
Signed-off-by: Simon McVittie <smcv@collabora.com>
2024-05-21 19:18:12 +00:00
Ethan Lee
f33453afbb
[build] Add soversion to dxvk-native binaries
2024-05-21 19:18:12 +00:00
Robin Kertels
65dd3c7df3
[d3d9] Always enable STORAGE_BUFFER usage
...
Fixes a validation error. Drivers don't care about buffer usage bits anyway.
2024-05-21 20:32:13 +02:00
Robin Kertels
dfc3776b24
[d3d9] FF: Fix a bunch of wine tests with FF texture coordinates
2024-05-21 20:32:13 +02:00
Philip Rebohle
3420cd78ac
[dxvk] Use new Version helper to deal with driver version numbers
2024-05-20 18:30:36 +02:00
Philip Rebohle
4225f35034
[util] Add version helper class
...
Useful to decode, store and compare human-readable driver versions.
2024-05-20 18:30:36 +02:00
Philip Rebohle
2cb2f8694e
[dxvk] Use VK_MAKE_API_VERSION instead of VK_MAKE_VERSION.
...
The old macro is deprecated.
2024-05-20 18:30:36 +02:00
Blisto91
c1f665f92b
[util] Disable supportDFFormats for Prototype
...
Incorrect shadows on AMD & Intel
2024-05-18 19:31:07 +02:00
WinterSnowfall
20185a5309
[d3d9] Do not enable support for DF formats on Nvidia
2024-05-18 16:16:34 +00:00
Blisto91
c7d61b2fc0
[native] Change DXVK_WSIDRIVER to DXVK_WSI_DRIVER
2024-05-16 10:57:35 +00:00
Ethan Lee
6259e86392
[meson] Use dependency() instead of find_library() for SDL2/GLFW detection.
...
Since we're not linking to the libraries anymore, it doesn't make much sense to
use find_library, and in fact we need to use dependency() in order to get the
right CFLAGS for includes, defines, etc, so use that instead.
As a result, we can remove the 'SDL2/' folders from the includes, making the SDL
includes more correct.
2024-05-13 13:18:03 +00:00
Ethan Lee
d5d236a1e2
[wsi] Refactor platform system to support multiple WSI implementations
2024-05-13 13:18:03 +00:00
Ethan Lee
10b83d184b
[native] Dynamically load SDL2/GLFW at runtime.
...
Removing these link-time dependencies is important for making a single binary that is compatible with either backend, regardless of whether or not each one is currently available to the program.
2024-05-13 13:18:03 +00:00
Ethan Lee
0f7c1f753a
[wsi] Refactor the WSI backends to be implementations of a WsiDriver interface.
...
Rather than directly calling functions, the API now calls shared functions that call into a WsiDriver instance, which is allocated and implemented by the backend. Functionally this should be the same, it just has the extra allocation for the function table.
This prepares the WSI library for supporting multiple implementations in a single binary.
2024-05-13 13:18:03 +00:00
Ethan Lee
529129c332
[dxvk] Move getInstanceExtensions platform logic to wsi.
...
This ensures that all of the WSI backend logic is in one place rather than two.
2024-05-13 13:18:03 +00:00
Ethan Lee
4055a92856
[wsi] Add init/quit functions, integrate them into DxvkInstance.
...
This is preparation for loading/unloading WSI backends at runtime, which will be in an upcoming commit.
2024-05-13 13:18:03 +00:00
Blisto91
7bad17c1d1
[util] Set deviceLossOnFocusLoss for The Sims 3
...
Prevents the game black screening on alt-tab
2024-05-11 14:38:43 +02:00
Blisto91
6b76d70d9d
[util] Enable d3d11.longMad for Guild Wars 2
...
Fixes invisibility effect flicker when invariantPosition is enabled
2024-05-09 00:47:13 +02:00
Philip Rebohle
611dc60018
[d3d9] Do not support cube textures with depth formats
2024-05-08 17:05:48 +00:00
WinterSnowfall
b2789ab894
[d3d9] Validate DS format support during CheckDepthStencilMatch
2024-05-06 20:26:09 +00:00
Philip Rebohle
ab715a8876
[d3d11] Implement better filtering when blitting video content
...
Unlike linear filtering this guarantees that we never read outside the source
region, and this also lets us perform color space conversion prior to filtering.
2024-05-03 16:23:17 +02:00
talkingerbil
1fb35b6d19
[dxgi] Initialize UMD version quad to a max signed int64 ( #3985 )
2024-05-03 16:22:58 +02:00
Rémi Bernon
4333ee872d
[d3d11] Use nearest filter for ID3D11VideoContext scaling
2024-05-02 18:17:54 +02:00
Rémi Bernon
b99d42c688
[d3d11] Implement VideoProcessorSetStreamSourceRect scaling
2024-05-02 18:17:54 +02:00
Blisto91
dacb8b434b
[util] Add configs for Delta Force Xtreme 1 & 2
...
Prevents the games from black screening on Alt-Tab and helps big performance dips.
2024-05-01 14:08:03 +02:00
Philip Rebohle
ea4cb84d8a
[dxvk] Remove workaround for non-dynamic depth clip
...
Kind of pointless and everyone supports the required EDS3 subset anyway.
2024-04-29 17:43:40 +02:00
Philip Rebohle
65373792d2
[dxvk] Forward link flags when using shader identifiers
...
Fixes a long-standing bug that now causes validation errors.
2024-04-29 17:43:40 +02:00
Lierrmm
29253da356
feat: add H2M-Mod to config
2024-04-29 16:19:42 +02:00
Robin Kertels
79398b468d
[util] Enable longMad for Red Faction Guerrila Remastered
2024-04-29 13:17:21 +02:00
Robin Kertels
e7d14e97de
[dxbc] Implement option to split up fma
2024-04-29 13:17:21 +02:00
Philip Rebohle
c613078ba8
[dxvk] Bump internal version number
...
Potentially useful for drivers and tools to deal with the new pipeline
layout changes.
2024-04-26 19:54:52 +02:00
Philip Rebohle
2970645f33
[dxvk] Fix push constant compatibility for pipeline libraries
...
When linking pipelines, all pipeline libraries are required to declare
the exact same set of push constants, even for stages not part of the
respective libraries.
This invalidates all fossilize databases.
2024-04-26 19:54:52 +02:00
Philip Rebohle
462165da19
[util] Add Deck profile for Fallout 4
...
Should fix the FPS problem on Deck OLED.
2024-04-26 14:34:08 +02:00
Philip Rebohle
3f27a0ee58
[util] Add a way to define app profiles exclusive to Steam Deck
2024-04-26 14:34:08 +02:00
Katharine Chui
aac3396671
[dxgi] unchain DxgiFactory::CreateSwapChain and CreateSwapChainForHwnd
...
similar to https://github.com/doitsujin/dxvk/pull/3966 , avoid
chaining so that dxgi tools attempting to wrap swapchains don't
end up double wrapping
ref: https://github.com/SpecialKO/SpecialK/issues/168
2024-04-25 12:07:50 +02:00
Katharine Chui
92a43ebf65
[dxgi] unchain DxgiSwapChain::Present1 and Present
...
dxgi hooking tools might hook both, eg. https://github.com/SpecialKO/SpecialK/issues/167
2024-04-22 14:04:43 +02:00
Blisto91
8ba5256dc7
[util] Set deferSurfaceCreation for 9th Dawn II
...
OpenGL game that also spins up d3d9. Will black screen without deferSurfaceCreation when using dxvk
2024-04-22 04:48:56 +02:00
Philip Rebohle
2b70ba8f77
[dxbc] Do not emit OpImageQueryLevels for multisampled images
2024-04-19 13:55:31 +02:00
Philip Rebohle
00872e9e4f
[dxvk] Fix render target clears with format reinterpretation
...
With LOAD_OP_CLEAR, we cannot rely on the clear actually being performed
with the view format in mind. Use a vkCmdClearAttachment path instead.
2024-04-19 13:08:36 +02:00
Philip Rebohle
35157357dd
[dxvk] Fix stencil discard being broken
2024-04-19 01:43:23 +02:00
Philip Rebohle
617ebf4e05
[dxbc] Take used components into account for PS inputs
2024-04-19 01:01:52 +02:00
Philip Rebohle
c2489d5a45
[dxbc] Fix array register anaylsis with multiple dst operands
2024-04-19 01:01:52 +02:00
Philip Rebohle
6ef98c613f
[dxvk] Re-enable maintenance4 feature
...
Sileces some validation errors.
2024-04-19 01:01:52 +02:00
Philip Rebohle
7441137a33
[dxbc] Ignore system value components when declaring inputs
2024-04-19 01:01:52 +02:00
WinterSnowfall
571948cfc0
[d3d9] Remove support for VERTEXSTATS queries
2024-04-13 19:11:00 +01:00
Martino Fontana
133f0794bc
[util] Remove framerate limiter for Nier Replicant
...
Without mods, Nier Replicant runs faster when going above 60 FPS.
The game had an official patch that implemented a framerate limiter to prevent this. This limiter is terrible, because it's not a stable 60 FPS, but a weird 57-58 FPS. There's no way to disable this in-game, it has to be done by editing a config file or through a mod.
So, why remove the default frame limiter from DXVK?
- In the default case (a user plays the game as it is), it does nothing, since 57-58 is lower than 60.
- If a user is going out of their way to edit the config file, why would they assume that DXVK already provides a frame limiter? They are going to follow [a guide](https://www.pcgamingwiki.com/wiki/NieR_Replicant#Framerate_limited_to_57.7E58_FPS ) that says to set up a frame limiter, it doesn't say "set up a frame limiter, unless you are using DXVK, in that case it's already there".
- They are using [Special K in order to use a mod to play at high refresh rates at normal speed](https://wiki.special-k.info/SpecialK/Custom/Replicant ). In this case, DXVK's default limiter is harmful, since it is not documented that it's there by default.
Since this default limiter is useless in the first two cases and harmful in the third, I think it should be removed.
The alternative would be to document this (e.g. in PCGamingWiki), but the instructions wouldn't look pretty... "After following the instructions to use Special K in order to play at higher framerates at normal speed, if are using DXVK/Proton, also do these things to disable its default 60 FPS cap: [...]"
Especially because that the game isn't broken in the default case, I don't think DXVK should tamper with these things in a way that requires documentation to revert.
Tested Special K's mod to play at higher refresh rates on Linux.
2024-04-08 21:48:47 +02:00
Philip Rebohle
44695f9311
[dxvk] Adjust desciptor pool reset heuristic
...
Drastically limits the amount of descriptor memory we allocate in situations
where an application renders without presenting anything to a swap chain.
The new limit is a bit tight for some real-world use cases (e.g. Ashes of the Singularity),
but at worst we will start calling vkAllocateDescriptorSets once per set and draw.
2024-04-08 15:40:25 +02:00
Casey Bowman
49e9ea5f5a
[dxgi] Force vendor ID change when XeSS is detected on an Intel GPU
...
Games using libxess.dll or wrapper modules will crash.
To work around this, we hide the Intel GPU's vendor ID to avoid using the
XeSS module.
2024-04-03 20:32:04 +02:00
Blisto91
198bd3a4b8
[d3d11] Remove missed Shared Keyedmutex warning
...
D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX is implemented.
2024-04-03 20:31:52 +02:00
Philip Rebohle
f06c646315
[dxbc] Remove broken atomic counter subgroup optimization
...
This is not a legal optimization inside non-uniform control flow due
to Vulkan's extremely permissive convergence rules, and apparently
breaks on Nvidia as a result.
Mesa drivers already do the same thing internally anyway.
2024-04-03 14:55:43 +02:00
Philip Rebohle
855b2746b6
[util] Remove TRAHA Global config
...
This game apparently no longer exists.
2024-03-26 13:42:55 +01:00
Blisto91
28c7c09bf5
[dxgi] Remove useMonitorFallback option
...
QueryDisplayConfig optimization is now in Proton 9 Wine
2024-03-21 17:23:38 +01:00
Philip Rebohle
2742486540
[dxvk] Don't query color space support for null surfaces
...
Fixes a crash in games with the dxgi.deferSurfaceCreation workaround set.
Note that this potentially breaks HDR.
2024-03-21 15:32:48 +01:00
Philip Rebohle
037d0fa1ad
[meta] Release 2.3.1
2024-03-20 13:48:30 +01:00
Philip Rebohle
cbf51a7a25
[d3d11] Enable copy usage for typeless images as necessary
2024-03-20 13:30:31 +01:00
Philip Rebohle
70e34dc31c
[dxvk] Support arbitrary source formats for color<->depth copies
...
Fixes rendering bugs in War Thunder.
2024-03-20 13:29:59 +01:00
Philip Rebohle
c5aeb0f87a
[dxvk] Get rid of separate depth shaders for shader-based copies
...
We can export both depth and color in a single shader instead.
2024-03-19 19:32:12 +01:00
Philip Rebohle
a163082770
[dxvk] Align index buffer size to index size
...
Fixes validation errors in FFXIV.
2024-03-19 19:32:12 +01:00
Blisto91
2e1a19c7fd
[util] Cap Dark Void to 60fps
...
Game crashes in certain places like specific cutscenes unless capped at 60fps.
2024-03-18 12:56:27 +01:00
Joshua Ashton
0beb18ef73
[d3d9] Wait for submission when calling ReturnUnderlyingResource
2024-03-16 19:11:11 +00:00
Joshua Ashton
ef4428ab8c
[d3d9] Improve ReturnUnderlyingResource stub for 9on12
2024-03-16 18:59:03 +00:00
Philip Rebohle
1085ba713e
[dxgi] Implicitly set HDR color space for RGBA16_FLOAT swap chains
2024-03-16 18:56:41 +00:00
Philip Rebohle
e857b09432
[dxgi] Change default behaviour of hideNvkGpu option
2024-03-15 22:48:57 +01:00
Kaitlyn
538f1d13d4
Fix UAV as well
2024-03-15 15:22:13 +01:00
Kaitlyn
783c9d4591
Fix MiscFlags check in GetDescFromResource
2024-03-15 15:22:13 +01:00
Kaitlyn
1a685b1c67
Implement D3D11DXGIDevice::EnqueueSetEvent
2024-03-15 13:47:28 +01:00
Robin Kertels
8b8be7c2bf
[d3d9] Fix stream count in Reset
2024-03-10 17:12:22 +01:00
Billy Laws
0776d764a4
build: Support building for ARM64EC
...
When targeting ARM64EC, both __x86_64__ and _M_X86_64 are defined but
not all x86 intrinsics are present, treat EC as regular ARM64 so the
native intrinsics are used instead.
2024-03-09 05:43:46 +00:00
Robin Kertels
15ddadc4de
[d3d9] Fix number of streams
2024-03-08 18:42:15 +01:00
Philip Rebohle
69a52b3da0
[dxbc] Do not emit depth compare for unsupported image types
...
Fixes invalid SPIR-V.
2024-03-07 16:11:23 +01:00
Philip Rebohle
707ad6f328
[spirv] Add OpConstantNull
2024-03-07 16:11:23 +01:00
Philip Rebohle
3a6992ea97
[dxbc] Enable depth compare types for 1D images
...
Used by Renderdoc internal shaders.
2024-03-07 16:11:23 +01:00
Robin Kertels
72c86b8229
[d3d9] Only unbind in EndScene if the game cleared the binding
2024-03-06 22:58:48 +01:00
Robin Kertels
85215b10d6
[d3d9] Respect vertex buffer offset when dynamically uploading geometry
2024-03-06 18:13:26 +01:00
Philip Rebohle
fd3fbf6607
[dxvk] Remove old memory budget code
...
Obsolete since we removed the Nvidia HVV workaround for old drivers.
Closes #3877 .
2024-03-06 15:48:34 +01:00
Minelelol
0a699fddb6
Update config.cpp
...
Insane Performance increase
2024-03-06 15:25:16 +01:00
Blisto91
afec5cce88
[util] Remove some unneeded built in configs
...
Dirt 5 does not crash without working ags anymore and Ethan Carter Redux also starts fine without a spoof.
This allows the built in AMD ags in Proton 9 to be used for these games.
The Hitman 3 config is redundant as it doesn't allow RT to be enabled without Nvapi anyway.
2024-03-06 15:24:54 +01:00
Philip Rebohle
0414bbe2d5
[dxgi] Add separate option to override vendor IDs for NVK
2024-03-06 14:46:21 +01:00
Robin Kertels
20490b678f
[d3d9] Fix missing else brackets in ResetSwapchain
2024-03-06 12:08:45 +01:00
Blisto91
428c98bc63
[util] Disable countLosableResources for all d3d9 Supreme Ruler games
...
All the d3d9 Supreme ruler games have this issue.
2024-03-05 15:28:11 +01:00
Robin Kertels
a0e39e94fa
[d3d9] Use most recently used swapchain for GetFrontBufferData
2024-03-05 13:54:15 +00:00
Robin Kertels
eaa732d0b3
[d3d9] Place GetFrontBufferData screenshot at window position
2024-03-05 13:54:15 +00:00
Robin Kertels
49b18f03fe
[d3d9] Unbind buffers in EndScene & Reset
2024-03-05 13:52:51 +00:00
Philip Rebohle
c9cea93b7b
[dxbc] Use raw access chains for buffer loads and stores
...
Maps more or less perfectly to D3D raw and structured buffers.
2024-03-05 14:41:18 +01:00
Philip Rebohle
69d74a46a0
[dxbc] Remove emitRawBuffer{Load,Store}
...
And factor these into the callers. We need to preserve the raw
index and offset parameters to use raw access chains.
2024-03-05 14:41:18 +01:00
Philip Rebohle
94098aa97d
[dxbc] Enable SPV_NV_raw_access_chains
2024-03-05 14:41:18 +01:00
Philip Rebohle
c677ba9b3e
[dxvk] Enable VK_NV_raw_access_chains if available
2024-03-05 14:41:18 +01:00
Philip Rebohle
77c7396ee1
[spirv] Add support for OpRawAccessChainNV
2024-03-05 14:41:18 +01:00
Philip Rebohle
9004c132ed
[dxbc] Declare dynamically indexed UBOs with the maximum possible size
...
Fixes #3861 .
2024-02-23 13:39:29 +01:00
Philip Rebohle
24d4c9c938
[util] Disable command lists for Granblue Fantasy Relink
...
The uses deferred contexts for rendering if driver command lists are enabled,
but when AMDAGS is loaded, it will also unconditionally use MultiDrawIndirect
functions. Since the AGS version in use does not support deferred contexts,
this breaks rendering, so we will have to force it into the immediate context
path.
Testing also shows slightly higher performance (~3-5%) with this path in
CPU-bound scenarios.
2024-02-22 16:07:24 +01:00
Philip Rebohle
5ded7d67f0
[d3d11] Implement UpdateSubresource bug if native command lists are disabled
2024-02-22 16:07:24 +01:00
Philip Rebohle
234f3ea071
[d3d11] Add option to hide native command list support
2024-02-22 16:07:24 +01:00
Robin Kertels
c5a37d443a
[d3d9] Handle null IBO when uploading data for draw
2024-02-20 13:04:01 -08:00
Robin Kertels
f254afb4fb
[util] Enable strict float emulation for Red River
2024-02-20 12:58:03 -08:00
Robin Kertels
39c19e9299
[d3d9] End scene on reset
2024-02-20 12:58:03 -08:00
Robin Kertels
738fd4f895
[d3d9] Don't actually unbind buffers
2024-02-20 12:58:03 -08:00
Philip Rebohle
9491b56beb
util: Enable d3d11.ignoreGraphicsBarriers for Granblue Relink
...
Improves GPU-bound performance due to the game using PS UAVs.
2024-02-15 20:33:55 +01:00
Robin Kertels
ab3593185f
[d3d9] Fail GetRTData if src and dst have mismatching sizes
...
MySims tries to do this and needs this to fail,
otherwise mouse picking is off.
2024-02-06 11:02:43 +01:00
Robin Kertels
e9a0fec5b3
[dxso] Clamp Exp when fast float emulation is enabled
2024-02-06 11:02:20 +01:00
Echo J
fae78407a2
d3d9: Remove an unused variable
...
This fixes a gcc warning (originally reported by Saancreed)
2024-02-06 10:19:28 +01:00
Robin Kertels
5312ef1cf9
[d3d9] Upload DYNAMIC+SYSMEM vertex and index data for each draw
2024-02-05 13:13:18 +00:00
Robin Kertels
62d64bd63a
[d3d9] Don't upload buffers before Up draws
2024-02-05 13:13:18 +00:00
Robin Kertels
f83ba898af
[dxvk] Use signed int for vertexOffset
...
BaseVertexIndex is signed in Vulkan, D3D11 & D3D9.
2024-02-05 13:13:18 +00:00
Philip Rebohle
05cb963e22
[util] Set sync interval override for P3R
2024-02-02 17:30:13 +01:00
Philip Rebohle
eb339bc7e4
[dxgi,d3d11] Move syncInterval override to DXGI swap chain
...
This way it also applies to D3D12 games.
2024-02-02 17:30:13 +01:00
Tatsuyuki Ishi
e2a46a347d
[meta] Declare bool conversion operators as explicit
...
Non-explicit conversion operators in general can participate in very
surprising conversion chains. Explicit bool operator is a good place to
start with, because even with explicit they do get automatic contextual
conversion in a lot of places, e.g., if conditions.
2024-01-27 11:44:51 +01:00
Tatsuyuki Ishi
afc6aa70fb
[d3d11] Explicitly convert DxvkExt to bool in D3D11DeviceFeatures
...
When assigning to a BOOL (which is an uint in disguise) and using explicit
bool conversion operators (introduced in a latter commit) an explicit cast
is required.
2024-01-27 11:44:51 +01:00
Tatsuyuki Ishi
799aeff560
[dxvk] Fix incorrect comparison in DxvkSparsePageTable::updateMapping
...
m_mappings[page] was getting implicitly converted to bool.
2024-01-27 11:44:51 +01:00
Robin Kertels
2ca8fdf890
[util] Disable counting losable resources for Supreme Ruler Ultimate
...
The game is broken and leaks a state block.
2024-01-26 18:11:25 +00:00
Robin Kertels
0841f5faf4
[d3d9] Implement config option to disable rejecting reset
2024-01-26 18:11:25 +00:00
Robin Kertels
7d9864c077
[d3d9] Only enable ATOC when rendering to MS RT
2024-01-26 17:48:21 +00:00
Dean Beeler
d4c5fc74e7
d3d11: Fix crash when srv is submitted to ClearUnorderedAccessViewUint
...
* The Settlers submits (possibly incorrectly) an SRV to ClearUnorderedAccessViewUint. The static_cast in the function does not translate correctly and crashes.
Native D3D11 behavior is to ignore the bad parameter entirely. It does not clear the SRV nor does it fault or even error with the DEBUG validator.
2024-01-23 16:01:12 +01:00
Tatsuyuki Ishi
89267b62ad
[build] Remove declspec UUID annotations
...
MIDL_INTERFACE already implies struct DECLSPEC_UUID.
2024-01-23 15:44:47 +01:00
Blisto91
34d8e65fd7
[util] cachedDynamicBuffers for Codename Panzers Phase One/Two
...
Helps CPU bound performance
2024-01-23 15:44:28 +01:00
Joshua Ashton
1568c263fb
[d3d9] Only add unique modes to mode list
2024-01-19 16:28:22 +00:00
Joshua Ashton
0cd4165658
[d3d9] Add D3DDISPLAYMODEEX operator
2024-01-19 16:28:22 +00:00
Joshua Ashton
4b8e8bed6e
[d3d9] Move operators out of dxvk namespace
2024-01-19 16:28:22 +00:00
r-a-sattarov
ac78048c23
[util] Fix e2k build
2024-01-16 22:03:31 +01:00
Richard Yao
14560600a9
Micro-optimize locking in fences
...
When a fence has been missed, we can avoid locking *most* of the time
via the double-checked locking pattern. We still lock before a second
check in case the scheduler caused us to miss the fence. If the
scheduler did cause us to miss the fence, we can drop the lock prior to
executing the callback function, as a second micro-optimization.
Signed-off-by: Richard Yao <richard.yao@alumni.stonybrook.edu>
2024-01-15 12:42:19 +01:00
Blisto91
854e06d3f0
[util] Enable deviceLossOnFocusLoss for BF2 and BF2142
...
The ingame spawn and gear selection GUI can disappear from view unless this is set.
2024-01-14 22:25:43 +01:00
Blisto91
eb806952d8
[util] Set deviceLossOnFocusLoss for Assassin's Creed 2 ( #3763 )
...
Makes it not crash on alt tab using at least Proton.
Windows will still have issues with alt tab.
2024-01-09 10:43:48 +01:00
Blisto91
a44dfabe26
[util] Set float emulation to Strict for UK Truck Simulator 1
...
Fixes black foliage
2024-01-09 10:42:52 +01:00
spiffeeroo
5e06cf9573
[util] Limit Sonic CD to 60 fps
...
Game engine physics/speed for Sonic CD is tied to frame rate so limit max frame rate to 60 fps. Otherwise, the game runs too quickly for high refresh rate monitors.
2024-01-02 19:05:44 +01:00
Blisto91
2cf590f636
[util] Enable cached vertex buffers for Kenshi
...
Improves the games performance when CPU bound.
2023-12-30 22:47:24 +01:00
Robin Kertels
a7a63b37c3
[util] Fix incorrect config option name
2023-12-27 03:06:49 +01:00
Robin Kertels
9cde0b5798
[d3d9] Fix off-by-one when copying shader defined constants
2023-12-25 14:51:02 +00:00
Blisto91
adb33d3af1
[util] Hide Intel in Far Cry 3, 4 and Primal
...
Also unhides Nvidia in Primal as it has the same clear value rounding assumptions as Far Cry 3 and 4
2023-12-23 09:23:27 +01:00
Philip Rebohle
1b31aa5dbc
[util] Enable hideIntegratedGraphics for Metro Exodus EE
2023-12-01 14:14:36 +01:00
Philip Rebohle
03c09ce15f
[dxvk] Add option to skip integrated GPU adapters
2023-12-01 14:14:13 +01:00
Blisto91
91f7f43c35
[util] Don't spoof Nvidia on AMD GPUs in Hitman 3
...
Spoofing to Nvidia prevents ray tracing enablement on AMD and the game does not crash without ags anymore
2023-11-18 12:18:08 +01:00
Robin Kertels
d998dee46e
[d3d11] Lock context in KeyedMutex::ReleaseSync
...
Co-authored-by: Yuxuan Shui <yshuiv7@gmail.com>
2023-11-16 15:43:07 +01:00
Philip Rebohle
ea3149801f
[d3d9] Return empty buffer slice for out-of-bounds offsets
...
Fixes #3715 .
2023-11-14 10:54:54 -08:00
xpander69
1cb58b0732
[Util] two more executables to workaround Warhammer Online
...
Test server executables need the same VendorID to work around the rendering issues.
2023-11-14 12:23:50 +01:00
Philip Rebohle
2ed1778df9
[d3d11] Handle potential integer overflow when validating draw offsets
...
Apparently some games use -1 as an argument offset, which is nonsensical
and leads to issues.
2023-11-02 17:49:38 +01:00
Philip Rebohle
a427d22cde
[dxvk] Add Vulkan instance flag for D3D9 apps
2023-10-31 16:05:58 +01:00
Joshua Ashton
22c2abb9b7
[dxgi] Treat R16G16B16A16_FLOAT as 32bpp for display
...
HDR in Control (a patch released by a developer post-launch, not
actually in the game sadly) tries to set a video mode with
DXGI_FORMAT_R16G16B16A16_FLOAT.
This seemingly works on Windows, and based on FindClosestMode etc
documentaton, this seems required to work for any format that scanout
it supported for.
It's really not like the bpp is meaningful on Windows with the
distinction of 8bit and 10bit not working in GDI modes at all.
Nor does it end up actually setting anything on Linux/Deck where
modesets are emulated.
So, treat DXGI_FORMAT_R16G16B16A16_FLOAT as 32bpp so the
FindClosestMatchingMode and EnterFullscreenMode calls succeed.
2023-10-29 10:09:34 +01:00
Blisto91
f45911a28f
[util] Disable allowDirectBufferMapping for SkyDrift
...
Works around a alt tab OOM crash
2023-10-23 14:52:44 +02:00
Blisto91
e00db24557
[util] Enable useMonitorFallback for Holocure
...
Temporary performance drop workaround until QueryDisplayConfig optimization is in Proton Wine.
2023-10-10 19:32:23 +02:00
Paul Gofman
552d2f0a6d
[dxgi] Add useMonitorFallback option
...
And enable it for CP2077.
It is supposed to be dropped once QueryDisplayConfig optimization
is in Proton Wine.
2023-10-10 12:01:51 +02:00
WinterSnowfall
4d974685c9
[d3d9] Mark presenter for recreation on device reset with deferSurfaceCreation
2023-10-06 14:05:39 +02:00
Blisto91
f0ff0007dc
[util] Enable cachedDynamicBuffers for Battlestations Midway
...
Helps performance dips that can happen in some areas
2023-10-06 14:05:04 +02:00
Robin Kertels
494f7fd38d
[d3d9] Only set initial NeedsUpload for D3DPOOL_MANAGED textures
2023-09-19 13:25:12 -07:00
WinterSnowfall
0632da1935
[d3d9] Add a device compatibility mode for d3d8
2023-09-19 09:19:55 -07:00
Philip Rebohle
83dc4678df
[util] Set maximum frame latency to 1 for Age of Empires 2 (2013)
...
Game seems to be doing something horrible on its own, literally impossible
to make it run smoothly. This at least seems to limit excursions to ±10ms
and fix the camera flinging back and forth when running the game through
Gamescope.
2023-09-14 16:50:30 +02:00
Paul Gofman
f93cfbc26a
[d3d11] Pass device directly to D3D11DXGIKeyedMutex
2023-09-13 14:29:25 -07:00
Philip Rebohle
c113b791a1
[util] Enable 60 FPS lock for Aviary Attorney
...
This game (or nw.js) comes with a hard-coded frame rate limit that
behaves more like a random number generator which happens to average
out at around 16ms on a good day.
Fix this complete mess by enabling ours on top of that.
2023-09-08 03:04:02 +02:00
Philip Rebohle
5828f0e2b9
Revert "[dxgi] Use VK_FORMAT_A8_UNORM if available"
...
This reverts commit 6a5ed02db3
.
Native A8 breaks Crysis 2/3 Remastered for unknown reasons.
2023-09-07 03:58:39 +02:00
Philip Rebohle
80e075406b
[meta] Release 2.3
2023-09-04 17:59:12 +02:00
Margen67
a53f0e8168
[util] Remove whitespace
2023-09-04 03:10:49 +02:00
Margen67
4705de5725
[util] Escape .
2023-09-04 03:10:49 +02:00
Robin Kertels
9e26964a96
[d3d9] Divide projected textures by w if ProjectedCount is 0
2023-09-03 18:08:47 -07:00
Blisto91
ce2f9f35ce
[util] Hide AMD in Riders Republic
...
Works around crashing because of statically linked amd ags
2023-09-01 00:21:16 +02:00
Philip Rebohle
a3fa9c26dc
Revert "[d3d11] Implement DXGI_SWAP_EFFECT_SEQUENTIAL and FLIP_SEQUENTIAL"
...
This reverts commit 79f6239df3
.
Some engines use SEQUENTIAL presentation despite not making use of it, and
sparse binding is much slower than expected on Nvidia drivers, which leads
to massive performance regressions across the board.
2023-09-01 00:15:09 +02:00
Joshua Ashton
ff5507769a
[wsi] Add proper values for SDR metadata fallbacks
2023-08-31 22:54:02 +01:00
WinterSnowfall
5c56fa0df4
[util] Enable deferSurfaceCreation for Drakensang
2023-08-30 18:02:02 +02:00
Tatsuyuki Ishi
7e10021eac
Remove unused DxvkResource::waitIdle
...
Spinning-based wait idle is no longer used.
2023-08-29 11:05:42 +02:00
Joshua Ashton
bbd1d84cd0
[dxgi] Set BitsPerColor to 10
...
For two reasons:
1) Some apps will only enable or attempt to enable HDR if BitsPerColor is >= 10.
2) Encouraging apps to create 10-bit swapchains for use in hardware dithering on Gamescope/Steam Deck and to have more precision thru scanout color transforms
2023-08-26 01:43:42 -07:00
Jens Peters
02db89ac30
[dxgi] Allow HDR on UE4/D3D11 when NVAPI is enabled
2023-08-24 21:21:29 -07:00
Philip Rebohle
92dc61f161
[d3d11] Fix up UAV clears for A8_UNORM
2023-08-24 13:12:07 +02:00
Philip Rebohle
6a5ed02db3
[dxgi] Use VK_FORMAT_A8_UNORM if available
2023-08-24 13:12:07 +02:00
Philip Rebohle
64828e2c6c
[dxvk] Use vkCmdBindIndexBuffer2 if supported
2023-08-24 13:12:07 +02:00
Philip Rebohle
a4f2a49a02
[dxvk] Add description for new image formats
2023-08-24 13:12:07 +02:00
Philip Rebohle
aa41a7a351
[dxvk] Enable VK_KHR_maintenance5 if available.
2023-08-24 13:12:07 +02:00
Philip Rebohle
79f6239df3
[d3d11] Implement DXGI_SWAP_EFFECT_SEQUENTIAL and FLIP_SEQUENTIAL
...
Requires sparse since we have no other means to swap the backing image.
2023-08-24 13:00:35 +02:00
Philip Rebohle
53a68635b2
[dxvk] Optimize page table updates for images
...
Dramatically reduces overhead when binding full subresources.
2023-08-24 13:00:35 +02:00
Philip Rebohle
179c5ec998
[dxvk] Sort allocated memory pages for sparse allocator
...
This way, memory regions bound to consecutive pages are more likely
to end up in consecutive memory regions, which allows batching page
table updates more efficiently.
2023-08-24 13:00:35 +02:00
Philip Rebohle
d6e0107e23
[dxvk] Ensure to submit sparse binding commands
2023-08-24 13:00:35 +02:00
Joshua Ashton
428ca9416d
[d3d11] Implement synchronization on keyed mutexes
...
Co-authored-by: Paul Gofman <pgofman@codeweavers.com>
2023-08-23 16:50:52 +02:00
Joshua Ashton
c26f40229a
[vulkan] Query wine_vk{Acquire,Release}KeyedMutex
...
Non-standard functions, but exposed by winevulkan to support keyed mutexes.
Co-authored-by: Paul Gofman <pgofman@codeweavers.com>
2023-08-23 16:50:52 +02:00
Joshua Ashton
8226690298
[dxvk] Enable VK_KHR_win32_keyed_mutex
...
Co-authored-by: Paul Gofman <pgofman@codeweavers.com>
2023-08-23 16:50:52 +02:00
Philip Rebohle
c2cd129b89
[dxvk] Fix xfb counter buffer draw tracking
2023-08-23 13:44:35 +02:00
Philip Rebohle
915244c00c
[d3d11] Fix various D3D10 interface queries
2023-08-23 01:06:04 +02:00
Blisto91
6fce094942
[util] Limit fps in Project: Snowblind
...
Player movement and animation can bug out at high fps like issues moving around objects and the players head detaching slightly when moving backwards.
Seems like it also helps some crash issues.
2023-08-21 01:43:24 +02:00
Robin Kertels
740ebec7ee
[d3d9+dxso] Consider DMAP sampler in bit masks
2023-08-20 10:21:16 -07:00
Robin Kertels
bcaaac4ad7
[d3d9] Handle sampling from DS_READONLY properly
2023-08-18 18:59:53 -07:00
Joshua Ashton
1130512db5
[dxgi] Add global HDR interop interface for NVAPI/AGS
2023-08-18 22:57:06 +01:00
Philip Rebohle
4ae542e875
[util] Do not hide Nvidia GPUs from Ratchet & Clank
...
NVAPI is disabled now due to crashing issues in a wine-specific code
path within the game, but we still want it to detect the correct GPU
so that it doesn't complain about drivers and also allows users to
enable Raytracing.
2023-08-15 00:23:19 +02:00
Philip Rebohle
952c66fe2a
[dxgi] Add options to hide Intel or AMD GPUs.
2023-08-14 20:12:02 +02:00
Philip Rebohle
b6a7714e67
[dxgi,util] Rename dxgi.nvapiHack option to dxgi.hideNvidiaGpu
2023-08-14 19:21:16 +02:00
Etaash Mathamsetty
037669f715
[dxso] Don't assume 32 registers.
2023-08-13 20:34:38 +01:00
Robin Kertels
295a58afdf
[d3d9] Check depth bounds test when deciding to bind DSV
2023-08-13 20:32:20 +01:00
Robin Kertels
0746a3b91a
[d3d9] Don't resolve an image with 1 sample
2023-08-10 13:45:40 +02:00
Etaash Mathamsetty
429555a540
[dxgi] Fix behavior of GetWindowAssociation
2023-08-09 12:18:24 +02:00
Blisto91
dfcd7aedd8
[util] Limit Conflict Vietnam to 60fps ( #3606 )
...
Physics can bug out at higher fps making the character fly or get stuck when running up or down slopes.
2023-08-09 12:18:10 +02:00
gofman
cbda22a040
[d3d11] Add stub IDXGIKeyedMutex interface. ( #3601 )
...
Partially based on a patch by Derek Lesho.
Co-authored-by: Paul Gofman <pgofman@codeweavers.com>
2023-08-07 17:23:32 +02:00
Georg Lehmann
549bd86f03
[d3d9] use strict float emulation for nvk
...
nvk supports nir_op_fmulz/ffmaz
2023-08-06 11:01:03 +01:00
WinterSnowfall
b0b46fd075
[d3d9] Don't show/hide a software cursor
2023-08-02 01:51:19 +01:00
Joshua Ashton
a62117cd13
build: Disable stdcall alias-ing and use kill-at
...
Disable stdcall aliasing and enable kill-at to ensure our exported
functions don't have the @8, @40, etc suffixes.
This still keeps `--enable-stdcall-fixup` as otherwise the linker can
get confused trying to find exports from the .def. This does not result
in aliases being added, just for them to be found to add to the export
table.
This also switches d3d11 to use the MinGW provided dxgi.lib for linking
and d3d10 to use the MinGW provided d3d11.lib for linking.
Unfortunately the .a's we output seem to still have the @blah that we
killed so we cannot use them for internal linkage since using kill-at.
Tested that what we get out of MinGW now is what we want with dllexp.
Supercedes: #3590
Exports
```
➜ build git:(master) ✗ winedump -j export src/dxgi/dxgi.dll
Contents of src/dxgi/dxgi.dll: 129505860 bytes
Name: DXGI.DLL
Characteristics: 00000000
TimeDateStamp: 64C97A2D Tue Aug 1 22:33:33 2023
Version: 0.00
Ordinal base: 9
# of functions: 9
# of Names: 5
Addresses of functions: 00423028
Addresses of name ordinals: 00423060
Addresses of names: 0042304C
Entry Pt Ordn Name
00007C17 9 CreateDXGIFactory
00007BF3 10 CreateDXGIFactory1
00007B62 11 CreateDXGIFactory2
00007C3B 16 DXGIDeclareAdapterRemovalSupport
00007CD8 17 DXGIGetDebugInterface1
Done dumping src/dxgi/dxgi.dll
```
```
➜ build git:(fix-stdcall-32-bit) winedump -j export src/d3d11/d3d11.dll
Contents of src/d3d11/d3d11.dll: 263021637 bytes
Name: D3D11.DLL
Characteristics: 00000000
TimeDateStamp: 64C97A2E Tue Aug 1 22:33:34 2023
Version: 0.00
Ordinal base: 18
# of functions: 7
# of Names: 4
Addresses of functions: 005E3028
Addresses of name ordinals: 005E3054
Addresses of names: 005E3044
Entry Pt Ordn Name
00020045 18 D3D11CoreCreateDevice
000200AA 22 D3D11CreateDevice
0002010E 23 D3D11CreateDeviceAndSwapChain
0002025F 24 D3D11On12CreateDevice
Done dumping src/d3d11/d3d11.dll
```
Import of DXGI in D3D11
```
offset 005e1014 dxgi.dll
Hint/Name Table: 005E408C
TimeDateStamp: 00000000 (Thu Jan 1 01:00:00 1970)
ForwarderChain: 00000000
First thunk RVA: 005E4300
Thunk Ordn Name
005e4300 4 CreateDXGIFactory1
```
2023-08-01 23:35:09 +01:00
pchome
e598dcd77e
[util] Add DXVK_CONFIG to define additional options
2023-08-01 22:09:29 +02:00
Philip Rebohle
09857dcaa9
[dxvk] Dirty multisample state if sample mask export changes.
...
This affects Alpha-to-Coverage.
2023-08-01 18:07:47 +02:00
Philip Rebohle
d66f8385c3
[dxvk] Disable alpha to coverage if sample mask is written
...
Matches D3D11 behaviour and fixes tree rendering in A Total War Saga: TROY.
2023-08-01 16:58:46 +02:00
Philip Rebohle
007e9f4c89
[dxvk] Check whether fragment shader exports sample mask
2023-08-01 16:27:23 +02:00
Philip Rebohle
9b019d26ac
[dxgi] Forward IDXGIOutput::GetFrameStatistics to full-screen swap chain
...
Testing on Windows reveals that this function does not work with windowed
mode swap chains even in flip model.
2023-07-31 21:47:44 +02:00
Philip Rebohle
228615b639
[d3d11] Rework D3D11CoreCreateDevice
...
FiveM calls this directly and apparently our signature wasn't quite
what they expect it to be.
2023-07-31 13:13:48 +02:00
Blisto91
13440a5d89
[dxvk] Clarify Vulkan 1.3 driver requirement in log
2023-07-23 19:59:31 +02:00
Blisto91
1daae75048
[util] Set Cached Dynamic Resources for d3d11 Vindictus
...
Co-authored-by: NorbertHarangozo <maszek.solutions@gmail.com>
2023-07-23 19:12:12 +02:00
Philip Rebohle
b4d87eaac0
[dxbc] Fix constant texture offsets with 1D textures
...
Fixes #3572 .
2023-07-22 17:37:37 +02:00
Philip Rebohle
1e11db98d0
[dxvk] Use separate mutex for completed chunk counter
...
Fixes a possible deadlock.
2023-07-21 21:45:50 +02:00
Philip Rebohle
f689ddd838
[dxvk] Use dual queues for CS thread
...
Reduces lock contention since we can just swap out the entire queue
any time the worker thread runs out of stuff to do.
2023-07-21 21:21:34 +02:00
Philip Rebohle
eed43c8524
[dxgi] Fix QPC time in frame statistics
2023-07-21 10:22:56 +02:00
Philip Rebohle
d066fbbaed
[d3d11] Set up line rasterization mode appropriately
2023-07-20 23:43:03 +02:00
Philip Rebohle
a67c99943a
[dxbc] Set output topology for GS and TES correctly
2023-07-20 23:43:03 +02:00
Philip Rebohle
5ece97f769
[dxvk] Add line rasterization mode to rasterization state
2023-07-20 23:43:03 +02:00
Philip Rebohle
228cd4c331
[dxvk] Enable VK_EXT_line_rasterization if supported.
2023-07-20 23:43:03 +02:00
Philip Rebohle
878da4984b
[util] Disable single-use command lists for Ghost Recon Wildlands
2023-07-17 15:00:55 +02:00
Philip Rebohle
c599f95e5d
[d3d11] Do not cache GetCurrentProcess result
...
This is just a constant.
2023-07-16 21:16:16 +02:00
Paul Gofman
4893788d9b
[d3d11] Fixup incorrect MiscFlags in D3D11Device::OpenSharedResourceGeneric()
...
So texture sharing works with vkd3d-proton before correcting flags
there.
2023-07-16 15:34:39 +02:00
Paul Gofman
fc952a3ca3
[d3d11] Validate texture sharing parameters at texture creation
2023-07-16 15:34:39 +02:00
Paul Gofman
01ad79278b
[d3d11] Support just one handle type in D3D11DXGIResource::{Get|Create}SharedHandle
2023-07-16 15:34:39 +02:00
Paul Gofman
48557886de
[d3d11] Determine shared texture handle type through D3D11_RESOURCE_MISC_SHARED_NTHANDLE
2023-07-16 15:34:39 +02:00
Paul Gofman
8319793a98
[d3d11] Always close handle in D3D11CommonTexture::ExportImageInfo()
...
For KMT handle openKmtHandle() creates new handle, for NT handle
m_image->sharedHandle() gets duplicated handle from
vkGetMemoryWin32HandleKHR().
2023-07-16 15:34:39 +02:00
Blisto91
886268fcf9
[util] Remove Secret World Legends config
2023-07-16 15:26:46 +02:00
Blisto91
6be1f6d7bd
[util] Limit fps in The Incredibles
2023-07-05 20:48:19 +02:00
Joshua Ashton
2f72115f91
[d3d9] Keep 1 presenter per swapchain window
...
Some apps such as level editors such as Hammer World Editor, some GUI apps/launchers etc use window overrides in presentation.
Previously we'd remake a new surface every time, which was incredibly slow making these apps basically unusable.
Now we keep one surface + swapchain + image views around per window/window override we have, along with the frame latency objs + frame counter.
(Obviously an app may present to multiple windows in a frame, so for frame latency purposes we track that per-window.
2023-07-04 16:44:31 +02:00
Alpyne
026aa49ef8
[util] replaceNaN: Align result
...
Otherwise _mm_store_ps can fail
2023-07-03 15:36:21 +02:00
Trevonn
3a368f4780
Bladestorm Nightmare - Game speed increases when above 60 FPS outside of missions
...
The game has 3 v-sync options but doesn't explain what they do.
0 = 60 FPS
1 = Monitor Refresh Rate
2 = 30 FPS
Framerate is capped at 60 in missions and then up to monitor refresh in the main menu and tavern area
This PR would provide a better default experience for people using option 1 with high refresh displays
2023-07-01 17:12:36 +02:00
Philip Rebohle
0f4458e173
[dxvk] Remove pending submission counter
2023-06-26 01:37:46 +01:00
Philip Rebohle
ccb87d5ea9
[d3d9] Port flush heuristic from D3D11
2023-06-26 01:37:46 +01:00
Alpyne
022bf1d134
[d3d9] Allow changing API name for d3d8
2023-06-24 18:18:38 +01:00
Alpyne
d6e7e3e780
[d3d9] Add DxvkD3D8Bridge for d3d8 interop
2023-06-24 17:58:49 +01:00
Blisto91
b77928b6fe
[util] Fix Modern Warfare 2 Campaign Remastered config
2023-06-24 13:28:49 +02:00
Philip Rebohle
987df8a487
[util] Filter out internal private ref on object destruction
...
Closes #3531 for real this time.
2023-06-24 12:45:38 +02:00
Philip Rebohle
a7278cdab1
[dxgi] Do not interact with other DXGI objects during swapchain destruction
...
This trips up Stalker Anomaly for some reason, but initializing an output
is not meaningful anyway in this situation since we either know the output
in question already, or we don't and it cannot be in a non-default state.
Closes #3531 .
2023-06-24 12:38:10 +02:00
Joshua Ashton
3b3ebc9350
[d3d9] Rename some members to be clearer
2023-06-24 04:09:04 +01:00
Joshua Ashton
00ae118655
[d3d9] Don't use m_activeRTs in SetPixelShader
...
These are just textures, not surfaces.
2023-06-24 04:07:19 +01:00
Joshua Ashton
55be12daa5
Revert "[d3d9] Use m_activeRTs in BindFramebuffer"
...
This is only textures. Oops.
This reverts commit ff65599dba
.
2023-06-24 04:06:24 +01:00
Joshua Ashton
0e36a07a93
[d3d9] Don't mark DS as hazardous if depth write is disabled
2023-06-24 03:55:16 +01:00
Joshua Ashton
ff65599dba
[d3d9] Use m_activeRTs in BindFramebuffer
...
Can roll in the anyColorWrites this way.
2023-06-24 03:42:54 +01:00
Joshua Ashton
6b60de2d31
[d3d9] Fix unbinding RTs
...
Fixes a regression with 8560efa3c7
in ND1.
Also more optimized.
2023-06-24 03:41:31 +01:00
Joshua Ashton
362743c1d6
[d3d9] Update DS hazards when PS shader masks change
2023-06-24 02:55:38 +01:00
Joshua Ashton
7f302fc350
[d3d9] Don't mark DS hazards if not used by shader
2023-06-24 02:53:14 +01:00
Philip Rebohle
8704ed7af6
[dxvk] Ignore some pipeline flags when ending render pass
2023-06-22 23:41:24 +02:00
Philip Rebohle
0895858901
[dxvk] Only decrement pending submission count for command submissions
...
Otherwise we'll underflow the integer and break the D3D9 flush heuristic.
2023-06-22 20:15:42 +02:00
Joshua Ashton
80b27f95bc
[d3d9] Fix active hazards RT only being 4 bits
2023-06-22 16:37:09 +01:00
Joshua Ashton
a791493d14
[d3d9] Don't rebind AlphaTest when changing RT if not necessary
2023-06-22 16:37:09 +01:00
Joshua Ashton
c768196251
[d3d9] Compress hazard state going into CS
...
This can potentially happen per-draw so make it as small as possible.
2023-06-22 16:37:09 +01:00
Joshua Ashton
3625c5d481
[d3d9] Optimize DS active hazard check
...
There can only be one DS, so no need to loop over.
2023-06-22 16:37:09 +01:00
Philip Rebohle
b3cbe36c08
[dxvk] Apply frame rate limit on presentation timeline
...
This may reduce latency as we no longer end up stalling subsequent
GPU submissions.
2023-06-22 16:17:03 +02:00
Philip Rebohle
166d90b04c
[d3d11] Fix frame latency based on buffer count
...
We need to ignore the front buffer here since we synchronize after
presentation.
2023-06-22 16:16:30 +02:00
Robin Kertels
60b6e98529
[d3d9] Transition DS too if there's a feedback loop
2023-06-21 15:16:43 +01:00
Robin Kertels
a20869fb93
[d3d9] Track textures in m_activeHazardsRT instead of RT
...
There's 21 textures and only 4 RTs.
Tracking the textures allows us to mask off the active texture bitfield
instead of the active render target one, potentially resulting in fewer iterations.
2023-06-21 15:16:43 +01:00
Philip Rebohle
a287566c65
[dxgi] Implement frame statistics based on IDXGIVkSwapChain1
2023-06-21 15:16:37 +02:00
Philip Rebohle
28f48f9fdc
[dxgi] Initialize output refresh counts with non-zero values
...
Matches Windows behaviour.
2023-06-21 15:16:37 +02:00
Philip Rebohle
e02a800c33
[d3d11] Implement IDXGIVkSwapChain1 interface for D3D11 swap chain
2023-06-21 15:16:37 +02:00
Philip Rebohle
d7fa39c4eb
[util] Be more robust against timing weirdness when computing vblank count
2023-06-21 15:16:37 +02:00
Philip Rebohle
d1e39be7e7
[dxgi] Add IDXGIVkSwapChain1 interface definition
2023-06-21 15:16:37 +02:00
Philip Rebohle
438c535fe7
[d3d11] Always release frame latency semaphore in Present
2023-06-21 15:16:37 +02:00
Philip Rebohle
7dbe4abb48
[d3d9] Use new presenter signal mechanism for frame pacing
2023-06-21 15:16:37 +02:00
Philip Rebohle
e99bc591df
[d3d11] Use new presenter signal mechanism for frame latency event
2023-06-21 15:16:37 +02:00
Philip Rebohle
08363edb05
[dxvk] Only synchronize with presents with FIFO present modes
2023-06-21 15:16:37 +02:00
Philip Rebohle
5d1196733b
[dxvk] Implement waiting for specific present requests
2023-06-21 15:16:37 +02:00
Philip Rebohle
ca3492570c
[dxvk] Add functionality to wait for a given present operation
2023-06-21 15:16:37 +02:00
Philip Rebohle
215c4f8f6f
[dxvk] Enable VK_KHR_present_id and VK_KHR_present_wait if supported
2023-06-21 15:16:37 +02:00
Robin Kertels
5a1ebfa4ee
Revert "[d3d9] Only use direct buffer mapping for DYNAMIC buffers"
...
This reverts commit 1850819483
.
2023-06-20 23:08:52 +01:00
Joshua Ashton
6f87ccdafc
[d3d11] Use FORCE_UNORM depth bias representation for UNORM formats
2023-06-20 13:31:48 +01:00
Joshua Ashton
b30a4f0cc7
[d3d9] Use FLOAT or FORCE_UNORM depth bias representation
2023-06-20 13:31:48 +01:00
Joshua Ashton
4e9853f608
[dxvk] Expose depth bias representation/exact controls
2023-06-20 13:31:48 +01:00
Joshua Ashton
5fbb0dd4ba
[dxvk] Enable EXT_depth_bias_control
2023-06-20 13:31:48 +01:00
Alpyne
0b9acf3a25
[util] Add str::split
...
Used by d3d8
2023-06-20 13:31:17 +01:00
Timo Gurr
211d095ee4
[util] Limit STEINS;GATE ELITE to 60 fps
...
Intros, menu and ui animations are playing way too fast, also causing
input issues.
2023-06-20 13:27:52 +02:00
Trevonn
77e7e8bfba
[util] Report NVIDIA for Star Wars Battlefront as it errors out on AMD
2023-06-20 13:23:52 +02:00
Alpyne
5d29140f74
[util] replaceNaN: Use unaligned SIMD _mm_loadu_ps
...
There is no good reason to expect games will have aligned the data they're passing in.
2023-06-19 21:13:37 +01:00
Alpyne
0236e780a7
[d3d9] Fix std::hex in D3D9CommonTexture
2023-06-19 21:02:10 +01:00
Alpyne
24dbcf8fd8
[dxso] Shared code for texbem and bem
2023-06-19 20:59:18 +01:00
Alpyne
404c984f9c
[dxso] Implement bem instruction
2023-06-19 20:59:18 +01:00
Alpyne
a79772322b
[d3d9] Initialize m_mapFlags to 0
...
Can sometimes get weird default values in there.
2023-06-19 19:52:03 +01:00
Trevonn
36e6a7c2e5
[util] Set maxChunkSize to 1 for GOG and fix EA App exe name
...
Similar to the other launchers the VRAM goes 600MB+ to 100MB+
2023-06-16 16:28:31 +01:00
Trevonn
c5ab5be48d
[util] Set maxChunkSize to 1 for EA App
...
Reduces GPU VRAM usage of EADesktop.exe from 162MB to 6MB
2023-06-15 19:39:28 +01:00
Paul Gofman
af9bd16b8d
[dxvk] Always reference library in VR extension providers
2023-06-15 19:07:26 +02:00
Winter Snowfall
2c014fdb34
[util] Match on the GOG version of KoF XIII as well
2023-06-15 19:06:45 +02:00
Timo Gurr
6478c10a18
[util] Set maxChunkSize to 1 for Battle.net
...
Currently when Diablo 4 is running the Battle.net launcher it uses around
600MB of VRAM. Reducing the max chunk size to 1MB reduces the memory usage
to around 150MB.
2023-06-15 19:06:26 +02:00
Philip Rebohle
7388c243d2
[dxvk] Fix incorrect fullScreenExclusive feature check
2023-06-15 17:32:05 +02:00
Lilium
bd575a4a46
[d3d11] implement 'clampNegativeLodBias' as a conf option
2023-06-14 20:22:27 +01:00
Lilium
3fce9886f5
[d3d9] implement 'clampNegativeLodBias' as a conf option
2023-06-14 20:22:27 +01:00
Lilium
5d134b877a
[d3d9] implement 'samplerLodBias' as a conf option
2023-06-14 20:22:27 +01:00
Robin Kertels
c75ed86909
[d3d9] Reset vertex & index buffer in Reset
2023-06-13 22:47:55 +01:00
Robin Kertels
d1707026f9
[d3d9] Remove uninitialized device present params
2023-06-13 22:47:55 +01:00
Robin Kertels
b8d36eeacc
[d3d9] Fix losing auto depth stencil surface
2023-06-13 22:47:55 +01:00
Robin Kertels
8f740c53b4
[d3d9] Remove IsLosable
...
Redundant.
2023-06-13 22:47:55 +01:00
Robin Kertels
52ac271acb
[d3d9] Reject Reset if there's any remaining DEFAULT resources
2023-06-13 14:15:18 +01:00
Robin Kertels
a1a91dd766
[d3d9] Fix potential race when discarding systemmem textures
2023-06-11 16:57:17 +01:00
Robin Kertels
22f6246fd6
[util] Fix app profile grouping
2023-06-11 16:57:17 +01:00
Robin Kertels
9d6804e40a
[util] Disable direct buffer mapping for Injustice
2023-06-11 16:57:17 +01:00
Robin Kertels
5fd025c513
[d3d9] Rename apitraceMode
...
It's not just used for apitrace and the new name
is more consistent with the D3D11 equivalent option.
2023-06-11 16:57:17 +01:00
Robin Kertels
d9d6316609
[d3d9] Remove allowDiscard hack
2023-06-11 16:57:17 +01:00
Robin Kertels
9b877cf623
[util] Remove D&D - The Temple of Evil workaround
...
The game uses SWVP, so we don't need an app hack here.
2023-06-11 16:57:17 +01:00
Robin Kertels
2c3f2b9ad1
[d3d9] Ignore DISCARD after device loss
2023-06-11 16:57:17 +01:00
Robin Kertels
1850819483
[d3d9] Only use direct buffer mapping for DYNAMIC buffers
...
Tests show that buffers with just D3DUSAGE_WRITEONLY are uploaded on Unlock.
2023-06-11 16:57:17 +01:00
Robin Kertels
1db2e3a6ec
[util] Re-enable direct buffer mapping for Dark Romance
...
The game uses SWVP, so we don't need the hack anymore.
2023-06-11 16:57:17 +01:00
Robin Kertels
2efd3f3698
[util] Re-enable direct buffer mapping for RE games
...
I cannot reproduce the stalls anymore.
2023-06-11 16:57:17 +01:00
Robin Kertels
bbaf01d9e6
[d3d9] Force staging buffer mapping for pure SWVP devices
2023-06-11 16:57:17 +01:00
Robin Kertels
4a55047dde
[d3d9] Forbid disabling SWVP on a pure SWVP device
2023-06-11 16:57:17 +01:00
Joshua Ashton
3fddc364ee
[util] Fix UTF8 encodeTypedChar for 4 byte chars
...
Some flipped logic here...
2023-06-10 13:58:33 +02:00
Philip Rebohle
4d254b13be
[dxgi] Unlock presenter lock early during presentation
...
If SetGammaControl and Present are called at the same time, we'll
otherwise have a deadlock due to reversed lock order.
Fixes #3458 .
2023-06-05 17:02:15 +02:00
Joshua Ashton
d241daa0b1
[util] Add app profile for Fallout 76
2023-06-05 03:00:53 +02:00
Eric Sullivan
2e70a2b07d
[util] Set maxChunkSize to 1 for the Rockstar launcher and social club
...
Currently when Red Dead Redemption 2 is running the Rockstar launcher,
and social club each use over 600MB of VRAM. The root cause of this is
DXVK creating two memory pools of 256MB for read, and read/write resources.
Reducing the max chunk size to 1MB reduces the memory usage of each to
around 40MB.
2023-06-05 02:17:26 +02:00
Robin Kertels
52f04ca3d4
[d3d9] FF: Fix using wrong texCoord mask
2023-06-04 17:52:18 +01:00
Joshua Ashton
c585ea251e
[dxso] Respect all PS input elements for registers
...
Fixes shadows in Test Drive Unlimited 2.
Closes : #3469
2023-06-02 23:12:22 +02:00
Philip Rebohle
ab00591297
[dxvk] Introduce dxvk.tearFree option
...
And replace the old frontend-specific options.
2023-06-01 17:48:51 +02:00
Philip Rebohle
85d52ccb88
[dxvk] Implement dynamic present mode switching
...
This way, we don't need to recreate the swap chain when the app switches
between vsync enabled and disabled. Currently only works when running
bleeding-edge Gamescope with ENABLE_GAMESCOPE_WSI=1.
2023-06-01 17:48:51 +02:00
Philip Rebohle
e6be0cf996
[dxvk] Rework present mode selection for swap chains
2023-06-01 17:48:51 +02:00
Philip Rebohle
1728d9e89d
[dxvk] Rework presenter creation to take a DxvkDevice
...
This way we can easily query available Vulkan features.
2023-06-01 17:48:51 +02:00
Philip Rebohle
b1b0abdbbf
[dxvk] Move presenter implementation to DXVK module
2023-06-01 17:48:51 +02:00
Philip Rebohle
be875cd7e6
[dxvk] Enable VK_EXT_swapchain_maintenance1 and surface_maintenance1
2023-06-01 17:48:51 +02:00
WinterSnowfall
8b6cbda6de
[d3d9] Properly expose the MaxVertexBlendMatrixIndex capability
2023-05-30 23:56:26 +01:00
Robin Kertels
4b10846008
[dxso] Fix RT mask for SM1
2023-05-26 04:28:49 +01:00
Joshua Ashton
e0654977c9
[d3d9] Stub out D3D9On12 interfaces
...
Closes : #3445
2023-05-24 14:36:45 +01:00
Joshua Ashton
b5c18a02ae
[d3d9] Optimize UpdateAnyColorWrites for 0th case
...
This is the most common
2023-05-24 14:21:30 +01:00
Joshua Ashton
cafd104783
[d3d9] Pack RT bitmasks tightly
...
No need to waste a whole 32-bits for each entry here when we only have 4 possible RTs at a time.
2023-05-24 14:10:41 +01:00
Joshua Ashton
269bab2c34
[d3d9] Track if any color writes are enabled for an RT
...
Use this for determining whether to rebind FB and in checks, otherwise we can miss stuff for pure surface RTs
2023-05-24 14:05:13 +01:00
Joshua Ashton
075c0bf203
[d3d9] Use m_boundRTs for COLORWRITEENABLE checks
...
Also allows us to check for NULL RTs with this too and avoid extra work!
2023-05-24 13:42:42 +01:00
Joshua Ashton
8560efa3c7
[d3d9] Unbind RTs which are unwritten by a PS
...
Otherwise we can end up with feedback loops on RTs with a 0 color mask.
Closes : #3447
2023-05-24 13:40:17 +01:00
Blisto91
b9b2db510e
[util] Limit fps for some Tomb Raider games
2023-05-24 14:31:38 +02:00
Lilium
d5c6ae2e4d
[dxvk] dxvk_adapter: implement macro to check for feature need in checkFeatureSupport
2023-05-24 11:53:34 +01:00
Lilium
633f6663a4
[dxvk] fix copy mistake in dxvk_adapter
2023-05-24 11:53:34 +01:00
Robin Kertels
d2759c20ba
[d3d9+d3d11] Remove DEVICE_LOCAL flag when forcing cached memory
...
Otherwise DXVK removes both flags at once
and we may end up with uncached memory.
2023-05-22 23:53:01 +02:00
Robin Kertels
1a2e724c16
[util] Enable apitrace mode for Tomb Raider Anniversary
...
... and Underworld.
2023-05-22 12:24:49 +02:00
Blisto91
6449f583f8
[util] Set dcSingleUseMode to false for SnowRunner
2023-05-21 16:05:41 +02:00
Joshua Ashton
f2bb1d4b69
[d3d9] Add extended swapchain interfaces
...
Allows for controling colorspace, etc.
2023-05-19 19:26:27 +01:00
Joshua Ashton
495dc75ab2
[wsi] Pull out NormalizeDisplayMetadata
2023-05-19 19:26:27 +01:00
Paul Gofman
550e04c579
[dxgi] Preserve system monitor sort order in enumMonitors()
2023-05-19 18:17:40 +02:00
WinterSnowfall
d4a7346198
[dxvk] Add configurable HUD opacity
2023-05-19 18:11:25 +02:00
Blisto91
99b367cdd6
[util] Set floatEmulation to Strict for Halo Online
2023-05-18 17:40:01 +01:00
Blisto91
65520fa18e
[util] Fix BlazBlue Centralfiction config
2023-05-16 18:56:23 +02:00
Joshua Ashton
f30376a1e4
[d3d11] Fix min luminance of HDR Metadata
...
This should be a multiply instead of a divide. Values are 1/10000th of a nit (0.0001 nit).
2023-05-13 21:16:29 +00:00
Philip Rebohle
cae0a1cef3
[meta] Release 2.2
2023-05-12 11:26:07 +02:00
Philip Rebohle
14eb469005
[dxgi] Be more robust against monitor enumeration issues.
...
If there are monitors on the system that are not associated with
any adapter, enumerate all monitors for all adatpers. May solve
some issues if device filter options are used on multi-GPU systems.
2023-05-11 16:38:45 +02:00
Oleksii Bozhenko
80f7d2abd8
[d3d9] fix opCompositeExtract out of bound
...
Closes: https://github.com/doitsujin/dxvk/issues/3293
Signed-by: Oleksii Bozhenko <oleksii.bozhenko@globallogic.com>
2023-05-09 20:39:55 +00:00
Alpyne
2b09932d51
[d3d9] Fix crash if device is freed with bound textures
2023-05-09 00:12:35 +00:00
Robin Kertels
bef2ef69ab
[d3d9] Fix stupid variable name
2023-05-07 14:05:39 +02:00
Robin Kertels
b08665c808
[d3d9] Fix compiler warning in Clear size check
2023-05-06 14:16:54 +01:00
Robin Kertels
96e22e7c67
[d3d9+util] Remove a bunch of redundant config options
2023-05-06 14:16:54 +01:00
Robin Kertels
5443a2f9f5
[d3d9] Don't swap buffers for SWAPEFFECT_COPY & DISCARD with 1 backbuffer
2023-05-06 14:16:54 +01:00
Paul Gofman
83a294285e
[dxgi] Only enumerate outputs which belong to the adapter or associated iGPU
2023-05-05 16:44:51 +02:00
Robin Kertels
242ac20752
[d3d9] Release DC in fallback present path
2023-05-04 18:42:04 +02:00
Robin Kertels
b357d16940
[util] Enable deviceLost for DC Universe Online and GTA IV
2023-05-03 13:04:00 +01:00
Robin Kertels
b4366db398
[d3d9] Implement rudimentary device loss
2023-05-03 13:04:00 +01:00
Blisto91
b5f43063b1
[util] Spoof Nvidia for Modern Warfare 2 Campaign Remastered
2023-05-03 13:02:08 +01:00
Joshua Ashton
f140d2de0d
[d3d9] Handle swapchain OOM and other errors more gracefully
...
Supercedes: #2964
2023-05-03 12:59:02 +01:00