[Mesa-dev] [PATCH v2 08/35] i965/blorp: Make sample count asserts a bit more lazy

Pohjolainen, Topi topi.pohjolainen at intel.com
Wed Jul 27 04:49:18 UTC 2016


We could have a small rational here:

Until now blorp used internally the sample count of zero to represent
single sampled surfaces. However, incoming single sampled surfaces may
have the sample count set as zero or one, and once the stomping to
zero is dropped these asserts would fire.

On Tue, Jul 26, 2016 at 03:01:59PM -0700, Jason Ekstrand wrote:
> Reviewed-by: Topi Pohjolainen <topi.pohjolainen at intel.com>
> ---
>  src/mesa/drivers/dri/i965/brw_blorp_blit.cpp | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp b/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp
> index a68e406..e0a6d7c 100644
> --- a/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp
> +++ b/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp
> @@ -1302,7 +1302,7 @@ brw_blorp_build_nir_shader(struct brw_context *brw,
>     nir_ssa_def *src_pos, *dst_pos, *color;
>  
>     /* Sanity checks */
> -   if (key->dst_tiled_w && key->rt_samples > 0) {
> +   if (key->dst_tiled_w && key->rt_samples > 1) {
>        /* If the destination image is W tiled and multisampled, then the thread
>         * must be dispatched once per sample, not once per pixel.  This is
>         * necessary because after conversion between W and Y tiling, there's no
> @@ -1333,13 +1333,13 @@ brw_blorp_build_nir_shader(struct brw_context *brw,
>  
>     /* Make sure layout is consistent with sample count */
>     assert((key->tex_layout == INTEL_MSAA_LAYOUT_NONE) ==
> -          (key->tex_samples == 0));
> +          (key->tex_samples <= 1));
>     assert((key->rt_layout == INTEL_MSAA_LAYOUT_NONE) ==
> -          (key->rt_samples == 0));
> +          (key->rt_samples <= 1));
>     assert((key->src_layout == INTEL_MSAA_LAYOUT_NONE) ==
> -          (key->src_samples == 0));
> +          (key->src_samples <= 1));
>     assert((key->dst_layout == INTEL_MSAA_LAYOUT_NONE) ==
> -          (key->dst_samples == 0));
> +          (key->dst_samples <= 1));
>  
>     nir_builder b;
>     nir_builder_init_simple_shader(&b, NULL, MESA_SHADER_FRAGMENT, NULL);
> -- 
> 2.5.0.400.gff86faf
> 
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list