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

751 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
9decfb34b7 [dxvk] Determine whether a graphics pipeline writes to resources
- Fix missing test for storage texel buffers
2018-10-29 12:12:34 +01:00
Philip Rebohle
ec8559f40a [dxvk] Remove unneeded atomic that holds base pipeline handles
No longer needed because the full pipeline object gets locked anyway.
2018-10-29 12:11:33 +01:00
Philip Rebohle
941db96f79
[dxvk] Remove obsolete DxvkShaderKey constructor 2018-10-25 11:30:02 +02:00
Philip Rebohle
c9ce09e098
[d3d11] Respect xfb metadata when computing shader hash
Closes #733.
2018-10-25 11:28:02 +02:00
Philip Rebohle
db2880acfd
[dxvk] Update blend constants only when they have actually changed
Reduces number of redundant state changes in Resonance of Fate.
2018-10-22 15:35:56 +02:00
Philip Rebohle
254cd8bd06
[dxvk] Optimize image descriptor updates
Avoids unnecessary atomic operations when rendering to a framebuffer
with a depth attachment.
2018-10-15 16:35:40 +02:00
Philip Rebohle
890e5f8c9c
[meta] Release v0.90 2018-10-13 16:31:32 +02:00
Philip Rebohle
3a48092630
[dxvk] Implement transform feedback draw call 2018-10-10 13:05:37 +02:00
Philip Rebohle
929b75a038
[dxvk] Add support for transform feedback queries 2018-10-10 13:05:37 +02:00
Philip Rebohle
4bdf6daa39
[dxvk] Add structure for transform feedback stream queries 2018-10-10 13:05:37 +02:00
Philip Rebohle
3435702719
[dxvk] Add basic support for indexed queries 2018-10-10 13:05:37 +02: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
a27e440272
[dxvk] Detect Xfb and set rasterized stream index 2018-10-10 13:05:37 +02:00
Philip Rebohle
1f135f59ed
[dxvk] Add Xfb API stubs 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
989a10ab88
[dxvk] Enable transform feedback device feature if available
- Enable geometryStreams feature
2018-10-10 13:05:37 +02:00
Philip Rebohle
e27083a04f
[dxvk] Query transform feedback device properties if available 2018-10-10 13:05:37 +02:00
Philip Rebohle
13ecbcaaf5
[dxvk] Enable VK_EXT_transform_feedback 2018-10-10 13:05:37 +02:00
Philip Rebohle
61d56a1732
[dxvk] Add definitions for transform feedback entry points 2018-10-10 13:05:37 +02:00
Philip Rebohle
bf906aa226
[dxvk] Add support for transform feedback access flags 2018-10-10 13:05:37 +02:00
Philip Rebohle
a42f03e32d
[dxbc] Add Xfb structures to DxbcModuleInfo 2018-10-10 10:28:15 +02:00
Philip Rebohle
eff81c7edf
[dxvk] Implement getShader method for graphics pipelines 2018-10-10 10:28:12 +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
eb55325640
[dxvk] Fix missing buffer tracking for indirect draw calls
This is optimized to allow a large number of indirect draws to be
submitted if they all access the same argument buffer, as is the
case in Assassin's Creed Syndicate and Odyssey.
2018-10-07 17:51:44 +02:00
Philip Rebohle
af16461858
[dxvk] Fix missing indirect dispatch barriers and tracking 2018-10-07 17:33:03 +02:00
Philip Rebohle
417b6cb6dc
[dxvk] Reduce CPU overhead of indirect draw calls 2018-10-07 17:09:46 +02:00
Philip Rebohle
09bbb68d98
[meta] Release v0.81 2018-10-05 21:14:11 +02:00
Philip Rebohle
a3bf90f5a3
[vr] Cosmetic code cleanup 2018-10-04 12:30:26 +02:00
Andrew Eikum
bc367fd817
[vr] Load native openvr library on winelib builds 2018-10-04 12:08:12 +02:00
Philip Rebohle
0d9e714d3e
[dxvk] Add discardImage method 2018-10-01 16:54:34 +02:00
Philip Rebohle
da76d74a2d
[dxvk] Minor internal buffer API cleanup 2018-09-30 11:05:20 +02:00
Philip Rebohle
aaaf2c53e0
[dxvk] Don't reset unused bind points
Saves a few CPU cycles when binding resources.
2018-09-29 20:23:00 +02:00
Philip Rebohle
387f41ede5
[dxvk] Make DxvkBuffer destructor explicit
Prevents compiler from inlining massive amounts of code where it's
not needed. This is more consistent with the other classes as well.
2018-09-29 20:19:07 +02:00
Philip Rebohle
33408a8a74
[dxvk] Fix stencil state assignment
Not really important since we don't use stencil anyway,
but we should at least populate the struct correctly.
2018-09-27 21:04:49 +02:00
Philip Rebohle
518ab2ebdd
[dxvk] Refactor resolve ops
Brings this more in line with clear and copy operations, which
both have more than one code path. Also optimizes barriers.
2018-09-27 12:42:20 +02:00
Philip Rebohle
509e6f1abf
[dxvk] Use new meta copy for depth <> color image copies 2018-09-27 11:44:09 +02:00
Philip Rebohle
fad2e13882
[dxvk] Add meta copy code
The current way of copying data between incompatible images is slow
and does not work for multisampled images. This new code implements
a render pass which performs an exact copy of the source data.
2018-09-27 11:44:09 +02:00
Philip Rebohle
c11d492597
[dxvk] Add meta copy shaders
Used to copy between depth and color images.
2018-09-27 11:44:09 +02:00
Philip Rebohle
63d7770870
[dxvk] Flush queued barriers when binding any frame buffer
We need to flush when starting meta render passes as well.
2018-09-25 21:32:21 +02:00
Philip Rebohle
8bcd47d6dc
[dxvk] Simplify pipeline object locking
Any more complex approach is not very useful at the moment
because we have to put a lock around the actual compile
function anyway.
2018-09-25 18:22:58 +02:00
Philip Rebohle
0be291e123
[dxvk] Don't do image-to-buffer copies for multisampled images
Vulkan does not allow this.
2018-09-25 14:37:53 +02:00
Philip Rebohle
ddfa7e40b3
[dxvk] Renove redundant vkDestroyPipeline 2018-09-24 22:54:49 +02:00
Philip Rebohle
a950872c7c
[dxvk] Check whether the vertex binding / attribute count is valid 2018-09-24 16:22:12 +02:00
Philip Rebohle
04ed4273ba
[dxvk] Avoid buffer slice copy when binding index/vertex buffers
Also redesigns getDescriptor to always return the offset.
2018-09-23 20:09:01 +02:00
Philip Rebohle
1c865328d3
[meta] Release v0.80 2018-09-23 19:01:15 +02:00
Philip Rebohle
b49876528a
[dxvk] Enable state cache for compute pipelines
Also cleans up some code to get the design more in line
with how graphics pipelines are handled.
2018-09-23 14:42:03 +02:00
Philip Rebohle
6c8ac9e5f4
[dxvk] Add compute shader support to pipeline state cache 2018-09-23 14:42:03 +02:00
Philip Rebohle
4a72cae1e6
[dxvk] Enable state cache 2018-09-23 14:41:43 +02:00