From 976b4e96bd92ce4514e258304d52c93d3141f2be Mon Sep 17 00:00:00 2001 From: =?utf8?q?Rico=20Sch=C3=BCller?= Date: Tue, 12 Oct 2010 19:24:55 +0200 Subject: [PATCH] d3dcompiler: Add D3D_BLOB_LEGACY_SHADER to D3DGetBlobPart(). --- dlls/d3dcompiler_43/blob.c | 7 ++++++- dlls/d3dcompiler_43/d3dcompiler_private.h | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/dlls/d3dcompiler_43/blob.c b/dlls/d3dcompiler_43/blob.c index 747697cfcfc..4e3029078b2 100644 --- a/dlls/d3dcompiler_43/blob.c +++ b/dlls/d3dcompiler_43/blob.c @@ -149,6 +149,10 @@ static BOOL check_blob_part(DWORD tag, D3D_BLOB_PART part) if (tag == TAG_SDBG) add = TRUE; break; + case D3D_BLOB_LEGACY_SHADER: + if (tag == TAG_Aon9) add = TRUE; + break; + default: FIXME("Unhandled D3D_BLOB_PART %s.\n", debug_d3dcompiler_d3d_blob_part(part)); break; @@ -218,6 +222,7 @@ HRESULT d3dcompiler_get_blob_part(const void *data, SIZE_T data_size, D3D_BLOB_P case D3D_BLOB_OUTPUT_SIGNATURE_BLOB: case D3D_BLOB_PATCH_CONSTANT_SIGNATURE_BLOB: case D3D_BLOB_DEBUG_INFO: + case D3D_BLOB_LEGACY_SHADER: if (count != 1) count = 0; break; @@ -243,7 +248,7 @@ HRESULT d3dcompiler_get_blob_part(const void *data, SIZE_T data_size, D3D_BLOB_P } /* some parts aren't full DXBCs, they contain only the data */ - if (count == 1 && (part == D3D_BLOB_DEBUG_INFO)) + if (count == 1 && (part == D3D_BLOB_DEBUG_INFO || part == D3D_BLOB_LEGACY_SHADER)) { hr = D3DCreateBlob(dst_dxbc.sections[0].data_size, blob); if (SUCCEEDED(hr)) diff --git a/dlls/d3dcompiler_43/d3dcompiler_private.h b/dlls/d3dcompiler_43/d3dcompiler_private.h index b60717dc4dc..a0d28937475 100644 --- a/dlls/d3dcompiler_43/d3dcompiler_private.h +++ b/dlls/d3dcompiler_43/d3dcompiler_private.h @@ -580,6 +580,7 @@ void SlDeleteShader(struct bwriter_shader *shader); #define MAKE_TAG(ch0, ch1, ch2, ch3) \ ((DWORD)(ch0) | ((DWORD)(ch1) << 8) | \ ((DWORD)(ch2) << 16) | ((DWORD)(ch3) << 24 )) +#define TAG_Aon9 MAKE_TAG('A', 'o', 'n', '9') #define TAG_DXBC MAKE_TAG('D', 'X', 'B', 'C') #define TAG_ISGN MAKE_TAG('I', 'S', 'G', 'N') #define TAG_OSGN MAKE_TAG('O', 'S', 'G', 'N') -- 2.11.4.GIT