Allow specifying the batch directly over what is inferred from passed in
execbuf flags.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursu...@intel.com>
Signed-off-by: Matthew Brost <matthew.br...@intel.com>
---
 drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c 
b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
index 1f1f477e46b4..707e12725f74 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
@@ -3146,6 +3146,7 @@ i915_gem_do_execbuffer(struct drm_device *dev,
                       struct drm_file *file,
                       struct drm_i915_gem_execbuffer2 *args,
                       struct drm_i915_gem_exec_object2 *exec,
+                      int batch_index,
                       struct dma_fence *in_fence,
                       struct dma_fence *exec_fence,
                       struct dma_fence **out_fence)
@@ -3202,6 +3203,9 @@ i915_gem_do_execbuffer(struct drm_device *dev,
 
        GEM_BUG_ON(!eb.lut_size);
 
+       if (batch_index >= 0)
+               eb.batch_index = batch_index;
+
        err = eb_select_context(&eb);
        if (unlikely(err))
                goto err_destroy;
@@ -3429,7 +3433,7 @@ i915_gem_execbuffer2_ioctl(struct drm_device *dev, void 
*data,
                goto err_copy;
        }
 
-       err = i915_gem_do_execbuffer(dev, file, args, exec2_list, in_fence,
+       err = i915_gem_do_execbuffer(dev, file, args, exec2_list, -1, in_fence,
                                     exec_fence, out_fence_p);
 
        /*
-- 
2.28.0

Reply via email to