From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: akash.goel@intel.com
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH 1/6] drm/i915/vlv: Added a rendering specific Hw WA 'WaTlbInvalidateStoreDataBefore'
Date: Wed, 22 Jan 2014 12:51:01 +0200 [thread overview]
Message-ID: <20140122105101.GJ9454@intel.com> (raw)
In-Reply-To: <1390362310-15963-2-git-send-email-akash.goel@intel.com>
On Wed, Jan 22, 2014 at 09:15:05AM +0530, akash.goel@intel.com wrote:
> From: Akash Goel <akash.goel@intel.com>
>
> Added a new rendering specific Workaround 'WaTlbInvalidateStoreDataBefore'.
> In this WA, before pipecontrol with TLB invalidate set, need to add 2 MI
> Store data commands.
>
> Signed-off-by: Akash Goel <akash.goel@intel.com>
> ---
> drivers/gpu/drm/i915/intel_ringbuffer.c | 22 ++++++++++++++++++++++
> 1 file changed, 22 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
> index 442c9a6..133d273 100644
> --- a/drivers/gpu/drm/i915/intel_ringbuffer.c
> +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
> @@ -2177,6 +2177,28 @@ intel_ring_invalidate_all_caches(struct intel_ring_buffer *ring)
> uint32_t flush_domains;
> int ret;
>
> + if (IS_VALLEYVIEW(ring->dev)) {
> + /*
> + * WaTlbInvalidateStoreDataBefore
> + * Before pipecontrol with TLB invalidate set, need 2 store
> + * data commands (such as MI_STORE_DATA_IMM or MI_STORE_DATA_INDEX)
> + * Without this, hardware cannot guarantee the command after the
> + * PIPE_CONTROL with TLB inv will not use the old TLB values.
> + */
> + int i;
> + ret = intel_ring_begin(ring, 4 * 2);
> + if (ret)
> + return ret;
> + for (i = 0; i < 2; i++) {
> + intel_ring_emit(ring, MI_STORE_DWORD_INDEX);
> + intel_ring_emit(ring, I915_GEM_HWS_SCRATCH_INDEX <<
> + MI_STORE_DWORD_INDEX_SHIFT);
> + intel_ring_emit(ring, 0);
> + intel_ring_emit(ring, MI_NOOP);
> + }
> + intel_ring_advance(ring);
> + }
This workaround is listed for everything SNB+, so it would seem we
should just check for gen>=6.
Also I think it should be placed inside the ring .flush() functions since
we call those w/ invalidate_domains!=0 from other places as well.
> +
> flush_domains = 0;
> if (ring->gpu_caches_dirty)
> flush_domains = I915_GEM_GPU_DOMAINS;
> --
> 1.8.5.2
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Ville Syrjälä
Intel OTC
next prev parent reply other threads:[~2014-01-22 10:53 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-22 3:45 [PATCH 0/6] Rendering specific Hw workarounds for VLV akash.goel
2014-01-22 3:45 ` [PATCH 1/6] drm/i915/vlv: Added a rendering specific Hw WA 'WaTlbInvalidateStoreDataBefore' akash.goel
2014-01-22 10:51 ` Ville Syrjälä [this message]
2014-01-22 3:45 ` [PATCH 2/6] drm/i915/vlv: Added a rendering specific Hw WA 'WaReadAfterWriteHazard' akash.goel
2014-01-22 10:54 ` Ville Syrjälä
2014-01-22 11:11 ` Chris Wilson
2014-03-21 11:53 ` Gupta, Sourab
2014-03-21 14:58 ` Daniel Vetter
2014-03-21 16:50 ` Gupta, Sourab
2014-01-22 3:45 ` [PATCH 3/6] drm/i915/vlv: Modified the programming of 2 regs in Ring initialisation akash.goel
2014-01-22 11:01 ` Ville Syrjälä
2014-01-22 3:45 ` [PATCH 4/6] drm/i915/vlv: Added 3 rendering specific Hw Workarounds in clock gating fn akash.goel
2014-01-22 11:10 ` Ville Syrjälä
2014-03-21 12:58 ` [PATCH 1/2] drm/i915/vlv:Implement WaDisable_RenderCache_OperationalFlush sourab.gupta
2014-03-21 12:58 ` [PATCH 2/2] drm/i915/vlv: Modified Implementation of WaDisableL3Bank2xClockGate sourab.gupta
2014-01-22 3:45 ` [PATCH 5/6] drm/i915/vlv: Removed 3 rendering specific Hw WA from clock gating fn akash.goel
2014-01-22 11:11 ` Ville Syrjälä
2014-01-22 3:45 ` [PATCH 6/6] drm/i915/vlv: Added a rendering specific Hw WA 'WaSendDummy3dPrimitveAfterSetContext' akash.goel
2014-01-22 11:18 ` Ville Syrjälä
-- strict thread matches above, loose matches on Subject: below --
2014-03-24 6:49 [PATCH 0/6] Rendering Specific HW Workarounds for VLV sourab.gupta
2014-03-24 6:49 ` [PATCH 1/6] drm/i915/vlv: Added a rendering specific Hw WA 'WaTlbInvalidateStoreDataBefore' sourab.gupta
2014-03-24 9:32 ` Chris Wilson
2014-03-24 11:20 ` Gupta, Sourab
2014-03-24 18:32 ` Ville Syrjälä
2014-03-24 18:47 ` Chris Wilson
2014-03-25 5:17 ` Gupta, Sourab
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140122105101.GJ9454@intel.com \
--to=ville.syrjala@linux.intel.com \
--cc=akash.goel@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.