From db49cb376707b9bc5f314fc98b4b0c2ed7ab5b35 Mon Sep 17 00:00:00 2001 From: Elizabeth Figura Date: Fri, 28 Feb 2025 17:27:03 -0600 Subject: [PATCH] Rebase against d17225a89cfb45988a89f60803756e7df4e68cc5. --- ...out-D3DCompile-warning-messages-that.patch | 87 ------------------- patches/d3dx9_36-Filter_Warnings/definition | 1 - staging/upstream-commit | 2 +- 3 files changed, 1 insertion(+), 89 deletions(-) delete mode 100644 patches/d3dx9_36-Filter_Warnings/0001-d3dx9_36-Filter-out-D3DCompile-warning-messages-that.patch delete mode 100644 patches/d3dx9_36-Filter_Warnings/definition diff --git a/patches/d3dx9_36-Filter_Warnings/0001-d3dx9_36-Filter-out-D3DCompile-warning-messages-that.patch b/patches/d3dx9_36-Filter_Warnings/0001-d3dx9_36-Filter-out-D3DCompile-warning-messages-that.patch deleted file mode 100644 index 02d85cf5..00000000 --- a/patches/d3dx9_36-Filter_Warnings/0001-d3dx9_36-Filter-out-D3DCompile-warning-messages-that.patch +++ /dev/null @@ -1,87 +0,0 @@ -From d258e0c4428f3d5b7c0b6f4b31058d8710244dd7 Mon Sep 17 00:00:00 2001 -From: Christian Costa -Date: Wed, 14 Aug 2013 09:31:31 +0200 -Subject: d3dx9_36: Filter out D3DCompile warning messages that are not present - with D3DCompileShader. (try 4) - -This patch fixes vertex processing issue of bug 33770. - -The problem comes from the fact that even if the call succeeds, -the game interprets a non null error_messages pointer as an error. - -By calling D3DCompile we use a newer version of the compiler which is more -strict and generates the following warning. - - warning X3206: 'dot': implicit truncation of vector type - - warning X3206: implicit truncation of vector type - - warning X3206: 'mul': implicit truncation of vector type -D3DCompileShader does not generate such warnings. - -These is confirmed in the DX SDK release note: -New Warning X3206: Implicit Truncation of Vector Type -Beginning in the August 2009 release of the DirectX SDK, the compiler will warn -when an implicit truncation of a vector type occurs. - -The warnings cannot be disable so this patch filters out these strings in D3DCompileShader -and reset the error messages pointer if the resulting buffer is empty. - -Try 2: - - only filter out lines containing "X3206:" in case d3dcompiler_43 has localization - -Try 3: - - use move in place instead of copying the buffer - -Try 4: - - filter simplification by Sebastian and remove 'mul' testing left-out in search string ---- - dlls/d3dx9_36/shader.c | 35 +++++++++++++++++++++++++++++++++++ - 1 file changed, 35 insertions(+) - -diff --git a/dlls/d3dx9_36/shader.c b/dlls/d3dx9_36/shader.c -index 5ea3d13..646d3dc 100644 ---- a/dlls/d3dx9_36/shader.c -+++ b/dlls/d3dx9_36/shader.c -@@ -450,6 +450,41 @@ HRESULT WINAPI D3DXCompileShader(const char *data, UINT length, const D3DXMACRO - } - } - -+ /* Filter out D3DCompile warning messages that are not present with D3DCompileShader */ -+ if (SUCCEEDED(hr) && error_msgs && *error_msgs) -+ { -+ char *messages = ID3DXBuffer_GetBufferPointer(*error_msgs); -+ DWORD size = ID3DXBuffer_GetBufferSize(*error_msgs); -+ -+ /* Ensure messages are null terminated for safe processing */ -+ if (size) messages[size - 1] = 0; -+ -+ while (size > 1) -+ { -+ char *prev, *next; -+ -+ /* Warning has the form "warning X3206: ... implicit truncation of vector type" -+ but we only search for "X3206:" in case d3dcompiler_43 has localization */ -+ prev = next = strstr(messages, "X3206:"); -+ if (!prev) break; -+ -+ /* get pointer to beginning and end of current line */ -+ while (prev > messages && *(prev - 1) != '\n') prev--; -+ while (next < messages + size - 1 && *next != '\n') next++; -+ if (next < messages + size - 1 && *next == '\n') next++; -+ -+ memmove(prev, next, messages + size - next); -+ size -= (next - prev); -+ } -+ -+ /* Only return a buffer if the resulting string is not empty as some apps depend on that */ -+ if (size <= 1) -+ { -+ ID3DXBuffer_Release(*error_msgs); -+ *error_msgs = NULL; -+ } -+ } -+ - return hr; - } - --- -2.1.2 - diff --git a/patches/d3dx9_36-Filter_Warnings/definition b/patches/d3dx9_36-Filter_Warnings/definition deleted file mode 100644 index a7c31863..00000000 --- a/patches/d3dx9_36-Filter_Warnings/definition +++ /dev/null @@ -1 +0,0 @@ -Fixes: [33770] D3DCompileShader should filter specific warning messages diff --git a/staging/upstream-commit b/staging/upstream-commit index e753c189..f7cbee26 100644 --- a/staging/upstream-commit +++ b/staging/upstream-commit @@ -1 +1 @@ -0bf15e3e0715ebda735e9857cbcb36ebc491293f +d17225a89cfb45988a89f60803756e7df4e68cc5