[Mesa-dev] [PATCH 11/15] anv: add new formats KHR_sampler_ycbcr_conversion
Emil Velikov
emil.l.velikov at gmail.com
Sun Sep 17 13:07:29 UTC 2017
On 15 September 2017 at 23:36, Jason Ekstrand <jason at jlekstrand.net> wrote:
>> --- a/src/intel/vulkan/anv_private.h
>> +++ b/src/intel/vulkan/anv_private.h
>> @@ -2162,12 +2162,22 @@ anv_pipeline_compile_cs(struct anv_pipeline
>> *pipeline,
>> struct anv_format_plane {
>> enum isl_format isl_format:16;
>> struct isl_swizzle swizzle;
>> +
>> + /* Whether this plane contains chroma channels */
>> + bool has_chroma;
>> +
>> + /* For downscaling of YUV planes */
>> + uint8_t denominator_scales[2];
>> +
>> + /* How to map sampled ycbcr planes to a single 4 component element. */
>> + struct isl_swizzle ycbcr_swizzle;
>
>
> I'm getting a bit concerned about how bloated the format table is getting.
> The old table had 184 entries each of which was 32 bits. Now we're looking
> at more like 32 bytes per entry and most of it isn't used for your average
> format. It probably isn't a huge deal but it does seem a bit excessive.
> I'm not quite sure what to do about it though.
>
Couple of ideas:
- have a separate table (map the entries are not sequential) with the
extra plane information
- const struct foo* containing the extra plane information
With the latter anv_format::can_ycbcr becomes
for (unsigned i = 0; i < anv_format::n_planes; i++) {
if (anv_format::anv_format_plane planes[i]->foo)
return true;
}
return false;
-Emil
More information about the mesa-dev
mailing list