linux/drivers/gpu/drm/vmwgfx
Thomas Hellstrom 40b701707e drm/vmwgfx: Fix cpu updates of coherent multisample surfaces
[ Upstream commit 88509f698c ]

In cases where the dirty linear memory range spans multiple sample sheets
in a surface, the dirty surface region is incorrectly computed.
To do this correctly and in an optimized fashion  we would have to compute
the dirty region of each sample sheet and compute the union of those
regions.

But assuming that cpu writing to a multisample surface is rather a corner
case than a common case, just set the dirty region to the full surface.

This fixes OpenGL piglit errors with SVGA_FORCE_COHERENT=1
and the piglit test:

fbo-depthstencil blit default_fb -samples=2 -auto

Fixes: 9ca7d19ff8 ("drm/vmwgfx: Add surface dirty-tracking callbacks")
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Charmaine Lee <charmainel@vmware.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
Signed-off-by: Zack Rusin <zackr@vmware.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210505035740.286923-4-zackr@vmware.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-07-14 16:56:16 +02:00
..
device_include drm/vmwgfx: Fix cpu updates of coherent multisample surfaces 2021-07-14 16:56:16 +02:00
Kconfig
Makefile
ttm_lock.c
ttm_lock.h
ttm_object.c
ttm_object.h
vmwgfx_binding.c
vmwgfx_binding.h
vmwgfx_blit.c drm/ttm/tt: add wrappers to set tt state. 2020-09-16 09:33:24 +10:00
vmwgfx_bo.c drm/ttm: nuke memory type flags 2020-09-11 13:31:23 +02:00
vmwgfx_cmdbuf_res.c
vmwgfx_cmdbuf.c
vmwgfx_context.c
vmwgfx_cotable.c
vmwgfx_drv.c drm/ttm: remove available_caching 2020-09-15 16:05:19 +02:00
vmwgfx_drv.h drm/ttm: nuke memory type flags 2020-09-11 13:31:23 +02:00
vmwgfx_execbuf.c drm/vmwgfx: Mark a surface gpu-dirty after the SVGA3dCmdDXGenMips command 2021-07-14 16:56:16 +02:00
vmwgfx_fb.c
vmwgfx_fence.c
vmwgfx_fence.h
vmwgfx_fifo.c drm/vmwgfx: don't use ttm bo->offset 2020-06-26 14:00:41 +02:00
vmwgfx_gmr.c
vmwgfx_gmrid_manager.c drm next for 5.10-rc1 2020-10-15 10:46:16 -07:00
vmwgfx_ioctl.c
vmwgfx_irq.c
vmwgfx_kms.c drm/vmwgfx: fix spelling mistake "Cant" -> "Can't" 2020-08-11 03:16:03 +02:00
vmwgfx_kms.h
vmwgfx_ldu.c drm/vmwgfx/ldu: Use drm_mode_config_reset 2020-08-11 03:16:03 +02:00
vmwgfx_marker.c
vmwgfx_mob.c drm/vmwgfx: consolidate ttm object creation and populate 2020-08-06 12:16:22 +10:00
vmwgfx_msg.c objtool: Rename frame.h -> objtool.h 2020-09-10 10:43:13 -05:00
vmwgfx_msg.h
vmwgfx_overlay.c
vmwgfx_page_dirty.c
vmwgfx_prime.c
vmwgfx_reg.h
vmwgfx_resource_priv.h
vmwgfx_resource.c drm/ttm: rename ttm_mem_reg to ttm_resource. 2020-08-06 13:19:21 +10:00
vmwgfx_scrn.c drm/vmwgfx/sou: Use drm_mode_config_reset 2020-08-11 03:16:02 +02:00
vmwgfx_shader.c
vmwgfx_simple_resource.c
vmwgfx_so.c
vmwgfx_so.h
vmwgfx_stdu.c drm/vmwgfx/stdu: Use drm_mode_config_reset 2020-08-11 03:16:02 +02:00
vmwgfx_streamoutput.c
vmwgfx_surface.c drm/vmwgfx: Fix cpu updates of coherent multisample surfaces 2021-07-14 16:56:16 +02:00
vmwgfx_thp.c drm next for 5.10-rc1 2020-10-15 10:46:16 -07:00
vmwgfx_ttm_buffer.c RDMA 5.10 pull request 2020-10-17 11:18:18 -07:00
vmwgfx_ttm_glue.c
vmwgfx_va.c
vmwgfx_validation.c
vmwgfx_validation.h