vkd3d: Begin and end conditional rendering outside render passes.

The Vulkan spec says:

  "Conditional rendering must also either begin and end inside the same
  subpass of a render pass instance, or must both begin and end outside
  of a render pass instance (i.e. contain entire render pass instances)."

Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Józef Kucia 2019-06-18 10:07:49 +02:00 committed by Alexandre Julliard
parent 18991337b7
commit 9939712560

View File

@ -4941,11 +4941,14 @@ static void STDMETHODCALLTYPE d3d12_command_list_SetPredication(ID3D12GraphicsCo
vk_procs = &list->device->vk_procs;
/* FIXME: Add support for conditional rendering in render passes. */
d3d12_command_list_end_current_render_pass(list);
if (resource)
{
VkConditionalRenderingBeginInfoEXT cond_info;
if (aligned_buffer_offset & (sizeof(UINT64) - 1))
if (aligned_buffer_offset & (sizeof(uint64_t) - 1))
{
WARN("Unaligned predicate argument buffer offset %#"PRIx64".\n", aligned_buffer_offset);
return;
@ -4957,7 +4960,7 @@ static void STDMETHODCALLTYPE d3d12_command_list_SetPredication(ID3D12GraphicsCo
return;
}
FIXME("Predication doesn't support clear and copy commands, "
FIXME_ONCE("Predication doesn't support clear and copy commands, "
"and predication values are treated as 32-bit values.\n");
cond_info.sType = VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT;