aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/i915_drv.h
diff options
context:
space:
mode:
authorJesse Barnes <jbarnes@virtuousgeek.org>2009-12-17 22:05:42 -0500
committerEric Anholt <eric@anholt.net>2010-01-06 12:39:39 -0500
commit76446cac68568fc7f5168a27deaf803ed22a4360 (patch)
tree66e05e6932edd763d75fc7be7c20d4593fe2b35f /drivers/gpu/drm/i915/i915_drv.h
parentc566ec49159b806db95a90fd8f37448376cd0ad2 (diff)
drm/i915: execbuf2 support
This patch adds a new execbuf ioctl, execbuf2, for use by clients that want to control fence register allocation more finely. The buffer passed in to the new ioctl includes a new relocation type to indicate whether a given object needs a fence register assigned for the command buffer in question. Compatibility with the existing execbuf ioctl is implemented in terms of the new code, preserving the assumption that fence registers are required for pre-965 rendering commands. Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org> [ickle: Remove pre-emptive clear_fence_reg()] Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Kristian Høgsberg <krh@bitplanet.net> [anholt: Removed dmesg spam] Signed-off-by: Eric Anholt <eric@anholt.net>
Diffstat (limited to 'drivers/gpu/drm/i915/i915_drv.h')
-rw-r--r--drivers/gpu/drm/i915/i915_drv.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 9a05f1a0102..7eb4ad51034 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -815,6 +815,8 @@ int i915_gem_sw_finish_ioctl(struct drm_device *dev, void *data,
815 struct drm_file *file_priv); 815 struct drm_file *file_priv);
816int i915_gem_execbuffer(struct drm_device *dev, void *data, 816int i915_gem_execbuffer(struct drm_device *dev, void *data,
817 struct drm_file *file_priv); 817 struct drm_file *file_priv);
818int i915_gem_execbuffer2(struct drm_device *dev, void *data,
819 struct drm_file *file_priv);
818int i915_gem_pin_ioctl(struct drm_device *dev, void *data, 820int i915_gem_pin_ioctl(struct drm_device *dev, void *data,
819 struct drm_file *file_priv); 821 struct drm_file *file_priv);
820int i915_gem_unpin_ioctl(struct drm_device *dev, void *data, 822int i915_gem_unpin_ioctl(struct drm_device *dev, void *data,
@@ -881,6 +883,9 @@ void i915_gem_shrinker_exit(void);
881void i915_gem_detect_bit_6_swizzle(struct drm_device *dev); 883void i915_gem_detect_bit_6_swizzle(struct drm_device *dev);
882void i915_gem_object_do_bit_17_swizzle(struct drm_gem_object *obj); 884void i915_gem_object_do_bit_17_swizzle(struct drm_gem_object *obj);
883void i915_gem_object_save_bit_17_swizzle(struct drm_gem_object *obj); 885void i915_gem_object_save_bit_17_swizzle(struct drm_gem_object *obj);
886bool i915_tiling_ok(struct drm_device *dev, int stride, int size,
887 int tiling_mode);
888bool i915_obj_fenceable(struct drm_device *dev, struct drm_gem_object *obj);
884 889
885/* i915_gem_debug.c */ 890/* i915_gem_debug.c */
886void i915_gem_dump_object(struct drm_gem_object *obj, int len, 891void i915_gem_dump_object(struct drm_gem_object *obj, int len,