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.
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 110228On 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