[PATCH 0/1] MR601: d3dx10: Implement D3DX10PreprocessShaderFromMemory.
From: Andrey Gusev <andrey.goosev(a)gmail.com> Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53427 --- dlls/d3dx10_43/async.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/dlls/d3dx10_43/async.c b/dlls/d3dx10_43/async.c index 667219b3500..211988ae014 100644 --- a/dlls/d3dx10_43/async.c +++ b/dlls/d3dx10_43/async.c @@ -604,12 +604,15 @@ HRESULT WINAPI D3DX10PreprocessShaderFromMemory(const char *data, SIZE_T data_si const D3D10_SHADER_MACRO *defines, ID3DInclude *include, ID3DX10ThreadPump *pump, ID3D10Blob **shader_text, ID3D10Blob **errors, HRESULT *hresult) { - FIXME("data %s, data_size %Iu, filename %s, defines %p, include %p, pump %p, shader_text %p, " - "errors %p, hresult %p stub!\n", + TRACE("data %s, data_size %Iu, filename %s, defines %p, include %p, pump %p, shader_text %p, " + "errors %p, hresult %p\n", debugstr_an(data, data_size), data_size, debugstr_a(filename), defines, include, pump, shader_text, errors, hresult); - return E_NOTIMPL; + if (pump) + FIXME("Unimplemented ID3DX10ThreadPump handling.\n"); + + return D3DPreprocess(data, data_size, filename, defines, include, shader_text, errors); } struct work_item -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/601
Matteo Bruni (@Mystral) commented about dlls/d3dx10_43/async.c:
const D3D10_SHADER_MACRO *defines, ID3DInclude *include, ID3DX10ThreadPump *pump, ID3D10Blob **shader_text, ID3D10Blob **errors, HRESULT *hresult) { - FIXME("data %s, data_size %Iu, filename %s, defines %p, include %p, pump %p, shader_text %p, " - "errors %p, hresult %p stub!\n", + TRACE("data %s, data_size %Iu, filename %s, defines %p, include %p, pump %p, shader_text %p, " + "errors %p, hresult %p\n",
Tiny nitpick: could you add a period at the end of the TRACE() message? -- https://gitlab.winehq.org/wine/wine/-/merge_requests/601#note_5870
This seems generally okay. Do you want to try to add pump support as a follow up? It shouldn't be too different from e.g. 0d457b2ce285e9964e88eed0b5e051197d8fc854 and 696071af7a3b6ec835d0dbc5cc37e80d9c836f62, except the implementation of the processor returned by D3DX10CreateAsyncShaderPreprocessProcessor() should amount to little more than a call to D3DPreprocess(). This could also use some tests. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/601#note_5871
Matteo Bruni (@Mystral) commented about dlls/d3dx10_43/async.c:
const D3D10_SHADER_MACRO *defines, ID3DInclude *include, ID3DX10ThreadPump *pump, ID3D10Blob **shader_text, ID3D10Blob **errors, HRESULT *hresult) { - FIXME("data %s, data_size %Iu, filename %s, defines %p, include %p, pump %p, shader_text %p, " - "errors %p, hresult %p stub!\n", + TRACE("data %s, data_size %Iu, filename %s, defines %p, include %p, pump %p, shader_text %p, " + "errors %p, hresult %p\n", debugstr_an(data, data_size), data_size, debugstr_a(filename), defines, include, pump, shader_text, errors, hresult);
- return E_NOTIMPL; + if (pump) + FIXME("Unimplemented ID3DX10ThreadPump handling.\n"); + + return D3DPreprocess(data, data_size, filename, defines, include, shader_text, errors);
This should probably also set *hresult (if not NULL) to the return value from D3DPreprocessor(), like e.g. D3DX10CreateTextureFromMemory(). A test would clarify if that's the case. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/601#note_5872
This merge request was closed by Matteo Bruni. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/601
participants (3)
-
Andrey Gusev -
Andrey Gusev (@agusev) -
Matteo Bruni (@Mystral)