Re: [Mesa-dev] [PATCH 2/2] main/program_binary: In ProgramBinary set link status as LINKING_SKIPPED
On 2018-03-12 14:51:56, Timothy Arceri wrote: > 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). In the cover letter I mentioned that possibility, and why I decided to start with this instead. I would like to cover this corner case eventually, but I thought maybe tackling xform feedback might be good next step. Regarding this patch, do you agree that this is perhaps a more accurate status than LINKING_SUCCESS? -Jordan > 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> > Signed-off-by: Jordan Justen > > --- > > 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; > > } > > ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH 2/2] main/program_binary: In ProgramBinary set link status as LINKING_SKIPPED
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 ArceriSigned-off-by: Jordan Justen --- 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; } ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev
[Mesa-dev] [PATCH 2/2] main/program_binary: In ProgramBinary set link status as LINKING_SKIPPED
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 ArceriSigned-off-by: Jordan Justen --- 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; } -- 2.16.1 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev