=?UTF-8?Q?J=C3=B3zef=20Kucia=20?=: wined3d: Generate geometry shader outputs when NULL pixel shader is used.

Alexandre Julliard julliard at winehq.org
Thu Mar 23 15:34:53 CDT 2017


Module: wine
Branch: master
Commit: 1a1b3fd3bcd5b2b9cc8ad182204025af21dccba4
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=1a1b3fd3bcd5b2b9cc8ad182204025af21dccba4

Author: Józef Kucia <jkucia at codeweavers.com>
Date:   Thu Mar 23 12:15:47 2017 +0100

wined3d: Generate geometry shader outputs when NULL pixel shader is used.

In preparation for stream output.

Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/wined3d/glsl_shader.c     | 2 +-
 dlls/wined3d/shader.c          | 4 ++--
 dlls/wined3d/wined3d_private.h | 2 +-
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
index 3385d83..004d490 100644
--- a/dlls/wined3d/glsl_shader.c
+++ b/dlls/wined3d/glsl_shader.c
@@ -7063,7 +7063,7 @@ static GLuint shader_glsl_generate_geometry_shader(const struct wined3d_context
     shader_generate_glsl_declarations(context, buffer, shader, reg_maps, &priv_ctx);
     if (!gl_info->supported[ARB_CLIP_CONTROL])
         shader_addline(buffer, "uniform vec4 pos_fixup;\n");
-    shader_glsl_generate_sm4_rasterizer_input_setup(priv, shader, args->ps_input_count, gl_info);
+    shader_glsl_generate_sm4_rasterizer_input_setup(priv, shader, args->output_count, gl_info);
     shader_addline(buffer, "void main()\n{\n");
     if (FAILED(shader_generate_main(shader, buffer, reg_maps, &priv_ctx)))
         return 0;
diff --git a/dlls/wined3d/shader.c b/dlls/wined3d/shader.c
index 011aee4..2c9976d 100644
--- a/dlls/wined3d/shader.c
+++ b/dlls/wined3d/shader.c
@@ -3407,8 +3407,8 @@ static HRESULT geometry_shader_init(struct wined3d_shader *shader, struct wined3
 void find_gs_compile_args(const struct wined3d_state *state, const struct wined3d_shader *shader,
         struct gs_compile_args *args)
 {
-    args->ps_input_count = state->shader[WINED3D_SHADER_TYPE_PIXEL]
-            ? state->shader[WINED3D_SHADER_TYPE_PIXEL]->limits->packed_input : 0;
+    args->output_count = state->shader[WINED3D_SHADER_TYPE_PIXEL]
+            ? state->shader[WINED3D_SHADER_TYPE_PIXEL]->limits->packed_input : shader->limits->packed_output;
 }
 
 void find_ps_compile_args(const struct wined3d_state *state, const struct wined3d_shader *shader,
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 21c5f1b..b58da36 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -1312,7 +1312,7 @@ struct vs_compile_args
 
 struct gs_compile_args
 {
-    unsigned int ps_input_count;
+    unsigned int output_count;
 };
 
 struct wined3d_context;




More information about the wine-cvs mailing list