summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJason Ekstrand <[email protected]>2016-06-21 15:32:09 -0700
committerJason Ekstrand <[email protected]>2016-06-21 16:45:25 -0700
commit35b53c8d47d3a0b53ee2549d73296d5db8e3cca0 (patch)
tree4e65b73d6cd345530d4be741080a8ca3ef61aa37 /src
parent2bfe0c33748b9fd96d48cb93656b6dc643bf024e (diff)
anv/cmd: Dirty descriptor sets when a new pipeline is bound
Ever since c2581a9375ea, the binding table layout has depended on the pipeline. This means that whenever we change pipelines we also need to re-emit binding tables for the new layout. Signed-off-by: Jason Ekstrand <[email protected]> Cc: "12.0" <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/intel/vulkan/genX_cmd_buffer.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/intel/vulkan/genX_cmd_buffer.c b/src/intel/vulkan/genX_cmd_buffer.c
index 8fc09b9d6c2..95f9b48201d 100644
--- a/src/intel/vulkan/genX_cmd_buffer.c
+++ b/src/intel/vulkan/genX_cmd_buffer.c
@@ -512,6 +512,12 @@ genX(cmd_buffer_flush_state)(struct anv_cmd_buffer *cmd_buffer)
anv_batch_emit_batch(&cmd_buffer->batch, &pipeline->batch);
+ /* The exact descriptor layout is pulled from the pipeline, so we need
+ * to re-emit binding tables on every pipeline change.
+ */
+ cmd_buffer->state.descriptors_dirty |=
+ cmd_buffer->state.pipeline->active_stages;
+
/* If the pipeline changed, we may need to re-allocate push constant
* space in the URB.
*/