diff --git a/.pick_status.json b/.pick_status.json index 2628a2232f2..5ad13696451 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -472,7 +472,7 @@ "description": "llvmpipe: block weird uses of subsampled formats in buffers", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null }, diff --git a/src/gallium/drivers/llvmpipe/lp_screen.c b/src/gallium/drivers/llvmpipe/lp_screen.c index 3531a36de89..9f38317077d 100644 --- a/src/gallium/drivers/llvmpipe/lp_screen.c +++ b/src/gallium/drivers/llvmpipe/lp_screen.c @@ -822,6 +822,9 @@ llvmpipe_is_format_supported(struct pipe_screen *_screen, format != PIPE_FORMAT_ETC1_RGB8) return false; + if (format_desc->layout == UTIL_FORMAT_LAYOUT_SUBSAMPLED && target == PIPE_BUFFER) + return false; + /* * Everything can be supported by u_format * (those without fetch_rgba_float might be not but shouldn't hit that)