summaryrefslogtreecommitdiff
path: root/vmwgfx_kms.c
diff options
context:
space:
mode:
authorThomas Hellstrom <thellstrom@vmware.com>2017-11-10 11:25:14 +0100
committerThomas Hellstrom <thellstrom@vmware.com>2017-11-14 08:46:42 +0100
commitf26e900c44cf45b6ed6077c11999847789f518c1 (patch)
treef24c3e377361c229ad982ba2da3449d25172ded3 /vmwgfx_kms.c
parentcbb711cfb02e679138a3232696ffd65b6fb2bb0f (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.c6
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);