Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ValveSoftware/vkd3d.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorJózef Kucia <jkucia@codeweavers.com>2016-10-20 17:38:04 +0300
committerJózef Kucia <jkucia@codeweavers.com>2016-10-20 17:38:04 +0300
commit278cb0103c33ce0c4bbb120c7536732be94b90ac (patch)
tree357ef9beb66e28432f7a68fe3e65076d33d33e4a /libs
parentc41ad774deac87b07bd768b2095b51cd1b5d50c1 (diff)
libs/vkd3d: Add support for D3D12_RESOURCE_STATE_RESOLVE_* barriers.
Diffstat (limited to 'libs')
-rw-r--r--libs/vkd3d/command.c11
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;
}