[Mesa-dev] [PATCH 06/13] anv/pipeline: Move gather_info further down the compilation process

Iago Toral itoral at igalia.com
Thu Nov 17 12:37:41 UTC 2016


Hi Jason,

On Wed, 2016-11-16 at 11:31 -0800, Jason Ekstrand wrote:
> The lower_input_attachments pass that we're about to add will
> generate
> additional uses of system values and we want those to be reflected in
> gather_info.
> ---
>  src/intel/vulkan/anv_pipeline.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/src/intel/vulkan/anv_pipeline.c
> b/src/intel/vulkan/anv_pipeline.c
> index bdac404..c251463 100644
> --- a/src/intel/vulkan/anv_pipeline.c
> +++ b/src/intel/vulkan/anv_pipeline.c
> @@ -166,8 +166,6 @@ anv_shader_compile_to_nir(struct anv_device
> *device,
>  
>     nir = brw_preprocess_nir(compiler, nir);
>  
> -   nir_shader_gather_info(nir, entry_point->impl);
> -
>     nir_variable_mode indirect_mask = 0;
>     if (compiler->glsl_compiler_options[stage].EmitNoIndirectInput)
>        indirect_mask |= nir_var_shader_in;
> @@ -369,6 +367,8 @@ anv_pipeline_compile(struct anv_pipeline
> *pipeline,
>      */
>     nir->num_uniforms = prog_data->nr_params * 4;
>  
> +   nir_shader_gather_info(nir, nir_shader_get_entrypoint(nir));
> +

This breaks a ton of Vulkan CTS tests due to memory corruption issues.
The problem is that we need to call this before we compute the number
of parameters (which is done right above this). Otherwise we end up
with an incorrect number of parameters and that leads to out-of-bounds
writes in some places. The attached patch (which applies on top of the
series) fixes the regressions. You probably want to merge it in this
patch and the next.

Iago

>     return nir;
>  }
>  
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-anv-pipeline-call-nir_shader_gather_info-before-we-c.patch
Type: text/x-patch
Size: 1745 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20161117/2de416eb/attachment.bin>


More information about the mesa-dev mailing list