Module: vkd3d Branch: master Commit: 414bb99542c359cca724f466bad43db3ed61ea41 URL: https://gitlab.winehq.org/wine/vkd3d/-/commit/414bb99542c359cca724f466bad43d...
Author: Henri Verbeet hverbeet@codeweavers.com Date: Thu Oct 21 19:28:22 2021 +0200
vkd3d-shader/glsl: Add vkd3d-shader version information to the generated shader.
---
libs/vkd3d-shader/glsl.c | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-)
diff --git a/libs/vkd3d-shader/glsl.c b/libs/vkd3d-shader/glsl.c index f1012d06..3e8dd2c4 100644 --- a/libs/vkd3d-shader/glsl.c +++ b/libs/vkd3d-shader/glsl.c @@ -89,35 +89,39 @@ static void vkd3d_glsl_handle_instruction(struct vkd3d_glsl_generator *generator } }
-static int vkd3d_glsl_generator_generate(struct vkd3d_glsl_generator *generator, struct vkd3d_shader_code *out) +static int vkd3d_glsl_generator_generate(struct vkd3d_glsl_generator *gen, struct vkd3d_shader_code *out) { - const struct vkd3d_shader_instruction_array *instructions = &generator->program->instructions; + const struct vkd3d_shader_instruction_array *instructions = &gen->program->instructions; + struct vkd3d_string_buffer *buffer = &gen->buffer; unsigned int i; void *code;
ERR("Generating a GLSL shader. This is unsupported; you get to keep all the pieces if it breaks.\n");
- vkd3d_string_buffer_printf(&generator->buffer, "#version 440\n\n"); - vkd3d_string_buffer_printf(&generator->buffer, "void main()\n{\n"); + vkd3d_string_buffer_printf(buffer, "#version 440\n\n");
- ++generator->indent; + vkd3d_string_buffer_printf(buffer, "/* Generated by %s. */\n\n", vkd3d_shader_get_version(NULL, NULL)); + + vkd3d_string_buffer_printf(buffer, "void main()\n{\n"); + + ++gen->indent; for (i = 0; i < instructions->count; ++i) { - vkd3d_glsl_handle_instruction(generator, &instructions->elements[i]); + vkd3d_glsl_handle_instruction(gen, &instructions->elements[i]); }
- vkd3d_string_buffer_printf(&generator->buffer, "}\n"); + vkd3d_string_buffer_printf(buffer, "}\n");
if (TRACE_ON()) - vkd3d_string_buffer_trace(&generator->buffer); + vkd3d_string_buffer_trace(buffer);
- if (generator->failed) + if (gen->failed) return VKD3D_ERROR_INVALID_SHADER;
- if ((code = vkd3d_malloc(generator->buffer.buffer_size))) + if ((code = vkd3d_malloc(buffer->buffer_size))) { - memcpy(code, generator->buffer.buffer, generator->buffer.content_size); - out->size = generator->buffer.content_size; + memcpy(code, buffer->buffer, buffer->content_size); + out->size = buffer->content_size; out->code = code; } else return VKD3D_ERROR_OUT_OF_MEMORY;