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
Robin Kertels
8eeff90e0a
[d3d9] Only use staging buffers for uploads once we've stalled on the resource
2021-07-14 19:26:25 +00:00
Robin Kertels
b83261b759
[d3d9] Adjust waiting in LockBuffer to staging buffer upload
...
Now that we're uploading using a staging buffer,
we don't need to wait for non default buffers.
We should also respect READONLY for WRITEONLY buffers
(yes, it sounds dumb) because Nostale relies on that.
2021-07-14 19:26:25 +00:00
Robin Kertels
ed24c17d53
[d3d9] Validate srcRect and dstPoint in UpdateSurface
2021-07-14 18:33:38 +00:00
Georg Lehmann
b3b2f0921c
[d3d9] Never init pSharedHandle.
...
This parameter has three different meanings if it's non NULL:
- if Pool is D3DPOOL_SYSTEMMEM it's a host pointer for inital data
- if it points to a nullptr it's a output handle
- if it's a pointer to non NULL pointer it's an import handle
2021-07-14 15:29:46 +00:00
Robin Kertels
5f1629f2cb
[d3d9] Fix FlushImage extent for smaller mip maps
2021-07-10 16:23:56 +00:00
Robin Kertels
9f0775b1ac
[d3d9] Always use cached memory for texture mapping buffers
...
We read from that memory when uploading the texture.
Fixes performance in Oblivion.
2021-07-08 21:42:12 +00:00
Joshua Ashton
c7f8267f98
[d3d9] Fix NV12 conversion
...
Froggy is the right color now
2021-07-08 22:36:59 -07:00
Philip Rebohle
e23792ef91
[d3d11] Fix handling sRGB UAV images
2021-07-07 16:00:12 +02:00
Joshie
f9034007ac
[util] Fix indexing of non-float vectors
2021-07-05 18:58:55 +02:00
Connor Abbott
9579132942
[d3d9] Remove extra spaces in def file
...
wrc is pickier about this than windres and refuses to accept it.
2021-07-03 14:28:28 +02:00
Connor Abbott
aae0e57a46
Don't add def file as an object
...
This is unnecessary even on mingw, and leads to duplicating the .def
file on the linking command line which winegcc complains about.
2021-07-03 14:28:28 +02:00
Connor Abbott
2988875e93
[dxgi] Call QueryPerformanceCounter directly
...
dxvk::high_resolution_clock is meant to be a wrapper around the C++ time
library, and getCounter() is (AFAIK) an internal thing so calling it
directly is odd. On winelib this redirects to the host's implementation,
which means this fails to compile. Since this is a Windows API and not
for internal usage just call the Windows API function directly.
2021-07-03 14:28:28 +02:00
Connor Abbott
b9135ca0cd
Do not try to load libraries natively under __WINE__
...
This was only half-implemented (e.g. OpenXR was still calling
GetModuleHandle), broke compilation with Vulkan due to mismatched ABI,
and wouldn't have worked anyways with winelib builds because we still
need access to wine's implementation of the Vulkan win32 winsys
integration. Perhaps this is still useful for dxvk-native but if so it
should be re-added under a DXVK_NATIVE flag.
2021-07-03 14:28:28 +02:00
Philip Rebohle
c8a9308c37
[dxvk] Enable disableMsaa option for World of Final Fantasy
...
Fixes #1216 .
Fixes #2136 .
2021-07-02 16:11:24 +02:00
Philip Rebohle
3b857d93b5
[d3d11] Add d3d11.disableMsaa option to disable multisampling
...
Aims to be mostly transparent to the application, although breakage
can still happen if shaders query the sample count and do not handle
a sample count of 1.
2021-07-02 05:52:05 +02:00
Philip Rebohle
e379f472f6
[dxbc] Implement hack to treat multisampled textures as normal textures
2021-07-02 05:52:05 +02:00
Paul Gofman
8b6ac527b4
[d3d11] Initialize buffer flags in D3D11UnorderedAccessView::GetDescFromResource().
2021-07-01 15:20:07 +02:00
Robin Kertels
309284e7dc
[d3d9] Respect 4 byte pitch when reading back texture
2021-07-01 05:47:44 -07:00
Robin Kertels
c43618d19f
[d3d9] Fix texture dirty box clearing
...
- Fix interleaved locks with evictManagedOnUnlock
We need to make sure there are no other subresources of a texture locked
before clearing the dirty box. Otherwise the data for those other subresources
won't get copied into VRAM.
- Clear dirty box regardless of texture pool
Otherwise we keep repacking and copying the whole texture
for every single lock. This causes performance problems
in Star Wars: The Old Republic.
2021-07-01 05:47:44 -07:00
Philip Rebohle
2ff8b42fff
[d3d9] Enable robustBufferAccess2 feature if available
...
Tightens some out-of-bound rules around vertex attributes.
2021-06-29 18:35:47 -07:00
Philip Rebohle
96f5641a7e
[d3d9] Ensure that the bound UP vertex buffer region is large enough
...
If the buffer size is less than (vertexCount * stride), the last vertex
may be considered out-of-bounds, even if all attributes are included in
the vertex.
Fixes #2131 .
2021-06-29 18:35:47 -07:00
Philip Rebohle
45a6d5fb5b
[dxvk] Fix potential undesired host-visible buffer invalidation
...
We cannot invalidate mapped buffers in the backend because the frontend
may cache the mapped slice from its own invalidations, which would then
become invalid. Very unlikely to be an issue in practice.
2021-06-29 13:58:52 +02:00
Philip Rebohle
cd8a2bcfcd
[dxvk] Use custom sync primitives
2021-06-29 00:51:20 +02:00
Philip Rebohle
7305da6951
[util] Implement custom sync primitives
2021-06-29 00:51:20 +02:00
Tobias Langendorf
ca6d8c6ce9
[util] Use FIFO_RELAXED present mode Earth Defense Force 5 ( #2127 )
...
The game constantly switches between SyncInterval 0 and 1, possibly in an attempt to implement adaptive Vsync, which causes performance issues because it forces us to recreate the Vulkan swap chain every couple of frames. Instead, enable the Vulkan equivalent of adaptive Vsync if possible.
2021-06-28 18:30:03 +02:00
Philip Rebohle
08a6b42458
[d3d11] Fix box validation in CopySubresourceRegion1
2021-06-24 21:07:48 +02:00
Philip Rebohle
9f80d9f8b2
[d3d11] Remove functions to update mapped buffers
...
No longer relevant since staging images will no longer be backed
by actual Vulkan images and dynamic images are not GPU-writable.
2021-06-24 21:07:48 +02:00
Philip Rebohle
7d76262c52
[d3d11] Use D3D11_COMMON_TEXTURE_MAP_MODE_STAGING if possible
2021-06-24 21:07:48 +02:00
Philip Rebohle
450c42444f
[d3d11] Use UpdateImage in D3D11DeferredContext::MapImage
2021-06-24 21:07:48 +02:00
Philip Rebohle
fd66f44561
[d3d11] Use UpdateImage in D3D11ImmediateContext::UnmapImage
2021-06-24 21:07:48 +02:00
Philip Rebohle
6ba1746d46
[d3d11] Introduce UpdateImage
2021-06-24 21:07:48 +02:00
Philip Rebohle
5e4ed2d929
[d3d11] Introduce CopyImage
2021-06-24 21:07:48 +02:00
Philip Rebohle
cd17301236
[d3d11] Introduce CopyBuffer
...
Generalizes some copy code.
2021-06-24 21:07:48 +02:00
Philip Rebohle
1a6f4456d8
[d3d11] Introduce ComputeMappedOffset for image resources
...
Modifies GetSubresourceLayout slightly in case only a partial aspect
mask is being passed to the function. This way we can conveniently
compute the offset of a given pixel within the mapped buffer of an
image subresource.
2021-06-24 21:07:48 +02:00
Philip Rebohle
7c0ee272c3
[d3d11] Add texel buffer usage to staging buffer
...
Needed for staging image updates.
2021-06-24 21:07:48 +02:00
Philip Rebohle
7160b85924
[d3d11] Add texel buffer usage flags to mapped subresource buffers
2021-06-24 21:07:48 +02:00
Philip Rebohle
731e88b196
[d3d11] Handle MAP_MODE_STAGING in initializer
...
Otherwise, we'll crash if no real image is present.
2021-06-24 21:07:48 +02:00
Philip Rebohle
596f65f75f
[d3d11] Handle MAP_MODE_STAGING when mapping images on the immediate context
2021-06-24 21:07:48 +02:00
Philip Rebohle
9e15831a2d
[d3d11] Store packed format info in D3D11CommonTexture
2021-06-24 21:07:48 +02:00
Philip Rebohle
f155b8a8b9
[d3d11] Introduce DiscardSlice and GetMappedSlice for image resources
...
These do the same as they do for buffer resources, but for a mapped
image subresource instead.
2021-06-24 21:07:48 +02:00
Philip Rebohle
11aa2a703a
[d3d11] Introduce D3D11_COMMON_TEXTURE_MAP_MODE_STAGING
...
This map mode can be used when no Vulkan image is needed to back a
staging resource, which can save a significant amount of memory.
2021-06-24 21:07:48 +02:00
Philip Rebohle
b384f5372e
[d3d11] Zero-initialize mapped buffers for images correctly
2021-06-24 21:07:48 +02:00
Philip Rebohle
f50c5234dc
[dxvk] Add source offset/extent to copyPackedBufferToDepthStencilImage
2021-06-24 21:07:48 +02:00
Philip Rebohle
a14884c652
[dxvk] Add destination offset/extent to copyDepthStencilImageToPackedBuffer
...
Needed to support partial copies between buffers and depth-stencil images.
2021-06-24 21:07:47 +02:00
Philip Rebohle
ba9d670157
[dxvk] Introduce copyPackedBufferImage
2021-06-24 21:07:47 +02:00
Philip Rebohle
27155539b6
[dxvk] Add meta copy pipeline for packed buffer image copies
2021-06-24 21:07:47 +02:00
Philip Rebohle
9f7a5a077f
[dxvk] Fix broken row/slice alignment in buffer<->image copies
...
If the specified row or slice alignment matches the row size exactly
but is not a power of two, we could accidentally screw up the alignment.
2021-06-24 21:07:47 +02:00
Philip Rebohle
ba4938e201
[dxvk] Add slice alignment to copyImageToBuffer
2021-06-24 21:07:47 +02:00
Philip Rebohle
4840cdaf8c
[dxvk] Add slice alignment to copyBufferToImage
2021-06-24 21:07:45 +02:00
Philip Rebohle
87d32a234d
[dxvk] Handle discard aspects correctly when performing clears
...
Should fix an Nvidia driver crash, see #2118 .
2021-06-24 17:15:52 +02:00
Robin Kertels
8a93bbd8fa
[d3d9] Make sure clear extent does not exceed rt size
2021-06-19 16:11:11 -07:00
Robin Kertels
7dd443802c
[util] Report Nvidia GPU to Far Cry 1
2021-06-19 10:43:31 -07:00
Robin Kertels
d7c4afbeba
[d3d9] Pass correct element size to texture converter
2021-06-19 10:43:31 -07:00
Philip Rebohle
81664fce44
[dxbc] Remove atomic counter workaround for ancient Mesa versions
...
No one should be using Mesa 19.0 at this point.
2021-06-18 15:44:58 +02:00
Philip Rebohle
7beb344f6f
[dxbc] Remove dxvk.useEarlyDiscard option
...
No longer relevant on drivers that support DemoteToHelperInvocation.
Closes #2109 .
2021-06-18 15:44:27 +02:00
Georg Lehmann
6b8ab4fd38
[d3d11] Remove mingw-w64 < 6 workarounds
2021-06-15 20:41:34 +02:00
Philip Rebohle
dca63464b4
[meta] Release 1.9
2021-06-15 15:32:19 +02:00
Georg Lehmann
7a688bd74c
[util] force 60fps for Demon Stone
2021-06-15 02:54:14 -07:00
Samuel Pitoiset
dba539471d
[dxso] Remove old RADV/LLVM workaround for early discard
...
This workaround has been removed for DXBC few weeks ago. Note that
RADV/ACO is no longer a thing with latest Mesa git anyways.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
2021-06-15 01:07:35 -07:00
Philip Rebohle
de05728c8c
[dxvk] Check view format as well when deferring clears
...
Otherwise, we may accidentally clear to an incorrect value.
Fixes #2100 .
2021-06-14 16:41:31 +02:00
Philip Rebohle
30a1a29aa6
[util] Add DXVK_FRAME_RATE environment variable to limit frame rate
2021-06-12 13:50:08 +02:00
Philip Rebohle
12c51f1c3d
[util] Enable frame rate limiter for Nier Replicant
...
The game does not run properly at frame rates above 60 and uses the sync
interval in a weird way that sometimes leads to the game being stuck at
31 FPS, and in the menus it displays content at weird refresh rates that
it was clearly not designed to run at.
2021-06-12 13:50:08 +02:00
Philip Rebohle
6044e63eb0
[dxgi] Notify presenter about display mode changes
2021-06-12 13:50:08 +02:00
Philip Rebohle
e281eee795
[dxgi] Add NotifyModeChange method to IDXGIVkSwapChain
2021-06-12 13:50:08 +02:00
Philip Rebohle
8b67ef724e
[d3d11] Add frame rate limiter and dxgi.maxFrameRate option
2021-06-12 13:50:08 +02:00
Philip Rebohle
4f5f85925b
[d3d9] Add frame rate limiter and d3d9.maxFrameRate option
2021-06-12 13:50:08 +02:00
Philip Rebohle
b537f19a3c
[vulkan] Add frame rate limiter to Vulkan presenter
2021-06-12 13:50:08 +02:00
Philip Rebohle
a16c861358
[util] Implement frame rate limiter
...
This tries to be sophisticated and disables itself when it notices
that the frame rate is going to be limited by presentation anyway.
2021-06-12 13:50:08 +02:00
Robin Kertels
6f468ec5e0
[d3d9] Fix texture converter
2021-06-12 03:48:01 -07:00
Philip Rebohle
9eeaedeeb7
[util] Remove FFXIV workaround
...
Looks like whatever caused this in Mesa got fixed quite a while ago.
2021-06-11 01:59:56 +02:00
Thomas Crider
63fd2b9d32
[util] Enable d3d9.deferSurfaceCreation for Ninja Gaiden Sigma/Sigma 2
...
Co-authored-by: Georg Lehmann <49841484+DadSchoorse@users.noreply.github.com>
2021-06-10 01:35:48 -07:00
Joshua Ashton
f1a9d72d38
[d3d9] Don't scale z to [0, 1] for POSITIONT
...
I originally thought the depth clipping region was always [0, 1] when I first implemented this nearly 2 years ago.
The depth clipping region is already in the viewport's depth range, so just don't do anything here if we are z-testing.
( We still need to keep the flattening around for when ztest is disabled though :( )
Fixes : #2056
2021-06-06 09:31:01 -07:00
Philip Rebohle
fe00919d5f
[util] Handle upper-case file extensions correctly
2021-06-06 03:57:15 -07:00
Joshua Ashton
f4cbc9ae9d
[util] Enable emulateUMA for GTA IV
...
This game thinks we are on Intel, so report memory like they do.
2021-06-01 19:26:41 +02:00
Joshua Ashton
15e0594ec4
[dxgi] Add emulateUMA option
...
Some games think we are on Intel given a lack of NVAPI or AGS/atiadlxx support. Report our device memory as shared memory, and some small amount for a "carveout".
2021-06-01 19:26:41 +02:00
Joshua Ashton
fe0dc2d579
[dxvk] Move isUnifiedMemoryArchitecture to adapter
2021-06-01 19:26:41 +02:00
Joshua Ashton
e624cfa0b4
[util] Return custom device description for Crazy Machines 3
...
Otherwise the game decides it wants to crash.
2021-06-01 19:26:41 +02:00
Joshua Ashton
1d4c540b21
[dxgi] Add custom device description option
2021-06-01 19:26:41 +02:00
Joshua Ashton
747834e9b0
[d3d9] Bump frame id before presentation
2021-06-01 18:31:29 +02:00
Joshua Ashton
e64a8ee61a
[d3d11] Bump frame id before presentation
2021-06-01 18:31:29 +02:00
Joshua Ashton
fcb7639106
[d3d9] Synchronize frame latency on latency change
2021-06-01 18:16:35 +02:00
Joshua Ashton
787de33022
[d3d9] Sync frame latency after presentation
2021-06-01 18:16:35 +02:00
Joshua Ashton
f98a45b305
[d3d11] Sync frame latency after presentation
2021-06-01 18:16:35 +02:00
Philip Rebohle
0fe8f2e40c
[vulkan] Acquire next image immediately after presentation
...
vkAcquireNextImageKHR is a blocking call, so doing this immediately after
presentation may reduce the amount of time that passes between the application
requesing presentation and presentation actually happening on the Vulkan device.
Idea based on PR #2075 .
2021-06-01 04:52:09 +02:00
Philip Rebohle
0b88d0deab
[vulkan] Remove getSyncSemaphores from presenter
...
Instead, return the semaphores in acquireNextImage.
2021-06-01 04:32:50 +02:00
Philip Rebohle
253884a8c7
[vulkan] Remove fence from presenter
...
We don't use these anywhere.
2021-06-01 03:51:16 +02:00
Philip Rebohle
0af7229b8e
[util] Restore display modes of all monitors in RestoreMonitorDisplayMode
...
Fixes #2064 .
2021-06-01 01:48:12 +02:00
Philip Rebohle
383cde2051
[d3d11] Allow creation of render target views for planar images
2021-05-30 19:42:44 +02:00
Philip Rebohle
01051bac99
[d3d11] Allow creation of unordered access views for planar images
2021-05-30 19:42:44 +02:00
Philip Rebohle
6d72bc94f4
[d3d11] Allow creation of shader resource views for planar images
2021-05-30 19:42:44 +02:00
Philip Rebohle
2740030fca
[d3d11] Support video processor output views in ClearView
2021-05-30 19:42:44 +02:00
Philip Rebohle
b04721f9a2
[d3d11] Use staging buffer for MapImage on deferred contexts
2021-05-30 19:42:44 +02:00
Philip Rebohle
ff9d6e3226
[d3d11] Use staging buffer and copyBufferToImage for UpdateSubresource
...
Reduces number of copies and also fixes problems with multi-plane formats.
2021-05-30 19:42:44 +02:00
Philip Rebohle
e749a4a4ac
[d3d11] Create shadow copy of video input images if sampled bit is not set
...
This can happen with RGB input views since not having any bind flags set
is legal for video input views, and SHADER_RESOURCE is actually explicitly
disallowed, but we don't always want to set sampled bit for those resources.
2021-05-30 19:42:44 +02:00
Philip Rebohle
3c22f4066b
[d3d11] Lock context in video context entry points
2021-05-30 19:42:44 +02:00
Philip Rebohle
25607a0692
[d3d11] Report video processor capabilities for image formats
2021-05-30 19:42:44 +02:00
Philip Rebohle
6d9da5a8d7
[d3d11] Don't use MAP_MODE_DIRECT for multi-plane images
2021-05-30 19:42:44 +02:00
Philip Rebohle
01236fbd84
[d3d11] Use correct method to clear multi-plane images
2021-05-30 19:42:44 +02:00
Philip Rebohle
ee30acf120
[d3d11] Use new packImageData for initializing mapped image buffers
2021-05-30 19:42:44 +02:00
Philip Rebohle
7184b75f8f
[d3d11] Use GetSubresourceLayout for image maps on the immediate context
2021-05-30 19:42:44 +02:00
Philip Rebohle
1b296f8338
[d3d11] Introduce GetSubresourceLayout
2021-05-30 19:42:44 +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
Philip Rebohle
1df26a3605
[d3d11] Implement video processor views
2021-05-30 19:42:43 +02:00
Philip Rebohle
09cf2cd11e
[d3d11] Add ID3D11VideoProcessor stub
2021-05-30 19:42:43 +02:00
Philip Rebohle
bdb7eef874
[d3d11] Add ID3D11VideoProcessorEnumerator stub
2021-05-30 19:42:43 +02:00
Philip Rebohle
1eaf2545c3
[d3d11] Add ID3D11VideoDevice stub
2021-05-30 19:42:43 +02:00
Philip Rebohle
e988895e51
[d3d11] Set mutable and extended usage bits for multi-plane images
2021-05-30 19:42:43 +02:00
Philip Rebohle
2764f4abb5
[dxgi] Add format mapping for DXGI_FORMAT_AYUV
2021-05-30 19:42:43 +02:00
Philip Rebohle
d859361a37
[dxgi] Add format mapping for DXGI_FORMAT_YUY2
...
And fix some existing 422 mappings.
2021-05-30 19:42:43 +02:00
Philip Rebohle
9b236078c2
[dxgi] Add format mapping for DXGI_FORMAT_NV12 and DXGI_FORMAT_420_OPAQUE
2021-05-30 19:42:43 +02:00
Philip Rebohle
8116927ec6
[dxvk] Introduce new version of packImageData
2021-05-30 19:42:43 +02:00
Philip Rebohle
4630bbc427
[dxvk] Support multi-plane formats in updateImage
2021-05-30 19:42:43 +02:00
Philip Rebohle
55a67988b2
[dxvk] Support multi-plane formats in computeImageSize
2021-05-30 19:42:43 +02:00
Philip Rebohle
6462174c13
[dxvk] Support multi-plane formats in copyImageToBuffer
2021-05-30 19:42:43 +02:00
Philip Rebohle
a660b35f6e
[dxvk] Support multi-plane formats in clearCompressedColorImage
2021-05-30 19:42:43 +02:00
Philip Rebohle
ed57019e13
[dxvk] Support multi-plane formats in copyImage
2021-05-30 19:42:43 +02:00
Philip Rebohle
41e28cb280
[dxvk] Support multi-plane formats in uploadImage
2021-05-30 19:42:43 +02:00
Philip Rebohle
86542248df
[dxvk] Support multi-plane formats in copyBufferToImage
2021-05-30 19:42:43 +02:00
Philip Rebohle
cd2ea98670
[dxvk] Add helper functions to deal with plane aspects
2021-05-30 19:42:43 +02:00
Philip Rebohle
1d6da6f83e
[dxvk] Add format definition for VK_FORMAT_G8_B8R8_2PLANE_420_UNORM
2021-05-30 19:42:43 +02:00
Philip Rebohle
0f5e126735
[dxvk] Introduce flushSharedImages
...
Fixes problems with images not being cleared prior to presentation
if the clear is the last command issued in the frame.
2021-05-30 19:42:43 +02:00
Philip Rebohle
a1f3f6c971
[dxbc] Remove old RADV/LLVM workaround for early discard
...
We have Demote now, and ACO is the default.
2021-05-27 00:40:59 +02:00
Philip Rebohle
94674ac45e
[dxvk] Skip CPU adapters if GPUs are present
...
Because some games try (and fail) to run on Lavapipe despite it already
being the lowest priority device in the list.
2021-05-21 22:55:54 +02:00
Joshua Ashton
c51080068e
[dxgi] Handle DXGI_PRESENT_TEST and failures in GetFrameStatistics
2021-05-20 23:02:07 +01:00
Philip Rebohle
401edc53fe
[dxgi] Show warning in DxgiOutput::GetFrameStatistics
2021-05-20 22:27:36 +01:00
Philip Rebohle
db3654a07f
[dxgi] Implement present count and frame statistics for swap chains
2021-05-20 22:27:36 +01:00
Joshua Ashton
0520ce9448
[d3d9] Treat largest element in Stream 0 as vertex decl size
...
Closes #2059
2021-05-13 01:32:56 +01:00
orbea
b84a03b4d4
[util] Enable d3d9.deferSurfaceCreation for Nights of Azure
2021-05-07 22:15:58 +01:00
Joshua Ashton
f0c1e89443
[d3d9] Handle zero-sized draws
...
These return S_OK, because ofc they do.
2021-05-05 19:25:46 +01:00
Joshua Ashton
0f52c85d21
[d3d9] Account for vertex declaration size for UP draws
...
The stride may not give us the full picture here as the stride
may not encompass the vertex declaration entirely.
Consider a vertex declaration of size 20, and a stride of 12,
we may not have covered the whole range of space the draw wants with
VertexCount * Stride.
Some games such as FF13 Lightning Returns have two float3s in the vertex decl
and draw two triangles with the last float being out of bounds. This causes
the whole vertex element to be set to 0 on NVIDIA which breaks their fullscreen passes.
Instead, take (VertexCount - 1) * Stride + VertexDeclSize for the buffer size
and pad with 0s outside of the VertexCount * Stride range.
Closes : #2046
Closes : #1908
2021-05-05 19:25:46 +01:00
Joshua Ashton
4a4b96611d
[d3d9] Only log WaitForVBlank stub once
2021-04-30 19:33:24 +01:00
Joshua Ashton
a980282ebe
[util] Increase constants for TrackMania Forever
...
Bump this to 256.
Fixes rendering issues.
Closes : #1910
2021-04-30 18:51:09 +01:00
Joshua Ashton
54d3ad1295
[util] Enable d3d9.memoryTrackTest for Kohan II
...
Closes : #2030
2021-04-30 18:49:39 +01:00
Robin Kertels
525fd53bbc
[d3d9] Fix FlushBuffer
...
Use stored mapped slice and use correct dst offset.
2021-04-23 18:06:29 +01:00
Robin Kertels
da23771df4
[d3d9] Remove unused variable
2021-04-23 18:06:29 +01:00
Robin Kertels
13f53531e5
[d3d9] Fix offset in UpdateSurface
2021-04-22 20:18:50 +01:00
Robin Kertels
0bc8b0b33a
[d3d9] Align pitch to 4
2021-04-22 17:44:58 +01:00
Robin Kertels
2ba433bbd8
[d3d9+util] Remove option to disable implicit discard
2021-04-22 17:44:58 +01:00
Robin Kertels
03f5893011
[d3d9] Remove implicit discard
2021-04-22 17:44:58 +01:00
Robin Kertels
b9512a4063
[d3d9] Only copy dirty parts of managed/sysmem resources
2021-04-22 17:44:58 +01:00
Robin Kertels
4261ff6ec1
[d3d9] Use staging buffer for managed copies
2021-04-22 17:44:58 +01:00
Robin Kertels
bb11d7dee8
[d3d9] Refactor AllocUpBuffer so it can be used for managed uploads
2021-04-22 17:44:58 +01:00
Robin Kertels
8cc0c9a0f1
[d3d9] Clamp dirty buffer range
...
And always maintain dirty range.
2021-04-22 17:44:58 +01:00
Philip Rebohle
4eb884303a
[util] Enable d3d9.deferSurfaceCreation for even more Atelier games
2021-04-22 15:37:40 +02:00
Philip Rebohle
cb7adeef08
[d3d11] Add range checking to GetShaderResources
2021-04-22 12:56:11 +02:00
Philip Rebohle
65655ce37c
[d3d11] Add range checking to GetSamplers
2021-04-22 12:56:11 +02:00
Philip Rebohle
ef9ad29b7f
[d3d11] Add range checking to GetConstantBuffers
2021-04-22 12:56:11 +02:00
Philip Rebohle
2d9c229eaa
[d3d11] Add range checking to SOGetTargets
2021-04-22 12:56:11 +02:00
Philip Rebohle
11a02831a9
[d3d11] Add range checking to UAV and render target methods
2021-04-22 12:56:11 +02:00
Philip Rebohle
b51fd4d06c
[d3d11] Add range checking to IAGetVertexBuffers
2021-04-22 12:56:11 +02:00
Philip Rebohle
a13dad07cc
[d3d11] Add some missing STDMETHODCALLTYPE declarations
2021-04-22 12:56:11 +02:00
Philip Rebohle
65cc03a707
[util] Add app profile for Dal Segno
...
Fixes #2022 .
2021-04-22 12:55:04 +02:00
Andrew Sheldon
6339c8ec17
[util] Enable apitraceMode for a couple of CryEngine games
...
Kingdom Come: Deliverance and Sniper Ghost Warrior Contracts
2021-04-16 10:49:14 +02:00
Georg Lehmann
18466d4ae4
[util] remove some movs in matrix add/sub assignment
2021-04-15 22:25:11 +01:00
Georg Lehmann
77d80acf75
[d3d9] respect Vector4 alignment in UpdateStateConstants
2021-04-15 22:25:11 +01:00
Georg Lehmann
1ed6edf096
[d3d9] respect Vector4 alignment in GetShaderConstants
2021-04-15 22:25:11 +01:00
Georg Lehmann
d682ab0402
[util] static assert size of Vector4 and Matrix4
2021-04-15 22:25:11 +01:00
Georg Lehmann
5d3b130ec8
[d3d9] respect Matrix4 alignment in ConvertMatrix
2021-04-15 22:25:11 +01:00
Georg Lehmann
02eebb8595
[util] introduce a raw constructor for Matrix4
2021-04-15 22:25:11 +01:00
Georg Lehmann
c7271d94c1
[util] move Matrix4 constructors to header
2021-04-15 22:25:11 +01:00
Liam Middlebrook
fb0b11903b
[d3d11] Implement D3D11UserDefinedAnnotation
...
Reviewed-by: Oleg Kuznetsov <okouznetsov@nvidia.com>
2021-04-08 14:25:02 +02:00
Liam Middlebrook
5ce5999232
[dxvk] Add support for debug utils labels
...
Reviewed-by: Oleg Kuznetsov <okouznetsov@nvidia.com>
2021-04-08 14:25:02 +02:00
Liam Middlebrook
c89b274325
[dxvk] Track enabled instance extensions
...
Reviewed-by: Oleg Kuznetsov <okouznetsov@nvidia.com>
2021-04-08 14:25:02 +02:00
Philip Rebohle
c3feea2bce
[dxvk] Make samplerAnisotropy feature optional
2021-04-04 20:01:30 +01:00
Philip Rebohle
0a787683b6
[dxvk] Don't require shaderStorageImageExtendedFormats
...
No real reason to, not sure why we did this in the first place.
2021-04-04 20:01:30 +01:00
Robin Kertels
9d0c46b9c6
[d3d9] FF: use correct vector type when dealing with tex coords
2021-04-04 16:31:39 +01:00
Robin Kertels
8e352d0260
[util] Enable memory track test for Dragon Nest
2021-04-04 15:45:24 +01:00
Joshua Ashton
a690210eae
[dxgi] Implement swapchain dispatcher
...
Some overlays and hooks check if the vtable funcs reside in the dxgi.dll module.
Fixes : #1996
2021-03-30 17:48:10 +02:00
Rémi Bernon
9e646a3415
[util] Override default thread stack reserve size.
...
Some applications (Dragon Quest Builder 2 for instance) use an oversized
default thread stack reserve size (2G in this case), which cause every
DXVK thread to allocate as much memory, quickly exhausting system memory.
2021-03-29 17:59:06 +01:00
Robin Kertels
d17f62902d
[d3d9+util] Remove AllowLockFlagReadonly option
2021-03-22 17:43:07 +00:00
Robin Kertels
dba7525954
[d3d9] Mark non default resources as dirty by default
2021-03-22 17:43:07 +00:00
Robin Kertels
8159e87331
[d3d9] Fix some issues with dirty box handling
...
- The dst texture in UpdateSurface must be in D3DPOOL_DEFAULT
which doesn't do dirty tracking. So we don't need to
call AddDirtyBox there.
- Clear DirtyBox when we flush managed textures with EvictManagedOnUnlock.
- Do nothing in AddDirtyBox for D3DPOOL_DEFAULT textures
2021-03-22 17:43:07 +00:00
Robin Kertels
cb5f8aa392
[d3d9] Properly scale dirty box
2021-03-22 17:43:07 +00:00
Robin Kertels
3f57a3a8cc
[d3d9] Use buffer DirtyRange to track managed uploads
2021-03-22 17:43:07 +00:00
Robin Kertels
4f45e74d96
[d3d9] Improve naming of texture dirty flag and dirty boxes
2021-03-22 17:43:07 +00:00
Robin Kertels
6f139791d2
[d3d9] Improve naming of buffer flags and ranges
2021-03-22 17:43:07 +00:00
Philip Rebohle
cf4ff820be
[dxbc] Handle shaders without refactoringAllowed flag
2021-03-18 17:46:45 +01:00
Philip Rebohle
38649372bf
[dxvk] Allow different but matching views in findAttachment as well
...
Allows us to merge clears in some further edge cases.
2021-03-18 16:06:21 +01:00
Philip Rebohle
8be777b8e2
[dxvk] Move inline clears out of performClear
...
It is easier to reason about this code when there is no way for
performClear to be called within an active render pass instance.
2021-03-18 16:06:21 +01:00
Philip Rebohle
b9360bacc2
[dxvk] Do not clear read-only aspects inside render pass
...
Instead, end the render pass as necessary and clear outside of it.
May fix validation errors in some very rare scenarios where the game
performs a clear and then uses a read-only depth-stencil view.
2021-03-18 16:06:18 +01:00
Georg Lehmann
f48e3f596f
[vulkan] relax warning about exclusive fullscreen
...
Only warn if it's actually available.
2021-03-16 12:23:32 +01:00
Philip Rebohle
2f553b5b16
[d3d11] Implement conservative rasterization
...
Needed for Nvidia ShadowLibs in Final Fantasy XV.
2021-03-13 20:22:32 +01:00
Philip Rebohle
e3b92bcfac
[dxvk] Add conservative rasterization mode to rasterizer state
2021-03-13 20:22:32 +01:00
Philip Rebohle
a77c80f08a
[dxvk] Enable VK_EXT_conservative_rasterization if available
2021-03-13 20:22:32 +01:00
Philip Rebohle
787297ee4e
[dxvk] Fix wrong aspect mask for clear copies
2021-03-07 16:29:21 +01:00
Philip Rebohle
a520c5160e
[dxvk] Pack vertex binding divisor into reserved 14-bit field
...
Technically an illegal optimization since it limits the maximum
divisor to 16383, but there are no known applications relying
on very large divisors. Reduces state vector size by 128 bytes,
or roughly 20%.
This also bumps the state cache version to v10.
2021-03-06 16:59:12 +01:00
Philip Rebohle
95740eb78c
[dxvk] Use clears to impelemnt image copies if possible
...
Optimizes away a large amount of redundant depth-stencil clear+copy
madness in Final Fantasy XIV for a small performance improvement.
2021-03-06 02:43:28 +01:00
Philip Rebohle
8a4beefd3a
[dxvk] Store new image view when deferring clear/discard with matching subresources
...
Otherwise, if the view used for the second clear has a different format than
the first one, we'll end up clearing to the wrong colur. Assumes that images
with more than one aspect never have views with mismatching formats.
Also potentially improves logic around render pass clears depending on usage
patterns.
2021-03-06 02:37:02 +01:00
Philip Rebohle
b579b03047
[dxvk] Spill render pass when clearing overlapping views
...
Since we're flushing all pending clears, we need to make sure
that all images are in the correct layout. Found by inspection.
2021-03-06 01:31:55 +01:00
Philip Rebohle
5f0f90f8d4
[dxvk] Merge clears with different views but identical subresources
2021-03-05 19:50:11 +01:00
Liam Middlebrook
1c2edabbcb
[dxvk] Disable NVIDIA HVV bug workaround on fixed drivers
...
Reviewed-by: Arthur Huillet <ahuillet@nvidia.com>
2021-03-05 11:21:50 +01:00
Liam Middlebrook
b25d6ba615
[dxvk] Add option to disable workaround for NVIDIA HVV bug
...
Adds a new dxvk.halveNvidiaHVVHeap option.
Reviewed-by: Arthur Huillet <ahuillet@nvidia.com>
2021-03-05 11:21:50 +01:00
Philip Rebohle
3acdf6e22a
[d3d11] Perform bound-checking in GetBufferSlice
...
Ensures that we don't pass invalid buffer slices to the backend.
2021-03-04 17:37:13 +01:00
Philip Rebohle
049fda9218
[d3d11] Revert index buffer optimization
...
This causes some problems when the app uses a combination of index
buffer offset and StartIndexLocation that overflows 32-bit integers.
In my testing, there haven't been many games benefitting from this
optimization anyway, so just reverting it should not have tangible
effects on performance.
2021-03-04 15:47:39 +01:00
DadSchoorse
e44a1e614b
[dxvk] preserve order of devices with the same type
2021-03-03 23:17:44 +01:00
Philip Rebohle
94049c0c90
[dxvk] Fix incorrect barrier for fragment shader resolve
2021-03-03 23:16:25 +01:00
Joshua Ashton
0367bf95c4
[build] MSVC check cleanup
2021-03-03 18:57:42 +01:00
Rémi Bernon
1589f516c9
[d3d9] Convert window position relative to its parent.
2021-03-03 15:49:52 +00:00
Philip Rebohle
5083b8474c
[meta] Release 1.8.1
2021-03-01 16:49:02 +01:00
Philip Rebohle
9bdc491cb7
[dxvk] Fix potential iterator invalidation in deferClear/Discard
...
flushClears clears the deferred clear list, so we need to
break out of the loop on that code path.
2021-03-01 16:49:02 +01:00
Joshua Ashton
31063252eb
[d3d9] Don't implicit discard if read locked
2021-02-28 15:06:23 +00:00
Joshua Ashton
741070785a
[d3d9] Allow implicit discard for all backed buffers
2021-02-28 13:01:00 +00:00
Joshua Ashton
572315567c
[util] Add custom vendor id for Warhammer Online
2021-02-28 09:54:33 +00:00
Joshua Ashton
375f8323e2
[dxso] Don't warn about Phase opcode
2021-02-27 21:17:01 +00:00
Joshua Ashton
6bb271b299
[d3d9] Cleanup options code
2021-02-27 20:35:37 +00:00
Joshua Ashton
c7bebe8267
[util] Add config for Warhammer Online
2021-02-27 20:31:13 +00:00
Joshua Ashton
8c2ec5d9c9
[d3d9] Clean up resource locking code
2021-02-27 20:15:39 +00:00
Joshua Ashton
e8fc7ea23a
[d3d9] Add d3d9.allowImplicitDiscard option
2021-02-27 20:08:57 +00:00
Joshua Ashton
50d223e614
[d3d9] Add option to use device local memory for constant buffers
...
Useful for testing performance.
2021-02-27 19:29:52 +00:00
Robin Kertels
eec4481ca0
[d3d9] Fix various issues in UpdateTexture
...
- Skip copies for empty or invalid rects
- align up the extent
- use util functions to slightly clean up the code
2021-02-27 17:31:15 +00:00
Philip Rebohle
12693b17f9
[d3d9] Use DxvkSwapchainBlitter for presentation
2021-02-27 14:54:14 +00:00
Philip Rebohle
148272fbce
[d3d11] Use DxvkSwapchainBlitter for presentation
2021-02-27 14:54:14 +00:00
Philip Rebohle
49f2b4c4a6
[dxvk] Introduce DxvkSwapchainBlitter and new presentation shaders
...
This is meant to provide a common rendering code for D3D9 and D3D11 presentation.
2021-02-27 14:54:14 +00:00
Philip Rebohle
277a4f0206
[hud] Explicitly set up viewport state
2021-02-27 14:54:14 +00:00
Joshua Ashton
d51562fc9a
[dxvk] Only pass needed amount of clear values when binding a framebuffer
...
Works around a Renderdoc bug and should hopefully make more sense.
The views are compacted in a framebuffer so it should be fine to do this.
2021-02-26 18:43:45 +01:00
Philip Rebohle
db69ade7e7
[dxvk] Include fragment shader stage in render pass barrier as necessary
...
If we have readable depth, we need to make sure that the fragment shader
can actually, well, read the image.
2021-02-26 12:59:12 +01:00
Paul Gofman
71ffffb832
[vr] Use registry key to get OpenVR extensions list if available.
2021-02-26 12:46:22 +01:00
Philip Rebohle
dcf4599c98
[d3d9] Use ATTACHMENT_OPTIMAL layout for render targets
...
Significantly improves GPU-bound performance on RADV in a number of games.
2021-02-26 05:02:32 +00:00
Philip Rebohle
1b97ca253f
[dxvk] Actually transition source image in fragment shader blits
...
All meta ops should transition all involved images to the correct
image layout.
2021-02-26 05:02:32 +00:00
Philip Rebohle
9c6d3a2bf6
[d3d11] Fix RSGetViewports and RSGetScissorRects
...
If the output array is non-null, these functons always return the
number of valid viewports or scissors actually written to the array.
Fixes a wine test failure.
2021-02-26 03:35:57 +01:00
Philip Rebohle
d118d35820
[d3d11] Fix IAGetIndexBuffer with optimized index buffers
2021-02-26 02:39:14 +01:00
Joshie
5ac9c45f65
[util] Add config for Mafia 2
...
https://gitlab.freedesktop.org/mesa/mesa/-/issues/1325
2021-02-25 15:09:00 +00:00
Philip Rebohle
5e55ced8b2
[dxvk] Fix deferred clear logic for overlapping image views
...
If we clear the same image subresources twice with different views
and then start rendering to one view, we may end up clearing to
the wrong clear value.
2021-02-21 14:53:03 +01:00
Philip Rebohle
96e1079526
[dxbc] Set usesDerivatives for gather and LOD query operations as well
...
Because these do implicitly use derivatives.
2021-02-21 14:24:54 +01:00
Philip Rebohle
5643bf47fe
[d3d11] Use discardImageView in DiscardView1
2021-02-21 02:51:59 +01:00
Philip Rebohle
5d4d32c613
[d3d11] Remove explicit spec constant for gamma texture
...
No longer needed.
2021-02-21 02:20:14 +01:00
Philip Rebohle
7168cc160f
[dxvk] Remove layout transition hack for presentable images
2021-02-21 02:19:44 +01:00
Philip Rebohle
ab3de5e94b
[d3d11] Manually discard swap chain image view on present
2021-02-21 02:19:23 +01:00
Philip Rebohle
73a06aea72
[d3d9] Manually discard swap chain image view on present
2021-02-21 02:18:55 +01:00
Philip Rebohle
e46bf78f31
[dxvk] Implement discardImageView
...
Built on top of the deferred clear logic.
2021-02-21 01:56:52 +01:00
Philip Rebohle
0ba3e693c9
[dxbc] Clean up some texture handling code
2021-02-20 23:39:15 +01:00
Joshua Ashton
80049c360e
[dxvk] Fix resource tracking in attachment transitions
...
Fixes a crash in Portal 2 on DXVK native in which an old depth stencil is used after free after a device reset.
2021-02-20 19:34:49 +01:00
Joshua Ashton
e9c91daba7
[dxvk] Fix out of bounds read when uploading HUD texture
...
The width + height does not add up to the size of the global array.
2021-02-20 14:37:00 +01:00
Philip Rebohle
5fc83a6075
[dxvk] Add missing trackImage to changeImageLayout
2021-02-20 14:35:57 +01:00
Philip Rebohle
1a1cc32b11
[dxvk] Store VkImage in barrier set rather than DxvkImage*
...
Avoids some accidental ref counting.
2021-02-20 14:35:22 +01:00
Philip Rebohle
d66ecf4a94
[meta] Release 1.8
2021-02-19 05:29:50 +01:00
Joshua Ashton
59816a71b9
Revert "[d3d9] Don't minimise in WM_ACTIVATEAPP"
...
Not needed as this was an FSHack bug.
This reverts commit d87200c4d9
.
2021-02-19 03:14:56 +00:00
Philip Rebohle
fe5e215dfc
[dxgi] Support multiple outputs per adapter
2021-02-18 14:19:55 +01:00
Joshua Ashton
d87200c4d9
[d3d9] Don't minimise in WM_ACTIVATEAPP
...
Sometimes mode-setting jank can occur and technically we'd need to re-set the mode on the next present if the game gets actually minimised.
2021-02-15 17:29:45 +00:00
Philip Rebohle
df76a5252a
[dxvk] Use default layout for depth-stencil image descriptors
...
Apparently the image layout matching rules were relaxed at some point,
so just using DEPTH_STENCIL_READ_ONLY_OPTIMAL for descriptors is legal
even if the image is in DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL or
DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL in the current render pass.
2021-02-15 17:00:35 +01:00
Robin Kertels
ec5c324643
[d3d9] Mark generated mip maps as dirty
2021-02-14 23:55:00 +00:00
Robin Kertels
021ffe7350
[d3d9] Regenerate auto mip gen textures in UpdateTexture
...
.. instead of copying them
2021-02-14 23:55:00 +00:00
Robin Kertels
338f6dfb0e
[d3d9] Track dirty regions for UpdateTexture
2021-02-14 23:55:00 +00:00
Philip Rebohle
a0cf5926d8
[dxvk] Add parameter to prepareImage to ignore clears
...
Otherwise we may flush clears while clearing a render target,
which is silly and undoes the layout optimizations.
2021-02-14 04:22:52 +01:00
Philip Rebohle
2b401725dc
[dxvk] Do not transition non-shared images at the end of the command buffer
...
Currently, if the frontend flushes the command list, we always transition
render targets to their default layout. This may lead to some arbitrary
GPU performance issues if the transitions are not free.
Instead, keep all images that are only used internally in their attachment
layout across command list boundaries, until they are unbound.
2021-02-14 04:00:02 +01:00
Philip Rebohle
bce80b523f
[d3d11] Mark images as shared if necessary
2021-02-14 04:00:02 +01:00
Philip Rebohle
4f184b3424
[d3d9] Mark images as shared if necessary
2021-02-14 04:00:02 +01:00
Philip Rebohle
6564895a32
[dxvk] Add shared flag to images
...
Indicates that images can be accessed by more than one context
internally, or through the interop interfaces without explicit
image layout transitions.
2021-02-14 04:00:02 +01:00
Philip Rebohle
6efc2588f8
[dxvk] Remove checkFramebufferBarrier
...
No longer serves any practical purpose.
2021-02-14 04:00:02 +01:00
Philip Rebohle
95676bf1e6
[dxvk] Always prepare images not bound to the current FB when clearing
...
Fixes a potential bug when clearing a render target after the
last render pass using it gets suspended.
Also, for some reason we were checking for <1 instead of <0.
2021-02-14 04:00:02 +01:00
Christopher Egert
594d09ae3a
[util] Spoof a nvidia card for DIRT 5
2021-02-14 03:54:14 +01:00
Philip Rebohle
0c18a86090
[dxvk] Fix render target clears if attachments are not tightly packed
...
We do actually need to use the color target indices here rather than
the attachment index, since the repacking happens inside DxvkRenderPass.
Clear values still need to be tightly packed.
2021-02-12 03:13:11 +01:00
Philip Rebohle
436820d233
[dxvk] Add method to query color attachment index from attachment index
2021-02-12 03:13:11 +01:00
Philip Rebohle
0956050db6
[dxvk] Fix actual render target layout transitions for 3D images
...
Also, only emit transitions if the layouts differ.
2021-02-12 03:13:11 +01:00
Philip Rebohle
bd87c12138
[dxvk] Make suspend parameter of spillRenderPass not optional
2021-02-12 03:13:11 +01:00
Philip Rebohle
aa0296b7ca
[dxvk] Suspend render pass for most image operations
...
We can big brain this and only explicitly transition the render targets
that are used within the copy operation, if any, and leave the rest intact.
2021-02-12 03:13:11 +01:00
Philip Rebohle
96dfac7fea
[dxvk] Suspend render pass for certain render target clears
2021-02-12 03:13:11 +01:00
Philip Rebohle
d7db413cac
[dxvk] Introduce prepareImage
...
This transitions any framebuffer attachment that is currently in
the wrong layout back to its default layout before it is used by
functions that expec it to be in the default layout.
2021-02-12 03:13:10 +01:00
Philip Rebohle
fe43abbf32
[dxvk] Suspend render pass for buffer copies and render pass barriers
...
No images are directly involved in these, so we can save some layout
transitions.
2021-02-12 03:13:10 +01:00
Philip Rebohle
ba698430cb
[dxvk] Suspend render pass when updating framebuffer
...
Saves barriers in case some of the previously bound framebuffer
arre reused in the new one.
2021-02-12 03:13:10 +01:00
Philip Rebohle
d3b2db5978
[dxvk] Loosen render pass barriers
...
Still use ALL_COMMANDS_BIT at the end to avoid potential WAR hazards
for things like vertex buffers.
2021-02-12 03:13:10 +01:00
Philip Rebohle
29afaea338
[dxvk] Track current render target image layouts
...
This can be used to optimize away some barriers and layout transitions.
2021-02-12 03:13:10 +01:00
Philip Rebohle
2787ba8450
[d3d11] Fix D3D11 bind flags and DXGI usage for swap chain images
2021-02-12 03:12:48 +01:00
Philip Rebohle
c98c5f5d17
[d3d11] Add internal DXGI usage flags to textures
...
We need this for swap chain images.
2021-02-12 03:12:48 +01:00
Philip Rebohle
a60916f7ee
[dxvk] Improve device ordering
...
Make sure that integrated GPUs are preferred over CPU
implementations on systems that have no dedicated GPU.
2021-02-11 14:58:11 +01:00
Philip Rebohle
bcadc04932
[dxvk] Validate vertex attribute alignment
2021-02-08 14:55:18 +01:00
Philip Rebohle
a045cac281
[d3d11] Fix vertex input alignment for small formats
...
Fixes #1922 .
2021-02-08 14:28:55 +01:00
Joshua Ashton
fcaab6aa46
[d3d9] Expose adapter/backbuffer formats properly
...
Matches native behaviour in my testing.
2021-02-06 08:57:32 +00:00
Joshua Ashton
58d6f018bb
[d3d9] Allow A2R10G10B10 backbuffer format in Windowed
2021-02-06 08:43:37 +00:00
Joshua Ashton
ff9d451a4e
[util] Force saner SWVP limits for TrackMania Forever
...
Closes : #1910
2021-02-06 08:28:03 +00:00
Joshua Ashton
bba3f9f3db
[util] Defer surface creation for Nioh 2
...
Fixes black screen on startup.
2021-02-06 07:48:52 +00:00
Joshua Ashton
9bee3e1cb9
[util] Add config for Dark Messiah of Might & Magic
...
Same problem as other early Source titles, infinitely makes resources at startup to measute VRAM.
2021-01-30 04:36:26 +00:00
Philip Rebohle
01a511aa99
[dxvk,dxgi,d3d9] Fix shader spec constant IDs
...
These changed after changing the render target output swizzle stuff.
2021-01-29 16:46:01 +01:00
Philip Rebohle
2d670ec3db
[dxbc] Enable capabilities for float control modes
...
Fixes some validation errors (but seriously, why does everything
have to be a capability in SPIR-V?)
2021-01-29 16:29:39 +01:00
Philip Rebohle
c1073455bf
[spirv] Add hasCapability method
2021-01-29 16:29:26 +01:00
Philip Rebohle
3a993d0c5c
[dxvk] Use only one spec constant for fragment shader output component mapping
...
Let's trust the driver to be able to constant-fold bitfieldExtract operations.
2021-01-29 16:17:07 +01:00
Philip Rebohle
307f43ff1e
[d3d11] Introduce option to disable float controls
...
And disable for SotTR since it introduces rendering issues.
2021-01-28 20:32:38 +01:00
Philip Rebohle
8de9dc9378
[d3d11] Enable d3d11.invariantPosition by default
2021-01-28 20:09:47 +01:00
Philip Rebohle
1478011822
[dxbc] Enable NaN fixup by default on older RADV versions
...
And get rid of a whole bunch of game-specific workarounds.
2021-01-28 19:37:10 +01:00
Philip Rebohle
f5fa7a9099
[dxbc] Set float control bits as necessary
2021-01-28 19:37:10 +01:00
Philip Rebohle
849fb329ec
[dxvk] Enable VK_KHR_shader_float_controls if supported
2021-01-28 19:37:10 +01:00
dom
7d7c057d46
[util] Enable dxgi.customVendorId for Hitman 3
2021-01-28 14:07:52 +01:00
Philip Rebohle
a17ec95f21
[utils] Enable d3d9.deferSurfaceCreation for Atelier Ryza 2
2021-01-26 12:06:20 +01:00
Philip Rebohle
b8bc36559d
[d3d11] Optimize index buffer binding with offset
...
Do not rebind the buffer if only the offset changes. Instead,
adjust StartIndexLocation in indexed draw calls. For indirect
draws, this will be disabled on the fly.
This may save a whole bunch of work in the backend, and reduces
the number of commands being sent to the CS thread in the first
place, which is why this optimization is not being done in the
backend itself but rather on the client API side.
2021-01-24 15:18:38 +01:00
Philip Rebohle
f869881f55
[util] Enable TGSM barrier workaround for more F1 games
...
F1 2020 is reportedly broken as well.
2021-01-16 15:28:30 +01:00
Joshua Ashton
742b52bbb5
[d3d11] Fix device child refs properly
2021-01-15 23:47:48 +01:00
Philip Rebohle
499f15011f
[util] Enable TGSM barrier workaround for F1 2018
...
Game has the same bug as F1 2019. Fixes #1897 .
2021-01-15 13:15:01 +01:00
Philip Rebohle
3caf5269f2
[dxvk] Add regular barrier after graphics queue depth image upload
...
We still need a barrier for the layout transition.
2021-01-12 13:25:00 +01:00
Philip Rebohle
b19293430a
[dxvk] Execute depth/stencil image upload on graphics queue
...
Silences a validation error.
2021-01-12 12:14:53 +01:00
Joshua Ashton
0eec95843f
[d3d9] Fix warnings with query caching
2021-01-08 13:49:38 +00:00
Gabriel Ivăncescu
83f6400a07
d3d9: Send necessary messages for full-screen windows during WM_ACTIVATEAPP.
2021-01-08 13:40:34 +00:00
Joshie
dde28a967f
[d3d11] Fix forward declaration of ID3D11Texture2D
...
This should be struct not class.
Silences warnings in MSVC.
2021-01-08 13:06:02 +01:00
Joshua Ashton
838a6ef0f1
[d3d11] Disallow mismatching shader bytecode and type
...
Fixes a wine test which lead to a "refcounting bug" down the line.
2021-01-08 11:59:16 +01:00
Andrew Eikum
2405e474e5
[dxvk] Use wineopenxr to apply required OpenXR extensions
2021-01-07 23:54:02 +01:00
Andrew Eikum
a3065fca8e
[d3d11] Extend interop interfaces for OpenXR support
2021-01-07 23:54:02 +01:00
Robin Kertels
60a2aeb6ef
[d3d9] End query before the stall heuristic flush
2021-01-07 21:19:28 +00:00
Robin Kertels
0f933fee8b
[d3d9] Extend query stall tracking to other query types
2021-01-07 21:19:28 +00:00
Robin Kertels
6554ca8f9e
[d3d9] Cache query data
2021-01-07 21:19:28 +00:00
gofman
5852e318e5
[d3d11] Fix device ref counting from queries. ( #1887 )
...
Fixes AO Tennis 2 crash on exit.
Co-authored-by: Paul Gofman <pgofman@codeweavers.com>
2021-01-06 20:10:44 +01:00
oltolm
f337ad3c05
fix d3d11 header for MinGW 9 ( #1883 )
2021-01-04 00:52:43 +01:00
PendingChaos
f39472a9ba
[util] Set invariantPosition for Devil May Cry 5 ( #1863 )
...
Fixes some missing/shifting geometry on GFX10.3 and RADV/ACO.
Tested using dxvk.conf and DXVK 1.7.3.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
2021-01-02 10:42:33 +01:00
Jason Bagavatsingham
05f4b1bb3c
[util] Set enableRtOutputNaNFixup for Empire of Sin ( #1858 )
...
Co-authored-by: Jason Bagavatsingham <jason.bagavtsingham@gmail.com>
2021-01-02 10:42:26 +01:00
Samuel Pitoiset
d0d1d99537
[util] set enableRtOutputNanFixup for VRChat ( #1872 )
...
Fixes rendering issues with RADV.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
2021-01-01 23:07:11 +01:00
Robin Kertels
ea13a68678
[util] Enable apitrace mode for Everquest
2020-12-26 17:37:07 +00:00
Robin Kertels
56399e49d1
[util] Enable apitraceMode for Tomb Raider Legend
2020-12-14 16:51:19 +00:00
Robin Kertels
6a54d86f25
[d3d9] Implement apitraceMode option
2020-12-14 16:51:19 +00:00
Robin Kertels
4b6632764f
Revert "[d3d9] Only use DEVICE_LOCAL memory for small dynamic buffers"
...
This reverts commit f3a82a0bcc
.
Apparently this makes other games slower. We need a different solution for TR: Legend.
2020-12-14 16:51:19 +00:00
Joshua Ashton
65635b23c1
[d3d9] Always slightly bias viewport, regardless of size
...
Since we got TRUNC_COORD on RADV, we always need to bias this now.
Closes : #1854
2020-12-14 03:51:49 +00:00
PendingChaos
495b2a098e
[util] Set invariantPosition for Monster Hunter World ( #1850 )
...
Fixes flickering on GFX10.3 with RADV/ACO.
2020-12-11 18:51:10 +01:00
Philip Rebohle
03f11baf57
[hud] Fix up nonsensical scaling factors
2020-12-06 01:03:01 +01:00
Philip Rebohle
74abb5bb80
[hud] Initialize scale to 1
...
See #1843 .
2020-12-06 00:48:48 +01:00
Philip Rebohle
854ae7b862
[dxvk] Add transform feedback buffer usage to dummy buffer
...
Silences some Vulkan validation errors.
2020-12-06 00:35:29 +01:00
Philip Rebohle
0b4e167fc9
[hud] Fix typo
2020-12-02 17:13:41 +01:00
Philip Rebohle
b67639bdf0
[meta] Release 1.7.3
2020-12-02 16:14:56 +01:00
Philip Rebohle
6814ad45d4
[hud] Fix positioning of compiler item when scaled
2020-12-02 16:14:56 +01:00
Philip Rebohle
a23be756d7
[hud] Implement HUD scaling
...
Can be set like DXVK_HUD=fps,scale=1.5.
2020-12-01 03:31:22 +01:00
Philip Rebohle
8fe3effb40
[hud] Draw lines as triangle strip
2020-12-01 03:31:22 +01:00
Philip Rebohle
0ce5dd8b03
[dxvk] Remove conditional rendering from backend
...
Was disabled anyway due to being broken on various drivers,
so let's get rid of it.
2020-11-30 19:18:26 +01:00
Philip Rebohle
34e730fe41
[d3d11] Remove predication-related code
2020-11-30 19:18:26 +01:00
Philip Rebohle
e79e8b9062
[dxvk] Increase queued command buffer limit to 18
...
May help when games upload a large number of resources
at once, at the cost of increased memory usage.
2020-11-27 12:22:08 +01:00
Philip Rebohle
c547039bef
[dxvk] Decide memory priority based on access flags rather than usage
...
Buffers used as shader resources are storage buffers as well,
and should not take priority over other read-only resources.
2020-11-27 12:20:55 +01:00
Joshua Ashton
5d8539672d
[util] Fix config for EverQuest2
2020-11-27 06:27:01 +00:00
Joshua Ashton
bbfd6d0690
[util] Enable alpha test wiggle room for EverQuest 2
...
Fixes clothing being alpha tested incorrectly due to wonky interpolation on NVIDIA.
Game uses oC0 == 1.0f
My testing on NV shows the alpha test has a precision of 1/256 for all A8 and below formats, and around 1 / 2048 for A32F formats and 1 / 4096 for A16F formats (It makes no sense to me too) so anyway, we're just going to round this to a precision of 1 / 4096 and hopefully this should make things happy everywhere.
Closes : #1832
2020-11-26 12:16:33 +00:00
Joshua Ashton
09043ddd16
[dxso] Implement option for alpha test wiggle room
2020-11-26 12:15:03 +00:00
Philip Rebohle
538b55921e
[dxbc] Conditionally return zeroes for unbound textures in shader
...
May allow the driver to optimize away texture operations.
2020-11-24 18:39:20 +01:00
Philip Rebohle
45461ee54e
[dxbc] Use opSelect for unbound texel fetch instructions
...
Generates less annoying code compared to control flow instructions,
and drivers should be able to optimize away the texture instruction
anyway since the bound state is a specialization constant.
2020-11-24 18:36:40 +01:00
Philip Rebohle
5e5937baf4
[dxvk] Pass size of 0 for dummy vertex buffer
...
Silences some validation errors in case null descriptors are disabled.
2020-11-24 17:50:14 +01:00
Joshua Ashton
6a63f4af56
[d3d9] Enable null descriptors for D3D9
2020-11-24 16:17:36 +00:00
Philip Rebohle
3cf7d65789
[hud] Use textureLod in fragment shader
...
Should silence some validation errors.
2020-11-24 17:07:22 +01:00
Joshua Ashton
c282ec7976
[dxso] Handle extraneous writemasks in matrix ops
2020-11-24 15:58:21 +00:00
Philip Rebohle
f74071ac0a
[d3d11] Support different strides for merged indirect draws
...
Trine 4 uses a stride of 32 bytes. Detecting the stride dynamically
allows us to merge a couple of draws in this game, and others which
do not tightly pack their draw parameter buffers.
2020-11-21 05:39:05 +01:00
Philip Rebohle
bf4465f5a2
[dxvk] Increase query pool sizes
...
Some games create hundreds of timestamp queries, we want to reduce
the number of pools in that case.
2020-11-21 03:35:41 +01:00
Philip Rebohle
d256175981
[dxvk] Eliminate back-to-back clears when no render pass is active
...
Trine 4 hits this with a multisampled depth buffer multiple times
per frame. Previously, we'd only eliminate redudant clears if the
render target to clear was active in the current render pass.
2020-11-21 03:03:15 +01:00
Philip Rebohle
61a07fc9b9
[dxbc] Fix up incorrect infinity returned by f32tof16
...
Completely insane fix for #1826 .
2020-11-21 01:25:03 +01:00
Philip Rebohle
d0cdd79dd2
[dxgi] Allow creating R16_SFLOAT views for D16_UNORM images
...
Just use R16_UNORM. For some reason, D3D11 actually allows this, and
Trine 4 wants the corresponding calls to succeed, although we're going
to interpret the data as UNORM rather than FLOAT.
2020-11-20 17:14:41 +01:00
Shawn M. Chapla
7ef6132cf0
[util] Use nvapiHack by default for Far Cry Primal ( #1821 )
...
Remove nvapiHack=False default override for Far Cry Primal as the game
is unplayable without an nvapi implementation and appears to now perform
fine with nvapiHack.
Co-authored-by: Shawn M. Chapla <schapla@codeweavers.com>
2020-11-18 10:12:40 +01:00
Joshie
6a10c81d4b
[d3d11] Define ordinals for exports ( #1812 )
2020-11-11 16:54:36 +01:00
Philip Rebohle
13052d4949
[dxgi] Actually expose new DXGI interfaces
...
Derp.
2020-10-24 17:41:55 +02:00
Philip Rebohle
54a4e91dad
[dxgi] Implment IDXGIFactory7
2020-10-23 12:21:02 +02:00
Philip Rebohle
a7de355646
[dxgi] Implement IDXGIFactory6
2020-10-23 12:15:48 +02:00
Philip Rebohle
f81395c742
[dxbc] Fix operand modifiers on 64-bit types
2020-10-22 12:43:04 +02:00
Philip Rebohle
7b9644f355
[meta] Release 1.7.2
2020-10-07 17:41:54 +02:00
Philip Rebohle
1863c6e81c
[dxvk] Catch exceptions of type DxvkError on CS thread
2020-10-07 16:33:48 +02:00
Philip Rebohle
0b011ea361
[dxvk] Throw error in case a pipeline layout uses too many bindings
2020-10-07 16:33:48 +02:00
Philip Rebohle
d153d5c19a
[dxvk] Bump state cache version to v9
...
Needed because the binding bit mask increased in size.
2020-10-07 16:33:48 +02:00
Philip Rebohle
e98493fc24
[dxvk] Increase maximum active binding count to 384
...
Fixes a stack overflow in Baldur's Gate 3, caused by a compute shader
that uses 131 resources.
2020-10-07 16:33:48 +02:00
Rhys Perry
4251b7a59c
[util]: Set enableRtOutputNaNFixup for Art of Rally
...
Fixes the (Windows) Art of Rally demo.
See https://gitlab.freedesktop.org/mesa/mesa/-/issues/3562
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
2020-10-06 15:57:07 +02:00
Samuel Pitoiset
ccb782219c
[util] Set enableRtOutputNanFixup for some Chilla's Art games
...
See ValveSoftware/Proton#4167
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
2020-09-26 16:45:49 +02:00
Samuel Pitoiset
3487685a79
[util] Set enableRtOutputNaNFixup for The Dungeon of Naheulbeuk
...
Fixes rendering issues with RADV and AMDVLK (haven't tried -pro).
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
2020-09-26 15:06:29 +02:00
Joshua Ashton
c3fdc768cf
[d3d9] Only define the push constants we use
...
Fixes #1742
2020-09-26 06:39:52 +01:00
Joshua Ashton
753fcd5649
[d3d9] Only read point scale push constant in fixed function
...
Otherwise it doesn't exist and we're reading garbage/non-existant data.
Even though this gets spec-constanted away via an opSelect, some drivers don't like this
2020-09-26 06:39:52 +01:00
Joshua Ashton
e4bca7a42f
[d3d9] Handle specular fog factor for fixed function
...
Also handle POSITION_T shenanigans
Closes #1771
2020-09-26 06:06:06 +01:00
Joshua Ashton
dc392f7cfa
[d3d9] Fix typo declaring fixed func fog inputs
2020-09-26 04:03:11 +01:00
Philip Rebohle
ab04f45ea0
[d3d11] Handle null pointers in CopySubresourceRegion1.
...
Because of course Marvel's Avengers tries to do this..
2020-09-17 13:36:09 +02:00
Robin Kertels
b21a673a8d
[d3d11] Don't use clamped constant buffer range for bounds checking
2020-09-14 22:43:18 +02:00
Rhys Perry
73cb711f32
[dxbc] Bounds-check temporary array stores
...
Fixes flickering terrain in Just Cause 3 on RADV and possibly ANV.
2020-09-14 16:56:06 +02:00
Philip Rebohle
4801fbe098
[d3d11] Clamp and validate bound constant buffer range
...
SetConstantBuffers will only bind the first 65536 bytes of any
buffer passed to it if it is larger. This can be seen even when
querying the bound range via GetConstantBuffers1.
SetConstantBuffers1 does not have any effect if the bound range
is invalid.
2020-09-14 16:50:16 +02:00
Joshua Ashton
81632b91bb
[dxso] Allocate shader compiler on the heap
...
In some apps that call us with limited stack space, this can stack overflow
2020-09-11 21:49:14 +01:00
Joshua Ashton
3e65c2bb87
[d3d9] Reduce copying around of shader metadata at Create time
2020-09-11 21:49:14 +01:00
Joshua Ashton
1274b7a8e7
[dxvk] Add helper to retrieve SHA1 hash from shader key
2020-09-11 21:49:14 +01:00
ishitatsuyuki
bb85a4caa8
Handle non-ASCII characters properly in paths
2020-09-10 15:56:38 +02:00
Philip Rebohle
7bf02a1925
[d3d11] Fix incorrect layer count for some non-PoT 3D RTVs
...
Otherwise, we may end up with zero layers. Fixes #1756 .
2020-09-04 23:04:06 +02:00
Philip Rebohle
41a49a9c14
[dxgi] Add B8G8A8X8 formats to GetMonitorFormatBpp
...
Doesn't really fix anything, just silences some warnings
in Horizon Zero Dawn.
2020-09-04 17:54:01 +02:00
Philip Rebohle
645c8f8177
[util] Add option to disable log files entirely
...
But still log to stderr. Fixes #1743 .
2020-08-24 09:09:18 +02:00
Philip Rebohle
16a51f3c03
[dxvk] Only use half of the DEVICE_LOCAL | HOST_VISIBLE heap on Nvidia
...
Seems to help with random crashes in FFXIV and potentially
other games on 450 series drivers.
2020-08-22 11:51:56 +02:00
Philip Rebohle
e435e071e0
[dxvk] Introduce memory heap budget
...
Allows more fine-grained control of memory allocations for specific
heaps. For now, target 80% for device-local heaps on UMA devices.
2020-08-22 11:50:37 +02:00
Joshua Ashton
743f309253
[d3d9] Implement YV12 video format
...
Needed for #1726 otherwise it will upload dump that upload garbage in a YUV2 texture.
2020-08-17 22:32:30 +01:00
Robin Kertels
89d36e1d7f
[d3d9] Handle edge cases around implicit discard
2020-08-15 05:45:01 +01:00
Philip Rebohle
ea53923406
[meta] Release 1.7.1
2020-08-13 19:10:20 +02:00
Philip Rebohle
2a0f10e611
[util] Enable apitrace mode for Monster Hunter World
2020-08-13 18:52:45 +02:00
Philip Rebohle
48777c8fcf
[dxvk] Remove optional memory property flags one by one
...
We don't always want to remove HOST_CACHED if no DEVICE_LOCAL
type exists, so iterate over the bits one by one.
2020-08-13 18:47:52 +02:00
Philip Rebohle
346197c8c1
[util] Enable apitrace mode for Darksiders Warmastered Edition
...
Fixes #1719 .
2020-08-12 23:39:53 +02:00
Philip Rebohle
d4f6ccb8a8
[dxvk] Add new 4444 formats to format list
...
Derp.
2020-08-12 23:12:18 +02:00
Joshua Ashton
d92660923a
[d3d9] Use VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT
2020-08-10 09:45:49 +02:00
Philip Rebohle
cb7f1dc966
[dxgi] Use VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT if available
2020-08-10 09:45:45 +02:00
Philip Rebohle
397daa0432
[dxvk] Enable VK_EXT_4444_formats if available
2020-08-10 09:45:45 +02:00
Robin Kertels
b28a7353bb
[d3d9] Do implicit discard when locking system memory resources
2020-08-10 00:09:29 +01:00
Joshua Ashton
98c7da805b
[d3d9] Rename BT.703 to BT.709
...
Don't know how this typo got introduced.
Thanks to Ryao for finding the matrix and pointing this out.
2020-08-07 20:54:45 +01:00
Kevin Schmidt
9f6f6a7979
[util] Enable d3d9.memoryTrackTest for Anarchy Online
...
Prevents the game from consuming all system memory.
Signed-off-by: Kevin Schmidt <kevin.patrick.schmidt@googlemail.com>
2020-08-07 11:11:05 +01:00
Joshua Ashton
e2a26f2bc5
[d3d9] Optimize NV12 conversion to use a macropixel of [2, 1]
2020-08-07 10:56:26 +01:00
Joshua Ashton
9fe1b9d03f
[d3d9] Replace macropixel size with plane count
2020-08-07 10:56:26 +01:00
Joshua Ashton
2bf9f298af
[d3d9] Implement NV12 format conversion
2020-08-07 10:56:26 +01:00
Joshua Ashton
2cfd219024
[d3d9] Move some YUV helpers to common and cleanup YUY2 shader
2020-08-07 10:56:26 +01:00
Joshua Ashton
ad6b91d84a
[d3d9] Flush and synchronize to cs before format conversion
...
Fixes a race when DISCARD is used
2020-08-07 10:56:26 +01:00
Joshua Ashton
f1aa80dab9
[d3d9] Don't private reference additional swapchains
2020-08-07 10:56:26 +01:00
Joshua Ashton
e7d9d4739a
[util] Fix trace macro for functions with no args
2020-08-07 10:56:26 +01:00
Joshua Ashton
aa01d914f1
[util] Implement METHOD_NAME for _MSC_VER
2020-08-07 10:56:26 +01:00
Jason Bagavatsingham
145d8225f4
[util] Set enableRtOutputNaNFixup for Observation
2020-08-06 14:14:49 +02:00
ryester27
d88b792447
Use d3d9.deferSurfaceCreation for Fairy Tail
2020-08-04 04:29:57 +02:00
Philip Rebohle
3322da4b94
[dxgi] Add DXGIGetDebugInterface1 stub
...
Required for Metro Exodus. Also exports the DXGI entry points
with their correct ordinals.
2020-07-24 12:25:48 +02:00
Biswapriyo Nath
3b52cad243
fix clang errors
...
File changes:
* meson.build: add -Wno-unused-private-field and -Wno-microsoft-exception-spec
option to suppress clang compiler warnings
* d3d9/d3d9_swvp_emu.h: include unordered_map for std::unordered_map
2020-07-21 11:41:28 +02:00
Christopher Egert
76e3bb78c9
[util] Disable DF24 support for Borderlands 2
...
and The Pre Sequel!
2020-07-20 18:41:40 +01:00
Robin Kertels
f3a82a0bcc
[d3d9] Only use DEVICE_LOCAL memory for small dynamic buffers
...
Tomb Raider Legend writes to multiple 128KB dynamic buffers
and one 512KB one every frame.
2020-07-20 18:36:20 +01:00
Robin Kertels
2714cb952d
[d3d9] Extend dirty tracking to render targets
...
Ensures we copy a dynamic default pool texture to its
mapping buffer after the device renders to it.
2020-07-20 18:36:20 +01:00
Philip Rebohle
66814ea8db
Revert "[d3d11] Move D3D11Shader implementation to its own file"
...
Useless since it doesn't fix the clang problem.
2020-07-18 00:10:31 +02:00
Philip Rebohle
56fe52ca3c
[d3d11] Move D3D11Shader implementation to its own file
...
And resolve some include madness. Necessary because D3D11Shader::GetDevice
needs to know the full definition of D3D11Device, but D3D11Device needs
to know the full definition of the other shader-related classes.
2020-07-17 10:16:37 +02:00
Philip Rebohle
5ab12d9668
[d3d11] Reenable null descriptor feature
2020-07-10 16:59:20 +02:00
Philip Rebohle
23691cd0ff
[dxvk] Enable extended dynamic state feature if available
2020-07-10 16:59:20 +02:00
Philip Rebohle
ce33b60f9c
[dxvk] Remove null descriptor code paths for unbound resources
2020-07-10 16:59:20 +02:00
Philip Rebohle
2c641566ab
[dxvk] Fix inefficient check in bindVertexBuffer
2020-07-10 16:59:20 +02:00
Philip Rebohle
dfc0b740f8
[dxvk] Use vkCmdBindVertexBuffers2 to bind buffer ranges
...
Potentially fixes problems with OOB access on dynamic vertex buffers.
2020-07-10 16:59:20 +02:00
Philip Rebohle
9ba99eba93
[dxvk] Add feature bit for extended dynamic state
2020-07-10 16:59:20 +02:00
Philip Rebohle
9f3fb028b0
[dxvk] Enable VK_EXT_extended_dynamic_state if available.
2020-07-10 16:59:20 +02:00
Gabriel Ivăncescu
1efe91e17d
[dxgi] Restore the Topmost state upon exiting fullscreen
...
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
2020-07-08 18:57:49 +02:00
Gregor Münch
4ac9dcf855
[util] Enable d3d11.invariantPosition for Mafia III: Definitive Edition
2020-07-05 17:37:13 +02:00
Samuel Pitoiset
c4f37d3981
[util] Enable d3d11.invariantPosition for Star Wars Jedi: Fallen Order
...
Seems to resolve https://gitlab.freedesktop.org/mesa/mesa/-/issues/2706#note_538316
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
2020-06-18 13:40:24 +02:00
Robin Kertels
291f7e05bc
[d3d9] Fix uninitialized BufferHandle when discarding mapped buffer
...
Co-authored-by: Christopher Egert <cme3000@gmail.com>
2020-06-15 03:26:47 +01:00
Joshua Ashton
9525f53d00
[d3d9] Only enable FETCH4 when POINT sampling
...
Closes #1660
2020-06-14 00:38:36 +01:00
Rhys Perry
cd0a21dda5
[util] Enable d3d11.invariantPosition for Terminator: Resistance
...
Seems to resolve https://gitlab.freedesktop.org/mesa/mesa/-/issues/2608
2020-06-12 17:58:30 +02:00
Rhys Perry
0a486bd975
[util] Enable d3d11.invariantPosition for Borderlands 3
...
Seems to resolve https://gitlab.freedesktop.org/mesa/mesa/-/issues/2608
2020-06-12 17:58:30 +02:00
Philip Rebohle
51bd84368c
[util] Disable relaxed barrier option for RE7
...
Introduces lighting glitches in some places.
2020-06-11 22:06:53 +02:00
Joshua Ashton
67f01631fa
[d3d9] Clear dirty range when discarding buffers
2020-06-11 05:58:17 +01:00
Robin Kertels
7389da29be
[d3d9] Discard mapped buffer if it's currently in use
2020-06-11 05:53:33 +01:00
Robin Kertels
5d5ec2aa77
[d3d9] Remove IsUploading from CommonTexture
...
This was always true on subsequent Lock calls.
The first lock was handled by the 'freshly allocated fast path' anyway.
2020-06-11 05:53:33 +01:00
Joshua Ashton
e6ed8dab63
[d3d9] Perform tracking for preloaded managed resources
2020-06-11 05:53:33 +01:00
Joshua Ashton
7e72010302
[d3d9] Upload managed resource if needed before mip gen
2020-06-11 05:53:33 +01:00
Joshua Ashton
04397e5a7b
[d3d9] Mark mips as dirty when the filter changes
2020-06-11 05:53:33 +01:00
Joshua Ashton
f537474fe4
[d3d9] Add missing locks to mipmap auto gen
2020-06-11 05:53:33 +01:00
Joshua Ashton
b1bd3597a4
[d3d9] Implement PreLoad for buffers + textures
2020-06-11 05:53:33 +01:00
Samuel Pitoiset
86c53bb9e6
[util] Set enableRtOutputNaNFixup for Stars End
...
To fix output NaNs that introduce glitches with RADV.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
2020-06-09 16:08:16 +02:00
Joshua Ashton
68ae3f4376
[d3d9] Return D3D_OK when unlocking not locked textures
...
Matches D3D9 behaviour
2020-06-05 23:46:33 +01:00
Joshua Ashton
124023bac5
[d3d9] Add read-only check to uploading managed textures on Lock
2020-06-05 23:33:00 +01:00
Joshua Ashton
ed5cbb99b6
[d3d9] Mark managed for upload in Lock rather than Unlock
...
Fixes Nekopara properly.
Also refactor some locking checks
2020-06-05 23:29:23 +01:00
Joshua Ashton
86e8315416
[d3d9] Revert Nekopara hacks
2020-06-05 23:15:10 +01:00
Joshua Ashton
fa988be4aa
[d3d9] Improve MarkAllForUpload implementation
...
Only mark the bits we are actually using.
2020-06-05 02:40:41 +01:00
Joshua Ashton
326f6c26cb
[util] Enable forceSamplerTypeSpecConstants for all of the games in the Spellforce 2 seires
2020-06-05 02:36:17 +01:00
Joshua Ashton
b658cae509
[util] Enable uploadAllManagedSubresources for Nekopara titles
2020-06-05 02:35:03 +01:00
Joshua Ashton
d39cf31189
[d3d9] Implement uploadAllManagedSubresources option
...
Nekopara locks mip 1, then unlocks mip 0 and expects it to upload all the mips.
2020-06-05 02:34:44 +01:00
Joshua Ashton
5558460853
[d3d9] Don't mark lock on DONOTWAIT path
...
Fixes some issues in some games using this feature.
2020-06-01 15:52:25 +01:00
Joshua Ashton
12356d7342
[dxso] Bias FETCH4 half-texel offset to avoid grid effect
2020-06-01 13:33:08 +01:00
Philip Rebohle
2cac70fbb6
[d3d11] Require transform feedback for FL10_0 and newer
...
This has been supported in drivers for one and a half years at this
point, so it should be safe to make it a hard requirement.
2020-05-30 16:02:22 +02:00
Joshua Ashton
f92d60496c
[util] Enable forceSamplerTypeSpecConstants for SpellForce 2: Faith in Destiny
...
The game binds a 2D texture to a 3D (volume) sampler which causes the readback to be 0 0 0 0 on native, whereas we can workaround it and see the intended texture and cool refracty effect that would have rendered on older real hardware 👏
Closes #1645
2020-05-27 17:14:20 +01:00
Joshua Ashton
a21e0d4bcf
Revert "[dxso] Make FETCH4 swizzle ARGB"
...
The documentation lies about the swizzle...
This reverts commit 2fc00a331b
.
Closes #1641
Once and for all !
2020-05-27 12:11:43 +01:00
Joshua Ashton
56687cc258
[dxso] Handle half texel offset for FETCH4
...
Closes #1641
2020-05-27 10:16:03 +02:00
Joshua Ashton
362a591e5b
[spirv] Implement constuReplicant helper
2020-05-27 10:16:03 +02:00
Joshua Ashton
16cea83325
[spirv] Implement constiReplicant helper
2020-05-27 10:16:03 +02:00
Joshua Ashton
a9db65c8c2
[spirv] Implement OpImage
2020-05-27 10:16:03 +02:00
Joshua Ashton
c03eaf2de7
[d3d9] Hook up auto gen mip filter
2020-05-27 10:12:43 +02:00
Joshua Ashton
7cd46e72e9
[dxvk] Add filter type to generateMipmaps
2020-05-27 10:12:43 +02:00
Joshua Ashton
3825d16a31
[d3d9] Move mip filter into common texture
2020-05-27 10:12:43 +02:00
Joshua Ashton
561254b51d
[d3d9] Support RENDERTARGET and AUTOGENMIPMAP together
...
Fixes funky water in Trackmania
Closes #1642
2020-05-27 09:03:58 +01:00
Joshua Ashton
2fc00a331b
[dxso] Make FETCH4 swizzle ARGB
...
https://developer.amd.com/wordpress/media/2012/10/Advanced-DX9-Capabilities-for-ATI-Radeon-Cards_v2.pdf
2020-05-27 06:19:13 +01:00
Joshua Ashton
d8381dab8d
[d3d9] Fix a typo when unmarking autogen mips
2020-05-26 18:57:28 +01:00