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
Robin Kertels
9ce1c4df0d
[dxvk] Update tracked rtLayouts when changing image layout
2023-05-03 13:23:47 +02:00
Robin Kertels
860237e775
[d3d9] Skip 0x0 clears
2023-05-03 13:23:47 +02:00
Robin Kertels
ceb3a7f8c6
[dxvk] Do direct FB resolve if resolve format is UNDEFINED
...
If the format is undefined, we use the format of each image
which is obviously also view compatible with the imge.
2023-05-03 13:23:47 +02:00
Robin Kertels
a42643b235
[d3d9] Fall back to GDI blit for partial presents
2023-05-03 12:18:11 +01:00
Philip Rebohle
5c8ed491ab
[dxvk] Rewrite thread wrapper
...
Addresses some issues raised in #3378 .
2023-04-26 10:48:47 +02:00
Joshua Ashton
b44c5bbd18
[dxgi] Fallback to P3 color primaries for HDR displays without chroma info in edid
2023-04-21 04:21:16 +01:00
mbriar
16d2a6045c
[util] Switch Nioh deferSurfaceCreation from dxgi to d3d9
...
This game seems to behave similar to all the Tecmo Koei Atelier games
and not deferring surface creation for d3d9 prevents VRR from working on
X11.
2023-04-19 16:42:42 +02:00
mbriar
1971a5d187
[util] Also add d3d9.deferSurfaceCreation for Atelier Ryza 3
...
Reported to help with VRR, see https://github.com/ValveSoftware/Proton/issues/6648#issuecomment-1514394149
2023-04-19 16:42:42 +02:00
Philip Rebohle
e074d83d0b
[dxvk] Introduce GetContext method to retrieve immediate context.
...
Bypasses vtable hooks when retrieving the immediate context internally.
Remaining uses of GetImmediateContext are fine since those only interact
with public methods.
2023-04-18 12:42:24 +02:00
Robin Kertels
990a720525
[d3d9] Handle a bunch of texture converter edge cases
2023-04-16 09:18:30 +01:00
Rémi Bernon
0cf563d5df
[dxgi] Leave current fullscreen mode when SetFullscreenState changes monitors
...
This fixes RiME not moving its window when output display is
changed in the game settings.
2023-04-14 00:41:18 +02:00
Florian Will
01dc9ddc7d
[util] Add new "Zusi 3" exe filename
...
In addition to the legacy "ZusiSim.exe" executable, the recent 3.5
release added a 64-bit "ZusiSim.64.exe" executable. This is now the
default executable when launching the game in Steam. The game is
unplayable without this option, so update the regex for Zusi 3.
Fixes #3250 .
2023-04-13 13:37:07 +02:00
oltolm
6b779206d9
remove unneeded definitions
2023-04-11 18:30:46 +02:00
Blisto91
8508633ba3
[util] Disable allowDirectBufferMapping for Dark Romance: Vampire in Love
2023-04-11 08:37:50 +01:00
Robin Kertels
af0009c5de
[d3d9] Use DxvkFormatInfo for video formats
...
And fix UYUY and YUY2 in the process.
2023-04-08 03:15:44 +01:00
Robin Kertels
31af522cbc
[dxvk] Add VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM
2023-04-08 03:15:44 +01:00
Philip Rebohle
d9a6b40ae3
[dxvk] Create and copy temporary image for resolves as necessary
...
Fixes #3337 .
2023-04-06 21:04:56 +02:00
Tatsuyuki Ishi
6d14fffdbd
[spirv] Declare defaulted copy and move constructor for SpirvCodeBuffer.
...
If a type has a destructor it will not get an implicit move constructor.
But if we declare a defaulted move constructor then we will get the copy
constructor deleted. So declare both to be defaulted.
Cuts 8.8% off shader translation time during loading in Overwatch 2.
2023-04-06 10:23:11 +02:00
Blisto91
3ce3209e3e
[util] Set syncInterval to 1 for Crash Bandicoot N sane trilogy
2023-04-05 16:25:05 +01:00
Philip Rebohle
f212cc8f7d
[dxvk] Only enable dynamic MSAA state if sample shading is enabled
...
Otherwise, create a more specialized fragment output library on demand.
May help RADV since dynamic alpha-to-coverage triggers a less efficient
code path.
2023-04-04 17:34:07 +02:00
Philip Rebohle
306919047b
[dxvk] Log driver name in addition to version
...
Fixes #3313 .
2023-03-27 15:44:19 +02:00
Philip Rebohle
977669c613
[util] Enable cached dynamic vertex/index buffers in GTA V
...
Fixes #3311 .
2023-03-25 22:40:43 +01:00
Zhiyi Zhang
631171cf45
[util] Disable nvapiHack for Tom Clancy's Ghost Recon Breakpoint.
...
Otherwise, it shows a DirectX error dialog and exits when using an NVIDIA GPU.
2023-03-25 22:38:07 +01:00
František Zatloukal
1a5afc77b1
[util] Include cstdint to fix compilation with GCC 13
2023-03-23 23:37:10 +01:00
Robin Kertels
d11878e793
[d3d9] Only apply viewport zBias if minZ is below 0.5
...
Fixes Space Marine shadows.
Tests show that Windows D3D9 (Nvidia) works like that.
2023-03-23 03:52:08 +00:00
Blisto91
b0ed97e070
[util] Disable nvapiHack for Diablo 4
2023-03-22 17:10:18 +01:00
Philip Rebohle
3d5becaf6a
[d3d11] Implement Acquire/ReleaseWrappedResource
2023-03-18 00:50:42 +01:00
Philip Rebohle
5595844f75
[dxvk] Add explicit buffer/image memory barrier methods
...
Useful for interop.
2023-03-18 00:50:42 +01:00
Philip Rebohle
9bdad71dc6
[d3d11] Implement CreateWrappedResource for D3D12 textures
2023-03-18 00:50:42 +01:00
Philip Rebohle
3c99314332
[d3d11] Implement CreateWrappedResource for D3D12 buffers
2023-03-18 00:50:42 +01:00
Philip Rebohle
fa8cf50263
[dxvk] Implement functionality to import foreign buffers
2023-03-18 00:50:42 +01:00
Philip Rebohle
3f9d2269f6
[d3d11] Synchronize queue submissions for 11on12 devices as necessary
...
When the app explicitly calls Flush, Signal or Wait, we need to wait
for the submission to actually take place so that subsequent D3D12
submissions execute in the correct order.
2023-03-18 00:50:42 +01:00
Philip Rebohle
6432787ac3
[d3d11] Implement D3D11on12 device creation
2023-03-18 00:50:42 +01:00
Philip Rebohle
da32453b42
[dxvk] Add submission feedback to command submissions
2023-03-16 20:59:43 +01:00
Philip Rebohle
27f3648a44
[dxvk] Check instance extensions for feature enablement as necessary
2023-03-16 20:59:43 +01:00
Philip Rebohle
35895ba05b
[dxvk] Add callback to lock submission queue
...
Can be used to perform additional synchronization as necessary.
2023-03-16 20:59:43 +01:00
Philip Rebohle
56a8fa2e6f
[dxvk] Implement functionality to import existing Vulkan device
2023-03-16 20:59:43 +01:00
Philip Rebohle
d8f3a1c83d
[dxvk] Rework device queue initialization
2023-03-16 20:59:43 +01:00
Philip Rebohle
ef9d5048f3
[dxvk] Rework instance creation
...
Allows importing foreign Vulkan instances.
2023-03-16 20:59:43 +01:00
Philip Rebohle
f50f5bc9bc
[vulkan] Allow importing existing Vulkan dispatch tables
2023-03-16 20:59:43 +01:00
Philip Rebohle
687d32cac5
[dxvk] Fix memory reporting derp
2023-03-15 02:14:54 +01:00
WinterSnowfall
243c2f3cf5
[d3d9] remove support for the A1/X1R5G5B5 formats
2023-03-14 13:17:13 +00:00
Philip Rebohle
05fb634f91
[util] Use __wine_dbg_output if available
2023-03-13 16:32:32 +01:00
Blisto91
3a123222e5
[util] Enable cached vertex buffers for SpellForce 3
2023-03-13 13:22:39 +01:00
Philip Rebohle
4faa598e09
[dxvk] Report memory used rather than allocated for heap properties
...
We can do this at least for DXVK's own memory allocations.
2023-03-12 13:59:47 +01:00
Philip Rebohle
6783123654
[dxgi] Use heap size to determine reservable memory
...
Budgets can change dynamically, so this should be more robust.
2023-03-12 13:59:17 +01:00
Robin Kertels
d14dcf5d47
[d3d9] Fix redundant copy of SWVP VS consts
...
Fixes performance regression caused by state block changes.
2023-03-10 03:24:32 +00:00
Joshua Ashton
996acbe3f2
[d3d9] Refactor state blocks to allocate dynamically.
2023-03-07 23:24:01 +00:00
Blisto91
8ecd1b3b6b
[util] enableDialogMode for Codename Panzers Phase One/Two
2023-03-07 22:51:23 +00:00
Philip Rebohle
7f21a6c491
[dxvk] Accumulate query data into query object
...
And do so when adding additional query handles, in order
to avoid allocating queries indefinitely if End is never
called, which Halo:MCC supposedly does.
Co-authored-by: Sam Edwards <CFSworks@gmail.com>
2023-03-06 12:35:22 +01:00
Philip Rebohle
e430ff5cfd
[dxvk] Use small_vector to store query handles.
2023-03-06 12:35:22 +01:00
Joshua Ashton
1acf885109
[dxvk] Call SDL_Vulkan_LoadLibrary in getInstanceExtensions for SDL WSI
...
Closes : #3275
2023-03-03 00:14:22 +00:00
Robin Kertels
1c6fc7b5b8
[d3d9] Clamp stage and type in [G,S]etTextureStageState
...
This is what happens on the Nvidia D3D9 driver.
Dawn of Magic 2 calls SetTextureStageState with a
stage > 7 and expects that to succeed.
2023-03-02 13:41:32 +00:00
Guy1524
5609c5e076
[util] Reduce maximum chunk size for WILD HEARTS.
...
Co-authored-by: Blisto91 <47954800+Blisto91@users.noreply.github.com>
2023-03-01 15:38:14 +01:00
Philip Rebohle
55e7cb1d54
[dxgi] Only log QueryInterface errors once
2023-03-01 13:25:56 +01:00
Philip Rebohle
4c78964679
[d3d9] Only log QueryInterface errors once
2023-03-01 13:25:56 +01:00
Philip Rebohle
cc78276897
[d3d11] Only log QueryInterface errors once
2023-03-01 13:25:56 +01:00
Philip Rebohle
aa92cf48f5
[util] Add function to cache QueryInterface errors
2023-03-01 13:25:56 +01:00
Philip Rebohle
81440340ac
[d3d9,dxvk,util] Actually use dxvk::mutex
2023-03-01 13:03:43 +01:00
Philip Rebohle
2356d34f2e
[d3d11] Create video context resources on demand
...
Saves another memory allocation that we will often not need.
2023-03-01 12:37:06 +01:00
Philip Rebohle
f4b91817fe
[dxvk] Create dummy sampler and buffer on demand
...
We only need the dummy buffer for transform feedback, all other cases
are handled by null descriptors. May save a memory allocation.
2023-03-01 12:10:48 +01:00
Philip Rebohle
2be0d6842e
[dxvk] Add option to limit memory chunk size
2023-03-01 11:53:18 +01:00
Robin Kertels
0d28be4ab8
[d3d9] Fix capturing lights in state block
2023-02-23 13:15:17 +00:00
Blisto91
081181313e
[util] Limit Battle Fantasia Revisited Edition to 60fps ( #3256 )
2023-02-18 10:54:14 +01:00
TacoDeBoss
caf31033d7
[util] Far Cry 2: Set VendorId to Nvidia, enable apitraceMode ( #3241 )
2023-02-07 12:14:48 +01:00
Paul Gofman
2263dcad95
[d3d11] Improve video processor caps query stubs
2023-01-31 13:39:09 +01:00
Jens Peters
41b1efd7ce
[dxgi] Fix potential division by zero in log statement
...
Apparently 0/0 is legal and should be interpreted as 0/1.
2023-01-28 00:51:01 +01:00
Philip Rebohle
c6111eaf61
[dxvk] Fix small_vector size
...
Kind of harmless since we're not using this much.
2023-01-27 05:27:49 +01:00
Philip Rebohle
2abc102d2c
[meta] Release 2.1
2023-01-24 14:54:09 +01:00
Philip Rebohle
61d72eebc1
[dxgi,d3d9] Use global singleton for DXVK instances
...
No reason to have multiple of these around, and instance creation
is fairly expensive.
2023-01-23 17:17:56 +01:00
Philip Rebohle
d4143429c4
[util] Add Singleton helper
2023-01-23 17:17:43 +01:00
Philip Rebohle
255ab1a63c
[hud] Display more useful driver info in HUD
...
Vulkan versions are irrelevant anyway, not sure why we
ever displayed that in the first place.
2023-01-23 00:10:39 +01:00
Philip Rebohle
3128f4ea8e
[dxgi] Implement IDXGIVkInteropFactory for DXGI factory
2023-01-22 20:04:39 +01:00
Philip Rebohle
0ee69fef00
[dxgi] Define IDXGIVkInteropFactory interface
2023-01-22 19:57:17 +01:00
Philip Rebohle
41ee092b97
[dxvk] Get rid of global timeline semaphore
...
Timeline semaphores are broken on 32-bit Proton, so just use the existing
command list binary semaphore to synchronize sparse binding operation.
This will introduce some additional graphics queue submissions around
sparse binding, but since that is basically unused it's not a concern.
2023-01-21 13:15:09 +01:00
Philip Rebohle
d020f4451a
[dxvk] Invalidate all v16 cache files
...
We were randomly writing bogus data in an irrecoverable way,
so in order to not cause any problems for users, invalidate
all caches created with this version.
2023-01-21 01:24:02 +01:00
Philip Rebohle
3d24560af7
[dxvk] Fix reading out-of-bounds memory in state cache
...
Fixes #3196 , not to mention that this was god-awful code anyway.
2023-01-21 01:14:45 +01:00
Philip Rebohle
0af5ececa6
[dxvk] Also reset descriptor pool when only one pool is in use
...
This way we can often avoid allocating additional descriptor pools.
2023-01-20 15:23:25 +01:00
Philip Rebohle
eacb8da9f7
[dxvk] Tweak descriptor pool numbers
...
Increases the descriptor pool size on 64-bit, but also makes
significantly better use of descriptor pool memory in situations
with very high draw counts and many UBO descriptor set updates.
2023-01-20 14:34:46 +01:00
Philip Rebohle
4d0d455895
[vulkan] Try loading winevulkan.dll before vulkan-1.dll
...
Should bypass issues with third-party overlays trying to hook Vulkan.
2023-01-18 18:10:57 +01:00
Philip Rebohle
c6668ffbaa
[dxvk] Drop shader module workaround for compute pipelines.
...
This was a bug in early Nvidia development drivers, but has been fixed since.
2023-01-18 15:56:00 +01:00
Blisto91
906b931e61
[util] Disable unmapping for BlazBlue Centralfiction
2023-01-17 20:49:26 +01:00
Philip Rebohle
d7a4ddb5d0
[d3d11] Implement more accurate resource tracking on deferred contexts
...
Allows us to track chunks that access any given tracked resource more
accurately and flush as needed, e.g. if a staging buffer is written at
the start of a long command list.
2023-01-17 15:01:06 +01:00
Philip Rebohle
cf5adb8b12
[d3d11] Improve flushing around deferred context submissions
2023-01-17 15:01:06 +01:00
Philip Rebohle
591e2df701
[d3d11] Consider flushing after each CS chunk
...
This way we will never end up with overly long command lists.
2023-01-17 15:01:06 +01:00
Philip Rebohle
2a3d7ee7dc
[d3d11] Use new flush heuristic
2023-01-17 15:01:06 +01:00
Philip Rebohle
f952418958
[d3d11] Determine pending commands based on sequence number
...
We get this for free and this allows us to query how many CS chunks
have been emitted since the last flush.
2023-01-17 15:01:06 +01:00
Philip Rebohle
0ac247c89c
[util] Add helper class for common flush heuristic
2023-01-17 15:01:06 +01:00
Philip Rebohle
741cc493c6
[dxvk] Increase maximum number of command buffers in flight
2023-01-17 15:01:06 +01:00
Philip Rebohle
f7aa310fdd
[dxvk] Disable pipeline lifetime tracking for RADV
...
Seems like this is not needed on this driver, so let's just use
the fast path by default. Makes the current implementation work
with 32-bit games as well since caching does not work yet.
2023-01-17 14:02:38 +01:00
Philip Rebohle
421d7d9077
Revert "[vulkan] Use fence for acquiring a swap chain image"
...
Breaks things and we don't really need this right now anyway.
2023-01-16 23:16:38 +01:00
Philip Rebohle
599357721a
[hud] Support HDR color spaces
...
Blending is broken if we need to do encoding in the shader, but we
cannot do much about that without changing the rendering process,
so this will have to do for now.
2023-01-16 18:04:18 +00:00
Philip Rebohle
0e503ce795
[vulkan] Log swap chain color space
2023-01-16 18:04:18 +00:00
Philip Rebohle
1482715fd1
[vulkan] Use fence for acquiring a swap chain image
...
In practice, drivers will block here anyway.
2023-01-16 16:20:56 +01:00
Joshua Ashton
132bc529c3
[dxgi] Only allow colorspace punting if we started in sRGB
2023-01-16 13:45:03 +01:00
Joshua Ashton
28ee6867be
[dxgi] Expose only sRGB when enableHDR is disabled
...
Death Stranding: Director's Cut crashes if HDR was last enabled in-game and CheckColorSpaceSupport reports support for HDR but it is not globally enabled in DXGIOutput::GetDesc1's ColorSpace.
It seems safer to just lock HDR behind an option to avoid any teething issues like this. It sucks, but it also makes sense in a way.
2023-01-16 13:45:03 +01:00
Joshua Ashton
bb75e214d6
[dxgi] Store top-level DxgiFactory in DxgiSwapChain
...
Can do this now that we tossed the old stuff that depended on the swapchain factory being resident in D3D11.
2023-01-16 13:45:03 +01:00
Joshua Ashton
9010f11adf
[dxgi, d3d11] Remove support for legacy IWineDXGISwapChainFactory interface
...
vkd3d-proton 2.8 released last year with support for the new swapchain
interface.
No need to keep support for this legacy interface hanging around when
it complicates adding DxgiOptions support to the swapchain.
2023-01-16 13:45:03 +01:00
Philip Rebohle
af05265cb6
[dxvk] Set thread priority for background workers
...
We accidentally lost this somehow.
2023-01-15 15:54:03 +01:00
Philip Rebohle
459758c6ff
[d3d9] Don't set storage buffer usage unless necessary
...
This actually matters now to some degree.
2023-01-15 15:36:05 +01:00
Philip Rebohle
d35bf455d9
[dxvk] Rename bindResourceBuffer to bindUniformBuffer
2023-01-15 15:36:05 +01:00
Philip Rebohle
a8f9fdb21d
[dxvk] Rearrange descriptor sets
...
This allows us not to unnecessarily dirty the FS UBO set when
changing tetxure bindings, leading to a cleaner separation.
2023-01-15 15:36:05 +01:00
Philip Rebohle
4a30933359
[dxvk] Add UBO set property to descriptor info
...
Used to explicitly propagate storage buffer bindings
to the respective UBO set.
2023-01-15 15:36:05 +01:00
Philip Rebohle
6f194b0e7b
[d3d11] Bind UAV counter buffers as views
2023-01-15 15:36:05 +01:00
Philip Rebohle
82f500250f
[hud] Bind data buffers as views
2023-01-15 15:36:05 +01:00
Philip Rebohle
c347bd4d8b
[dxvk] Allow creating buffer views with undefined format
2023-01-15 15:36:05 +01:00
Philip Rebohle
92de3f3f5f
[d3d11] Add missing context locks
2023-01-14 18:40:41 +01:00
Philip Rebohle
1c2df54bdf
[dxvk] Improve logging in case of memory errors
2023-01-14 03:39:55 +01:00
Philip Rebohle
2922b780c1
[dxvk] Properly handle bufferImageGranularity for images
...
Fixes validation errors about dedicated allocations being
bigger than the image's memory requirement on Nvidia.
2023-01-14 03:39:55 +01:00
Robin Kertels
97a91c816f
[d3d9] Disable instancing for non-indexed draws
2023-01-13 21:58:41 +00:00
Philip Rebohle
3a84838ac4
[hud] Display approximate progress when compiling shaders
2023-01-13 16:43:27 +01:00
Philip Rebohle
c978e62ec8
[dxvk] Implement better priority system for background shader compiles
...
Reduces the number of workers that perform background optimization,
which may reduce the performance impact when encountering a large
number of new pipelines at once.
2023-01-13 16:43:27 +01:00
Blisto91
cc9266edaa
[util] Add config for Alien Rage
...
Reporting a GTX 295 puts us into the highest behind the scenes graphics settings preset bucket and prevents the shadow issue with `FloatingPointRenderTargets` set to false in the lower preset bucket.
NvapiHack needs to be disabled on Linux since the game pings it in the Windows system folder and want's the VendorId to match your GPU. Else the issue will still happen on Nvidia Linux
2023-01-13 14:15:54 +01:00
Philip Rebohle
070a340115
[dxvk] Remove path to look up optimized pipeline in cache
...
For some reason this sometimes takes several milliseconds, which
leads to noticeable stutter. Linking a pipeline is more consistent.
2023-01-13 11:40:01 +01:00
Philip Rebohle
a22d70e184
[dxvk] Remove unused compileComputePipeline function
2023-01-12 17:35:05 +01:00
Philip Rebohle
e5157a5360
[dxvk] Add pre-rasterization pipeline libraries to the state cache
...
This allows compiling tessellation or geometry shader pipelines
early while still using the pipeline library path.
Also removes compute shaders. Since API-provided compute shaders
are always compiled early, supporting them is no longer needed.
2023-01-11 11:48:16 +01:00
Philip Rebohle
28ae85b7ab
[dxvk] Enable creating full pre-rasterization pipeline libraries
2023-01-11 11:48:16 +01:00
Philip Rebohle
17529101d5
[dxvk] Allow creating pipeline libraries with more than one shader
2023-01-11 11:48:16 +01:00
Philip Rebohle
f9ff96d727
[dxvk] Implement checks for pre-raster pipeline library compatibility
2023-01-11 11:48:16 +01:00
Philip Rebohle
b916dc04e5
[dxbc] Fill in patch vertex count info
2023-01-11 11:48:16 +01:00
Philip Rebohle
5e42230b95
[dxvk] Add patch vertex count to shader info struct
2023-01-11 11:48:16 +01:00