[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