diff mbox

[04/11] drm/i915/icl: WaEnableFloatBlendOptimization

Message ID 1527285939-20113-5-git-send-email-oscar.mateo@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

oscar.mateo@intel.com May 25, 2018, 10:05 p.m. UTC
Enables blend optimization for floating point RTs

v2: Rebased on top of the WA refactoring
v3: Added References (Mika)

References: HSDES#1406393558
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Signed-off-by: Oscar Mateo <oscar.mateo@intel.com>
---
 drivers/gpu/drm/i915/i915_reg.h          | 3 +++
 drivers/gpu/drm/i915/intel_workarounds.c | 3 +++
 2 files changed, 6 insertions(+)

Comments

Mika Kuoppala May 29, 2018, 12:07 p.m. UTC | #1
Oscar Mateo <oscar.mateo@intel.com> writes:

> Enables blend optimization for floating point RTs
>
> v2: Rebased on top of the WA refactoring
> v3: Added References (Mika)
>
> References: HSDES#1406393558
> Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
> Signed-off-by: Oscar Mateo <oscar.mateo@intel.com>

Let's see if we can get away without whitelisting this,
Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>

> ---
>  drivers/gpu/drm/i915/i915_reg.h          | 3 +++
>  drivers/gpu/drm/i915/intel_workarounds.c | 3 +++
>  2 files changed, 6 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index 6e88c6b..f123c3e 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -2663,6 +2663,9 @@ enum i915_power_well_id {
>  #define   GEN8_4x4_STC_OPTIMIZATION_DISABLE	(1<<6)
>  #define   GEN9_PARTIAL_RESOLVE_IN_VC_DISABLE	(1<<1)
>  
> +#define GEN10_CACHE_MODE_SS			_MMIO(0xe420)
> +#define   FLOAT_BLEND_OPTIMIZATION_ENABLE	(1 << 4)
> +
>  #define GEN6_BLITTER_ECOSKPD	_MMIO(0x221d0)
>  #define   GEN6_BLITTER_LOCK_SHIFT			16
>  #define   GEN6_BLITTER_FBC_NOTIFY			(1<<3)
> diff --git a/drivers/gpu/drm/i915/intel_workarounds.c b/drivers/gpu/drm/i915/intel_workarounds.c
> index 33a1a0c..e9c00b0 100644
> --- a/drivers/gpu/drm/i915/intel_workarounds.c
> +++ b/drivers/gpu/drm/i915/intel_workarounds.c
> @@ -479,6 +479,9 @@ static int icl_ctx_workarounds_init(struct drm_i915_private *dev_priv)
>  		WA_SET_BIT_MASKED(GEN11_COMMON_SLICE_CHICKEN3,
>  				  GEN11_BLEND_EMB_FIX_DISABLE_IN_RCC);
>  
> +	/* WaEnableFloatBlendOptimization:icl */
> +	WA_SET_BIT_MASKED(GEN10_CACHE_MODE_SS, FLOAT_BLEND_OPTIMIZATION_ENABLE);
> +
>  	return 0;
>  }
>  
> -- 
> 1.9.1
Lionel Landwerlin May 29, 2018, 12:47 p.m. UTC | #2
FYI, we're setting this in Mesa :
https://cgit.freedesktop.org/mesa/mesa/tree/src/intel/vulkan/genX_state.c#n130
https://cgit.freedesktop.org/mesa/mesa/tree/src/mesa/drivers/dri/i965/brw_state_upload.c#n67
I don't think we realized this was a privileged register.

Anuj: Maybe we can drop it?

-
Lionel

On 29/05/18 13:07, Mika Kuoppala wrote:
> Oscar Mateo <oscar.mateo@intel.com> writes:
>
>> Enables blend optimization for floating point RTs
>>
>> v2: Rebased on top of the WA refactoring
>> v3: Added References (Mika)
>>
>> References: HSDES#1406393558
>> Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
>> Signed-off-by: Oscar Mateo <oscar.mateo@intel.com>
> Let's see if we can get away without whitelisting this,
> Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
>
>> ---
>>   drivers/gpu/drm/i915/i915_reg.h          | 3 +++
>>   drivers/gpu/drm/i915/intel_workarounds.c | 3 +++
>>   2 files changed, 6 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
>> index 6e88c6b..f123c3e 100644
>> --- a/drivers/gpu/drm/i915/i915_reg.h
>> +++ b/drivers/gpu/drm/i915/i915_reg.h
>> @@ -2663,6 +2663,9 @@ enum i915_power_well_id {
>>   #define   GEN8_4x4_STC_OPTIMIZATION_DISABLE	(1<<6)
>>   #define   GEN9_PARTIAL_RESOLVE_IN_VC_DISABLE	(1<<1)
>>   
>> +#define GEN10_CACHE_MODE_SS			_MMIO(0xe420)
>> +#define   FLOAT_BLEND_OPTIMIZATION_ENABLE	(1 << 4)
>> +
>>   #define GEN6_BLITTER_ECOSKPD	_MMIO(0x221d0)
>>   #define   GEN6_BLITTER_LOCK_SHIFT			16
>>   #define   GEN6_BLITTER_FBC_NOTIFY			(1<<3)
>> diff --git a/drivers/gpu/drm/i915/intel_workarounds.c b/drivers/gpu/drm/i915/intel_workarounds.c
>> index 33a1a0c..e9c00b0 100644
>> --- a/drivers/gpu/drm/i915/intel_workarounds.c
>> +++ b/drivers/gpu/drm/i915/intel_workarounds.c
>> @@ -479,6 +479,9 @@ static int icl_ctx_workarounds_init(struct drm_i915_private *dev_priv)
>>   		WA_SET_BIT_MASKED(GEN11_COMMON_SLICE_CHICKEN3,
>>   				  GEN11_BLEND_EMB_FIX_DISABLE_IN_RCC);
>>   
>> +	/* WaEnableFloatBlendOptimization:icl */
>> +	WA_SET_BIT_MASKED(GEN10_CACHE_MODE_SS, FLOAT_BLEND_OPTIMIZATION_ENABLE);
>> +
>>   	return 0;
>>   }
>>   
>> -- 
>> 1.9.1
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Anuj Phogat May 29, 2018, 7:13 p.m. UTC | #3
On Tue, May 29, 2018 at 5:47 AM, Lionel Landwerlin
<lionel.g.landwerlin@intel.com> wrote:
> FYI, we're setting this in Mesa :
> https://cgit.freedesktop.org/mesa/mesa/tree/src/intel/vulkan/genX_state.c#n130
> https://cgit.freedesktop.org/mesa/mesa/tree/src/mesa/drivers/dri/i965/brw_state_upload.c#n67
> I don't think we realized this was a privileged register.
>
No, I didn't.
> Anuj: Maybe we can drop it?
>
Yes, I'll send out patches to remove it from Mesa.
> -
> Lionel
>
>
> On 29/05/18 13:07, Mika Kuoppala wrote:
>>
>> Oscar Mateo <oscar.mateo@intel.com> writes:
>>
>>> Enables blend optimization for floating point RTs
>>>
>>> v2: Rebased on top of the WA refactoring
>>> v3: Added References (Mika)
>>>
>>> References: HSDES#1406393558
>>> Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
>>> Signed-off-by: Oscar Mateo <oscar.mateo@intel.com>
>>
>> Let's see if we can get away without whitelisting this,
>> Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>
>>
>>> ---
>>>   drivers/gpu/drm/i915/i915_reg.h          | 3 +++
>>>   drivers/gpu/drm/i915/intel_workarounds.c | 3 +++
>>>   2 files changed, 6 insertions(+)
>>>
>>> diff --git a/drivers/gpu/drm/i915/i915_reg.h
>>> b/drivers/gpu/drm/i915/i915_reg.h
>>> index 6e88c6b..f123c3e 100644
>>> --- a/drivers/gpu/drm/i915/i915_reg.h
>>> +++ b/drivers/gpu/drm/i915/i915_reg.h
>>> @@ -2663,6 +2663,9 @@ enum i915_power_well_id {
>>>   #define   GEN8_4x4_STC_OPTIMIZATION_DISABLE   (1<<6)
>>>   #define   GEN9_PARTIAL_RESOLVE_IN_VC_DISABLE  (1<<1)
>>>   +#define GEN10_CACHE_MODE_SS                  _MMIO(0xe420)
>>> +#define   FLOAT_BLEND_OPTIMIZATION_ENABLE      (1 << 4)
>>> +
>>>   #define GEN6_BLITTER_ECOSKPD  _MMIO(0x221d0)
>>>   #define   GEN6_BLITTER_LOCK_SHIFT                     16
>>>   #define   GEN6_BLITTER_FBC_NOTIFY                     (1<<3)
>>> diff --git a/drivers/gpu/drm/i915/intel_workarounds.c
>>> b/drivers/gpu/drm/i915/intel_workarounds.c
>>> index 33a1a0c..e9c00b0 100644
>>> --- a/drivers/gpu/drm/i915/intel_workarounds.c
>>> +++ b/drivers/gpu/drm/i915/intel_workarounds.c
>>> @@ -479,6 +479,9 @@ static int icl_ctx_workarounds_init(struct
>>> drm_i915_private *dev_priv)
>>>                 WA_SET_BIT_MASKED(GEN11_COMMON_SLICE_CHICKEN3,
>>>                                   GEN11_BLEND_EMB_FIX_DISABLE_IN_RCC);
>>>   +     /* WaEnableFloatBlendOptimization:icl */
>>> +       WA_SET_BIT_MASKED(GEN10_CACHE_MODE_SS,
>>> FLOAT_BLEND_OPTIMIZATION_ENABLE);
>>> +
>>>         return 0;
>>>   }
>>>
>>> --
>>> 1.9.1
>>
>> _______________________________________________
>> Intel-gfx mailing list
>> Intel-gfx@lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
>
>
Chris Wilson July 23, 2018, 12:03 p.m. UTC | #4
Quoting Oscar Mateo (2018-05-25 23:05:32)
> Enables blend optimization for floating point RTs
> 
> v2: Rebased on top of the WA refactoring
> v3: Added References (Mika)
> 
> References: HSDES#1406393558
> Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
> Signed-off-by: Oscar Mateo <oscar.mateo@intel.com>
> ---
>  drivers/gpu/drm/i915/i915_reg.h          | 3 +++
>  drivers/gpu/drm/i915/intel_workarounds.c | 3 +++
>  2 files changed, 6 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
> index 6e88c6b..f123c3e 100644
> --- a/drivers/gpu/drm/i915/i915_reg.h
> +++ b/drivers/gpu/drm/i915/i915_reg.h
> @@ -2663,6 +2663,9 @@ enum i915_power_well_id {
>  #define   GEN8_4x4_STC_OPTIMIZATION_DISABLE    (1<<6)
>  #define   GEN9_PARTIAL_RESOLVE_IN_VC_DISABLE   (1<<1)
>  
> +#define GEN10_CACHE_MODE_SS                    _MMIO(0xe420)
> +#define   FLOAT_BLEND_OPTIMIZATION_ENABLE      (1 << 4)
> +
>  #define GEN6_BLITTER_ECOSKPD   _MMIO(0x221d0)
>  #define   GEN6_BLITTER_LOCK_SHIFT                      16
>  #define   GEN6_BLITTER_FBC_NOTIFY                      (1<<3)
> diff --git a/drivers/gpu/drm/i915/intel_workarounds.c b/drivers/gpu/drm/i915/intel_workarounds.c
> index 33a1a0c..e9c00b0 100644
> --- a/drivers/gpu/drm/i915/intel_workarounds.c
> +++ b/drivers/gpu/drm/i915/intel_workarounds.c
> @@ -479,6 +479,9 @@ static int icl_ctx_workarounds_init(struct drm_i915_private *dev_priv)
>                 WA_SET_BIT_MASKED(GEN11_COMMON_SLICE_CHICKEN3,
>                                   GEN11_BLEND_EMB_FIX_DISABLE_IN_RCC);
>  
> +       /* WaEnableFloatBlendOptimization:icl */
> +       WA_SET_BIT_MASKED(GEN10_CACHE_MODE_SS, FLOAT_BLEND_OPTIMIZATION_ENABLE);

This is not sticking according to 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_4527/fi-icl-u/igt@gem_workarounds@basic-read.html

(gem_workarounds:3598) DEBUG:   Address	val		mask		read		result
(gem_workarounds:3598) WARNING: 0x0E420	0x00100010	0x00000010	0x00000000	FAIL
-Chris
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index 6e88c6b..f123c3e 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -2663,6 +2663,9 @@  enum i915_power_well_id {
 #define   GEN8_4x4_STC_OPTIMIZATION_DISABLE	(1<<6)
 #define   GEN9_PARTIAL_RESOLVE_IN_VC_DISABLE	(1<<1)
 
+#define GEN10_CACHE_MODE_SS			_MMIO(0xe420)
+#define   FLOAT_BLEND_OPTIMIZATION_ENABLE	(1 << 4)
+
 #define GEN6_BLITTER_ECOSKPD	_MMIO(0x221d0)
 #define   GEN6_BLITTER_LOCK_SHIFT			16
 #define   GEN6_BLITTER_FBC_NOTIFY			(1<<3)
diff --git a/drivers/gpu/drm/i915/intel_workarounds.c b/drivers/gpu/drm/i915/intel_workarounds.c
index 33a1a0c..e9c00b0 100644
--- a/drivers/gpu/drm/i915/intel_workarounds.c
+++ b/drivers/gpu/drm/i915/intel_workarounds.c
@@ -479,6 +479,9 @@  static int icl_ctx_workarounds_init(struct drm_i915_private *dev_priv)
 		WA_SET_BIT_MASKED(GEN11_COMMON_SLICE_CHICKEN3,
 				  GEN11_BLEND_EMB_FIX_DISABLE_IN_RCC);
 
+	/* WaEnableFloatBlendOptimization:icl */
+	WA_SET_BIT_MASKED(GEN10_CACHE_MODE_SS, FLOAT_BLEND_OPTIMIZATION_ENABLE);
+
 	return 0;
 }