Module: Mesa
Branch: master
Commit: abdf396cbeaec2bfe9da2fd773d42fa3022ca8b5
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=abdf396cbeaec2bfe9da2fd773d42fa3022ca8b5

Author: Samuel Pitoiset <[email protected]>
Date:   Wed Sep 12 23:20:38 2018 +0200

radv: fix VK_EXT_conditional_rendering visibility

It's actually just the opposite.

This fixes the new Sascha conditionalrender demo.

CC: 18.2 <[email protected]>
Signed-off-by: Samuel Pitoiset <[email protected]>
Reviewed-by: Bas Nieuwenhuizen <[email protected]>

---

 src/amd/vulkan/radv_cmd_buffer.c | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c
index 33b65b9e77..5b2a45f5ce 100644
--- a/src/amd/vulkan/radv_cmd_buffer.c
+++ b/src/amd/vulkan/radv_cmd_buffer.c
@@ -4468,19 +4468,27 @@ void radv_CmdBeginConditionalRenderingEXT(
 {
        RADV_FROM_HANDLE(radv_cmd_buffer, cmd_buffer, commandBuffer);
        RADV_FROM_HANDLE(radv_buffer, buffer, 
pConditionalRenderingBegin->buffer);
-       bool inverted;
+       bool draw_visible = true;
        uint64_t va;
 
        va = radv_buffer_get_va(buffer->bo) + 
pConditionalRenderingBegin->offset;
 
-       inverted = pConditionalRenderingBegin->flags & 
VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT;
+       /* By default, if the 32-bit value at offset in buffer memory is zero,
+        * then the rendering commands are discarded, otherwise they are
+        * executed as normal. If the inverted flag is set, all commands are
+        * discarded if the value is non zero.
+        */
+       if (pConditionalRenderingBegin->flags &
+           VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT) {
+               draw_visible = false;
+       }
 
        /* Enable predication for this command buffer. */
-       si_emit_set_predication_state(cmd_buffer, inverted, va);
+       si_emit_set_predication_state(cmd_buffer, draw_visible, va);
        cmd_buffer->state.predicating = true;
 
        /* Store conditional rendering user info. */
-       cmd_buffer->state.predication_type = inverted;
+       cmd_buffer->state.predication_type = draw_visible;
        cmd_buffer->state.predication_va = va;
 }
 

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to