[Mesa-dev] [PATCH 1/2] util: Add helpers for iterating over Vulkan extension structs

Iago Toral itoral at igalia.com
Wed Feb 15 07:24:26 UTC 2017


Both patches are:

Reviewed-by: Iago Toral Quiroga <itoral at igalia.com>

On Tue, 2017-02-14 at 16:03 -0800, Jason Ekstrand wrote:
> ---
>  src/util/Makefile.sources |  3 ++-
>  src/util/vk_util.h        | 43
> +++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 45 insertions(+), 1 deletion(-)
>  create mode 100644 src/util/vk_util.h
> 
> diff --git a/src/util/Makefile.sources b/src/util/Makefile.sources
> index a68a5fe..eec0311 100644
> --- a/src/util/Makefile.sources
> +++ b/src/util/Makefile.sources
> @@ -44,7 +44,8 @@ MESA_UTIL_FILES :=	\
>  	u_endian.h \
>  	u_vector.c \
>  	u_vector.h \
> -	vk_alloc.h
> +	vk_alloc.h \
> +	vk_utils.h
>  
>  MESA_UTIL_GENERATED_FILES = \
>  	format_srgb.c
> diff --git a/src/util/vk_util.h b/src/util/vk_util.h
> new file mode 100644
> index 0000000..e0b5d0b
> --- /dev/null
> +++ b/src/util/vk_util.h
> @@ -0,0 +1,43 @@
> +/*
> + * Copyright © 2017 Intel Corporation
> + *
> + * Permission is hereby granted, free of charge, to any person
> obtaining a
> + * copy of this software and associated documentation files (the
> "Software"),
> + * to deal in the Software without restriction, including without
> limitation
> + * the rights to use, copy, modify, merge, publish, distribute,
> sublicense,
> + * and/or sell copies of the Software, and to permit persons to whom
> the
> + * Software is furnished to do so, subject to the following
> conditions:
> + *
> + * The above copyright notice and this permission notice (including
> the next
> + * paragraph) shall be included in all copies or substantial
> portions of the
> + * Software.
> + *
> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> EXPRESS OR
> + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
> MERCHANTABILITY,
> + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO
> EVENT SHALL
> + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES
> OR OTHER
> + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
> ARISING
> + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
> OTHER DEALINGS
> + * IN THE SOFTWARE.
> + */
> +#ifndef VK_UTIL_H
> +#define VK_UTIL_H
> +
> +/* common inlines and macros for vulkan drivers */
> +
> +#include <vulkan/vulkan.h>
> +
> +struct vk_struct_common {
> +    VkStructureType sType;
> +    struct vk_struct_common *pNext;
> +};
> +
> +#define vk_foreach_struct(__iter, __start) \
> +   for (struct vk_struct_common *__iter = (struct vk_struct_common
> *)(__start); \
> +        __iter; __iter = __iter->pNext)
> +
> +#define vk_foreach_struct_const(__iter, __start) \
> +   for (const struct vk_struct_common *__iter = (const struct
> vk_struct_common *)(__start); \
> +        __iter; __iter = __iter->pNext)
> +
> +#endif /* VK_UTIL_H */


More information about the mesa-dev mailing list