Philip Rebohle
f14bccc8c3
[util] Use CPU-cached constant buffers for Anno 1800
...
Sigh.
2022-03-03 17:33:14 +01:00
Philip Rebohle
1b196c24a4
[dxvk] Invalidate buffer in clearBuffer if possible
2022-03-01 21:39:35 +01:00
Philip Rebohle
5822a8de9f
[util] Enable cached vertex and index buffers for FFXIV
...
Fixes some weird performance issues on the Garlemald map. Doesn't seem
to affect performance in other areas.
2022-02-28 23:33:27 +01:00
Philip Rebohle
2bceeff5f2
[d3d11] Replace apitrace mode option with something more granular
...
And enable it only for vertex and index buffers in Nier Replicant.
2022-02-28 22:44:10 +01:00
Robin Kertels
b42c07253e
[d3d9] Fix sysmem readback
2022-02-24 07:49:55 +00:00
Robin Kertels
a81c653b42
[d3d9] Fix synchronization after readback
2022-02-22 21:49:28 +00:00
Philip Rebohle
a37cd46491
[util] Set maxDynamicImageBufferSize for Total War: Warhammer III
...
Massively increases performance since the game otherwise keeps
uploading a huge 48 MiB texture in every frame.
2022-02-22 05:48:25 +01:00
Philip Rebohle
dbd4dad095
[d3d11] Introduce d3d11.maxDynamicImageBufferSize option
2022-02-22 05:31:27 +01:00
Philip Rebohle
33cf522647
[d3d11] Use appropriate memory types for directly mapped images
2022-02-22 05:31:20 +01:00
Philip Rebohle
177e70949c
[d3d11] Apply apitrace mode to image upload buffers
2022-02-22 01:30:43 +01:00
Robin Kertels
29d8812709
[d3d9] Don't set NeedsReadback for POOL_SYSMEM textures
...
... or in SetRenderTarget because we always do readback for render targets.
2022-02-21 13:43:04 +00:00
Robin Kertels
b163a99bde
[d3d9] Clean up texture locking
...
We had two code paths that largely did the same.
2022-02-21 00:08:41 +00:00
Robin Kertels
dde83717f1
[d3d9] Rename WrittenByGPU to NeedsReadback
2022-02-21 00:08:41 +00:00
Robin Kertels
40444c1f50
[d3d9] Unify texture uploads
2022-02-21 00:08:41 +00:00
Robin Kertels
8b9db26536
[util] Add computeMipLevelOffset
2022-02-21 00:08:41 +00:00
Philip Rebohle
49e5357a87
[hud] Greatly simplify frame time graph rendering
2022-02-20 15:58:29 +01:00
Philip Rebohle
0709c5f5c7
[hud] Greatly simplify text rendering in the HUD
2022-02-20 15:58:29 +01:00
Philip Rebohle
8ce83cabca
[dxvk] Only mark transfer buffers as transient
...
Otherwise we may accidentally catch things like uniform buffers as well.
2022-02-20 15:58:26 +01:00
Robin Kertels
fd23dcef64
[d3d9] Disable direct buffer mapping for RE games
2022-02-20 03:30:03 +00:00
Robin Kertels
cf4c5c3422
[d3d9] Add option to disable direct buffer mapping
2022-02-20 03:30:03 +00:00
Robin Kertels
6d71eea516
[d3d9] Store buffer map mode in D3D9CommonBuffer
2022-02-20 03:30:03 +00:00
Robin Kertels
97ae14b6a0
[d3d9] Synchronize only to given sequence number in WaitForResources
2022-02-20 03:29:31 +00:00
Robin Kertels
917a8d00a2
[d3d9] Track last staging resource usage with a sequence number
2022-02-20 03:29:31 +00:00
Robin Kertels
c12cd1952c
[d3d9] Handle different mip chain lengths in UpdateTexture
2022-02-20 03:29:04 +00:00
Philip Rebohle
80f744549f
[dxvk] Get rid of spinlock when allocating GPU events
...
This is not performance-critical
2022-02-20 01:16:04 +01:00
Philip Rebohle
0ade12dc83
[dxvk] Use lock-free list for render pass instances
...
And replace the spin lock with a regular mutex.
2022-02-20 00:04:06 +01:00
Philip Rebohle
477cb617ac
[dxvk] Use lock-free list for compute pipeline lookup
2022-02-19 17:36:42 +01:00
Philip Rebohle
67e2ee1b26
[dxvk] Use lock-free list for graphics pipeline lookup
...
And use a proper mutex if we do have to synchronize,
so that we can avoid busy-waits.
2022-02-19 17:36:42 +01:00
Philip Rebohle
a4fe43462c
[dxvk] Introduce lock-free list
2022-02-19 17:36:39 +01:00
Philip Rebohle
c9750f6657
[dxvk] Don't use spinlocks for CS chunk pool
...
No reason to anymore since SRWLocks are fast enough here.
2022-02-19 16:57:09 +01:00
Philip Rebohle
520d62903a
[dxvk] Remove null check when setting vertex stride
...
Move the responsibility to the front-end instead.
2022-02-19 13:29:59 +01:00
Philip Rebohle
8e11630370
[d3d11] Set zero stride when binding null vertex buffer
2022-02-19 13:20:36 +01:00
Philip Rebohle
146fbd492f
[dxvk] Free existing staging buffer before creating a new one
2022-02-18 18:13:28 +01: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
9af3dce304
[dxvk] Track buffer as used in initBuffer
...
Git ate my commit when I was testing something...
2022-02-17 23:42:31 +01:00
Philip Rebohle
6ae5488157
[d3d9] Use initBuffer method
2022-02-17 20:58:31 +01:00
Philip Rebohle
18a960a1e1
[d3d11] Use initBuffer method
2022-02-17 20:58:31 +01:00
Philip Rebohle
080aa1a989
[dxvk] Add initBuffer method
2022-02-17 20:58:31 +01:00
Philip Rebohle
f7e021f791
[dxvk] Add command buffer parameter to cmdFillBuffer
2022-02-17 20:58:31 +01:00
Philip Rebohle
102bceb30c
[dxvk] Remove unused clear methods
2022-02-17 20:58:31 +01:00
Philip Rebohle
752f98cf00
[d3d9] Use initImage to clear uninitialized image resources
2022-02-17 20:58:31 +01:00
Philip Rebohle
6d0e5dfd21
[d3d11] Use initImage to clear uninitialized image resources
2022-02-17 20:58:31 +01:00
Philip Rebohle
464c6810b3
[dxvk] Repurpose initImage method
...
This is now supposed to clear images of any type, and only to be
used for resource initialization after creation.
2022-02-17 20:58:31 +01:00
Philip Rebohle
34fd16b8f2
[d3d11] Add implicit flush after tracking sequence numbers
...
Flushing early when using a tracked resource may reduce stalls.
2022-02-16 20:49:00 +01:00
Philip Rebohle
2dfdc5ac3b
[d3d11] Enable stall tracking for timestamp queries
...
Because games are dumb and don't understand that the GPU doesn't
work synchronously with the render thread.
2022-02-16 19:59:11 +01:00
Philip Rebohle
d45f5a8d79
[d3d11] Handle subresource field in copy/move operations
...
Derp.
2022-02-15 13:00:10 +01:00
Philip Rebohle
e70f9f92a6
[util] Enable apitrace mode for Nier Replicant
...
Game is broken and reads back dynamic vertex/index buffers over PCI-E.
2022-02-14 09:20:41 +01:00
Philip Rebohle
4e464327ef
[util] Bump maxImplicitDiscardSize for Quantum Break
...
Otherwise we're synchronizing and frame times are garbage.
2022-02-14 04:21:46 +01:00
Philip Rebohle
e1b3bc45ce
[d3d11] Add d3d11.maxImplicitDiscardSize option
2022-02-14 04:17:56 +01:00
Philip Rebohle
63bf928ab5
[hud] Display GPU synchronization in HUD
2022-02-14 03:28:45 +01:00
Philip Rebohle
4d9b464f7c
[d3d9] Use new waitForResource method
2022-02-14 03:15:47 +01:00
Philip Rebohle
2f80f8847e
[d3d11] Use new waitForResource method
2022-02-14 03:15:47 +01:00
Philip Rebohle
0c99b17081
[dxvk] Introduce DxvkDevice::waitForResource
...
Blocks on the queue thread's condition variable instead of busy-waiting,
and tracks synchronization with new stat counters. Cleanup is rearranged
to minimize delays before signals and resources are notified.
2022-02-14 03:15:47 +01:00
Philip Rebohle
25ebf94873
[dxvk] Display barrier count in draw call HUD item
2022-02-14 01:10:15 +01:00
Philip Rebohle
316e252a27
[dxvk] Add stat counter for pipeline barriers
2022-02-14 01:08:55 +01:00
Philip Rebohle
b5078a7ec0
[dxvk] Reduce context staging buffer size to 4 MiB
...
Same idea as before, just create a temporary buffer for larger resources.
This can avoid frequent Vulkan memory allocations and deallocations since
many small buffers are more likely to fit into a single memory chunk than
a small number of large buffers, thus reducing the overall memory footprint.
2022-02-14 01:01:34 +01:00
Philip Rebohle
08ecd49c66
[dxvk] Don't suballocate large staging buffer allocations
...
Otherwise we'll risk wasting almost half the staging buffer memory.
Creating a temporary buffer is cheap enough, so just do that.
2022-02-14 01:00:48 +01:00
Philip Rebohle
b9201db554
[dxvk] Remove unused trimStagingBuffers method
2022-02-13 02:08:20 +01:00
Philip Rebohle
95b7e6c030
[dxvk] Rework HUD font texture initialization
...
We really shouldn't need a separate context for this.
2022-02-13 02:08:20 +01:00
Philip Rebohle
425fce9200
[dxvk] Introduce transient memory flag for staging buffers
...
Potentially reduces fragmentation by putting short-lived staging buffers
and sysmem resources created by the application into different memory pools.
2022-02-13 02:08:20 +01:00
Philip Rebohle
9d4be00fa7
[dxvk] Allow large sysmem allocations on 64-bit platforms again
...
Since we frequently discard staging buffers now, having larger chunks
is actually beneficial again.
2022-02-13 02:08:20 +01:00
Philip Rebohle
d262bebd90
[dxvk] Remove DxvkStagingDataAlloc
...
Unused and overly clunky.
2022-02-13 02:08:20 +01:00
Philip Rebohle
8518572d13
[dxvk] Use DxvkStagingBuffer in DxvkContext
2022-02-13 02:08:20 +01:00
Philip Rebohle
1b88bc624a
[dxvk] Remove unused updateImage function
2022-02-13 02:08:20 +01:00
Philip Rebohle
3b833988fe
[dxvk] Use staging buffer for gamma ramp uploads
2022-02-13 02:08:19 +01:00
Philip Rebohle
80c5b61e26
[d3d11] Use DxvkStagingBuffer in D3D11DeviceContext
2022-02-13 02:08:19 +01:00
Philip Rebohle
0bc19472e8
[dxvk] Introduce DxvkStagingBuffer
2022-02-13 02:08:19 +01:00
Philip Rebohle
82518de4b4
[dxvk] Discard buffer slice in copyBuffer if possible
2022-02-13 02:08:19 +01:00
Philip Rebohle
5e763853e5
[dxvk] Introduce tryInvalidateDeviceLocalBuffer
2022-02-13 02:08:19 +01:00
Philip Rebohle
6a3de28f94
[dxvk] Repurpose updateBuffer
...
Only allow it for very small updates where scheduling a copy command would
likely be slower. Some drivers have special paths for tiny updates.
2022-02-13 02:08:19 +01:00
Philip Rebohle
a03c038f03
[d3d9] Exit early in ProcessVertices if the vertex count is 0
...
We don't want to pass a zero-sized copy to the backend.
2022-02-13 02:08:19 +01:00
Philip Rebohle
26381fd5df
[d3d11] Only use updateBuffer for very small buffer updates
...
Otherwise we may end up with significant copy overhead on the CS thread.
2022-02-13 02:08:19 +01:00
Philip Rebohle
ac9ed96457
[hud] Add HUD item to show CS thread stats
2022-02-13 02:07:48 +01:00
Philip Rebohle
b02496a8f4
[dxvk] Add CS thread stat counters
2022-02-13 02:07:48 +01:00
Philip Rebohle
d96c5a1076
[dxvk] Store DXVK device inside DxvkCsThread object
2022-02-13 02:07:48 +01:00
Philip Rebohle
52666a33c6
[dxvk] Expose a way to increment stat counters
...
In case the counters come from external sources.
2022-02-13 02:07:45 +01:00
Philip Rebohle
b6121c84aa
[d3d11] Avoid GPU synchronization on mapping images when possible
2022-02-11 18:17:35 +01:00
Philip Rebohle
3f16de157b
[d3d11] Avoid GPU synchronization on mapping buffers when possible
2022-02-11 18:17:35 +01:00
Philip Rebohle
c82b504e52
[d3d11] Further simplify D3D11DeferredContextMapEntry
...
And no longer create a strong reference to the given resource.
2022-02-11 18:17:35 +01:00
Philip Rebohle
2dcdd20517
[d3d11] Change D3D11ResourceRef constructor to be more useful
2022-02-11 18:17:35 +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
afe1840c74
[d3d11] Track resources when dispatching Cubin shaders as well
2022-02-11 18:17:35 +01:00
Philip Rebohle
bb16734a43
[d3d11] Implement sequence number tracking on deferred contexts
2022-02-11 18:17:35 +01:00
Philip Rebohle
2eeb7295c8
[d3d11] Increment sequence number when submitting command lists
...
This does not do any tracking on deferred contexts just yet.
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
55a6b80919
[d3d11] Add method to query D3D11 resource dimension from texture
2022-02-11 18:17:35 +01:00
Philip Rebohle
d870b6ff38
[d3d11] Store ID3D11Resource interface in D3D11CommonTexture
...
Going full circle here, but it's actually useful now.
2022-02-11 18:17:35 +01:00
Philip Rebohle
9c32beccdc
[d3d11] Store buffer map mode in D3D11Buffer
...
Matches what we do for textures, and makes it so that we don't
have to dereference the resource pointer to figure this out.
2022-02-11 18:17:35 +01:00
Philip Rebohle
2db56fa160
[d3d11] Add D3D11ResourceRef
...
Implements private ref counting for arbitrary resource types.
2022-02-11 18:17:35 +01:00
Philip Rebohle
391c9e13ca
[d3d11] Add ResourceAddRef/ReleasePrivate with known resource type
2022-02-11 18:17:35 +01:00
Philip Rebohle
6b91b87dba
[dxvk] Reorganize DxvkBuffer data structure
...
Should hopefully reduce CPU cache conflicts.
2022-02-11 18:17:34 +01:00
Philip Rebohle
37f3d9208b
[dxvk] Introduce sequence numbers for CS submissions
2022-02-11 18:17:34 +01:00
Philip Rebohle
bc137fdf37
[util] Enable apitrace mode for AoE2 Definitive Edition
...
Fixes #2491 .
2022-02-11 18:15:46 +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
b746e1352b
[d3d11] Implement suballocation from staging buffer for small updates
2022-02-07 16:14:01 +01:00
Philip Rebohle
7cf78a2c75
[d3d11] Fix confusing code in deferred context Map
...
This did work, but we shouldn't use an object that was already moved.
2022-02-07 16:14:01 +01:00
Philip Rebohle
e4dbd1e337
[d3d11] Remove unused parameters from deferred context Map functions
2022-02-07 16:13:58 +01:00
Krzysztof Bogacki
b5d7b42e65
[d3d11] Add D3D11On12CreateDevice stub
2022-02-07 03:21:43 +01:00
Philip Rebohle
2673d74270
[dxvk] Add version fixup for proprietary Intel drivers
2022-02-02 14:56:59 +01:00
Philip Rebohle
badc53b1bb
[dxvk] Rework driver version fixup to use driver ID instead of vendor ID
2022-02-02 14:56:55 +01:00
Georg Lehmann
58909e4582
[dxvk] Fix MSVC build.
2022-02-01 18:50:00 +00:00
Robin Kertels
b220c8989b
[d3d9] Only enable FETCH4 for single channel formats
2022-01-28 21:34:18 +00:00
Robin Kertels
5b39f0307e
[d3d11] Add FL12+ enum names
2022-01-27 19:42:14 +01:00
Philip Rebohle
1216466be7
[meta] Release 1.9.4
2022-01-24 15:08:49 +01:00
Philip Rebohle
b4e4eca99f
[dxvk] Remove options to disable OpenVR/XR support
...
No longer needed since we no longer load vrclient.so into the game's
process just to query extensions.
2022-01-24 14:50:04 +01:00
Georg Lehmann
4e6db51230
[d3d9] Fix float emulation detection.
...
ffs
2022-01-21 16:08:00 +01:00
Georg Lehmann
14df2f7251
[d3d9] Enable strict float emulation by default for new radv.
2022-01-20 23:47:41 +00:00
Philip Rebohle
a268de51e3
[dxvk] Don't shrink HVV heap if it's the main video memory heap
...
May fix issues on RBAR-enabled Nvidia systems.
2022-01-16 02:47:51 +01:00
Philip Rebohle
703cc78cc0
[util] Disable NVAPI hack for God of War
...
Needed for DLSS support.
2022-01-14 15:21:49 +01:00
Philip Rebohle
42c06ceb51
[util] Enable performance options for God of War
2022-01-14 13:16:06 +01:00
Philip Rebohle
08c7bab431
[dxvk] Reduce maximum size of multi-slice buffers
2022-01-13 18:40:27 +01:00
Philip Rebohle
71e7faef69
[dxvk] Reduce size up to which device-local buffers can be invalidated
2022-01-13 18:39:31 +01:00
Philip Rebohle
db2e32ede6
[dxvk] Be smarter about which chunks to free
...
Freeing all empty chunks immediately may cause issues if an app constantly
allocates and frees a small number of resources that don't fit into any
existing chunk, so try to keep one around. Aggressively free everything
under memory pressure if necessary.
2022-01-13 18:39:31 +01:00
Philip Rebohle
15ab07ab94
[dxvk] Replace allocation priority with allocation flags
2022-01-13 18:39:31 +01:00
Philip Rebohle
d34bbdb58e
[dxvk] Free empty memory chunks
2022-01-13 18:22:44 +01:00
Philip Rebohle
e6442d64be
[dxvk] Display allocated memory in HUD again
2022-01-13 18:22:44 +01:00
Philip Rebohle
a70a35406e
[meta] Release 1.9.3
2022-01-11 13:28:28 +01:00
Georg Lehmann
f5744284eb
[d3d9] Dirty FF vertex shader if any D3D9VertexDeclFlags change.
...
The vertex shader depends on all of these in some way.
2022-01-10 22:06:15 +00:00
Christopher Egert
b1a6cbad7f
[d3d9] Update FFVS when D3DFVF_PSIZE is specified.
...
This fixes #2387
2022-01-10 20:05:41 +00:00
Robin Kertels
4cdee69bc9
[d3d9] Always upload all managed texture mips after AddDirtyBox call
...
Co-authored-by: Paul Gofman <gofmanp@gmail.com>
2022-01-10 18:55:08 +00:00
Philip Rebohle
b53c3057e1
[dxgi] Fix refresh rate filtering in FindClosestMatchingMode
...
We need to operate on the pre-filtered list, or otherwise we may run into
problems where not all refresh rates are supported for all display modes.
2022-01-10 14:45:19 +01:00
dosse91
55c4aba4d0
Added config for James Cameron's Avatar (DX9)
2022-01-10 14:40:53 +01:00
Joshua Ashton
ecd7b67069
[d3d11] Lock context before EmitCs for annotations
2021-12-21 03:09:08 +01:00
Philip Rebohle
3bfad1e70e
[dxvk] Explicitly intiialize framebuffer info
2021-12-20 23:47:50 +01:00
Supreeeme
34774f4ea4
Enabled strict float emulation for BlazBlue Centralfiction
2021-12-15 09:44:22 +00:00
Robin Kertels
c13395db97
[util] Enable strict float emulation for a bunch of games
...
... that are known to be broken without it.
2021-12-05 16:49:19 +00:00
Robin Kertels
6c17b8801c
[d3d9] Add strict option to float emulation setting
2021-12-05 16:49:19 +00:00
Robin Kertels
eb9dfcedbd
[util] Move toLower transform to function
2021-12-05 16:49:19 +00:00
Philip Rebohle
11f8b8ba44
[dxso] Handle multiplication by zero when emitting clip distances
2021-12-05 16:49:19 +00:00
Philip Rebohle
337360cdc6
[dxso] Handle multiplication by zero in TexM*Tex instructions
2021-12-05 16:49:19 +00:00
Philip Rebohle
a9515d3530
[dxso] Handle multiplication by zero in matrix ALU instructions
2021-12-05 16:49:19 +00:00
Philip Rebohle
8063e27c08
[dxso] Handle multiplication by zero in cross product
2021-12-05 16:49:19 +00:00
Philip Rebohle
7b2b8ceff3
[dxso] Handle multiplication by zero in dst instruction
2021-12-05 16:49:19 +00:00
Philip Rebohle
ebc5326ed5
[dxso] Correctly handle multiplication by zero
2021-12-05 16:49:19 +00:00
Robin Kertels
804eca9cad
[d3d9] Respect shader defined constants for HWVP/PS buffer binding range
2021-11-30 01:57:22 +00:00
Robin Kertels
ce1c66d7dc
[dxso] Omit relative constant range check when possible
...
We can just rely on robustness2 when it's supported.
2021-11-30 01:57:22 +00:00
Robin Kertels
0061139652
[d3d9] Copy shader defined constants into SWVP UBO
...
Co-authored-by: Christopher Egert <cme3000@gmail.com>
Co-authored-by: Georg Lehmann <dadschoorse@gmail.com>
2021-11-30 01:57:22 +00:00
Robin Kertels
39039f9ac8
[dxso+d3d9] Clean up texture slots
2021-11-30 01:57:22 +00:00
Paul Gofman
b672c07a93
[d3d9] Send WM_ACTIVATEAPP messsage on WM_SIZE.
2021-11-30 01:48:24 +00:00
Philip Rebohle
1abd205216
[d3d11] Compute image data layout for unmapped textures
...
We sometimes need this information when uploading image data. Fixes #2380 .
2021-11-29 16:55:35 +01:00
Philip Rebohle
b6cd6aaecc
[d3d11] Fix depth aspect not being applied to some D16_UNORM views
2021-11-29 15:39:41 +01:00
Georg Lehmann
97f03127e9
[dxso] Remove empty dxso_helpers.h
2021-11-25 21:50:59 +00:00
Georg Lehmann
c2a66c043a
[dxvk] Remove empty dxvk_main
2021-11-25 21:50:59 +00:00
Georg Lehmann
12249fd330
[dxso] Fix constant buffer debug names
2021-11-11 23:54:05 +00:00
Joshua Ashton
4c0eee89e4
[d3d9] Use clamped LOD for creating new views
2021-11-11 23:53:38 +00:00
Joshua Ashton
c22dcdbaa3
[d3d9] Clamp LOD in calls to SetLOD
...
MSDN says this is clamped and returns the clamped value.
Closes : #1869
2021-11-11 23:52:35 +00:00
Joshua Ashton
5d4b7db9e6
[d3d9] Fix = alignent in CreateView
2021-11-11 23:51:59 +00:00
Philip Rebohle
2abe2132a6
[dxvk] Implement framebuffer cache
...
Reduces the number of object allocations per frame.
2021-11-09 18:09:50 +01:00
Philip Rebohle
a987b729a7
[dxvk] Introduce DxvkFramebufferKey
...
Can be used to cache framebuffer objects.
2021-11-09 17:49:22 +01:00
Philip Rebohle
2527ea45b9
[dxvk] Refactor framebuffer creation
2021-11-09 16:37:33 +01:00
Philip Rebohle
f1aad6cb7b
[dxvk] Remove frame buffer from context state
2021-11-09 16:37:33 +01:00
Philip Rebohle
5b725205ef
[dxvk] Introduce DxvkFramebufferInfo
...
Stores all info that is currently held by the DxvkFramebuffer class,
but is not heap-allocated and will not create an actual framebuffer
object.
2021-11-09 16:37:31 +01:00
Philip Rebohle
1fd037cf29
[dxvk] Fix load aspect mask in render pass creation
2021-11-05 16:09:05 +01:00
Philip Rebohle
4c88335f66
[util] Shrink Nvidia HVV heap for Final Fantasy XIV
...
Fixes #2210 .
2021-11-03 13:27:39 +01:00
Philip Rebohle
778aee0372
[dxvk] Rework Nvidia HVV option
2021-11-02 00:52:25 +01:00
Joshua Ashton
8912c7adb0
[d3d9] Fix long driver/device names not being null terminated
...
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-10-22 02:58:53 +00:00
Joshua Ashton
409a6f5c3f
[d3d11] Use atomics for NVX handles
...
Primarily to make DXVK native happy, but also much cleaner.
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-10-22 03:15:03 +02:00
Georg Lehmann
b163503f7c
[dxso] Respect SM2+ sampler source swizzle.
2021-10-20 17:43:52 +00:00
Robin Kertels
79a20c463f
[util] Enable apitrace mode for Crysis 3 Remastered
2021-10-18 18:23:58 +02:00
Robin Kertels
7f89fe1406
[d3d9+utils] Remove swvp hack
2021-10-15 10:54:18 +01:00
Robin Kertels
530f87f158
[d3d9+dxso] Rely on robustness for unset HW VS & PS constants
2021-10-15 10:54:18 +01:00
Robin Kertels
869f75895c
[d3d9+dxso] Switch constant buffer order
2021-10-15 10:54:18 +01:00
Robin Kertels
791d533a1d
[d3d9+dxso] Rely on robustness for unset SWVP constants
2021-10-15 10:54:18 +01:00
Robin Kertels
01f633289b
[d3d9] Use mapped slice when locking POOL_DEFAULT textures
...
Fixes an issue where the game would end up using the wrong
buffer slice if it previously mapped the same texture with DISCARD.
Fixes #2329
2021-10-15 10:46:40 +01:00
Philip Rebohle
3e64e1b3f5
[dxvk] Explicitly stop state cache worker threads on device destruction
...
Otherwise, the workers may access objects that are being destroyed an
app thread.
2021-10-08 00:54:59 +02:00
Paul Gofman
24eb875f02
[dxgi] Return success from DxgiSwapChain::Present1() if window is destroyed
2021-10-07 20:34:37 +02:00
oltolm
1ef4e60b69
[dxvk] fix barrier tracking code
2021-10-06 02:59:31 +02:00
Philip Rebohle
ec18532ed4
[dxvk] Use new barrier tracking for images
2021-10-01 15:52:41 +02:00
Philip Rebohle
30bc137f9c
[dxvk] Use new barrier tracking for buffers
2021-10-01 15:52:41 +02:00
Philip Rebohle
195b7d7155
[dxvk] Add fast versioned hash table for barrier tracking
2021-10-01 15:52:41 +02:00
Philip Rebohle
714ca48271
[dxvk] Work around device creation failure with CUDA interop extensions
2021-10-01 15:43:19 +02:00
Philip Rebohle
b36fa75d1d
[dxvk] Disable CUDA interop extensions on 32-bit builds
2021-10-01 15:32:40 +02:00
Philip Rebohle
8225891751
[dxvk] Fix copy-paste mistake when enabling bufferDeviceAddress feature
2021-10-01 15:32:40 +02:00
Philip Rebohle
aa4b7c9f92
[dxvk] Rework 32-bit check
2021-10-01 14:18:42 +02:00
Philip Rebohle
7193962381
[d3d11] Enable VK_KHR_buffer_device_address if necessary
...
Just enabling the extension doesn't necessarily do anything.
2021-10-01 14:12:17 +02:00
Philip Rebohle
1fefdf2ab6
[dxvk] Add VK_KHR_buffer_device_address extension info
2021-10-01 14:12:17 +02:00
Robin Kertels
c8341e4be3
[d3d9] Fix lenient clears
2021-09-28 21:14:02 +01:00
Robin Kertels
c4449faf5a
[d3d9] Don't clamp clears to the size of RT 0
2021-09-27 21:57:15 +01:00
Robin Kertels
29ee1a74e6
Revert "[d3d9] Avoid depth degenerate viewports"
...
This reverts commit 78d22cc7a5
.
2021-09-27 14:55:49 +01:00
Robin Kertels
d799b44d91
[dxso] Ensure pow base is >= 0 in LIT
2021-09-26 22:33:01 +01:00
Robin Kertels
2735988fa2
[d3d11] Only use cube arrays for regular cubemap views when enabled
2021-09-26 23:17:16 +02:00
Adam Moss
86148ec070
[d3d11,dxvk] Implement DXVK pieces required for DX11 DLSS support
...
Notably, fairly generic functions to create/launch/destroy Cuda kernels,
and methods to fetch GPU virtual addresses and handles for DX11 resources.
Note: Requires some corresponding dxvk-nvapi changes for DLSS to
be initialized successfully.
2021-09-24 15:10:07 +02:00
Philip Rebohle
3a712b766e
[dxvk] Introduce accessMemory for barrier tracking
2021-09-24 15:07:59 +02:00
Philip Rebohle
b79ce7af8a
[meta] Release 1.9.2
2021-09-20 15:07:25 +02:00
Philip Rebohle
9eb83c187c
[util] Make bool and tristate options case-insensitive
2021-09-19 19:21:49 +02:00
Philip Rebohle
dd7ffbc803
[d3d11] Also validate draw buffer for DispatchIndirect
...
Oversight.
2021-09-12 16:18:25 +02:00
Philip Rebohle
de7fb51e64
[d3d11] Validate indirect draw buffer size
...
Otherwise, if the draw parameter offset is out of bounds, we
may hang the GPU.
Fixes #2286 .
2021-09-12 01:23:04 +02:00
Georg Lehmann
827c7a892c
[util] Replace countof with std::size
2021-09-10 11:58:46 +01:00
Philip Rebohle
5f9d5f1053
[dxvk] Fix IgnoreWriteAfterWritw check for indirect dispatches
2021-09-10 02:50:52 +02:00
Philip Rebohle
2f01df82d2
[dxbc] Fix invalid NonReadable/NonWritable decorations
2021-09-09 19:35:51 +02:00
Philip Rebohle
5db76784bd
[dxbc] Accurately determine access flags for UAVs
2021-09-09 15:53:02 +02:00
Philip Rebohle
c9f7ccc7f9
[dxvk] Fix hazard detection for shader resources
2021-09-09 14:58:04 +02:00
Philip Rebohle
67391a7bb0
[d3d11] Introduce d3d11.ignoreGraphicsBarriers option
2021-09-09 14:28:25 +02:00
Philip Rebohle
5109000747
[dxvk] Add IgnoreGraphicsBarriers flag
2021-09-09 14:28:25 +02:00
Philip Rebohle
fe68b43335
[dxvk] Deduplicate buffer and image slices in barrier array
...
Fixes some major performance issues when dealing with many
consecutive dispatch calls.
2021-09-09 14:24:55 +02:00
Vincent Grande
f0e9700f34
[d3d10] Add missing include
2021-09-03 12:54:50 +02:00
Philip Rebohle
c0a7143d1b
[vulkan] Fix missing include
...
Fixes #2269 .
2021-09-02 16:34:55 +02:00
pingubot
69588b02fe
Update config.cpp ( #2256 )
2021-08-27 13:10:24 +02:00
Georg Lehmann
b498040f7d
[d3d9] Disable explicit front buffer for Fantasy Grounds
2021-08-26 09:26:10 +01:00
tayarani
2786bbda64
Fix DxvkShaderConstData garbage pointer for default constructor
2021-08-25 02:20:26 +02:00
Mahdi Tayarani
ae881981f9
Fix raw() accessor on the Flags class
...
The current implementation has a bug where it casts the underlying
int type to a uint32_t. The is incorrect for enums like DxvkShaderFlag
which are based on uint64_t.
2021-08-24 22:23:20 +02:00
Georg Lehmann
4b50d24231
[util] Force 60 fps for Sine Mora EX
2021-08-24 19:42:55 +02:00
Georg Lehmann
ed70f9a07c
[d3d9] Support unsupported formats in LockRect
2021-08-23 17:38:50 +01:00
Georg Lehmann
82d40f5bba
[d3d9] Return a pointer in GetUnsupportedFormatInfo
2021-08-23 17:38:50 +01:00
Philip Rebohle
fa4f40a0e6
[dxvk] Remove transform feedback self-dependency from render passes
...
Fixes a whole bunch of validaton errors since this was technically invalid.
2021-08-23 17:35:58 +02:00
Philip Rebohle
2f5c7562c2
[dxvk] Track transform feedback counter hazards properly
...
If we avoid needlessly pausing and resuming transform feedback with the
same counters, we can use existing barrier tracking to insert counter
barriers without requiring an invalid render pass self-dependency.
2021-08-23 17:35:58 +02:00
Georg Lehmann
04474b761b
[d3d9] Brain-dead gamma ramp validation
2021-08-23 15:41:59 +01:00
Georg Lehmann
3fc1f2cecb
[util] Fix MSVC build
2021-08-23 15:41:31 +01:00
Philip Rebohle
50c6974f3a
[dxso] Fix gradient instructions for cube maps
...
We need 3 components in that case. Based on MSDN documentation, texldd
does not support 3D textures so there's no need to worry about those.
Fixes validation errors in Payday.
2021-08-23 13:50:54 +01:00
Alejandro Bringas Martinez
d48b33bf95
Fix poor performance in Homefront The Revolution
...
in certain places when displaying "wide open" and at long range it has a very poor performance of 35-45fps, but with this option it goes up to a stable 60fps on my GTX1060 6Gb
2021-08-19 13:40:05 +02:00
Georg Lehmann
41d0fcff95
[d3d9] Disable projection for PS 1.4
2021-08-19 01:47:42 -07:00
Robin Kertels
956b23c9e9
[d3d9] Use correct pitch to calculate buffer offset
2021-08-18 13:31:00 -07:00
Robin Kertels
97e91b6c0f
[d3d9] Respect pitch alignment in GetFrontBufferData
2021-08-18 13:31:00 -07:00
Joshua Ashton
3718cee9eb
[d3d9] Clean up texture type tracking
...
Additionally stops leaky pipelines on PS 1.x shaders from partial mask updates.
2021-08-17 07:02:56 -07:00
Joshua Ashton
64852f05c3
[d3d9] Track fixed function sampler bitfields
...
Cleans some stuff up a little bit and makes FF draws faster when this gets incorrectly invalidated.
2021-08-17 07:02:56 -07:00
Joshua Ashton
c6a4c41d20
[d3d9] Batch texture unbinding
2021-08-17 07:02:56 -07:00
Joshua Ashton
a346949304
[d3d9] Remove needless locks in SetTexture and SetSamplerState
2021-08-16 19:09:16 +01:00
Georg Lehmann
789e19d2ac
[dxbc] Use BitMask helper
2021-08-16 08:49:46 -07:00
Georg Lehmann
b13260c689
[d3d11] Use BitMask helper
2021-08-16 08:49:46 -07:00
Georg Lehmann
6103e3c800
[d3d9] Use BitMask helper
2021-08-16 08:49:46 -07:00
Georg Lehmann
b037fc8882
[dxvk] Use BitMask helper
2021-08-16 08:49:46 -07:00
Philip Rebohle
ffc351f2f5
[util] Introduce BitMask helper
2021-08-16 08:49:46 -07:00
Joshua Ashton
64f417d6e6
[util] Add bsf helper
...
For when we know we aren't going to put in a mask of 0, we can use this and get better codegen.
2021-08-16 08:49:46 -07:00
Joshua Ashton
b09b912797
[d3d9] Fix unbinding textures
...
Closes : #2236
2021-08-16 15:33:49 +01:00
Georg Lehmann
a75cf2f39d
[d3d9] Fix parital DS clears with full RT clear
2021-08-15 19:00:47 +00:00
Georg Lehmann
a2330b89d2
[dxso] Implement TexDepth
2021-08-12 02:17:16 +00:00
Joshua Ashton
7acbd0f4e1
[d3d9] Expose D3DPMISCCAPS_CLIPTLVERTS
...
Matches what we actually do and fixes a Wine test
2021-08-11 12:44:28 +01:00
Joshua Ashton
a6156856e5
[d3d9] Don't check for NULL pViewport
...
This cannot be NULL.
2021-08-11 11:44:09 +00:00
Joshua Ashton
78d22cc7a5
[d3d9] Avoid depth degenerate viewports
2021-08-11 11:44:09 +00:00
Joshua Ashton
5f4f4d57df
[d3d9] Fix initial mapping of images written by GPU
2021-08-11 12:14:17 +01:00
Joshua Ashton
679d703efc
[d3d9] Fix upload race with default image mapping
...
Fixes a Wine test
2021-08-11 11:53:17 +02:00
Robin Kertels
60a7047550
[d3d9] Fix D3DLOCK_READONLY handling with evictManagedOnUnlock
2021-08-11 07:35:39 +00:00
Joshua Ashton
2c8099adf1
[d3d9] Use Texture2D for CommonTexture resolution
...
Using the generic texture type was a nice idea in theory, but some compilers did not give it a vtable as it was abstract, resulting in a crash here.
2021-08-11 04:25:29 +01:00
Joshua Ashton
ab7fc42f2f
[d3d9] Fix stateblock refcounting
2021-08-11 01:38:50 +01:00
Joshua Ashton
a1f0bb99ee
[d3d9] Cleanup D3D9DeviceEx members
2021-08-11 01:38:34 +01:00
Joshua Ashton
5e48035e99
[d3d9] Only bind textures if they are used by the shader
2021-08-11 01:08:13 +01:00
Joshua Ashton
c0c1565cba
[d3d9, dxso] Alias color and depth samplers and improve tracking
...
Takes me from 340 -> 460fps in A Hat in Time's main menu when CPU bound.
2021-08-10 23:46:03 +00:00
Joshua Ashton
3f78bde928
[d3d9] Optimize GetCommonTexture
2021-08-10 23:46:03 +00:00
Joshua Ashton
85468a5526
[d3d9] Add extra brackets to fetch4 filter check
2021-08-09 22:54:19 +00:00
Joshua Ashton
674f008e23
[d3d9] Use m_activeTexture mask for SRGB check
2021-08-09 22:54:19 +00:00
Joshua Ashton
1823a098a1
[d3d9] Clean up SetStateSamplerState
2021-08-09 22:54:19 +00:00
Joshua Ashton
ea4aa87336
[d3d9] Add unlikelies to rare vendor hacks
2021-08-09 22:54:19 +00:00
Georg Lehmann
1ea79cf136
[d3d9] Only respect relevant bits of D3DRS_STENCILREF
2021-08-09 22:54:06 +00:00
Joshua Ashton
79cf2e875f
[dxvk] Avoid needless refcount in updateFramebuffer
...
Avoids a needless refcount
2021-08-09 15:23:59 +02:00
Joshua Ashton
a35f2af5e5
[dxvk] Remove needless refcount in updateTransformFeedbackBuffers
2021-08-09 15:23:59 +02:00
Joshua Ashton
4edaade185
[dxvk] Avoid needless refcount in copyImageFb
2021-08-09 15:23:59 +02:00
Georg Lehmann
8844dc2091
[dxgi] Downgrade format fall back warnings to info
2021-08-09 13:17:43 +02:00
Georg Lehmann
b55784acc6
[dxvk] Downgrade missing OpenVR warning to info
2021-08-09 13:17:43 +02:00
Georg Lehmann
152a08191c
[d3d9] Downgrade format fall back warnings to info
2021-08-09 13:17:43 +02:00
Joshua Ashton
abba425ed0
[d3d9] Optimize MarkTextureBindingDirty with tzcnt loop of m_activeTextures
2021-08-09 09:54:12 +00:00
Joshua Ashton
242b7b6d9c
[d3d9, dxso] Remove AlphaTestEnable spec constant
...
Go based on the func we already have. Avoids wasting a spec const.
2021-08-09 09:52:07 +00:00
Georg Lehmann
ada463badc
[d3d9] Mark mips as dirty on Clear if needed
2021-08-08 10:27:43 +00:00
Georg Lehmann
92deba0310
[d3d9] Implement D3DTOP_BLENDTEXTUREALPHAPM
2021-08-08 10:12:40 +00:00
Georg Lehmann
9162aa5fdf
[d3d9] Captured NULL vertex declarations are not applied
2021-08-08 08:50:00 +00:00
Georg Lehmann
28a07ef445
[d3d9] Validate vertex declaration on draws
2021-08-08 08:50:00 +00:00
Georg Lehmann
8c0003552c
[d3d9] Reject depth stencil StrechRect during an active scene
2021-08-08 08:50:00 +00:00
Georg Lehmann
09e5939502
[d3d9] Reject 2 BeginScene + EndScene without Begin
2021-08-08 08:50:00 +00:00
Georg Lehmann
6071e998fd
[d3d9] Handle invalid modes in Device::Reset
2021-08-08 08:50:00 +00:00
Georg Lehmann
64c4eea922
[d3d9] Mark texture dirty on SetLod
2021-08-08 02:28:44 +00:00
Georg Lehmann
26516dc904
[d3d9] Fix ColorFill with OffscreenPlainSurface
2021-08-08 02:15:06 +00:00
Joshua Ashton
fd50eae5c2
[d3d9] Optimize framebuffer binding with RT mask
2021-08-08 02:14:11 +00:00
Joshua Ashton
2f22c1b53d
[d3d9] Optimize clears with rt mask and better ref tracking
2021-08-08 02:14:11 +00:00
Joshua Ashton
072d3a039e
[d3d9] Track bound RTs
...
This also improves active RT hazard tracking by also accounting for NULL
2021-08-08 02:14:11 +00:00
Joshua Ashton
e0f9ebf695
[d3d9] Common buffer header cleanups and docs
2021-08-08 02:14:11 +00:00
Joshua Ashton
ee11e1af58
[d3d9] Minor buffer code-style cleanups
2021-08-08 02:14:11 +00:00
Joshua Ashton
b1b1524737
[d3d9] Adapter cleanups
2021-08-08 02:14:11 +00:00
Joshua Ashton
da411c8a48
[d3d9] Move m_lod after m_subresources
2021-08-08 02:14:11 +00:00
Joshua Ashton
4a569918c0
[d3d9] Track NULL state per-subresource
2021-08-08 02:14:11 +00:00
Joshua Ashton
d6bc355782
[d3d9] Fix code-style of D3D9Subresource and inline
2021-08-08 02:14:11 +00:00
Joshua Ashton
f4ce795fe7
[d3d9] Do a little packing of subresource members
2021-08-08 02:14:11 +00:00
Joshua Ashton
d922e261e8
[d3d9] Make D3D9_COMMON_TEXTURE_DESC smaller
2021-08-08 02:14:11 +00:00
Joshua Ashton
3592d7b48f
[d3d9] Return const buffer references in D3D9CommonBuffer
...
Avoids some needless refcounting
2021-08-08 02:14:11 +00:00
Joshua Ashton
fb7035f16a
[d3d9] Remove D3D9CommonBuffer::GetDesc
...
We already have ::Desc()
2021-08-08 02:14:11 +00:00
Joshua Ashton
750639d3b6
[d3d9] Return const view references in D3D9Subresource
2021-08-08 02:14:11 +00:00
Joshua Ashton
3cbac8923f
[d3d9] Return const refs for image/buffers + format mapping in CommonTexture
...
Avoids needless Rc ref counts and copies of that fairly large structure.
2021-08-08 02:14:11 +00:00
Georg Lehmann
23873cbb57
[d3d9] Disable primitive restart
2021-08-08 02:05:27 +00:00
Georg Lehmann
fdc2e2e78f
[d3d9] Fix NEVER alpha testing
2021-08-07 21:54:30 +00:00
Georg Lehmann
be3c248c8b
[d3d9] Don't mark mips as dirty when the texture doesn't have automatic mips
2021-08-07 21:53:34 +00:00
Georg Lehmann
973678e6bf
[d3d9] Only look at the last bit for D3DSAMP_SRGBTEXTURE
2021-08-07 13:09:13 +00:00
Georg Lehmann
a1fbcf35de
[d3d9] Ignore clear with Count == 0 and non-NULL rect
2021-08-06 18:54:17 +00:00
Philip Rebohle
546bd6f462
[dxbc] Fix swizzles in lod instruction
...
Fixes #1764 .
2021-08-05 22:57:58 +02:00
Philip Rebohle
97ef8a6fb3
[dxvk] Remove Win32 fence
...
Replaced with CallbackFence.
2021-08-05 22:57:58 +02:00
Philip Rebohle
56395c9bc8
[d3d11] Re-implement frame latency events using Win32 semaphore
...
Matches native DXGI behaviour more accurately, and fixes a hang in
Shin Megami Tensei 3.
2021-08-05 22:57:58 +02:00
Philip Rebohle
4c222ec557
[d3d11] Use callback fence to signal Flush1 event
2021-08-05 22:57:58 +02:00
Philip Rebohle
893da94fb3
[util] Introduce CallbackFence
2021-08-05 22:57:58 +02:00
Georg Lehmann
5844315853
[dxso] Implement DxsoOpcode::Sgn
2021-08-05 20:55:54 +00:00
Georg Lehmann
c5ab87f353
[spirv] Add opFSign
2021-08-05 20:55:54 +00:00
Paul Gofman
52fac82a45
[dxvk] Also initialize view formats when creating DxvkImage for existing VkImage.
2021-08-03 00:47:33 +02:00
Robin Kertels
7873bebaf2
[d3d9] Only check range overlap if the buffer is not directly mapped
2021-07-28 16:57:02 +00:00
Philip Rebohle
d10e1ed3c0
[meta] Release 1.9.1
2021-07-26 15:45:33 +02:00
Joshua Ashton
b8a4b85c48
[d3d9] Fix clearing render targets on device reset
2021-07-26 14:35:48 +02:00
Robin Kertels
b4e6f81cb5
[d3d9] Respect aligned pitch when using initial data
2021-07-24 19:41:59 +00:00
Robin Kertels
6ba3d2f9d4
[d3d9] Set correct usage flags for large temporary staging buffers
2021-07-23 13:36:21 +00:00
Robin Kertels
fa279eb8ad
[d3d9] Ignore NO_DIRTY_UPDATE for POOL_DEFAULT resources
...
Respecting it breaks Senren Banka because we never upload the texture.
2021-07-23 13:36:21 +00:00
Robin Kertels
584e1515b1
[d3d9] Fix pitch when copying straight from mapping buffer
2021-07-23 13:36:21 +00:00
Robin Kertels
34101dcf26
[d3d9] Fix UpdateTexture extent
...
Same as 5f1629f2cb
2021-07-23 13:36:21 +00:00
Robin Kertels
5037e49646
[util] Merge GTA IV configs
...
The app config system can not handle more than one entry
per exe name, so the enableUMA one disabled the NVAPI
workaround.
2021-07-21 15:08:23 +02:00
Philip Rebohle
11bbc07ea1
[dxvk] Support destination pitch in packImageData
2021-07-19 16:54:56 +02:00
Joshua Ashton
d3112c320b
[d3d9] Add dirty texture tracking
...
Reduces overhead from re-binding and unnecessary binding (srgb changes) in L4D2.
I go from about 750 -> 850-900 fps in c1m2_streets with this change.
2021-07-14 20:38:49 +00:00