From 52f83dce059eca0f53b23107c54e9a7a444e5835 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Sun, 24 Apr 2022 22:18:51 -0400 Subject: [PATCH] radeonsi: don't report R64_*INT as a sampler format because it doesn't work Reviewed-by: Pierre-Eric Pelloux-Prayer Part-of: --- src/gallium/drivers/radeonsi/si_state.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/radeonsi/si_state.c b/src/gallium/drivers/radeonsi/si_state.c index 5cc84f6edc1..441c1769d49 100644 --- a/src/gallium/drivers/radeonsi/si_state.c +++ b/src/gallium/drivers/radeonsi/si_state.c @@ -2113,6 +2113,12 @@ static unsigned si_tex_dim(struct si_screen *sscreen, struct si_texture *tex, un static bool si_is_sampler_format_supported(struct pipe_screen *screen, enum pipe_format format) { struct si_screen *sscreen = (struct si_screen *)screen; + const struct util_format_description *desc = util_format_description(format); + + /* Samplers don't support 64 bits per channel. */ + if (desc->layout == UTIL_FORMAT_LAYOUT_PLAIN && + desc->channel[0].size == 64) + return false; if (sscreen->info.chip_class >= GFX10) { const struct gfx10_format *fmt = &gfx10_format_table[format]; @@ -2121,7 +2127,6 @@ static bool si_is_sampler_format_supported(struct pipe_screen *screen, enum pipe return true; } - const struct util_format_description *desc = util_format_description(format); if (!desc) return false;