X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgallium%2Fdrivers%2Fvirgl%2Fvirgl_screen.c;h=5dd7f559948c42350719a12f9089344c71d1f267;hb=1e5381f93458dbc4fd6011ff8ad89f71d575332e;hp=e2b2712d942527cc709f6052c83b9c6373c4d2f2;hpb=f53001324f0745c561f55cbabf5b32f63a4617e1;p=mesa.git diff --git a/src/gallium/drivers/virgl/virgl_screen.c b/src/gallium/drivers/virgl/virgl_screen.c index e2b2712d942..5dd7f559948 100644 --- a/src/gallium/drivers/virgl/virgl_screen.c +++ b/src/gallium/drivers/virgl/virgl_screen.c @@ -217,7 +217,8 @@ virgl_get_param(struct pipe_screen *screen, enum pipe_cap param) case PIPE_CAP_CULL_DISTANCE: return vscreen->caps.caps.v1.bset.has_cull; case PIPE_CAP_MAX_VERTEX_STREAMS: - return vscreen->caps.caps.v1.glsl_level >= 400 ? 4 : 1; + return ((vscreen->caps.caps.v2.capability_bits & VIRGL_CAP_TRANSFORM_FEEDBACK3) || + (vscreen->caps.caps.v2.host_feature_check_version < 2)) ? 4 : 1; case PIPE_CAP_CONDITIONAL_RENDER_INVERTED: return vscreen->caps.caps.v1.bset.conditional_render_inverted; case PIPE_CAP_TGSI_FS_FINE_DERIVATIVE: @@ -625,6 +626,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)