summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimothy Arceri <[email protected]>2017-01-24 08:35:51 +1100
committerJordan Justen <[email protected]>2017-10-31 23:36:54 -0700
commita4078b819f648fb8e2b6dde8f6017f46a38c54f2 (patch)
tree5246ea3279e63941840cb9f03ada2b11c6ca45cf
parent15f39e8654b3dd94821624af73f7045906e6d354 (diff)
i965: add support for cached shaders with xfb qualifiers
For now this disables the shader cache when transform feedback is enabled via the GL API as we don't currently allow for it when generating the sha for the shader. Reviewed-by: Jordan Justen <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
-rw-r--r--src/mesa/drivers/dri/i965/brw_disk_cache.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_disk_cache.c b/src/mesa/drivers/dri/i965/brw_disk_cache.c
index eef58d5ba3f..f05ef853bfc 100644
--- a/src/mesa/drivers/dri/i965/brw_disk_cache.c
+++ b/src/mesa/drivers/dri/i965/brw_disk_cache.c
@@ -250,6 +250,14 @@ brw_disk_cache_upload_program(struct brw_context *brw, gl_shader_stage stage)
if (prog == NULL)
return false;
+ /* FIXME: For now we don't read from the cache if transform feedback is
+ * enabled via the API. However the shader cache does support transform
+ * feedback when enabled via in shader xfb qualifiers.
+ */
+ if (prog->sh.LinkedTransformFeedback &&
+ prog->sh.LinkedTransformFeedback->api_enabled)
+ return false;
+
if (prog->sh.data->LinkStatus != linking_skipped)
goto fail;