diff options
author | Thomas Hellstrom <thellstrom@vmware.com> | 2017-11-10 11:25:14 +0100 |
---|---|---|
committer | Thomas Hellstrom <thellstrom@vmware.com> | 2017-11-14 08:46:42 +0100 |
commit | f26e900c44cf45b6ed6077c11999847789f518c1 (patch) | |
tree | f24c3e377361c229ad982ba2da3449d25172ded3 /vmwgfx_kms.c | |
parent | cbb711cfb02e679138a3232696ffd65b6fb2bb0f (diff) |
vmwgfx: Don't cache framebuffer maps
Buffer objects need to be either pinned or reserved while a map is active,
that's not the case here, so avoid caching the framebuffer map.
This will cause increasing mapping activity mainly when we don't do
page flipping.
This fixes occasional garbage filled screens when the framebuffer has been
evicted after the map.
Since in-kernel mapping of whole buffer objects is error-prone on 32-bit
architectures and also quite inefficient, we will revisit this.
Testing done: Disabled proxy surfaces and manually tested normal desktop
usage on a 3D-disabled Ubuntu 16.04.2 vm.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Sinclair Yeh <syeh@vmware.com>
Diffstat (limited to 'vmwgfx_kms.c')
-rw-r--r-- | vmwgfx_kms.c | 6 |
1 files changed, 0 insertions, 6 deletions
diff --git a/vmwgfx_kms.c b/vmwgfx_kms.c index 64e7414..ccc58ec 100644 --- a/vmwgfx_kms.c +++ b/vmwgfx_kms.c @@ -697,7 +697,6 @@ vmw_du_plane_duplicate_state(struct drm_plane *plane) vps->pinned = 0; /* Mapping is managed by prepare_fb/cleanup_fb */ - memset(&vps->guest_map, 0, sizeof(vps->guest_map)); memset(&vps->host_map, 0, sizeof(vps->host_map)); vps->cpp = 0; @@ -760,11 +759,6 @@ vmw_du_plane_destroy_state(struct drm_plane *plane, /* Should have been freed by cleanup_fb */ - if (vps->guest_map.virtual) { - DRM_ERROR("Guest mapping not freed\n"); - ttm_bo_kunmap(&vps->guest_map); - } - if (vps->host_map.virtual) { DRM_ERROR("Host mapping not freed\n"); ttm_bo_kunmap(&vps->host_map); |