From 50734ad54f4212b8e522d0acf7c616e51df19644 Mon Sep 17 00:00:00 2001 From: Matteo Bruni Date: Thu, 7 Dec 2017 22:56:15 +0100 Subject: [PATCH] d3dx9: Implement D3DXGetShader{Input|Output}Semantics(). Signed-off-by: Matteo Bruni Signed-off-by: Alexandre Julliard --- dlls/d3dx9_24/d3dx9_24.spec | 4 +- dlls/d3dx9_25/d3dx9_25.spec | 4 +- dlls/d3dx9_26/d3dx9_26.spec | 4 +- dlls/d3dx9_27/d3dx9_27.spec | 4 +- dlls/d3dx9_28/d3dx9_28.spec | 4 +- dlls/d3dx9_29/d3dx9_29.spec | 4 +- dlls/d3dx9_30/d3dx9_30.spec | 4 +- dlls/d3dx9_31/d3dx9_31.spec | 4 +- dlls/d3dx9_32/d3dx9_32.spec | 4 +- dlls/d3dx9_33/d3dx9_33.spec | 4 +- dlls/d3dx9_34/d3dx9_34.spec | 4 +- dlls/d3dx9_35/d3dx9_35.spec | 4 +- dlls/d3dx9_36/d3dx9_36.spec | 4 +- dlls/d3dx9_36/shader.c | 246 ++++++++++++++++++++++++++++++++++++ dlls/d3dx9_37/d3dx9_37.spec | 4 +- dlls/d3dx9_38/d3dx9_38.spec | 4 +- dlls/d3dx9_39/d3dx9_39.spec | 4 +- dlls/d3dx9_40/d3dx9_40.spec | 4 +- dlls/d3dx9_41/d3dx9_41.spec | 4 +- dlls/d3dx9_42/d3dx9_42.spec | 4 +- dlls/d3dx9_43/d3dx9_43.spec | 4 +- 21 files changed, 286 insertions(+), 40 deletions(-) diff --git a/dlls/d3dx9_24/d3dx9_24.spec b/dlls/d3dx9_24/d3dx9_24.spec index 0ca8777efe6..d816fd830d1 100644 --- a/dlls/d3dx9_24/d3dx9_24.spec +++ b/dlls/d3dx9_24/d3dx9_24.spec @@ -154,8 +154,8 @@ @ stdcall D3DXGetImageInfoFromResourceW(long wstr ptr) @ stdcall D3DXGetPixelShaderProfile(ptr) @ stdcall D3DXGetShaderConstantTable(ptr ptr) -@ stub D3DXGetShaderInputSemantics(ptr ptr ptr) -@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr) +@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr) +@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr) @ stdcall D3DXGetShaderSamplers(ptr ptr ptr) @ stdcall D3DXGetShaderSize(ptr) @ stdcall D3DXGetShaderVersion(ptr) diff --git a/dlls/d3dx9_25/d3dx9_25.spec b/dlls/d3dx9_25/d3dx9_25.spec index a5449810a43..e15230d417b 100644 --- a/dlls/d3dx9_25/d3dx9_25.spec +++ b/dlls/d3dx9_25/d3dx9_25.spec @@ -154,8 +154,8 @@ @ stdcall D3DXGetImageInfoFromResourceW(long wstr ptr) @ stdcall D3DXGetPixelShaderProfile(ptr) @ stdcall D3DXGetShaderConstantTable(ptr ptr) -@ stub D3DXGetShaderInputSemantics(ptr ptr ptr) -@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr) +@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr) +@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr) @ stdcall D3DXGetShaderSamplers(ptr ptr ptr) @ stdcall D3DXGetShaderSize(ptr) @ stdcall D3DXGetShaderVersion(ptr) diff --git a/dlls/d3dx9_26/d3dx9_26.spec b/dlls/d3dx9_26/d3dx9_26.spec index 9e1200442f4..ac25d066dbb 100644 --- a/dlls/d3dx9_26/d3dx9_26.spec +++ b/dlls/d3dx9_26/d3dx9_26.spec @@ -158,8 +158,8 @@ @ stdcall D3DXGetImageInfoFromResourceW(long wstr ptr) @ stdcall D3DXGetPixelShaderProfile(ptr) @ stdcall D3DXGetShaderConstantTable(ptr ptr) -@ stub D3DXGetShaderInputSemantics(ptr ptr ptr) -@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr) +@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr) +@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr) @ stdcall D3DXGetShaderSamplers(ptr ptr ptr) @ stdcall D3DXGetShaderSize(ptr) @ stdcall D3DXGetShaderVersion(ptr) diff --git a/dlls/d3dx9_27/d3dx9_27.spec b/dlls/d3dx9_27/d3dx9_27.spec index 9e1200442f4..ac25d066dbb 100644 --- a/dlls/d3dx9_27/d3dx9_27.spec +++ b/dlls/d3dx9_27/d3dx9_27.spec @@ -158,8 +158,8 @@ @ stdcall D3DXGetImageInfoFromResourceW(long wstr ptr) @ stdcall D3DXGetPixelShaderProfile(ptr) @ stdcall D3DXGetShaderConstantTable(ptr ptr) -@ stub D3DXGetShaderInputSemantics(ptr ptr ptr) -@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr) +@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr) +@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr) @ stdcall D3DXGetShaderSamplers(ptr ptr ptr) @ stdcall D3DXGetShaderSize(ptr) @ stdcall D3DXGetShaderVersion(ptr) diff --git a/dlls/d3dx9_28/d3dx9_28.spec b/dlls/d3dx9_28/d3dx9_28.spec index b316a23baf1..a6378d86ae5 100644 --- a/dlls/d3dx9_28/d3dx9_28.spec +++ b/dlls/d3dx9_28/d3dx9_28.spec @@ -158,8 +158,8 @@ @ stdcall D3DXGetImageInfoFromResourceW(long wstr ptr) @ stdcall D3DXGetPixelShaderProfile(ptr) @ stdcall D3DXGetShaderConstantTable(ptr ptr) -@ stub D3DXGetShaderInputSemantics(ptr ptr ptr) -@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr) +@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr) +@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr) @ stdcall D3DXGetShaderSamplers(ptr ptr ptr) @ stdcall D3DXGetShaderSize(ptr) @ stdcall D3DXGetShaderVersion(ptr) diff --git a/dlls/d3dx9_29/d3dx9_29.spec b/dlls/d3dx9_29/d3dx9_29.spec index b316a23baf1..a6378d86ae5 100644 --- a/dlls/d3dx9_29/d3dx9_29.spec +++ b/dlls/d3dx9_29/d3dx9_29.spec @@ -158,8 +158,8 @@ @ stdcall D3DXGetImageInfoFromResourceW(long wstr ptr) @ stdcall D3DXGetPixelShaderProfile(ptr) @ stdcall D3DXGetShaderConstantTable(ptr ptr) -@ stub D3DXGetShaderInputSemantics(ptr ptr ptr) -@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr) +@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr) +@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr) @ stdcall D3DXGetShaderSamplers(ptr ptr ptr) @ stdcall D3DXGetShaderSize(ptr) @ stdcall D3DXGetShaderVersion(ptr) diff --git a/dlls/d3dx9_30/d3dx9_30.spec b/dlls/d3dx9_30/d3dx9_30.spec index e00fa547862..f1225837814 100644 --- a/dlls/d3dx9_30/d3dx9_30.spec +++ b/dlls/d3dx9_30/d3dx9_30.spec @@ -158,8 +158,8 @@ @ stdcall D3DXGetImageInfoFromResourceW(long wstr ptr) @ stdcall D3DXGetPixelShaderProfile(ptr) @ stdcall D3DXGetShaderConstantTable(ptr ptr) -@ stub D3DXGetShaderInputSemantics(ptr ptr ptr) -@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr) +@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr) +@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr) @ stdcall D3DXGetShaderSamplers(ptr ptr ptr) @ stdcall D3DXGetShaderSize(ptr) @ stdcall D3DXGetShaderVersion(ptr) diff --git a/dlls/d3dx9_31/d3dx9_31.spec b/dlls/d3dx9_31/d3dx9_31.spec index d308939ef67..a0a74a59e1a 100644 --- a/dlls/d3dx9_31/d3dx9_31.spec +++ b/dlls/d3dx9_31/d3dx9_31.spec @@ -157,8 +157,8 @@ @ stdcall D3DXGetImageInfoFromResourceW(long wstr ptr) @ stdcall D3DXGetPixelShaderProfile(ptr) @ stdcall D3DXGetShaderConstantTable(ptr ptr) -@ stub D3DXGetShaderInputSemantics(ptr ptr ptr) -@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr) +@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr) +@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr) @ stdcall D3DXGetShaderSamplers(ptr ptr ptr) @ stdcall D3DXGetShaderSize(ptr) @ stdcall D3DXGetShaderVersion(ptr) diff --git a/dlls/d3dx9_32/d3dx9_32.spec b/dlls/d3dx9_32/d3dx9_32.spec index c2292dff396..e4e4fc65257 100644 --- a/dlls/d3dx9_32/d3dx9_32.spec +++ b/dlls/d3dx9_32/d3dx9_32.spec @@ -157,8 +157,8 @@ @ stdcall D3DXGetImageInfoFromResourceW(long wstr ptr) @ stdcall D3DXGetPixelShaderProfile(ptr) @ stdcall D3DXGetShaderConstantTable(ptr ptr) -@ stub D3DXGetShaderInputSemantics(ptr ptr ptr) -@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr) +@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr) +@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr) @ stdcall D3DXGetShaderSamplers(ptr ptr ptr) @ stdcall D3DXGetShaderSize(ptr) @ stdcall D3DXGetShaderVersion(ptr) diff --git a/dlls/d3dx9_33/d3dx9_33.spec b/dlls/d3dx9_33/d3dx9_33.spec index c2292dff396..e4e4fc65257 100644 --- a/dlls/d3dx9_33/d3dx9_33.spec +++ b/dlls/d3dx9_33/d3dx9_33.spec @@ -157,8 +157,8 @@ @ stdcall D3DXGetImageInfoFromResourceW(long wstr ptr) @ stdcall D3DXGetPixelShaderProfile(ptr) @ stdcall D3DXGetShaderConstantTable(ptr ptr) -@ stub D3DXGetShaderInputSemantics(ptr ptr ptr) -@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr) +@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr) +@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr) @ stdcall D3DXGetShaderSamplers(ptr ptr ptr) @ stdcall D3DXGetShaderSize(ptr) @ stdcall D3DXGetShaderVersion(ptr) diff --git a/dlls/d3dx9_34/d3dx9_34.spec b/dlls/d3dx9_34/d3dx9_34.spec index c2292dff396..e4e4fc65257 100644 --- a/dlls/d3dx9_34/d3dx9_34.spec +++ b/dlls/d3dx9_34/d3dx9_34.spec @@ -157,8 +157,8 @@ @ stdcall D3DXGetImageInfoFromResourceW(long wstr ptr) @ stdcall D3DXGetPixelShaderProfile(ptr) @ stdcall D3DXGetShaderConstantTable(ptr ptr) -@ stub D3DXGetShaderInputSemantics(ptr ptr ptr) -@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr) +@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr) +@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr) @ stdcall D3DXGetShaderSamplers(ptr ptr ptr) @ stdcall D3DXGetShaderSize(ptr) @ stdcall D3DXGetShaderVersion(ptr) diff --git a/dlls/d3dx9_35/d3dx9_35.spec b/dlls/d3dx9_35/d3dx9_35.spec index c2292dff396..e4e4fc65257 100644 --- a/dlls/d3dx9_35/d3dx9_35.spec +++ b/dlls/d3dx9_35/d3dx9_35.spec @@ -157,8 +157,8 @@ @ stdcall D3DXGetImageInfoFromResourceW(long wstr ptr) @ stdcall D3DXGetPixelShaderProfile(ptr) @ stdcall D3DXGetShaderConstantTable(ptr ptr) -@ stub D3DXGetShaderInputSemantics(ptr ptr ptr) -@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr) +@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr) +@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr) @ stdcall D3DXGetShaderSamplers(ptr ptr ptr) @ stdcall D3DXGetShaderSize(ptr) @ stdcall D3DXGetShaderVersion(ptr) diff --git a/dlls/d3dx9_36/d3dx9_36.spec b/dlls/d3dx9_36/d3dx9_36.spec index 0fdf4e135e1..0d9fdabb44f 100644 --- a/dlls/d3dx9_36/d3dx9_36.spec +++ b/dlls/d3dx9_36/d3dx9_36.spec @@ -159,8 +159,8 @@ @ stdcall D3DXGetPixelShaderProfile(ptr) @ stdcall D3DXGetShaderConstantTable(ptr ptr) @ stdcall D3DXGetShaderConstantTableEx(ptr long ptr) -@ stub D3DXGetShaderInputSemantics(ptr ptr ptr) -@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr) +@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr) +@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr) @ stdcall D3DXGetShaderSamplers(ptr ptr ptr) @ stdcall D3DXGetShaderSize(ptr) @ stdcall D3DXGetShaderVersion(ptr) diff --git a/dlls/d3dx9_36/shader.c b/dlls/d3dx9_36/shader.c index e46e0ae04bd..f3724947601 100644 --- a/dlls/d3dx9_36/shader.c +++ b/dlls/d3dx9_36/shader.c @@ -2416,3 +2416,249 @@ HRESULT WINAPI D3DXCreateTextureShader(const DWORD *function, ID3DXTextureShader return D3D_OK; } + +static unsigned int get_instr_length(const DWORD *byte_code, unsigned int major, unsigned int minor) +{ + unsigned int len = 0; + + if (major > 1) + return (*byte_code & D3DSI_INSTLENGTH_MASK) >> D3DSI_INSTLENGTH_SHIFT; + + switch (*byte_code & 0xffff) + { + case D3DSIO_END: + ERR("Unexpected END token.\n"); + return 0; + case D3DSIO_COMMENT: + return (*byte_code & D3DSI_COMMENTSIZE_MASK) >> D3DSI_COMMENTSIZE_SHIFT; + case D3DSIO_DEF: + case D3DSIO_DEFI: + return 5; + case D3DSIO_DEFB: + return 2; + default: + ++byte_code; + while (*byte_code & 0x80000000) + { + ++byte_code; + ++len; + } + } + + return len; +} + +static HRESULT get_shader_semantics(const DWORD *byte_code, D3DXSEMANTIC *semantics, UINT *count, BOOL output) +{ + static const D3DDECLUSAGE regtype_usage[] = + { + D3DDECLUSAGE_COLOR, + D3DDECLUSAGE_COLOR, + 0, + D3DDECLUSAGE_TEXCOORD, + 0, + D3DDECLUSAGE_COLOR, + D3DDECLUSAGE_TEXCOORD, + 0, + 0, + D3DDECLUSAGE_DEPTH + }; + static const D3DDECLUSAGE rast_usage[] = + { + D3DDECLUSAGE_POSITION, + D3DDECLUSAGE_FOG, + D3DDECLUSAGE_PSIZE + }; + DWORD reg_type, usage, index, version_token = *byte_code; + BOOL is_ps = version_token >> 16 == 0xffff; + unsigned int major, minor, i = 0, j; + BYTE colors = 0, rastout = 0; + BOOL has_dcl, depth = 0; + WORD texcoords = 0; + + if ((version_token & 0xffff0000) != 0xfffe0000 && (version_token & 0xffff0000) != 0xffff0000) + return D3DXERR_INVALIDDATA; + + major = version_token >> 8 & 0xff; + minor = version_token & 0xff; + + TRACE("%s shader, version %u.%u.\n", is_ps ? "Pixel" : "Vertex", major, minor); + ++byte_code; + + has_dcl = (!is_ps && (!output || major == 3)) || (is_ps && !output && major >= 2); + + while (*byte_code != D3DSIO_END) + { + if (has_dcl && (*byte_code & 0xffff) == D3DSIO_DCL) + { + DWORD usage_token = byte_code[1]; + DWORD reg = byte_code[2]; + + reg_type = ((reg & D3DSP_REGTYPE_MASK) >> D3DSP_REGTYPE_SHIFT) + | ((reg & D3DSP_REGTYPE_MASK2) >> D3DSP_REGTYPE_SHIFT2); + + if (is_ps && !output && major == 2) + { + /* dcl with no explicit usage, look at the register. */ + reg_type = ((reg & D3DSP_REGTYPE_MASK) >> D3DSP_REGTYPE_SHIFT) + | ((reg & D3DSP_REGTYPE_MASK2) >> D3DSP_REGTYPE_SHIFT2); + index = reg & D3DSP_REGNUM_MASK; + if (reg_type >= ARRAY_SIZE(regtype_usage)) + { + WARN("Invalid register type %u.\n", reg_type); + reg_type = 0; + } + usage = regtype_usage[reg_type]; + if (semantics) + { + semantics[i].Usage = usage; + semantics[i].UsageIndex = index; + } + ++i; + } + else if ((!output && reg_type == D3DSPR_INPUT) || (output && reg_type == D3DSPR_OUTPUT)) + { + if (semantics) + { + semantics[i].Usage = + (usage_token & D3DSP_DCL_USAGE_MASK) >> D3DSP_DCL_USAGE_SHIFT; + semantics[i].UsageIndex = + (usage_token & D3DSP_DCL_USAGEINDEX_MASK) >> D3DSP_DCL_USAGEINDEX_SHIFT; + } + ++i; + } + byte_code += 3; + } + else if (!has_dcl) + { + unsigned int len = get_instr_length(byte_code, major, minor) + 1; + + switch (*byte_code & 0xffff) + { + case D3DSIO_COMMENT: + case D3DSIO_DEF: + case D3DSIO_DEFB: + case D3DSIO_DEFI: + byte_code += len; + break; + default: + ++byte_code; + while (*byte_code & 0x80000000) + { + reg_type = ((*byte_code & D3DSP_REGTYPE_MASK) >> D3DSP_REGTYPE_SHIFT) + | ((*byte_code & D3DSP_REGTYPE_MASK2) >> D3DSP_REGTYPE_SHIFT2); + index = *byte_code & D3DSP_REGNUM_MASK; + + if ((reg_type == D3DSPR_TEMP && is_ps && major == 1) + || (reg_type == D3DSPR_INPUT && is_ps) + || (reg_type == D3DSPR_TEXTURE && is_ps && !output) + || reg_type == D3DSPR_RASTOUT + || reg_type == D3DSPR_ATTROUT + || reg_type == D3DSPR_OUTPUT + || reg_type == D3DSPR_DEPTHOUT) + { + if (reg_type == D3DSPR_RASTOUT) + rastout |= 1u << index; + else if (reg_type == D3DSPR_DEPTHOUT) + depth = TRUE; + else if (reg_type == D3DSPR_TEXTURE || reg_type == D3DSPR_OUTPUT) + texcoords |= 1u << index; + else + colors |= 1u << index; + } + ++byte_code; + } + } + } + else + { + byte_code += get_instr_length(byte_code, major, minor) + 1; + } + } + + if (!has_dcl) + { + i = j = 0; + while (texcoords) + { + if (texcoords & 1) + { + if (semantics) + { + semantics[i].Usage = D3DDECLUSAGE_TEXCOORD; + semantics[i].UsageIndex = j; + } + ++i; + } + texcoords >>= 1; + ++j; + } + j = 0; + while (colors) + { + if (colors & 1) + { + if (semantics) + { + semantics[i].Usage = D3DDECLUSAGE_COLOR; + semantics[i].UsageIndex = j; + } + ++i; + } + colors >>= 1; + ++j; + } + j = 0; + while (rastout) + { + if (rastout & 1) + { + if (j >= ARRAY_SIZE(rast_usage)) + { + WARN("Invalid RASTOUT register index.\n"); + usage = 0; + } + else + { + usage = rast_usage[j]; + } + if (semantics) + { + semantics[i].Usage = usage; + semantics[i].UsageIndex = 0; + } + ++i; + } + rastout >>= 1; + ++j; + } + if (depth) + { + if (semantics) + { + semantics[i].Usage = D3DDECLUSAGE_DEPTH; + semantics[i].UsageIndex = 0; + } + ++i; + } + } + + if (count) + *count = i; + + return D3D_OK; +} + +HRESULT WINAPI D3DXGetShaderInputSemantics(const DWORD *byte_code, D3DXSEMANTIC *semantics, UINT *count) +{ + TRACE("byte_code %p, semantics %p, count %p.\n", byte_code, semantics, count); + + return get_shader_semantics(byte_code, semantics, count, FALSE); +} + +HRESULT WINAPI D3DXGetShaderOutputSemantics(const DWORD *byte_code, D3DXSEMANTIC *semantics, UINT *count) +{ + TRACE("byte_code %p, semantics %p, count %p.\n", byte_code, semantics, count); + + return get_shader_semantics(byte_code, semantics, count, TRUE); +} diff --git a/dlls/d3dx9_37/d3dx9_37.spec b/dlls/d3dx9_37/d3dx9_37.spec index 0fdf4e135e1..0d9fdabb44f 100644 --- a/dlls/d3dx9_37/d3dx9_37.spec +++ b/dlls/d3dx9_37/d3dx9_37.spec @@ -159,8 +159,8 @@ @ stdcall D3DXGetPixelShaderProfile(ptr) @ stdcall D3DXGetShaderConstantTable(ptr ptr) @ stdcall D3DXGetShaderConstantTableEx(ptr long ptr) -@ stub D3DXGetShaderInputSemantics(ptr ptr ptr) -@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr) +@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr) +@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr) @ stdcall D3DXGetShaderSamplers(ptr ptr ptr) @ stdcall D3DXGetShaderSize(ptr) @ stdcall D3DXGetShaderVersion(ptr) diff --git a/dlls/d3dx9_38/d3dx9_38.spec b/dlls/d3dx9_38/d3dx9_38.spec index 0fdf4e135e1..0d9fdabb44f 100644 --- a/dlls/d3dx9_38/d3dx9_38.spec +++ b/dlls/d3dx9_38/d3dx9_38.spec @@ -159,8 +159,8 @@ @ stdcall D3DXGetPixelShaderProfile(ptr) @ stdcall D3DXGetShaderConstantTable(ptr ptr) @ stdcall D3DXGetShaderConstantTableEx(ptr long ptr) -@ stub D3DXGetShaderInputSemantics(ptr ptr ptr) -@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr) +@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr) +@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr) @ stdcall D3DXGetShaderSamplers(ptr ptr ptr) @ stdcall D3DXGetShaderSize(ptr) @ stdcall D3DXGetShaderVersion(ptr) diff --git a/dlls/d3dx9_39/d3dx9_39.spec b/dlls/d3dx9_39/d3dx9_39.spec index 0fdf4e135e1..0d9fdabb44f 100644 --- a/dlls/d3dx9_39/d3dx9_39.spec +++ b/dlls/d3dx9_39/d3dx9_39.spec @@ -159,8 +159,8 @@ @ stdcall D3DXGetPixelShaderProfile(ptr) @ stdcall D3DXGetShaderConstantTable(ptr ptr) @ stdcall D3DXGetShaderConstantTableEx(ptr long ptr) -@ stub D3DXGetShaderInputSemantics(ptr ptr ptr) -@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr) +@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr) +@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr) @ stdcall D3DXGetShaderSamplers(ptr ptr ptr) @ stdcall D3DXGetShaderSize(ptr) @ stdcall D3DXGetShaderVersion(ptr) diff --git a/dlls/d3dx9_40/d3dx9_40.spec b/dlls/d3dx9_40/d3dx9_40.spec index 0fdf4e135e1..0d9fdabb44f 100644 --- a/dlls/d3dx9_40/d3dx9_40.spec +++ b/dlls/d3dx9_40/d3dx9_40.spec @@ -159,8 +159,8 @@ @ stdcall D3DXGetPixelShaderProfile(ptr) @ stdcall D3DXGetShaderConstantTable(ptr ptr) @ stdcall D3DXGetShaderConstantTableEx(ptr long ptr) -@ stub D3DXGetShaderInputSemantics(ptr ptr ptr) -@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr) +@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr) +@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr) @ stdcall D3DXGetShaderSamplers(ptr ptr ptr) @ stdcall D3DXGetShaderSize(ptr) @ stdcall D3DXGetShaderVersion(ptr) diff --git a/dlls/d3dx9_41/d3dx9_41.spec b/dlls/d3dx9_41/d3dx9_41.spec index 0fdf4e135e1..0d9fdabb44f 100644 --- a/dlls/d3dx9_41/d3dx9_41.spec +++ b/dlls/d3dx9_41/d3dx9_41.spec @@ -159,8 +159,8 @@ @ stdcall D3DXGetPixelShaderProfile(ptr) @ stdcall D3DXGetShaderConstantTable(ptr ptr) @ stdcall D3DXGetShaderConstantTableEx(ptr long ptr) -@ stub D3DXGetShaderInputSemantics(ptr ptr ptr) -@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr) +@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr) +@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr) @ stdcall D3DXGetShaderSamplers(ptr ptr ptr) @ stdcall D3DXGetShaderSize(ptr) @ stdcall D3DXGetShaderVersion(ptr) diff --git a/dlls/d3dx9_42/d3dx9_42.spec b/dlls/d3dx9_42/d3dx9_42.spec index 2f2ac5fd619..086d0b5c5d4 100644 --- a/dlls/d3dx9_42/d3dx9_42.spec +++ b/dlls/d3dx9_42/d3dx9_42.spec @@ -152,8 +152,8 @@ @ stdcall D3DXGetPixelShaderProfile(ptr) @ stdcall D3DXGetShaderConstantTable(ptr ptr) @ stdcall D3DXGetShaderConstantTableEx(ptr long ptr) -@ stub D3DXGetShaderInputSemantics(ptr ptr ptr) -@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr) +@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr) +@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr) @ stdcall D3DXGetShaderSamplers(ptr ptr ptr) @ stdcall D3DXGetShaderSize(ptr) @ stdcall D3DXGetShaderVersion(ptr) diff --git a/dlls/d3dx9_43/d3dx9_43.spec b/dlls/d3dx9_43/d3dx9_43.spec index 2f2ac5fd619..086d0b5c5d4 100644 --- a/dlls/d3dx9_43/d3dx9_43.spec +++ b/dlls/d3dx9_43/d3dx9_43.spec @@ -152,8 +152,8 @@ @ stdcall D3DXGetPixelShaderProfile(ptr) @ stdcall D3DXGetShaderConstantTable(ptr ptr) @ stdcall D3DXGetShaderConstantTableEx(ptr long ptr) -@ stub D3DXGetShaderInputSemantics(ptr ptr ptr) -@ stub D3DXGetShaderOutputSemantics(ptr ptr ptr) +@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr) +@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr) @ stdcall D3DXGetShaderSamplers(ptr ptr ptr) @ stdcall D3DXGetShaderSize(ptr) @ stdcall D3DXGetShaderVersion(ptr)