Hans-Kristian Arntzen
acae54f037
vkd3d-shader: Add 16-bit feature usage to meta.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-07-23 15:43:13 +02:00
Hans-Kristian Arntzen
423cd2283c
vkd3d: Check for Int16 capability as well as extended subgroup types when exposing 16-bit ops.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-07-23 15:43:13 +02:00
Hans-Kristian Arntzen
171ded524f
dxil-spirv: Update submodule.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-07-23 15:43:10 +02:00
Hans-Kristian Arntzen
6fd564db91
dxil-spirv: Update submodule.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-07-21 16:10:49 +02:00
Hans-Kristian Arntzen
229db9008a
tests: Add test for SV_Barycentrics.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-07-21 14:34:29 +02:00
Hans-Kristian Arntzen
cafe99e223
meta: Update version to 2.4.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-07-08 15:06:39 +00:00
Joshua Ashton
1d23bdbab7
vkd3d: Don't store pointer to QA info when not building with QA
...
This is entirely unnecessary and a waste of space as it will never be used.
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-07-08 16:52:58 +02:00
Joshua Ashton
a53a7f8d7c
vkd3d-shader: Restrict descriptor-qa extras and logic to VKD3D_ENABLE_DESCRIPTOR_QA
...
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-07-08 16:52:58 +02:00
Joshua Ashton
309fc817e8
vkd3d: Fix RT local root signature interface flags
...
This was passing through flags of the root signature not the shader interface flags of it.
Need to get the shader interface flags of the root signature instead.
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-07-08 16:52:58 +02:00
Hans-Kristian Arntzen
9197625fbf
meta: Update CHANGELOG for 2.4.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-07-08 14:50:33 +02:00
Hans-Kristian Arntzen
4ed8931401
tests: Add test for ResolveSubresourceRegion.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-07-08 13:54:05 +02:00
Hans-Kristian Arntzen
29a9ccd356
vkd3d: Basic implementation of ResolveSubresourceRegion.
...
Used by DIRT5.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-07-08 13:54:05 +02:00
Hans-Kristian Arntzen
f3c3e53f7a
vkd3d: Add resolve mode argument to resolve helper.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-07-08 13:54:05 +02:00
Hans-Kristian Arntzen
591d47a6c5
vkd3d: Refactor out ResolveSubresource.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-07-08 13:54:05 +02:00
Hans-Kristian Arntzen
732d1dd234
vkd3d-shader: Reflect patch vertex count for DXIL HS.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-07-07 15:58:45 +02:00
Hans-Kristian Arntzen
4f3b4d1f79
dxil-spirv: Update submodule.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-07-07 15:58:45 +02:00
Hans-Kristian Arntzen
37e8f42f4a
vkd3d: Move patch vertex count to meta struct.
...
Will make it easier to implement for DXIL.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-07-07 15:58:45 +02:00
Hans-Kristian Arntzen
d19821ba84
vkd3d-shader: Change cs_workgroup_size type.
...
DXIL C API takes unsigned* not uint32_t*, avoid potential warnings.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-07-07 15:58:45 +02:00
Hans-Kristian Arntzen
3915090c12
vkd3d: Track depth-stencil image layouts over a command buffer.
...
Goal here is to avoid unnecessary image layout transitions when render
passes toggle depth-stencil PSO states. Since we cannot know which
states a resource is in, we have to be conservative, and assume that
shader reads *could* happen.
The best effort we can do is to detect when writes happen to a DSV
resource. In this scenario, we can deduce that the aspect cannot be
read, since DEPTH_WRITE | RESOURCE state is not allowed.
To make the tracking somewhat sane, we only promote to OPTIMAL if an
entire image's worth of subresources for a given aspect is transitioned.
The common case for depth-stencil images is 1 mip / 1 layer anyways.
Some other changes are required here:
- Instead of common_layout for the depth image, we need to consult the
command list, which might promote the layout to optimal.
- We make use of render pass compatibility rules which state that we can
change attachment reference layouts as well as initial/finalLayout.
To make this change, a pipeline will fill in a
vkd3d_render_pass_compat struct.
- A command list has a dsv_plane_optimal_mask which keeps track
of the plane aspects we have promoted to OPTIMAL, and we know cannot
be read by shaders.
The desired optimal mask is (existing optimal | PSO write).
The initial existing optimal is inherited from the command list's
tracker.
- RTV/DSV/views no longer keep track of VkImageLayout. This is
unnecessary since we always deduce image layout based on context.
Overall, this shows a massive gain in HZD benchmark (RADV, 1440p ultimate, ~16% FPS on RX 6800).
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-07-07 15:45:46 +02:00
Hans-Kristian Arntzen
515ed7fbd1
vkd3d: Make sure memory is available before change image layout.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-07-07 15:45:46 +02:00
Hans-Kristian Arntzen
8f05ac298c
vkd3d: Add implementation for plane optimal tracker.
...
Idea is to keep track of scenarios where we know a resource's aspect is
known to be in a OPTIMAL state. Based on this, we can override the image
layout from the common_layout in order to avoid unnecessary full
barriers.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-07-07 15:45:46 +02:00
Hans-Kristian Arntzen
1288d0f9b1
vkd3d: Remove obsolete all_aspect parameter.
...
For copies, we can always use the intended aspects, since we have
separate DS layouts now.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-07-07 15:31:52 +02:00
Hans-Kristian Arntzen
c29a2d1fa8
tests: Add test for COLOR -> DEPTH copies.
...
Only had DEPTH -> COLOR.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-07-07 15:31:52 +02:00
Hans-Kristian Arntzen
68ce7bd324
vkd3d: Handle separate DS layout for destination copies.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-07-07 15:31:52 +02:00
Hans-Kristian Arntzen
fbe6f4a210
tests: Make sure that we exercise separate DS clears in test suite.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-07-07 15:31:52 +02:00
Hans-Kristian Arntzen
81d472242b
vkd3d: Clear single depth-stencil aspect correctly.
...
When clearing a DSV, we must get aliasing guarantees, so we must
transition away from UNDEFINED. This is only possible when using
separate_ds_layouts and for render pass clears we need to use
renderpass2 mechanisms to do this.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-07-07 15:31:52 +02:00
Hans-Kristian Arntzen
a87d086a39
tests: Update min_lod test with TODO which reflect existing impl.
...
An extension should be able to remove all the TODOs.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-07-07 12:50:23 +02:00
Hans-Kristian Arntzen
35c555c479
vkd3d: Use more correct fallback path for minLODClamp.
...
The clamp is absolute, not relative to baseMip. Also avoids validation
error and potential crash when LODClamp > numLevels.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-07-07 12:50:23 +02:00
Joshua Ashton
a361bcb0f8
tests: Add a test for MinLODClamp
...
Signed-off-by: Joshua Ashton <joshua@froggi.es>
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-07-07 12:20:24 +02:00
Joshua Ashton
61ccdb9037
vkd3d: Make invalid RTV for attachment FIXME_ONCE
...
This spams constantly in Dirt 5.
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-07-07 11:49:18 +02:00
Hans-Kristian Arntzen
cf632186fd
vkd3d: Add workaround for MinLODClamp.
...
Not correct, will need spec additions to handle it properly.
Fixes ground rendering in DIRT 5.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-07-06 16:45:19 +02:00
Hans-Kristian Arntzen
1e4628376f
tests: Add test for VBV stride edge cases.
...
Verifies that AMD native driver behaves oddly with stride < offset
cases.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-07-06 15:29:51 +02:00
Hans-Kristian Arntzen
55bbea5d29
tests: Test depth-stencil discards as well.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-07-02 15:18:16 +02:00
Hans-Kristian Arntzen
3090ae01c1
vkd3d: Support discarding single aspects as required.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-07-02 15:18:16 +02:00
Hans-Kristian Arntzen
398724cd6e
vkd3d: Require VK_KHR_separate_depth_stencil_layouts.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-07-02 15:18:16 +02:00
Hans-Kristian Arntzen
419790ac77
vkd3d: Add wave size workaround for GravityMark.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-07-02 15:15:42 +02:00
Hans-Kristian Arntzen
92c4f861e7
vkd3d-shader: Report CS workgroup size metadata.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-07-02 15:15:42 +02:00
Hans-Kristian Arntzen
17fd01a2c8
dxil-spirv: Update submodule.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-07-02 15:15:42 +02:00
Hans-Kristian Arntzen
7a00e56792
vkd3d: Handle multiple planes in d3d12_resource_get_subresource_count.
...
Separate out an explicit per_plane query for the cases where we need it.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-07-02 14:16:18 +02:00
rochaudhari
be2362268c
vkd3d: Return format2 information for d3d12_device_CheckFeatureSupport
...
Currently only format1 information is being returned for D3D12_FORMAT_SUPPORT.
Signed-off-by: Roshan Chaudhari <rochaudhari@nvidia.com>
2021-07-02 14:07:39 +02:00
Hans-Kristian Arntzen
33edd1b926
tests: Ensure we hit viewport count 0 case in test suite.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-07-01 13:53:19 +02:00
Hans-Kristian Arntzen
3ea20a91ad
vkd3d: Handle zero viewports.
...
This can be used for rasterizer discard, just bind dummy viewport and
scissor.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-07-01 13:53:19 +02:00
Hans-Kristian Arntzen
cb5283b6fb
vkd3d: Allow dynamic vertex stride == 0 to go through.
...
Eliminates all late pipeline compiles in Scarlet Nexus DX12 (and several
other games).
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-06-29 16:00:33 +02:00
Hans-Kristian Arntzen
c1860a1ead
vkd3d: Add VKD3D_CONFIG flags for forcing EXCLUSIVE queue modes.
...
Helps in some cases, but we cannot do this by default :(
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-06-29 12:24:24 +02:00
Joshua Ashton
5e3ec4337b
vkd3d: Fix top-most handling when restoring from fullscreen
...
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-06-25 17:28:35 +02:00
Hans-Kristian Arntzen
ba7c2b7c5f
swapchain: Log window rects for leaving and entering fullscreen.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-06-25 08:01:26 -07:00
Paul Gofman
ca2ae195fb
swapchain: Update original_window_rect in d3d12_swapchain_SetFullscreenState().
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-06-25 08:01:26 -07:00
Hans-Kristian Arntzen
84f4b893ee
swapchain: Use VK_CALL macro.
...
There's a mix and match of vk_procs-> and CALL conventions. Harmonize
this.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-06-25 15:18:27 +02:00
Hans-Kristian Arntzen
b5023bab32
swapchain: Synchronize before resetting blit command buffer.
...
Randomly appears in GravityMark, odd that validation didn't find this in
other cases.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-06-25 15:18:27 +02:00
Hans-Kristian Arntzen
7c80c92304
vkd3d: Use ALLOW_VARYING_SUBGROUP_SIZE flag as appropriate.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-06-25 15:08:53 +02:00