1
0
mirror of https://github.com/EduApps-CDG/OpenDX synced 2024-12-30 09:45:37 +01:00

29 Commits

Author SHA1 Message Date
Philip Rebohle
0245273ab7
[dxvk] Remove store op from render pass ops
This is always going to be VK_ATTACHMENT_STORE_OP_STORE anyway.
2020-05-02 11:36:32 +02:00
Philip Rebohle
94077ed42b
[dxvk] Reintroduce EXTERNAL->0 subpass dependency
Ensures that the layout transition happens at the right time, and
otherwise relaxes the barrier since it is assumed that the backend
will emit barriers with the appropriate as necessary.
2020-05-02 11:36:32 +02:00
Philip Rebohle
9361f19da6
[dxvk] Fix uninitialized depth attachment reference
Also don't redundantly null color attachment refs for cosmetic reasons.
2019-10-26 23:37:46 +02:00
Philip Rebohle
0a5b427ded
[dxvk] Add function to insert framebuffer read-back barriers
Required for some D3D9 content.
2019-10-13 02:00:10 +02:00
Philip Rebohle
c5676d3108
[dxvk] Remove incorrect framebuffer-space barriers
We're technically required to use VK_DEPENDENCY_BY_REGION_BIT,
but that isn't actually good enough.
2019-10-12 23:54:54 +02:00
Philip Rebohle
cfd7033e40
[dxvk] Pass DxvkDevice to DxvkRenderPassPool constructor 2019-07-30 20:00:38 +02:00
Philip Rebohle
13bc3df92f
[dxvk] Refactor render pass objects to not use reference counting
Like pipeline objects, we keep these around anyway so there's no
reason to add ref count overhead. Also use a hash map to perform
the lookup.
2019-07-30 13:13:02 +02:00
Philip Rebohle
5b90b6a7ce
[dxvk] Make external subpass dependencies part of DxvkRenderPassOps
This will allow us to use finer-grained synchronization around certain
meta operations involving render targets, such as clears.
2019-01-22 20:13:43 +01:00
Philip Rebohle
76b63efedb
[dxvk] Use self-dependency to synchronize SSBO writes
While this doesn't support vertex stages yet, it should be faster
when the pipeline writes to storage resources from the fragment
shader.

We should analyze the vertex stage shaders for SSBO writes in
order to determine whether to spill the render pass.
2018-10-30 14:11:27 +01:00
Philip Rebohle
76d917df20
[dxvk] Add xfb counter write -> xfb counter read barrier
- Update xfb counter barrier
2018-10-10 13:05:37 +02:00
Philip Rebohle
93b1b9bc00
[dxvk] Implement transform feedback
Begins transform feedback when rendering with an xfb-enabled
pipeline bound, and ends transform feedback as needed, while
writing back the counters supplied by the app. This does not
yet support transform feedback queries or the draw command.
2018-10-10 13:05:37 +02:00
Philip Rebohle
2caf346fbb
[dxvk] Add access flags to external subpass dependencies again
Apparently we need those to make sure that the initial layout
transition itself is valid. We don't need to add shader access
though, since we cannot access attachments inside shaders.
2018-07-09 11:23:28 +02:00
Philip Rebohle
b789187df5
[dxvk] Fixed external subpass dependencies
Fixes validation errors and some unnecessary cruft. We don't need
visibility operations in the external-to-renderpass dependency
because that part is handled by regular barriers, an execution
dependency is enough (but still required to handle write-after-read.
2018-07-09 10:08:12 +02:00
Philip Rebohle
7fa26f1c87
[d3d11] Implement render pass spilling for UAV rendering
Spilling the render pass should make shader storage buffer/image writes
visible due to how external subpass dependencies are defined. For UAV
rendering, we need to do this when changing the UAVs, even if the render
targets themselves do not change.
2018-06-15 20:49:24 +02:00
Philip Rebohle
3a3b1eda59 [dxvk] Move render pass out of pipeline state vector 2018-05-03 23:48:45 +02:00
Philip Rebohle
cf1358b2f4 [dxvk] Fixed partial depth-stencil clear operations 2018-04-30 21:42:16 +02:00
Philip Rebohle
1bbfe77013 [dxvk] Refactor DxvkFramebuffer and DxvkRenderpass 2018-04-30 15:47:29 +02:00
Philip Rebohle
0f13914ff0
[dxvk] Fixed MSAA issue in render pass info 2018-02-07 13:14:52 +01:00
Philip Rebohle
b31ebbb690
[d3d11] Add support for DSV read-only flags
Games need this in order to use the depth buffer as both
a framebuffer attachment and a shader resource.
2018-02-06 17:31:23 +01:00
Philip Rebohle
226afa96c9
Revert "[dxvk] Use VK_IMAGE_LAYOUT_GENERAL for all render targets"
Actually this did not fix Homefront entirely and causes severe
performance degradation if textures are SHADER_READ_ONLY_OPTIMAL.
2018-01-23 14:19:52 +01:00
Philip Rebohle
21e9173415
[dxvk] Use VK_IMAGE_LAYOUT_GENERAL for all render targets
This is a workaround for rendering issues in some games where render
targets get seemingly randomly cleared for unknown reasons. Fixes
Homefront.
2018-01-23 13:27:41 +01:00
Philip Rebohle
0900dfd0e3
[dxvk] Removed explicit image barriers for render passes
Instead, the color format and layout will now be set in
the render pass description. This slows down render pass
lookups but may improve efficiency and work around driver
bugs.
2018-01-22 19:21:46 +01:00
Philip Rebohle
2ed2d892d6 [dxvk] Optimized resource binding
Fixes a few bottlenecks that were encountered in the Cascading Shadow
Maps demo from the Microsoft SDK. Performance is now slightly better
than wined3d with CSMT, MESA_NO_ERROR and mesa_glthread enabled.
2017-12-20 12:13:08 +01:00
Philip Rebohle
e0df25a7c5 [dxvk] Implemented proper image memory barriers 2017-12-05 13:00:06 +01:00
Philip Rebohle
f924931d2d [general] Removed TRACE calls for now 2017-11-26 14:01:41 +01:00
Philip Rebohle
a47ebd6ed5 [dxvk] Proper blend state and viewport state setup 2017-11-20 15:35:29 +01:00
Philip Rebohle
921abce1b3 [dxvk] Added limit constants 2017-10-14 13:37:40 +02:00
Philip Rebohle
2ee51ea4b2 [dxvk] Added debug tracing 2017-10-11 00:27:33 +02:00
Philip Rebohle
00e63d71a9 Initial commit 2017-10-10 23:32:13 +02:00