[PATCH vkd3d 3/7] vkd3d: Begin and end conditional rendering outside render passes.
Józef Kucia
joseph.kucia at gmail.com
Tue Jun 18 03:07:49 CDT 2019
From: Józef Kucia <jkucia at codeweavers.com>
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 at codeweavers.com>
---
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 4723e7969012..133c23328201 100644
--- a/libs/vkd3d/command.c
+++ b/libs/vkd3d/command.c
@@ -4928,11 +4928,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;
@@ -4944,7 +4947,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;
--
2.21.0
More information about the wine-devel
mailing list