diff --git a/device_fixtures.py b/device_fixtures.py
new file mode 100644
index 0000000000000000000000000000000000000000..d0dbc5929dc744a0fed6354f3aa8aa34897bf57c
--- /dev/null
+++ b/device_fixtures.py
@@ -0,0 +1,15 @@
+import pyopencl as cl
+
+
+_QUEUE = []
+
+
+def get_queue(ctx_factory):
+    if not _QUEUE:
+        setup_queue(ctx_factory)
+    return _QUEUE[0]
+
+
+def setup_queue(ctx_factory):
+    ctx = ctx_factory()
+    _QUEUE.append(cl.CommandQueue(ctx))
diff --git a/fixtures.py b/fixtures.py
index febd232ec9f031ab9d734868c0e2c56145cc73dd..6bb5c43fafc6ddf6de013200d254206718c47e1f 100644
--- a/fixtures.py
+++ b/fixtures.py
@@ -7,9 +7,9 @@ import loopy as lp
 
 from pytest import approx
 
+from device_fixtures import get_queue
 
 _WENO_PRG = []
-_QUEUE = []
 
 def get_gpu_transformed_weno():
     prg = get_weno_program()
@@ -56,12 +56,6 @@ def get_gpu_transformed_weno():
     return prg
 
 
-def get_queue(ctx_factory):
-    if not _QUEUE:
-        ctx = ctx_factory()
-        _QUEUE.append(cl.CommandQueue(ctx))
-    return _QUEUE[0]
-
 
 def with_root_kernel(prg, root_name):
     # FIXME This is a little less beautiful than it could be
diff --git a/setup_fixtures.py b/setup_fixtures.py
index b3800c51c5bb2c86b9c03e7fb04c15957f1d3fa5..eaaa63e4260a0e29d616e333e2b9bbea04cf7f7b 100644
--- a/setup_fixtures.py
+++ b/setup_fixtures.py
@@ -1,7 +1,7 @@
 import numpy as np
 import pyopencl as cl
 
-import fixtures
+import device_fixtures as device
 
 
 class FluxDerivativeParams:
@@ -57,7 +57,7 @@ def random_flux_derivative_arrays(params):
 
 
 def random_flux_derivative_arrays_on_device(ctx_factory, params):
-    queue = fixtures.get_queue(ctx_factory)
+    queue = device.get_queue(ctx_factory)
 
     states = random_array_on_device(queue, *params.state_bounds())
     fluxes = random_array_on_device(queue, *params.flux_bounds())