diff options
author | Jordan Justen <[email protected]> | 2018-02-28 18:29:54 -0800 |
---|---|---|
committer | Jordan Justen <[email protected]> | 2018-07-09 23:02:33 -0700 |
commit | 48ce7745dcfec33205d6e45906684c112cc24103 (patch) | |
tree | 1ecd540d68515c64abc3bba406a6cba10c0162e5 /src/mesa/main | |
parent | 36dd15f8b337e6a864d736ba502b8aa3d0ae6e4f (diff) |
mesa: Add gl_shader_program param to ProgramBinarySerializeDriverBlob
This might be required because some stages might generate different
programs depending on the other stages in the program. For example,
the i965 driver's tessellation control stage depends on the
tessellation evaluation shader.
Signed-off-by: Jordan Justen <[email protected]>
Reviewed-by: Timothy Arceri <[email protected]>
Diffstat (limited to 'src/mesa/main')
-rw-r--r-- | src/mesa/main/dd.h | 1 | ||||
-rw-r--r-- | src/mesa/main/program_binary.c | 3 |
2 files changed, 3 insertions, 1 deletions
diff --git a/src/mesa/main/dd.h b/src/mesa/main/dd.h index 7081d586700..78e99bfa235 100644 --- a/src/mesa/main/dd.h +++ b/src/mesa/main/dd.h @@ -1218,6 +1218,7 @@ struct dd_function_table { void (*GetProgramBinaryDriverSHA1)(struct gl_context *ctx, uint8_t *sha1); void (*ProgramBinarySerializeDriverBlob)(struct gl_context *ctx, + struct gl_shader_program *shProg, struct gl_program *prog); void (*ProgramBinaryDeserializeDriverBlob)(struct gl_context *ctx, diff --git a/src/mesa/main/program_binary.c b/src/mesa/main/program_binary.c index 427a79dc94d..7390fef5887 100644 --- a/src/mesa/main/program_binary.c +++ b/src/mesa/main/program_binary.c @@ -174,7 +174,8 @@ write_program_payload(struct gl_context *ctx, struct blob *blob, 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); } serialize_glsl_program(blob, ctx, sh_prog); |