All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/i915: Enable provoking vertex fix on Gen9+ systems.
@ 2018-06-14 21:53 Kenneth Graunke
  2018-06-14 22:37 ` ✗ Fi.CI.CHECKPATCH: warning for " Patchwork
                   ` (7 more replies)
  0 siblings, 8 replies; 14+ messages in thread
From: Kenneth Graunke @ 2018-06-14 21:53 UTC (permalink / raw)
  To: intel-gfx; +Cc: Kenneth Graunke

The SF and clipper units mishandle the provoking vertex in some cases,
which can cause misrendering with shaders that use flat shaded inputs.

There are chicken bits in 3D_CHICKEN3 (for SF) and FF_SLICE_CHICKEN
(for the clipper) that work around the issue.  These registers are
unfortunately not part of the logical context (even the power context).

This patch sets both bits, and bumps the number of allowed workaround
registers to avoid running out of space (thanks to Chris Wilson for
helping debug that issue).

I am not aware of any workaround names or numbers assigned for these
issues, they're simply recommended in the documentation for each of
the registers.

Bugzilla: https://bugs.freedesktop.org/103047
---
 drivers/gpu/drm/i915/i915_drv.h          | 2 +-
 drivers/gpu/drm/i915/i915_reg.h          | 5 +++++
 drivers/gpu/drm/i915/intel_workarounds.c | 6 ++++++
 3 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 19defe73b156..8828780a1773 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -1309,7 +1309,7 @@ struct i915_wa_reg {
 	u32 mask;
 };
 
-#define I915_MAX_WA_REGS 16
+#define I915_MAX_WA_REGS 17
 
 struct i915_workarounds {
 	struct i915_wa_reg reg[I915_MAX_WA_REGS];
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index 140f6a27d696..35d8c2be85be 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -2432,12 +2432,17 @@ enum i915_power_well_id {
 #define _3D_CHICKEN	_MMIO(0x2084)
 #define  _3D_CHICKEN_HIZ_PLANE_DISABLE_MSAA_4X_SNB	(1 << 10)
 #define _3D_CHICKEN2	_MMIO(0x208c)
+
+#define FF_SLICE_CHICKEN	_MMIO(0x2088)
+#define  FF_SLICE_CHICKEN_CL_PROVOKING_VERTEX_FIX	(1 << 1)
+
 /* Disables pipelining of read flushes past the SF-WIZ interface.
  * Required on all Ironlake steppings according to the B-Spec, but the
  * particular danger of not doing so is not specified.
  */
 # define _3D_CHICKEN2_WM_READ_PIPELINED			(1 << 14)
 #define _3D_CHICKEN3	_MMIO(0x2090)
+#define  _3D_CHICKEN_SF_PROVOKING_VERTEX_FIX		(1 << 12)
 #define  _3D_CHICKEN_SF_DISABLE_OBJEND_CULL		(1 << 10)
 #define  _3D_CHICKEN3_AA_LINE_QUALITY_FIX_ENABLE	(1 << 5)
 #define  _3D_CHICKEN3_SF_DISABLE_FASTCLIP_CULL		(1 << 5)
diff --git a/drivers/gpu/drm/i915/intel_workarounds.c b/drivers/gpu/drm/i915/intel_workarounds.c
index 24b929ce3341..2dea23bfd5ea 100644
--- a/drivers/gpu/drm/i915/intel_workarounds.c
+++ b/drivers/gpu/drm/i915/intel_workarounds.c
@@ -274,6 +274,12 @@ static int gen9_ctx_workarounds_init(struct drm_i915_private *dev_priv)
 	if (IS_GEN9_LP(dev_priv))
 		WA_SET_BIT_MASKED(GEN9_WM_CHICKEN3, GEN9_FACTOR_IN_CLR_VAL_HIZ);
 
+	/* BSpec: 11391 */
+	WA_SET_BIT_MASKED(FF_SLICE_CHICKEN,
+			  FF_SLICE_CHICKEN_CL_PROVOKING_VERTEX_FIX);
+	/* BSpec: 11299 */
+	WA_SET_BIT_MASKED(_3D_CHICKEN3, _3D_CHICKEN_SF_PROVOKING_VERTEX_FIX);
+
 	return 0;
 }
 
-- 
2.17.0

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

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Enable provoking vertex fix on Gen9+ systems.
  2018-06-14 21:53 [PATCH] drm/i915: Enable provoking vertex fix on Gen9+ systems Kenneth Graunke
@ 2018-06-14 22:37 ` Patchwork
  2018-06-14 22:53 ` ✗ Fi.CI.BAT: failure " Patchwork
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2018-06-14 22:37 UTC (permalink / raw)
  To: Kenneth Graunke; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: Enable provoking vertex fix on Gen9+ systems.
URL   : https://patchwork.freedesktop.org/series/44781/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
1fee0a9a8734 drm/i915: Enable provoking vertex fix on Gen9+ systems.
-:74: ERROR:MISSING_SIGN_OFF: Missing Signed-off-by: line(s)

total: 1 errors, 0 warnings, 0 checks, 37 lines checked

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

^ permalink raw reply	[flat|nested] 14+ messages in thread

* ✗ Fi.CI.BAT: failure for drm/i915: Enable provoking vertex fix on Gen9+ systems.
  2018-06-14 21:53 [PATCH] drm/i915: Enable provoking vertex fix on Gen9+ systems Kenneth Graunke
  2018-06-14 22:37 ` ✗ Fi.CI.CHECKPATCH: warning for " Patchwork
@ 2018-06-14 22:53 ` Patchwork
  2018-06-15  7:16   ` Chris Wilson
  2018-06-15 14:52 ` Patchwork
                   ` (5 subsequent siblings)
  7 siblings, 1 reply; 14+ messages in thread
From: Patchwork @ 2018-06-14 22:53 UTC (permalink / raw)
  To: Kenneth Graunke; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: Enable provoking vertex fix on Gen9+ systems.
URL   : https://patchwork.freedesktop.org/series/44781/
State : failure

== Summary ==

= CI Bug Log - changes from CI_DRM_4322 -> Patchwork_9312 =

== Summary - FAILURE ==

  Serious unknown changes coming with Patchwork_9312 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_9312, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/44781/revisions/1/mbox/

== Possible new issues ==

  Here are the unknown changes that may have been introduced in Patchwork_9312:

  === IGT changes ===

    ==== Possible regressions ====

    igt@gem_workarounds@basic-read:
      fi-skl-6260u:       PASS -> FAIL
      fi-cfl-s3:          PASS -> FAIL
      fi-skl-6700k2:      PASS -> FAIL
      fi-skl-6770hq:      PASS -> FAIL
      fi-kbl-7560u:       PASS -> FAIL
      fi-skl-6600u:       PASS -> FAIL
      fi-bxt-dsi:         PASS -> FAIL
      fi-kbl-guc:         PASS -> FAIL
      fi-kbl-7500u:       PASS -> FAIL
      fi-skl-6700hq:      PASS -> FAIL
      fi-bxt-j4205:       PASS -> FAIL
      fi-skl-gvtdvm:      PASS -> FAIL
      fi-cfl-guc:         PASS -> FAIL
      {fi-whl-u}:         PASS -> FAIL
      fi-cfl-8700k:       PASS -> FAIL
      fi-glk-j4005:       PASS -> FAIL
      fi-skl-guc:         PASS -> FAIL
      fi-kbl-7567u:       PASS -> FAIL
      fi-kbl-r:           PASS -> FAIL

    
== Known issues ==

  Here are the changes found in Patchwork_9312 that come from known issues:

  === IGT changes ===

    ==== Issues hit ====

    igt@debugfs_test@read_all_entries:
      fi-snb-2520m:       PASS -> INCOMPLETE (fdo#103713)

    igt@kms_pipe_crc_basic@read-crc-pipe-a:
      fi-glk-j4005:       PASS -> DMESG-WARN (fdo#106238)

    
    ==== Possible fixes ====

    igt@drv_module_reload@basic-no-display:
      fi-glk-j4005:       DMESG-WARN (fdo#106725) -> PASS

    igt@kms_flip@basic-plain-flip:
      fi-glk-j4005:       DMESG-WARN (fdo#106000) -> PASS

    
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713
  fdo#106000 https://bugs.freedesktop.org/show_bug.cgi?id=106000
  fdo#106238 https://bugs.freedesktop.org/show_bug.cgi?id=106238
  fdo#106725 https://bugs.freedesktop.org/show_bug.cgi?id=106725


== Participating hosts (43 -> 38) ==

  Missing    (5): fi-ctg-p8600 fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-hsw-4200u 


== Build changes ==

    * Linux: CI_DRM_4322 -> Patchwork_9312

  CI_DRM_4322: 485f975b0c64f2a3c9b0bf116a63adc3c6389b1f @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4519: 3381a56be31defb3b5c23a4fbc19ac26a000c35b @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_9312: 1fee0a9a87341a7346106e5a2463571a68496f4a @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

1fee0a9a8734 drm/i915: Enable provoking vertex fix on Gen9+ systems.

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_9312/issues.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: ✗ Fi.CI.BAT: failure for drm/i915: Enable provoking vertex fix on Gen9+ systems.
  2018-06-14 22:53 ` ✗ Fi.CI.BAT: failure " Patchwork
@ 2018-06-15  7:16   ` Chris Wilson
  2018-06-15  7:51     ` Chris Wilson
  0 siblings, 1 reply; 14+ messages in thread
From: Chris Wilson @ 2018-06-15  7:16 UTC (permalink / raw)
  To: Patchwork, Kenneth Graunke; +Cc: intel-gfx

Quoting Patchwork (2018-06-14 23:53:30)
> == Series Details ==
> 
> Series: drm/i915: Enable provoking vertex fix on Gen9+ systems.
> URL   : https://patchwork.freedesktop.org/series/44781/
> State : failure
> 
> == Summary ==
> 
> = CI Bug Log - changes from CI_DRM_4322 -> Patchwork_9312 =
> 
> == Summary - FAILURE ==
> 
>   Serious unknown changes coming with Patchwork_9312 absolutely need to be
>   verified manually.
>   
>   If you think the reported changes have nothing to do with the changes
>   introduced in Patchwork_9312, please notify your bug team to allow them
>   to document this new failure mode, which will reduce false positives in CI.
> 
>   External URL: https://patchwork.freedesktop.org/api/1.0/series/44781/revisions/1/mbox/
> 
> == Possible new issues ==
> 
>   Here are the unknown changes that may have been introduced in Patchwork_9312:
> 
>   === IGT changes ===
> 
>     ==== Possible regressions ====
> 
>     igt@gem_workarounds@basic-read:
>       fi-skl-6260u:       PASS -> FAIL
>       fi-cfl-s3:          PASS -> FAIL
>       fi-skl-6700k2:      PASS -> FAIL
>       fi-skl-6770hq:      PASS -> FAIL
>       fi-kbl-7560u:       PASS -> FAIL
>       fi-skl-6600u:       PASS -> FAIL
>       fi-bxt-dsi:         PASS -> FAIL
>       fi-kbl-guc:         PASS -> FAIL
>       fi-kbl-7500u:       PASS -> FAIL
>       fi-skl-6700hq:      PASS -> FAIL
>       fi-bxt-j4205:       PASS -> FAIL
>       fi-skl-gvtdvm:      PASS -> FAIL
>       fi-cfl-guc:         PASS -> FAIL
>       {fi-whl-u}:         PASS -> FAIL
>       fi-cfl-8700k:       PASS -> FAIL
>       fi-glk-j4005:       PASS -> FAIL
>       fi-skl-guc:         PASS -> FAIL
>       fi-kbl-7567u:       PASS -> FAIL
>       fi-kbl-r:           PASS -> FAIL

(gem_workarounds:3828) DEBUG: Address	val		mask		read		result
(gem_workarounds:3828) DEBUG: 0x07014	0x20002000	0x00002000	0x00002000	OK
(gem_workarounds:3828) DEBUG: 0x0E194	0x01000100	0x00000100	0x00000114	OK
(gem_workarounds:3828) DEBUG: 0x0E4F0	0x81008100	0x00008100	0xFFFF8120	OK
(gem_workarounds:3828) DEBUG: 0x0E184	0x00200020	0x00000020	0x00000022	OK
(gem_workarounds:3828) DEBUG: 0x0E194	0x00140014	0x00000014	0x00000114	OK
(gem_workarounds:3828) DEBUG: 0x07004	0x00420042	0x00000042	0x000029C2	OK
(gem_workarounds:3828) DEBUG: 0x0E188	0x00080000	0x00000008	0x00008030	OK
(gem_workarounds:3828) DEBUG: 0x07300	0x80208020	0x00008020	0x00008830	OK
(gem_workarounds:3828) DEBUG: 0x07300	0x00100010	0x00000010	0x00008830	OK
(gem_workarounds:3828) DEBUG: 0x0E184	0x00020002	0x00000002	0x00000022	OK
(gem_workarounds:3828) DEBUG: 0x0E180	0x20002000	0x00002000	0x00002000	OK
(gem_workarounds:3828) DEBUG: 0x02580	0x00010000	0x00000001	0x00000004	OK
(gem_workarounds:3828) DEBUG: 0x02580	0x00060004	0x00000006	0x00000004	OK
(gem_workarounds:3828) WARNING: 0x02088	0x00020002	0x00000002	0x00000000	FAIL
(gem_workarounds:3828) WARNING: 0x02090	0x10001000	0x00001000	0x00000000	FAIL

The 2 writes didn't stick. Not context saved? Or something even more
peculiar?

(Look at all those repeated register writes, no wonder we ran out of
space.)
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: ✗ Fi.CI.BAT: failure for drm/i915: Enable provoking vertex fix on Gen9+ systems.
  2018-06-15  7:16   ` Chris Wilson
@ 2018-06-15  7:51     ` Chris Wilson
  0 siblings, 0 replies; 14+ messages in thread
From: Chris Wilson @ 2018-06-15  7:51 UTC (permalink / raw)
  To: Patchwork, Kenneth Graunke; +Cc: intel-gfx

Quoting Chris Wilson (2018-06-15 08:16:01)
> Quoting Patchwork (2018-06-14 23:53:30)
> > == Series Details ==
> > 
> > Series: drm/i915: Enable provoking vertex fix on Gen9+ systems.
> > URL   : https://patchwork.freedesktop.org/series/44781/
> > State : failure
> > 
> > == Summary ==
> > 
> > = CI Bug Log - changes from CI_DRM_4322 -> Patchwork_9312 =
> > 
> > == Summary - FAILURE ==
> > 
> >   Serious unknown changes coming with Patchwork_9312 absolutely need to be
> >   verified manually.
> >   
> >   If you think the reported changes have nothing to do with the changes
> >   introduced in Patchwork_9312, please notify your bug team to allow them
> >   to document this new failure mode, which will reduce false positives in CI.
> > 
> >   External URL: https://patchwork.freedesktop.org/api/1.0/series/44781/revisions/1/mbox/
> > 
> > == Possible new issues ==
> > 
> >   Here are the unknown changes that may have been introduced in Patchwork_9312:
> > 
> >   === IGT changes ===
> > 
> >     ==== Possible regressions ====
> > 
> >     igt@gem_workarounds@basic-read:
> >       fi-skl-6260u:       PASS -> FAIL
> >       fi-cfl-s3:          PASS -> FAIL
> >       fi-skl-6700k2:      PASS -> FAIL
> >       fi-skl-6770hq:      PASS -> FAIL
> >       fi-kbl-7560u:       PASS -> FAIL
> >       fi-skl-6600u:       PASS -> FAIL
> >       fi-bxt-dsi:         PASS -> FAIL
> >       fi-kbl-guc:         PASS -> FAIL
> >       fi-kbl-7500u:       PASS -> FAIL
> >       fi-skl-6700hq:      PASS -> FAIL
> >       fi-bxt-j4205:       PASS -> FAIL
> >       fi-skl-gvtdvm:      PASS -> FAIL
> >       fi-cfl-guc:         PASS -> FAIL
> >       {fi-whl-u}:         PASS -> FAIL
> >       fi-cfl-8700k:       PASS -> FAIL
> >       fi-glk-j4005:       PASS -> FAIL
> >       fi-skl-guc:         PASS -> FAIL
> >       fi-kbl-7567u:       PASS -> FAIL
> >       fi-kbl-r:           PASS -> FAIL
> 
> (gem_workarounds:3828) DEBUG: Address   val             mask            read            result
> (gem_workarounds:3828) DEBUG: 0x07014   0x20002000      0x00002000      0x00002000      OK
> (gem_workarounds:3828) DEBUG: 0x0E194   0x01000100      0x00000100      0x00000114      OK
> (gem_workarounds:3828) DEBUG: 0x0E4F0   0x81008100      0x00008100      0xFFFF8120      OK
> (gem_workarounds:3828) DEBUG: 0x0E184   0x00200020      0x00000020      0x00000022      OK
> (gem_workarounds:3828) DEBUG: 0x0E194   0x00140014      0x00000014      0x00000114      OK
> (gem_workarounds:3828) DEBUG: 0x07004   0x00420042      0x00000042      0x000029C2      OK
> (gem_workarounds:3828) DEBUG: 0x0E188   0x00080000      0x00000008      0x00008030      OK
> (gem_workarounds:3828) DEBUG: 0x07300   0x80208020      0x00008020      0x00008830      OK
> (gem_workarounds:3828) DEBUG: 0x07300   0x00100010      0x00000010      0x00008830      OK
> (gem_workarounds:3828) DEBUG: 0x0E184   0x00020002      0x00000002      0x00000022      OK
> (gem_workarounds:3828) DEBUG: 0x0E180   0x20002000      0x00002000      0x00002000      OK
> (gem_workarounds:3828) DEBUG: 0x02580   0x00010000      0x00000001      0x00000004      OK
> (gem_workarounds:3828) DEBUG: 0x02580   0x00060004      0x00000006      0x00000004      OK
> (gem_workarounds:3828) WARNING: 0x02088 0x00020002      0x00000002      0x00000000      FAIL
> (gem_workarounds:3828) WARNING: 0x02090 0x10001000      0x00001000      0x00000000      FAIL
> 
> The 2 writes didn't stick. Not context saved? Or something even more
> peculiar?

More sinister. The LRI never expected so many registers!
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 14+ messages in thread

* ✗ Fi.CI.BAT: failure for drm/i915: Enable provoking vertex fix on Gen9+ systems.
  2018-06-14 21:53 [PATCH] drm/i915: Enable provoking vertex fix on Gen9+ systems Kenneth Graunke
  2018-06-14 22:37 ` ✗ Fi.CI.CHECKPATCH: warning for " Patchwork
  2018-06-14 22:53 ` ✗ Fi.CI.BAT: failure " Patchwork
@ 2018-06-15 14:52 ` Patchwork
  2018-06-15 18:31 ` [PATCH] " Chris Wilson
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2018-06-15 14:52 UTC (permalink / raw)
  To: Kenneth Graunke; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: Enable provoking vertex fix on Gen9+ systems.
URL   : https://patchwork.freedesktop.org/series/44781/
State : failure

== Summary ==

= CI Bug Log - changes from CI_DRM_4325 -> Patchwork_9328 =

== Summary - FAILURE ==

  Serious unknown changes coming with Patchwork_9328 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_9328, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/44781/revisions/1/mbox/

== Possible new issues ==

  Here are the unknown changes that may have been introduced in Patchwork_9328:

  === IGT changes ===

    ==== Possible regressions ====

    igt@gem_workarounds@basic-read:
      fi-skl-6260u:       PASS -> FAIL
      fi-cfl-s3:          PASS -> FAIL
      fi-skl-6700k2:      PASS -> FAIL
      fi-skl-6770hq:      PASS -> FAIL
      fi-kbl-7560u:       PASS -> FAIL
      fi-skl-6600u:       PASS -> FAIL
      fi-bxt-dsi:         PASS -> FAIL
      fi-kbl-guc:         PASS -> FAIL
      fi-kbl-7500u:       PASS -> FAIL
      fi-skl-6700hq:      PASS -> FAIL
      fi-bxt-j4205:       PASS -> FAIL
      fi-skl-gvtdvm:      PASS -> FAIL
      fi-cfl-guc:         PASS -> FAIL
      {fi-whl-u}:         PASS -> FAIL
      fi-cfl-8700k:       PASS -> FAIL
      fi-glk-j4005:       PASS -> FAIL
      fi-skl-guc:         PASS -> FAIL
      fi-kbl-7567u:       PASS -> FAIL
      fi-kbl-r:           PASS -> FAIL

    
== Known issues ==

  Here are the changes found in Patchwork_9328 that come from known issues:

  === IGT changes ===

    ==== Issues hit ====

    igt@debugfs_test@read_all_entries:
      fi-snb-2520m:       PASS -> INCOMPLETE (fdo#103713)

    igt@kms_pipe_crc_basic@bad-source:
      fi-glk-j4005:       PASS -> DMESG-WARN (fdo#106238)

    igt@pm_rpm@basic-rte:
      fi-glk-j4005:       PASS -> DMESG-WARN (fdo#106097)

    
    ==== Possible fixes ====

    igt@kms_flip@basic-flip-vs-modeset:
      fi-glk-j4005:       DMESG-WARN (fdo#106097) -> PASS +1

    igt@kms_pipe_crc_basic@read-crc-pipe-c-frame-sequence:
      fi-glk-j4005:       DMESG-WARN (fdo#106000, fdo#106097) -> PASS

    
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713
  fdo#106000 https://bugs.freedesktop.org/show_bug.cgi?id=106000
  fdo#106097 https://bugs.freedesktop.org/show_bug.cgi?id=106097
  fdo#106238 https://bugs.freedesktop.org/show_bug.cgi?id=106238


== Participating hosts (43 -> 38) ==

  Missing    (5): fi-ctg-p8600 fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-hsw-4200u 


== Build changes ==

    * Linux: CI_DRM_4325 -> Patchwork_9328

  CI_DRM_4325: 4275ebe85ad179007c49b7bcf78d340b7681871e @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4520: 91f5d4665b07f073c78abd3cd4b8e0e347dbf638 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_9328: da50a83a608b97e04d4953e56ddc22100dd8d2e1 @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

da50a83a608b drm/i915: Enable provoking vertex fix on Gen9+ systems.

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_9328/issues.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] drm/i915: Enable provoking vertex fix on Gen9+ systems.
  2018-06-14 21:53 [PATCH] drm/i915: Enable provoking vertex fix on Gen9+ systems Kenneth Graunke
                   ` (2 preceding siblings ...)
  2018-06-15 14:52 ` Patchwork
@ 2018-06-15 18:31 ` Chris Wilson
  2018-06-15 18:34 ` ✗ Fi.CI.BAT: failure for drm/i915: Enable provoking vertex fix on Gen9+ systems. (rev2) Patchwork
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 14+ messages in thread
From: Chris Wilson @ 2018-06-15 18:31 UTC (permalink / raw)
  To: intel-gfx; +Cc: Kenneth Graunke

Quoting Kenneth Graunke (2018-06-14 22:53:28)
> The SF and clipper units mishandle the provoking vertex in some cases,
> which can cause misrendering with shaders that use flat shaded inputs.
> 
> There are chicken bits in 3D_CHICKEN3 (for SF) and FF_SLICE_CHICKEN
> (for the clipper) that work around the issue.  These registers are
> unfortunately not part of the logical context (even the power context).

Indeed they are not. And that explains why we lose them in CI, my kbl
never seems to powerdown and so never loses them. But an LRI from
userspace to them is enough for their contents to be lost, and we never
recover.

So that rules out using the context image to store these registers, and
we need to add a payload to every batch. We may get away with just using
the per-context wa, to load the registers every time we switch into a
context (and so also on load from idle).

Instead we need:

diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
index e935f8c45db8..46c93ccd36f3 100644
--- a/drivers/gpu/drm/i915/intel_lrc.c
+++ b/drivers/gpu/drm/i915/intel_lrc.c
@@ -1565,11 +1565,21 @@ static u32 *gen9_init_indirectctx_bb(struct intel_engine_cs *engine, u32 *batch)
        /* WaFlushCoherentL3CacheLinesAtContextSwitch:skl,bxt,glk */
        batch = gen8_emit_flush_coherentl3_wa(engine, batch);
 
+       *batch++ = MI_LOAD_REGISTER_IMM(3);
+
        /* WaDisableGatherAtSetShaderCommonSlice:skl,bxt,kbl,glk */
-       *batch++ = MI_LOAD_REGISTER_IMM(1);
        *batch++ = i915_mmio_reg_offset(COMMON_SLICE_CHICKEN2);
        *batch++ = _MASKED_BIT_DISABLE(
                        GEN9_DISABLE_GATHER_AT_SET_SHADER_COMMON_SLICE);
+
+       /* BSpec: 11391 */
+       *batch++ = i915_mmio_reg_offset(FF_SLICE_CHICKEN);
+       *batch++ = _MASKED_BIT_ENABLE(FF_SLICE_CHICKEN_CL_PROVOKING_VERTEX_FIX);
+
+       /* BSpec: 11299 */
+       *batch++ = i915_mmio_reg_offset(_3D_CHICKEN3);
+       *batch++ = _MASKED_BIT_ENABLE(_3D_CHICKEN_SF_PROVOKING_VERTEX_FIX);
+
        *batch++ = MI_NOOP;
 
        /* WaClearSlmSpaceAtContextSwitch:kbl */

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

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* ✗ Fi.CI.BAT: failure for drm/i915: Enable provoking vertex fix on Gen9+ systems. (rev2)
  2018-06-14 21:53 [PATCH] drm/i915: Enable provoking vertex fix on Gen9+ systems Kenneth Graunke
                   ` (3 preceding siblings ...)
  2018-06-15 18:31 ` [PATCH] " Chris Wilson
@ 2018-06-15 18:34 ` Patchwork
  2018-06-15 19:06 ` [PATCH] drm/i915: Enable provoking vertex fix on Gen9 systems Chris Wilson
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2018-06-15 18:34 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: Enable provoking vertex fix on Gen9+ systems. (rev2)
URL   : https://patchwork.freedesktop.org/series/44781/
State : failure

== Summary ==

Applying: drm/i915: Enable provoking vertex fix on Gen9+ systems.
error: patch failed: drivers/gpu/drm/i915/intel_lrc.c:1565
error: drivers/gpu/drm/i915/intel_lrc.c: patch does not apply
error: Did you hand edit your patch?
It does not apply to blobs recorded in its index.
Using index info to reconstruct a base tree...
M	drivers/gpu/drm/i915/intel_lrc.c
Patch failed at 0001 drm/i915: Enable provoking vertex fix on Gen9+ systems.
Use 'git am --show-current-patch' to see the failed patch
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".

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

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [PATCH] drm/i915: Enable provoking vertex fix on Gen9 systems.
  2018-06-14 21:53 [PATCH] drm/i915: Enable provoking vertex fix on Gen9+ systems Kenneth Graunke
                   ` (4 preceding siblings ...)
  2018-06-15 18:34 ` ✗ Fi.CI.BAT: failure for drm/i915: Enable provoking vertex fix on Gen9+ systems. (rev2) Patchwork
@ 2018-06-15 19:06 ` Chris Wilson
  2018-06-16  5:07   ` Kenneth Graunke
  2018-06-18  9:03   ` Joonas Lahtinen
  2018-06-15 20:09 ` ✓ Fi.CI.BAT: success for drm/i915: Enable provoking vertex fix on Gen9+ systems. (rev3) Patchwork
  2018-06-16  9:35 ` ✓ Fi.CI.IGT: " Patchwork
  7 siblings, 2 replies; 14+ messages in thread
From: Chris Wilson @ 2018-06-15 19:06 UTC (permalink / raw)
  To: intel-gfx; +Cc: Kenneth Graunke

From: Kenneth Graunke <kenneth@whitecape.org>

The SF and clipper units mishandle the provoking vertex in some cases,
which can cause misrendering with shaders that use flat shaded inputs.

There are chicken bits in 3D_CHICKEN3 (for SF) and FF_SLICE_CHICKEN
(for the clipper) that work around the issue.  These registers are
unfortunately not part of the logical context (even the power context),
and so we must reload them every time we start executing in a context.

Bugzilla: https://bugs.freedesktop.org/103047
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---

This is only being set for gen9 right now, do we need it for gen10+?
Ken, I also need your s-o-b.

An open question is how to record such w/a for easy checking from
userspace. Though something like this might be better as part of an
independent verification tool.
-Chris
---
 drivers/gpu/drm/i915/i915_reg.h  |  5 +++++
 drivers/gpu/drm/i915/intel_lrc.c | 12 +++++++++++-
 2 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index b8c0ebd50889..54ec7ab57ce8 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -2432,12 +2432,17 @@ enum i915_power_well_id {
 #define _3D_CHICKEN	_MMIO(0x2084)
 #define  _3D_CHICKEN_HIZ_PLANE_DISABLE_MSAA_4X_SNB	(1 << 10)
 #define _3D_CHICKEN2	_MMIO(0x208c)
+
+#define FF_SLICE_CHICKEN	_MMIO(0x2088)
+#define  FF_SLICE_CHICKEN_CL_PROVOKING_VERTEX_FIX	(1 << 1)
+
 /* Disables pipelining of read flushes past the SF-WIZ interface.
  * Required on all Ironlake steppings according to the B-Spec, but the
  * particular danger of not doing so is not specified.
  */
 # define _3D_CHICKEN2_WM_READ_PIPELINED			(1 << 14)
 #define _3D_CHICKEN3	_MMIO(0x2090)
+#define  _3D_CHICKEN_SF_PROVOKING_VERTEX_FIX		(1 << 12)
 #define  _3D_CHICKEN_SF_DISABLE_OBJEND_CULL		(1 << 10)
 #define  _3D_CHICKEN3_AA_LINE_QUALITY_FIX_ENABLE	(1 << 5)
 #define  _3D_CHICKEN3_SF_DISABLE_FASTCLIP_CULL		(1 << 5)
diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
index 839cb1fc6a01..2b0ae552cc4e 100644
--- a/drivers/gpu/drm/i915/intel_lrc.c
+++ b/drivers/gpu/drm/i915/intel_lrc.c
@@ -1575,11 +1575,21 @@ static u32 *gen9_init_indirectctx_bb(struct intel_engine_cs *engine, u32 *batch)
 	/* WaFlushCoherentL3CacheLinesAtContextSwitch:skl,bxt,glk */
 	batch = gen8_emit_flush_coherentl3_wa(engine, batch);
 
+	*batch++ = MI_LOAD_REGISTER_IMM(3);
+
 	/* WaDisableGatherAtSetShaderCommonSlice:skl,bxt,kbl,glk */
-	*batch++ = MI_LOAD_REGISTER_IMM(1);
 	*batch++ = i915_mmio_reg_offset(COMMON_SLICE_CHICKEN2);
 	*batch++ = _MASKED_BIT_DISABLE(
 			GEN9_DISABLE_GATHER_AT_SET_SHADER_COMMON_SLICE);
+
+	/* BSpec: 11391 */
+	*batch++ = i915_mmio_reg_offset(FF_SLICE_CHICKEN);
+	*batch++ = _MASKED_BIT_ENABLE(FF_SLICE_CHICKEN_CL_PROVOKING_VERTEX_FIX);
+
+	/* BSpec: 11299 */
+	*batch++ = i915_mmio_reg_offset(_3D_CHICKEN3);
+	*batch++ = _MASKED_BIT_ENABLE(_3D_CHICKEN_SF_PROVOKING_VERTEX_FIX);
+
 	*batch++ = MI_NOOP;
 
 	/* WaClearSlmSpaceAtContextSwitch:kbl */
-- 
2.17.1

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

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* ✓ Fi.CI.BAT: success for drm/i915: Enable provoking vertex fix on Gen9+ systems. (rev3)
  2018-06-14 21:53 [PATCH] drm/i915: Enable provoking vertex fix on Gen9+ systems Kenneth Graunke
                   ` (5 preceding siblings ...)
  2018-06-15 19:06 ` [PATCH] drm/i915: Enable provoking vertex fix on Gen9 systems Chris Wilson
@ 2018-06-15 20:09 ` Patchwork
  2018-06-16  9:35 ` ✓ Fi.CI.IGT: " Patchwork
  7 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2018-06-15 20:09 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: Enable provoking vertex fix on Gen9+ systems. (rev3)
URL   : https://patchwork.freedesktop.org/series/44781/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4326 -> Patchwork_9336 =

== Summary - WARNING ==

  Minor unknown changes coming with Patchwork_9336 need to be verified
  manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_9336, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/44781/revisions/3/mbox/

== Possible new issues ==

  Here are the unknown changes that may have been introduced in Patchwork_9336:

  === IGT changes ===

    ==== Warnings ====

    igt@gem_exec_gttfill@basic:
      fi-pnv-d510:        PASS -> SKIP

    
== Known issues ==

  Here are the changes found in Patchwork_9336 that come from known issues:

  === IGT changes ===

    ==== Issues hit ====

    igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
      fi-cnl-psr:         PASS -> DMESG-WARN (fdo#104951)

    igt@prime_vgem@basic-fence-flip:
      fi-ilk-650:         PASS -> FAIL (fdo#104008)

    
    ==== Possible fixes ====

    igt@gem_exec_suspend@basic-s4-devices:
      fi-kbl-7500u:       DMESG-WARN (fdo#105128) -> PASS

    igt@kms_frontbuffer_tracking@basic:
      fi-hsw-peppy:       DMESG-FAIL (fdo#102614, fdo#106103) -> PASS

    
  fdo#102614 https://bugs.freedesktop.org/show_bug.cgi?id=102614
  fdo#104008 https://bugs.freedesktop.org/show_bug.cgi?id=104008
  fdo#104951 https://bugs.freedesktop.org/show_bug.cgi?id=104951
  fdo#105128 https://bugs.freedesktop.org/show_bug.cgi?id=105128
  fdo#106103 https://bugs.freedesktop.org/show_bug.cgi?id=106103


== Participating hosts (43 -> 37) ==

  Missing    (6): fi-ilk-m540 fi-hsw-4200u fi-byt-j1900 fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 


== Build changes ==

    * Linux: CI_DRM_4326 -> Patchwork_9336

  CI_DRM_4326: a50d441f53c192945f40ad053abe420e77e5ace6 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4521: 4aa49a88acdaafed8235837d85a099ad941fc281 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_9336: f23e3821ac5e4eb288a18f87b76611e514a1ef65 @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

f23e3821ac5e drm/i915: Enable provoking vertex fix on Gen9 systems.

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_9336/issues.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] drm/i915: Enable provoking vertex fix on Gen9 systems.
  2018-06-15 19:06 ` [PATCH] drm/i915: Enable provoking vertex fix on Gen9 systems Chris Wilson
@ 2018-06-16  5:07   ` Kenneth Graunke
  2018-06-18  9:03   ` Joonas Lahtinen
  1 sibling, 0 replies; 14+ messages in thread
From: Kenneth Graunke @ 2018-06-16  5:07 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx


[-- Attachment #1.1: Type: text/plain, Size: 4293 bytes --]

On Friday, June 15, 2018 12:06:05 PM PDT Chris Wilson wrote:
> From: Kenneth Graunke <kenneth@whitecape.org>
> 
> The SF and clipper units mishandle the provoking vertex in some cases,
> which can cause misrendering with shaders that use flat shaded inputs.
> 
> There are chicken bits in 3D_CHICKEN3 (for SF) and FF_SLICE_CHICKEN
> (for the clipper) that work around the issue.  These registers are
> unfortunately not part of the logical context (even the power context),
> and so we must reload them every time we start executing in a context.
> 
> Bugzilla: https://bugs.freedesktop.org/103047
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> ---
> 
> This is only being set for gen9 right now, do we need it for gen10+?

The 3D_CHICKEN3 bit is labeled as SKL and KBL.  The FF_SLICE_CHICKEN
bit is labeled as SKL, with no mention of KBL...but the Windows driver
appears to set both on all Gen 9.  It doesn't look like it sets them
on Gen 10, nor is documented to be necessary.  (I haven't brought up
a Cannonlake to test it, though...)

It looks like some of these registers are gone or reworked on Icelake,
so Gen9-only sounds good to me.

> Ken, I also need your s-o-b.

Oops, sorry...got out of the habit of adding that...

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>

Feel free to take authorship if you prefer - you've done much more work
on it than I have at this point. :)  Your call.  Thanks for fixing it
up and getting it landed, by the way!

It's a bummer that we have to do it here...but it seems like the only
place that it can realistically happen, with the power context issue.

It would be nice to Cc this to stable, but it seems like a lot of the
workaround code has changed a lot in the meantime, so not sure how well
it'd apply...

> An open question is how to record such w/a for easy checking from
> userspace. Though something like this might be better as part of an
> independent verification tool.
> -Chris
> ---
>  drivers/gpu/drm/i915/i915_reg.h  |  5 +++++
>  drivers/gpu/drm/i915/intel_lrc.c | 12 +++++++++++-
>  2 files changed, 16 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index b8c0ebd50889..54ec7ab57ce8 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -2432,12 +2432,17 @@ enum i915_power_well_id {
>  #define _3D_CHICKEN	_MMIO(0x2084)
>  #define  _3D_CHICKEN_HIZ_PLANE_DISABLE_MSAA_4X_SNB	(1 << 10)
>  #define _3D_CHICKEN2	_MMIO(0x208c)
> +
> +#define FF_SLICE_CHICKEN	_MMIO(0x2088)
> +#define  FF_SLICE_CHICKEN_CL_PROVOKING_VERTEX_FIX	(1 << 1)
> +
>  /* Disables pipelining of read flushes past the SF-WIZ interface.
>   * Required on all Ironlake steppings according to the B-Spec, but the
>   * particular danger of not doing so is not specified.
>   */
>  # define _3D_CHICKEN2_WM_READ_PIPELINED			(1 << 14)
>  #define _3D_CHICKEN3	_MMIO(0x2090)
> +#define  _3D_CHICKEN_SF_PROVOKING_VERTEX_FIX		(1 << 12)
>  #define  _3D_CHICKEN_SF_DISABLE_OBJEND_CULL		(1 << 10)
>  #define  _3D_CHICKEN3_AA_LINE_QUALITY_FIX_ENABLE	(1 << 5)
>  #define  _3D_CHICKEN3_SF_DISABLE_FASTCLIP_CULL		(1 << 5)
> diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
> index 839cb1fc6a01..2b0ae552cc4e 100644
> --- a/drivers/gpu/drm/i915/intel_lrc.c
> +++ b/drivers/gpu/drm/i915/intel_lrc.c
> @@ -1575,11 +1575,21 @@ static u32 *gen9_init_indirectctx_bb(struct intel_engine_cs *engine, u32 *batch)
>  	/* WaFlushCoherentL3CacheLinesAtContextSwitch:skl,bxt,glk */
>  	batch = gen8_emit_flush_coherentl3_wa(engine, batch);
>  
> +	*batch++ = MI_LOAD_REGISTER_IMM(3);
> +
>  	/* WaDisableGatherAtSetShaderCommonSlice:skl,bxt,kbl,glk */
> -	*batch++ = MI_LOAD_REGISTER_IMM(1);
>  	*batch++ = i915_mmio_reg_offset(COMMON_SLICE_CHICKEN2);
>  	*batch++ = _MASKED_BIT_DISABLE(
>  			GEN9_DISABLE_GATHER_AT_SET_SHADER_COMMON_SLICE);
> +
> +	/* BSpec: 11391 */
> +	*batch++ = i915_mmio_reg_offset(FF_SLICE_CHICKEN);
> +	*batch++ = _MASKED_BIT_ENABLE(FF_SLICE_CHICKEN_CL_PROVOKING_VERTEX_FIX);
> +
> +	/* BSpec: 11299 */
> +	*batch++ = i915_mmio_reg_offset(_3D_CHICKEN3);
> +	*batch++ = _MASKED_BIT_ENABLE(_3D_CHICKEN_SF_PROVOKING_VERTEX_FIX);
> +
>  	*batch++ = MI_NOOP;
>  
>  	/* WaClearSlmSpaceAtContextSwitch:kbl */
> 


[-- Attachment #1.2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

[-- Attachment #2: Type: text/plain, Size: 160 bytes --]

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

^ permalink raw reply	[flat|nested] 14+ messages in thread

* ✓ Fi.CI.IGT: success for drm/i915: Enable provoking vertex fix on Gen9+ systems. (rev3)
  2018-06-14 21:53 [PATCH] drm/i915: Enable provoking vertex fix on Gen9+ systems Kenneth Graunke
                   ` (6 preceding siblings ...)
  2018-06-15 20:09 ` ✓ Fi.CI.BAT: success for drm/i915: Enable provoking vertex fix on Gen9+ systems. (rev3) Patchwork
@ 2018-06-16  9:35 ` Patchwork
  7 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2018-06-16  9:35 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: Enable provoking vertex fix on Gen9+ systems. (rev3)
URL   : https://patchwork.freedesktop.org/series/44781/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4326_full -> Patchwork_9336_full =

== Summary - WARNING ==

  Minor unknown changes coming with Patchwork_9336_full need to be verified
  manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_9336_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

== Possible new issues ==

  Here are the unknown changes that may have been introduced in Patchwork_9336_full:

  === IGT changes ===

    ==== Warnings ====

    igt@gem_mocs_settings@mocs-rc6-ctx-render:
      shard-kbl:          SKIP -> PASS

    igt@gem_mocs_settings@mocs-rc6-vebox:
      shard-kbl:          PASS -> SKIP +3

    
== Known issues ==

  Here are the changes found in Patchwork_9336_full that come from known issues:

  === IGT changes ===

    ==== Issues hit ====

    igt@kms_flip@flip-vs-expired-vblank:
      shard-glk:          PASS -> FAIL (fdo#105189)

    igt@kms_flip@plain-flip-fb-recreate-interruptible:
      shard-glk:          PASS -> FAIL (fdo#100368)

    igt@kms_setmode@basic:
      shard-apl:          PASS -> FAIL (fdo#99912)
      shard-kbl:          PASS -> FAIL (fdo#99912)

    
    ==== Possible fixes ====

    igt@drv_selftest@live_hangcheck:
      shard-kbl:          DMESG-FAIL -> PASS
      shard-apl:          DMESG-FAIL -> PASS

    igt@drv_suspend@fence-restore-untiled:
      shard-glk:          FAIL (fdo#103375) -> PASS

    igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic:
      shard-glk:          FAIL (fdo#106509, fdo#105454) -> PASS

    
    ==== Warnings ====

    igt@drv_selftest@live_gtt:
      shard-glk:          INCOMPLETE (fdo#103359, k.org#198133) -> FAIL (fdo#105347)

    
  fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
  fdo#103359 https://bugs.freedesktop.org/show_bug.cgi?id=103359
  fdo#103375 https://bugs.freedesktop.org/show_bug.cgi?id=103375
  fdo#105189 https://bugs.freedesktop.org/show_bug.cgi?id=105189
  fdo#105347 https://bugs.freedesktop.org/show_bug.cgi?id=105347
  fdo#105454 https://bugs.freedesktop.org/show_bug.cgi?id=105454
  fdo#106509 https://bugs.freedesktop.org/show_bug.cgi?id=106509
  fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912
  k.org#198133 https://bugzilla.kernel.org/show_bug.cgi?id=198133


== Participating hosts (5 -> 5) ==

  No changes in participating hosts


== Build changes ==

    * Linux: CI_DRM_4326 -> Patchwork_9336

  CI_DRM_4326: a50d441f53c192945f40ad053abe420e77e5ace6 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4521: 4aa49a88acdaafed8235837d85a099ad941fc281 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_9336: f23e3821ac5e4eb288a18f87b76611e514a1ef65 @ git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_9336/shards.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] drm/i915: Enable provoking vertex fix on Gen9 systems.
  2018-06-15 19:06 ` [PATCH] drm/i915: Enable provoking vertex fix on Gen9 systems Chris Wilson
  2018-06-16  5:07   ` Kenneth Graunke
@ 2018-06-18  9:03   ` Joonas Lahtinen
  2018-06-18  9:12     ` Chris Wilson
  1 sibling, 1 reply; 14+ messages in thread
From: Joonas Lahtinen @ 2018-06-18  9:03 UTC (permalink / raw)
  To: Chris Wilson, intel-gfx; +Cc: Kenneth Graunke

Quoting Chris Wilson (2018-06-15 22:06:05)
> From: Kenneth Graunke <kenneth@whitecape.org>
> 
> The SF and clipper units mishandle the provoking vertex in some cases,
> which can cause misrendering with shaders that use flat shaded inputs.
> 
> There are chicken bits in 3D_CHICKEN3 (for SF) and FF_SLICE_CHICKEN
> (for the clipper) that work around the issue.  These registers are
> unfortunately not part of the logical context (even the power context),
> and so we must reload them every time we start executing in a context.
> 
> Bugzilla: https://bugs.freedesktop.org/103047
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>

Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>

One note below.

> +++ b/drivers/gpu/drm/i915/intel_lrc.c
> @@ -1575,11 +1575,21 @@ static u32 *gen9_init_indirectctx_bb(struct intel_engine_cs *engine, u32 *batch)
>         /* WaFlushCoherentL3CacheLinesAtContextSwitch:skl,bxt,glk */
>         batch = gen8_emit_flush_coherentl3_wa(engine, batch);
>  
> +       *batch++ = MI_LOAD_REGISTER_IMM(3);
> +
>         /* WaDisableGatherAtSetShaderCommonSlice:skl,bxt,kbl,glk */
> -       *batch++ = MI_LOAD_REGISTER_IMM(1);
>         *batch++ = i915_mmio_reg_offset(COMMON_SLICE_CHICKEN2);
>         *batch++ = _MASKED_BIT_DISABLE(
>                         GEN9_DISABLE_GATHER_AT_SET_SHADER_COMMON_SLICE);
> +
> +       /* BSpec: 11391 */
> +       *batch++ = i915_mmio_reg_offset(FF_SLICE_CHICKEN);
> +       *batch++ = _MASKED_BIT_ENABLE(FF_SLICE_CHICKEN_CL_PROVOKING_VERTEX_FIX);
> +
> +       /* BSpec: 11299 */
> +       *batch++ = i915_mmio_reg_offset(_3D_CHICKEN3);
> +       *batch++ = _MASKED_BIT_ENABLE(_3D_CHICKEN_SF_PROVOKING_VERTEX_FIX);

I'm almost betting that somebody will take one of these 3 off without
noticing the distant LOAD_REGISTER_IMM(). To perfect this, const table
of pairs and use ARRAY_SIZE()? Then we're also one step closer to the
const W/A tables...

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

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH] drm/i915: Enable provoking vertex fix on Gen9 systems.
  2018-06-18  9:03   ` Joonas Lahtinen
@ 2018-06-18  9:12     ` Chris Wilson
  0 siblings, 0 replies; 14+ messages in thread
From: Chris Wilson @ 2018-06-18  9:12 UTC (permalink / raw)
  To: Joonas Lahtinen, intel-gfx; +Cc: Kenneth Graunke

Quoting Joonas Lahtinen (2018-06-18 10:03:24)
> Quoting Chris Wilson (2018-06-15 22:06:05)
> > From: Kenneth Graunke <kenneth@whitecape.org>
> > 
> > The SF and clipper units mishandle the provoking vertex in some cases,
> > which can cause misrendering with shaders that use flat shaded inputs.
> > 
> > There are chicken bits in 3D_CHICKEN3 (for SF) and FF_SLICE_CHICKEN
> > (for the clipper) that work around the issue.  These registers are
> > unfortunately not part of the logical context (even the power context),
> > and so we must reload them every time we start executing in a context.
> > 
> > Bugzilla: https://bugs.freedesktop.org/103047
> > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> 
> Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>

Thanks, fingers crossed we don't discover a reason why we shouldn't do
this for all contexts... Pushed.
 
> One note below.
> 
> > +++ b/drivers/gpu/drm/i915/intel_lrc.c
> > @@ -1575,11 +1575,21 @@ static u32 *gen9_init_indirectctx_bb(struct intel_engine_cs *engine, u32 *batch)
> >         /* WaFlushCoherentL3CacheLinesAtContextSwitch:skl,bxt,glk */
> >         batch = gen8_emit_flush_coherentl3_wa(engine, batch);
> >  
> > +       *batch++ = MI_LOAD_REGISTER_IMM(3);
> > +
> >         /* WaDisableGatherAtSetShaderCommonSlice:skl,bxt,kbl,glk */
> > -       *batch++ = MI_LOAD_REGISTER_IMM(1);
> >         *batch++ = i915_mmio_reg_offset(COMMON_SLICE_CHICKEN2);
> >         *batch++ = _MASKED_BIT_DISABLE(
> >                         GEN9_DISABLE_GATHER_AT_SET_SHADER_COMMON_SLICE);
> > +
> > +       /* BSpec: 11391 */
> > +       *batch++ = i915_mmio_reg_offset(FF_SLICE_CHICKEN);
> > +       *batch++ = _MASKED_BIT_ENABLE(FF_SLICE_CHICKEN_CL_PROVOKING_VERTEX_FIX);
> > +
> > +       /* BSpec: 11299 */
> > +       *batch++ = i915_mmio_reg_offset(_3D_CHICKEN3);
> > +       *batch++ = _MASKED_BIT_ENABLE(_3D_CHICKEN_SF_PROVOKING_VERTEX_FIX);
> 
> I'm almost betting that somebody will take one of these 3 off without
> noticing the distant LOAD_REGISTER_IMM(). To perfect this, const table
> of pairs and use ARRAY_SIZE()? Then we're also one step closer to the
> const W/A tables...

I'll be back later to tidy this up.
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2018-06-18  9:12 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-06-14 21:53 [PATCH] drm/i915: Enable provoking vertex fix on Gen9+ systems Kenneth Graunke
2018-06-14 22:37 ` ✗ Fi.CI.CHECKPATCH: warning for " Patchwork
2018-06-14 22:53 ` ✗ Fi.CI.BAT: failure " Patchwork
2018-06-15  7:16   ` Chris Wilson
2018-06-15  7:51     ` Chris Wilson
2018-06-15 14:52 ` Patchwork
2018-06-15 18:31 ` [PATCH] " Chris Wilson
2018-06-15 18:34 ` ✗ Fi.CI.BAT: failure for drm/i915: Enable provoking vertex fix on Gen9+ systems. (rev2) Patchwork
2018-06-15 19:06 ` [PATCH] drm/i915: Enable provoking vertex fix on Gen9 systems Chris Wilson
2018-06-16  5:07   ` Kenneth Graunke
2018-06-18  9:03   ` Joonas Lahtinen
2018-06-18  9:12     ` Chris Wilson
2018-06-15 20:09 ` ✓ Fi.CI.BAT: success for drm/i915: Enable provoking vertex fix on Gen9+ systems. (rev3) Patchwork
2018-06-16  9:35 ` ✓ Fi.CI.IGT: " Patchwork

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.