Mesa (master): turnip: fix update_stencil_mask

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Jun 25 03:18:07 UTC 2020


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

Author: Jonathan Marek <jonathan at marek.ca>
Date:   Sat Jun 20 23:34:53 2020 -0400

turnip: fix update_stencil_mask

The previous value was not being cleared, resulting in some dynamic stencil
state failures. Fixes these two tests:

dEQP-VK.dynamic_state.ds_state.stencil_params_advanced
dEQP-VK.dynamic_state.ds_state.stencil_params_basic_1

Fixes: 233610f8cf8d8810 ("turnip: refactor draw states and dynamic states")

Signed-off-by: Jonathan Marek <jonathan at marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5586>

---

 src/freedreno/vulkan/tu_cmd_buffer.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/freedreno/vulkan/tu_cmd_buffer.c b/src/freedreno/vulkan/tu_cmd_buffer.c
index 6b58a154c44..4441e5f725a 100644
--- a/src/freedreno/vulkan/tu_cmd_buffer.c
+++ b/src/freedreno/vulkan/tu_cmd_buffer.c
@@ -2336,9 +2336,9 @@ static void
 update_stencil_mask(uint32_t *value, VkStencilFaceFlags face, uint32_t mask)
 {
    if (face & VK_STENCIL_FACE_FRONT_BIT)
-      *value |= A6XX_RB_STENCILMASK_MASK(mask);
+      *value = (*value & 0xff00) | (mask & 0xff);
    if (face & VK_STENCIL_FACE_BACK_BIT)
-      *value |= A6XX_RB_STENCILMASK_BFMASK(mask);
+      *value = (*value & 0xff) | (mask & 0xff) << 8;
 }
 
 void



More information about the mesa-commit mailing list