linux/drivers/gpu/drm/vmwgfx
Marek Olšák dfadbbdb57 drm/ttm: add a way to bo_wait for either the last read or last write
Sometimes we want to know whether a buffer is busy and wait for it (bo_wait).
However, sometimes it would be more useful to be able to query whether
a buffer is busy and being either read or written, and wait until it's stopped
being either read or written. The point of this is to be able to avoid
unnecessary waiting, e.g. if a GPU has written something to a buffer and is now
reading that buffer, and a CPU wants to map that buffer for read, it needs to
only wait for the last write. If there were no write, there wouldn't be any
waiting needed.

This, or course, requires user space drivers to send read/write flags
with each relocation (like we have read/write domains in radeon, so we can
actually use those for something useful now).

Now how this patch works:

The read/write flags should passed to ttm_validate_buffer. TTM maintains
separate sync objects of the last read and write for each buffer, in addition
to the sync object of the last use of a buffer. ttm_bo_wait then operates
with one the sync objects.

Signed-off-by: Marek Olšák <maraeo@gmail.com>
Reviewed-by: Jerome Glisse <jglisse@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2011-08-31 19:25:35 +01:00
..
Kconfig drm/vmwgfx: depends on FB 2010-03-15 10:35:04 +10:00
Makefile vmwgfx: Implement a proper GMR eviction mechanism 2010-10-27 11:07:46 +10:00
svga3d_reg.h
svga_escape.h
svga_overlay.h
svga_reg.h
svga_types.h
vmwgfx_buffer.c ttm: Expand (*populate) to support an array of DMA addresses. 2011-01-27 16:07:58 -05:00
vmwgfx_drv.c Revert "ttm: Include the 'struct dev' when using the DMA API." 2011-02-23 14:24:01 +10:00
vmwgfx_drv.h drm/ttm/vmwgfx: Have TTM manage the validation sequence. 2010-11-22 13:25:21 +10:00
vmwgfx_execbuf.c drm/ttm: add a way to bo_wait for either the last read or last write 2011-08-31 19:25:35 +01:00
vmwgfx_fb.c Merge branch 'drm-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 2011-01-10 17:11:39 -08:00
vmwgfx_fence.c drm/vmwgfx: Add kernel throttling support. Bump minor. 2010-06-01 09:37:15 +10:00
vmwgfx_fifo.c Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2010-10-24 13:41:39 -07:00
vmwgfx_gmr.c vmwgfx: Implement a proper GMR eviction mechanism 2010-10-27 11:07:46 +10:00
vmwgfx_gmrid_manager.c vmwgfx: Implement a proper GMR eviction mechanism 2010-10-27 11:07:46 +10:00
vmwgfx_ioctl.c drm/vmwgfx: Add a parameter to get the max fb size 2010-10-06 11:29:58 +10:00
vmwgfx_irq.c drm/vmwgfx: Add kernel throttling support. Bump minor. 2010-06-01 09:37:15 +10:00
vmwgfx_kms.c Fix common misspellings 2011-03-31 11:26:23 -03:00
vmwgfx_kms.h drm/vmwgfx: Allow userspace to change default layout. Bump minor. 2010-06-03 13:13:36 +10:00
vmwgfx_ldu.c drm: Mark constant arrays of drm_display_mode const 2011-02-23 11:13:11 +10:00
vmwgfx_overlay.c drivers: use kzalloc/kcalloc instead of 'kmalloc+memset', where possible 2011-07-25 20:57:13 -07:00
vmwgfx_reg.h drm/vmwgfx: Add DRM driver for VMware Virtual GPU 2009-12-15 08:38:43 +10:00
vmwgfx_resource.c drivers: use kzalloc/kcalloc instead of 'kmalloc+memset', where possible 2011-07-25 20:57:13 -07:00
vmwgfx_ttm_glue.c drivers/gpu/drm: Remove unnecessary casts of private_data 2010-09-23 13:35:26 +02:00