[Mesa-dev] [PATCH] mesa: save/restore SSO flag when using ARB_get_program_binary
Timothy Arceri
tarceri at itsqueeze.com
Mon Jul 1 04:24:46 UTC 2019
FYI since the spec doesn't specifically cover what to do in this case I
have filed a spec bug suggesting it be updated to follow this behavior.
https://gitlab.khronos.org/opengl/GLSL/issues/46
On 1/7/19 12:25 pm, Timothy Arceri wrote:
> 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")
>
> Cc: Jordan Justen <jordan.l.justen at intel.com>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111010
> ---
> src/mesa/main/program_binary.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> 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;
>
>
More information about the mesa-dev
mailing list