uint32_t xy_uxvx_image_mask;
uint32_t ayuv_image_mask;
uint32_t xyuv_image_mask;
+ uint32_t bt709_mask;
+ uint32_t bt2020_mask;
/* Scale factor for each texture. */
float scale_factors[32];
tex_options.lower_xy_uxvx_external = key_tex->xy_uxvx_image_mask;
tex_options.lower_ayuv_external = key_tex->ayuv_image_mask;
tex_options.lower_xyuv_external = key_tex->xyuv_image_mask;
+ tex_options.bt709_external = key_tex->bt709_mask;
+ tex_options.bt2020_external = key_tex->bt2020_mask;
/* Setup array of scaling factors for each texture. */
memcpy(&tex_options.scale_factors, &key_tex->scale_factors,
default:
break;
}
+
+ switch (intel_tex->yuv_color_space) {
+ case __DRI_YUV_COLOR_SPACE_ITU_REC709:
+ key->bt709_mask |= 1 << s;
+ break;
+ case __DRI_YUV_COLOR_SPACE_ITU_REC2020:
+ key->bt2020_mask |= 1 << s;
+ break;
+ default:
+ break;
+ }
}
}
struct intel_texture_object *intel_texobj = intel_texture_object(texObj);
intel_texobj->planar_format = image->planar_format;
+ intel_texobj->yuv_color_space = image->yuv_color_space;
GLenum internal_format =
image->internal_format != 0 ?
mesa_format _Format;
const struct intel_image_format *planar_format;
+ unsigned int yuv_color_space;
};