diff options
author | Gert Wollny <gert.wollny@collabora.com> | 2019-03-27 09:07:36 +0100 |
---|---|---|
committer | Gert Wollny <gw.fossdev@gmail.com> | 2019-06-21 09:18:04 +0000 |
commit | 8b26c9159ddafe45a1ab25174f438f10a5a8e386 (patch) | |
tree | e2fa5121daf55dd2ccd3889b70bbe23659e0462b | |
parent | a5609f46f54fffa12b218bbe20e918ade026a77c (diff) | |
download | mesa-8b26c9159ddafe45a1ab25174f438f10a5a8e386.tar.gz |
virgl: Add a caps feature check version
When we add new feature checks on the host side that is used to
enable a cap conditionally that was enabled unconditionally before
we might end up with a feature regression when a new mesa version
is used with an old virglrenderer version that doesn't check for
that cap.
To work around this problem add a version id to the caps that corresponds
to the features that are actually checked on the host and check that
version too when enabling the cap.
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Pohsien Wang <pwang@chromium.org>
(cherry-picked from commit a0edceb00dbe4771267615593f416a0dc9ccd52a)
-rw-r--r-- | src/gallium/drivers/virgl/virgl_hw.h | 1 | ||||
-rw-r--r-- | src/gallium/drivers/virgl/virgl_winsys.h | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/src/gallium/drivers/virgl/virgl_hw.h b/src/gallium/drivers/virgl/virgl_hw.h index 7b4c063f353..1c2850526e0 100644 --- a/src/gallium/drivers/virgl/virgl_hw.h +++ b/src/gallium/drivers/virgl/virgl_hw.h @@ -358,6 +358,7 @@ struct virgl_caps_v2 { uint32_t max_atomic_counter_buffers[6]; uint32_t max_combined_atomic_counters; uint32_t max_combined_atomic_counter_buffers; + uint32_t host_feature_check_version; }; union virgl_caps { diff --git a/src/gallium/drivers/virgl/virgl_winsys.h b/src/gallium/drivers/virgl/virgl_winsys.h index 96726b409d9..22d5de1dad1 100644 --- a/src/gallium/drivers/virgl/virgl_winsys.h +++ b/src/gallium/drivers/virgl/virgl_winsys.h @@ -150,5 +150,6 @@ static inline void virgl_ws_fill_new_caps_defaults(struct virgl_drm_caps *caps) caps->caps.v2.max_image_samples = 0; caps->caps.v2.max_compute_work_group_invocations = 0; caps->caps.v2.max_compute_shared_memory_size = 0; + caps->caps.v2.host_feature_check_version = 0; } #endif |