*/
-#include "compiler/blob.h"
#include "compiler/glsl/serialize.h"
#include "main/errors.h"
#include "main/mtypes.h"
#include "main/shaderapi.h"
#include "util/bitscan.h"
+#include "util/blob.h"
#include "util/crc32.h"
#include "program_binary.h"
#include "program/prog_parameter.h"
for (unsigned stage = 0; stage < MESA_SHADER_STAGES; stage++) {
struct gl_linked_shader *shader = sh_prog->_LinkedShaders[stage];
if (shader)
- ctx->Driver.ProgramBinarySerializeDriverBlob(ctx, shader->Program);
+ ctx->Driver.ProgramBinarySerializeDriverBlob(ctx, sh_prog,
+ 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++) {
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;