Philip Rebohle
0a101cdb50
[d3d11] Reset dirty bindings on command submission
2025-02-20 18:28:39 +01:00
Philip Rebohle
813ae020b6
[d3d11] Flush more around non-multisampled render passes
2025-02-11 16:14:53 +01:00
Philip Rebohle
80fb7e2294
[d3d9,d3d11] Adjust flush heuristic on tiling GPUs
...
Probably needs work, just disable most of the heuristic for the time being.
2025-02-10 16:13:31 +01:00
Philip Rebohle
59e53c1863
[d3d11] Add queue parameter to CS chunk injection
2025-01-25 18:02:20 +01:00
Philip Rebohle
21f69eceaa
[d3d11] Implement latency tracking
2025-01-25 18:02:20 +01:00
Philip Rebohle
d4f25c81be
[d3d11] Remove d3d11.maxImplicitDiscardSize option
2024-10-31 12:13:27 +01:00
Philip Rebohle
f9bb8f0ad5
[d3d11] Consider discards when throttling immediate context
2024-10-31 12:13:26 +01:00
Philip Rebohle
6540ab4f3e
[dxvk] Use DxvkPagedResource for CPU synchronization
2024-10-18 12:42:33 +02:00
Philip Rebohle
df60a061a4
[d3d11] Throttle resource uploads via UpdateSubresource
...
Otherwise, some games (e.g. Frostpunk, New World) end up allocating over
a gigabyte of staging memory.
2024-10-08 17:46:18 +02:00
Philip Rebohle
172d3450d1
[d3d11] Rename EmitCsChunkExternal for consistency
2024-10-04 12:58:55 +02:00
Philip Rebohle
129efdaba6
[d3d11] Do not use separate context to initialize back buffers
2024-10-04 12:58:55 +02:00
Philip Rebohle
438a08f87c
[d3d11] Add functions to emit externally generated CS chunks
2024-09-30 10:29:27 +02: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
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
Philip Rebohle
3d5becaf6a
[d3d11] Implement Acquire/ReleaseWrappedResource
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
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
Joshua Ashton
000a647c56
[d3d11] Store D3D11DeviceContextState as private ref
...
Avoids a circular dependency
2022-09-16 12:49:10 +02:00
Philip Rebohle
fdcbdeb28f
[d3d11] Implement dirty trackig for default-mapped images
...
Avoids GPU synchronization when using WriteToSubresource,
and also reduces bandwidth.
2022-09-05 05:52:55 +02:00
Philip Rebohle
ca833082b5
[d3d11] Fix broken image readback for mapped default images
2022-09-05 04:31:13 +02:00
Philip Rebohle
86bdda70b4
[d3d11] Move D3D10Multithread instance to immediate context
...
Deferred contexts do not support this.
2022-08-24 12:15:35 +02:00
Philip Rebohle
37a2b02558
[d3d11] Fix compiler error on GCC 10.3
2022-08-04 18:42:13 +02:00
Philip Rebohle
e49524fcb0
[d3d11] Move GetType and GetContextFlags to D3D11CommonContext
2022-08-04 13:43:36 +02:00
Philip Rebohle
1d2d712dfb
[d3d11] Move d3d11_context_common.* -> d3d11_context.*
2022-08-04 13:43:36 +02:00
Philip Rebohle
77c032da5c
[d3d11] Move OM* functions to D3D11CommonContext
...
We can get rid of the immediate context overload as well
since we can just directly call FlushImplicit here.
2022-08-04 13:43:35 +02:00
Philip Rebohle
3ead348b82
[d3d11] Move UpdateSubresource code to D3D11CommonContext
2022-08-04 13:43:35 +02:00
Philip Rebohle
e4204f76e6
[d3d11] Introduce D3D11CommonContext
2022-08-04 13:43:35 +02:00
Philip Rebohle
7e42939a4a
[d3d11] Call endFrame at the end of each frame
2022-06-28 14:35:57 +02:00
Philip Rebohle
17a1b0ad44
[d3d11] Consider empty CS chunks when tracking resources
...
Avoids deadlocks if we track multiple resources and flush in between.
2022-02-18 14:21:53 +01:00
Philip Rebohle
e1b3bc45ce
[d3d11] Add d3d11.maxImplicitDiscardSize option
2022-02-14 04:17:56 +01:00
Philip Rebohle
0364a79eb0
[d3d11] Optimize Unmap on immediate contexts
2022-02-11 18:17:35 +01:00
Philip Rebohle
5a6711ed1d
[d3d11] Synchronize only to given sequence number in WaitForResources
...
Avoids costly thread synchronization when mapping staging resources
for reading, as well as some other scenarios.
2022-02-11 18:17:35 +01:00
Philip Rebohle
d33dac569c
[d3d11] Track last staging resource usage with a sequence number
2022-02-11 18:17:35 +01:00
Philip Rebohle
6c862b63a2
[d3d11] Optimize UpdateSubresource for small buffer updates
...
Some games use UpdateSubresource to upload constant buffers in
between draws, so this path should be as fast as possible.
Also fixes a potential issue when using D3D11_COPY_NO_OVERWRITE
on deferred contexts, since the Map requirements don't hold here.
2022-02-07 16:14:02 +01:00
Philip Rebohle
4c222ec557
[d3d11] Use callback fence to signal Flush1 event
2021-08-05 22:57:58 +02:00
Philip Rebohle
e87aa08fd2
[d3d11] Implement basic video processor blitting
2021-05-30 19:42:43 +02:00
Philip Rebohle
969ac59667
[d3d11] Add ID3D11VideoContext stub
2021-05-30 19:42:43 +02:00
Joshua Ashton
742b52bbb5
[d3d11] Fix device child refs properly
2021-01-15 23:47:48 +01:00
Philip Rebohle
a9b6421f60
[d3d11] Support signaling event in Flush1
2020-03-19 23:38:28 +01:00
Joshua Ashton
7e3142b2ed
[d3d11] Hook up platform-specific clock
...
See 89dfa2bc22
2019-11-26 01:52:58 +01:00
Philip Rebohle
77a0cb2b19
[d3d11] Don't synchronize with CS thread on present
...
Instead, submit from the CS thread in order to prevent out-of-order
submissions. Improves minimum FPS in Final Fantasy XIV by 5-10%.
2019-11-02 17:53:17 +01:00
Philip Rebohle
be5dc234c1
[d3d11] Move common Begin/End implementation to immediate context
2019-11-02 13:48:03 +01:00
Philip Rebohle
1282c2b99e
[d3d11] Fix immediate context reference counting
...
Fixes various wine test failures.
2019-10-14 01:56:34 +02:00
Philip Rebohle
e9fcf64a8c
[dxvk] Only wait for writes when mapping with D3D11_MAP_READ
2019-09-20 01:44:02 +02:00
Philip Rebohle
f9d9307a28
[d3d11] Implement ID3D11DeviceContext4
2019-09-16 13:41:31 +02:00
Philip Rebohle
0599a82dee
[d3d11] Implement ID3D11DeviceContext3
2019-09-16 13:41:31 +02:00
Philip Rebohle
e1610f81dc
Revert "[d3d11] Use STDMETHODCALLTYPE for private virtual method"
...
For some reason, this produces broken binaries for some Gentoo
users. Fixes #1067 .
This reverts commit e5fa55cbb5
.
2019-05-19 13:22:04 +02:00
Philip Rebohle
e5fa55cbb5
[d3d11] Use STDMETHODCALLTYPE for private virtual method
...
Improves code generation on some compilers.
2019-05-15 22:01:19 +02:00