summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimothy Arceri <[email protected]>2016-11-19 16:16:08 +1100
committerJordan Justen <[email protected]>2017-10-31 23:36:54 -0700
commit15f39e8654b3dd94821624af73f7045906e6d354 (patch)
treefaf413c5ccaa1e74d63844dfc641d80de9bbb54a
parent8a019f5601ced415d13f55e3c06ab4cb3b7d5989 (diff)
mesa/glsl: add api_enabled flag to gl_transform_feedback_info
This will be used to disable the shader cache when xfb is enabled via the 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/compiler/glsl/link_varyings.cpp5
-rw-r--r--src/mesa/main/mtypes.h3
2 files changed, 7 insertions, 1 deletions
diff --git a/src/compiler/glsl/link_varyings.cpp b/src/compiler/glsl/link_varyings.cpp
index 70e4b8c7f70..66a20a2c9b6 100644
--- a/src/compiler/glsl/link_varyings.cpp
+++ b/src/compiler/glsl/link_varyings.cpp
@@ -1316,9 +1316,12 @@ store_tfeedback_info(struct gl_context *ctx, struct gl_shader_program *prog,
* however some drivers expect to receive the list of transform feedback
* declarations in order so sort it now for convenience.
*/
- if (has_xfb_qualifiers)
+ if (has_xfb_qualifiers) {
qsort(tfeedback_decls, num_tfeedback_decls, sizeof(*tfeedback_decls),
cmp_xfb_offset);
+ } else {
+ xfb_prog->sh.LinkedTransformFeedback->api_enabled = true;
+ }
xfb_prog->sh.LinkedTransformFeedback->Varyings =
rzalloc_array(xfb_prog, struct gl_transform_feedback_varying_info,
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index b7a46aed534..2acf64eb56d 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -1779,6 +1779,9 @@ struct gl_transform_feedback_buffer
/** Post-link transform feedback info. */
struct gl_transform_feedback_info
{
+ /* Was xfb enabled via the api or in shader layout qualifiers */
+ bool api_enabled;
+
unsigned NumOutputs;
/* Bitmask of active buffer indices. */