All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] drm/i915: Implement WaDisableHiZPlanesWhenMSAAEnabled
@ 2012-12-14 22:38 Daniel Vetter
  2012-12-14 22:38 ` [PATCH 2/2] drm/i915: Implement WaSetupGtModeTdRowDispatch Daniel Vetter
  2012-12-17 13:31 ` [PATCH 1/2] drm/i915: Implement WaDisableHiZPlanesWhenMSAAEnabled Rodrigo Vivi
  0 siblings, 2 replies; 6+ messages in thread
From: Daniel Vetter @ 2012-12-14 22:38 UTC (permalink / raw)
  To: Intel Graphics Development; +Cc: Daniel Vetter

Quoting from Bspec, 3D_CHICKEN1, bit 10

This bit needs to be set always to "1", Project: DevSNB "

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
 drivers/gpu/drm/i915/i915_reg.h |    1 +
 drivers/gpu/drm/i915/intel_pm.c |    4 ++++
 2 files changed, 5 insertions(+)

diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index f834804..d72744e 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -518,6 +518,7 @@
  * the enables for writing to the corresponding low bit.
  */
 #define _3D_CHICKEN	0x02084
+#define  _3D_CHICKEN_HIZ_PLANE_DISABLE_MSAA_4X_SNB	(1 << 10)
 #define _3D_CHICKEN2	0x0208c
 /* Disables pipelining of read flushes past the SF-WIZ interface.
  * Required on all Ironlake steppings according to the B-Spec, but the
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index abfff29..2fddd17 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -3474,6 +3474,10 @@ static void gen6_init_clock_gating(struct drm_device *dev)
 		   I915_READ(ILK_DISPLAY_CHICKEN2) |
 		   ILK_ELPIN_409_SELECT);
 
+	/* WaDisableHiZPlanesWhenMSAAEnabled */
+	I915_WRITE(_3D_CHICKEN,
+		   _MASKED_BIT_ENABLE(_3D_CHICKEN_HIZ_PLANE_DISABLE_MSAA_4X_SNB));
+
 	I915_WRITE(WM3_LP_ILK, 0);
 	I915_WRITE(WM2_LP_ILK, 0);
 	I915_WRITE(WM1_LP_ILK, 0);
-- 
1.7.10.4

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

* [PATCH 2/2] drm/i915: Implement WaSetupGtModeTdRowDispatch
  2012-12-14 22:38 [PATCH 1/2] drm/i915: Implement WaDisableHiZPlanesWhenMSAAEnabled Daniel Vetter
@ 2012-12-14 22:38 ` Daniel Vetter
  2012-12-17 11:43   ` Rodrigo Vivi
  2012-12-17 13:31 ` [PATCH 1/2] drm/i915: Implement WaDisableHiZPlanesWhenMSAAEnabled Rodrigo Vivi
  1 sibling, 1 reply; 6+ messages in thread
From: Daniel Vetter @ 2012-12-14 22:38 UTC (permalink / raw)
  To: Intel Graphics Development; +Cc: Daniel Vetter

I'm not really sure, since the w/a entry is as thin on details as
ever, and Bspec doesn't say anything about it. But I've figured only
dispatching to rows 0&1 instead of all four should be the right thing
for GT1.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
---
 drivers/gpu/drm/i915/i915_drv.h |    2 ++
 drivers/gpu/drm/i915/i915_reg.h |    3 ++-
 drivers/gpu/drm/i915/intel_pm.c |    5 +++++
 3 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 514aee8..84be497 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -1196,6 +1196,8 @@ struct drm_i915_file_private {
 #define IS_IVB_GT1(dev)		((dev)->pci_device == 0x0156 || \
 				 (dev)->pci_device == 0x0152 ||	\
 				 (dev)->pci_device == 0x015a)
+#define IS_SNB_GT1(dev)		((dev)->pci_device == 0x0102 || \
+				 (dev)->pci_device == 0x0106)
 #define IS_VALLEYVIEW(dev)	(INTEL_INFO(dev)->is_valleyview)
 #define IS_HASWELL(dev)	(INTEL_INFO(dev)->is_haswell)
 #define IS_MOBILE(dev)		(INTEL_INFO(dev)->is_mobile)
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index d72744e..4abf4f9 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -534,7 +534,8 @@
 # define MI_FLUSH_ENABLE				(1 << 12)
 
 #define GEN6_GT_MODE	0x20d0
-#define   GEN6_GT_MODE_HI	(1 << 9)
+#define   GEN6_GT_MODE_HI				(1 << 9)
+#define   GEN6_TD_FOUR_ROW_DISPATCH_DISABLE		(1 << 5)
 
 #define GFX_MODE	0x02520
 #define GFX_MODE_GEN7	0x0229c
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 2fddd17..89324a9 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -3478,6 +3478,11 @@ static void gen6_init_clock_gating(struct drm_device *dev)
 	I915_WRITE(_3D_CHICKEN,
 		   _MASKED_BIT_ENABLE(_3D_CHICKEN_HIZ_PLANE_DISABLE_MSAA_4X_SNB));
 
+	/* WaSetupGtModeTdRowDispatch */
+	if (IS_SNB_GT1(dev))
+		I915_WRITE(GEN6_GT_MODE,
+			   _MASKED_BIT_ENABLE(GEN6_TD_FOUR_ROW_DISPATCH_DISABLE));
+
 	I915_WRITE(WM3_LP_ILK, 0);
 	I915_WRITE(WM2_LP_ILK, 0);
 	I915_WRITE(WM1_LP_ILK, 0);
-- 
1.7.10.4

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

* Re: [PATCH 2/2] drm/i915: Implement WaSetupGtModeTdRowDispatch
  2012-12-14 22:38 ` [PATCH 2/2] drm/i915: Implement WaSetupGtModeTdRowDispatch Daniel Vetter
@ 2012-12-17 11:43   ` Rodrigo Vivi
  2012-12-17 14:11     ` Daniel Vetter
  2012-12-17 16:27     ` Daniel Vetter
  0 siblings, 2 replies; 6+ messages in thread
From: Rodrigo Vivi @ 2012-12-17 11:43 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: Intel Graphics Development

I checked wadatabase and bspec and agree with your understanding, so
feel free to use:
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@gmail.com>



On Fri, Dec 14, 2012 at 8:38 PM, Daniel Vetter <daniel.vetter@ffwll.ch> wrote:
> I'm not really sure, since the w/a entry is as thin on details as
> ever, and Bspec doesn't say anything about it. But I've figured only
> dispatching to rows 0&1 instead of all four should be the right thing
> for GT1.
>
> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> ---
>  drivers/gpu/drm/i915/i915_drv.h |    2 ++
>  drivers/gpu/drm/i915/i915_reg.h |    3 ++-
>  drivers/gpu/drm/i915/intel_pm.c |    5 +++++
>  3 files changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index 514aee8..84be497 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -1196,6 +1196,8 @@ struct drm_i915_file_private {
>  #define IS_IVB_GT1(dev)                ((dev)->pci_device == 0x0156 || \
>                                  (dev)->pci_device == 0x0152 || \
>                                  (dev)->pci_device == 0x015a)
> +#define IS_SNB_GT1(dev)                ((dev)->pci_device == 0x0102 || \
> +                                (dev)->pci_device == 0x0106)
>  #define IS_VALLEYVIEW(dev)     (INTEL_INFO(dev)->is_valleyview)
>  #define IS_HASWELL(dev)        (INTEL_INFO(dev)->is_haswell)
>  #define IS_MOBILE(dev)         (INTEL_INFO(dev)->is_mobile)
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index d72744e..4abf4f9 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -534,7 +534,8 @@
>  # define MI_FLUSH_ENABLE                               (1 << 12)
>
>  #define GEN6_GT_MODE   0x20d0
> -#define   GEN6_GT_MODE_HI      (1 << 9)
> +#define   GEN6_GT_MODE_HI                              (1 << 9)
> +#define   GEN6_TD_FOUR_ROW_DISPATCH_DISABLE            (1 << 5)
>
>  #define GFX_MODE       0x02520
>  #define GFX_MODE_GEN7  0x0229c
> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
> index 2fddd17..89324a9 100644
> --- a/drivers/gpu/drm/i915/intel_pm.c
> +++ b/drivers/gpu/drm/i915/intel_pm.c
> @@ -3478,6 +3478,11 @@ static void gen6_init_clock_gating(struct drm_device *dev)
>         I915_WRITE(_3D_CHICKEN,
>                    _MASKED_BIT_ENABLE(_3D_CHICKEN_HIZ_PLANE_DISABLE_MSAA_4X_SNB));
>
> +       /* WaSetupGtModeTdRowDispatch */
> +       if (IS_SNB_GT1(dev))
> +               I915_WRITE(GEN6_GT_MODE,
> +                          _MASKED_BIT_ENABLE(GEN6_TD_FOUR_ROW_DISPATCH_DISABLE));
> +
>         I915_WRITE(WM3_LP_ILK, 0);
>         I915_WRITE(WM2_LP_ILK, 0);
>         I915_WRITE(WM1_LP_ILK, 0);
> --
> 1.7.10.4
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx



-- 
Rodrigo Vivi
Blog: http://blog.vivi.eng.br

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

* Re: [PATCH 1/2] drm/i915: Implement WaDisableHiZPlanesWhenMSAAEnabled
  2012-12-14 22:38 [PATCH 1/2] drm/i915: Implement WaDisableHiZPlanesWhenMSAAEnabled Daniel Vetter
  2012-12-14 22:38 ` [PATCH 2/2] drm/i915: Implement WaSetupGtModeTdRowDispatch Daniel Vetter
@ 2012-12-17 13:31 ` Rodrigo Vivi
  1 sibling, 0 replies; 6+ messages in thread
From: Rodrigo Vivi @ 2012-12-17 13:31 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: Intel Graphics Development

Reviewed-by: Rodrigo Vivi <rodrigo.vivi@gmail.com>

On Fri, Dec 14, 2012 at 8:38 PM, Daniel Vetter <daniel.vetter@ffwll.ch> wrote:
> Quoting from Bspec, 3D_CHICKEN1, bit 10
>
> This bit needs to be set always to "1", Project: DevSNB "
>
> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> ---
>  drivers/gpu/drm/i915/i915_reg.h |    1 +
>  drivers/gpu/drm/i915/intel_pm.c |    4 ++++
>  2 files changed, 5 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index f834804..d72744e 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -518,6 +518,7 @@
>   * the enables for writing to the corresponding low bit.
>   */
>  #define _3D_CHICKEN    0x02084
> +#define  _3D_CHICKEN_HIZ_PLANE_DISABLE_MSAA_4X_SNB     (1 << 10)
>  #define _3D_CHICKEN2   0x0208c
>  /* Disables pipelining of read flushes past the SF-WIZ interface.
>   * Required on all Ironlake steppings according to the B-Spec, but the
> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
> index abfff29..2fddd17 100644
> --- a/drivers/gpu/drm/i915/intel_pm.c
> +++ b/drivers/gpu/drm/i915/intel_pm.c
> @@ -3474,6 +3474,10 @@ static void gen6_init_clock_gating(struct drm_device *dev)
>                    I915_READ(ILK_DISPLAY_CHICKEN2) |
>                    ILK_ELPIN_409_SELECT);
>
> +       /* WaDisableHiZPlanesWhenMSAAEnabled */
> +       I915_WRITE(_3D_CHICKEN,
> +                  _MASKED_BIT_ENABLE(_3D_CHICKEN_HIZ_PLANE_DISABLE_MSAA_4X_SNB));
> +
>         I915_WRITE(WM3_LP_ILK, 0);
>         I915_WRITE(WM2_LP_ILK, 0);
>         I915_WRITE(WM1_LP_ILK, 0);
> --
> 1.7.10.4
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx



-- 
Rodrigo Vivi
Blog: http://blog.vivi.eng.br

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

* Re: [PATCH 2/2] drm/i915: Implement WaSetupGtModeTdRowDispatch
  2012-12-17 11:43   ` Rodrigo Vivi
@ 2012-12-17 14:11     ` Daniel Vetter
  2012-12-17 16:27     ` Daniel Vetter
  1 sibling, 0 replies; 6+ messages in thread
From: Daniel Vetter @ 2012-12-17 14:11 UTC (permalink / raw)
  To: Rodrigo Vivi; +Cc: Daniel Vetter, Intel Graphics Development

On Mon, Dec 17, 2012 at 09:43:37AM -0200, Rodrigo Vivi wrote:
> I checked wadatabase and bspec and agree with your understanding, so
> feel free to use:
> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@gmail.com>

Both picked up for -fixes, thanks for the review.
-Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch

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

* Re: [PATCH 2/2] drm/i915: Implement WaSetupGtModeTdRowDispatch
  2012-12-17 11:43   ` Rodrigo Vivi
  2012-12-17 14:11     ` Daniel Vetter
@ 2012-12-17 16:27     ` Daniel Vetter
  1 sibling, 0 replies; 6+ messages in thread
From: Daniel Vetter @ 2012-12-17 16:27 UTC (permalink / raw)
  To: Rodrigo Vivi; +Cc: Daniel Vetter, Intel Graphics Development

On Mon, Dec 17, 2012 at 09:43:37AM -0200, Rodrigo Vivi wrote:
> I checked wadatabase and bspec and agree with your understanding, so
> feel free to use:
> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@gmail.com>

Chris spotted that I've missed the server GT1. Patch fixed up locally.
-Daniel

> 
> 
> 
> On Fri, Dec 14, 2012 at 8:38 PM, Daniel Vetter <daniel.vetter@ffwll.ch> wrote:
> > I'm not really sure, since the w/a entry is as thin on details as
> > ever, and Bspec doesn't say anything about it. But I've figured only
> > dispatching to rows 0&1 instead of all four should be the right thing
> > for GT1.
> >
> > Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> > ---
> >  drivers/gpu/drm/i915/i915_drv.h |    2 ++
> >  drivers/gpu/drm/i915/i915_reg.h |    3 ++-
> >  drivers/gpu/drm/i915/intel_pm.c |    5 +++++
> >  3 files changed, 9 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> > index 514aee8..84be497 100644
> > --- a/drivers/gpu/drm/i915/i915_drv.h
> > +++ b/drivers/gpu/drm/i915/i915_drv.h
> > @@ -1196,6 +1196,8 @@ struct drm_i915_file_private {
> >  #define IS_IVB_GT1(dev)                ((dev)->pci_device == 0x0156 || \
> >                                  (dev)->pci_device == 0x0152 || \
> >                                  (dev)->pci_device == 0x015a)
> > +#define IS_SNB_GT1(dev)                ((dev)->pci_device == 0x0102 || \
> > +                                (dev)->pci_device == 0x0106)
> >  #define IS_VALLEYVIEW(dev)     (INTEL_INFO(dev)->is_valleyview)
> >  #define IS_HASWELL(dev)        (INTEL_INFO(dev)->is_haswell)
> >  #define IS_MOBILE(dev)         (INTEL_INFO(dev)->is_mobile)
> > diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> > index d72744e..4abf4f9 100644
> > --- a/drivers/gpu/drm/i915/i915_reg.h
> > +++ b/drivers/gpu/drm/i915/i915_reg.h
> > @@ -534,7 +534,8 @@
> >  # define MI_FLUSH_ENABLE                               (1 << 12)
> >
> >  #define GEN6_GT_MODE   0x20d0
> > -#define   GEN6_GT_MODE_HI      (1 << 9)
> > +#define   GEN6_GT_MODE_HI                              (1 << 9)
> > +#define   GEN6_TD_FOUR_ROW_DISPATCH_DISABLE            (1 << 5)
> >
> >  #define GFX_MODE       0x02520
> >  #define GFX_MODE_GEN7  0x0229c
> > diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
> > index 2fddd17..89324a9 100644
> > --- a/drivers/gpu/drm/i915/intel_pm.c
> > +++ b/drivers/gpu/drm/i915/intel_pm.c
> > @@ -3478,6 +3478,11 @@ static void gen6_init_clock_gating(struct drm_device *dev)
> >         I915_WRITE(_3D_CHICKEN,
> >                    _MASKED_BIT_ENABLE(_3D_CHICKEN_HIZ_PLANE_DISABLE_MSAA_4X_SNB));
> >
> > +       /* WaSetupGtModeTdRowDispatch */
> > +       if (IS_SNB_GT1(dev))
> > +               I915_WRITE(GEN6_GT_MODE,
> > +                          _MASKED_BIT_ENABLE(GEN6_TD_FOUR_ROW_DISPATCH_DISABLE));
> > +
> >         I915_WRITE(WM3_LP_ILK, 0);
> >         I915_WRITE(WM2_LP_ILK, 0);
> >         I915_WRITE(WM1_LP_ILK, 0);
> > --
> > 1.7.10.4
> >
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx@lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
> 
> 
> 
> -- 
> Rodrigo Vivi
> Blog: http://blog.vivi.eng.br

-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch

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

end of thread, other threads:[~2012-12-17 16:26 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-12-14 22:38 [PATCH 1/2] drm/i915: Implement WaDisableHiZPlanesWhenMSAAEnabled Daniel Vetter
2012-12-14 22:38 ` [PATCH 2/2] drm/i915: Implement WaSetupGtModeTdRowDispatch Daniel Vetter
2012-12-17 11:43   ` Rodrigo Vivi
2012-12-17 14:11     ` Daniel Vetter
2012-12-17 16:27     ` Daniel Vetter
2012-12-17 13:31 ` [PATCH 1/2] drm/i915: Implement WaDisableHiZPlanesWhenMSAAEnabled Rodrigo Vivi

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.