diff options
author | Józef Kucia <jkucia@codeweavers.com> | 2016-10-20 17:38:04 +0300 |
---|---|---|
committer | Józef Kucia <jkucia@codeweavers.com> | 2016-10-20 17:38:04 +0300 |
commit | 278cb0103c33ce0c4bbb120c7536732be94b90ac (patch) | |
tree | 357ef9beb66e28432f7a68fe3e65076d33d33e4a /libs | |
parent | c41ad774deac87b07bd768b2095b51cd1b5d50c1 (diff) |
libs/vkd3d: Add support for D3D12_RESOURCE_STATE_RESOLVE_* barriers.
Diffstat (limited to 'libs')
-rw-r--r-- | libs/vkd3d/command.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/libs/vkd3d/command.c b/libs/vkd3d/command.c index c1d93855..1477e7ae 100644 --- a/libs/vkd3d/command.c +++ b/libs/vkd3d/command.c @@ -988,6 +988,7 @@ static bool vk_barrier_parameters_from_d3d12_resource_state(unsigned int state, return true; case D3D12_RESOURCE_STATE_COPY_DEST: + case D3D12_RESOURCE_STATE_RESOLVE_DEST: *access_mask = VK_ACCESS_TRANSFER_WRITE_BIT; *stage_flags = VK_PIPELINE_STAGE_TRANSFER_BIT; if (image_layout) @@ -995,7 +996,6 @@ static bool vk_barrier_parameters_from_d3d12_resource_state(unsigned int state, return true; case D3D12_RESOURCE_STATE_STREAM_OUT: - case D3D12_RESOURCE_STATE_RESOLVE_DEST: FIXME("Unhandled resource state %#x.\n", state); return false; @@ -1091,15 +1091,18 @@ static bool vk_barrier_parameters_from_d3d12_resource_state(unsigned int state, state &= ~D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT; } - if (state & D3D12_RESOURCE_STATE_COPY_SOURCE) + if (state & (D3D12_RESOURCE_STATE_COPY_SOURCE | D3D12_RESOURCE_STATE_RESOLVE_SOURCE)) { *access_mask |= VK_ACCESS_TRANSFER_READ_BIT; *stage_flags |= VK_PIPELINE_STAGE_TRANSFER_BIT; - state &= ~D3D12_RESOURCE_STATE_COPY_SOURCE; + state &= ~(D3D12_RESOURCE_STATE_COPY_SOURCE | D3D12_RESOURCE_STATE_RESOLVE_SOURCE); } if (state) - FIXME("Unhandled resource state %#x.\n", state); + { + WARN("Invalid resource state %#x.\n", state); + return false; + } return true; } |