Re: [Mesa-dev] [PATCH] ac/surface: fix CMASK fast clear for NPOT textures with mipmapping on SI/CI/VI

2018-08-29 Thread Dylan Baker
Quoting Marek Olšák (2018-08-28 11:41:03)
> From: Marek Olšák 
> 
> This fixes VM faults and corruption.
> 
> Cc: 18.1 18.2 
> ---
>  src/amd/common/ac_surface.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/src/amd/common/ac_surface.c b/src/amd/common/ac_surface.c
> index 2f4f0f8884f..94723dc9c09 100644
> --- a/src/amd/common/ac_surface.c
> +++ b/src/amd/common/ac_surface.c
> @@ -581,22 +581,22 @@ void ac_compute_cmask(const struct radeon_info *info,
> cl_width = 64;
> cl_height = 64;
> break;
> default:
> assert(0);
> return;
> }
>  
> unsigned base_align = num_pipes * pipe_interleave_bytes;
>  
> -   unsigned width = align(config->info.width, cl_width*8);
> -   unsigned height = align(config->info.height, cl_height*8);
> +   unsigned width = align(surf->u.legacy.level[0].nblk_x, cl_width*8);
> +   unsigned height = align(surf->u.legacy.level[0].nblk_y, cl_height*8);
> unsigned slice_elements = (width * height) / (8*8);
>  
> /* Each element of CMASK is a nibble. */
> unsigned slice_bytes = slice_elements / 2;
>  
> surf->u.legacy.cmask_slice_tile_max = (width * height) / (128*128);
> if (surf->u.legacy.cmask_slice_tile_max)
> surf->u.legacy.cmask_slice_tile_max -= 1;
>  
> unsigned num_layers;
> -- 
> 2.17.1
> 

Hi Marek,

This doesn't apply cleanly to 18.1, this function is still in si_texture.c in
18.1, and it's not clear to me how to port it. If you'd still like this applied
to 18.1 please provide a backport.

Thanks,
Dylan


signature.asc
Description: signature
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH] ac/surface: fix CMASK fast clear for NPOT textures with mipmapping on SI/CI/VI

2018-08-28 Thread Marek Olšák
BTW, radv doesn't use the function, so it will have this bug.

Marek

On Tue, Aug 28, 2018 at 5:47 PM, Bas Nieuwenhuizen
 wrote:
> Reviewed-by: Bas Nieuwenhuizen 
> On Tue, Aug 28, 2018 at 8:41 PM Marek Olšák  wrote:
>>
>> From: Marek Olšák 
>>
>> This fixes VM faults and corruption.
>>
>> Cc: 18.1 18.2 
>> ---
>>  src/amd/common/ac_surface.c | 4 ++--
>>  1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/src/amd/common/ac_surface.c b/src/amd/common/ac_surface.c
>> index 2f4f0f8884f..94723dc9c09 100644
>> --- a/src/amd/common/ac_surface.c
>> +++ b/src/amd/common/ac_surface.c
>> @@ -581,22 +581,22 @@ void ac_compute_cmask(const struct radeon_info *info,
>> cl_width = 64;
>> cl_height = 64;
>> break;
>> default:
>> assert(0);
>> return;
>> }
>>
>> unsigned base_align = num_pipes * pipe_interleave_bytes;
>>
>> -   unsigned width = align(config->info.width, cl_width*8);
>> -   unsigned height = align(config->info.height, cl_height*8);
>> +   unsigned width = align(surf->u.legacy.level[0].nblk_x, cl_width*8);
>> +   unsigned height = align(surf->u.legacy.level[0].nblk_y, cl_height*8);
>> unsigned slice_elements = (width * height) / (8*8);
>>
>> /* Each element of CMASK is a nibble. */
>> unsigned slice_bytes = slice_elements / 2;
>>
>> surf->u.legacy.cmask_slice_tile_max = (width * height) / (128*128);
>> if (surf->u.legacy.cmask_slice_tile_max)
>> surf->u.legacy.cmask_slice_tile_max -= 1;
>>
>> unsigned num_layers;
>> --
>> 2.17.1
>>
>> ___
>> mesa-dev mailing list
>> mesa-dev@lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


Re: [Mesa-dev] [PATCH] ac/surface: fix CMASK fast clear for NPOT textures with mipmapping on SI/CI/VI

2018-08-28 Thread Bas Nieuwenhuizen
Reviewed-by: Bas Nieuwenhuizen 
On Tue, Aug 28, 2018 at 8:41 PM Marek Olšák  wrote:
>
> From: Marek Olšák 
>
> This fixes VM faults and corruption.
>
> Cc: 18.1 18.2 
> ---
>  src/amd/common/ac_surface.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/src/amd/common/ac_surface.c b/src/amd/common/ac_surface.c
> index 2f4f0f8884f..94723dc9c09 100644
> --- a/src/amd/common/ac_surface.c
> +++ b/src/amd/common/ac_surface.c
> @@ -581,22 +581,22 @@ void ac_compute_cmask(const struct radeon_info *info,
> cl_width = 64;
> cl_height = 64;
> break;
> default:
> assert(0);
> return;
> }
>
> unsigned base_align = num_pipes * pipe_interleave_bytes;
>
> -   unsigned width = align(config->info.width, cl_width*8);
> -   unsigned height = align(config->info.height, cl_height*8);
> +   unsigned width = align(surf->u.legacy.level[0].nblk_x, cl_width*8);
> +   unsigned height = align(surf->u.legacy.level[0].nblk_y, cl_height*8);
> unsigned slice_elements = (width * height) / (8*8);
>
> /* Each element of CMASK is a nibble. */
> unsigned slice_bytes = slice_elements / 2;
>
> surf->u.legacy.cmask_slice_tile_max = (width * height) / (128*128);
> if (surf->u.legacy.cmask_slice_tile_max)
> surf->u.legacy.cmask_slice_tile_max -= 1;
>
> unsigned num_layers;
> --
> 2.17.1
>
> ___
> mesa-dev mailing list
> mesa-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


[Mesa-dev] [PATCH] ac/surface: fix CMASK fast clear for NPOT textures with mipmapping on SI/CI/VI

2018-08-28 Thread Marek Olšák
From: Marek Olšák 

This fixes VM faults and corruption.

Cc: 18.1 18.2 
---
 src/amd/common/ac_surface.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/amd/common/ac_surface.c b/src/amd/common/ac_surface.c
index 2f4f0f8884f..94723dc9c09 100644
--- a/src/amd/common/ac_surface.c
+++ b/src/amd/common/ac_surface.c
@@ -581,22 +581,22 @@ void ac_compute_cmask(const struct radeon_info *info,
cl_width = 64;
cl_height = 64;
break;
default:
assert(0);
return;
}
 
unsigned base_align = num_pipes * pipe_interleave_bytes;
 
-   unsigned width = align(config->info.width, cl_width*8);
-   unsigned height = align(config->info.height, cl_height*8);
+   unsigned width = align(surf->u.legacy.level[0].nblk_x, cl_width*8);
+   unsigned height = align(surf->u.legacy.level[0].nblk_y, cl_height*8);
unsigned slice_elements = (width * height) / (8*8);
 
/* Each element of CMASK is a nibble. */
unsigned slice_bytes = slice_elements / 2;
 
surf->u.legacy.cmask_slice_tile_max = (width * height) / (128*128);
if (surf->u.legacy.cmask_slice_tile_max)
surf->u.legacy.cmask_slice_tile_max -= 1;
 
unsigned num_layers;
-- 
2.17.1

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev