Rebase against 4eaaf06ce4e5d7424eec2cf303c8256610544b39.

This commit is contained in:
Sebastian Lackner 2017-05-13 01:14:10 +02:00
parent 171d05fffe
commit 8748402001
9 changed files with 184 additions and 441 deletions

View File

@ -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

View File

@ -1,248 +0,0 @@
From e9cd0d95e6c21d304f67035b7aa5113021f2aeb1 Mon Sep 17 00:00:00 2001
From: Dmitry Timoshkov <dmitry@baikal.ru>
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

View File

@ -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);

View File

@ -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 <dmitry@baikal.ru>
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 {
--

View File

@ -1,25 +0,0 @@
From 7d9df59da745fe72a232617a340b795d23fa4dc8 Mon Sep 17 00:00:00 2001
From: Dmitry Timoshkov <dmitry@baikal.ru>
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

View File

@ -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 <sebastian@fds-team.de>
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

View File

@ -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?= <michael@fds-team.de>
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
{

File diff suppressed because it is too large Load Diff