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 <tarc...@itsqueeze.com>
Signed-off-by: Jordan Justen <jordan.l.jus...@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;
}
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev