Message ID | 20201019175609.28715-1-jose.souza@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/i915/display/fbc: Implement WA 22010751166 | expand |
On Mon, Oct 19, 2020 at 10:56:09AM -0700, José Roberto de Souza wrote: > Underruns happens when plane height + y offset is not a module of 4 I think you meant 'modulo' rather than 'module' here. > when FBC is enabled. Technically the workaround calls for us to just do our FBC disables for non-modulo 4 planes when the scanline is at vactive-10, but that doesn't seem to be something that's actually feasible to do at the software level. Just keeping FBC disabled when working with planes of the problematic size as you do here does seem like the safest approach. Should we make a note of our slight deviation from the workaround details here? > > Specification says that it only affects TGL display C stepping and > newer but to simply the check and as TGL is already in final costumers > hands, pre-production display stepping A and B was also included. > > BSpec: 52887 ICL > BSpec: 52888 EHL/JSL > BSpec: 52890/55378 TGL > BSpec: 53508 DG1 > BSpec: 53273 RKL > Signed-off-by: José Roberto de Souza <jose.souza@intel.com> Up to you whether you tweak the commit message as noted above or not. Otherwise, Reviewed-by: Matt Roper <matthew.d.roper@intel.com> > --- > drivers/gpu/drm/i915/display/intel_fbc.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c > index 135f5e8a4d70..a5b072816a7b 100644 > --- a/drivers/gpu/drm/i915/display/intel_fbc.c > +++ b/drivers/gpu/drm/i915/display/intel_fbc.c > @@ -907,6 +907,13 @@ static bool intel_fbc_can_activate(struct intel_crtc *crtc) > return false; > } > > + /* Wa_22010751166: icl, ehl, tgl, dg1, rkl */ > + if (INTEL_GEN(dev_priv) >= 11 && > + (cache->plane.src_h + cache->plane.adjusted_y) % 4) { > + fbc->no_fbc_reason = "plane height + offset is non-modulo of 4"; > + return false; > + } > + > return true; > } > > -- > 2.28.0 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
On Mon, 2020-10-19 at 21:44 +0000, Patchwork wrote: > Patch Details > Series: drm/i915/display/fbc: Implement WA 22010751166 URL: https://patchwork.freedesktop.org/series/82836/ State: failure Details: https://intel- > gfx-ci.01.org/tree/drm-tip/Patchwork_18735/index.html > CI Bug Log - changes from CI_DRM_9163_full -> Patchwork_18735_fullSummaryFAILURE > Serious unknown changes coming with Patchwork_18735_full absolutely need to be > verified manually. > If you think the reported changes have nothing to do with the changes > introduced in Patchwork_18735_full, please notify your bug team to allow them > to document this new failure mode, which will reduce false positives in CI. > Possible new issuesHere are the unknown changes that may have been introduced in Patchwork_18735_full: > IGT changesPossible regressions * igt@gem_wait@write-wait@vcs0:shard-hsw: PASS -> INCOMPLETE > * igt@prime_vgem@coherency-blt:shard-snb: PASS -> FAIL > Warnings * igt@core_hotunplug@hotrebind-lateclose:shard-hsw: WARN (i915#2283) -> FAIL Regressions above are from platforms that this changes do not affect. Pushed to dinq with commit message tweaks suggested by Matt, thanks for reviewing it. > Piglit changesPossible regressions * spec@glsl-4.00@execution@built-in-functions@fs-op-mult-dmat2x3-dmat4x2 (NEW):{pig-icl-1065g7}: NOTRUN -> CRASH > * spec@glsl-4.00@execution@built-in-functions@gs-transpose-dmat4 (NEW):{pig-icl-1065g7}: NOTRUN -> INCOMPLETE +1 similar issue > New testsNew tests have been introduced between CI_DRM_9163_full and Patchwork_18735_full: > New Piglit tests (3) * spec@glsl-4.00@execution@built-in-functions@fs-op-mult-dmat2x3-dmat4x2:Statuses : 1 crash(s)Exec time: [46.79] s > * spec@glsl-4.00@execution@built-in-functions@gs-transpose-dmat4:Statuses : 1 incomplete(s)Exec time: [0.0] s > * spec@glsl-4.00@execution@built-in-functions@vs-op-div-double-dvec2:Statuses : 1 incomplete(s)Exec time: [0.0] s > Known issuesHere are the changes found in Patchwork_18735_full that come from known issues: > IGT changesIssues hit * igt@gem_exec_reloc@basic-many-active@vecs0:shard-glk: PASS -> FAIL (i915#2389) +2 similar issues > * igt@gem_exec_whisper@basic-contexts:shard-glk: PASS -> DMESG-WARN (i915#118 / i915#95) > * igt@gem_userptr_blits@sync-unmap-cycles:shard-skl: PASS -> TIMEOUT (i915#2424) > * igt@gen9_exec_parse@allowed-single:shard-skl: PASS -> DMESG-WARN (i915#1436 / i915#716) > * igt@i915_pm_dc@dc6-psr:shard-skl: PASS -> FAIL (i915#454) > * igt@i915_pm_rc6_residency@rc6-fence:shard-hsw: PASS -> WARN (i915#1519) > * igt@kms_big_fb@y-tiled-8bpp-rotate-180:shard-apl: PASS -> DMESG-WARN (i915#1635 / i915#1982) > * igt@kms_flip@flip-vs-expired-vblank-interruptible@b-edp1:shard-skl: PASS -> FAIL (i915#2122) > * igt@kms_flip@flip-vs-expired-vblank@b-edp1:shard-skl: PASS -> FAIL (i915#79) > * igt@kms_frontbuffer_tracking@fbc-shrfb-scaledprimary:shard-tglb: PASS -> DMESG-WARN (i915#1982) +2 similar issues > * igt@kms_frontbuffer_tracking@fbc-stridechange:shard-glk: PASS -> DMESG-WARN (i915#1982) > * igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-mmap-gtt:shard-skl: PASS -> DMESG-WARN (i915#1982) +4 similar issues > * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:shard-iclb: PASS -> INCOMPLETE (i915#1185) > * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes:shard-iclb: PASS -> DMESG-WARN (i915#1982) > * igt@kms_psr@psr2_cursor_plane_onoff:shard-iclb: PASS -> SKIP (fdo#109441) +2 similar issues > * igt@kms_universal_plane@universal-plane-gen9-features-pipe-a:shard-kbl: PASS -> DMESG-WARN (i915#1982) > Possible fixes * igt@api_intel_bb@render-ccs:shard-tglb: INCOMPLETE -> PASS > * igt@feature_discovery@psr2:shard-iclb: SKIP (i915#658) -> PASS > * igt@gem_exec_reloc@basic-many-active@rcs0:shard-hsw: FAIL (i915#2389) -> PASS > * igt@gem_userptr_blits@unsync-unmap-cycles:shard-skl: TIMEOUT (i915#2424) -> PASS > * igt@i915_suspend@debugfs-reader:shard-kbl: INCOMPLETE (i915#155) -> PASS > * {igt@kms_async_flips@async-flip-with-page-flip-events}:shard-kbl: FAIL (i915#2521) -> PASS > * igt@kms_flip@plain-flip-fb-recreate-interruptible@a-edp1:shard-skl: FAIL (i915#2122) -> PASS > * igt@kms_frontbuffer_tracking@fbc-stridechange:shard-tglb: DMESG-WARN (i915#1982) -> PASS +1 similar issue > * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:shard-skl: INCOMPLETE (i915#198) -> PASS > * igt@kms_plane_alpha_blend@pipe-a-coverage-7efc:shard-skl: FAIL (fdo#108145 / i915#265) -> PASS > * igt@kms_plane_cursor@pipe-a-primary-size-256:shard-glk: DMESG-WARN (i915#1982) -> PASS > * igt@kms_plane_scaling@pipe-b-scaler-with-pixel-format:shard-skl: DMESG-WARN (i915#1982) -> PASS +4 similar issues > * igt@kms_psr@psr2_primary_mmap_cpu:shard-iclb: SKIP (fdo#109441) -> PASS +2 similar issues > * igt@perf@polling:shard-hsw: SKIP (fdo#109271) -> PASS > * igt@perf@polling-parameterized:shard-skl: FAIL (i915#1542) -> PASS > Warnings * igt@kms_dp_dsc@basic-dsc-enable-edp:shard-iclb: SKIP (fdo#109349) -> DMESG-WARN (i915#1226) > * igt@kms_frontbuffer_tracking@fbcpsr-suspend:shard-tglb: DMESG-WARN (i915#1982 / i915#2411) -> DMESG-WARN (i915#2411) > * igt@kms_plane_alpha_blend@pipe-b-constant-alpha-min:shard-skl: FAIL (fdo#108145 / i915#265) -> DMESG-WARN (i915#1982) > * igt@kms_setmode@basic:shard-skl: DMESG-FAIL (i915#1982 / i915#31) -> FAIL (i915#31) > * igt@runner@aborted:shard-skl: FAIL (i915#2029 / i915#2439) -> FAIL (i915#1436) > {name}: This element is suppressed. This means it is ignored when computing > the status of the difference (SUCCESS, WARNING, or FAILURE). > Participating hosts (11 -> 11)No changes in participating hosts > Build changes * Linux: CI_DRM_9163 -> Patchwork_18735 > CI-20190529: 20190529 > CI_DRM_9163: e984f8cbd92765a305dd322240278e0f69dbae38 @ git://anongit.freedesktop.org/gfx-ci/linux > IGT_5822: b4bcf05cb9839037128905deda7146434155cc41 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools > Patchwork_18735: 72bc219de6f039510c1d34b2d39a1d065168d127 @ git://anongit.freedesktop.org/gfx-ci/linux > piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit
diff --git a/drivers/gpu/drm/i915/display/intel_fbc.c b/drivers/gpu/drm/i915/display/intel_fbc.c index 135f5e8a4d70..a5b072816a7b 100644 --- a/drivers/gpu/drm/i915/display/intel_fbc.c +++ b/drivers/gpu/drm/i915/display/intel_fbc.c @@ -907,6 +907,13 @@ static bool intel_fbc_can_activate(struct intel_crtc *crtc) return false; } + /* Wa_22010751166: icl, ehl, tgl, dg1, rkl */ + if (INTEL_GEN(dev_priv) >= 11 && + (cache->plane.src_h + cache->plane.adjusted_y) % 4) { + fbc->no_fbc_reason = "plane height + offset is non-modulo of 4"; + return false; + } + return true; }
Underruns happens when plane height + y offset is not a module of 4 when FBC is enabled. Specification says that it only affects TGL display C stepping and newer but to simply the check and as TGL is already in final costumers hands, pre-production display stepping A and B was also included. BSpec: 52887 ICL BSpec: 52888 EHL/JSL BSpec: 52890/55378 TGL BSpec: 53508 DG1 BSpec: 53273 RKL Signed-off-by: José Roberto de Souza <jose.souza@intel.com> --- drivers/gpu/drm/i915/display/intel_fbc.c | 7 +++++++ 1 file changed, 7 insertions(+)