summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>2017-05-13 18:05:36 +0200
committerBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>2017-05-13 23:05:25 +0200
commitd4e4c36c7c96d3e38b7f3ce6f3aac9956b6c9df8 (patch)
treebd3eacf912c13c6c23a236d6e28d6e2520f8d449
parent8efaae3e196976dee82c922bf6fd7da0c1e6a5a5 (diff)
radv: Save descriptor set even if vertex buffers are not saved.
Totally independent. Signed-off-by: Bas Nieuwenhuizen <basni@google.com> Reviewed-by: Dave Airlie <airlied@redhat.com> Fixes: 0e6d532d327 "radv/meta: add support for save/restore meta without vertex data."
-rw-r--r--src/amd/vulkan/radv_meta.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/amd/vulkan/radv_meta.c b/src/amd/vulkan/radv_meta.c
index 973316103a..4f359bd6a9 100644
--- a/src/amd/vulkan/radv_meta.c
+++ b/src/amd/vulkan/radv_meta.c
@@ -36,6 +36,7 @@ radv_meta_save_novertex(struct radv_meta_saved_state *state,
uint32_t dynamic_mask)
{
state->old_pipeline = cmd_buffer->state.pipeline;
+ state->old_descriptor_set0 = cmd_buffer->state.descriptors[0];
state->dynamic_mask = dynamic_mask;
radv_dynamic_state_copy(&state->dynamic, &cmd_buffer->state.dynamic,
@@ -50,9 +51,9 @@ radv_meta_restore(const struct radv_meta_saved_state *state,
struct radv_cmd_buffer *cmd_buffer)
{
cmd_buffer->state.pipeline = state->old_pipeline;
+ cmd_buffer->state.descriptors[0] = state->old_descriptor_set0;
+ cmd_buffer->state.descriptors_dirty |= (1u << 0);
if (state->vertex_saved) {
- cmd_buffer->state.descriptors[0] = state->old_descriptor_set0;
- cmd_buffer->state.descriptors_dirty |= (1u << 0);
memcpy(cmd_buffer->state.vertex_bindings, state->old_vertex_bindings,
sizeof(state->old_vertex_bindings));
cmd_buffer->state.vb_dirty |= (1 << RADV_META_VERTEX_BINDING_COUNT) - 1;