Philip Rebohle
6a3de28f94
[dxvk] Repurpose updateBuffer
...
Only allow it for very small updates where scheduling a copy command would
likely be slower. Some drivers have special paths for tiny updates.
2022-02-13 02:08:19 +01:00
Philip Rebohle
71e7faef69
[dxvk] Reduce size up to which device-local buffers can be invalidated
2022-01-13 18:39:31 +01:00
Philip Rebohle
3bfad1e70e
[dxvk] Explicitly intiialize framebuffer info
2021-12-20 23:47:50 +01:00
Georg Lehmann
c2a66c043a
[dxvk] Remove empty dxvk_main
2021-11-25 21:50: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
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
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
5f9d5f1053
[dxvk] Fix IgnoreWriteAfterWritw check for indirect dispatches
2021-09-10 02:50:52 +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
5109000747
[dxvk] Add IgnoreGraphicsBarriers flag
2021-09-09 14:28:25 +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
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
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
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
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
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
4630bbc427
[dxvk] Support multi-plane formats in updateImage
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
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
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
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
Philip Rebohle
e3b92bcfac
[dxvk] Add conservative rasterization mode to rasterizer state
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
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
Philip Rebohle
94049c0c90
[dxvk] Fix incorrect barrier for fragment shader resolve
2021-03-03 23:16:25 +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
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
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
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
7168cc160f
[dxvk] Remove layout transition hack for presentable images
2021-02-21 02:19:44 +01:00
Philip Rebohle
e46bf78f31
[dxvk] Implement discardImageView
...
Built on top of the deferred clear logic.
2021-02-21 01:56:52 +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
Philip Rebohle
5fc83a6075
[dxvk] Add missing trackImage to changeImageLayout
2021-02-20 14:35:57 +01:00