aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gallium/drivers/zink/zink_screen.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c
index 260d4bf90db..86fa16fdba4 100644
--- a/src/gallium/drivers/zink/zink_screen.c
+++ b/src/gallium/drivers/zink/zink_screen.c
@@ -588,9 +588,9 @@ zink_is_format_supported(struct pipe_screen *pscreen,
if (vkformat == VK_FORMAT_UNDEFINED)
return FALSE;
- const struct util_format_description *desc = util_format_description(format);
if (sample_count >= 1) {
VkSampleCountFlagBits sample_mask = vk_sample_count_flags(sample_count);
+ const struct util_format_description *desc = util_format_description(format);
if (util_format_is_depth_or_stencil(format)) {
if (util_format_has_depth(desc)) {
if (bind & PIPE_BIND_DEPTH_STENCIL &&
@@ -651,9 +651,12 @@ zink_is_format_supported(struct pipe_screen *pscreen,
return FALSE;
}
- if (desc->layout == UTIL_FORMAT_LAYOUT_BPTC &&
- !screen->feats.textureCompressionBC)
- return FALSE;
+ if (util_format_is_compressed(format)) {
+ const struct util_format_description *desc = util_format_description(format);
+ if (desc->layout == UTIL_FORMAT_LAYOUT_BPTC &&
+ !screen->feats.textureCompressionBC)
+ return FALSE;
+ }
return TRUE;
}