Module: wine Branch: master Commit: 422f0a87c48f595ca512d5278c4f3631e0aa599c URL: http://source.winehq.org/git/wine.git/?a=commit;h=422f0a87c48f595ca512d5278c...
Author: Józef Kucia jkucia@codeweavers.com Date: Thu Jul 7 12:22:35 2016 +0200
wined3d: Implement SM5 cut_stream instruction for stream 0.
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
---
dlls/wined3d/glsl_shader.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c index 9a2025f..7ad5acd 100644 --- a/dlls/wined3d/glsl_shader.c +++ b/dlls/wined3d/glsl_shader.c @@ -3437,7 +3437,12 @@ static void shader_glsl_cross(const struct wined3d_shader_instruction *ins)
static void shader_glsl_cut(const struct wined3d_shader_instruction *ins) { - shader_addline(ins->ctx->buffer, "EndPrimitive();\n"); + unsigned int stream = ins->handler_idx == WINED3DSIH_CUT ? 0 : ins->src[0].reg.idx[0].offset; + + if (!stream) + shader_addline(ins->ctx->buffer, "EndPrimitive();\n"); + else + FIXME("Unhandled primitive stream %u.\n", stream); }
/* Process the WINED3DSIO_POW instruction in GLSL (dst = |src0|^src1) @@ -8600,7 +8605,7 @@ static const SHADER_HANDLER shader_glsl_instruction_handler_table[WINED3DSIH_TAB /* WINED3DSIH_CONTINUE */ shader_glsl_continue, /* WINED3DSIH_CRS */ shader_glsl_cross, /* WINED3DSIH_CUT */ shader_glsl_cut, - /* WINED3DSIH_CUT_STREAM */ NULL, + /* WINED3DSIH_CUT_STREAM */ shader_glsl_cut, /* WINED3DSIH_DCL */ shader_glsl_nop, /* WINED3DSIH_DCL_CONSTANT_BUFFER */ shader_glsl_nop, /* WINED3DSIH_DCL_GLOBAL_FLAGS */ shader_glsl_nop,