virgl: check scanout mask
Otherwise, virgl will report renderable or texturable formats as also scan-out formats. v2: drop host feature check (@kusma) Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
This commit is contained in:
@@ -399,6 +399,7 @@ struct virgl_caps_v2 {
|
||||
uint32_t max_combined_atomic_counter_buffers;
|
||||
uint32_t host_feature_check_version;
|
||||
struct virgl_supported_format_mask supported_readback_formats;
|
||||
struct virgl_supported_format_mask scanout;
|
||||
};
|
||||
|
||||
union virgl_caps {
|
||||
|
||||
@@ -738,6 +738,11 @@ virgl_is_format_supported( struct pipe_screen *screen,
|
||||
return false;
|
||||
}
|
||||
|
||||
if (bind & PIPE_BIND_SCANOUT) {
|
||||
if (!virgl_format_check_bitmask(format, caps->v2.scanout.bitmask, false))
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
* All other operations (sampling, transfer, etc).
|
||||
*/
|
||||
@@ -905,6 +910,7 @@ virgl_create_screen(struct virgl_winsys *vws, const struct pipe_screen_config *c
|
||||
vws->get_caps(vws, &screen->caps);
|
||||
fixup_formats(&screen->caps.caps,
|
||||
&screen->caps.caps.v2.supported_readback_formats);
|
||||
fixup_formats(&screen->caps.caps, &screen->caps.caps.v2.scanout);
|
||||
|
||||
screen->refcnt = 1;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user