diff --git a/src/gallium/drivers/zink/zink_format.c b/src/gallium/drivers/zink/zink_format.c index efc8fc595d9..d415542378a 100644 --- a/src/gallium/drivers/zink/zink_format.c +++ b/src/gallium/drivers/zink/zink_format.c @@ -315,7 +315,8 @@ zink_format_is_voidable_rgba_variant(enum pipe_format format) if(desc->block.width != 1 || desc->block.height != 1 || - (desc->block.bits != 32 && desc->block.bits != 64)) + (desc->block.bits != 32 && desc->block.bits != 64 && + desc->block.bits != 128)) return false; if (desc->nr_channels != 4) diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c index bd9cb06199e..29ecfa10984 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -1490,7 +1490,7 @@ zink_is_depth_format_supported(struct zink_screen *screen, VkFormat format) static enum pipe_format emulate_x8(enum pipe_format format) { - /* convert missing X8 variants to A8 */ + /* convert missing Xn variants to An */ switch (format) { case PIPE_FORMAT_B8G8R8X8_UNORM: return PIPE_FORMAT_B8G8R8A8_UNORM; @@ -1516,6 +1516,11 @@ emulate_x8(enum pipe_format format) case PIPE_FORMAT_R16G16B16X16_UNORM: return PIPE_FORMAT_R16G16B16A16_UNORM; + case PIPE_FORMAT_R32G32B32X32_FLOAT: + return PIPE_FORMAT_R32G32B32A32_FLOAT; + case PIPE_FORMAT_R32G32B32X32_SINT: + return PIPE_FORMAT_R32G32B32A32_SINT; + default: return format; }