Joshua Ashton
ca634ec484
[dxvk] Add missing {} to border color list
...
Fixes a warning when compiling with Clang
2019-10-06 00:28:19 +02:00
Philip Rebohle
1117daec24
[dxvk] Don't redundantly clear unused vertex strides to zero
...
We're already doing this when setting the input layout, and we
don't touch the strides in other parts of the code. May save
a handful of CPU cycles.
2019-10-05 16:52:26 +02:00
Philip Rebohle
70ef456911
[meta] Release 1.4.2
2019-10-04 21:07:36 +02:00
Philip Rebohle
ab51aac6d7
[dxvk] Implement context-local lookup cache for pipeline objects
...
On hit, looking up a pipeline becomes an extremly cheap O(1) operation,
avoiding a mutex lock and an expensive std::unordered_map lookup. This
works because we don't ever destroy pipeline objects.
2019-09-30 03:42:20 +02:00
Philip Rebohle
35a8cedbc2
[dxvk] Move shader set hash/eq functions into respective structs
...
Makes it easier to use them outside the pipeline manager.
2019-09-30 03:42:20 +02:00
Philip Rebohle
ba5f319809
[dxvk] Use new shader lookup hash in pipeline manager
2019-09-30 02:09:09 +02:00
Philip Rebohle
5115a42b08
[dxvk] Expose key-based lookup hash in DxvkShader
2019-09-30 02:08:09 +02:00
Philip Rebohle
54ff7bf769
[dxvk] Add methods to retrieve shaders from pipeline
2019-09-30 01:54:49 +02:00
Philip Rebohle
d128d776ad
[dxvk] Re-introduce state check for updateFramebuffer
...
Turns out we broke batching render target clears earlier.
2019-09-28 03:29:52 +02:00
Philip Rebohle
6b5d01c934
[meta] Release 1.4.1
2019-09-27 23:03:23 +02:00
Philip Rebohle
a920a7275b
[dxvk] Eliminate some redundant state checks
2019-09-26 14:25:56 +02:00
Philip Rebohle
7cdc402a58
[dxvk] Introduce finalizeDraw
...
May improve code gen by reducing function call overhead, in a
similar way as the duplicated checks in commitGraphicsState do.
2019-09-26 01:31:51 +02:00
Philip Rebohle
51f1d7725c
[dxvk] Store context flags as a 32-bit integer
...
Might improve code generation for 32-bit builds. We currently
have 31 flags and don't expect any new ones to be added.
2019-09-23 23:34:04 +02:00
Philip Rebohle
e8055f81df
[dxvk] Validate primitive topology in pipeline state
2019-09-23 15:19:46 +02:00
Philip Rebohle
2e9a836adb
[dxvk] Handle device lost errors on command submission
2019-09-22 19:06:53 +02:00
Philip Rebohle
f37d4b58b6
[dxvk] Explicitly compare resource use count to zero
...
Fixes MSVC compiler warnings.
2019-09-21 19:04:23 +02:00
Philip Rebohle
21b2a9a078
[meta] Release 1.4
2019-09-21 16:15:37 +02:00
Philip Rebohle
a74eceaf46
[dxvk] Bump state cache version to v6
2019-09-21 14:11:51 +02:00
Philip Rebohle
e253183bc2
[dxvk] Apply spec constants to compute shaders as well
2019-09-21 14:11:51 +02:00
Philip Rebohle
e926ceb9cc
[dxvk] Only time pipeline compile times if requested
...
Avoids some unnecessary calls to high_resolution_clock::now().
2019-09-21 13:10:09 +02:00
Philip Rebohle
6ecb74d2c0
[dxvk] Check if xfb buffers have actually changed on binding
...
We should avoid redundant render pass spilling at all costs.
This affects all games using deferred contexts for rendering
due to their implicit use of ClearState and RestoreState.
2019-09-21 05:13:05 +02:00
Philip Rebohle
1347aeba33
[dxvk] Use separate counters for read/write resource usage
...
It is not unrealistic at all to overflow the 18-bit and 14-bit
counters in modern games, so just use two 32-bit counters instead.
Avoid 64-bit atomics due to poor performance on 32-bit builts.
2019-09-21 02:45:23 +02:00
Philip Rebohle
5b5927dd41
[dxvk] Implement read-write tracking for resources
2019-09-20 01:44:01 +02:00
Philip Rebohle
63183141bc
[dxvk] Implement read/write tracking in lifetime tracker
...
This way we will be able to more accurately determine how a
resource is going to be used by the GPU, and we can also cut
unnecessary atomic operations for non-resource objects.
2019-09-20 01:44:01 +02:00
Philip Rebohle
eb0a492f51
[dxvk] Add initial layout to initImage
...
Allows us to initialize an image from the PREINITIALIZED layout.
2019-09-20 01:44:01 +02:00
Philip Rebohle
4570b34456
[dxvk] Add initial layout to image create info
2019-09-20 01:44:01 +02:00
Joshua Ashton
ebc394218a
[dxvk] Replicate R component of border color for depth compare samplers ( #1194 )
...
Only the red component matters for these samplers -- this lets us pick the best colour based on that alone, as we could get garbage data that doesn't matter in the other components.
2019-09-17 11:15:09 +02:00
Philip Rebohle
e2808309a3
[metæ] Release 1.3.4
2019-09-08 21:03:46 +02:00
Philip Rebohle
2776ef43a3
[meta] Release 1.3.3
2019-08-29 20:56:47 +02:00
Philip Rebohle
473025a93b
[dxvk] Add function to find set bits in binding mask
2019-08-26 23:29:01 +02:00
Philip Rebohle
d2d19b0dec
[dxvk] Add function to set bind mask bit to a given value
2019-08-26 23:29:00 +02:00
Jacek Caban
1981140257
[dxvk] Explicitly include unordered_map in dxvk_renderpass.h
...
When using libstdc++, it's somehow implicitly included, but it's not the case for libc++.
2019-08-26 20:07:58 +02:00
Philip Rebohle
54ca5900e1
[util] Use regular expressions on full exe path to match app profiles
...
This allows us to detect applications with non-unique executable names
or with variable executable names more reliably, and also allows us to
merge profiles for games that have multiple known exe names.
The matching is also no longer case-sensitive.
2019-08-18 17:49:22 +02:00
Philip Rebohle
d38607c9be
[dxvk] Implement depth-stencil resolve
2019-08-13 15:16:09 +02:00
Philip Rebohle
e54dfab471
[dxvk] Support depth-stencil resolve using VK_KHR_depth_stencil_resolve
2019-08-13 15:16:09 +02:00
Philip Rebohle
7e95493fba
[dxvk] Support shader-based depth-stencil resolve
...
Requires VK_EXT_shader_stencil_export for stencil resolves.
2019-08-13 15:16:00 +02:00
Philip Rebohle
a516ca5b85
[dxvk] Add meta shaders for depth-stencil resolve
2019-08-13 14:37:50 +02:00
Philip Rebohle
acf0001fd1
[dxvk] Make device properties accessible from the device
2019-08-13 14:37:50 +02:00
Philip Rebohle
2f15cb7602
[dxvk] Enable VK_KHR_depth_stencil_resolve if available
2019-08-13 12:53:31 +02:00
Philip Rebohle
d127c08487
[dxvk] Enable VK_KHR_create_renderpass2 if available
2019-08-13 12:52:54 +02:00
Philip Rebohle
590834660e
Revert "[dxvk] Use vkCmdUpdateBuffer to clear tiny buffers"
...
This reverts commit 311661e4041e182e9bd6d8a6bd3d168901bb5c87.
This once fixed Far Cry Primal, but now for some reason it
breaks Far Cry Primal. Fixes #1155 .
2019-08-07 05:41:33 +02:00
Philip Rebohle
9fdd7bf789
[meta] Release 1.3.2
2019-08-05 20:38:22 +02:00
Philip Rebohle
a558f82b5f
[dxvk] Implement asynchronous presentation option in the backend
2019-08-04 21:49:55 +02:00
Philip Rebohle
77fde83479
[dxvk] Move some code to where it makes more sense
2019-08-04 21:37:26 +02:00
Philip Rebohle
02d92210ad
[dxvk] Avoid redundant descriptor set updates when binding buffers (v2)
...
We need to check not just the buffer object but also the length of the
bound buffer range, since this information will be written into the
descriptor and cannot be changed via dynamic offsets.
Fixes: f501ebc ('[dxvk] Avoid redundant descriptor set updates when binding buffers')
2019-08-01 21:30:27 +02:00
Philip Rebohle
af15d85baa
[dxvk] Add config option to enable the HUD
2019-08-01 12:37:55 +02:00
Philip Rebohle
4fd41f8550
[dxvk] Don't allow common objects to be reference-counted
2019-07-30 20:06:59 +02:00
Philip Rebohle
65c1e58bd9
[dxvk] Use DxvkObjects to create and pass around common objects
2019-07-30 20:00:38 +02:00
Philip Rebohle
35679d2ba7
[dxvk] Add class that bundles objects shared between device and context
...
Uses lazy initialization for various meta objects.
2019-07-30 20:00:38 +02:00
Philip Rebohle
cfd7033e40
[dxvk] Pass DxvkDevice to DxvkRenderPassPool constructor
2019-07-30 20:00:38 +02:00