[Mesa-dev] [PATCH v2 03/24] anv/blorp: return early if we failed to create the shader binary

Pohjolainen, Topi topi.pohjolainen at gmail.com
Tue Mar 14 08:12:15 UTC 2017


On Fri, Mar 10, 2017 at 01:38:16PM +0100, Iago Toral Quiroga wrote:
> ---
>  src/intel/vulkan/anv_blorp.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/src/intel/vulkan/anv_blorp.c b/src/intel/vulkan/anv_blorp.c
> index d79c5e0..c871f03 100644
> --- a/src/intel/vulkan/anv_blorp.c
> +++ b/src/intel/vulkan/anv_blorp.c
> @@ -72,6 +72,9 @@ upload_blorp_shader(struct blorp_context *blorp,
>                                         key, key_size, kernel, kernel_size,
>                                         prog_data, prog_data_size, &bind_map);
>  
> +   if (!bin)
> +      return;
> +

This is called by brw_blorp_get_blit_kernel() which in turn is called from
try_blorp_blit(). The latter will happily submit batch to the kernel where
there is now no kernel to execute - that will surely lead to gpu hang.

It looks to me we would need to mark down the failure here for anv so that
it knows the blit failed. In addition, brw_blorp_get_blit_kernel() should
tell to try_blorp_blit() that shader upload failed so that try_blorp_blit()
won't send the invalid batch to the gpu.

Jason: any thoughts?

>     /* The cache already has a reference and it's not going anywhere so there
>      * is no need to hold a second reference.
>      */
> -- 
> 2.7.4
> 
> _______________________________________________
> 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