[Mesa-dev] [PATCH 3/4] radv: add helper for setting a descriptor.

Bas Nieuwenhuizen bas at basnieuwenhuizen.nl
Mon Nov 6 00:58:41 UTC 2017


On Mon, Nov 6, 2017 at 12:44 AM, Dave Airlie <airlied at gmail.com> wrote:
> From: Dave Airlie <airlied at redhat.com>
>
> This is just a simple refactor.
>
> Signed-off-by: Dave Airlie <airlied at redhat.com>
> ---
>  src/amd/vulkan/radv_cmd_buffer.c | 20 ++++++++++++--------
>  src/amd/vulkan/radv_meta.c       |  3 +--
>  src/amd/vulkan/radv_private.h    |  4 ++++
>  3 files changed, 17 insertions(+), 10 deletions(-)
>
> diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c
> index 85d6b57e8ad..80dcf7fe088 100644
> --- a/src/amd/vulkan/radv_cmd_buffer.c
> +++ b/src/amd/vulkan/radv_cmd_buffer.c
> @@ -476,6 +476,14 @@ radv_save_pipeline(struct radv_cmd_buffer *cmd_buffer,
>         radv_emit_write_data_packet(cs, va, 2, data);
>  }
>
> +void radv_set_descriptor(struct radv_cmd_buffer *cmd_buffer,
> +                        struct radv_descriptor_set *set,
> +                        unsigned idx)
> +{
> +       cmd_buffer->state.descriptors[idx] = set;
> +       cmd_buffer->state.descriptors_dirty |= (1u << idx);
> +}

radv_set_descriptor_set? We are binding a set, not a single descriptor.

> +
>  static void
>  radv_save_descriptors(struct radv_cmd_buffer *cmd_buffer)
>  {
> @@ -2319,8 +2327,7 @@ radv_bind_descriptor_set(struct radv_cmd_buffer *cmd_buffer,
>  {
>         struct radeon_winsys *ws = cmd_buffer->device->ws;
>
> -       cmd_buffer->state.descriptors[idx] = set;
> -       cmd_buffer->state.descriptors_dirty |= (1u << idx);
> +       radv_set_descriptor(cmd_buffer, set, idx);
>         if (!set)
>                 return;
>
> @@ -2432,8 +2439,7 @@ void radv_meta_push_descriptor_set(
>                                     radv_descriptor_set_to_handle(push_set),
>                                     descriptorWriteCount, pDescriptorWrites, 0, NULL);
>
> -       cmd_buffer->state.descriptors[set] = push_set;
> -       cmd_buffer->state.descriptors_dirty |= (1u << set);
> +       radv_set_descriptor(cmd_buffer, push_set, set);
>  }
>
>  void radv_CmdPushDescriptorSetKHR(
> @@ -2457,8 +2463,7 @@ void radv_CmdPushDescriptorSetKHR(
>                                     radv_descriptor_set_to_handle(push_set),
>                                     descriptorWriteCount, pDescriptorWrites, 0, NULL);
>
> -       cmd_buffer->state.descriptors[set] = push_set;
> -       cmd_buffer->state.descriptors_dirty |= (1u << set);
> +       radv_set_descriptor(cmd_buffer, push_set, set);
>         cmd_buffer->state.push_descriptors_dirty = true;
>  }
>
> @@ -2481,8 +2486,7 @@ void radv_CmdPushDescriptorSetWithTemplateKHR(
>         radv_update_descriptor_set_with_template(cmd_buffer->device, cmd_buffer, push_set,
>                                                  descriptorUpdateTemplate, pData);
>
> -       cmd_buffer->state.descriptors[set] = push_set;
> -       cmd_buffer->state.descriptors_dirty |= (1u << set);
> +       radv_set_descriptor(cmd_buffer, push_set, set);
>         cmd_buffer->state.push_descriptors_dirty = true;
>  }
>
> diff --git a/src/amd/vulkan/radv_meta.c b/src/amd/vulkan/radv_meta.c
> index 3f57618ad28..dce78cdbe03 100644
> --- a/src/amd/vulkan/radv_meta.c
> +++ b/src/amd/vulkan/radv_meta.c
> @@ -124,8 +124,7 @@ radv_meta_restore(const struct radv_meta_saved_state *state,
>         }
>
>         if (state->flags & RADV_META_SAVE_DESCRIPTORS) {
> -               cmd_buffer->state.descriptors[0] = state->old_descriptor_set0;
> -               cmd_buffer->state.descriptors_dirty |= (1 << 0);
> +               radv_set_descriptor(cmd_buffer, state->old_descriptor_set0, 0);
>         }
>
>         if (state->flags & RADV_META_SAVE_CONSTANTS) {
> diff --git a/src/amd/vulkan/radv_private.h b/src/amd/vulkan/radv_private.h
> index d236588621a..df3e76feb8f 100644
> --- a/src/amd/vulkan/radv_private.h
> +++ b/src/amd/vulkan/radv_private.h
> @@ -1552,6 +1552,10 @@ VkResult radv_alloc_sem_info(struct radv_winsys_sem_info *sem_info,
>                              const VkSemaphore *signal_sems);
>  void radv_free_sem_info(struct radv_winsys_sem_info *sem_info);
>
> +void radv_set_descriptor(struct radv_cmd_buffer *cmd_buffer,
> +                        struct radv_descriptor_set *set,
> +                        unsigned idx);
> +
>  void
>  radv_update_descriptor_sets(struct radv_device *device,
>                              struct radv_cmd_buffer *cmd_buffer,
> --
> 2.14.2
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list