Philip Rebohle
|
dadc1bc8ff
|
[dxvk] Add dirty tracking for dynamic depth-stencil state
Significantly reduces the number of API calls and potentially
context rolls when switching between different base pipelines.
|
2022-07-16 13:27:55 +02:00 |
|
Philip Rebohle
|
2fabc90f46
|
[dxvk] Add fast path for rasterizer state comparison
|
2022-07-16 13:21:58 +02:00 |
|
Philip Rebohle
|
e2340d7224
|
[dxvk] Fix dual-source blending with multiple bound render targets
We can't write to more than one render target, so zero out the write
mask. Also, normalize blend state for disabled render targets for
good measure.
|
2022-07-15 23:51:04 +02:00 |
|
Philip Rebohle
|
9e7b93b55b
|
[dxvk] Fix infinite recursion caused by rebase derp
|
2022-07-15 19:32:03 +02:00 |
|
Philip Rebohle
|
661a8cd258
|
[dxvk] Be consistent about enabling dynamic blend constants
|
2022-07-15 17:25:39 +02:00 |
|
Philip Rebohle
|
46a596dd84
|
[dxvk] Normalize vertex input state using vertex shader input mask
Filters out unused bindings and attributes when creating Vulkan pipelines.
|
2022-07-15 17:25:39 +02:00 |
|
Philip Rebohle
|
2fee959515
|
[dxvk] Bump state cache format to v15
|
2022-07-15 17:25:39 +02:00 |
|
Philip Rebohle
|
35fad0aa6c
|
[dxvk] Use dynamic vertex strides whenever possible
May reduce the number of pipeline permutations, as well as the overhead
of the bindVertexBuffer call.
|
2022-07-15 17:25:39 +02:00 |
|
Philip Rebohle
|
fc525d5b70
|
[dxvk] Optimize format lookup for simple formats
|
2022-07-15 17:25:34 +02:00 |
|
Philip Rebohle
|
cdf22a4086
|
[dxvk] Rename imageFormatInfo -> lookupFormatInfo
|
2022-07-15 17:25:13 +02:00 |
|
Philip Rebohle
|
5c4b44c97c
|
[dxvk] Correctly detect viewport index or layer exports in DxvkShader
|
2022-07-15 16:12:03 +02:00 |
|
Philip Rebohle
|
c3af42356f
|
[dxbc] Enable SPIR-V 1.6
|
2022-07-15 16:10:16 +02:00 |
|
Philip Rebohle
|
e5c45d4ce0
|
[dxbc] Use StorageBuffer storage class instead of BufferBlock
|
2022-07-15 16:10:16 +02:00 |
|
Philip Rebohle
|
320534cb34
|
[spirv] Automatically track interface variables
|
2022-07-15 16:10:16 +02:00 |
|
Philip Rebohle
|
10c5c17bc1
|
[meta] Build meta shaders against Vulkan 1.2
Silences some validation errors regarding layer export.
|
2022-07-15 16:10:16 +02:00 |
|
Philip Rebohle
|
5ecd11fbd0
|
[meta] Update SPIR-V headers
|
2022-07-15 16:10:16 +02:00 |
|
Philip Rebohle
|
686df3ec1b
|
[dxvk] Don't set scissor and viewport count for meta pipelines
Oversight from when we changed these to be unconditionally dynamic.
Fixes a bunch of validation errors.
|
2022-07-15 16:07:31 +02:00 |
|
Philip Rebohle
|
b59571ab22
|
[dxvk] Explicitly initialize null descriptor structs
There's a weird rule that requires null buffer descriptors to specify
VK_WHOLE_SIZE. Silences a bunch of validation errors in God of War.
|
2022-07-15 15:59:54 +02:00 |
|
Philip Rebohle
|
0f6ba59f16
|
[dxvk] Normalize dynamic depth-stencil state based on bound attachment
We already do the same for monolothic pipelines. SpellForce 3 tries
to write depth with a read-only layout, which is a bad idea.
|
2022-07-14 22:25:59 +02:00 |
|
Philip Rebohle
|
b00d7f35f5
|
[dxvk] Mark more pipeline state as dynamic for base pipelines
Otherwise we might never set depth bias and friends.
|
2022-07-14 21:51:57 +02:00 |
|
Philip Rebohle
|
70a71237cf
|
[dxvk] Always initialize dynamic depth/stencil state
Spec says we must set any dynamic state before making a draw call, there
doesn't seem to be an exception if we don't enable depth or stencil tests.
|
2022-07-14 21:45:22 +02:00 |
|
Philip Rebohle
|
0b59af996a
|
[dxvk] Use dynamic depth bias enable for base pipelines
This is always supported in Vulkan 1.3.
|
2022-07-14 21:35:28 +02:00 |
|
Philip Rebohle
|
d6d7d5137b
|
[dxvk] Drop VK_EXT_4444_formats
These formats are core in Vulkan 1.3 and all relevant drivers support them.
|
2022-07-14 21:21:34 +02:00 |
|
Philip Rebohle
|
f60bdcbcbf
|
[dxvk] Replace VK_EXT_shader_demote_to_helper_invocation with core feature
|
2022-07-14 21:21:34 +02:00 |
|
Philip Rebohle
|
13425eb39b
|
[dxvk] Replace VK_EXT_pipeline_creation_cache_control with core feature
|
2022-07-14 21:21:34 +02:00 |
|
Philip Rebohle
|
7677db3371
|
[dxvk] Replace VK_EXT_extended_dynamic_state with core feature
|
2022-07-14 21:21:34 +02:00 |
|
Philip Rebohle
|
3cfc3e7714
|
[dxvk] Replace VK_KHR_dynamic_rendering with core feature
|
2022-07-14 21:21:34 +02:00 |
|
Philip Rebohle
|
e79a2e8dfa
|
[dxvk] Enable Vulkan 1.3 feature structs
|
2022-07-14 21:21:34 +02:00 |
|
Philip Rebohle
|
1dd3f24b43
|
[dxbc] Drop workarounds for unsupported drivers
|
2022-07-14 21:21:34 +02:00 |
|
Philip Rebohle
|
223a4fd186
|
[d3d9] Always assume RADV has fast mulz support
All supported Mesa version support this.
|
2022-07-14 21:21:34 +02:00 |
|
Philip Rebohle
|
81b89cf31d
|
[dxvk] Simplify Nvidia HVV workaround
We no longer support 465 series drivers, so the check was obsolete.
|
2022-07-14 21:21:34 +02:00 |
|
Philip Rebohle
|
131af0d677
|
[dxvk] Replace VK_KHR_driver_properties with core feature
|
2022-07-14 21:21:34 +02:00 |
|
Philip Rebohle
|
78c5ef88bc
|
[dxvk] Replace VK_KHR_shader_float_controls with core feature
|
2022-07-14 21:21:34 +02:00 |
|
Philip Rebohle
|
000e3cb960
|
[dxvk] Replace VK_KHR_image_format_list with core feature
|
2022-07-14 21:21:34 +02:00 |
|
Philip Rebohle
|
956f293a69
|
[dxvk] Replace VK_KHR_depth_stencil_resolve with core feature
|
2022-07-14 21:21:34 +02:00 |
|
Philip Rebohle
|
b701dd497f
|
[dxvk] Drop VK_KHR_create_renderpass2
|
2022-07-14 21:21:34 +02:00 |
|
Philip Rebohle
|
d657a526ae
|
[dxvk] Replace VK_EXT_shader_viewport_index_layer with core features
And enable them optionally in the backend, since we use this for meta
operations.
|
2022-07-14 21:21:34 +02:00 |
|
Philip Rebohle
|
afdaba6caf
|
[dxvk] Replace VK_KHR_buffer_device_address with core feature
|
2022-07-14 21:21:34 +02:00 |
|
Philip Rebohle
|
0b47297b7d
|
[dxvk] Replace VK_EXT_host_query_reset with core feature
And make it a hard requirement in the backend. We no longer support
the old fallback path for queries anyway.
|
2022-07-14 21:21:34 +02:00 |
|
Philip Rebohle
|
f07ba07ad8
|
[dxvk] Replace VK_KHR_draw_indirect_count with core feature
And enable it optionally in the backend, since we provide the functionality.
|
2022-07-14 21:21:34 +02:00 |
|
Philip Rebohle
|
eee4ac1e91
|
[dxvk] Replace VK_KHR_sampler_mirror_clamp_to_edge with core features
And make it a hard requirement. We're not checking for feature support
anyway and all relevant drivers support this feature anyway.
|
2022-07-14 21:21:34 +02:00 |
|
Philip Rebohle
|
73f313f904
|
[dxvk] Enable Vulkan 1.2 feature structs
|
2022-07-14 21:21:34 +02:00 |
|
Philip Rebohle
|
2774a04195
|
[dxvk] Use VkPhysicalDeviceVulkan11{Features,Properties} where appropriate
|
2022-07-14 21:21:34 +02:00 |
|
Philip Rebohle
|
fd15795a0b
|
[dxvk] Require Vulkan 1.3 adapter
|
2022-07-14 21:21:34 +02:00 |
|
Philip Rebohle
|
6ac5ca3bff
|
[d3d9] Use existing staging buffer implementation for managed uploads
|
2022-07-14 18:22:23 +02:00 |
|
Philip Rebohle
|
f07a6e160c
|
[d3d9] Rework UP buffer allocation
|
2022-07-14 18:22:23 +02:00 |
|
Joshua Ashton
|
e884413c49
|
[dxvk] Don't synchronize device if going for DLL shutdown
All our other threads have been destroyed and we can no longer synchronize with them properly.
Co-authored-by: Paul Gofman <pgofman@codeweavers.com>
|
2022-07-14 17:04:52 +02:00 |
|
Georg Lehmann
|
5ae5476d71
|
[d3d9] Make reported sample counts consistent with DecodeMultiSampleType behavior.
|
2022-07-14 15:32:42 +01:00 |
|
Philip Rebohle
|
9e110cd3e5
|
[d3d9] Fix up unsupported sample counts
|
2022-07-14 14:58:58 +01:00 |
|
Philip Rebohle
|
74a8bfb774
|
[d3d9] Remove CreateConstantBuffer method
|
2022-07-14 15:55:08 +02:00 |
|