X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Famd%2Fvulkan%2Fradv_private.h;h=352072f8ff3f176f4df93889c76083066fcb127e;hb=fc9248e13e20ed49e9e672b6cb82fa5b05c48e61;hp=852dfd259c601db952ab7e8cbd9755ffb0b641c8;hpb=66507cc6563e0f710e5b4553a1048be65eef9559;p=mesa.git diff --git a/src/amd/vulkan/radv_private.h b/src/amd/vulkan/radv_private.h index 852dfd259c6..352072f8ff3 100644 --- a/src/amd/vulkan/radv_private.h +++ b/src/amd/vulkan/radv_private.h @@ -809,7 +809,8 @@ struct radv_descriptor_update_template_entry { uint32_t buffer_offset; /* Only valid for combined image samplers and samplers */ - uint16_t has_sampler; + uint8_t has_sampler; + uint8_t sampler_offset; /* In bytes */ size_t src_offset; @@ -1670,6 +1671,16 @@ radv_init_metadata(struct radv_device *device, struct radv_image *image, struct radeon_bo_metadata *metadata); +union radv_descriptor { + struct { + uint32_t plane0_descriptor[8]; + uint32_t fmask_descriptor[8]; + }; + struct { + uint32_t plane_descriptors[3][8]; + }; +}; + struct radv_image_view { struct radv_image *image; /**< VkImageViewCreateInfo::image */ struct radeon_winsys_bo *bo; @@ -1678,18 +1689,19 @@ struct radv_image_view { VkImageAspectFlags aspect_mask; VkFormat vk_format; unsigned plane_id; + bool multiple_planes; uint32_t base_layer; uint32_t layer_count; uint32_t base_mip; uint32_t level_count; VkExtent3D extent; /**< Extent of VkImageViewCreateInfo::baseMipLevel. */ - uint32_t descriptor[16]; + union radv_descriptor descriptor; /* Descriptor for use as a storage image as opposed to a sampled image. * This has a few differences for cube maps (e.g. type). */ - uint32_t storage_descriptor[16]; + union radv_descriptor storage_descriptor; }; struct radv_image_create_info { @@ -1716,6 +1728,15 @@ void radv_image_view_init(struct radv_image_view *view, VkFormat radv_get_aspect_format(struct radv_image *image, VkImageAspectFlags mask); +struct radv_sampler_ycbcr_conversion { + VkFormat format; + VkSamplerYcbcrModelConversion ycbcr_model; + VkSamplerYcbcrRange ycbcr_range; + VkComponentMapping components; + VkChromaLocation chroma_offsets[2]; + VkFilter chroma_filter; +}; + struct radv_buffer_view { struct radeon_winsys_bo *bo; VkFormat vk_format; @@ -1771,6 +1792,7 @@ radv_image_extent_compare(const struct radv_image *image, struct radv_sampler { uint32_t state[4]; + struct radv_sampler_ycbcr_conversion *ycbcr_sampler; }; struct radv_color_buffer_info { @@ -2041,6 +2063,7 @@ RADV_DEFINE_NONDISP_HANDLE_CASTS(radv_pipeline_layout, VkPipelineLayout) RADV_DEFINE_NONDISP_HANDLE_CASTS(radv_query_pool, VkQueryPool) RADV_DEFINE_NONDISP_HANDLE_CASTS(radv_render_pass, VkRenderPass) RADV_DEFINE_NONDISP_HANDLE_CASTS(radv_sampler, VkSampler) +RADV_DEFINE_NONDISP_HANDLE_CASTS(radv_sampler_ycbcr_conversion, VkSamplerYcbcrConversion) RADV_DEFINE_NONDISP_HANDLE_CASTS(radv_shader_module, VkShaderModule) RADV_DEFINE_NONDISP_HANDLE_CASTS(radv_semaphore, VkSemaphore)