[23/23] wined3d: Support buffer sampler in shaders.
Andrew Wesie
awesie at gmail.com
Sun Nov 13 12:35:23 CST 2016
Signed-off-by: Andrew Wesie <awesie at gmail.com>
---
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
More information about the wine-patches
mailing list