Henri Verbeet : wined3d: Recognize the SM4 discard opcode.

Alexandre Julliard julliard at winehq.org
Tue May 20 14:36:24 CDT 2014


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

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Tue May 20 07:38:45 2014 +0200

wined3d: Recognize the SM4 discard opcode.

---

 dlls/wined3d/glsl_shader.c |    2 ++
 dlls/wined3d/shader_sm4.c  |    2 ++
 2 files changed, 4 insertions(+)

diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
index d0f2b71..bce0097 100644
--- a/dlls/wined3d/glsl_shader.c
+++ b/dlls/wined3d/glsl_shader.c
@@ -4073,6 +4073,8 @@ static void shader_glsl_texkill(const struct wined3d_shader_instruction *ins)
     shader_glsl_add_dst_param(ins, &ins->dst[0], &dst_param);
     if (ins->ctx->reg_maps->shader_version.major >= 2)
     {
+        if (ins->ctx->reg_maps->shader_version.major >= 4)
+            FIXME("SM4 discard not implemented.\n");
         /* 2.0 shaders compare all 4 components in texkill */
         shader_addline(ins->ctx->buffer, "if (any(lessThan(%s.xyzw, vec4(0.0)))) discard;\n", dst_param.reg_name);
     } else {
diff --git a/dlls/wined3d/shader_sm4.c b/dlls/wined3d/shader_sm4.c
index 9a6131f..b001aad 100644
--- a/dlls/wined3d/shader_sm4.c
+++ b/dlls/wined3d/shader_sm4.c
@@ -78,6 +78,7 @@ enum wined3d_sm4_opcode
     WINED3D_SM4_OP_CUT                  = 0x09,
     WINED3D_SM4_OP_DERIV_RTX            = 0x0b,
     WINED3D_SM4_OP_DERIV_RTY            = 0x0c,
+    WINED3D_SM4_OP_DISCARD              = 0x0d,
     WINED3D_SM4_OP_DIV                  = 0x0e,
     WINED3D_SM4_OP_DP3                  = 0x10,
     WINED3D_SM4_OP_DP4                  = 0x11,
@@ -212,6 +213,7 @@ static const struct wined3d_sm4_opcode_info opcode_table[] =
     {WINED3D_SM4_OP_CUT,                    WINED3DSIH_CUT,                 "",     ""},
     {WINED3D_SM4_OP_DERIV_RTX,              WINED3DSIH_DSX,                 "F",    "F"},
     {WINED3D_SM4_OP_DERIV_RTY,              WINED3DSIH_DSY,                 "F",    "F"},
+    {WINED3D_SM4_OP_DISCARD,                WINED3DSIH_TEXKILL,             "",     "U"},
     {WINED3D_SM4_OP_DIV,                    WINED3DSIH_DIV,                 "F",    "FF"},
     {WINED3D_SM4_OP_DP3,                    WINED3DSIH_DP3,                 "F",    "FF"},
     {WINED3D_SM4_OP_DP4,                    WINED3DSIH_DP4,                 "F",    "FF"},




More information about the wine-cvs mailing list