summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason Ekstrand <[email protected]>2016-03-04 11:07:27 -0800
committerJason Ekstrand <[email protected]>2016-03-04 12:03:00 -0800
commitd61dcec64dc66fea7f15f296212c68f18fe5aaa0 (patch)
tree55e66384f90afeeaccb86d9f85042667111b6109
parentec18fef88d8a7a1a3541b0d40708a6637412f50e (diff)
anv/clear: Pull the stencil write mask from the pipeline
The stencil write mask wasn't getting set at all so we were using whatever write mask happend to be left over by the application.
-rw-r--r--src/intel/vulkan/anv_meta_clear.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/intel/vulkan/anv_meta_clear.c b/src/intel/vulkan/anv_meta_clear.c
index 227f8f35115..c052b8b11f6 100644
--- a/src/intel/vulkan/anv_meta_clear.c
+++ b/src/intel/vulkan/anv_meta_clear.c
@@ -45,7 +45,8 @@ meta_clear_begin(struct anv_meta_saved_state *saved_state,
anv_meta_save(saved_state, cmd_buffer,
(1 << VK_DYNAMIC_STATE_VIEWPORT) |
(1 << VK_DYNAMIC_STATE_SCISSOR) |
- (1 << VK_DYNAMIC_STATE_STENCIL_REFERENCE));
+ (1 << VK_DYNAMIC_STATE_STENCIL_REFERENCE) |
+ (1 << VK_DYNAMIC_STATE_STENCIL_WRITE_MASK));
cmd_buffer->state.dynamic.viewport.count = 0;
cmd_buffer->state.dynamic.scissor.count = 0;
@@ -193,6 +194,7 @@ create_pipeline(struct anv_device *device,
.sType = VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO,
.dynamicStateCount = 9,
.pDynamicStates = (VkDynamicState[]) {
+ /* Everything except stencil write mask */
VK_DYNAMIC_STATE_VIEWPORT,
VK_DYNAMIC_STATE_SCISSOR,
VK_DYNAMIC_STATE_LINE_WIDTH,
@@ -200,7 +202,6 @@ create_pipeline(struct anv_device *device,
VK_DYNAMIC_STATE_BLEND_CONSTANTS,
VK_DYNAMIC_STATE_DEPTH_BOUNDS,
VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK,
- VK_DYNAMIC_STATE_STENCIL_WRITE_MASK,
VK_DYNAMIC_STATE_STENCIL_REFERENCE,
},
},