[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