diff --git a/.pick_status.json b/.pick_status.json index 538159977f2..e9148d2c08c 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -404,7 +404,7 @@ "description": "lavapipe: Fix features for nonsubsampled ycbcr formats", "nominated": true, "nomination_type": 2, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "af062126ae1f26b01cad1165a4e31dc40e141b6b", "notes": null diff --git a/src/gallium/frontends/lavapipe/lvp_formats.c b/src/gallium/frontends/lavapipe/lvp_formats.c index 80230c85896..a78407c9952 100644 --- a/src/gallium/frontends/lavapipe/lvp_formats.c +++ b/src/gallium/frontends/lavapipe/lvp_formats.c @@ -146,14 +146,14 @@ lvp_physical_device_get_format_properties(struct lvp_physical_device *physical_d if (ycbcr_info) { if (ycbcr_info->n_planes > 1) features |= VK_FORMAT_FEATURE_DISJOINT_BIT; - else - features |= VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT; + features |= VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT | + VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT; for (uint8_t plane = 0; plane < ycbcr_info->n_planes; plane++) { const struct vk_format_ycbcr_plane *plane_info = &ycbcr_info->planes[plane]; if (plane_info->denominator_scales[0] > 1 || plane_info->denominator_scales[1] > 1) - features |= VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT; + features &= ~VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT; } /* The subsampled formats have no support for linear filters. */