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

964 Commits

Author SHA1 Message Date
Philip Rebohle
ddde5ee6c2
[dxvk] Support combined image sampler descriptors in the backend 2019-04-03 17:40:05 +02:00
Philip Rebohle
b5f859915a
[dxvk] Properly reset global barrier access flags
Fixes: adaf98bb9d7b73f4e324ee9d9b14049f29cb70fc
2019-04-02 15:05:44 +02:00
Philip Rebohle
6da02c6f56
[dxvk] Fix write access flag for barriers
Fixes: adaf98bb9d7b73f4e324ee9d9b14049f29cb70fc
2019-04-02 15:01:37 +02:00
Philip Rebohle
adaf98bb9d
[dxvk] Use global memory barrier instead of resource barriers if possible
Hardware doesn't support this type of fine-grained synchronization
anyway, so we really don't need the driver to iterate over anything
up to hundreds of structs - except for layout transitions.
2019-04-02 14:48:39 +02:00
Philip Rebohle
67b9b6e1e1
[dxvk] Pull buffer updates out of render passes whenever possible
Instead of ending the render pass and inserting two barriers, we
perform the update and barrier in a dedicated command buffer.

Improves performance in Sekiro by 5-10% depending on resolution and scene.
2019-04-02 13:17:05 +02:00
Philip Rebohle
e59f53abfa
[dxvk] Allow barriers to be recorded into a specific command buffer 2019-04-02 12:14:15 +02:00
Philip Rebohle
2315d55ecc
[dxvk] Rename DxvkCmdBufferFlag -> DxvkCmdBuffer 2019-04-02 12:10:47 +02:00
Philip Rebohle
e395712de7
[dxvk] Add missing feature check for conditional rendering 2019-04-02 04:13:23 +02:00
Philip Rebohle
87dc472a8d
[dxvk] Set empty scissor rect when the app requests empty viewport
Since we cannot set the viewport size to zero, we should set an
empty scissor rect so that rasterization is still effectively
disabled for the given viewport index.

Fixes #813, #957.
2019-04-01 15:45:41 +02:00
Philip Rebohle
8702374bf7
[dxvk] Do not invalidate iterator before disabling queries
Reported-by: Joshua Ashton <joshua@froggi.es>
2019-04-01 02:58:02 +02:00
Philip Rebohle
70510bab9a [dxvk] Introduce extra pipeline state
Provides extra state that will be passed in via spec constants.
Whether or not this state is used is determined by the shaders.
2019-04-01 02:31:32 +02:00
Philip Rebohle
18d2905bf7 [dxvk] Remove unused alphaToOne state
Nothing supports this anyway, so no reason to carry it around.
2019-04-01 02:31:22 +02:00
Philip Rebohle
acdb989cfa
[dxvk] Implement conditional rendering 2019-03-28 10:02:11 +01:00
Philip Rebohle
03f00453ef
[dxvk] Add command list functions for conditional rendering 2019-03-28 10:02:11 +01:00
Philip Rebohle
70520e30aa
[dxvk] Enable conditionalRendering feature if present 2019-03-28 10:02:11 +01:00
Philip Rebohle
8f7e606583
[dxvk] Enable VK_EXT_conditional_rendering if available 2019-03-28 10:02:11 +01:00
Chip Davis
13a6ecadcd [dxvk] Remove needless lambda capture of 'this'. 2019-03-27 21:59:15 +01:00
Chip Davis
7a37d88067 [dxvk] Log vertex attributes and buffers when logging pipeline state.
This was invaluable in diagnosing a missing feature from MoltenVK.
2019-03-27 21:59:03 +01:00
Philip Rebohle
edd63d3972
[dxvk] Fix buffer offset in copyDepthStencilImageToPackedBuffer 2019-03-27 14:23:58 +01:00
Philip Rebohle
03881dde72
[dxvk] Implement blitImage function 2019-03-27 02:31:04 +01:00
Philip Rebohle
b3ea1b02eb
[dxvk] Implement depth-stencil upload via temporary buffer 2019-03-26 17:54:14 +01:00
Philip Rebohle
0d889e0dcd
[dxvk] Implement depth-stencil unpacking 2019-03-26 17:54:10 +01:00
Philip Rebohle
de45ffd749
[dxvk] Create depth-stencil unpacking pipelines 2019-03-26 16:05:27 +01:00
Philip Rebohle
7124c3f449
[dxvk] Add depth-stencil unpacking shaders 2019-03-26 16:05:27 +01:00
Philip Rebohle
90c7878a53
[dxvk] Rename dxvk_resolve_{vert|geom} -> dxvk_copy_{vert|geom} 2019-03-25 18:22:56 +01:00
Philip Rebohle
7627f6e3ed
[dxvk] Optimize meta copy barriers 2019-03-25 17:58:31 +01:00
Philip Rebohle
fd0daa5ec7
[dxvk] Optimize meta geometry shaders 2019-03-25 17:58:25 +01:00
Philip Rebohle
73bb0d8ae2 [dxvk] Remove shader-based resolve
No longer necessary since we're using render pass resolve now.
2019-03-24 16:36:35 +01:00
Philip Rebohle
75ee1f42c2
[dxvk] Use resolve attachment for meta-resolve ops
Faster than the naive fragment shader-based solution.
2019-03-19 11:45:56 +01:00
Philip Rebohle
209248e26d [dxvk] Use vkResetQueryPoolEXT to reset individual queries
This is much faster than the fallback path which uses GPU functions.
2019-03-17 16:25:00 +01:00
Philip Rebohle
3d53f318fd [dxvk] Enable hostQueryReset device feature if available 2019-03-17 16:24:59 +01:00
Philip Rebohle
9dd9f0ab22 [dxvk] Enable VK_EXT_host_query_reset if available 2019-03-17 16:24:59 +01:00
Philip Rebohle
412d79c8c1
[d3d11] Use new query implementation 2019-03-14 21:16:41 +01:00
Philip Rebohle
e5441e841f
[dxvk] Support new query implementation 2019-03-14 21:16:41 +01:00
Philip Rebohle
a8144370c8
[dxvk] Create new query pool and forward it to the context 2019-03-14 21:16:41 +01:00
Philip Rebohle
772fa3074f
[dxvk] Add new query implementation 2019-03-14 21:16:41 +01:00
Philip Rebohle
3dbd755075
[dxvk] Implement method to signal GPU events 2019-03-14 21:16:41 +01:00
Philip Rebohle
6b9653d261
[dxvk] Create GPU event pool and forward it to the context 2019-03-14 21:16:41 +01:00
Philip Rebohle
4da89ccc48
[dxvk] Add GPU event class
GPU events allow for finer-grained CPU<>GPU synchronization than
the current approach, so we should change our implementation.
2019-03-14 21:16:38 +01:00
Philip Rebohle
7fa2fb5188
[meta] Release 1.0.1 2019-03-14 19:07:18 +01:00
Philip Rebohle
f272071d8d
[dxvk] Don't enforce HOST_CACHED flag when allocating memory
The better fix would be to support non-coherent memory properly,
but this will have to do for now. Fixes #947.
2019-03-14 16:47:17 +01:00
Philip Rebohle
a40d8d49ea
[dxvk] Only enable xfb subpass barrier if feature is enabled
Silences validation errors when running FL9_x applications, or
a driver which does not support VK_EXT_transform_feedback.
2019-03-02 19:56:01 +01:00
Philip Rebohle
d9edb16b75
[dxvk] Use getShaderPipelineStages for dummy resource creation
Fixes some validation errors for FL10_x and FL9_x applications.
2019-03-02 19:56:01 +01:00
Philip Rebohle
2a6d4fa2ba
[dxvk] Implement DxvkDevice::getShaderPipelineStages 2019-03-02 19:56:00 +01:00
Philip Rebohle
10140f40ca
[dxvk] Release 1.0 2019-02-25 20:26:50 +01:00
Philip Rebohle
b65520d627
[dxvk] Fix feature query for vertex attribute divisor 2019-02-20 11:47:15 +01:00
Philip Rebohle
9159401b14
[dxvk] Use depthClipEnable during graphics pipeline creation
Fall back to previous behaviour if the feature is not available.
2019-02-19 14:22:36 +01:00
Philip Rebohle
49965fd79e
[dxvk] Enable depthClipEnable feature if available 2019-02-19 13:57:34 +01:00
Philip Rebohle
cc5ac885f5
[dxvk] Enable VK_EXT_depth_clip_enable if available 2019-02-19 13:53:56 +01:00
Andrew Sheldon
be22756d2a Update DXVK_FILTER_DEVICE_NAME to support matching substrings
Why? RADV device names include the LLVM version, which means that on every LLVM
upgrade, the device name needs to be changed to match. This change allows setting
something like "AMD RADV VEGA10" which should remain persistent over time.
2019-02-17 08:32:03 +01:00