From 87484020015cc361d512d6b05ba73a5887d95b7b Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Sat, 13 May 2017 01:14:10 +0200 Subject: [PATCH] Rebase against 4eaaf06ce4e5d7424eec2cf303c8256610544b39. --- patches/patchinstall.sh | 13 +- ...s-in-WICPersistOptions-enumeration-n.patch | 248 ------------------ ...sts-Add-tests-for-encoding-2bpp-4bpp.patch | 4 +- ...d-support-for-128bppRGBAFloat-format.patch | 10 +- ...GUID_WICPixelFormat32bppCMYK-definit.patch | 25 -- ...-Introduce-a-separate-priority-queue.patch | 141 +++++----- ...iority-queue-for-update_sub_resource.patch | 12 +- ...-wined3d_cs_emit_update_sub_resource.patch | 26 +- .../wined3d-CSMT_Main/9999-IfDefined.patch | 146 ++++++----- 9 files changed, 184 insertions(+), 441 deletions(-) delete mode 100644 patches/windowscodecs-Metadata/0005-include-Fix-typos-in-WICPersistOptions-enumeration-n.patch delete mode 100644 patches/windowscodecs-TIFF_Support/0010-include-Fix-the-GUID_WICPixelFormat32bppCMYK-definit.patch diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index b83551ea..061976de 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -52,7 +52,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "b77688102a84e1c7b7278340c46f53db3e1cda00" + echo "4eaaf06ce4e5d7424eec2cf303c8256610544b39" } # Show version information @@ -8300,7 +8300,6 @@ if test "$enable_windowscodecs_TIFF_Support" -eq 1; then patch_apply windowscodecs-TIFF_Support/0007-windowscodecs-Add-support-for-3bps-RGB-format-to-TIF.patch patch_apply windowscodecs-TIFF_Support/0008-windowscodecs-Add-support-for-12bpp-RGB-format-to-TI.patch patch_apply windowscodecs-TIFF_Support/0009-windowscodecs-Add-support-for-128bppRGBAFloat-format.patch - patch_apply windowscodecs-TIFF_Support/0010-include-Fix-the-GUID_WICPixelFormat32bppCMYK-definit.patch patch_apply windowscodecs-TIFF_Support/0011-windowscodecs-Add-support-for-32bppCMYK-and-64bppCMY.patch patch_apply windowscodecs-TIFF_Support/0012-windowscodecs-Add-support-for-4bpp-RGBA-format-to-TI.patch patch_apply windowscodecs-TIFF_Support/0013-windowscodecs-Add-support-for-16bpp-RGBA-format-to-T.patch @@ -8318,7 +8317,6 @@ if test "$enable_windowscodecs_TIFF_Support" -eq 1; then printf '%s\n' '+ { "Dmitry Timoshkov", "windowscodecs: Add support for 3bps RGB format to TIFF decoder.", 1 },'; printf '%s\n' '+ { "Dmitry Timoshkov", "windowscodecs: Add support for 12bpp RGB format to TIFF decoder.", 1 },'; printf '%s\n' '+ { "Dmitry Timoshkov", "windowscodecs: Add support for 128bppRGBAFloat format to TIFF decoder.", 1 },'; - printf '%s\n' '+ { "Dmitry Timoshkov", "include: Fix the GUID_WICPixelFormat32bppCMYK definition.", 1 },'; printf '%s\n' '+ { "Dmitry Timoshkov", "windowscodecs: Add support for 32bppCMYK and 64bppCMYK formats to TIFF decoder.", 1 },'; printf '%s\n' '+ { "Dmitry Timoshkov", "windowscodecs: Add support for 4bpp RGBA format to TIFF decoder.", 1 },'; printf '%s\n' '+ { "Dmitry Timoshkov", "windowscodecs: Add support for 16bpp RGBA format to TIFF decoder.", 1 },'; @@ -8388,24 +8386,21 @@ fi # | windowscodecs-IWICPalette_InitializeFromBitmap, windowscodecs-TIFF_Support, windowscodecs-WICCreateBitmapFromSection # | # | Modified files: -# | * dlls/windowscodecs/Makefile.in, dlls/windowscodecs/gifformat.c, dlls/windowscodecs/imgfactory.c, -# | dlls/windowscodecs/metadatahandler.c, dlls/windowscodecs/metadataquery.c, dlls/windowscodecs/tests/converter.c, -# | dlls/windowscodecs/tests/metadata.c, dlls/windowscodecs/tiffformat.c, dlls/windowscodecs/windowscodecs.spec, -# | include/wincodec.idl, include/wincodecsdk.idl +# | * dlls/windowscodecs/Makefile.in, dlls/windowscodecs/metadatahandler.c, dlls/windowscodecs/metadataquery.c, +# | dlls/windowscodecs/tests/metadata.c, dlls/windowscodecs/windowscodecs.spec, include/wincodec.idl, +# | include/wincodecsdk.idl # | if test "$enable_windowscodecs_Metadata" -eq 1; then patch_apply windowscodecs-Metadata/0001-windowscodecs-Implement-WICMapGuidToShortName.patch patch_apply windowscodecs-Metadata/0002-windowscodecs-Implement-WICMapShortNameToGuid.patch patch_apply windowscodecs-Metadata/0003-windowscodecs-Implement-WICMapSchemaToName.patch patch_apply windowscodecs-Metadata/0004-windowscodecs-Implement-IWICMetadataQueryReader-GetC.patch - patch_apply windowscodecs-Metadata/0005-include-Fix-typos-in-WICPersistOptions-enumeration-n.patch patch_apply windowscodecs-Metadata/0006-windowscodecs-Simplify-a-bit-comparison-of-two-PROPV.patch ( printf '%s\n' '+ { "Dmitry Timoshkov", "windowscodecs: Implement WICMapGuidToShortName.", 1 },'; printf '%s\n' '+ { "Dmitry Timoshkov", "windowscodecs: Implement WICMapShortNameToGuid.", 1 },'; printf '%s\n' '+ { "Dmitry Timoshkov", "windowscodecs: Implement WICMapSchemaToName.", 1 },'; printf '%s\n' '+ { "Dmitry Timoshkov", "windowscodecs: Implement IWICMetadataQueryReader::GetContainerFormat.", 1 },'; - printf '%s\n' '+ { "Dmitry Timoshkov", "include: Fix typos in WICPersistOptions enumeration names.", 1 },'; printf '%s\n' '+ { "Dmitry Timoshkov", "windowscodecs: Simplify a bit comparison of two PROPVARIANTs.", 1 },'; ) >> "$patchlist" fi diff --git a/patches/windowscodecs-Metadata/0005-include-Fix-typos-in-WICPersistOptions-enumeration-n.patch b/patches/windowscodecs-Metadata/0005-include-Fix-typos-in-WICPersistOptions-enumeration-n.patch deleted file mode 100644 index be2e3b94..00000000 --- a/patches/windowscodecs-Metadata/0005-include-Fix-typos-in-WICPersistOptions-enumeration-n.patch +++ /dev/null @@ -1,248 +0,0 @@ -From e9cd0d95e6c21d304f67035b7aa5113021f2aeb1 Mon Sep 17 00:00:00 2001 -From: Dmitry Timoshkov -Date: Tue, 28 Mar 2017 14:29:55 +0800 -Subject: include: Fix typos in WICPersistOptions enumeration names. - ---- - dlls/windowscodecs/gifformat.c | 4 ++-- - dlls/windowscodecs/imgfactory.c | 4 ++-- - dlls/windowscodecs/metadatahandler.c | 6 +++--- - dlls/windowscodecs/tests/converter.c | 4 ++-- - dlls/windowscodecs/tests/metadata.c | 28 ++++++++++++++-------------- - dlls/windowscodecs/tiffformat.c | 6 +++--- - include/wincodecsdk.idl | 12 ++++++------ - 7 files changed, 32 insertions(+), 32 deletions(-) - -diff --git a/dlls/windowscodecs/gifformat.c b/dlls/windowscodecs/gifformat.c -index efeddb00bb..7537eaca07 100644 ---- a/dlls/windowscodecs/gifformat.c -+++ b/dlls/windowscodecs/gifformat.c -@@ -566,7 +566,7 @@ static HRESULT create_metadata_reader(const void *data, int data_size, - } - - stream = create_stream(data, data_size); -- IWICPersistStream_LoadEx(persist, stream, NULL, WICPersistOptionsDefault); -+ IWICPersistStream_LoadEx(persist, stream, NULL, WICPersistOptionDefault); - IStream_Release(stream); - - IWICPersistStream_Release(persist); -@@ -936,7 +936,7 @@ static HRESULT create_IMD_metadata_reader(GifFrameDecode *This, IWICMetadataRead - } - - stream = create_stream(&IMD_data, sizeof(IMD_data)); -- IWICPersistStream_LoadEx(persist, stream, NULL, WICPersistOptionsDefault); -+ IWICPersistStream_LoadEx(persist, stream, NULL, WICPersistOptionDefault); - IStream_Release(stream); - - IWICPersistStream_Release(persist); -diff --git a/dlls/windowscodecs/imgfactory.c b/dlls/windowscodecs/imgfactory.c -index 0ff4c123ee..c28c4a8d28 100644 ---- a/dlls/windowscodecs/imgfactory.c -+++ b/dlls/windowscodecs/imgfactory.c -@@ -1044,7 +1044,7 @@ start: - if (SUCCEEDED(hr)) - { - hr = IWICPersistStream_LoadEx(wicpersiststream, -- stream, vendor, options & WICPersistOptionsMask); -+ stream, vendor, options & WICPersistOptionMask); - - IWICPersistStream_Release(wicpersiststream); - } -@@ -1088,7 +1088,7 @@ start: - - if (SUCCEEDED(hr)) - { -- hr = IWICPersistStream_LoadEx(wicpersiststream, stream, NULL, options & WICPersistOptionsMask); -+ hr = IWICPersistStream_LoadEx(wicpersiststream, stream, NULL, options & WICPersistOptionMask); - - IWICPersistStream_Release(wicpersiststream); - } -diff --git a/dlls/windowscodecs/metadatahandler.c b/dlls/windowscodecs/metadatahandler.c -index d0663066c9..e394064f2a 100644 ---- a/dlls/windowscodecs/metadatahandler.c -+++ b/dlls/windowscodecs/metadatahandler.c -@@ -390,7 +390,7 @@ static HRESULT WINAPI MetadataHandler_Load(IWICPersistStream *iface, - { - MetadataHandler *This = impl_from_IWICPersistStream(iface); - TRACE("(%p,%p)\n", iface, pStm); -- return IWICPersistStream_LoadEx(&This->IWICPersistStream_iface, pStm, NULL, WICPersistOptionsDefault); -+ return IWICPersistStream_LoadEx(&This->IWICPersistStream_iface, pStm, NULL, WICPersistOptionDefault); - } - - static HRESULT WINAPI MetadataHandler_Save(IWICPersistStream *iface, -@@ -1059,9 +1059,9 @@ static HRESULT LoadIfdMetadata(IStream *input, const GUID *preferred_vendor, - TRACE("\n"); - - #ifdef WORDS_BIGENDIAN -- if (persist_options & WICPersistOptionsLittleEndian) -+ if (persist_options & WICPersistOptionLittleEndian) - #else -- if (persist_options & WICPersistOptionsBigEndian) -+ if (persist_options & WICPersistOptionBigEndian) - #endif - native_byte_order = FALSE; - -diff --git a/dlls/windowscodecs/tests/converter.c b/dlls/windowscodecs/tests/converter.c -index 17724d9ed0..357f9ef642 100644 ---- a/dlls/windowscodecs/tests/converter.c -+++ b/dlls/windowscodecs/tests/converter.c -@@ -776,9 +776,9 @@ static void load_stream(IUnknown *reader, IStream *stream) - HRESULT hr; - IWICPersistStream *persist; - #ifdef WORDS_BIGENDIAN -- DWORD persist_options = WICPersistOptionsBigEndian; -+ DWORD persist_options = WICPersistOptionBigEndian; - #else -- DWORD persist_options = WICPersistOptionsLittleEndian; -+ DWORD persist_options = WICPersistOptionLittleEndian; - #endif - - hr = IUnknown_QueryInterface(reader, &IID_IWICPersistStream, (void **)&persist); -diff --git a/dlls/windowscodecs/tests/metadata.c b/dlls/windowscodecs/tests/metadata.c -index 1123b9f7e3..ad5bcf7b98 100644 ---- a/dlls/windowscodecs/tests/metadata.c -+++ b/dlls/windowscodecs/tests/metadata.c -@@ -262,7 +262,7 @@ static void test_metadata_unknown(void) - ok(hr == S_OK, "CoCreateInstance failed, hr=%x\n", hr); - if (FAILED(hr)) return; - -- load_stream((IUnknown*)reader, metadata_unknown, sizeof(metadata_unknown), WICPersistOptionsDefault); -+ load_stream((IUnknown*)reader, metadata_unknown, sizeof(metadata_unknown), WICPersistOptionDefault); - - hr = IWICMetadataReader_GetEnumerator(reader, &enumerator); - ok(hr == S_OK, "GetEnumerator failed, hr=%x\n", hr); -@@ -329,7 +329,7 @@ static void test_metadata_tEXt(void) - ok(hr == S_OK, "GetCount failed, hr=%x\n", hr); - ok(count == 0, "unexpected count %i\n", count); - -- load_stream((IUnknown*)reader, metadata_tEXt, sizeof(metadata_tEXt), WICPersistOptionsDefault); -+ load_stream((IUnknown*)reader, metadata_tEXt, sizeof(metadata_tEXt), WICPersistOptionDefault); - - hr = IWICMetadataReader_GetCount(reader, &count); - ok(hr == S_OK, "GetCount failed, hr=%x\n", hr); -@@ -440,7 +440,7 @@ static void test_metadata_gAMA(void) - ok(hr == S_OK || broken(hr == REGDB_E_CLASSNOTREG) /*winxp*/, "CoCreateInstance failed, hr=%x\n", hr); - if (FAILED(hr)) return; - -- load_stream((IUnknown*)reader, metadata_gAMA, sizeof(metadata_gAMA), WICPersistOptionsDefault); -+ load_stream((IUnknown*)reader, metadata_gAMA, sizeof(metadata_gAMA), WICPersistOptionDefault); - - hr = IWICMetadataReader_GetMetadataFormat(reader, &format); - ok(hr == S_OK, "GetMetadataFormat failed, hr=%x\n", hr); -@@ -498,7 +498,7 @@ static void test_metadata_cHRM(void) - ok(hr == S_OK || broken(hr == REGDB_E_CLASSNOTREG) /*winxp*/, "CoCreateInstance failed, hr=%x\n", hr); - if (FAILED(hr)) return; - -- load_stream((IUnknown*)reader, metadata_cHRM, sizeof(metadata_cHRM), WICPersistOptionsDefault); -+ load_stream((IUnknown*)reader, metadata_cHRM, sizeof(metadata_cHRM), WICPersistOptionDefault); - - hr = IWICMetadataReader_GetMetadataFormat(reader, &format); - ok(hr == S_OK, "GetMetadataFormat failed, hr=%x\n", hr); -@@ -792,9 +792,9 @@ static void test_metadata_IFD(void) - GUID format; - char *IFD_data_swapped; - #ifdef WORDS_BIGENDIAN -- DWORD persist_options = WICPersistOptionsBigEndian; -+ DWORD persist_options = WICPersistOptionBigEndian; - #else -- DWORD persist_options = WICPersistOptionsLittleEndian; -+ DWORD persist_options = WICPersistOptionLittleEndian; - #endif - - hr = CoCreateInstance(&CLSID_WICIfdMetadataReader, NULL, CLSCTX_INPROC_SERVER, -@@ -817,10 +817,10 @@ static void test_metadata_IFD(void) - compare_metadata(reader, td, count); - - /* test IFD data with different endianness */ -- if (persist_options == WICPersistOptionsLittleEndian) -- persist_options = WICPersistOptionsBigEndian; -+ if (persist_options == WICPersistOptionLittleEndian) -+ persist_options = WICPersistOptionBigEndian; - else -- persist_options = WICPersistOptionsLittleEndian; -+ persist_options = WICPersistOptionLittleEndian; - - IFD_data_swapped = HeapAlloc(GetProcessHeap(), 0, sizeof(IFD_data)); - memcpy(IFD_data_swapped, &IFD_data, sizeof(IFD_data)); -@@ -964,22 +964,22 @@ static void test_create_reader(void) - stream = create_stream(metadata_tEXt, sizeof(metadata_tEXt)); - - hr = IWICComponentFactory_CreateMetadataReaderFromContainer(factory, -- NULL, NULL, WICPersistOptionsDefault, -+ NULL, NULL, WICPersistOptionDefault, - stream, &reader); - ok(hr == E_INVALIDARG, "CreateMetadataReaderFromContainer failed, hr=%x\n", hr); - - hr = IWICComponentFactory_CreateMetadataReaderFromContainer(factory, -- &GUID_ContainerFormatPng, NULL, WICPersistOptionsDefault, -+ &GUID_ContainerFormatPng, NULL, WICPersistOptionDefault, - NULL, &reader); - ok(hr == E_INVALIDARG, "CreateMetadataReaderFromContainer failed, hr=%x\n", hr); - - hr = IWICComponentFactory_CreateMetadataReaderFromContainer(factory, -- &GUID_ContainerFormatPng, NULL, WICPersistOptionsDefault, -+ &GUID_ContainerFormatPng, NULL, WICPersistOptionDefault, - stream, NULL); - ok(hr == E_INVALIDARG, "CreateMetadataReaderFromContainer failed, hr=%x\n", hr); - - hr = IWICComponentFactory_CreateMetadataReaderFromContainer(factory, -- &GUID_ContainerFormatPng, NULL, WICPersistOptionsDefault, -+ &GUID_ContainerFormatPng, NULL, WICPersistOptionDefault, - stream, &reader); - ok(hr == S_OK, "CreateMetadataReaderFromContainer failed, hr=%x\n", hr); - -@@ -997,7 +997,7 @@ static void test_create_reader(void) - } - - hr = IWICComponentFactory_CreateMetadataReaderFromContainer(factory, -- &GUID_ContainerFormatWmp, NULL, WICPersistOptionsDefault, -+ &GUID_ContainerFormatWmp, NULL, WICPersistOptionDefault, - stream, &reader); - ok(hr == S_OK, "CreateMetadataReaderFromContainer failed, hr=%x\n", hr); - -diff --git a/dlls/windowscodecs/tiffformat.c b/dlls/windowscodecs/tiffformat.c -index c8f16f2112..5bc08e42e5 100644 ---- a/dlls/windowscodecs/tiffformat.c -+++ b/dlls/windowscodecs/tiffformat.c -@@ -1517,11 +1517,11 @@ static HRESULT create_metadata_reader(TiffFrameDecode *This, IWICMetadataReader - { - BOOL byte_swapped = pTIFFIsByteSwapped(This->parent->tiff); - #ifdef WORDS_BIGENDIAN -- DWORD persist_options = byte_swapped ? WICPersistOptionsLittleEndian : WICPersistOptionsBigEndian; -+ DWORD persist_options = byte_swapped ? WICPersistOptionLittleEndian : WICPersistOptionBigEndian; - #else -- DWORD persist_options = byte_swapped ? WICPersistOptionsBigEndian : WICPersistOptionsLittleEndian; -+ DWORD persist_options = byte_swapped ? WICPersistOptionBigEndian : WICPersistOptionLittleEndian; - #endif -- persist_options |= WICPersistOptionsNoCacheStream; -+ persist_options |= WICPersistOptionNoCacheStream; - hr = IWICPersistStream_LoadEx(persist, This->parent->stream, NULL, persist_options); - if (FAILED(hr)) - ERR("IWICPersistStream_LoadEx error %#x\n", hr); -diff --git a/include/wincodecsdk.idl b/include/wincodecsdk.idl -index 7c3c13fbc7..75492774f3 100644 ---- a/include/wincodecsdk.idl -+++ b/include/wincodecsdk.idl -@@ -20,13 +20,13 @@ import "wtypes.idl"; - import "wincodec.idl"; - - typedef enum WICPersistOptions { -- WICPersistOptionsDefault = 0x00000000, -- WICPersistOptionsLittleEndian = 0x00000000, -- WICPersistOptionsBigEndian = 0x00000001, -- WICPersistOptionsStrictFormat = 0x00000002, -- WICPersistOptionsNoCacheStream = 0x00000004, -+ WICPersistOptionDefault = 0x00000000, -+ WICPersistOptionLittleEndian = 0x00000000, -+ WICPersistOptionBigEndian = 0x00000001, -+ WICPersistOptionStrictFormat = 0x00000002, -+ WICPersistOptionNoCacheStream = 0x00000004, - WICPersistOptionPreferUTF8 = 0x00000008, -- WICPersistOptionsMask = 0x0000FFFF -+ WICPersistOptionMask = 0x0000FFFF - } WICPersistOptions; - - typedef enum WICMetadataCreationOptions { --- -2.12.2 - diff --git a/patches/windowscodecs-Palette_Images/0012-windowscodecs-tests-Add-tests-for-encoding-2bpp-4bpp.patch b/patches/windowscodecs-Palette_Images/0012-windowscodecs-tests-Add-tests-for-encoding-2bpp-4bpp.patch index 597aac1d..1cecb7b9 100644 --- a/patches/windowscodecs-Palette_Images/0012-windowscodecs-tests-Add-tests-for-encoding-2bpp-4bpp.patch +++ b/patches/windowscodecs-Palette_Images/0012-windowscodecs-tests-Add-tests-for-encoding-2bpp-4bpp.patch @@ -44,9 +44,9 @@ index 7bfd70bdc21..85214d4fb1f 100644 + HRESULT hr; + IWICPersistStream *persist; +#ifdef WORDS_BIGENDIAN -+ DWORD persist_options = WICPersistOptionsBigEndian; ++ DWORD persist_options = WICPersistOptionBigEndian; +#else -+ DWORD persist_options = WICPersistOptionsLittleEndian; ++ DWORD persist_options = WICPersistOptionLittleEndian; +#endif + + hr = IUnknown_QueryInterface(reader, &IID_IWICPersistStream, (void **)&persist); diff --git a/patches/windowscodecs-TIFF_Support/0009-windowscodecs-Add-support-for-128bppRGBAFloat-format.patch b/patches/windowscodecs-TIFF_Support/0009-windowscodecs-Add-support-for-128bppRGBAFloat-format.patch index c83c7561..2eab521b 100644 --- a/patches/windowscodecs-TIFF_Support/0009-windowscodecs-Add-support-for-128bppRGBAFloat-format.patch +++ b/patches/windowscodecs-TIFF_Support/0009-windowscodecs-Add-support-for-128bppRGBAFloat-format.patch @@ -1,4 +1,4 @@ -From cfee4c0d28ee7eff5992423c826e999bbc07db43 Mon Sep 17 00:00:00 2001 +From 96f1d2f5fdf6f9f40852c170535a2392b51aa7d7 Mon Sep 17 00:00:00 2001 From: Dmitry Timoshkov Date: Fri, 9 Dec 2016 12:46:00 +0800 Subject: windowscodecs: Add support for 128bppRGBAFloat format to TIFF @@ -11,7 +11,7 @@ Subject: windowscodecs: Add support for 128bppRGBAFloat format to TIFF 3 files changed, 30 insertions(+), 2 deletions(-) diff --git a/dlls/windowscodecs/regsvr.c b/dlls/windowscodecs/regsvr.c -index d1649fa955..f695d3e40a 100644 +index d1649fa955a..f695d3e40a5 100644 --- a/dlls/windowscodecs/regsvr.c +++ b/dlls/windowscodecs/regsvr.c @@ -1224,6 +1224,7 @@ static GUID const * const tiff_decode_formats[] = { @@ -61,7 +61,7 @@ index d1649fa955..f695d3e40a 100644 }; diff --git a/dlls/windowscodecs/tiffformat.c b/dlls/windowscodecs/tiffformat.c -index f17e508b53..48e46d69db 100644 +index aac21e37d0a..151b999a359 100644 --- a/dlls/windowscodecs/tiffformat.c +++ b/dlls/windowscodecs/tiffformat.c @@ -466,9 +466,17 @@ static HRESULT tiff_get_decode_info(TIFF *tiff, tiff_decode_info *decode_info) @@ -85,7 +85,7 @@ index f17e508b53..48e46d69db 100644 break; case 3: /* RGB Palette */ diff --git a/include/wincodec.idl b/include/wincodec.idl -index 406fe6b411..dfcb9bce2e 100644 +index 962a6fd6883..f3b99b864ff 100644 --- a/include/wincodec.idl +++ b/include/wincodec.idl @@ -213,6 +213,8 @@ cpp_quote("DEFINE_GUID(GUID_WICPixelFormat48bppRGB, 0x6fddc324,0x4e03,0x4bfe,0xb @@ -94,7 +94,7 @@ index 406fe6b411..dfcb9bce2e 100644 +cpp_quote("DEFINE_GUID(GUID_WICPixelFormat128bppRGBAFloat, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x19);") + - cpp_quote("DEFINE_GUID(GUID_WICPixelFormat32bppCMYK, 0x6fddc324,0x4e03,0x4fbe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x1c);") + cpp_quote("DEFINE_GUID(GUID_WICPixelFormat32bppCMYK, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x1c);") typedef struct WICRect { -- diff --git a/patches/windowscodecs-TIFF_Support/0010-include-Fix-the-GUID_WICPixelFormat32bppCMYK-definit.patch b/patches/windowscodecs-TIFF_Support/0010-include-Fix-the-GUID_WICPixelFormat32bppCMYK-definit.patch deleted file mode 100644 index a32ad03c..00000000 --- a/patches/windowscodecs-TIFF_Support/0010-include-Fix-the-GUID_WICPixelFormat32bppCMYK-definit.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 7d9df59da745fe72a232617a340b795d23fa4dc8 Mon Sep 17 00:00:00 2001 -From: Dmitry Timoshkov -Date: Fri, 9 Dec 2016 12:47:24 +0800 -Subject: include: Fix the GUID_WICPixelFormat32bppCMYK definition. - ---- - include/wincodec.idl | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/include/wincodec.idl b/include/wincodec.idl -index e8c7023..04765b4 100644 ---- a/include/wincodec.idl -+++ b/include/wincodec.idl -@@ -221,7 +221,7 @@ cpp_quote("DEFINE_GUID(GUID_WICPixelFormat64bppPRGBA, 0x6fddc324,0x4e03,0x4bfe,0 - - cpp_quote("DEFINE_GUID(GUID_WICPixelFormat128bppRGBAFloat, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x19);") - --cpp_quote("DEFINE_GUID(GUID_WICPixelFormat32bppCMYK, 0x6fddc324,0x4e03,0x4fbe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x1c);") -+cpp_quote("DEFINE_GUID(GUID_WICPixelFormat32bppCMYK, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x1c);") - - typedef struct WICRect { - INT X; --- -2.9.0 - diff --git a/patches/wined3d-CSMT_Main/0031-wined3d-Introduce-a-separate-priority-queue.patch b/patches/wined3d-CSMT_Main/0031-wined3d-Introduce-a-separate-priority-queue.patch index 57a9394c..c0766fbf 100644 --- a/patches/wined3d-CSMT_Main/0031-wined3d-Introduce-a-separate-priority-queue.patch +++ b/patches/wined3d-CSMT_Main/0031-wined3d-Introduce-a-separate-priority-queue.patch @@ -1,21 +1,21 @@ -From 7a785a0a194993f156a173dd8bdbdcbd22390dd6 Mon Sep 17 00:00:00 2001 +From cac0b10bce56962963b7f27293ded18d1aeb579e Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Wed, 8 Feb 2017 00:12:31 +0100 Subject: wined3d: Introduce a separate priority queue. --- - dlls/wined3d/cs.c | 133 ++++++++++++++++++++++++----------------- + dlls/wined3d/cs.c | 135 ++++++++++++++++++++++++----------------- dlls/wined3d/device.c | 6 +- dlls/wined3d/swapchain.c | 4 +- dlls/wined3d/texture.c | 2 +- dlls/wined3d/wined3d_private.h | 7 ++- - 5 files changed, 88 insertions(+), 64 deletions(-) + 5 files changed, 89 insertions(+), 65 deletions(-) diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c -index fd6968634b9..c54f49ae13a 100644 +index 896cafb87f4..43d1fdcb47f 100644 --- a/dlls/wined3d/cs.c +++ b/dlls/wined3d/cs.c -@@ -418,6 +418,17 @@ static void wined3d_cs_exec_nop(struct wined3d_cs *cs, const void *data) +@@ -426,6 +426,17 @@ static void wined3d_cs_exec_nop(struct wined3d_cs *cs, const void *data) { } @@ -33,7 +33,7 @@ index fd6968634b9..c54f49ae13a 100644 static void wined3d_cs_exec_present(struct wined3d_cs *cs, const void *data) { const struct wined3d_cs_present *op = data; -@@ -445,7 +456,7 @@ void wined3d_cs_emit_present(struct wined3d_cs *cs, struct wined3d_swapchain *sw +@@ -453,7 +464,7 @@ void wined3d_cs_emit_present(struct wined3d_cs *cs, struct wined3d_swapchain *sw unsigned int i; LONG pending; @@ -42,7 +42,7 @@ index fd6968634b9..c54f49ae13a 100644 op->opcode = WINED3D_CS_OP_PRESENT; op->dst_window_override = dst_window_override; op->swapchain = swapchain; -@@ -506,7 +517,7 @@ void wined3d_cs_emit_clear(struct wined3d_cs *cs, DWORD rect_count, const RECT * +@@ -514,7 +525,7 @@ void wined3d_cs_emit_clear(struct wined3d_cs *cs, DWORD rect_count, const RECT * struct wined3d_cs_clear *op; unsigned int i; @@ -51,7 +51,7 @@ index fd6968634b9..c54f49ae13a 100644 op->opcode = WINED3D_CS_OP_CLEAR; op->flags = flags; op->rt_count = rt_count; -@@ -542,7 +553,7 @@ void wined3d_cs_emit_clear_rendertarget_view(struct wined3d_cs *cs, struct wined +@@ -550,7 +561,7 @@ void wined3d_cs_emit_clear_rendertarget_view(struct wined3d_cs *cs, struct wined struct wined3d_fb_state fb; } *extra; @@ -60,7 +60,7 @@ index fd6968634b9..c54f49ae13a 100644 extra = (void *)&op->rects[1]; extra->fb.render_targets = &extra->rt; op->fb = &extra->fb; -@@ -698,7 +709,7 @@ void wined3d_cs_emit_dispatch(struct wined3d_cs *cs, +@@ -706,7 +717,7 @@ void wined3d_cs_emit_dispatch(struct wined3d_cs *cs, const struct wined3d_state *state = &cs->device->state; struct wined3d_cs_dispatch *op; @@ -69,7 +69,7 @@ index fd6968634b9..c54f49ae13a 100644 op->opcode = WINED3D_CS_OP_DISPATCH; op->group_count_x = group_count_x; op->group_count_y = group_count_y; -@@ -770,7 +781,7 @@ void wined3d_cs_emit_draw(struct wined3d_cs *cs, GLenum primitive_type, int base +@@ -778,7 +789,7 @@ void wined3d_cs_emit_draw(struct wined3d_cs *cs, GLenum primitive_type, int base struct wined3d_cs_draw *op; unsigned int i; @@ -78,7 +78,7 @@ index fd6968634b9..c54f49ae13a 100644 op->opcode = WINED3D_CS_OP_DRAW; op->primitive_type = primitive_type; op->base_vertex_idx = base_vertex_idx; -@@ -824,7 +835,7 @@ void wined3d_cs_emit_flush(struct wined3d_cs *cs) +@@ -832,7 +843,7 @@ void wined3d_cs_emit_flush(struct wined3d_cs *cs) { struct wined3d_cs_flush *op; @@ -87,7 +87,7 @@ index fd6968634b9..c54f49ae13a 100644 op->opcode = WINED3D_CS_OP_FLUSH; cs->ops->submit(cs); -@@ -842,7 +853,7 @@ void wined3d_cs_emit_set_predication(struct wined3d_cs *cs, struct wined3d_query +@@ -850,7 +861,7 @@ void wined3d_cs_emit_set_predication(struct wined3d_cs *cs, struct wined3d_query { struct wined3d_cs_set_predication *op; @@ -96,7 +96,7 @@ index fd6968634b9..c54f49ae13a 100644 op->opcode = WINED3D_CS_OP_SET_PREDICATION; op->predicate = predicate; op->value = value; -@@ -862,7 +873,7 @@ void wined3d_cs_emit_set_viewport(struct wined3d_cs *cs, const struct wined3d_vi +@@ -870,7 +881,7 @@ void wined3d_cs_emit_set_viewport(struct wined3d_cs *cs, const struct wined3d_vi { struct wined3d_cs_set_viewport *op; @@ -105,7 +105,7 @@ index fd6968634b9..c54f49ae13a 100644 op->opcode = WINED3D_CS_OP_SET_VIEWPORT; op->viewport = *viewport; -@@ -881,7 +892,7 @@ void wined3d_cs_emit_set_scissor_rect(struct wined3d_cs *cs, const RECT *rect) +@@ -889,7 +900,7 @@ void wined3d_cs_emit_set_scissor_rect(struct wined3d_cs *cs, const RECT *rect) { struct wined3d_cs_set_scissor_rect *op; @@ -114,7 +114,7 @@ index fd6968634b9..c54f49ae13a 100644 op->opcode = WINED3D_CS_OP_SET_SCISSOR_RECT; op->rect = *rect; -@@ -901,7 +912,7 @@ void wined3d_cs_emit_set_rendertarget_view(struct wined3d_cs *cs, unsigned int v +@@ -909,7 +920,7 @@ void wined3d_cs_emit_set_rendertarget_view(struct wined3d_cs *cs, unsigned int v { struct wined3d_cs_set_rendertarget_view *op; @@ -123,7 +123,7 @@ index fd6968634b9..c54f49ae13a 100644 op->opcode = WINED3D_CS_OP_SET_RENDERTARGET_VIEW; op->view_idx = view_idx; op->view = view; -@@ -950,7 +961,7 @@ void wined3d_cs_emit_set_depth_stencil_view(struct wined3d_cs *cs, struct wined3 +@@ -958,7 +969,7 @@ void wined3d_cs_emit_set_depth_stencil_view(struct wined3d_cs *cs, struct wined3 { struct wined3d_cs_set_depth_stencil_view *op; @@ -132,7 +132,7 @@ index fd6968634b9..c54f49ae13a 100644 op->opcode = WINED3D_CS_OP_SET_DEPTH_STENCIL_VIEW; op->view = view; -@@ -969,7 +980,7 @@ void wined3d_cs_emit_set_vertex_declaration(struct wined3d_cs *cs, struct wined3 +@@ -977,7 +988,7 @@ void wined3d_cs_emit_set_vertex_declaration(struct wined3d_cs *cs, struct wined3 { struct wined3d_cs_set_vertex_declaration *op; @@ -141,7 +141,7 @@ index fd6968634b9..c54f49ae13a 100644 op->opcode = WINED3D_CS_OP_SET_VERTEX_DECLARATION; op->declaration = declaration; -@@ -1001,7 +1012,7 @@ void wined3d_cs_emit_set_stream_source(struct wined3d_cs *cs, UINT stream_idx, +@@ -1009,7 +1020,7 @@ void wined3d_cs_emit_set_stream_source(struct wined3d_cs *cs, UINT stream_idx, { struct wined3d_cs_set_stream_source *op; @@ -150,7 +150,7 @@ index fd6968634b9..c54f49ae13a 100644 op->opcode = WINED3D_CS_OP_SET_STREAM_SOURCE; op->stream_idx = stream_idx; op->buffer = buffer; -@@ -1027,7 +1038,7 @@ void wined3d_cs_emit_set_stream_source_freq(struct wined3d_cs *cs, UINT stream_i +@@ -1035,7 +1046,7 @@ void wined3d_cs_emit_set_stream_source_freq(struct wined3d_cs *cs, UINT stream_i { struct wined3d_cs_set_stream_source_freq *op; @@ -159,7 +159,7 @@ index fd6968634b9..c54f49ae13a 100644 op->opcode = WINED3D_CS_OP_SET_STREAM_SOURCE_FREQ; op->stream_idx = stream_idx; op->frequency = frequency; -@@ -1060,7 +1071,7 @@ void wined3d_cs_emit_set_stream_output(struct wined3d_cs *cs, UINT stream_idx, +@@ -1068,7 +1079,7 @@ void wined3d_cs_emit_set_stream_output(struct wined3d_cs *cs, UINT stream_idx, { struct wined3d_cs_set_stream_output *op; @@ -168,7 +168,7 @@ index fd6968634b9..c54f49ae13a 100644 op->opcode = WINED3D_CS_OP_SET_STREAM_OUTPUT; op->stream_idx = stream_idx; op->buffer = buffer; -@@ -1092,7 +1103,7 @@ void wined3d_cs_emit_set_index_buffer(struct wined3d_cs *cs, struct wined3d_buff +@@ -1100,7 +1111,7 @@ void wined3d_cs_emit_set_index_buffer(struct wined3d_cs *cs, struct wined3d_buff { struct wined3d_cs_set_index_buffer *op; @@ -177,7 +177,7 @@ index fd6968634b9..c54f49ae13a 100644 op->opcode = WINED3D_CS_OP_SET_INDEX_BUFFER; op->buffer = buffer; op->format_id = format_id; -@@ -1122,7 +1133,7 @@ void wined3d_cs_emit_set_constant_buffer(struct wined3d_cs *cs, enum wined3d_sha +@@ -1130,7 +1141,7 @@ void wined3d_cs_emit_set_constant_buffer(struct wined3d_cs *cs, enum wined3d_sha { struct wined3d_cs_set_constant_buffer *op; @@ -186,7 +186,7 @@ index fd6968634b9..c54f49ae13a 100644 op->opcode = WINED3D_CS_OP_SET_CONSTANT_BUFFER; op->type = type; op->cb_idx = cb_idx; -@@ -1214,7 +1225,7 @@ void wined3d_cs_emit_set_texture(struct wined3d_cs *cs, UINT stage, struct wined +@@ -1222,7 +1233,7 @@ void wined3d_cs_emit_set_texture(struct wined3d_cs *cs, UINT stage, struct wined { struct wined3d_cs_set_texture *op; @@ -195,7 +195,7 @@ index fd6968634b9..c54f49ae13a 100644 op->opcode = WINED3D_CS_OP_SET_TEXTURE; op->stage = stage; op->texture = texture; -@@ -1246,7 +1257,7 @@ void wined3d_cs_emit_set_shader_resource_view(struct wined3d_cs *cs, enum wined3 +@@ -1254,7 +1265,7 @@ void wined3d_cs_emit_set_shader_resource_view(struct wined3d_cs *cs, enum wined3 { struct wined3d_cs_set_shader_resource_view *op; @@ -204,7 +204,7 @@ index fd6968634b9..c54f49ae13a 100644 op->opcode = WINED3D_CS_OP_SET_SHADER_RESOURCE_VIEW; op->type = type; op->view_idx = view_idx; -@@ -1276,7 +1287,7 @@ void wined3d_cs_emit_set_unordered_access_view(struct wined3d_cs *cs, enum wined +@@ -1284,7 +1295,7 @@ void wined3d_cs_emit_set_unordered_access_view(struct wined3d_cs *cs, enum wined { struct wined3d_cs_set_unordered_access_view *op; @@ -213,7 +213,7 @@ index fd6968634b9..c54f49ae13a 100644 op->opcode = WINED3D_CS_OP_SET_UNORDERED_ACCESS_VIEW; op->pipeline = pipeline; op->view_idx = view_idx; -@@ -1301,7 +1312,7 @@ void wined3d_cs_emit_set_sampler(struct wined3d_cs *cs, enum wined3d_shader_type +@@ -1309,7 +1320,7 @@ void wined3d_cs_emit_set_sampler(struct wined3d_cs *cs, enum wined3d_shader_type { struct wined3d_cs_set_sampler *op; @@ -222,7 +222,7 @@ index fd6968634b9..c54f49ae13a 100644 op->opcode = WINED3D_CS_OP_SET_SAMPLER; op->type = type; op->sampler_idx = sampler_idx; -@@ -1326,7 +1337,7 @@ void wined3d_cs_emit_set_shader(struct wined3d_cs *cs, enum wined3d_shader_type +@@ -1334,7 +1345,7 @@ void wined3d_cs_emit_set_shader(struct wined3d_cs *cs, enum wined3d_shader_type { struct wined3d_cs_set_shader *op; @@ -231,7 +231,7 @@ index fd6968634b9..c54f49ae13a 100644 op->opcode = WINED3D_CS_OP_SET_SHADER; op->type = type; op->shader = shader; -@@ -1347,7 +1358,7 @@ void wined3d_cs_emit_set_rasterizer_state(struct wined3d_cs *cs, +@@ -1355,7 +1366,7 @@ void wined3d_cs_emit_set_rasterizer_state(struct wined3d_cs *cs, { struct wined3d_cs_set_rasterizer_state *op; @@ -240,7 +240,7 @@ index fd6968634b9..c54f49ae13a 100644 op->opcode = WINED3D_CS_OP_SET_RASTERIZER_STATE; op->state = rasterizer_state; -@@ -1366,7 +1377,7 @@ void wined3d_cs_emit_set_render_state(struct wined3d_cs *cs, enum wined3d_render +@@ -1374,7 +1385,7 @@ void wined3d_cs_emit_set_render_state(struct wined3d_cs *cs, enum wined3d_render { struct wined3d_cs_set_render_state *op; @@ -249,7 +249,7 @@ index fd6968634b9..c54f49ae13a 100644 op->opcode = WINED3D_CS_OP_SET_RENDER_STATE; op->state = state; op->value = value; -@@ -1387,7 +1398,7 @@ void wined3d_cs_emit_set_texture_state(struct wined3d_cs *cs, UINT stage, +@@ -1395,7 +1406,7 @@ void wined3d_cs_emit_set_texture_state(struct wined3d_cs *cs, UINT stage, { struct wined3d_cs_set_texture_state *op; @@ -258,7 +258,7 @@ index fd6968634b9..c54f49ae13a 100644 op->opcode = WINED3D_CS_OP_SET_TEXTURE_STATE; op->stage = stage; op->state = state; -@@ -1409,7 +1420,7 @@ void wined3d_cs_emit_set_sampler_state(struct wined3d_cs *cs, UINT sampler_idx, +@@ -1417,7 +1428,7 @@ void wined3d_cs_emit_set_sampler_state(struct wined3d_cs *cs, UINT sampler_idx, { struct wined3d_cs_set_sampler_state *op; @@ -267,7 +267,7 @@ index fd6968634b9..c54f49ae13a 100644 op->opcode = WINED3D_CS_OP_SET_SAMPLER_STATE; op->sampler_idx = sampler_idx; op->state = state; -@@ -1432,7 +1443,7 @@ void wined3d_cs_emit_set_transform(struct wined3d_cs *cs, enum wined3d_transform +@@ -1440,7 +1451,7 @@ void wined3d_cs_emit_set_transform(struct wined3d_cs *cs, enum wined3d_transform { struct wined3d_cs_set_transform *op; @@ -276,7 +276,7 @@ index fd6968634b9..c54f49ae13a 100644 op->opcode = WINED3D_CS_OP_SET_TRANSFORM; op->state = state; op->matrix = *matrix; -@@ -1452,7 +1463,7 @@ void wined3d_cs_emit_set_clip_plane(struct wined3d_cs *cs, UINT plane_idx, const +@@ -1460,7 +1471,7 @@ void wined3d_cs_emit_set_clip_plane(struct wined3d_cs *cs, UINT plane_idx, const { struct wined3d_cs_set_clip_plane *op; @@ -285,7 +285,7 @@ index fd6968634b9..c54f49ae13a 100644 op->opcode = WINED3D_CS_OP_SET_CLIP_PLANE; op->plane_idx = plane_idx; op->plane = *plane; -@@ -1528,7 +1539,7 @@ void wined3d_cs_emit_set_color_key(struct wined3d_cs *cs, struct wined3d_texture +@@ -1536,7 +1547,7 @@ void wined3d_cs_emit_set_color_key(struct wined3d_cs *cs, struct wined3d_texture { struct wined3d_cs_set_color_key *op; @@ -294,7 +294,7 @@ index fd6968634b9..c54f49ae13a 100644 op->opcode = WINED3D_CS_OP_SET_COLOR_KEY; op->texture = texture; op->flags = flags; -@@ -1555,7 +1566,7 @@ void wined3d_cs_emit_set_material(struct wined3d_cs *cs, const struct wined3d_ma +@@ -1563,7 +1574,7 @@ void wined3d_cs_emit_set_material(struct wined3d_cs *cs, const struct wined3d_ma { struct wined3d_cs_set_material *op; @@ -303,7 +303,7 @@ index fd6968634b9..c54f49ae13a 100644 op->opcode = WINED3D_CS_OP_SET_MATERIAL; op->material = *material; -@@ -1603,7 +1614,7 @@ void wined3d_cs_emit_set_light(struct wined3d_cs *cs, const struct wined3d_light +@@ -1611,7 +1622,7 @@ void wined3d_cs_emit_set_light(struct wined3d_cs *cs, const struct wined3d_light { struct wined3d_cs_set_light *op; @@ -312,7 +312,7 @@ index fd6968634b9..c54f49ae13a 100644 op->opcode = WINED3D_CS_OP_SET_LIGHT; op->light = *light; -@@ -1636,7 +1647,7 @@ void wined3d_cs_emit_set_light_enable(struct wined3d_cs *cs, unsigned int idx, B +@@ -1644,7 +1655,7 @@ void wined3d_cs_emit_set_light_enable(struct wined3d_cs *cs, unsigned int idx, B { struct wined3d_cs_set_light_enable *op; @@ -321,7 +321,7 @@ index fd6968634b9..c54f49ae13a 100644 op->opcode = WINED3D_CS_OP_SET_LIGHT_ENABLE; op->idx = idx; op->enable = enable; -@@ -1701,7 +1712,7 @@ static void wined3d_cs_mt_push_constants(struct wined3d_cs *cs, enum wined3d_pus +@@ -1709,7 +1720,7 @@ static void wined3d_cs_mt_push_constants(struct wined3d_cs *cs, enum wined3d_pus size_t size; size = count * wined3d_cs_push_constant_info[p].size; @@ -330,7 +330,7 @@ index fd6968634b9..c54f49ae13a 100644 op->opcode = WINED3D_CS_OP_PUSH_CONSTANTS; op->type = p; op->start_idx = start_idx; -@@ -1725,7 +1736,7 @@ void wined3d_cs_emit_reset_state(struct wined3d_cs *cs) +@@ -1733,7 +1744,7 @@ void wined3d_cs_emit_reset_state(struct wined3d_cs *cs) { struct wined3d_cs_reset_state *op; @@ -339,7 +339,7 @@ index fd6968634b9..c54f49ae13a 100644 op->opcode = WINED3D_CS_OP_RESET_STATE; cs->ops->submit(cs); -@@ -1742,7 +1753,7 @@ static void wined3d_cs_emit_callback(struct wined3d_cs *cs, void (*callback)(voi +@@ -1750,7 +1761,7 @@ static void wined3d_cs_emit_callback(struct wined3d_cs *cs, void (*callback)(voi { struct wined3d_cs_callback *op; @@ -348,7 +348,7 @@ index fd6968634b9..c54f49ae13a 100644 op->opcode = WINED3D_CS_OP_CALLBACK; op->callback = callback; op->object = object; -@@ -1803,7 +1814,7 @@ void wined3d_cs_emit_query_issue(struct wined3d_cs *cs, struct wined3d_query *qu +@@ -1811,7 +1822,7 @@ void wined3d_cs_emit_query_issue(struct wined3d_cs *cs, struct wined3d_query *qu { struct wined3d_cs_query_issue *op; @@ -357,7 +357,7 @@ index fd6968634b9..c54f49ae13a 100644 op->opcode = WINED3D_CS_OP_QUERY_ISSUE; op->query = query; op->flags = flags; -@@ -1824,7 +1835,7 @@ void wined3d_cs_emit_preload_resource(struct wined3d_cs *cs, struct wined3d_reso +@@ -1832,7 +1843,7 @@ void wined3d_cs_emit_preload_resource(struct wined3d_cs *cs, struct wined3d_reso { struct wined3d_cs_preload_resource *op; @@ -366,7 +366,7 @@ index fd6968634b9..c54f49ae13a 100644 op->opcode = WINED3D_CS_OP_PRELOAD_RESOURCE; op->resource = resource; -@@ -1846,7 +1857,7 @@ void wined3d_cs_emit_unload_resource(struct wined3d_cs *cs, struct wined3d_resou +@@ -1854,7 +1865,7 @@ void wined3d_cs_emit_unload_resource(struct wined3d_cs *cs, struct wined3d_resou { struct wined3d_cs_unload_resource *op; @@ -375,7 +375,7 @@ index fd6968634b9..c54f49ae13a 100644 op->opcode = WINED3D_CS_OP_UNLOAD_RESOURCE; op->resource = resource; -@@ -1874,7 +1885,7 @@ HRESULT wined3d_cs_map(struct wined3d_cs *cs, struct wined3d_resource *resource, +@@ -1882,7 +1893,7 @@ HRESULT wined3d_cs_map(struct wined3d_cs *cs, struct wined3d_resource *resource, * increasing the map count would be visible to applications. */ wined3d_not_from_cs(cs); @@ -384,7 +384,7 @@ index fd6968634b9..c54f49ae13a 100644 op->opcode = WINED3D_CS_OP_MAP; op->resource = resource; op->sub_resource_idx = sub_resource_idx; -@@ -1904,7 +1915,7 @@ HRESULT wined3d_cs_unmap(struct wined3d_cs *cs, struct wined3d_resource *resourc +@@ -1912,7 +1923,7 @@ HRESULT wined3d_cs_unmap(struct wined3d_cs *cs, struct wined3d_resource *resourc wined3d_not_from_cs(cs); @@ -393,7 +393,7 @@ index fd6968634b9..c54f49ae13a 100644 op->opcode = WINED3D_CS_OP_UNMAP; op->resource = resource; op->sub_resource_idx = sub_resource_idx; -@@ -2044,7 +2055,7 @@ void wined3d_cs_emit_blt_sub_resource(struct wined3d_cs *cs, struct wined3d_reso +@@ -2052,7 +2063,7 @@ void wined3d_cs_emit_blt_sub_resource(struct wined3d_cs *cs, struct wined3d_reso { struct wined3d_cs_blt_sub_resource *op; @@ -402,7 +402,7 @@ index fd6968634b9..c54f49ae13a 100644 op->opcode = WINED3D_CS_OP_BLT_SUB_RESOURCE; op->dst_resource = dst_resource; op->dst_sub_resource_idx = dst_sub_resource_idx; -@@ -2124,7 +2135,7 @@ void wined3d_cs_emit_update_sub_resource(struct wined3d_cs *cs, struct wined3d_r +@@ -2132,7 +2143,7 @@ void wined3d_cs_emit_update_sub_resource(struct wined3d_cs *cs, struct wined3d_r { struct wined3d_cs_update_sub_resource *op; @@ -411,7 +411,7 @@ index fd6968634b9..c54f49ae13a 100644 op->opcode = WINED3D_CS_OP_UPDATE_SUB_RESOURCE; op->resource = resource; op->sub_resource_idx = sub_resource_idx; -@@ -2167,7 +2178,7 @@ void wined3d_cs_emit_add_dirty_texture_region(struct wined3d_cs *cs, +@@ -2175,7 +2186,7 @@ void wined3d_cs_emit_add_dirty_texture_region(struct wined3d_cs *cs, { struct wined3d_cs_add_dirty_texture_region *op; @@ -420,7 +420,16 @@ index fd6968634b9..c54f49ae13a 100644 op->opcode = WINED3D_CS_OP_ADD_DIRTY_TEXTURE_REGION; op->texture = texture; op->layer = layer; -@@ -2181,11 +2192,10 @@ static void wined3d_cs_emit_stop(struct wined3d_cs *cs) +@@ -2203,7 +2214,7 @@ void wined3d_cs_emit_clear_unordered_access_view_uint(struct wined3d_cs *cs, + { + struct wined3d_cs_clear_unordered_access_view *op; + +- op = cs->ops->require_space(cs, sizeof(*op)); ++ op = cs->ops->require_space(cs, sizeof(*op), 0); + op->opcode = WINED3D_CS_OP_CLEAR_UNORDERED_ACCESS_VIEW; + op->view = view; + op->clear_value = *clear_value; +@@ -2217,11 +2228,10 @@ static void wined3d_cs_emit_stop(struct wined3d_cs *cs) { struct wined3d_cs_stop *op; @@ -433,8 +442,8 @@ index fd6968634b9..c54f49ae13a 100644 } static void (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void *data) = -@@ -2235,7 +2245,7 @@ static void (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void - /* WINED3D_CS_OP_ADD_DIRTY_TEXTURE_REGION */ wined3d_cs_exec_add_dirty_texture_region, +@@ -2272,7 +2282,7 @@ static void (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void + /* WINED3D_CS_OP_CLEAR_UNORDERED_ACCESS_VIEW */ wined3d_cs_exec_clear_unordered_access_view, }; -static void *wined3d_cs_st_require_space(struct wined3d_cs *cs, size_t size) @@ -442,7 +451,7 @@ index fd6968634b9..c54f49ae13a 100644 { if (size > (cs->data_size - cs->end)) { -@@ -2301,7 +2311,7 @@ static BOOL wined3d_cs_queue_is_empty(const struct wined3d_cs_queue *queue) +@@ -2338,7 +2348,7 @@ static BOOL wined3d_cs_queue_is_empty(const struct wined3d_cs_queue *queue) static void wined3d_cs_mt_submit(struct wined3d_cs *cs) { @@ -451,7 +460,7 @@ index fd6968634b9..c54f49ae13a 100644 struct wined3d_cs_packet *packet; size_t packet_size; -@@ -2316,15 +2326,15 @@ static void wined3d_cs_mt_submit(struct wined3d_cs *cs) +@@ -2353,15 +2363,15 @@ static void wined3d_cs_mt_submit(struct wined3d_cs *cs) SetEvent(cs->event); } @@ -470,7 +479,7 @@ index fd6968634b9..c54f49ae13a 100644 header_size = FIELD_OFFSET(struct wined3d_cs_packet, data[0]); size = (size + header_size - 1) & ~(header_size - 1); -@@ -2345,7 +2355,7 @@ static void *wined3d_cs_mt_require_space(struct wined3d_cs *cs, size_t size) +@@ -2382,7 +2392,7 @@ static void *wined3d_cs_mt_require_space(struct wined3d_cs *cs, size_t size) TRACE("Inserting a nop for %lu + %lu bytes.\n", (unsigned long)header_size, (unsigned long)nop_size); @@ -479,7 +488,7 @@ index fd6968634b9..c54f49ae13a 100644 if (nop_size) nop->opcode = WINED3D_CS_OP_NOP; -@@ -2376,6 +2386,7 @@ static void *wined3d_cs_mt_require_space(struct wined3d_cs *cs, size_t size) +@@ -2413,6 +2423,7 @@ static void *wined3d_cs_mt_require_space(struct wined3d_cs *cs, size_t size) head, tail, (unsigned long)packet_size); } @@ -487,7 +496,7 @@ index fd6968634b9..c54f49ae13a 100644 packet = (struct wined3d_cs_packet *)&queue->data[queue->head]; packet->size = size; return packet->data; -@@ -2383,11 +2394,15 @@ static void *wined3d_cs_mt_require_space(struct wined3d_cs *cs, size_t size) +@@ -2420,11 +2431,15 @@ static void *wined3d_cs_mt_require_space(struct wined3d_cs *cs, size_t size) static void wined3d_cs_mt_finish(struct wined3d_cs *cs) { @@ -504,7 +513,7 @@ index fd6968634b9..c54f49ae13a 100644 } static const struct wined3d_cs_ops wined3d_cs_mt_ops = -@@ -2413,6 +2428,13 @@ static void poll_queries(struct wined3d_cs *cs) +@@ -2450,6 +2465,13 @@ static void poll_queries(struct wined3d_cs *cs) } } @@ -518,7 +527,7 @@ index fd6968634b9..c54f49ae13a 100644 static void wined3d_cs_wait_event(struct wined3d_cs *cs) { InterlockedExchange(&cs->waiting_for_event, TRUE); -@@ -2424,7 +2446,7 @@ static void wined3d_cs_wait_event(struct wined3d_cs *cs) +@@ -2461,7 +2483,7 @@ static void wined3d_cs_wait_event(struct wined3d_cs *cs) * Likewise, we can race with the main thread when resetting * "waiting_for_event", in which case we would need to call * WaitForSingleObject() because the main thread called SetEvent(). */ @@ -527,7 +536,7 @@ index fd6968634b9..c54f49ae13a 100644 && InterlockedCompareExchange(&cs->waiting_for_event, FALSE, TRUE)) return; -@@ -2443,7 +2465,6 @@ static DWORD WINAPI wined3d_cs_run(void *ctx) +@@ -2480,7 +2502,6 @@ static DWORD WINAPI wined3d_cs_run(void *ctx) TRACE("Started.\n"); @@ -535,7 +544,7 @@ index fd6968634b9..c54f49ae13a 100644 list_init(&cs->query_poll_list); cs->thread_id = GetCurrentThreadId(); for (;;) -@@ -2454,7 +2475,7 @@ static DWORD WINAPI wined3d_cs_run(void *ctx) +@@ -2491,7 +2512,7 @@ static DWORD WINAPI wined3d_cs_run(void *ctx) poll = 0; } @@ -544,7 +553,7 @@ index fd6968634b9..c54f49ae13a 100644 { if (++spin_count >= WINED3D_CS_SPIN_COUNT && list_empty(&cs->query_poll_list)) wined3d_cs_wait_event(cs); -@@ -2483,7 +2504,6 @@ static DWORD WINAPI wined3d_cs_run(void *ctx) +@@ -2520,7 +2541,6 @@ static DWORD WINAPI wined3d_cs_run(void *ctx) InterlockedExchange(&queue->tail, tail); } @@ -552,7 +561,7 @@ index fd6968634b9..c54f49ae13a 100644 TRACE("Stopped.\n"); FreeLibraryAndExitThread(cs->wined3d_module, 0); } -@@ -2557,6 +2577,7 @@ void wined3d_cs_destroy(struct wined3d_cs *cs) +@@ -2594,6 +2614,7 @@ void wined3d_cs_destroy(struct wined3d_cs *cs) if (cs->thread) { wined3d_cs_emit_stop(cs); @@ -561,7 +570,7 @@ index fd6968634b9..c54f49ae13a 100644 if (!CloseHandle(cs->event)) ERR("Closing event failed.\n"); diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c -index 896f5d2f9d2..e5b0470821a 100644 +index fa3fbc7120b..07d5970e4b3 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -1207,7 +1207,7 @@ HRESULT CDECL wined3d_device_uninit_3d(struct wined3d_device *device) @@ -582,7 +591,7 @@ index 896f5d2f9d2..e5b0470821a 100644 if (dst_texture->sub_resources[dst_sub_resource_idx].map_count || src_texture->sub_resources[src_sub_resource_idx].map_count) { -@@ -4722,7 +4722,7 @@ HRESULT CDECL wined3d_device_reset(struct wined3d_device *device, +@@ -4730,7 +4730,7 @@ HRESULT CDECL wined3d_device_reset(struct wined3d_device *device, TRACE("device %p, swapchain_desc %p, mode %p, callback %p, reset_state %#x.\n", device, swapchain_desc, mode, callback, reset_state); @@ -627,7 +636,7 @@ index 01a29e605ac..3bd438f64d6 100644 || (src_texture && src_texture->sub_resources[src_sub_resource_idx].map_count)) { diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h -index d6d2b89b9e6..754dc67d753 100644 +index 451a924c99e..b647f4e23b4 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -3267,7 +3267,7 @@ struct wined3d_cs_queue @@ -650,7 +659,7 @@ index d6d2b89b9e6..754dc67d753 100644 size_t data_size, start, end; void *data; struct list query_poll_list; -@@ -3365,6 +3367,7 @@ void wined3d_cs_emit_set_unordered_access_view(struct wined3d_cs *cs, enum wined +@@ -3367,6 +3369,7 @@ void wined3d_cs_emit_set_unordered_access_view(struct wined3d_cs *cs, enum wined void wined3d_cs_emit_set_vertex_declaration(struct wined3d_cs *cs, struct wined3d_vertex_declaration *declaration) DECLSPEC_HIDDEN; void wined3d_cs_emit_set_viewport(struct wined3d_cs *cs, const struct wined3d_viewport *viewport) DECLSPEC_HIDDEN; diff --git a/patches/wined3d-CSMT_Main/0039-wined3d-Use-priority-queue-for-update_sub_resource.patch b/patches/wined3d-CSMT_Main/0039-wined3d-Use-priority-queue-for-update_sub_resource.patch index 8c8186d5..4d6e9816 100644 --- a/patches/wined3d-CSMT_Main/0039-wined3d-Use-priority-queue-for-update_sub_resource.patch +++ b/patches/wined3d-CSMT_Main/0039-wined3d-Use-priority-queue-for-update_sub_resource.patch @@ -1,4 +1,4 @@ -From 01509cc439709029511b1781878bb6bd8c67a8ab Mon Sep 17 00:00:00 2001 +From 9316955f860efa52c6b58edb4998c120bd43c377 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Sun, 12 Feb 2017 00:08:28 +0100 Subject: wined3d: Use priority queue for update_sub_resource. @@ -9,10 +9,10 @@ Subject: wined3d: Use priority queue for update_sub_resource. 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c -index 1fbf48ec94b..7ee2fe18f49 100644 +index f146cbe4633..8dea530b413 100644 --- a/dlls/wined3d/cs.c +++ b/dlls/wined3d/cs.c -@@ -2123,7 +2123,7 @@ void wined3d_cs_emit_update_sub_resource(struct wined3d_cs *cs, struct wined3d_r +@@ -2143,7 +2143,7 @@ void wined3d_cs_emit_update_sub_resource(struct wined3d_cs *cs, struct wined3d_r { struct wined3d_cs_update_sub_resource *op; @@ -22,10 +22,10 @@ index 1fbf48ec94b..7ee2fe18f49 100644 op->resource = resource; op->sub_resource_idx = sub_resource_idx; diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c -index 734f818692c..60d24c38319 100644 +index 07d5970e4b3..56d52952a10 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c -@@ -4111,6 +4111,8 @@ void CDECL wined3d_device_update_sub_resource(struct wined3d_device *device, str +@@ -4286,6 +4286,8 @@ void CDECL wined3d_device_update_sub_resource(struct wined3d_device *device, str TRACE("device %p, resource %p, sub_resource_idx %u, box %s, data %p, row_pitch %u, depth_pitch %u.\n", device, resource, sub_resource_idx, debug_box(box), data, row_pitch, depth_pitch); @@ -35,5 +35,5 @@ index 734f818692c..60d24c38319 100644 { if (sub_resource_idx > 0) -- -2.11.0 +2.12.2 diff --git a/patches/wined3d-CSMT_Main/0045-wined3d-Improve-wined3d_cs_emit_update_sub_resource.patch b/patches/wined3d-CSMT_Main/0045-wined3d-Improve-wined3d_cs_emit_update_sub_resource.patch index 9a4ef6d2..5ede52b5 100644 --- a/patches/wined3d-CSMT_Main/0045-wined3d-Improve-wined3d_cs_emit_update_sub_resource.patch +++ b/patches/wined3d-CSMT_Main/0045-wined3d-Improve-wined3d_cs_emit_update_sub_resource.patch @@ -1,4 +1,4 @@ -From e17eeff3044b2a6417c3232b3e8a5fe4e28b059e Mon Sep 17 00:00:00 2001 +From 6c606d8f44420417fc8cbb248f57556a26125d0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Mon, 20 Feb 2017 00:27:25 +0100 Subject: wined3d: Improve wined3d_cs_emit_update_sub_resource. @@ -10,10 +10,10 @@ Subject: wined3d: Improve wined3d_cs_emit_update_sub_resource. 3 files changed, 69 insertions(+), 2 deletions(-) diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c -index c8bd8adc82e..7a380905179 100644 +index 8dea530b413..fc67672fff2 100644 --- a/dlls/wined3d/cs.c +++ b/dlls/wined3d/cs.c -@@ -400,6 +400,7 @@ struct wined3d_cs_update_sub_resource +@@ -401,6 +401,7 @@ struct wined3d_cs_update_sub_resource unsigned int sub_resource_idx; struct wined3d_box box; struct wined3d_sub_resource_data data; @@ -21,7 +21,7 @@ index c8bd8adc82e..7a380905179 100644 }; struct wined3d_cs_add_dirty_texture_region -@@ -2123,6 +2124,49 @@ void wined3d_cs_emit_update_sub_resource(struct wined3d_cs *cs, struct wined3d_r +@@ -2142,6 +2143,49 @@ void wined3d_cs_emit_update_sub_resource(struct wined3d_cs *cs, struct wined3d_r unsigned int slice_pitch) { struct wined3d_cs_update_sub_resource *op; @@ -71,8 +71,8 @@ index c8bd8adc82e..7a380905179 100644 op = cs->ops->require_space(cs, sizeof(*op), 1); op->opcode = WINED3D_CS_OP_UPDATE_SUB_RESOURCE; -@@ -2234,6 +2278,11 @@ static void (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void - /* WINED3D_CS_OP_ADD_DIRTY_TEXTURE_REGION */ wined3d_cs_exec_add_dirty_texture_region, +@@ -2282,6 +2326,11 @@ static void (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void + /* WINED3D_CS_OP_CLEAR_UNORDERED_ACCESS_VIEW */ wined3d_cs_exec_clear_unordered_access_view, }; +static BOOL wined3d_cs_st_check_space(struct wined3d_cs *cs, size_t size, int priority) @@ -83,7 +83,7 @@ index c8bd8adc82e..7a380905179 100644 static void *wined3d_cs_st_require_space(struct wined3d_cs *cs, size_t size, int priority) { if (size > (cs->data_size - cs->end)) -@@ -2287,6 +2336,7 @@ static void wined3d_cs_st_finish(struct wined3d_cs *cs) +@@ -2335,6 +2384,7 @@ static void wined3d_cs_st_finish(struct wined3d_cs *cs) static const struct wined3d_cs_ops wined3d_cs_st_ops = { @@ -91,7 +91,7 @@ index c8bd8adc82e..7a380905179 100644 wined3d_cs_st_require_space, wined3d_cs_st_submit, wined3d_cs_st_finish, -@@ -2315,6 +2365,23 @@ static void wined3d_cs_mt_submit(struct wined3d_cs *cs) +@@ -2363,6 +2413,23 @@ static void wined3d_cs_mt_submit(struct wined3d_cs *cs) SetEvent(cs->event); } @@ -115,7 +115,7 @@ index c8bd8adc82e..7a380905179 100644 static void *wined3d_cs_mt_require_space(struct wined3d_cs *cs, size_t size, int priority) { struct wined3d_cs_queue *queue = priority ? &cs->prio_queue : &cs->norm_queue; -@@ -2394,6 +2461,7 @@ static void wined3d_cs_mt_finish(struct wined3d_cs *cs) +@@ -2444,6 +2511,7 @@ static void wined3d_cs_mt_finish(struct wined3d_cs *cs) static const struct wined3d_cs_ops wined3d_cs_mt_ops = { @@ -124,10 +124,10 @@ index c8bd8adc82e..7a380905179 100644 wined3d_cs_mt_submit, wined3d_cs_mt_finish, diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c -index 26872ec5ec5..44e9a18fd22 100644 +index 1e17106cddc..adf6ded131f 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c -@@ -4256,8 +4256,6 @@ void CDECL wined3d_device_update_sub_resource(struct wined3d_device *device, str +@@ -4287,8 +4287,6 @@ void CDECL wined3d_device_update_sub_resource(struct wined3d_device *device, str TRACE("device %p, resource %p, sub_resource_idx %u, box %s, data %p, row_pitch %u, depth_pitch %u.\n", device, resource, sub_resource_idx, debug_box(box), data, row_pitch, depth_pitch); @@ -137,10 +137,10 @@ index 26872ec5ec5..44e9a18fd22 100644 { if (sub_resource_idx > 0) diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h -index eca14c4a819..bde0e9f47b9 100644 +index b647f4e23b4..093f33eee77 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h -@@ -3265,6 +3265,7 @@ struct wined3d_cs_queue +@@ -3267,6 +3267,7 @@ struct wined3d_cs_queue struct wined3d_cs_ops { diff --git a/patches/wined3d-CSMT_Main/9999-IfDefined.patch b/patches/wined3d-CSMT_Main/9999-IfDefined.patch index ff609875..1b647ee2 100644 --- a/patches/wined3d-CSMT_Main/9999-IfDefined.patch +++ b/patches/wined3d-CSMT_Main/9999-IfDefined.patch @@ -37,7 +37,7 @@ diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c --- a/dlls/wined3d/cs.c +++ b/dlls/wined3d/cs.c -@@ -400,6 +400,9 @@ struct wined3d_cs_update_sub_resource +@@ -401,6 +401,9 @@ struct wined3d_cs_update_sub_resource unsigned int sub_resource_idx; struct wined3d_box box; struct wined3d_sub_resource_data data; @@ -47,7 +47,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c }; struct wined3d_cs_add_dirty_texture_region -@@ -418,6 +421,19 @@ static void wined3d_cs_exec_nop(struct wined3d_cs *cs, const void *data) +@@ -426,6 +429,19 @@ static void wined3d_cs_exec_nop(struct wined3d_cs *cs, const void *data) { } @@ -67,7 +67,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c static void wined3d_cs_exec_present(struct wined3d_cs *cs, const void *data) { const struct wined3d_cs_present *op = data; -@@ -445,7 +461,11 @@ void wined3d_cs_emit_present(struct wined3d_cs *cs, struct wined3d_swapchain *sw +@@ -453,7 +469,11 @@ void wined3d_cs_emit_present(struct wined3d_cs *cs, struct wined3d_swapchain *sw unsigned int i; LONG pending; @@ -79,7 +79,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c op->opcode = WINED3D_CS_OP_PRESENT; op->dst_window_override = dst_window_override; op->swapchain = swapchain; -@@ -506,7 +526,11 @@ void wined3d_cs_emit_clear(struct wined3d_cs *cs, DWORD rect_count, const RECT * +@@ -514,7 +534,11 @@ void wined3d_cs_emit_clear(struct wined3d_cs *cs, DWORD rect_count, const RECT * struct wined3d_cs_clear *op; unsigned int i; @@ -91,7 +91,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c op->opcode = WINED3D_CS_OP_CLEAR; op->flags = flags; op->rt_count = rt_count; -@@ -542,7 +566,11 @@ void wined3d_cs_emit_clear_rendertarget_view(struct wined3d_cs *cs, struct wined +@@ -550,7 +574,11 @@ void wined3d_cs_emit_clear_rendertarget_view(struct wined3d_cs *cs, struct wined struct wined3d_fb_state fb; } *extra; @@ -103,7 +103,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c extra = (void *)&op->rects[1]; extra->fb.render_targets = &extra->rt; op->fb = &extra->fb; -@@ -698,7 +726,11 @@ void wined3d_cs_emit_dispatch(struct wined3d_cs *cs, +@@ -706,7 +734,11 @@ void wined3d_cs_emit_dispatch(struct wined3d_cs *cs, const struct wined3d_state *state = &cs->device->state; struct wined3d_cs_dispatch *op; @@ -115,7 +115,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c op->opcode = WINED3D_CS_OP_DISPATCH; op->group_count_x = group_count_x; op->group_count_y = group_count_y; -@@ -770,7 +802,11 @@ void wined3d_cs_emit_draw(struct wined3d_cs *cs, GLenum primitive_type, int base +@@ -778,7 +810,11 @@ void wined3d_cs_emit_draw(struct wined3d_cs *cs, GLenum primitive_type, int base struct wined3d_cs_draw *op; unsigned int i; @@ -127,7 +127,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c op->opcode = WINED3D_CS_OP_DRAW; op->primitive_type = primitive_type; op->base_vertex_idx = base_vertex_idx; -@@ -824,7 +860,11 @@ void wined3d_cs_emit_flush(struct wined3d_cs *cs) +@@ -832,7 +868,11 @@ void wined3d_cs_emit_flush(struct wined3d_cs *cs) { struct wined3d_cs_flush *op; @@ -139,7 +139,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c op->opcode = WINED3D_CS_OP_FLUSH; cs->ops->submit(cs); -@@ -842,7 +882,11 @@ void wined3d_cs_emit_set_predication(struct wined3d_cs *cs, struct wined3d_query +@@ -850,7 +890,11 @@ void wined3d_cs_emit_set_predication(struct wined3d_cs *cs, struct wined3d_query { struct wined3d_cs_set_predication *op; @@ -151,7 +151,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c op->opcode = WINED3D_CS_OP_SET_PREDICATION; op->predicate = predicate; op->value = value; -@@ -862,7 +906,11 @@ void wined3d_cs_emit_set_viewport(struct wined3d_cs *cs, const struct wined3d_vi +@@ -870,7 +914,11 @@ void wined3d_cs_emit_set_viewport(struct wined3d_cs *cs, const struct wined3d_vi { struct wined3d_cs_set_viewport *op; @@ -163,7 +163,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c op->opcode = WINED3D_CS_OP_SET_VIEWPORT; op->viewport = *viewport; -@@ -881,7 +929,11 @@ void wined3d_cs_emit_set_scissor_rect(struct wined3d_cs *cs, const RECT *rect) +@@ -889,7 +937,11 @@ void wined3d_cs_emit_set_scissor_rect(struct wined3d_cs *cs, const RECT *rect) { struct wined3d_cs_set_scissor_rect *op; @@ -175,7 +175,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c op->opcode = WINED3D_CS_OP_SET_SCISSOR_RECT; op->rect = *rect; -@@ -901,7 +953,11 @@ void wined3d_cs_emit_set_rendertarget_view(struct wined3d_cs *cs, unsigned int v +@@ -909,7 +961,11 @@ void wined3d_cs_emit_set_rendertarget_view(struct wined3d_cs *cs, unsigned int v { struct wined3d_cs_set_rendertarget_view *op; @@ -187,7 +187,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c op->opcode = WINED3D_CS_OP_SET_RENDERTARGET_VIEW; op->view_idx = view_idx; op->view = view; -@@ -950,7 +1006,11 @@ void wined3d_cs_emit_set_depth_stencil_view(struct wined3d_cs *cs, struct wined3 +@@ -958,7 +1014,11 @@ void wined3d_cs_emit_set_depth_stencil_view(struct wined3d_cs *cs, struct wined3 { struct wined3d_cs_set_depth_stencil_view *op; @@ -199,7 +199,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c op->opcode = WINED3D_CS_OP_SET_DEPTH_STENCIL_VIEW; op->view = view; -@@ -969,7 +1029,11 @@ void wined3d_cs_emit_set_vertex_declaration(struct wined3d_cs *cs, struct wined3 +@@ -977,7 +1037,11 @@ void wined3d_cs_emit_set_vertex_declaration(struct wined3d_cs *cs, struct wined3 { struct wined3d_cs_set_vertex_declaration *op; @@ -211,7 +211,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c op->opcode = WINED3D_CS_OP_SET_VERTEX_DECLARATION; op->declaration = declaration; -@@ -1001,7 +1065,11 @@ void wined3d_cs_emit_set_stream_source(struct wined3d_cs *cs, UINT stream_idx, +@@ -1009,7 +1073,11 @@ void wined3d_cs_emit_set_stream_source(struct wined3d_cs *cs, UINT stream_idx, { struct wined3d_cs_set_stream_source *op; @@ -223,7 +223,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c op->opcode = WINED3D_CS_OP_SET_STREAM_SOURCE; op->stream_idx = stream_idx; op->buffer = buffer; -@@ -1027,7 +1095,11 @@ void wined3d_cs_emit_set_stream_source_freq(struct wined3d_cs *cs, UINT stream_i +@@ -1035,7 +1103,11 @@ void wined3d_cs_emit_set_stream_source_freq(struct wined3d_cs *cs, UINT stream_i { struct wined3d_cs_set_stream_source_freq *op; @@ -235,7 +235,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c op->opcode = WINED3D_CS_OP_SET_STREAM_SOURCE_FREQ; op->stream_idx = stream_idx; op->frequency = frequency; -@@ -1060,7 +1132,11 @@ void wined3d_cs_emit_set_stream_output(struct wined3d_cs *cs, UINT stream_idx, +@@ -1068,7 +1140,11 @@ void wined3d_cs_emit_set_stream_output(struct wined3d_cs *cs, UINT stream_idx, { struct wined3d_cs_set_stream_output *op; @@ -247,7 +247,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c op->opcode = WINED3D_CS_OP_SET_STREAM_OUTPUT; op->stream_idx = stream_idx; op->buffer = buffer; -@@ -1092,7 +1168,11 @@ void wined3d_cs_emit_set_index_buffer(struct wined3d_cs *cs, struct wined3d_buff +@@ -1100,7 +1176,11 @@ void wined3d_cs_emit_set_index_buffer(struct wined3d_cs *cs, struct wined3d_buff { struct wined3d_cs_set_index_buffer *op; @@ -259,7 +259,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c op->opcode = WINED3D_CS_OP_SET_INDEX_BUFFER; op->buffer = buffer; op->format_id = format_id; -@@ -1122,7 +1202,11 @@ void wined3d_cs_emit_set_constant_buffer(struct wined3d_cs *cs, enum wined3d_sha +@@ -1130,7 +1210,11 @@ void wined3d_cs_emit_set_constant_buffer(struct wined3d_cs *cs, enum wined3d_sha { struct wined3d_cs_set_constant_buffer *op; @@ -271,7 +271,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c op->opcode = WINED3D_CS_OP_SET_CONSTANT_BUFFER; op->type = type; op->cb_idx = cb_idx; -@@ -1214,7 +1298,11 @@ void wined3d_cs_emit_set_texture(struct wined3d_cs *cs, UINT stage, struct wined +@@ -1222,7 +1306,11 @@ void wined3d_cs_emit_set_texture(struct wined3d_cs *cs, UINT stage, struct wined { struct wined3d_cs_set_texture *op; @@ -283,7 +283,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c op->opcode = WINED3D_CS_OP_SET_TEXTURE; op->stage = stage; op->texture = texture; -@@ -1246,7 +1334,11 @@ void wined3d_cs_emit_set_shader_resource_view(struct wined3d_cs *cs, enum wined3 +@@ -1254,7 +1342,11 @@ void wined3d_cs_emit_set_shader_resource_view(struct wined3d_cs *cs, enum wined3 { struct wined3d_cs_set_shader_resource_view *op; @@ -295,7 +295,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c op->opcode = WINED3D_CS_OP_SET_SHADER_RESOURCE_VIEW; op->type = type; op->view_idx = view_idx; -@@ -1276,7 +1368,11 @@ void wined3d_cs_emit_set_unordered_access_view(struct wined3d_cs *cs, enum wined +@@ -1284,7 +1376,11 @@ void wined3d_cs_emit_set_unordered_access_view(struct wined3d_cs *cs, enum wined { struct wined3d_cs_set_unordered_access_view *op; @@ -307,7 +307,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c op->opcode = WINED3D_CS_OP_SET_UNORDERED_ACCESS_VIEW; op->pipeline = pipeline; op->view_idx = view_idx; -@@ -1301,7 +1397,11 @@ void wined3d_cs_emit_set_sampler(struct wined3d_cs *cs, enum wined3d_shader_type +@@ -1309,7 +1405,11 @@ void wined3d_cs_emit_set_sampler(struct wined3d_cs *cs, enum wined3d_shader_type { struct wined3d_cs_set_sampler *op; @@ -319,7 +319,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c op->opcode = WINED3D_CS_OP_SET_SAMPLER; op->type = type; op->sampler_idx = sampler_idx; -@@ -1326,7 +1426,11 @@ void wined3d_cs_emit_set_shader(struct wined3d_cs *cs, enum wined3d_shader_type +@@ -1334,7 +1434,11 @@ void wined3d_cs_emit_set_shader(struct wined3d_cs *cs, enum wined3d_shader_type { struct wined3d_cs_set_shader *op; @@ -331,7 +331,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c op->opcode = WINED3D_CS_OP_SET_SHADER; op->type = type; op->shader = shader; -@@ -1347,7 +1451,11 @@ void wined3d_cs_emit_set_rasterizer_state(struct wined3d_cs *cs, +@@ -1355,7 +1459,11 @@ void wined3d_cs_emit_set_rasterizer_state(struct wined3d_cs *cs, { struct wined3d_cs_set_rasterizer_state *op; @@ -343,7 +343,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c op->opcode = WINED3D_CS_OP_SET_RASTERIZER_STATE; op->state = rasterizer_state; -@@ -1366,7 +1474,11 @@ void wined3d_cs_emit_set_render_state(struct wined3d_cs *cs, enum wined3d_render +@@ -1374,7 +1482,11 @@ void wined3d_cs_emit_set_render_state(struct wined3d_cs *cs, enum wined3d_render { struct wined3d_cs_set_render_state *op; @@ -355,7 +355,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c op->opcode = WINED3D_CS_OP_SET_RENDER_STATE; op->state = state; op->value = value; -@@ -1387,7 +1499,11 @@ void wined3d_cs_emit_set_texture_state(struct wined3d_cs *cs, UINT stage, +@@ -1395,7 +1507,11 @@ void wined3d_cs_emit_set_texture_state(struct wined3d_cs *cs, UINT stage, { struct wined3d_cs_set_texture_state *op; @@ -367,7 +367,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c op->opcode = WINED3D_CS_OP_SET_TEXTURE_STATE; op->stage = stage; op->state = state; -@@ -1409,7 +1525,11 @@ void wined3d_cs_emit_set_sampler_state(struct wined3d_cs *cs, UINT sampler_idx, +@@ -1417,7 +1533,11 @@ void wined3d_cs_emit_set_sampler_state(struct wined3d_cs *cs, UINT sampler_idx, { struct wined3d_cs_set_sampler_state *op; @@ -379,7 +379,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c op->opcode = WINED3D_CS_OP_SET_SAMPLER_STATE; op->sampler_idx = sampler_idx; op->state = state; -@@ -1432,7 +1552,11 @@ void wined3d_cs_emit_set_transform(struct wined3d_cs *cs, enum wined3d_transform +@@ -1440,7 +1560,11 @@ void wined3d_cs_emit_set_transform(struct wined3d_cs *cs, enum wined3d_transform { struct wined3d_cs_set_transform *op; @@ -391,7 +391,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c op->opcode = WINED3D_CS_OP_SET_TRANSFORM; op->state = state; op->matrix = *matrix; -@@ -1452,7 +1576,11 @@ void wined3d_cs_emit_set_clip_plane(struct wined3d_cs *cs, UINT plane_idx, const +@@ -1460,7 +1584,11 @@ void wined3d_cs_emit_set_clip_plane(struct wined3d_cs *cs, UINT plane_idx, const { struct wined3d_cs_set_clip_plane *op; @@ -403,7 +403,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c op->opcode = WINED3D_CS_OP_SET_CLIP_PLANE; op->plane_idx = plane_idx; op->plane = *plane; -@@ -1528,7 +1656,11 @@ void wined3d_cs_emit_set_color_key(struct wined3d_cs *cs, struct wined3d_texture +@@ -1536,7 +1664,11 @@ void wined3d_cs_emit_set_color_key(struct wined3d_cs *cs, struct wined3d_texture { struct wined3d_cs_set_color_key *op; @@ -415,7 +415,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c op->opcode = WINED3D_CS_OP_SET_COLOR_KEY; op->texture = texture; op->flags = flags; -@@ -1555,7 +1687,11 @@ void wined3d_cs_emit_set_material(struct wined3d_cs *cs, const struct wined3d_ma +@@ -1563,7 +1695,11 @@ void wined3d_cs_emit_set_material(struct wined3d_cs *cs, const struct wined3d_ma { struct wined3d_cs_set_material *op; @@ -427,7 +427,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c op->opcode = WINED3D_CS_OP_SET_MATERIAL; op->material = *material; -@@ -1603,7 +1739,11 @@ void wined3d_cs_emit_set_light(struct wined3d_cs *cs, const struct wined3d_light +@@ -1611,7 +1747,11 @@ void wined3d_cs_emit_set_light(struct wined3d_cs *cs, const struct wined3d_light { struct wined3d_cs_set_light *op; @@ -439,7 +439,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c op->opcode = WINED3D_CS_OP_SET_LIGHT; op->light = *light; -@@ -1636,7 +1776,11 @@ void wined3d_cs_emit_set_light_enable(struct wined3d_cs *cs, unsigned int idx, B +@@ -1644,7 +1784,11 @@ void wined3d_cs_emit_set_light_enable(struct wined3d_cs *cs, unsigned int idx, B { struct wined3d_cs_set_light_enable *op; @@ -451,7 +451,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c op->opcode = WINED3D_CS_OP_SET_LIGHT_ENABLE; op->idx = idx; op->enable = enable; -@@ -1701,7 +1845,11 @@ static void wined3d_cs_mt_push_constants(struct wined3d_cs *cs, enum wined3d_pus +@@ -1709,7 +1853,11 @@ static void wined3d_cs_mt_push_constants(struct wined3d_cs *cs, enum wined3d_pus size_t size; size = count * wined3d_cs_push_constant_info[p].size; @@ -463,7 +463,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c op->opcode = WINED3D_CS_OP_PUSH_CONSTANTS; op->type = p; op->start_idx = start_idx; -@@ -1725,7 +1873,11 @@ void wined3d_cs_emit_reset_state(struct wined3d_cs *cs) +@@ -1733,7 +1881,11 @@ void wined3d_cs_emit_reset_state(struct wined3d_cs *cs) { struct wined3d_cs_reset_state *op; @@ -475,7 +475,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c op->opcode = WINED3D_CS_OP_RESET_STATE; cs->ops->submit(cs); -@@ -1742,7 +1894,11 @@ static void wined3d_cs_emit_callback(struct wined3d_cs *cs, void (*callback)(voi +@@ -1750,7 +1902,11 @@ static void wined3d_cs_emit_callback(struct wined3d_cs *cs, void (*callback)(voi { struct wined3d_cs_callback *op; @@ -487,7 +487,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c op->opcode = WINED3D_CS_OP_CALLBACK; op->callback = callback; op->object = object; -@@ -1803,7 +1959,11 @@ void wined3d_cs_emit_query_issue(struct wined3d_cs *cs, struct wined3d_query *qu +@@ -1811,7 +1967,11 @@ void wined3d_cs_emit_query_issue(struct wined3d_cs *cs, struct wined3d_query *qu { struct wined3d_cs_query_issue *op; @@ -499,7 +499,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c op->opcode = WINED3D_CS_OP_QUERY_ISSUE; op->query = query; op->flags = flags; -@@ -1824,7 +1984,11 @@ void wined3d_cs_emit_preload_resource(struct wined3d_cs *cs, struct wined3d_reso +@@ -1832,7 +1992,11 @@ void wined3d_cs_emit_preload_resource(struct wined3d_cs *cs, struct wined3d_reso { struct wined3d_cs_preload_resource *op; @@ -511,7 +511,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c op->opcode = WINED3D_CS_OP_PRELOAD_RESOURCE; op->resource = resource; -@@ -1846,7 +2010,11 @@ void wined3d_cs_emit_unload_resource(struct wined3d_cs *cs, struct wined3d_resou +@@ -1854,7 +2018,11 @@ void wined3d_cs_emit_unload_resource(struct wined3d_cs *cs, struct wined3d_resou { struct wined3d_cs_unload_resource *op; @@ -523,7 +523,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c op->opcode = WINED3D_CS_OP_UNLOAD_RESOURCE; op->resource = resource; -@@ -1874,7 +2042,11 @@ HRESULT wined3d_cs_map(struct wined3d_cs *cs, struct wined3d_resource *resource, +@@ -1882,7 +2050,11 @@ HRESULT wined3d_cs_map(struct wined3d_cs *cs, struct wined3d_resource *resource, * increasing the map count would be visible to applications. */ wined3d_not_from_cs(cs); @@ -535,7 +535,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c op->opcode = WINED3D_CS_OP_MAP; op->resource = resource; op->sub_resource_idx = sub_resource_idx; -@@ -1904,7 +2076,11 @@ HRESULT wined3d_cs_unmap(struct wined3d_cs *cs, struct wined3d_resource *resourc +@@ -1912,7 +2084,11 @@ HRESULT wined3d_cs_unmap(struct wined3d_cs *cs, struct wined3d_resource *resourc wined3d_not_from_cs(cs); @@ -547,7 +547,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c op->opcode = WINED3D_CS_OP_UNMAP; op->resource = resource; op->sub_resource_idx = sub_resource_idx; -@@ -2044,7 +2220,11 @@ void wined3d_cs_emit_blt_sub_resource(struct wined3d_cs *cs, struct wined3d_reso +@@ -2052,7 +2228,11 @@ void wined3d_cs_emit_blt_sub_resource(struct wined3d_cs *cs, struct wined3d_reso { struct wined3d_cs_blt_sub_resource *op; @@ -559,7 +559,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c op->opcode = WINED3D_CS_OP_BLT_SUB_RESOURCE; op->dst_resource = dst_resource; op->dst_sub_resource_idx = dst_sub_resource_idx; -@@ -2123,8 +2303,56 @@ void wined3d_cs_emit_update_sub_resource(struct wined3d_cs *cs, struct wined3d_r +@@ -2131,8 +2311,56 @@ void wined3d_cs_emit_update_sub_resource(struct wined3d_cs *cs, struct wined3d_r unsigned int slice_pitch) { struct wined3d_cs_update_sub_resource *op; @@ -616,7 +616,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c op->opcode = WINED3D_CS_OP_UPDATE_SUB_RESOURCE; op->resource = resource; op->sub_resource_idx = sub_resource_idx; -@@ -2167,7 +2395,11 @@ void wined3d_cs_emit_add_dirty_texture_region(struct wined3d_cs *cs, +@@ -2175,7 +2403,11 @@ void wined3d_cs_emit_add_dirty_texture_region(struct wined3d_cs *cs, { struct wined3d_cs_add_dirty_texture_region *op; @@ -628,7 +628,19 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c op->opcode = WINED3D_CS_OP_ADD_DIRTY_TEXTURE_REGION; op->texture = texture; op->layer = layer; -@@ -2181,11 +2413,17 @@ static void wined3d_cs_emit_stop(struct wined3d_cs *cs) +@@ -2203,7 +2435,11 @@ void wined3d_cs_emit_clear_unordered_access_view_uint(struct wined3d_cs *cs, + { + struct wined3d_cs_clear_unordered_access_view *op; + ++#if !defined(STAGING_CSMT) + op = cs->ops->require_space(cs, sizeof(*op)); ++#else /* STAGING_CSMT */ ++ op = cs->ops->require_space(cs, sizeof(*op), 0); ++#endif /* STAGING_CSMT */ + op->opcode = WINED3D_CS_OP_CLEAR_UNORDERED_ACCESS_VIEW; + op->view = view; + op->clear_value = *clear_value; +@@ -2217,11 +2453,17 @@ static void wined3d_cs_emit_stop(struct wined3d_cs *cs) { struct wined3d_cs_stop *op; @@ -646,8 +658,8 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c } static void (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void *data) = -@@ -2235,7 +2473,16 @@ static void (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void - /* WINED3D_CS_OP_ADD_DIRTY_TEXTURE_REGION */ wined3d_cs_exec_add_dirty_texture_region, +@@ -2272,7 +2514,16 @@ static void (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void + /* WINED3D_CS_OP_CLEAR_UNORDERED_ACCESS_VIEW */ wined3d_cs_exec_clear_unordered_access_view, }; +#if !defined(STAGING_CSMT) @@ -663,7 +675,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c { if (size > (cs->data_size - cs->end)) { -@@ -2288,6 +2535,9 @@ static void wined3d_cs_st_finish(struct wined3d_cs *cs) +@@ -2325,6 +2576,9 @@ static void wined3d_cs_st_finish(struct wined3d_cs *cs) static const struct wined3d_cs_ops wined3d_cs_st_ops = { @@ -673,7 +685,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c wined3d_cs_st_require_space, wined3d_cs_st_submit, wined3d_cs_st_finish, -@@ -2301,7 +2551,11 @@ static BOOL wined3d_cs_queue_is_empty(const struct wined3d_cs_queue *queue) +@@ -2338,7 +2592,11 @@ static BOOL wined3d_cs_queue_is_empty(const struct wined3d_cs_queue *queue) static void wined3d_cs_mt_submit(struct wined3d_cs *cs) { @@ -685,7 +697,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c struct wined3d_cs_packet *packet; size_t packet_size; -@@ -2316,15 +2570,42 @@ static void wined3d_cs_mt_submit(struct wined3d_cs *cs) +@@ -2353,15 +2611,42 @@ static void wined3d_cs_mt_submit(struct wined3d_cs *cs) SetEvent(cs->event); } @@ -728,7 +740,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c header_size = FIELD_OFFSET(struct wined3d_cs_packet, data[0]); size = (size + header_size - 1) & ~(header_size - 1); -@@ -2345,7 +2626,11 @@ static void *wined3d_cs_mt_require_space(struct wined3d_cs *cs, size_t size) +@@ -2382,7 +2667,11 @@ static void *wined3d_cs_mt_require_space(struct wined3d_cs *cs, size_t size) TRACE("Inserting a nop for %lu + %lu bytes.\n", (unsigned long)header_size, (unsigned long)nop_size); @@ -740,7 +752,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c if (nop_size) nop->opcode = WINED3D_CS_OP_NOP; -@@ -2376,6 +2661,9 @@ static void *wined3d_cs_mt_require_space(struct wined3d_cs *cs, size_t size) +@@ -2413,6 +2702,9 @@ static void *wined3d_cs_mt_require_space(struct wined3d_cs *cs, size_t size) head, tail, (unsigned long)packet_size); } @@ -750,7 +762,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c packet = (struct wined3d_cs_packet *)&queue->data[queue->head]; packet->size = size; return packet->data; -@@ -2383,15 +2671,29 @@ static void *wined3d_cs_mt_require_space(struct wined3d_cs *cs, size_t size) +@@ -2420,15 +2712,29 @@ static void *wined3d_cs_mt_require_space(struct wined3d_cs *cs, size_t size) static void wined3d_cs_mt_finish(struct wined3d_cs *cs) { @@ -780,7 +792,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c wined3d_cs_mt_require_space, wined3d_cs_mt_submit, wined3d_cs_mt_finish, -@@ -2413,6 +2715,15 @@ static void poll_queries(struct wined3d_cs *cs) +@@ -2450,6 +2756,15 @@ static void poll_queries(struct wined3d_cs *cs) } } @@ -796,7 +808,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c static void wined3d_cs_wait_event(struct wined3d_cs *cs) { InterlockedExchange(&cs->waiting_for_event, TRUE); -@@ -2424,7 +2735,11 @@ static void wined3d_cs_wait_event(struct wined3d_cs *cs) +@@ -2461,7 +2776,11 @@ static void wined3d_cs_wait_event(struct wined3d_cs *cs) * Likewise, we can race with the main thread when resetting * "waiting_for_event", in which case we would need to call * WaitForSingleObject() because the main thread called SetEvent(). */ @@ -808,7 +820,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c && InterlockedCompareExchange(&cs->waiting_for_event, FALSE, TRUE)) return; -@@ -2443,7 +2758,9 @@ static DWORD WINAPI wined3d_cs_run(void *ctx) +@@ -2480,7 +2799,9 @@ static DWORD WINAPI wined3d_cs_run(void *ctx) TRACE("Started.\n"); @@ -818,7 +830,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c list_init(&cs->query_poll_list); cs->thread_id = GetCurrentThreadId(); for (;;) -@@ -2454,7 +2771,11 @@ static DWORD WINAPI wined3d_cs_run(void *ctx) +@@ -2491,7 +2812,11 @@ static DWORD WINAPI wined3d_cs_run(void *ctx) poll = 0; } @@ -830,7 +842,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c { if (++spin_count >= WINED3D_CS_SPIN_COUNT && list_empty(&cs->query_poll_list)) wined3d_cs_wait_event(cs); -@@ -2483,7 +2804,9 @@ static DWORD WINAPI wined3d_cs_run(void *ctx) +@@ -2520,7 +2845,9 @@ static DWORD WINAPI wined3d_cs_run(void *ctx) InterlockedExchange(&queue->tail, tail); } @@ -840,7 +852,7 @@ diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c TRACE("Stopped.\n"); FreeLibraryAndExitThread(cs->wined3d_module, 0); } -@@ -2557,6 +2880,9 @@ void wined3d_cs_destroy(struct wined3d_cs *cs) +@@ -2594,6 +2921,9 @@ void wined3d_cs_destroy(struct wined3d_cs *cs) if (cs->thread) { wined3d_cs_emit_stop(cs); @@ -903,7 +915,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c } if (!src_box) -@@ -4721,7 +4742,11 @@ HRESULT CDECL wined3d_device_reset(struct wined3d_device *device, +@@ -4729,7 +4750,11 @@ HRESULT CDECL wined3d_device_reset(struct wined3d_device *device, TRACE("device %p, swapchain_desc %p, mode %p, callback %p, reset_state %#x.\n", device, swapchain_desc, mode, callback, reset_state); @@ -915,7 +927,7 @@ diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c if (!(swapchain = wined3d_device_get_swapchain(device, 0))) { -@@ -5273,3 +5298,58 @@ LRESULT device_process_message(struct wined3d_device *device, HWND window, BOOL +@@ -5281,3 +5306,58 @@ LRESULT device_process_message(struct wined3d_device *device, HWND window, BOOL else return CallWindowProcA(proc, window, message, wparam, lparam); } @@ -1288,7 +1300,7 @@ diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c diff --git a/dlls/wined3d/view.c b/dlls/wined3d/view.c --- a/dlls/wined3d/view.c +++ b/dlls/wined3d/view.c -@@ -716,6 +716,10 @@ static void wined3d_shader_resource_view_cs_init(void *object) +@@ -722,6 +722,10 @@ static void wined3d_shader_resource_view_cs_init(void *object) debug_d3dformat(resource->format->id), debug_d3dformat(view_format->id)); } } @@ -1299,7 +1311,7 @@ diff --git a/dlls/wined3d/view.c b/dlls/wined3d/view.c } static HRESULT wined3d_shader_resource_view_init(struct wined3d_shader_resource_view *view, -@@ -732,6 +736,9 @@ static HRESULT wined3d_shader_resource_view_init(struct wined3d_shader_resource_ +@@ -738,6 +742,9 @@ static HRESULT wined3d_shader_resource_view_init(struct wined3d_shader_resource_ wined3d_resource_incref(view->resource = resource); @@ -1309,7 +1321,7 @@ diff --git a/dlls/wined3d/view.c b/dlls/wined3d/view.c wined3d_cs_init_object(resource->device->cs, wined3d_shader_resource_view_cs_init, view); return WINED3D_OK; -@@ -898,6 +905,10 @@ static void wined3d_unordered_access_view_cs_init(void *object) +@@ -945,6 +952,10 @@ static void wined3d_unordered_access_view_cs_init(void *object) desc, texture, view->format); } } @@ -1320,7 +1332,7 @@ diff --git a/dlls/wined3d/view.c b/dlls/wined3d/view.c } static HRESULT wined3d_unordered_access_view_init(struct wined3d_unordered_access_view *view, -@@ -917,6 +928,9 @@ static HRESULT wined3d_unordered_access_view_init(struct wined3d_unordered_acces +@@ -964,6 +975,9 @@ static HRESULT wined3d_unordered_access_view_init(struct wined3d_unordered_acces wined3d_resource_incref(view->resource = resource); @@ -1417,7 +1429,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h size_t data_size, start, end; void *data; struct list query_poll_list; -@@ -3353,6 +3384,9 @@ void wined3d_cs_emit_set_unordered_access_view(struct wined3d_cs *cs, enum wined +@@ -3355,6 +3386,9 @@ void wined3d_cs_emit_set_unordered_access_view(struct wined3d_cs *cs, enum wined void wined3d_cs_emit_set_vertex_declaration(struct wined3d_cs *cs, struct wined3d_vertex_declaration *declaration) DECLSPEC_HIDDEN; void wined3d_cs_emit_set_viewport(struct wined3d_cs *cs, const struct wined3d_viewport *viewport) DECLSPEC_HIDDEN;