summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/i915_gem.c
diff options
context:
space:
mode:
authorOscar Mateo2014-07-24 18:04:22 +0200
committerDaniel Vetter2014-08-11 16:40:57 +0200
commit454afebde873874b939465bfc1a294ac3697c96e (patch)
tree294f87778ab721d43c0094b0d08de7d121efa41a /drivers/gpu/drm/i915/i915_gem.c
parentdrm/i915: Abstract the legacy workload submission mechanism away (diff)
downloadkernel-qcow2-linux-454afebde873874b939465bfc1a294ac3697c96e.tar.gz
kernel-qcow2-linux-454afebde873874b939465bfc1a294ac3697c96e.tar.xz
kernel-qcow2-linux-454afebde873874b939465bfc1a294ac3697c96e.zip
drm/i915/bdw: Skeleton for the new logical rings submission path
Execlists are indeed a brave new world with respect to workload submission to the GPU. In previous version of these series, I have tried to impact the legacy ringbuffer submission path as little as possible (mostly, passing the context around and using the correct ringbuffer when I needed one) but Daniel is afraid (probably with a reason) that these changes and, especially, future ones, will end up breaking older gens. This commit and some others coming next will try to limit the damage by creating an alternative path for workload submission. The first step is here: laying out a new ring init/fini. Signed-off-by: Oscar Mateo <oscar.mateo@intel.com> Reviewed-by: Damien Lespiau <damien.lespiau@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/i915_gem.c')
-rw-r--r--drivers/gpu/drm/i915/i915_gem.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 33a54cbf9a2e..9acb2469116a 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -4741,6 +4741,11 @@ int i915_gem_init(struct drm_device *dev)
dev_priv->gt.init_rings = i915_gem_init_rings;
dev_priv->gt.cleanup_ring = intel_cleanup_ring_buffer;
dev_priv->gt.stop_ring = intel_stop_ring_buffer;
+ } else {
+ dev_priv->gt.do_execbuf = intel_execlists_submission;
+ dev_priv->gt.init_rings = intel_logical_rings_init;
+ dev_priv->gt.cleanup_ring = intel_logical_ring_cleanup;
+ dev_priv->gt.stop_ring = intel_logical_ring_stop;
}
i915_gem_init_userptr(dev);