Re: [Mesa-dev] [PATCH 5/6] radv: do not fast clears if one level can't be fast cleared

2019-06-19 Thread Samuel Pitoiset


On 6/19/19 1:38 AM, Bas Nieuwenhuizen wrote:

On Tue, Jun 18, 2019 at 4:12 PM Samuel Pitoiset
 wrote:

And fallback to slow color clears.

Signed-off-by: Samuel Pitoiset 
---
  src/amd/vulkan/radv_meta_clear.c | 14 ++
  1 file changed, 14 insertions(+)

diff --git a/src/amd/vulkan/radv_meta_clear.c b/src/amd/vulkan/radv_meta_clear.c
index 7f8f69e10f6..ed7f19b1dce 100644
--- a/src/amd/vulkan/radv_meta_clear.c
+++ b/src/amd/vulkan/radv_meta_clear.c
@@ -1515,6 +1515,20 @@ radv_can_fast_clear_color(struct radv_cmd_buffer 
*cmd_buffer,
 if (!can_avoid_fast_clear_elim)
 return false;
 }
+
+   if (iview->image->info.levels > 1) {
+   for (uint32_t l = 0; l < iview->level_count; l++) {
+   uint32_t level = iview->base_mip + l;
+   struct legacy_surf_level *surf_level =
+   
>image->planes[0].surface.u.legacy.level[level];

Same here, not comfortable accessing legacy data on GFX9.


Yeah, I will change that.

Thanks for the reviews Bas!


+
+   /* Do not fast clears if one level can't be
+* fast cleared.
+*/
+   if (!surf_level->dcc_fast_clear_size)
+   return false;
+   }
+   }
 }

 return true;
--
2.22.0

___
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 5/6] radv: do not fast clears if one level can't be fast cleared

2019-06-18 Thread Bas Nieuwenhuizen
On Tue, Jun 18, 2019 at 4:12 PM Samuel Pitoiset
 wrote:
>
> And fallback to slow color clears.
>
> Signed-off-by: Samuel Pitoiset 
> ---
>  src/amd/vulkan/radv_meta_clear.c | 14 ++
>  1 file changed, 14 insertions(+)
>
> diff --git a/src/amd/vulkan/radv_meta_clear.c 
> b/src/amd/vulkan/radv_meta_clear.c
> index 7f8f69e10f6..ed7f19b1dce 100644
> --- a/src/amd/vulkan/radv_meta_clear.c
> +++ b/src/amd/vulkan/radv_meta_clear.c
> @@ -1515,6 +1515,20 @@ radv_can_fast_clear_color(struct radv_cmd_buffer 
> *cmd_buffer,
> if (!can_avoid_fast_clear_elim)
> return false;
> }
> +
> +   if (iview->image->info.levels > 1) {
> +   for (uint32_t l = 0; l < iview->level_count; l++) {
> +   uint32_t level = iview->base_mip + l;
> +   struct legacy_surf_level *surf_level =
> +   
> >image->planes[0].surface.u.legacy.level[level];

Same here, not comfortable accessing legacy data on GFX9.
> +
> +   /* Do not fast clears if one level can't be
> +* fast cleared.
> +*/
> +   if (!surf_level->dcc_fast_clear_size)
> +   return false;
> +   }
> +   }
> }
>
> return true;
> --
> 2.22.0
>
> ___
> 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 5/6] radv: do not fast clears if one level can't be fast cleared

2019-06-18 Thread Samuel Pitoiset
And fallback to slow color clears.

Signed-off-by: Samuel Pitoiset 
---
 src/amd/vulkan/radv_meta_clear.c | 14 ++
 1 file changed, 14 insertions(+)

diff --git a/src/amd/vulkan/radv_meta_clear.c b/src/amd/vulkan/radv_meta_clear.c
index 7f8f69e10f6..ed7f19b1dce 100644
--- a/src/amd/vulkan/radv_meta_clear.c
+++ b/src/amd/vulkan/radv_meta_clear.c
@@ -1515,6 +1515,20 @@ radv_can_fast_clear_color(struct radv_cmd_buffer 
*cmd_buffer,
if (!can_avoid_fast_clear_elim)
return false;
}
+
+   if (iview->image->info.levels > 1) {
+   for (uint32_t l = 0; l < iview->level_count; l++) {
+   uint32_t level = iview->base_mip + l;
+   struct legacy_surf_level *surf_level =
+   
>image->planes[0].surface.u.legacy.level[level];
+
+   /* Do not fast clears if one level can't be
+* fast cleared.
+*/
+   if (!surf_level->dcc_fast_clear_size)
+   return false;
+   }
+   }
}
 
return true;
-- 
2.22.0

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