From 9939712560b124715debe9d7fb19adb1868b66c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B3zef=20Kucia?= Date: Tue, 18 Jun 2019 10:07:49 +0200 Subject: [PATCH] vkd3d: Begin and end conditional rendering outside render passes. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Signed-off-by: Henri Verbeet Signed-off-by: Alexandre Julliard --- libs/vkd3d/command.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/libs/vkd3d/command.c b/libs/vkd3d/command.c index 31a5d203..5b877db1 100644 --- a/libs/vkd3d/command.c +++ b/libs/vkd3d/command.c @@ -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;