1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-03-14 22:29:15 +01:00

6738 Commits

Author SHA1 Message Date
Robin Kertels
65a91900f5
[d3d9] Add option for extra frame buffer to fix GetFrameBufferData 2025-03-08 12:52:47 +01:00
WinterSnowfall
3f7460931a [d3d8] Enforce the pCaps->MaxVertexShaderConst limit on VS creation 2025-03-08 12:41:02 +01:00
WinterSnowfall
e36121bf50 [d3d9] CheckDeviceFormat will error out for Vertex/IndexBuffer RTypes 2025-03-08 12:41:02 +01:00
WinterSnowfall
066fd1bb66 [d3d9] Validate block aligned format mip > 0 dimensions as well 2025-03-08 12:41:02 +01:00
WinterSnowfall
3d0f1583ca [d3d8] Move D3D8 options description into dxvk.conf 2025-03-08 12:41:02 +01:00
WinterSnowfall
ed071005e9 [d3d8/9] Enforce SM1 when in D3D8 compatibility mode 2025-03-08 12:41:02 +01:00
WinterSnowfall
bbdab683a7 [dxvk/d3d9] Adjust/remove several loggers 2025-03-08 12:41:02 +01:00
WinterSnowfall
0527d2ccc5 [d3d8] Validate normals component count for FVF shaders 2025-03-08 12:41:02 +01:00
Philip Rebohle
35e2ee3518 [dxvk] Fix storage image synchronization in graphics shaders
Bit of a derp when stacking the MSAA work on top of the other work.
2025-03-07 22:12:10 +01:00
Philip Rebohle
b6a7e4880d [dxvk] Highlight multisampled render passes when debugging 2025-03-07 20:35:32 +01:00
Philip Rebohle
84f2939b55 [dxvk] Also try to use render pass resolves on desktop drivers
Elides redundant back-to-back resolves in some games, and reduces
some barrier spam when the app resolves multiple images.
2025-03-07 20:35:32 +01:00
Philip Rebohle
7503a66789 [dxvk] Always use SAMPLE_ZERO for implicit resolves 2025-03-07 20:35:32 +01:00
Philip Rebohle
be213e46f9 [dxvk] Refactor resolve shaders
Removes some code duplication while adding support for non-AVERAGE
resolves for plain color images.

Also nuke the AMD path since it is no longer used.
2025-03-07 20:35:32 +01:00
Philip Rebohle
bd2b8cb823 [dxvk] Always prefer render pass resolves
Current AMDVLK has faster render pass resolves than what we can do
with fmask, and our render pass resolve path can deal with all types
of color images now if we pass the correct resolve mode.

Keep the fb path for non-standard depth resolve modes as well as
swapchain blits with composition, but otherwise there is no reason
to use this path by default anymore.
2025-03-07 20:35:32 +01:00
Philip Rebohle
d60afd449f [dxvk] Use latched image view properties when possible
Reduces pointer chasing.
2025-03-07 20:35:32 +01:00
Philip Rebohle
c100d30bef [dxvk] Add implicit resolve when app tries to sample multisampled image 2025-03-07 20:35:32 +01:00
Philip Rebohle
b5ea78479e [dxvk] Refactor depth-stencil resolve to also work on color images 2025-03-07 20:35:32 +01:00
Philip Rebohle
bb1debc00e [dxvk] Add flag to avoid dedicated allocations for short-lived images 2025-03-07 20:35:32 +01:00
Philip Rebohle
b184359a3f [dxvk] Add flag to avoid creating dedicated allocations 2025-03-07 20:35:32 +01:00
Philip Rebohle
52a27ac4b5 [dxvk] Store various image properties inside the view 2025-03-07 20:35:32 +01:00
Philip Rebohle
d3e6634d0a [dxvk] Add binding flag for multisampled images 2025-03-07 20:35:32 +01:00
Philip Rebohle
34e5cc2aca [dxvk] Add separate flag to forcibly end a render pass
Otherwise, if the app binds the same set of render targets again,
the dirty framebuffer flag will get cleared.
2025-03-07 20:35:32 +01:00
Philip Rebohle
91cde7f9b9 [d3d9] Remove double presents with SyncInterval > 1 2025-03-07 20:32:32 +01:00
Philip Rebohle
9597acc224 [util] Add missing returns to small_vector 2025-03-07 16:15:42 +01:00
Philip Rebohle
3558b4c3da [dxvk] Do not dirty the pipeline when starting the render pass
Redundant, since the pipeline update happens outside of a render pass
anyway and thus does not record any Vulkan commands.

All other state should still be dirtied since we might use secondary
command buffers for render passes.
2025-03-07 13:07:32 +01:00
Philip Rebohle
659205b5a6 [dxvk] Fix tracking of graphics pipeline side effects inside a render pass
Previously, we wouldn't track the first draw correctly in all cases because
the side effect flag would get reset when ending a previous render pass.
2025-03-07 12:43:31 +01:00
Philip Rebohle
720a62a7ba [dxbc] Generalize invariant stores to cover constant stores 2025-03-07 12:43:31 +01:00
Philip Rebohle
d729567e7a [dxvk] Refactor AccessOp
Allows us to do some more fun stuff with it going forward.
2025-03-07 12:43:31 +01:00
Philip Rebohle
a08579e555 [dxvk] Fix clear after late resolve 2025-03-06 09:54:34 +01:00
Philip Rebohle
45ec01a0a1 [d3d11] Add TRANSFER_SRC usage to icb
Needed for defrag.
2025-03-06 09:54:34 +01:00
Philip Rebohle
542e0d2ab0 [dxvk,d3d9,d3d11] Decouple ID3DUserDefinedAnnotation from internal markers
Some games nope out when we expose debug markers, so add a debug mode
that doesn't while still providing internal markers and debug names.
2025-03-06 09:54:34 +01:00
Philip Rebohle
91b48dd31d [d3d11] Make user defined annotation more robust 2025-03-06 09:54:34 +01:00
GranMinigun
d8eb4d0d66 [util] Spoof vendor ID for CivCity: Rome 2025-03-06 01:25:30 +01:00
Philip Rebohle
f161d9bc7b [dxvk] Fix synchronization on swapchain tear-down 2025-03-05 23:16:28 +01:00
Philip Rebohle
634f38b38d [dxvk] Enable sparse binding features if supported 2025-03-05 23:15:47 +01:00
Philip Rebohle
ff8378be19 [dxvk] Fix uploadImage barriers 2025-03-05 23:15:47 +01:00
Philip Rebohle
ad75fb17cd [dxvk] Fix uploadBuffer barriers 2025-03-05 23:15:47 +01:00
Philip Rebohle
76244812fb [dxvk] Move compressed image initialization to transfer queue
This is relatively common.
2025-03-05 23:15:47 +01:00
Philip Rebohle
9c0dec9f58 [dxvk] Move buffer initialization to transfer queue 2025-03-05 23:15:47 +01:00
Philip Rebohle
a4a5bf5d63 [dxvk] Add helpers for transfer queue release barriers 2025-03-05 23:15:47 +01:00
Philip Rebohle
49f0968f57 [dxvk] Use sparse residency for zero buffer
Saves a small amount of memory since reading from an unbound
buffer will return zero anyway.
2025-03-05 23:15:47 +01:00
Philip Rebohle
ec0deb73da [dxvk] Fix missing zero buffer tracking
Scary.
2025-03-05 23:15:47 +01:00
WinterSnowfall
fed51e6c92 [dxso] Fix uninitialized m_maxDefinedConstant variable 2025-03-05 15:02:11 +01:00
Philip Rebohle
196258111c [dxvk] Be more conservative with CS data alignment
Fixes #4734. Apparently, weak alignment hints are an error rather
than getting ignored.
2025-03-05 13:12:23 +01:00
Philip Rebohle
d04fe1cdc0 [meta] Add some missing documentation to dxvk.conf 2025-03-04 21:49:39 +01:00
Philip Rebohle
3cf453160c [d3d11] Ensure required image usage flags for video blits
Fixes some validation errors.
2025-03-04 21:05:59 +01:00
Philip Rebohle
9769df9dd8 [d3d11] Implement ID3D11On12Device1 2025-03-02 19:21:39 +01:00
Philip Rebohle
106032fa65 [dxvk] Use granular image access tracking in copyImageHw 2025-03-02 14:01:09 +01:00
Philip Rebohle
d2b53b76de [dxvk] Use granular image access tracking in copyBufferToImageHw 2025-03-02 14:01:09 +01:00
Philip Rebohle
02dc403074 [dxvk] Use granular image access tracking in copyImageToBufferCs 2025-03-02 14:01:09 +01:00