Re: [PATCH] drm/i915: Restore relaxed padding (OCL_OOB_SUPPRES_ENABLE) for skl+

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I was going to ask the status of this and then I looked and realized that I never provided a commit message blrub.  Oops.  Here you go:

On Broadwell, the sampler was changed to not require extra padding for simple (no arrays, mipmapping, or MSAA) 1D, 2D, and buffer surfaces.  Setting the GEN9_DISABLE_OCL_OOB_SUPPRESS_LOGIC bit in HALF_SLICE_CHICKEN3 disables this and reverts the hardware to the HSW-era behaviour where the sampler over-fetches near the edges of the surface.  While the over-fetch does not cause faults due to the scratch page, it still means that more data than needed is getting pulled into the sampler cache.  If the over-fetch from the sampler on a BUFFER surface leaks over into an atomic on the L3$, hangs can occur.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110228

On Thu, Aug 8, 2019 at 11:35 PM Jason Ekstrand <jason@xxxxxxxxxxxxxx> wrote:
Also, I think we can provide a better commit message. I'll type something in the morning when I can actually look stuff up and provide correct references.

On August 8, 2019 12:33:15 Jason Ekstrand <jason@xxxxxxxxxxxxxx> wrote:

Note: This doesn't actually fix 110998.  I can still get a hard-hang with a slightly different version of the reproducer example.  However, it does fix the original and I suspect it will fix the UE4 editor hang in 110228

On Thu, Aug 8, 2019 at 12:30 PM Jason Ekstrand <jason@xxxxxxxxxxxxxx> wrote:
This is consistent with what the Windows driver does and what I've heard from HW people.

Reviewed-by: Jason Ekstrand <jason@xxxxxxxxxxxxxx>

On Thu, Aug 8, 2019 at 11:36 AM Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> wrote:
This bit was fliped on for "syncing dependencies between camera and
graphics". BSpec has no recollection why, and it is causing
unrecoverable GPU hangs with Vulkan compute workloads.

>From BSpec, setting bit5 to 0 enables relaxed padding requiremets for
buffers, 1D and 2D non-array, non-MSAA, non-mip-mapped linear surfaces;
and *must* be set to 0h on skl+ to ensure "Out of Bounds" case is
suppressed.

Reported-by: Jason Ekstrand <jason@xxxxxxxxxxxxxx>
Suggested-by: Jason Ekstrand <jason@xxxxxxxxxxxxxx>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110998
Fixes: 8424171e135c ("drm/i915/gen9: h/w w/a: syncing dependencies between camera and graphics")
Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
Cc: Jason Ekstrand <jason@xxxxxxxxxxxxxx>
Cc: Mika Kuoppala <mika.kuoppala@xxxxxxxxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx> # v4.1+
---
 drivers/gpu/drm/i915/gt/intel_workarounds.c | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c b/drivers/gpu/drm/i915/gt/intel_workarounds.c
index 704ace01e7f5..b95c1d59a347 100644
--- a/drivers/gpu/drm/i915/gt/intel_workarounds.c
+++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c
@@ -297,11 +297,6 @@ static void gen9_ctx_workarounds_init(struct intel_engine_cs *engine,
                          FLOW_CONTROL_ENABLE |
                          PARTIAL_INSTRUCTION_SHOOTDOWN_DISABLE);

-       /* Syncing dependencies between camera and graphics:skl,bxt,kbl */
-       if (!IS_COFFEELAKE(i915))
-               WA_SET_BIT_MASKED(HALF_SLICE_CHICKEN3,
-                                 GEN9_DISABLE_OCL_OOB_SUPPRESS_LOGIC);
-
        /* WaEnableYV12BugFixInHalfSliceChicken7:skl,bxt,kbl,glk,cfl */
        /* WaEnableSamplerGPGPUPreemptionSupport:skl,bxt,kbl,cfl */
        WA_SET_BIT_MASKED(GEN9_HALF_SLICE_CHICKEN7,
--
2.23.0.rc1


_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

[Index of Archives]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux