From: Andrew Wesie Subject: [23/23] wined3d: Support buffer sampler in shaders. Message-Id: <1479062123-21238-24-git-send-email-awesie@gmail.com> Date: Sun, 13 Nov 2016 12:35:23 -0600 In-Reply-To: <1479062123-21238-1-git-send-email-awesie@gmail.com> References: <1479062123-21238-1-git-send-email-awesie@gmail.com> Signed-off-by: Andrew Wesie --- dlls/wined3d/glsl_shader.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c index 3d4c44a..e34252a 100644 --- a/dlls/wined3d/glsl_shader.c +++ b/dlls/wined3d/glsl_shader.c @@ -1997,6 +1997,12 @@ static void shader_generate_glsl_declarations(const struct wined3d_context *cont shadow_sampler = glsl_is_shadow_sampler(shader, ps_args, entry->resource_idx, entry->sampler_idx); switch (reg_maps->resource_info[entry->resource_idx].type) { + case WINED3D_SHADER_RESOURCE_BUFFER: + if (shadow_sampler) + FIXME("Unsupported Buffer shadow sampler.\n"); + sampler_type = "samplerBuffer"; + break; + case WINED3D_SHADER_RESOURCE_TEXTURE_1D: if (shadow_sampler) sampler_type = "sampler1DShadow"; @@ -2937,7 +2943,7 @@ static void shader_glsl_get_sample_function(const struct wined3d_shader_context resource_types[] = { {0, ""}, /* WINED3D_SHADER_RESOURCE_NONE */ - {1, ""}, /* WINED3D_SHADER_RESOURCE_BUFFER */ + {1, "Buffer"}, /* WINED3D_SHADER_RESOURCE_BUFFER */ {1, "1D"}, /* WINED3D_SHADER_RESOURCE_TEXTURE_1D */ {2, "2D"}, /* WINED3D_SHADER_RESOURCE_TEXTURE_2D */ {2, ""}, /* WINED3D_SHADER_RESOURCE_TEXTURE_2DMS */ @@ -3004,7 +3010,10 @@ static void shader_glsl_get_sample_function(const struct wined3d_shader_context ERR("Unexpected flags %#x for texelFetch.\n", flags & ~texel_fetch_flags); base = "texelFetch"; - type_part = ""; + if (resource_type == WINED3D_SHADER_RESOURCE_BUFFER) + type_part = "Buffer"; + else + type_part = ""; } sample_function->name = string_buffer_get(priv->string_buffers); -- 2.7.4