libs/vkd3d: Add support for D3D12_RESOURCE_STATE_RESOLVE_* barriers.

This commit is contained in:
Józef Kucia 2016-10-20 16:38:04 +02:00
parent c41ad774de
commit 278cb0103c

View File

@ -988,6 +988,7 @@ static bool vk_barrier_parameters_from_d3d12_resource_state(unsigned int state,
return true; return true;
case D3D12_RESOURCE_STATE_COPY_DEST: case D3D12_RESOURCE_STATE_COPY_DEST:
case D3D12_RESOURCE_STATE_RESOLVE_DEST:
*access_mask = VK_ACCESS_TRANSFER_WRITE_BIT; *access_mask = VK_ACCESS_TRANSFER_WRITE_BIT;
*stage_flags = VK_PIPELINE_STAGE_TRANSFER_BIT; *stage_flags = VK_PIPELINE_STAGE_TRANSFER_BIT;
if (image_layout) if (image_layout)
@ -995,7 +996,6 @@ static bool vk_barrier_parameters_from_d3d12_resource_state(unsigned int state,
return true; return true;
case D3D12_RESOURCE_STATE_STREAM_OUT: case D3D12_RESOURCE_STATE_STREAM_OUT:
case D3D12_RESOURCE_STATE_RESOLVE_DEST:
FIXME("Unhandled resource state %#x.\n", state); FIXME("Unhandled resource state %#x.\n", state);
return false; return false;
@ -1091,15 +1091,18 @@ static bool vk_barrier_parameters_from_d3d12_resource_state(unsigned int state,
state &= ~D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT; 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; *access_mask |= VK_ACCESS_TRANSFER_READ_BIT;
*stage_flags |= VK_PIPELINE_STAGE_TRANSFER_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) if (state)
FIXME("Unhandled resource state %#x.\n", state); {
WARN("Invalid resource state %#x.\n", state);
return false;
}
return true; return true;
} }