Fixes `D3D_BLOB_PART` validation tests on Clang in MSVC mode.
-- v2: d3dcompiler: Handle all D3D_BLOB_PART values in d3dcompiler_get_blob_part validation.
From: Jacek Caban jacek@codeweavers.com
Fixes D3D_BLOB_PART validation tests on Clang in MSVC mode. --- dlls/d3dcompiler_43/blob.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/d3dcompiler_43/blob.c b/dlls/d3dcompiler_43/blob.c index f5bcb5f8fa3..c875577bc21 100644 --- a/dlls/d3dcompiler_43/blob.c +++ b/dlls/d3dcompiler_43/blob.c @@ -214,7 +214,7 @@ static BOOL check_blob_part(DWORD tag, D3D_BLOB_PART part) return add; }
-static HRESULT d3dcompiler_get_blob_part(const void *data, SIZE_T data_size, D3D_BLOB_PART part, UINT flags, ID3DBlob **blob) +static HRESULT d3dcompiler_get_blob_part(const void *data, SIZE_T data_size, UINT part, UINT flags, ID3DBlob **blob) { const struct vkd3d_shader_code src_dxbc = {.code = data, .size = data_size}; struct vkd3d_shader_dxbc_section_desc *sections;
From: Jacek Caban jacek@codeweavers.com
--- dlls/d3dcompiler_43/blob.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/dlls/d3dcompiler_43/blob.c b/dlls/d3dcompiler_43/blob.c index c875577bc21..0c29c36c70c 100644 --- a/dlls/d3dcompiler_43/blob.c +++ b/dlls/d3dcompiler_43/blob.c @@ -230,8 +230,8 @@ static HRESULT d3dcompiler_get_blob_part(const void *data, SIZE_T data_size, UIN return D3DERR_INVALIDCALL; }
- if (part > D3D_BLOB_TEST_COMPILE_PERF - || (part < D3D_BLOB_TEST_ALTERNATE_SHADER && part > D3D_BLOB_XNA_SHADER)) + if (part > D3D_BLOB_TEST_COMPILE_REPORT + || (part < D3D_BLOB_TEST_ALTERNATE_SHADER && part > D3D_BLOB_DEBUG_NAME)) { WARN("Invalid D3D_BLOB_PART: part %s\n", debug_d3dcompiler_d3d_blob_part(part)); return D3DERR_INVALIDCALL;
On Tue Jul 1 16:11:34 2025 +0000, Jacek Caban wrote:
changed this line in [version 2 of the diff](/wine/wine/-/merge_requests/8475/diffs?diff_id=190046&start_sha=29d3bfc3447471e045586e1edb84d2cebd6a269e#baed0d3cb96701a82dad2262df900a3abb0bd9e4_234_233)
I added a commit changing that, thanks.
This merge request was approved by Matteo Bruni.
Thanks for the MR! I assume adding a `part < D3D_BLOB_INPUT_SIGNATURE_BLOB` to the same `if` would also solve it for MSVC-mode clang but might break some other compiler, right?
On Tue Jul 1 17:01:24 2025 +0000, Matteo Bruni wrote:
Thanks for the MR! I assume adding a `part < D3D_BLOB_INPUT_SIGNATURE_BLOB` to the same `if` would also solve it for MSVC-mode clang but might break some other compiler, right?
This would trigger a warning on Clang in MinGW mode. The value is unsigned (for GCC MinGW compatibility), so the check is always false, and Clang emits a warning about it.
In my opinion, the warning is counter-productive, we could consider disabling it, but working around it isn’t too bad either.