Fixes "unhandled size" error for Crysis shaders.
Signed-off-by: Philip Rebohle philip.rebohle@tu-dortmund.de --- dlls/d3dcompiler_43/reflection.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/dlls/d3dcompiler_43/reflection.c b/dlls/d3dcompiler_43/reflection.c index 24190f6afe..7c67c92954 100644 --- a/dlls/d3dcompiler_43/reflection.c +++ b/dlls/d3dcompiler_43/reflection.c @@ -1127,7 +1127,12 @@ static HRESULT d3dcompiler_parse_stat(struct d3dcompiler_shader_reflection *r, c read_dword(&ptr, &r->gs_max_output_vertex_count); TRACE("GSMaxOutputVertexCount: %u\n", r->gs_max_output_vertex_count);
- skip_dword_unknown(&ptr, 3); + skip_dword_unknown(&ptr, 2); + + /* old dx10 stat size */ + if (size == 28) return S_OK; + + skip_dword_unknown(&ptr, 1);
/* dx10 stat size */ if (size == 29) return S_OK;
Signed-off-by: Matteo Bruni mbruni@codeweavers.com --- I haven't actually tested it with Crysis. Just for my own curiosity, do you know which SDK version (or d3dcompiler_xx.dll version) Crysis uses?
Crysis uses SDK version 29 (tested with the 64-bit build from the GOG version).
Note that the game uses D3D10ReflectShader and ID3D10ShaderReflection, but DXVK implements those as a wrapper around the newer d3dcompiler interfaces. This patch makes the game run without requiring the native d3dcompiler_43.dll.
Am Freitag, 17. Mai 2019, 19:31:01 CEST schrieb Matteo Bruni:
Signed-off-by: Matteo Bruni mbruni@codeweavers.com
I haven't actually tested it with Crysis. Just for my own curiosity, do you know which SDK version (or d3dcompiler_xx.dll version) Crysis uses?