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 <[email protected]> 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 <[email protected]> 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 <[email protected]> >> wrote: >> >>> This is consistent with what the Windows driver does and what I've heard >>> from HW people. >>> >>> Reviewed-by: Jason Ekstrand <[email protected]> >>> >>> On Thu, Aug 8, 2019 at 11:36 AM Chris Wilson <[email protected]> >>> 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 <[email protected]> >>>> Suggested-by: Jason Ekstrand <[email protected]> >>>> 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 <[email protected]> >>>> Cc: Jason Ekstrand <[email protected]> >>>> Cc: Mika Kuoppala <[email protected]> >>>> Cc: <[email protected]> # 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 [email protected] https://lists.freedesktop.org/mailman/listinfo/intel-gfx
