mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-21 15:50:11 +01:00
glsl/shader_cache: Allow shader cache usage with transform feedback
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105444 Suggested-by: Timothy Arceri <tarceri@itsqueeze.com> Signed-off-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Tapani Pälli <tapani.palli@intel.com> Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
This commit is contained in:
parent
e10dc12f6f
commit
6d830940f7
2 changed files with 7 additions and 10 deletions
|
|
@ -4773,16 +4773,7 @@ link_shaders(struct gl_context *ctx, struct gl_shader_program *prog)
|
|||
}
|
||||
|
||||
#ifdef ENABLE_SHADER_CACHE
|
||||
/* If transform feedback used on the program then compile all shaders. */
|
||||
bool skip_cache = false;
|
||||
if (prog->TransformFeedback.NumVarying > 0) {
|
||||
for (unsigned i = 0; i < prog->NumShaders; i++) {
|
||||
_mesa_glsl_compile_shader(ctx, prog->Shaders[i], false, false, true);
|
||||
}
|
||||
skip_cache = true;
|
||||
}
|
||||
|
||||
if (!skip_cache && shader_cache_read_program_metadata(ctx, prog))
|
||||
if (shader_cache_read_program_metadata(ctx, prog))
|
||||
return;
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -160,6 +160,12 @@ shader_cache_read_program_metadata(struct gl_context *ctx,
|
|||
prog->FragDataBindings->iterate(create_binding_str, &buf);
|
||||
ralloc_strcat(&buf, "fbi: ");
|
||||
prog->FragDataIndexBindings->iterate(create_binding_str, &buf);
|
||||
ralloc_asprintf_append(&buf, "tf: %d ", prog->TransformFeedback.BufferMode);
|
||||
for (unsigned int i = 0; i < prog->TransformFeedback.NumVarying; i++) {
|
||||
ralloc_asprintf_append(&buf, "%s:%d ",
|
||||
prog->TransformFeedback.VaryingNames[i],
|
||||
prog->TransformFeedback.BufferStride[i]);
|
||||
}
|
||||
|
||||
/* SSO has an effect on the linked program so include this when generating
|
||||
* the sha also.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue