summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimothy Arceri <tarceri@itsqueeze.com>2019-07-01 12:25:19 +1000
committerJuan A. Suarez Romero <jasuarez@igalia.com>2019-07-15 10:22:42 +0000
commite4b7aa9e746b2c2150adc62ab1a68ee31dcdc733 (patch)
treed42a607eae9d5ebbe29e8a333972fbca8a8fb340
parent24e7db0a368e24e7a9381e3b0202a8558ecde170 (diff)
downloadmesa-e4b7aa9e746b2c2150adc62ab1a68ee31dcdc733.tar.gz
mesa: save/restore SSO flag when using ARB_get_program_binary
Without this the restored program will fail the pipeline validation checks when we attempt to use an SSO program. Fixes: c20fd744fef1 ("mesa: Add Mesa ARB_get_program_binary helper functions") Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111010 (cherry picked from commit 3043908ccb9c7030add1f34f9a947a787949a399)
-rw-r--r--src/mesa/main/program_binary.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/mesa/main/program_binary.c b/src/mesa/main/program_binary.c
index 7390fef5887..39537cfccce 100644
--- a/src/mesa/main/program_binary.c
+++ b/src/mesa/main/program_binary.c
@@ -178,6 +178,8 @@ write_program_payload(struct gl_context *ctx, struct blob *blob,
shader->Program);
}
+ blob_write_uint32(blob, sh_prog->SeparateShader);
+
serialize_glsl_program(blob, ctx, sh_prog);
for (unsigned stage = 0; stage < MESA_SHADER_STAGES; stage++) {
@@ -195,6 +197,8 @@ static bool
read_program_payload(struct gl_context *ctx, struct blob_reader *blob,
GLenum binary_format, struct gl_shader_program *sh_prog)
{
+ sh_prog->SeparateShader = blob_read_uint32(blob);
+
if (!deserialize_glsl_program(blob, ctx, sh_prog))
return false;