diff options
author | Jesse Barnes <jbarnes@virtuousgeek.org> | 2009-12-17 22:05:42 -0500 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2010-01-06 12:39:39 -0500 |
commit | 76446cac68568fc7f5168a27deaf803ed22a4360 (patch) | |
tree | 66e05e6932edd763d75fc7be7c20d4593fe2b35f /drivers/gpu/drm/i915/i915_drv.h | |
parent | c566ec49159b806db95a90fd8f37448376cd0ad2 (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.h | 5 |
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); |
816 | int i915_gem_execbuffer(struct drm_device *dev, void *data, | 816 | int i915_gem_execbuffer(struct drm_device *dev, void *data, |
817 | struct drm_file *file_priv); | 817 | struct drm_file *file_priv); |
818 | int i915_gem_execbuffer2(struct drm_device *dev, void *data, | ||
819 | struct drm_file *file_priv); | ||
818 | int i915_gem_pin_ioctl(struct drm_device *dev, void *data, | 820 | int i915_gem_pin_ioctl(struct drm_device *dev, void *data, |
819 | struct drm_file *file_priv); | 821 | struct drm_file *file_priv); |
820 | int i915_gem_unpin_ioctl(struct drm_device *dev, void *data, | 822 | int i915_gem_unpin_ioctl(struct drm_device *dev, void *data, |
@@ -881,6 +883,9 @@ void i915_gem_shrinker_exit(void); | |||
881 | void i915_gem_detect_bit_6_swizzle(struct drm_device *dev); | 883 | void i915_gem_detect_bit_6_swizzle(struct drm_device *dev); |
882 | void i915_gem_object_do_bit_17_swizzle(struct drm_gem_object *obj); | 884 | void i915_gem_object_do_bit_17_swizzle(struct drm_gem_object *obj); |
883 | void i915_gem_object_save_bit_17_swizzle(struct drm_gem_object *obj); | 885 | void i915_gem_object_save_bit_17_swizzle(struct drm_gem_object *obj); |
886 | bool i915_tiling_ok(struct drm_device *dev, int stride, int size, | ||
887 | int tiling_mode); | ||
888 | bool i915_obj_fenceable(struct drm_device *dev, struct drm_gem_object *obj); | ||
884 | 889 | ||
885 | /* i915_gem_debug.c */ | 890 | /* i915_gem_debug.c */ |
886 | void i915_gem_dump_object(struct drm_gem_object *obj, int len, | 891 | void i915_gem_dump_object(struct drm_gem_object *obj, int len, |