[Intel-gfx] [PATCH] drm/i915: don't track relative-constants-mode
Chris Wilson
chris at chris-wilson.co.uk
Fri Aug 26 19:05:01 UTC 2016
On Fri, Aug 26, 2016 at 07:47:19PM +0100, Chris Wilson wrote:
> On Fri, Aug 26, 2016 at 07:25:57PM +0100, Dave Gordon wrote:
> > 'relative_constants_mode' has always been tracked per-device, but this
> > has actually been wrong ever since hardware contexts were introduced, as
> > the INSTPM register is saved (and automatically restored) as part of the
> > render ring context. The software per-device value could therefore get
> > out of sync with the hardware per-context value.
> >
> > Rather than track this correctly (per-context in LRC modes, per-device
> > in legacy ringbuffer mode), a simpler solution is just to give up trying
> > to track it at all, and always prefix each render batch with the single
> > instruction needed to explicitly set it to the required mode for the
> > current batch.
>
> Agreed. However always emitting it wasteful for those who never touch
> it, i.e. everybody. Rather than track the last value, just track if it
> ever changed from default then reassign it before every batch?
And since nothing released has ever used it:
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index a93efd471e94..1581f37d531b 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -283,7 +283,8 @@ static int i915_getparam(struct drm_device *dev, void *data,
value = 1;
break;
case I915_PARAM_HAS_EXEC_CONSTANTS:
+ WARN_ONCE(1, "Planned obsolence: please report to bugs.freedesktop.org\n");
value = INTEL_INFO(dev)->gen >= 4;
break;
case I915_PARAM_HAS_RELAXED_DELTA:
value = 1;
and deleting the code later would be an option.
-Chris
--
Chris Wilson, Intel Open Source Technology Centre
More information about the Intel-gfx
mailing list