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

43 Commits

Author SHA1 Message Date
Philip Rebohle
fd52022fff [dxvk] Spill render pass after draws with storage resources 2018-10-29 12:12:34 +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
52e1671167
[dxvk] Add Xfb context state 2018-10-10 13:05:37 +02:00
Philip Rebohle
781ee00f5c
[dxvk] Refactor indirect draw/dispatch commands
Introduces an OpenGL-style bind point for the argument buffer, which
means we can avoid a lot of unnecessary reference tracking in games
that do a lot of indirect draw calls.

Reduces CPU overhead in Assassin's Creed Odyssey.
2018-10-08 10:23:18 +02:00
Philip Rebohle
826b1245a1
[dxvk] Add context state flags for descriptor set and offset updates 2018-06-22 00:31:56 +02:00
Philip Rebohle
8b4852be16
[dxvk] Make depth bias a dynamic state
Works around an issue with some games not setting the D3D11 depth
bias state correctly, which can result in an excessive number of
pipelines being compiled.
2018-06-06 12:45:45 +02:00
Philip Rebohle
f77392a264
[dxvk] Apply dynamic state at draw time
Changes to the viewport, stencil reference and blend constants are often
coupled with a pipeline state update, so it makes sense to update it later.
2018-05-29 05:03:27 +02:00
Philip Rebohle
5d5be87402 [dxvk] Oprimize render target clear operations
We can save one image layout transition when clearing a render
target by delaying clears until vkCmdBeginRenderPass is called.
2018-04-30 17:04:13 +02:00
Philip Rebohle
1bbfe77013 [dxvk] Refactor DxvkFramebuffer and DxvkRenderpass 2018-04-30 15:47:29 +02:00
Philip Rebohle
1075990dbe [dxvk] Apply render target bindings at draw time
This should help reduce the number of redundant render pass spills,
especially in games which use deferred contexts for rendering. This
optimization mostly helps in GPU-bound scenarios.
2018-04-26 14:47:55 +02:00
Philip Rebohle
9a8263f465
[dxvk] Implement vertex binding divisors
Uses VK_EXT_vertex_attribute_divisor when available.
2018-04-17 17:24:16 +02:00
Philip Rebohle
0c2058e8c4
[dxvk] Introduced DxvkComputePipelineStateInfo
Will be used to re-compile compute pipelines against the current
state, just like graphics pipelines. May fix GPU lockups etc.
2018-02-14 17:54:35 +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
14d5054893
[dxvk] Initial work on instance data fetch rates
Adds a pipeline flag to indicate that instanced
draw calls need to be emulated.
2018-02-01 20:15:25 +01:00
Philip Rebohle
d4a0581f8f
[dxvk] Bind dummy resource for unbound vertex and index buffers
Allows GTA V to run, although heavy rendering artifacts remain.
2018-02-01 13:29:57 +01:00
Philip Rebohle
9fbddf57df
[dxvk] Emit dynamic state after binding a graphics pipeline
Fixes issues with stencil references becoming undefined under
certain circumstances. This issue was encountered in Heroes
of the Storm.
2018-01-29 20:01:49 +01:00
Philip Rebohle
2dd24a14d2
[dxvk] Refactored blend constants
This will make things a little less painful when capturing
blend constants in a lambda function, as required for CSMT.
2018-01-20 15:41:06 +01:00
Philip Rebohle
9c90c1ac00 [dxvk] Optimized pipeline state updates 2018-01-10 20:40:10 +01:00
Philip Rebohle
c64103c73f [dxvk] Implementing unbound resource handling (1/4)
In order to emulate D3D11 behaviour when a resource is not bound,
we use specialization constants. This requires further changes in
the shader compiler.
2018-01-10 11:44:40 +01:00
Philip Rebohle
40241e0b22 [dxvk] DxvkBufferBinding -> DxvkBufferSlice 2017-12-14 15:24:43 +01:00
Philip Rebohle
50b7293b8f [d3d11] Implemented blend state and depth-stencil state binding 2017-12-11 14:11:18 +01:00
Philip Rebohle
4144e3229a [d3d11] Implemented blend state creation 2017-12-11 13:03:07 +01:00
Philip Rebohle
b49815657e [dxvk] Refactored blend state 2017-12-08 01:06:48 +01:00
Philip Rebohle
6a9743ead7 [dxvk] Refactored blend state 2017-12-08 00:51:20 +01:00
Philip Rebohle
84605a1310 [dxvk] Refactored input layout state 2017-12-08 00:44:58 +01:00
Philip Rebohle
385c92db5a [dxvk] Refactoring of most constant state objects 2017-12-08 00:02:43 +01:00
Philip Rebohle
796c200e32 [dxvk] Major refactoring of graphics pipeline state lookup in order to support more dynamic state 2017-12-07 21:47:38 +01:00
Philip Rebohle
ade00add8d [dxvk] Removed buffer stride stuff for now, we need a better solution 2017-12-07 19:28:54 +01:00
Philip Rebohle
a901a85401 [dxvk] Added support for vertex index types 2017-12-07 14:01:17 +01:00
Philip Rebohle
f33acf7334 [dxvk] Modified interface to accept dynamic vertex buffer strides 2017-12-07 11:39:59 +01:00
Philip Rebohle
93c719cadf [dxvk] Reintroduced dirty pipeline state flag 2017-12-07 09:44:45 +01:00
Philip Rebohle
19851c8432 [dxvk] Re-implemented pipeline creation within the backend 2017-12-07 09:38:31 +01:00
Philip Rebohle
b5d068366d [dxvk] Implemented shader resource binding 2017-12-03 20:23:26 +01:00
Philip Rebohle
a6bf7659b0 [dxvk] Refactored shader binding, client APIs must now create pipelines and pipeline layouts 2017-12-03 00:40:58 +01:00
Philip Rebohle
c936709aec [dxvk] Moved context flags out of context state object 2017-12-01 10:27:33 +01:00
Philip Rebohle
ae0c186f26 [dxvk] Implemented constant state objects 2017-11-20 13:21:27 +01:00
Philip Rebohle
745466652c [dxvk] Removed shader resource slots for now, needs work 2017-11-18 10:42:27 +01:00
Philip Rebohle
a84e2eabc2 [dxvk] Restructured state tracker again 2017-11-17 19:49:44 +01:00
Philip Rebohle
e433c01ad4 [dxvk] Some more work on shader resources and resource bindings 2017-10-15 17:56:06 +02:00
Philip Rebohle
921abce1b3 [dxvk] Added limit constants 2017-10-14 13:37:40 +02:00
Philip Rebohle
764220db98 [dxvk] Added shader stub, improved state tracking code 2017-10-13 03:19:23 +02:00
Philip Rebohle
94af8140d2 [dxvk] DxvkContext now supports clears and actual state tracking 2017-10-11 23:29:05 +02:00
Philip Rebohle
00e63d71a9 Initial commit 2017-10-10 23:32:13 +02:00