glsl: process uniform images declared bindless

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
This commit is contained in:
Samuel Pitoiset
2017-05-12 11:35:43 +02:00
parent 9e756de7d1
commit 3a087dd7a4
3 changed files with 89 additions and 9 deletions

View File

@@ -1153,6 +1153,13 @@ write_shader_metadata(struct blob *metadata, gl_linked_shader *shader)
sizeof(struct gl_bindless_sampler));
}
blob_write_uint32(metadata, glprog->sh.NumBindlessImages);
blob_write_uint32(metadata, glprog->sh.HasBoundBindlessImage);
for (i = 0; i < glprog->sh.NumBindlessImages; i++) {
blob_write_bytes(metadata, &glprog->sh.BindlessImages[i],
sizeof(struct gl_bindless_image));
}
write_shader_parameters(metadata, glprog->Parameters);
}
@@ -1191,6 +1198,19 @@ read_shader_metadata(struct blob_reader *metadata,
}
}
glprog->sh.NumBindlessImages = blob_read_uint32(metadata);
glprog->sh.HasBoundBindlessImage = blob_read_uint32(metadata);
if (glprog->sh.NumBindlessImages > 0) {
glprog->sh.BindlessImages =
rzalloc_array(glprog, gl_bindless_image,
glprog->sh.NumBindlessImages);
for (i = 0; i < glprog->sh.NumBindlessImages; i++) {
blob_copy_bytes(metadata, (uint8_t *) &glprog->sh.BindlessImages[i],
sizeof(struct gl_bindless_image));
}
}
glprog->Parameters = _mesa_new_parameter_list();
read_shader_parameters(metadata, glprog->Parameters);
}