linux/drivers/gpu/drm/vmwgfx
Thomas Hellstrom e2fa3a7683 vmwgfx: Fix up query processing
Previously, query results could be placed in any buffer object, but since
we didn't allow pinned buffer objects, query results could be written when
that buffer was evicted, corrupting data in other buffers.

Now, require that buffers holding query results are no more than two pages
large, and allow one single pinned such buffer. When the command submission
code encounters query result structures in other buffers, the queries in the
pinned buffer will be finished using a query barrier for the last hardware
context using the buffer. Also if the command submission code detects
that a new hardware context is used for queries, all queries of the previous
hardware context is also flushed. Currently we use waiting for a no-op
occlusion query as a query barrier for a specific context.

The query buffer is also flushed and unpinned on context destructions,
master drops and before scanout bo placement.

Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2011-10-05 10:17:22 +01:00
..
Kconfig drm/vmwgfx: depends on FB 2010-03-15 10:35:04 +10:00
Makefile vmwgfx: Add screen object support 2011-10-05 10:17:14 +01:00
svga3d_reg.h vmwgfx: Update register files to latest from vmware-sdk 2011-10-05 10:17:08 +01:00
svga_escape.h vmwgfx: Update register files to latest from vmware-sdk 2011-10-05 10:17:08 +01:00
svga_overlay.h vmwgfx: Update register files to latest from vmware-sdk 2011-10-05 10:17:08 +01:00
svga_reg.h vmwgfx: Update register files to latest from vmware-sdk 2011-10-05 10:17:08 +01:00
svga_types.h
vmwgfx_buffer.c vmwgfx: Add dmabuf helper functions for pinning 2011-10-05 10:17:13 +01:00
vmwgfx_dmabuf.c vmwgfx: Fix up query processing 2011-10-05 10:17:22 +01:00
vmwgfx_drv.c vmwgfx: Fix up query processing 2011-10-05 10:17:22 +01:00
vmwgfx_drv.h vmwgfx: Fix up query processing 2011-10-05 10:17:22 +01:00
vmwgfx_execbuf.c vmwgfx: Fix up query processing 2011-10-05 10:17:22 +01:00
vmwgfx_fb.c vmwgfx: minor dmabuf utilities cleanup 2011-10-05 10:17:20 +01:00
vmwgfx_fence.c vmwgfx: Allow reference and unreference of NULL fence objects. 2011-10-05 10:17:21 +01:00
vmwgfx_fence.h vmwgfx: Implement fence objects 2011-09-06 11:51:11 +01:00
vmwgfx_fifo.c vmwgfx: Fix up query processing 2011-10-05 10:17:22 +01:00
vmwgfx_gmr.c vmwgfx: Implement GMR2 2011-09-01 09:39:25 +01:00
vmwgfx_gmrid_manager.c vmwgfx: Restrict number of GMR pages to device limit 2011-09-01 09:38:07 +01:00
vmwgfx_ioctl.c vmwgfx: Add present and readback ioctls 2011-10-05 10:17:17 +01:00
vmwgfx_irq.c vmwgfx: Implement fence objects 2011-09-06 11:51:11 +01:00
vmwgfx_kms.c vmwgfx: Add present and readback ioctls 2011-10-05 10:17:17 +01:00
vmwgfx_kms.h vmwgfx: Add present and readback ioctls 2011-10-05 10:17:17 +01:00
vmwgfx_ldu.c vmwgfx: Add screen object support 2011-10-05 10:17:14 +01:00
vmwgfx_marker.c vmwgfx: Fix confusion caused by using "fence" in various places 2011-09-06 11:48:40 +01:00
vmwgfx_overlay.c vmwgfx: minor dmabuf utilities cleanup 2011-10-05 10:17:20 +01:00
vmwgfx_reg.h drm/vmwgfx: Add DRM driver for VMware Virtual GPU 2009-12-15 08:38:43 +10:00
vmwgfx_resource.c vmwgfx: Fix up query processing 2011-10-05 10:17:22 +01:00
vmwgfx_scrn.c vmwgfx: minor dmabuf utilities cleanup 2011-10-05 10:17:20 +01:00
vmwgfx_ttm_glue.c vmwgfx: Remove the possibility to map the fifo from user-space 2011-09-06 11:48:34 +01:00