[Mesa-dev] [PATCH 11/15] anv: support VkExternalFormatANDROID in vkCreateSamplerYcbcrConversion
Lionel Landwerlin
lionel.g.landwerlin at intel.com
Tue Dec 11 13:37:47 UTC 2018
On 27/11/2018 10:53, Tapani Pälli wrote:
> If external format is used, we store the external format identifier in
> conversion to be used later when creating VkImageView.
>
> v2: rebase to b43f955037c changes
>
> Signed-off-by: Tapani Pälli <tapani.palli at intel.com>
> ---
> src/intel/vulkan/anv_formats.c | 13 +++++++++++++
> 1 file changed, 13 insertions(+)
>
> diff --git a/src/intel/vulkan/anv_formats.c b/src/intel/vulkan/anv_formats.c
> index 972a6f98620..6e7807579df 100644
> --- a/src/intel/vulkan/anv_formats.c
> +++ b/src/intel/vulkan/anv_formats.c
> @@ -1170,6 +1170,15 @@ VkResult anv_CreateSamplerYcbcrConversion(
> ANV_FROM_HANDLE(anv_device, device, _device);
> struct anv_ycbcr_conversion *conversion;
>
> + /* Search for VkExternalFormatANDROID and resolve the format. */
> + struct anv_format *ext_format = NULL;
> + const struct VkExternalFormatANDROID *ext_info =
> + vk_find_struct_const(pCreateInfo->pNext, EXTERNAL_FORMAT_ANDROID);
> +
> + uint64_t format = ext_info ? ext_info->externalFormat : 0;
> + if (format)
> + ext_format = (struct anv_format *) (uintptr_t) format;
In that if I would add assert(pCreateInfo->format == VK_FORMAT_UNDEFINED);
> +
> assert(pCreateInfo->sType == VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO);
>
> conversion = vk_alloc2(&device->alloc, pAllocator, sizeof(*conversion), 8,
Spec says that we should ignore the value of pCreateInfo->components :
"When creating an external format conversion, the value of|components|is
ignored"
> @@ -1190,6 +1199,10 @@ VkResult anv_CreateSamplerYcbcrConversion(
> conversion->chroma_offsets[1] = pCreateInfo->yChromaOffset;
> conversion->chroma_filter = pCreateInfo->chromaFilter;
>
> + /* Setup external format. */
> + if (ext_format)
> + conversion->format = ext_format;
> +
> bool has_chroma_subsampled = false;
> for (uint32_t p = 0; p < conversion->format->n_planes; p++) {
> if (conversion->format->planes[p].has_chroma &&
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20181211/f6add61b/attachment-0001.html>
More information about the mesa-dev
mailing list