diff mbox

drm/radeon: fill in rb backend map on evergreen/ni.

Message ID 20180109034303.18100-1-airlied@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Dave Airlie Jan. 9, 2018, 3:43 a.m. UTC
From: Dave Airlie <airlied@redhat.com>

This looks to have never gotten filled in, and it seems to
 trigger a bug in mesa.

Reported-by: Roland Scheidegger <sroland@vmware.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
---
 drivers/gpu/drm/radeon/evergreen.c | 1 +
 drivers/gpu/drm/radeon/ni.c        | 1 +
 2 files changed, 2 insertions(+)

Comments

Roland Scheidegger Jan. 9, 2018, 11:17 p.m. UTC | #1
FWIW I was wrong that it was never filled in - when the backend map
query was introduced, the data indeed got filled in. However that got
lost very soon afterwards (over 6 years ago) by some fixes for backend
map calculation.
In any case,
Reviewed-by: Roland Scheidegger <sroland@vmware.com>

Am 09.01.2018 um 04:43 schrieb Dave Airlie:
> From: Dave Airlie <airlied@redhat.com>
> 
> This looks to have never gotten filled in, and it seems to
>  trigger a bug in mesa.
> 
> Reported-by: Roland Scheidegger <sroland@vmware.com>
> Signed-off-by: Dave Airlie <airlied@redhat.com>
> ---
>  drivers/gpu/drm/radeon/evergreen.c | 1 +
>  drivers/gpu/drm/radeon/ni.c        | 1 +
>  2 files changed, 2 insertions(+)
> 
> diff --git a/drivers/gpu/drm/radeon/evergreen.c b/drivers/gpu/drm/radeon/evergreen.c
> index 24fe66c..5712d63 100644
> --- a/drivers/gpu/drm/radeon/evergreen.c
> +++ b/drivers/gpu/drm/radeon/evergreen.c
> @@ -3513,6 +3513,7 @@ static void evergreen_gpu_init(struct radeon_device *rdev)
>  		tmp = r6xx_remap_render_backend(rdev, tmp, rdev->config.evergreen.max_backends,
>  						EVERGREEN_MAX_BACKENDS, disabled_rb_mask);
>  	}
> +	rdev->config.evergreen.backend_map = tmp;
>  	WREG32(GB_BACKEND_MAP, tmp);
>  
>  	WREG32(CGTS_SYS_TCC_DISABLE, 0);
> diff --git a/drivers/gpu/drm/radeon/ni.c b/drivers/gpu/drm/radeon/ni.c
> index 9eccd0c..381b0255 100644
> --- a/drivers/gpu/drm/radeon/ni.c
> +++ b/drivers/gpu/drm/radeon/ni.c
> @@ -1148,6 +1148,7 @@ static void cayman_gpu_init(struct radeon_device *rdev)
>  						rdev->config.cayman.max_shader_engines,
>  						CAYMAN_MAX_BACKENDS, disabled_rb_mask);
>  	}
> +	rdev->config.cayman.backend_map = tmp;
>  	WREG32(GB_BACKEND_MAP, tmp);
>  
>  	cgts_tcc_disable = 0xffff0000;
>
Alex Deucher Jan. 11, 2018, 2:21 a.m. UTC | #2
Applied.  thanks!

Alex


On Tue, Jan 9, 2018 at 6:17 PM, Roland Scheidegger
<rscheidegger_lists@hispeed.ch> wrote:
> FWIW I was wrong that it was never filled in - when the backend map
> query was introduced, the data indeed got filled in. However that got
> lost very soon afterwards (over 6 years ago) by some fixes for backend
> map calculation.
> In any case,
> Reviewed-by: Roland Scheidegger <sroland@vmware.com>
>
> Am 09.01.2018 um 04:43 schrieb Dave Airlie:
>> From: Dave Airlie <airlied@redhat.com>
>>
>> This looks to have never gotten filled in, and it seems to
>>  trigger a bug in mesa.
>>
>> Reported-by: Roland Scheidegger <sroland@vmware.com>
>> Signed-off-by: Dave Airlie <airlied@redhat.com>
>> ---
>>  drivers/gpu/drm/radeon/evergreen.c | 1 +
>>  drivers/gpu/drm/radeon/ni.c        | 1 +
>>  2 files changed, 2 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/radeon/evergreen.c b/drivers/gpu/drm/radeon/evergreen.c
>> index 24fe66c..5712d63 100644
>> --- a/drivers/gpu/drm/radeon/evergreen.c
>> +++ b/drivers/gpu/drm/radeon/evergreen.c
>> @@ -3513,6 +3513,7 @@ static void evergreen_gpu_init(struct radeon_device *rdev)
>>               tmp = r6xx_remap_render_backend(rdev, tmp, rdev->config.evergreen.max_backends,
>>                                               EVERGREEN_MAX_BACKENDS, disabled_rb_mask);
>>       }
>> +     rdev->config.evergreen.backend_map = tmp;
>>       WREG32(GB_BACKEND_MAP, tmp);
>>
>>       WREG32(CGTS_SYS_TCC_DISABLE, 0);
>> diff --git a/drivers/gpu/drm/radeon/ni.c b/drivers/gpu/drm/radeon/ni.c
>> index 9eccd0c..381b0255 100644
>> --- a/drivers/gpu/drm/radeon/ni.c
>> +++ b/drivers/gpu/drm/radeon/ni.c
>> @@ -1148,6 +1148,7 @@ static void cayman_gpu_init(struct radeon_device *rdev)
>>                                               rdev->config.cayman.max_shader_engines,
>>                                               CAYMAN_MAX_BACKENDS, disabled_rb_mask);
>>       }
>> +     rdev->config.cayman.backend_map = tmp;
>>       WREG32(GB_BACKEND_MAP, tmp);
>>
>>       cgts_tcc_disable = 0xffff0000;
>>
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
diff mbox

Patch

diff --git a/drivers/gpu/drm/radeon/evergreen.c b/drivers/gpu/drm/radeon/evergreen.c
index 24fe66c..5712d63 100644
--- a/drivers/gpu/drm/radeon/evergreen.c
+++ b/drivers/gpu/drm/radeon/evergreen.c
@@ -3513,6 +3513,7 @@  static void evergreen_gpu_init(struct radeon_device *rdev)
 		tmp = r6xx_remap_render_backend(rdev, tmp, rdev->config.evergreen.max_backends,
 						EVERGREEN_MAX_BACKENDS, disabled_rb_mask);
 	}
+	rdev->config.evergreen.backend_map = tmp;
 	WREG32(GB_BACKEND_MAP, tmp);
 
 	WREG32(CGTS_SYS_TCC_DISABLE, 0);
diff --git a/drivers/gpu/drm/radeon/ni.c b/drivers/gpu/drm/radeon/ni.c
index 9eccd0c..381b0255 100644
--- a/drivers/gpu/drm/radeon/ni.c
+++ b/drivers/gpu/drm/radeon/ni.c
@@ -1148,6 +1148,7 @@  static void cayman_gpu_init(struct radeon_device *rdev)
 						rdev->config.cayman.max_shader_engines,
 						CAYMAN_MAX_BACKENDS, disabled_rb_mask);
 	}
+	rdev->config.cayman.backend_map = tmp;
 	WREG32(GB_BACKEND_MAP, tmp);
 
 	cgts_tcc_disable = 0xffff0000;