drm/i915/selftests: Check all blitter engines for client blt
Check all user accessible engines that can blit work with our blitter client. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Matthew Auld <matthew.auld@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20191027225808.19437-3-chris@chris-wilson.co.uk
This commit is contained in:
parent
1f9f6353e8
commit
52aac377e7
@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
#include "i915_selftest.h"
|
#include "i915_selftest.h"
|
||||||
|
|
||||||
|
#include "gt/intel_engine_user.h"
|
||||||
#include "gt/intel_gt.h"
|
#include "gt/intel_gt.h"
|
||||||
|
|
||||||
#include "selftests/igt_flush_test.h"
|
#include "selftests/igt_flush_test.h"
|
||||||
@ -12,10 +13,9 @@
|
|||||||
#include "huge_gem_object.h"
|
#include "huge_gem_object.h"
|
||||||
#include "mock_context.h"
|
#include "mock_context.h"
|
||||||
|
|
||||||
static int igt_client_fill(void *arg)
|
static int __igt_client_fill(struct intel_engine_cs *engine)
|
||||||
{
|
{
|
||||||
struct drm_i915_private *i915 = arg;
|
struct intel_context *ce = engine->kernel_context;
|
||||||
struct intel_context *ce = i915->engine[BCS0]->kernel_context;
|
|
||||||
struct drm_i915_gem_object *obj;
|
struct drm_i915_gem_object *obj;
|
||||||
struct rnd_state prng;
|
struct rnd_state prng;
|
||||||
IGT_TIMEOUT(end);
|
IGT_TIMEOUT(end);
|
||||||
@ -37,7 +37,7 @@ static int igt_client_fill(void *arg)
|
|||||||
pr_debug("%s with phys_sz= %x, sz=%x, val=%x\n", __func__,
|
pr_debug("%s with phys_sz= %x, sz=%x, val=%x\n", __func__,
|
||||||
phys_sz, sz, val);
|
phys_sz, sz, val);
|
||||||
|
|
||||||
obj = huge_gem_object(i915, phys_sz, sz);
|
obj = huge_gem_object(engine->i915, phys_sz, sz);
|
||||||
if (IS_ERR(obj)) {
|
if (IS_ERR(obj)) {
|
||||||
err = PTR_ERR(obj);
|
err = PTR_ERR(obj);
|
||||||
goto err_flush;
|
goto err_flush;
|
||||||
@ -103,6 +103,28 @@ err_flush:
|
|||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int igt_client_fill(void *arg)
|
||||||
|
{
|
||||||
|
int inst = 0;
|
||||||
|
|
||||||
|
do {
|
||||||
|
struct intel_engine_cs *engine;
|
||||||
|
int err;
|
||||||
|
|
||||||
|
engine = intel_engine_lookup_user(arg,
|
||||||
|
I915_ENGINE_CLASS_COPY,
|
||||||
|
inst++);
|
||||||
|
if (!engine)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
err = __igt_client_fill(engine);
|
||||||
|
if (err == -ENOMEM)
|
||||||
|
err = 0;
|
||||||
|
if (err)
|
||||||
|
return err;
|
||||||
|
} while (1);
|
||||||
|
}
|
||||||
|
|
||||||
int i915_gem_client_blt_live_selftests(struct drm_i915_private *i915)
|
int i915_gem_client_blt_live_selftests(struct drm_i915_private *i915)
|
||||||
{
|
{
|
||||||
static const struct i915_subtest tests[] = {
|
static const struct i915_subtest tests[] = {
|
||||||
|
Loading…
Reference in New Issue
Block a user