[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