[Mesa-dev] [PATCH 2/2] main/program_binary: In ProgramBinary set link status as LINKING_SKIPPED

Timothy Arceri tarceri at itsqueeze.com
Mon Mar 12 21:51:56 UTC 2018


This only seems to be needed by i965. Alternative can't you just remove the:

    if (prog->sh.data->LinkStatus != LINKING_SKIPPED)
       goto fail;

from brw_disk_cache_upload_program() and let the cache search do its job?

I believe its possible to end up linking the GLSL IR i.e. 
prog->sh.data->LinkStatus == LINKING_SUCCESS but still have the i965 
binary in the cache (although I guess that's a pretty big corner case).

On 12/03/18 11:25, Jordan Justen wrote:
> This change allows the disk shader cache to work with programs loaded
> with ProgramBinary. Drivers check for LINKING_SKIPPED, and if set,
> then they try to use the shader cache.
> 
> Since the program loaded by ProgramBinary is similar to loading the
> shader from the disk cache, this is probably more appropriate.
> 
> Cc: Timothy Arceri <tarceri at itsqueeze.com>
> Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
> ---
>   src/mesa/main/program_binary.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/src/mesa/main/program_binary.c b/src/mesa/main/program_binary.c
> index 3df70059342..021f6315e72 100644
> --- a/src/mesa/main/program_binary.c
> +++ b/src/mesa/main/program_binary.c
> @@ -287,5 +287,5 @@ _mesa_program_binary(struct gl_context *ctx, struct gl_shader_program *sh_prog,
>         return;
>      }
>   
> -   sh_prog->data->LinkStatus = LINKING_SUCCESS;
> +   sh_prog->data->LinkStatus = LINKING_SKIPPED;
>   }
> 


More information about the mesa-dev mailing list