From 4f153fcd5cee9d3ffeb45488a0ea83e0a2ff5658 Mon Sep 17 00:00:00 2001 From: Erik Faye-Lund Date: Thu, 28 Mar 2019 19:03:47 +0100 Subject: [PATCH] virgl: stricter usage of compressed 3d textures Using RGTC, ETC1, ETC2 or S3TC for 3D-textures isn't alowed by any of OpenGL 4.6, OpenGL ES 3.2, ARB_texture_compression_rgtc, EXT_texture_compression_rgtc, OES_compressed_ETC1_RGB8_texture, S3_s3tc or EXT_texture_compression_s3tc specifications. So let's not allow any of those compressed 3d-textures at all. It's not going to work once it hits the OpenGL driver in virglrenderer. Signed-off-by: Erik Faye-Lund Reviewed-by: Gurchetan Singh --- src/gallium/drivers/virgl/virgl_screen.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/gallium/drivers/virgl/virgl_screen.c b/src/gallium/drivers/virgl/virgl_screen.c index e2b2712d942..651b73b0eb0 100644 --- a/src/gallium/drivers/virgl/virgl_screen.c +++ b/src/gallium/drivers/virgl/virgl_screen.c @@ -625,6 +625,12 @@ virgl_is_format_supported( struct pipe_screen *screen, target != PIPE_BUFFER) return FALSE; + if ((format_desc->layout == UTIL_FORMAT_LAYOUT_RGTC || + format_desc->layout == UTIL_FORMAT_LAYOUT_ETC || + format_desc->layout == UTIL_FORMAT_LAYOUT_S3TC) && + target == PIPE_TEXTURE_3D) + return FALSE; + if (bind & PIPE_BIND_RENDER_TARGET) { /* For ARB_framebuffer_no_attachments. */ if (format == PIPE_FORMAT_NONE) -- 2.30.2