From 0677a67c7b1cf4b8439b206ec5e8634ae22a854a Mon Sep 17 00:00:00 2001 From: Henri Verbeet Date: Fri, 8 Oct 2010 13:12:15 +0200 Subject: [PATCH] wined3d: Recognize the SM4 NULL register type. --- dlls/wined3d/shader.c | 10 ++++++++-- dlls/wined3d/shader_sm4.c | 6 ++++++ dlls/wined3d/wined3d_private.h | 1 + 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/dlls/wined3d/shader.c b/dlls/wined3d/shader.c index ac3e9116987..682188edbca 100644 --- a/dlls/wined3d/shader.c +++ b/dlls/wined3d/shader.c @@ -1018,6 +1018,10 @@ static void shader_dump_register(const struct wined3d_shader_register *reg, TRACE("cb"); break; + case WINED3DSPR_NULL: + TRACE("null"); + break; + default: TRACE("unhandled_rtype(%#x)", reg->type); break; @@ -1044,7 +1048,9 @@ static void shader_dump_register(const struct wined3d_shader_register *reg, } TRACE(")"); } - else if (reg->type != WINED3DSPR_RASTOUT && reg->type != WINED3DSPR_MISCTYPE) + else if (reg->type != WINED3DSPR_RASTOUT + && reg->type != WINED3DSPR_MISCTYPE + && reg->type != WINED3DSPR_NULL) { if (reg->array_idx != ~0U) { @@ -1077,7 +1083,7 @@ void shader_dump_dst_param(const struct wined3d_shader_dst_param *param, shader_dump_register(¶m->reg, shader_version); - if (write_mask != WINED3DSP_WRITEMASK_ALL) + if (write_mask && write_mask != WINED3DSP_WRITEMASK_ALL) { static const char *write_mask_chars = "xyzw"; diff --git a/dlls/wined3d/shader_sm4.c b/dlls/wined3d/shader_sm4.c index 0b9d6fd3928..7ab6c1a64b0 100644 --- a/dlls/wined3d/shader_sm4.c +++ b/dlls/wined3d/shader_sm4.c @@ -84,6 +84,7 @@ enum wined3d_sm4_register_type WINED3D_SM4_RT_OUTPUT = 0x2, WINED3D_SM4_RT_IMMCONST = 0x4, WINED3D_SM4_RT_CONSTBUFFER = 0x8, + WINED3D_SM4_RT_NULL = 0xd, }; enum wined3d_sm4_immconst_type @@ -156,6 +157,11 @@ static const WINED3DSHADER_PARAM_REGISTER_TYPE register_type_table[] = /* UNKNOWN */ 0, /* UNKNOWN */ 0, /* WINED3D_SM4_RT_CONSTBUFFER */ WINED3DSPR_CONSTBUFFER, + /* UNKNOWN */ 0, + /* UNKNOWN */ 0, + /* UNKNOWN */ 0, + /* UNKNOWN */ 0, + /* WINED3D_SM4_RT_NULL */ WINED3DSPR_NULL, }; static const struct sysval_map sysval_map[] = diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 36b73378c0f..bb719ca9656 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -308,6 +308,7 @@ typedef enum _WINED3DSHADER_PARAM_REGISTER_TYPE WINED3DSPR_PREDICATE = 19, WINED3DSPR_IMMCONST, WINED3DSPR_CONSTBUFFER, + WINED3DSPR_NULL, } WINED3DSHADER_PARAM_REGISTER_TYPE; enum wined3d_immconst_type -- 2.11.4.GIT