wined3d: Avoid multiple layout qualifiers for uniform blocks.

Nvidia Legacy GPU driver (340.xx series) doesn't allow multiple layout
qualifiers.

Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Józef Kucia 2017-04-20 11:04:11 +02:00 committed by Alexandre Julliard
parent d5b9271e82
commit 74773a1603
1 changed files with 3 additions and 2 deletions

View File

@ -2318,9 +2318,10 @@ static void shader_generate_glsl_declarations(const struct wined3d_context *cont
{
if (reg_maps->cb_sizes[i])
{
shader_addline(buffer, "layout(std140");
if (shader_glsl_use_layout_binding_qualifier(gl_info))
shader_addline(buffer, "layout(binding = %u)\n", uniform_block_base + i);
shader_addline(buffer, "layout(std140) uniform block_%s_cb%u { vec4 %s_cb%u[%u]; };\n",
shader_addline(buffer, ", binding = %u", uniform_block_base + i);
shader_addline(buffer, ") uniform block_%s_cb%u { vec4 %s_cb%u[%u]; };\n",
prefix, i, prefix, i, reg_maps->cb_sizes[i]);
}
}