mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-11-21 16:46:54 -08:00
Rebase against 367b30d8278684aaff373f5666b78264137d7a8f.
This commit is contained in:
parent
efffd311e9
commit
bad6493597
@ -110,7 +110,7 @@ for more details.*
|
||||
* Basic handling of write watches triggered while we're on the signal stack.
|
||||
* Basic support for CUDA
|
||||
* Black & White needs DXTn software decoding support ([Wine Bug #14939](https://bugs.winehq.org/show_bug.cgi?id=14939))
|
||||
* CPU-Z fails to start because GetLogicalProcessorInformationEx returns FALSE
|
||||
* ~~CPU-Z fails to start because GetLogicalProcessorInformationEx returns FALSE~~
|
||||
* Calculate msvcrt exponential math operations with higher precision ([Wine Bug #37149](https://bugs.winehq.org/show_bug.cgi?id=37149))
|
||||
* Catch invalid memory accesses in imagehlp.CheckSumMappedFile
|
||||
* Check IsWoW64Process before calling Wow64 functions in UNIXFS_get_unix_path
|
||||
@ -243,7 +243,7 @@ for more details.*
|
||||
* Process APC calls before starting process
|
||||
* Properly close sockets when WSACleanup is called ([Wine Bug #18670](https://bugs.winehq.org/show_bug.cgi?id=18670))
|
||||
* Properly handle multiple registry notifications per key
|
||||
* Properly implement GetLargestConsoleWindowSize ([Wine Bug #10919](https://bugs.winehq.org/show_bug.cgi?id=10919))
|
||||
* ~~Properly implement GetLargestConsoleWindowSize~~ ([Wine Bug #10919](https://bugs.winehq.org/show_bug.cgi?id=10919))
|
||||
* Properly implement imagehlp.ImageLoad and ImageUnload ([Wine Bug #23455](https://bugs.winehq.org/show_bug.cgi?id=23455))
|
||||
* Properly initialize caps->dwZBufferBitDepths in ddraw7_GetCaps ([Wine Bug #27002](https://bugs.winehq.org/show_bug.cgi?id=27002))
|
||||
* Properly render themed buttons when they are pressed ([Wine Bug #37584](https://bugs.winehq.org/show_bug.cgi?id=37584))
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 9ec1a00c3d775cd5abd91ec88af216d669136152 Mon Sep 17 00:00:00 2001
|
||||
From 5d2fa4b454acdbcecd8967ca885ae6a8e8557e5c Mon Sep 17 00:00:00 2001
|
||||
From: Christian Costa <titan.costa@gmail.com>
|
||||
Date: Sat, 17 Jan 2015 23:54:14 +0100
|
||||
Subject: d3dx9_36: Implement D3DXCreateAnimationController with a stubbed
|
||||
@ -13,7 +13,7 @@ Subject: d3dx9_36: Implement D3DXCreateAnimationController with a stubbed
|
||||
create mode 100644 dlls/d3dx9_36/animation.c
|
||||
|
||||
diff --git a/dlls/d3dx9_36/Makefile.in b/dlls/d3dx9_36/Makefile.in
|
||||
index aa387b5..fd710c2 100644
|
||||
index 5958c57..95e3045 100644
|
||||
--- a/dlls/d3dx9_36/Makefile.in
|
||||
+++ b/dlls/d3dx9_36/Makefile.in
|
||||
@@ -3,6 +3,7 @@ IMPORTLIB = d3dx9
|
||||
@ -486,12 +486,12 @@ index 0000000..72f685f
|
||||
+ return D3D_OK;
|
||||
+}
|
||||
diff --git a/dlls/d3dx9_36/d3dx9_36.spec b/dlls/d3dx9_36/d3dx9_36.spec
|
||||
index 13f0d99..4182f59 100644
|
||||
index 5eda041..aa7c928 100644
|
||||
--- a/dlls/d3dx9_36/d3dx9_36.spec
|
||||
+++ b/dlls/d3dx9_36/d3dx9_36.spec
|
||||
@@ -30,7 +30,7 @@
|
||||
@ stub D3DXConcatenateMeshes(ptr long long ptr ptr ptr ptr ptr)
|
||||
@ stub D3DXConvertMeshSubsetToSingleStrip(ptr long long ptr ptr)
|
||||
@ stdcall D3DXConvertMeshSubsetToSingleStrip(ptr long long ptr ptr)
|
||||
@ stub D3DXConvertMeshSubsetToStrips(ptr long long ptr ptr ptr ptr)
|
||||
-@ stub D3DXCreateAnimationController(long long long long ptr)
|
||||
+@ stdcall D3DXCreateAnimationController(long long long long ptr)
|
||||
@ -532,5 +532,5 @@ index b5f2232..c4d4d64 100644
|
||||
UINT max_num_tracks, UINT max_num_events, ID3DXAnimationController **anim_controller) PURE;
|
||||
};
|
||||
--
|
||||
2.2.1
|
||||
2.6.4
|
||||
|
||||
|
@ -1,54 +0,0 @@
|
||||
From 621d31b627bd14ab424e20f76c9dc2d786e5ec9e Mon Sep 17 00:00:00 2001
|
||||
From: Hugh McMaster <hugh.mcmaster@outlook.com>
|
||||
Date: Fri, 4 Dec 2015 15:47:42 +1100
|
||||
Subject: wineconsole: Send the largest console window size information to the
|
||||
server
|
||||
|
||||
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
|
||||
---
|
||||
programs/wineconsole/wineconsole.c | 6 +++++-
|
||||
server/console.c | 7 -------
|
||||
2 files changed, 5 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/programs/wineconsole/wineconsole.c b/programs/wineconsole/wineconsole.c
|
||||
index 7a89eeb..729416f 100644
|
||||
--- a/programs/wineconsole/wineconsole.c
|
||||
+++ b/programs/wineconsole/wineconsole.c
|
||||
@@ -424,11 +424,15 @@ void WINECON_SetConfig(struct inner_data* data, const struct config_data* cf
|
||||
if (strcmpiW(data->curcfg.face_name, cfg->face_name) || data->curcfg.cell_width != cfg->cell_width ||
|
||||
data->curcfg.cell_height != cfg->cell_height || data->curcfg.font_weight != cfg->font_weight)
|
||||
{
|
||||
+ RECT r;
|
||||
data->fnSetFont(data, cfg->face_name, cfg->cell_height, cfg->font_weight);
|
||||
+ SystemParametersInfoW(SPI_GETWORKAREA, 0, &r, 0);
|
||||
SERVER_START_REQ(set_console_output_info)
|
||||
{
|
||||
req->handle = wine_server_obj_handle( data->hConOut );
|
||||
- req->mask = SET_CONSOLE_OUTPUT_INFO_FONT;
|
||||
+ req->mask = SET_CONSOLE_OUTPUT_INFO_MAX_SIZE | SET_CONSOLE_OUTPUT_INFO_FONT;
|
||||
+ req->max_width = (r.right - r.left) / cfg->cell_width;
|
||||
+ req->max_height = (r.bottom - r.top - GetSystemMetrics(SM_CYCAPTION)) / cfg->cell_height;
|
||||
req->font_width = cfg->cell_width;
|
||||
req->font_height = cfg->cell_height;
|
||||
wine_server_call( req );
|
||||
diff --git a/server/console.c b/server/console.c
|
||||
index a57b2fe..9b01614 100644
|
||||
--- a/server/console.c
|
||||
+++ b/server/console.c
|
||||
@@ -1018,13 +1018,6 @@ static int set_console_output_info( struct screen_buffer *screen_buffer,
|
||||
}
|
||||
if (req->mask & SET_CONSOLE_OUTPUT_INFO_MAX_SIZE)
|
||||
{
|
||||
- /* can only be done by renderer */
|
||||
- if (current->process->console != screen_buffer->input)
|
||||
- {
|
||||
- set_error( STATUS_INVALID_PARAMETER );
|
||||
- return 0;
|
||||
- }
|
||||
-
|
||||
screen_buffer->max_width = req->max_width;
|
||||
screen_buffer->max_height = req->max_height;
|
||||
}
|
||||
--
|
||||
2.6.2
|
||||
|
@ -1,65 +0,0 @@
|
||||
From 56d5cc64d9047dc5f9866ff2542eb0f07f9ad75d Mon Sep 17 00:00:00 2001
|
||||
From: Hugh McMaster <hugh.mcmaster@outlook.com>
|
||||
Date: Fri, 4 Dec 2015 15:48:12 +1100
|
||||
Subject: kernel32: Implement GetLargestConsoleWindowSize
|
||||
|
||||
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
|
||||
---
|
||||
dlls/kernel32/console.c | 24 +++++++++++++++++++-----
|
||||
1 file changed, 19 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/dlls/kernel32/console.c b/dlls/kernel32/console.c
|
||||
index 51d6e60..f48bca7 100644
|
||||
--- a/dlls/kernel32/console.c
|
||||
+++ b/dlls/kernel32/console.c
|
||||
@@ -1360,6 +1360,22 @@ DWORD WINAPI GetConsoleTitleW(LPWSTR title, DWORD size)
|
||||
return ret;
|
||||
}
|
||||
|
||||
+static COORD get_largest_console_window_size(HANDLE hConsole)
|
||||
+{
|
||||
+ COORD c = {0,0};
|
||||
+
|
||||
+ SERVER_START_REQ(get_console_output_info)
|
||||
+ {
|
||||
+ req->handle = console_handle_unmap(hConsole);
|
||||
+ if (!wine_server_call_err(req))
|
||||
+ {
|
||||
+ c.X = reply->max_width;
|
||||
+ c.Y = reply->max_height;
|
||||
+ }
|
||||
+ }
|
||||
+ SERVER_END_REQ;
|
||||
+ return c;
|
||||
+}
|
||||
|
||||
/***********************************************************************
|
||||
* GetLargestConsoleWindowSize (KERNEL32.@)
|
||||
@@ -1378,8 +1394,7 @@ DWORD WINAPI GetLargestConsoleWindowSize(HANDLE hConsoleOutput)
|
||||
COORD c;
|
||||
DWORD w;
|
||||
} x;
|
||||
- x.c.X = 80;
|
||||
- x.c.Y = 24;
|
||||
+ x.c = get_largest_console_window_size(hConsoleOutput);
|
||||
TRACE("(%p), returning %dx%d (%x)\n", hConsoleOutput, x.c.X, x.c.Y, x.w);
|
||||
return x.w;
|
||||
}
|
||||
@@ -1399,12 +1414,11 @@ DWORD WINAPI GetLargestConsoleWindowSize(HANDLE hConsoleOutput)
|
||||
COORD WINAPI GetLargestConsoleWindowSize(HANDLE hConsoleOutput)
|
||||
{
|
||||
COORD c;
|
||||
- c.X = 80;
|
||||
- c.Y = 24;
|
||||
+ c = get_largest_console_window_size(hConsoleOutput);
|
||||
TRACE("(%p), returning %dx%d\n", hConsoleOutput, c.X, c.Y);
|
||||
return c;
|
||||
}
|
||||
-#endif /* defined(__i386__) */
|
||||
+#endif /* !defined(__i386__) */
|
||||
|
||||
static WCHAR* S_EditString /* = NULL */;
|
||||
static unsigned S_EditStrPos /* = 0 */;
|
||||
--
|
||||
2.6.2
|
||||
|
@ -1,44 +0,0 @@
|
||||
From 0042b3a28cc7fbe462850eb600df0424a8dfb1e5 Mon Sep 17 00:00:00 2001
|
||||
From: Hugh McMaster <hugh.mcmaster@outlook.com>
|
||||
Date: Fri, 4 Dec 2015 16:00:27 +1100
|
||||
Subject: kernel32: Add a stub for SetConsoleFont
|
||||
|
||||
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
|
||||
---
|
||||
dlls/kernel32/console.c | 6 ++++++
|
||||
dlls/kernel32/kernel32.spec | 2 +-
|
||||
2 files changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/kernel32/console.c b/dlls/kernel32/console.c
|
||||
index f48bca7..3c53b52 100644
|
||||
--- a/dlls/kernel32/console.c
|
||||
+++ b/dlls/kernel32/console.c
|
||||
@@ -3256,6 +3256,12 @@ DWORD WINAPI GetNumberOfConsoleFonts(void)
|
||||
return 1;
|
||||
}
|
||||
|
||||
+BOOL WINAPI SetConsoleFont(HANDLE hConsole, DWORD index)
|
||||
+{
|
||||
+ FIXME("(%p, %u): stub!\n", hConsole, index);
|
||||
+ SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||
+ return FALSE;
|
||||
+}
|
||||
|
||||
BOOL WINAPI SetConsoleKeyShortcuts(BOOL set, BYTE keys, VOID *a, DWORD b)
|
||||
{
|
||||
diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec
|
||||
index ff67e54..d10e6bb 100644
|
||||
--- a/dlls/kernel32/kernel32.spec
|
||||
+++ b/dlls/kernel32/kernel32.spec
|
||||
@@ -1345,7 +1345,7 @@
|
||||
@ stub SetConsoleCursorMode
|
||||
@ stdcall SetConsoleCursorPosition(long long)
|
||||
@ stdcall SetConsoleDisplayMode(long long ptr)
|
||||
-@ stub SetConsoleFont
|
||||
+@ stdcall SetConsoleFont(long long)
|
||||
@ stub SetConsoleHardwareState
|
||||
@ stdcall SetConsoleIcon(ptr)
|
||||
@ stdcall SetConsoleInputExeNameA(ptr)
|
||||
--
|
||||
2.6.2
|
||||
|
@ -1,38 +0,0 @@
|
||||
From 3935a3728751863c959f1f45e8e1866ed98c3ce4 Mon Sep 17 00:00:00 2001
|
||||
From: Hugh McMaster <hugh.mcmaster@outlook.com>
|
||||
Date: Fri, 4 Dec 2015 16:02:38 +1100
|
||||
Subject: kernel32/tests: Refresh the console to clear the console font table
|
||||
|
||||
The testScreenBuffer function unintentionally causes the console
|
||||
font table to duplicate. This patch clears the font table.
|
||||
|
||||
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
|
||||
---
|
||||
dlls/kernel32/tests/console.c | 11 +++++++++++
|
||||
1 file changed, 11 insertions(+)
|
||||
|
||||
diff --git a/dlls/kernel32/tests/console.c b/dlls/kernel32/tests/console.c
|
||||
index 240d9d8..3ba1da5 100644
|
||||
--- a/dlls/kernel32/tests/console.c
|
||||
+++ b/dlls/kernel32/tests/console.c
|
||||
@@ -2787,6 +2787,17 @@ START_TEST(console)
|
||||
testScroll(hConOut, sbi.dwSize);
|
||||
/* will test sb creation / modification / codepage handling */
|
||||
testScreenBuffer(hConOut);
|
||||
+
|
||||
+ /* clear duplicated console font table */
|
||||
+ CloseHandle(hConIn);
|
||||
+ CloseHandle(hConOut);
|
||||
+ FreeConsole();
|
||||
+ ok(AllocConsole(), "Couldn't alloc console\n");
|
||||
+ hConIn = CreateFileA("CONIN$", GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, 0);
|
||||
+ hConOut = CreateFileA("CONOUT$", GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, 0);
|
||||
+ ok(hConIn != INVALID_HANDLE_VALUE, "Opening ConIn\n");
|
||||
+ ok(hConOut != INVALID_HANDLE_VALUE, "Opening ConOut\n");
|
||||
+
|
||||
testCtrlHandler();
|
||||
/* still to be done: access rights & access on objects */
|
||||
|
||||
--
|
||||
2.6.2
|
||||
|
@ -1,93 +0,0 @@
|
||||
From cea4e680a6e23edcbbba8d0457834ee15c2f7c3a Mon Sep 17 00:00:00 2001
|
||||
From: Hugh McMaster <hugh.mcmaster@outlook.com>
|
||||
Date: Fri, 4 Dec 2015 16:07:24 +1100
|
||||
Subject: kernel32/tests: Add tests for GetLargestConsoleWindowSize
|
||||
|
||||
Signed-off-by: Hugh McMaster <hugh.mcmaster@outlook.com>
|
||||
---
|
||||
dlls/kernel32/tests/console.c | 64 +++++++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 64 insertions(+)
|
||||
|
||||
diff --git a/dlls/kernel32/tests/console.c b/dlls/kernel32/tests/console.c
|
||||
index 3ba1da5..f362415 100644
|
||||
--- a/dlls/kernel32/tests/console.c
|
||||
+++ b/dlls/kernel32/tests/console.c
|
||||
@@ -2681,6 +2681,69 @@ static void test_GetConsoleFontSize(HANDLE std_output)
|
||||
ok(!c.Y, "got %d, expected 0\n", c.Y);
|
||||
}
|
||||
|
||||
+static void test_GetLargestConsoleWindowSize(HANDLE std_output)
|
||||
+{
|
||||
+ COORD c, font;
|
||||
+ RECT r;
|
||||
+ LONG workarea_w, workarea_h, maxcon_w, maxcon_h;
|
||||
+ CONSOLE_FONT_INFO cfi;
|
||||
+ DWORD index, i;
|
||||
+ HMODULE hmod;
|
||||
+ DWORD (WINAPI *pGetNumberOfConsoleFonts)(void);
|
||||
+ BOOL (WINAPI *pSetConsoleFont)(HANDLE, DWORD);
|
||||
+
|
||||
+ memset(&c, 10, sizeof(COORD));
|
||||
+ SetLastError(0xdeadbeef);
|
||||
+ c = GetLargestConsoleWindowSize(NULL);
|
||||
+ ok(GetLastError() == ERROR_INVALID_HANDLE, "got %u, expected 6\n", GetLastError());
|
||||
+ ok(!c.X, "got %d, expected 0\n", c.X);
|
||||
+ ok(!c.Y, "got %d, expected 0\n", c.Y);
|
||||
+
|
||||
+ memset(&c, 10, sizeof(COORD));
|
||||
+ SetLastError(0xdeadbeef);
|
||||
+ c = GetLargestConsoleWindowSize(GetStdHandle(STD_INPUT_HANDLE));
|
||||
+ ok(GetLastError() == ERROR_INVALID_HANDLE, "got %u, expected 6\n", GetLastError());
|
||||
+ ok(!c.X, "got %d, expected 0\n", c.X);
|
||||
+ ok(!c.Y, "got %d, expected 0\n", c.Y);
|
||||
+
|
||||
+ SystemParametersInfoW(SPI_GETWORKAREA, 0, &r, 0);
|
||||
+ workarea_w = r.right - r.left;
|
||||
+ workarea_h = r.bottom - r.top - GetSystemMetrics(SM_CYCAPTION);
|
||||
+
|
||||
+ GetCurrentConsoleFont(std_output, FALSE, &cfi);
|
||||
+ index = cfi.nFont; /* save current font index */
|
||||
+
|
||||
+ hmod = GetModuleHandleA("kernel32.dll");
|
||||
+ pGetNumberOfConsoleFonts = (void *)GetProcAddress(hmod, "GetNumberOfConsoleFonts");
|
||||
+ if (!pGetNumberOfConsoleFonts)
|
||||
+ {
|
||||
+ win_skip("GetNumberOfConsoleFonts is not available\n");
|
||||
+ return;
|
||||
+ }
|
||||
+ pSetConsoleFont = (void *)GetProcAddress(hmod, "SetConsoleFont");
|
||||
+ if (!pSetConsoleFont)
|
||||
+ {
|
||||
+ win_skip("SetConsoleFont is not available\n");
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ for (i = 0; i < pGetNumberOfConsoleFonts(); i++)
|
||||
+ {
|
||||
+ pSetConsoleFont(std_output, i);
|
||||
+ memset(&c, 10, sizeof(COORD));
|
||||
+ SetLastError(0xdeadbeef);
|
||||
+ c = GetLargestConsoleWindowSize(std_output);
|
||||
+ ok(GetLastError() == 0xdeadbeef, "got %u, expected 0xdeadbeef\n", GetLastError());
|
||||
+ GetCurrentConsoleFont(std_output, FALSE, &cfi);
|
||||
+ font = GetConsoleFontSize(std_output, cfi.nFont);
|
||||
+ maxcon_w = workarea_w / font.X;
|
||||
+ maxcon_h = workarea_h / font.Y;
|
||||
+ ok(c.X == maxcon_w || c.X == maxcon_w - 1 /* Win10 */, "got %d, expected %d\n", c.X, maxcon_w);
|
||||
+ ok(c.Y == maxcon_h || c.Y == maxcon_h - 1 /* Win10 */, "got %d, expected %d\n", c.Y, maxcon_h);
|
||||
+ }
|
||||
+ pSetConsoleFont(std_output, index); /* restore original font size */
|
||||
+}
|
||||
+
|
||||
START_TEST(console)
|
||||
{
|
||||
static const char font_name[] = "Lucida Console";
|
||||
@@ -2826,4 +2889,5 @@ START_TEST(console)
|
||||
test_ReadConsoleOutputAttribute(hConOut);
|
||||
test_GetCurrentConsoleFont(hConOut);
|
||||
test_GetConsoleFontSize(hConOut);
|
||||
+ test_GetLargestConsoleWindowSize(hConOut);
|
||||
}
|
||||
--
|
||||
2.6.2
|
||||
|
@ -1 +0,0 @@
|
||||
Fixes: [10919] Properly implement GetLargestConsoleWindowSize
|
@ -1,38 +0,0 @@
|
||||
From f7ea420c1ca707503214eba3c9bfce6719e66fdc Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Fri, 20 Jun 2014 21:16:39 +0200
|
||||
Subject: kernel32: Make GetLogicalProcessorInformationEx a stub which returns
|
||||
TRUE.
|
||||
|
||||
---
|
||||
dlls/kernel32/process.c | 14 ++++++++++++--
|
||||
1 file changed, 12 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/kernel32/process.c b/dlls/kernel32/process.c
|
||||
index b371e73..24da577 100644
|
||||
--- a/dlls/kernel32/process.c
|
||||
+++ b/dlls/kernel32/process.c
|
||||
@@ -3831,8 +3831,18 @@ BOOL WINAPI GetLogicalProcessorInformation(PSYSTEM_LOGICAL_PROCESSOR_INFORMATION
|
||||
BOOL WINAPI GetLogicalProcessorInformationEx(LOGICAL_PROCESSOR_RELATIONSHIP relationship, PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX buffer, PDWORD pBufLen)
|
||||
{
|
||||
FIXME("(%u,%p,%p): stub\n", relationship, buffer, pBufLen);
|
||||
- SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
||||
- return FALSE;
|
||||
+
|
||||
+ if (!pBufLen)
|
||||
+ {
|
||||
+ SetLastError(ERROR_INVALID_PARAMETER);
|
||||
+ return FALSE;
|
||||
+ }
|
||||
+
|
||||
+ /* MSDN says '[...] at least one SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX
|
||||
+ * structure is written to the output buffer.' - don't be surprised if this
|
||||
+ * stub doesn't work always. */
|
||||
+ *pBufLen = 0;
|
||||
+ return TRUE;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
--
|
||||
2.3.0
|
||||
|
@ -1 +0,0 @@
|
||||
Fixes: CPU-Z fails to start because GetLogicalProcessorInformationEx returns FALSE
|
@ -52,7 +52,7 @@ usage()
|
||||
# Get the upstream commit sha
|
||||
upstream_commit()
|
||||
{
|
||||
echo "f6998ea4ced8b2051df64dd81242416d903a90d7"
|
||||
echo "367b30d8278684aaff373f5666b78264137d7a8f"
|
||||
}
|
||||
|
||||
# Show version information
|
||||
@ -158,7 +158,6 @@ patch_enable_all ()
|
||||
enable_kernel32_FreeUserPhysicalPages="$1"
|
||||
enable_kernel32_GetFinalPathNameByHandle="$1"
|
||||
enable_kernel32_GetLargestConsoleWindowSize="$1"
|
||||
enable_kernel32_GetLogicalProcessorInformationEx="$1"
|
||||
enable_kernel32_LocaleNameToLCID="$1"
|
||||
enable_kernel32_Named_Pipe="$1"
|
||||
enable_kernel32_NeedCurrentDirectoryForExePath="$1"
|
||||
@ -589,9 +588,6 @@ patch_enable ()
|
||||
kernel32-GetLargestConsoleWindowSize)
|
||||
enable_kernel32_GetLargestConsoleWindowSize="$2"
|
||||
;;
|
||||
kernel32-GetLogicalProcessorInformationEx)
|
||||
enable_kernel32_GetLogicalProcessorInformationEx="$2"
|
||||
;;
|
||||
kernel32-LocaleNameToLCID)
|
||||
enable_kernel32_LocaleNameToLCID="$2"
|
||||
;;
|
||||
@ -3532,42 +3528,16 @@ fi
|
||||
|
||||
# Patchset kernel32-GetLargestConsoleWindowSize
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#10919] Properly implement GetLargestConsoleWindowSize
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/kernel32/console.c, dlls/kernel32/kernel32.spec, dlls/kernel32/tests/console.c, programs/wineconsole/wineconsole.c,
|
||||
# | server/console.c
|
||||
# | * dlls/kernel32/console.c, dlls/kernel32/tests/console.c
|
||||
# |
|
||||
if test "$enable_kernel32_GetLargestConsoleWindowSize" -eq 1; then
|
||||
patch_apply kernel32-GetLargestConsoleWindowSize/0001-wineconsole-Send-the-largest-console-window-size-inf.patch
|
||||
patch_apply kernel32-GetLargestConsoleWindowSize/0002-kernel32-Implement-GetLargestConsoleWindowSize.patch
|
||||
patch_apply kernel32-GetLargestConsoleWindowSize/0003-kernel32-Add-a-stub-for-SetConsoleFont.patch
|
||||
patch_apply kernel32-GetLargestConsoleWindowSize/0004-kernel32-tests-Refresh-the-console-to-clear-the-cons.patch
|
||||
patch_apply kernel32-GetLargestConsoleWindowSize/0005-kernel32-tests-Add-tests-for-GetLargestConsoleWindow.patch
|
||||
patch_apply kernel32-GetLargestConsoleWindowSize/0006-kernel32-Clamp-maximum-window-size-to-screen-buffer-.patch
|
||||
patch_apply kernel32-GetLargestConsoleWindowSize/0001-kernel32-Clamp-maximum-window-size-to-screen-buffer-.patch
|
||||
(
|
||||
echo '+ { "Hugh McMaster", "wineconsole: Send the largest console window size information to the server.", 1 },';
|
||||
echo '+ { "Hugh McMaster", "kernel32: Implement GetLargestConsoleWindowSize.", 1 },';
|
||||
echo '+ { "Hugh McMaster", "kernel32: Add a stub for SetConsoleFont.", 1 },';
|
||||
echo '+ { "Hugh McMaster", "kernel32/tests: Refresh the console to clear the console font table.", 1 },';
|
||||
echo '+ { "Hugh McMaster", "kernel32/tests: Add tests for GetLargestConsoleWindowSize.", 1 },';
|
||||
echo '+ { "Sebastian Lackner", "kernel32: Clamp maximum window size to screen buffer size.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset kernel32-GetLogicalProcessorInformationEx
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/kernel32/process.c
|
||||
# |
|
||||
if test "$enable_kernel32_GetLogicalProcessorInformationEx" -eq 1; then
|
||||
patch_apply kernel32-GetLogicalProcessorInformationEx/0001-kernel32-Make-GetLogicalProcessorInformationEx-a-stu.patch
|
||||
(
|
||||
echo '+ { "Sebastian Lackner", "kernel32: Make GetLogicalProcessorInformationEx a stub which returns TRUE.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset kernel32-LocaleNameToLCID
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
@ -6110,7 +6080,6 @@ if test "$enable_wined3d_CSMT_Main" -eq 1; then
|
||||
patch_apply wined3d-CSMT_Main/0022-wined3d-Discard-implicit-surfaces-on-unload.patch
|
||||
patch_apply wined3d-CSMT_Main/0023-wined3d-Don-t-try-to-flip-sysmem-copies-in-swapchain.patch
|
||||
patch_apply wined3d-CSMT_Main/0024-wined3d-Discard-the-backbuffer-in-discard-presents.patch
|
||||
patch_apply wined3d-CSMT_Main/0025-wined3d-Allocate-sysmem-for-client-storage-if-it-doe.patch
|
||||
patch_apply wined3d-CSMT_Main/0026-wined3d-Introduce-a-function-to-retrieve-resource-me.patch
|
||||
patch_apply wined3d-CSMT_Main/0027-wined3d-Make-surface_ops-unmap-specific-for-front-bu.patch
|
||||
patch_apply wined3d-CSMT_Main/0028-wined3d-Move-check_block_align-to-resource.c.patch
|
||||
@ -6120,7 +6089,6 @@ if test "$enable_wined3d_CSMT_Main" -eq 1; then
|
||||
patch_apply wined3d-CSMT_Main/0032-wined3d-Move-simple-location-copying-to-the-resource.patch
|
||||
patch_apply wined3d-CSMT_Main/0033-wined3d-Move-most-of-volume_map-to-resource.c.patch
|
||||
patch_apply wined3d-CSMT_Main/0034-wined3d-Use-resource_map-for-surface_map.patch
|
||||
patch_apply wined3d-CSMT_Main/0035-wined3d-Use-client-storage-with-DIB-sections.patch
|
||||
patch_apply wined3d-CSMT_Main/0036-wined3d-Don-t-call-the-public-map-function-in-surfac.patch
|
||||
patch_apply wined3d-CSMT_Main/0037-wined3d-Don-t-call-the-public-map-function-in-surfac.patch
|
||||
patch_apply wined3d-CSMT_Main/0038-wined3d-Move-the-framebuffer-into-wined3d_state.patch
|
||||
@ -6284,7 +6252,6 @@ if test "$enable_wined3d_CSMT_Main" -eq 1; then
|
||||
echo '+ { "Stefan Dösinger", "wined3d: Discard implicit surfaces on unload.", 1 },';
|
||||
echo '+ { "Stefan Dösinger", "wined3d: Don'\''t try to flip sysmem copies in swapchain_present.", 1 },';
|
||||
echo '+ { "Stefan Dösinger", "wined3d: Discard the backbuffer in discard presents.", 1 },';
|
||||
echo '+ { "Stefan Dösinger", "wined3d: Allocate sysmem for client storage if it doesn'\''t exist already.", 1 },';
|
||||
echo '+ { "Stefan Dösinger", "wined3d: Introduce a function to retrieve resource memory.", 1 },';
|
||||
echo '+ { "Stefan Dösinger", "wined3d: Make surface_ops->unmap specific for front buffers.", 1 },';
|
||||
echo '+ { "Stefan Dösinger", "wined3d: Move check_block_align to resource.c.", 1 },';
|
||||
@ -6294,7 +6261,6 @@ if test "$enable_wined3d_CSMT_Main" -eq 1; then
|
||||
echo '+ { "Stefan Dösinger", "wined3d: Move simple location copying to the resource.", 1 },';
|
||||
echo '+ { "Stefan Dösinger", "wined3d: Move most of volume_map to resource.c.", 1 },';
|
||||
echo '+ { "Stefan Dösinger", "wined3d: Use resource_map for surface_map.", 1 },';
|
||||
echo '+ { "Stefan Dösinger", "wined3d: Use client storage with DIB sections.", 1 },';
|
||||
echo '+ { "Stefan Dösinger", "wined3d: Don'\''t call the public map function in surface_convert_format.", 1 },';
|
||||
echo '+ { "Stefan Dösinger", "wined3d: Don'\''t call the public map function in surface_cpu_blt.", 1 },';
|
||||
echo '+ { "Stefan Dösinger", "wined3d: Move the framebuffer into wined3d_state.", 1 },';
|
||||
|
@ -1,15 +1,15 @@
|
||||
From 81726de3e2c63759ff771038ec1a829758314bc7 Mon Sep 17 00:00:00 2001
|
||||
From d9832814763ffc0c5b9f43223507f049a60859f5 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Thu, 3 Oct 2013 12:31:24 +0200
|
||||
Subject: wined3d: Store volume locations in the resource.
|
||||
|
||||
---
|
||||
dlls/wined3d/volume.c | 46 +++++++++++++++++++++---------------------
|
||||
dlls/wined3d/wined3d_private.h | 5 +++--
|
||||
2 files changed, 26 insertions(+), 25 deletions(-)
|
||||
dlls/wined3d/wined3d_private.h | 4 ++--
|
||||
2 files changed, 25 insertions(+), 25 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/volume.c b/dlls/wined3d/volume.c
|
||||
index 1a5e629..5f5fe8b 100644
|
||||
index c4bd3e7..d9405b9 100644
|
||||
--- a/dlls/wined3d/volume.c
|
||||
+++ b/dlls/wined3d/volume.c
|
||||
@@ -102,15 +102,15 @@ void wined3d_volume_upload_data(struct wined3d_volume *volume, const struct wine
|
||||
@ -32,7 +32,7 @@ index 1a5e629..5f5fe8b 100644
|
||||
}
|
||||
|
||||
/* Context activation is done by the caller. */
|
||||
@@ -218,9 +218,9 @@ static void wined3d_volume_load_location(struct wined3d_volume *volume,
|
||||
@@ -216,9 +216,9 @@ static void wined3d_volume_load_location(struct wined3d_volume *volume,
|
||||
DWORD required_access = volume_access_from_location(location);
|
||||
|
||||
TRACE("Volume %p, loading %s, have %s.\n", volume, wined3d_debug_location(location),
|
||||
@ -44,7 +44,7 @@ index 1a5e629..5f5fe8b 100644
|
||||
{
|
||||
TRACE("Location(s) already up to date.\n");
|
||||
return;
|
||||
@@ -243,36 +243,36 @@ static void wined3d_volume_load_location(struct wined3d_volume *volume,
|
||||
@@ -241,36 +241,36 @@ static void wined3d_volume_load_location(struct wined3d_volume *volume,
|
||||
&& !(volume->container->flags & WINED3D_TEXTURE_SRGB_ALLOCATED)))
|
||||
ERR("Trying to load (s)RGB texture without prior allocation.\n");
|
||||
|
||||
@ -87,7 +87,7 @@ index 1a5e629..5f5fe8b 100644
|
||||
return;
|
||||
}
|
||||
wined3d_volume_validate_location(volume, location);
|
||||
@@ -286,16 +286,16 @@ static void wined3d_volume_load_location(struct wined3d_volume *volume,
|
||||
@@ -284,16 +284,16 @@ static void wined3d_volume_load_location(struct wined3d_volume *volume,
|
||||
if (!volume->resource.heap_memory)
|
||||
ERR("Trying to load WINED3D_LOCATION_SYSMEM without setting it up first.\n");
|
||||
|
||||
@ -107,7 +107,7 @@ index 1a5e629..5f5fe8b 100644
|
||||
wined3d_texture_bind_and_dirtify(volume->container, context, FALSE);
|
||||
else
|
||||
wined3d_texture_bind_and_dirtify(volume->container, context, TRUE);
|
||||
@@ -306,7 +306,7 @@ static void wined3d_volume_load_location(struct wined3d_volume *volume,
|
||||
@@ -304,7 +304,7 @@ static void wined3d_volume_load_location(struct wined3d_volume *volume,
|
||||
else
|
||||
{
|
||||
FIXME("Implement WINED3D_LOCATION_SYSMEM loading from %s.\n",
|
||||
@ -116,7 +116,7 @@ index 1a5e629..5f5fe8b 100644
|
||||
return;
|
||||
}
|
||||
wined3d_volume_validate_location(volume, WINED3D_LOCATION_SYSMEM);
|
||||
@@ -316,16 +316,16 @@ static void wined3d_volume_load_location(struct wined3d_volume *volume,
|
||||
@@ -314,16 +314,16 @@ static void wined3d_volume_load_location(struct wined3d_volume *volume,
|
||||
if (!volume->pbo)
|
||||
ERR("Trying to load WINED3D_LOCATION_BUFFER without setting it up first.\n");
|
||||
|
||||
@ -136,7 +136,7 @@ index 1a5e629..5f5fe8b 100644
|
||||
wined3d_texture_bind_and_dirtify(volume->container, context, FALSE);
|
||||
else
|
||||
wined3d_texture_bind_and_dirtify(volume->container, context, TRUE);
|
||||
@@ -335,7 +335,7 @@ static void wined3d_volume_load_location(struct wined3d_volume *volume,
|
||||
@@ -333,7 +333,7 @@ static void wined3d_volume_load_location(struct wined3d_volume *volume,
|
||||
else
|
||||
{
|
||||
FIXME("Implement WINED3D_LOCATION_BUFFER loading from %s.\n",
|
||||
@ -145,7 +145,7 @@ index 1a5e629..5f5fe8b 100644
|
||||
return;
|
||||
}
|
||||
wined3d_volume_validate_location(volume, WINED3D_LOCATION_BUFFER);
|
||||
@@ -343,7 +343,7 @@ static void wined3d_volume_load_location(struct wined3d_volume *volume,
|
||||
@@ -341,7 +341,7 @@ static void wined3d_volume_load_location(struct wined3d_volume *volume,
|
||||
|
||||
default:
|
||||
FIXME("Implement %s loading from %s.\n", wined3d_debug_location(location),
|
||||
@ -154,7 +154,7 @@ index 1a5e629..5f5fe8b 100644
|
||||
}
|
||||
}
|
||||
|
||||
@@ -600,7 +600,7 @@ HRESULT CDECL wined3d_volume_map(struct wined3d_volume *volume,
|
||||
@@ -565,7 +565,7 @@ HRESULT wined3d_volume_map(struct wined3d_volume *volume,
|
||||
{
|
||||
wined3d_volume_validate_location(volume, WINED3D_LOCATION_SYSMEM);
|
||||
}
|
||||
@ -163,7 +163,7 @@ index 1a5e629..5f5fe8b 100644
|
||||
{
|
||||
context = context_acquire(device, NULL);
|
||||
wined3d_volume_load_location(volume, context, WINED3D_LOCATION_SYSMEM);
|
||||
@@ -748,7 +748,7 @@ static HRESULT volume_init(struct wined3d_volume *volume, struct wined3d_texture
|
||||
@@ -724,7 +724,7 @@ static HRESULT volume_init(struct wined3d_volume *volume, struct wined3d_texture
|
||||
}
|
||||
|
||||
volume->texture_level = level;
|
||||
@ -173,7 +173,7 @@ index 1a5e629..5f5fe8b 100644
|
||||
if (desc->pool == WINED3D_POOL_DEFAULT && desc->usage & WINED3DUSAGE_DYNAMIC
|
||||
&& gl_info->supported[ARB_PIXEL_BUFFER_OBJECT]
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index 254dfd7..f2d3943 100644
|
||||
index f4b06a4..b25ce65 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -5,7 +5,7 @@
|
||||
@ -185,7 +185,7 @@ index 254dfd7..f2d3943 100644
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
@@ -2123,6 +2123,7 @@ struct wined3d_resource
|
||||
@@ -2197,6 +2197,7 @@ struct wined3d_resource
|
||||
void *heap_memory;
|
||||
UINT custom_row_pitch, custom_slice_pitch;
|
||||
struct list resource_list_entry;
|
||||
@ -193,15 +193,14 @@ index 254dfd7..f2d3943 100644
|
||||
|
||||
void *parent;
|
||||
const struct wined3d_parent_ops *parent_ops;
|
||||
@@ -2271,7 +2272,7 @@ struct wined3d_volume
|
||||
@@ -2345,7 +2346,6 @@ struct wined3d_volume
|
||||
struct wined3d_resource resource;
|
||||
struct wined3d_texture *container;
|
||||
|
||||
- DWORD flags, locations;
|
||||
+ DWORD flags;
|
||||
- DWORD locations;
|
||||
GLint texture_level;
|
||||
DWORD download_count;
|
||||
GLuint pbo;
|
||||
--
|
||||
2.3.5
|
||||
2.6.4
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From c1235a5f6ed86eefc1b797df0836a1b61d6fceb7 Mon Sep 17 00:00:00 2001
|
||||
From cea59537439aaf4e67ad4c2f9a9eadd1d8e70c11 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Sat, 4 Jan 2014 01:02:15 +0100
|
||||
Subject: wined3d: Remove surface_invalidate_location.
|
||||
@ -15,10 +15,10 @@ Subject: wined3d: Remove surface_invalidate_location.
|
||||
8 files changed, 29 insertions(+), 41 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader.c
|
||||
index a87b09b..4df6e2f 100644
|
||||
index e22b558..c2a6a96 100644
|
||||
--- a/dlls/wined3d/arb_program_shader.c
|
||||
+++ b/dlls/wined3d/arb_program_shader.c
|
||||
@@ -7889,7 +7889,7 @@ static void arbfp_blit_surface(struct wined3d_device *device, DWORD filter,
|
||||
@@ -7895,7 +7895,7 @@ static void arbfp_blit_surface(struct wined3d_device *device, enum wined3d_blit_
|
||||
context_release(context);
|
||||
|
||||
wined3d_resource_validate_location(&dst_surface->resource, dst_surface->container->resource.draw_binding);
|
||||
@ -41,7 +41,7 @@ index 1e357e7..230946d 100644
|
||||
}
|
||||
|
||||
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
index 58edac3..143cf9c 100644
|
||||
index bacd887..a9ac2ca 100644
|
||||
--- a/dlls/wined3d/device.c
|
||||
+++ b/dlls/wined3d/device.c
|
||||
@@ -399,7 +399,7 @@ void device_clear_render_targets(struct wined3d_device *device, UINT rt_count, c
|
||||
@ -53,7 +53,7 @@ index 58edac3..143cf9c 100644
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4048,7 +4048,7 @@ void CDECL wined3d_device_update_sub_resource(struct wined3d_device *device, str
|
||||
@@ -4065,7 +4065,7 @@ void CDECL wined3d_device_update_sub_resource(struct wined3d_device *device, str
|
||||
context_release(context);
|
||||
|
||||
wined3d_resource_validate_location(&surface->resource, WINED3D_LOCATION_TEXTURE_RGB);
|
||||
@ -63,7 +63,7 @@ index 58edac3..143cf9c 100644
|
||||
|
||||
HRESULT CDECL wined3d_device_clear_rendertarget_view(struct wined3d_device *device,
|
||||
diff --git a/dlls/wined3d/drawprim.c b/dlls/wined3d/drawprim.c
|
||||
index 943a829..95245a9 100644
|
||||
index 75489db..9ba6ef7 100644
|
||||
--- a/dlls/wined3d/drawprim.c
|
||||
+++ b/dlls/wined3d/drawprim.c
|
||||
@@ -628,7 +628,7 @@ void draw_primitive(struct wined3d_device *device, UINT start_idx, UINT index_co
|
||||
@ -76,10 +76,10 @@ index 943a829..95245a9 100644
|
||||
else
|
||||
{
|
||||
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
index ad43381..7c0594f 100644
|
||||
index 728b4b2..374b1da 100644
|
||||
--- a/dlls/wined3d/surface.c
|
||||
+++ b/dlls/wined3d/surface.c
|
||||
@@ -599,7 +599,7 @@ static void surface_evict_sysmem(struct wined3d_surface *surface)
|
||||
@@ -597,7 +597,7 @@ static void surface_evict_sysmem(struct wined3d_surface *surface)
|
||||
return;
|
||||
|
||||
wined3d_resource_free_sysmem(&surface->resource);
|
||||
@ -87,8 +87,8 @@ index ad43381..7c0594f 100644
|
||||
+ wined3d_resource_invalidate_location(&surface->resource, WINED3D_LOCATION_SYSMEM);
|
||||
}
|
||||
|
||||
static void surface_release_client_storage(struct wined3d_surface *surface)
|
||||
@@ -1119,7 +1119,7 @@ static void surface_remove_pbo(struct wined3d_surface *surface, const struct win
|
||||
static BOOL surface_use_pbo(const struct wined3d_surface *surface)
|
||||
@@ -1095,7 +1095,7 @@ static void surface_remove_pbo(struct wined3d_surface *surface, const struct win
|
||||
checkGLcall("glDeleteBuffers(1, &surface->pbo)");
|
||||
|
||||
surface->pbo = 0;
|
||||
@ -97,7 +97,7 @@ index ad43381..7c0594f 100644
|
||||
}
|
||||
|
||||
static ULONG surface_resource_incref(struct wined3d_resource *resource)
|
||||
@@ -1159,21 +1159,21 @@ static void surface_unload(struct wined3d_resource *resource)
|
||||
@@ -1135,21 +1135,21 @@ static void surface_unload(struct wined3d_resource *resource)
|
||||
if (resource->usage & WINED3DUSAGE_DEPTHSTENCIL)
|
||||
{
|
||||
wined3d_resource_validate_location(&surface->resource, WINED3D_LOCATION_DISCARDED);
|
||||
@ -122,7 +122,7 @@ index ad43381..7c0594f 100644
|
||||
}
|
||||
|
||||
/* Destroy PBOs, but load them into real sysmem before */
|
||||
@@ -1224,7 +1224,10 @@ static HRESULT surface_resource_sub_resource_unmap(struct wined3d_resource *reso
|
||||
@@ -1200,7 +1200,10 @@ static HRESULT surface_resource_sub_resource_unmap(struct wined3d_resource *reso
|
||||
|
||||
static void wined3d_surface_location_invalidated(struct wined3d_resource *resource, DWORD location)
|
||||
{
|
||||
@ -134,7 +134,7 @@ index ad43381..7c0594f 100644
|
||||
}
|
||||
|
||||
static const struct wined3d_resource_ops surface_resource_ops =
|
||||
@@ -1702,7 +1705,7 @@ HRESULT surface_upload_from_surface(struct wined3d_surface *dst_surface, const P
|
||||
@@ -1678,7 +1681,7 @@ HRESULT surface_upload_from_surface(struct wined3d_surface *dst_surface, const P
|
||||
context_release(context);
|
||||
|
||||
wined3d_resource_validate_location(&dst_surface->resource, WINED3D_LOCATION_TEXTURE_RGB);
|
||||
@ -143,7 +143,7 @@ index ad43381..7c0594f 100644
|
||||
|
||||
return WINED3D_OK;
|
||||
}
|
||||
@@ -2702,7 +2705,7 @@ HRESULT CDECL wined3d_surface_map(struct wined3d_surface *surface,
|
||||
@@ -2678,7 +2681,7 @@ HRESULT CDECL wined3d_surface_map(struct wined3d_surface *surface,
|
||||
}
|
||||
|
||||
if (!(flags & (WINED3D_MAP_NO_DIRTY_UPDATE | WINED3D_MAP_READONLY)))
|
||||
@ -152,7 +152,7 @@ index ad43381..7c0594f 100644
|
||||
|
||||
switch (surface->resource.map_binding)
|
||||
{
|
||||
@@ -2818,7 +2821,7 @@ HRESULT CDECL wined3d_surface_getdc(struct wined3d_surface *surface, HDC *dc)
|
||||
@@ -2788,7 +2791,7 @@ HRESULT CDECL wined3d_surface_getdc(struct wined3d_surface *surface, HDC *dc)
|
||||
}
|
||||
|
||||
surface_load_location(surface, context, WINED3D_LOCATION_DIB);
|
||||
@ -161,7 +161,7 @@ index ad43381..7c0594f 100644
|
||||
|
||||
if (context)
|
||||
context_release(context);
|
||||
@@ -2867,7 +2870,7 @@ HRESULT CDECL wined3d_surface_releasedc(struct wined3d_surface *surface, HDC dc)
|
||||
@@ -2837,7 +2840,7 @@ HRESULT CDECL wined3d_surface_releasedc(struct wined3d_surface *surface, HDC dc)
|
||||
context = context_acquire(device, NULL);
|
||||
|
||||
surface_load_location(surface, context, surface->resource.map_binding);
|
||||
@ -170,7 +170,7 @@ index ad43381..7c0594f 100644
|
||||
if (context)
|
||||
context_release(context);
|
||||
}
|
||||
@@ -3174,7 +3177,7 @@ static void fb_copy_to_texture_direct(struct wined3d_surface *dst_surface, struc
|
||||
@@ -3144,7 +3147,7 @@ static void fb_copy_to_texture_direct(struct wined3d_surface *dst_surface, struc
|
||||
/* The texture is now most up to date - If the surface is a render target
|
||||
* and has a drawable, this path is never entered. */
|
||||
wined3d_resource_validate_location(&dst_surface->resource, WINED3D_LOCATION_TEXTURE_RGB);
|
||||
@ -179,7 +179,7 @@ index ad43381..7c0594f 100644
|
||||
}
|
||||
|
||||
/* Uses the hardware to stretch and flip the image */
|
||||
@@ -3242,7 +3245,7 @@ static void fb_copy_to_texture_hwstretch(struct wined3d_surface *dst_surface, st
|
||||
@@ -3212,7 +3215,7 @@ static void fb_copy_to_texture_hwstretch(struct wined3d_surface *dst_surface, st
|
||||
checkGLcall("glEnable(texture_target)");
|
||||
|
||||
/* For now invalidate the texture copy of the back buffer. Drawable and sysmem copy are untouched */
|
||||
@ -188,7 +188,7 @@ index ad43381..7c0594f 100644
|
||||
}
|
||||
|
||||
/* Make sure that the top pixel is always above the bottom pixel, and keep a separate upside down flag
|
||||
@@ -3447,7 +3450,7 @@ static void fb_copy_to_texture_hwstretch(struct wined3d_surface *dst_surface, st
|
||||
@@ -3417,7 +3420,7 @@ static void fb_copy_to_texture_hwstretch(struct wined3d_surface *dst_surface, st
|
||||
/* The texture is now most up to date - If the surface is a render target
|
||||
* and has a drawable, this path is never entered. */
|
||||
wined3d_resource_validate_location(&dst_surface->resource, WINED3D_LOCATION_TEXTURE_RGB);
|
||||
@ -197,7 +197,7 @@ index ad43381..7c0594f 100644
|
||||
}
|
||||
|
||||
/* Front buffer coordinates are always full screen coordinates, but our GL
|
||||
@@ -3924,18 +3927,6 @@ void surface_load_ds_location(struct wined3d_surface *surface, struct wined3d_co
|
||||
@@ -3894,18 +3897,6 @@ void surface_load_ds_location(struct wined3d_surface *surface, struct wined3d_co
|
||||
surface->ds_current_size.cy = surface->resource.height;
|
||||
}
|
||||
|
||||
@ -216,7 +216,7 @@ index ad43381..7c0594f 100644
|
||||
static DWORD resource_access_from_location(DWORD location)
|
||||
{
|
||||
switch (location)
|
||||
@@ -4493,7 +4484,7 @@ static void ffp_blit_blit_surface(struct wined3d_device *device, DWORD filter,
|
||||
@@ -4472,7 +4463,7 @@ static void ffp_blit_blit_surface(struct wined3d_device *device, enum wined3d_bl
|
||||
(old_color_key_flags & WINED3D_CKEY_SRC_BLT) ? &old_blt_key : NULL);
|
||||
|
||||
wined3d_resource_validate_location(&dst_surface->resource, dst_surface->container->resource.draw_binding);
|
||||
@ -225,7 +225,7 @@ index ad43381..7c0594f 100644
|
||||
}
|
||||
|
||||
const struct blit_shader ffp_blit = {
|
||||
@@ -5474,7 +5465,7 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC
|
||||
@@ -5458,7 +5449,7 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC
|
||||
context_release(context);
|
||||
|
||||
wined3d_resource_validate_location(&dst_surface->resource, dst_surface->container->resource.draw_binding);
|
||||
@ -234,7 +234,7 @@ index ad43381..7c0594f 100644
|
||||
|
||||
return WINED3D_OK;
|
||||
}
|
||||
@@ -5596,7 +5587,7 @@ static HRESULT surface_init(struct wined3d_surface *surface, struct wined3d_text
|
||||
@@ -5581,7 +5572,7 @@ static HRESULT surface_init(struct wined3d_surface *surface, struct wined3d_text
|
||||
{
|
||||
wined3d_resource_free_sysmem(&surface->resource);
|
||||
wined3d_resource_validate_location(&surface->resource, WINED3D_LOCATION_DIB);
|
||||
@ -244,10 +244,10 @@ index ad43381..7c0594f 100644
|
||||
|
||||
return hr;
|
||||
diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c
|
||||
index 9758be4..4e50ef9 100644
|
||||
index 68f12e5..2797067 100644
|
||||
--- a/dlls/wined3d/swapchain.c
|
||||
+++ b/dlls/wined3d/swapchain.c
|
||||
@@ -518,7 +518,7 @@ static void swapchain_gl_present(struct wined3d_swapchain *swapchain, const RECT
|
||||
@@ -526,7 +526,7 @@ static void swapchain_gl_present(struct wined3d_swapchain *swapchain, const RECT
|
||||
if (!swapchain->render_to_fbo && render_to_fbo && wined3d_settings.offscreen_rendering_mode == ORM_FBO)
|
||||
{
|
||||
surface_load_location(back_buffer, context, WINED3D_LOCATION_TEXTURE_RGB);
|
||||
@ -256,7 +256,7 @@ index 9758be4..4e50ef9 100644
|
||||
swapchain->render_to_fbo = TRUE;
|
||||
swapchain_update_draw_bindings(swapchain);
|
||||
}
|
||||
@@ -563,7 +563,7 @@ static void swapchain_gl_present(struct wined3d_swapchain *swapchain, const RECT
|
||||
@@ -571,7 +571,7 @@ static void swapchain_gl_present(struct wined3d_swapchain *swapchain, const RECT
|
||||
front = surface_from_resource(wined3d_texture_get_sub_resource(swapchain->front_buffer, 0));
|
||||
|
||||
wined3d_resource_validate_location(&front->resource, WINED3D_LOCATION_DRAWABLE);
|
||||
@ -265,7 +265,7 @@ index 9758be4..4e50ef9 100644
|
||||
/* If the swapeffect is DISCARD, the back buffer is undefined. That means the SYSMEM
|
||||
* and INTEXTURE copies can keep their old content if they have any defined content.
|
||||
* If the swapeffect is COPY, the content remains the same.
|
||||
@@ -836,7 +836,7 @@ static HRESULT swapchain_init(struct wined3d_swapchain *swapchain, struct wined3
|
||||
@@ -844,7 +844,7 @@ static HRESULT swapchain_init(struct wined3d_swapchain *swapchain, struct wined3
|
||||
if (!(device->wined3d->flags & WINED3D_NO3D))
|
||||
{
|
||||
wined3d_resource_validate_location(&front_buffer->resource, WINED3D_LOCATION_DRAWABLE);
|
||||
@ -275,7 +275,7 @@ index 9758be4..4e50ef9 100644
|
||||
|
||||
/* MSDN says we're only allowed a single fullscreen swapchain per device,
|
||||
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
|
||||
index 7e31832..be378fc 100644
|
||||
index 8f4c625..b6d21cb 100644
|
||||
--- a/dlls/wined3d/texture.c
|
||||
+++ b/dlls/wined3d/texture.c
|
||||
@@ -776,7 +776,7 @@ static void texture2d_sub_resource_add_dirty_region(struct wined3d_resource *sub
|
||||
@ -299,10 +299,10 @@ index 7e31832..be378fc 100644
|
||||
|
||||
static void texture2d_sub_resource_validate_location(struct wined3d_resource *sub_resource, DWORD location)
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index ed013a9..54f95e3 100644
|
||||
index 0a10b6b..ac43834 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -2458,7 +2458,6 @@ HRESULT surface_color_fill(struct wined3d_surface *s,
|
||||
@@ -2460,7 +2460,6 @@ HRESULT surface_color_fill(struct wined3d_surface *s,
|
||||
GLenum surface_get_gl_buffer(const struct wined3d_surface *surface) DECLSPEC_HIDDEN;
|
||||
void surface_get_drawable_size(const struct wined3d_surface *surface, const struct wined3d_context *context,
|
||||
unsigned int *width, unsigned int *height) DECLSPEC_HIDDEN;
|
||||
@ -311,5 +311,5 @@ index ed013a9..54f95e3 100644
|
||||
void surface_load_ds_location(struct wined3d_surface *surface,
|
||||
struct wined3d_context *context, DWORD location) DECLSPEC_HIDDEN;
|
||||
--
|
||||
2.6.2
|
||||
2.6.4
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From b26629e64f25b8a3a431f7b784fc4d70d1539c48 Mon Sep 17 00:00:00 2001
|
||||
From b7612231d57a3c77fc57a24690d14d118791824a Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Sun, 17 Nov 2013 20:33:17 +0100
|
||||
Subject: wined3d: Replace surface_load_location with resource_load_location.
|
||||
@ -8,17 +8,17 @@ FIXME: Check if this patch is complete enough to make sense.
|
||||
dlls/wined3d/context.c | 2 +-
|
||||
dlls/wined3d/device.c | 4 +-
|
||||
dlls/wined3d/drawprim.c | 2 +-
|
||||
dlls/wined3d/surface.c | 115 +++++++++++++----------------------------
|
||||
dlls/wined3d/surface.c | 113 +++++++++++++----------------------------
|
||||
dlls/wined3d/swapchain.c | 8 +--
|
||||
dlls/wined3d/texture.c | 2 +-
|
||||
dlls/wined3d/wined3d_private.h | 2 -
|
||||
7 files changed, 46 insertions(+), 89 deletions(-)
|
||||
7 files changed, 45 insertions(+), 88 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
|
||||
index 52fb407..15a2dc3 100644
|
||||
index 230946d..1325dc9 100644
|
||||
--- a/dlls/wined3d/context.c
|
||||
+++ b/dlls/wined3d/context.c
|
||||
@@ -2287,7 +2287,7 @@ static void context_validate_onscreen_formats(struct wined3d_context *context,
|
||||
@@ -2292,7 +2292,7 @@ static void context_validate_onscreen_formats(struct wined3d_context *context,
|
||||
WARN("Depth stencil format is not supported by WGL, rendering the backbuffer in an FBO\n");
|
||||
|
||||
/* The currently active context is the necessary context to access the swapchain's onscreen buffers */
|
||||
@ -28,10 +28,10 @@ index 52fb407..15a2dc3 100644
|
||||
swapchain_update_draw_bindings(swapchain);
|
||||
context_set_render_offscreen(context, TRUE);
|
||||
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
|
||||
index 77ea1e9..367dc22 100644
|
||||
index a9ac2ca..0a07197 100644
|
||||
--- a/dlls/wined3d/device.c
|
||||
+++ b/dlls/wined3d/device.c
|
||||
@@ -323,7 +323,7 @@ void device_clear_render_targets(struct wined3d_device *device, UINT rt_count, c
|
||||
@@ -324,7 +324,7 @@ void device_clear_render_targets(struct wined3d_device *device, UINT rt_count, c
|
||||
if (rt && rt->resource.format->id != WINED3DFMT_NULL)
|
||||
{
|
||||
if (flags & WINED3DCLEAR_TARGET && !is_full_clear(target, draw_rect, clear_rect))
|
||||
@ -40,7 +40,7 @@ index 77ea1e9..367dc22 100644
|
||||
else
|
||||
wined3d_surface_prepare(rt, context, rt->container->resource.draw_binding);
|
||||
}
|
||||
@@ -4010,7 +4010,7 @@ void CDECL wined3d_device_update_sub_resource(struct wined3d_device *device, str
|
||||
@@ -4056,7 +4056,7 @@ void CDECL wined3d_device_update_sub_resource(struct wined3d_device *device, str
|
||||
&& src_rect.bottom == sub_resource->height)
|
||||
wined3d_texture_prepare_texture(texture, context, FALSE);
|
||||
else
|
||||
@ -50,7 +50,7 @@ index 77ea1e9..367dc22 100644
|
||||
|
||||
wined3d_surface_upload_data(surface, gl_info, resource->format,
|
||||
diff --git a/dlls/wined3d/drawprim.c b/dlls/wined3d/drawprim.c
|
||||
index 95245a9..4b01b7d 100644
|
||||
index 9ba6ef7..0afeff9 100644
|
||||
--- a/dlls/wined3d/drawprim.c
|
||||
+++ b/dlls/wined3d/drawprim.c
|
||||
@@ -627,7 +627,7 @@ void draw_primitive(struct wined3d_device *device, UINT start_idx, UINT index_co
|
||||
@ -63,10 +63,10 @@ index 95245a9..4b01b7d 100644
|
||||
}
|
||||
else
|
||||
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
index 9aff2f2..421b1ed 100644
|
||||
index 032d284..2d87c08 100644
|
||||
--- a/dlls/wined3d/surface.c
|
||||
+++ b/dlls/wined3d/surface.c
|
||||
@@ -759,7 +759,7 @@ static void surface_unmap(struct wined3d_surface *surface)
|
||||
@@ -735,7 +735,7 @@ static void surface_unmap(struct wined3d_surface *surface)
|
||||
|
||||
if (device->d3d_initialized)
|
||||
context = context_acquire(device, surface);
|
||||
@ -75,7 +75,7 @@ index 9aff2f2..421b1ed 100644
|
||||
if (context)
|
||||
context_release(context);
|
||||
}
|
||||
@@ -825,9 +825,9 @@ static void surface_depth_blt_fbo(const struct wined3d_device *device,
|
||||
@@ -801,9 +801,9 @@ static void surface_depth_blt_fbo(const struct wined3d_device *device,
|
||||
|
||||
/* Make sure the locations are up-to-date. Loading the destination
|
||||
* surface isn't required if the entire surface is overwritten. */
|
||||
@ -87,7 +87,7 @@ index 9aff2f2..421b1ed 100644
|
||||
else
|
||||
wined3d_surface_prepare(dst_surface, context, dst_location);
|
||||
|
||||
@@ -918,9 +918,9 @@ static void surface_blt_fbo(const struct wined3d_device *device,
|
||||
@@ -894,9 +894,9 @@ static void surface_blt_fbo(const struct wined3d_device *device,
|
||||
* surface isn't required if the entire surface is overwritten. (And is
|
||||
* in fact harmful if we're being called by surface_load_location() with
|
||||
* the purpose of loading the destination surface.) */
|
||||
@ -99,7 +99,7 @@ index 9aff2f2..421b1ed 100644
|
||||
else
|
||||
wined3d_surface_prepare(dst_surface, old_ctx, dst_location);
|
||||
|
||||
@@ -1178,7 +1178,7 @@ static void surface_unload(struct wined3d_resource *resource)
|
||||
@@ -1148,7 +1148,7 @@ static void surface_unload(struct wined3d_resource *resource)
|
||||
else
|
||||
{
|
||||
surface_prepare_map_memory(surface);
|
||||
@ -108,7 +108,7 @@ index 9aff2f2..421b1ed 100644
|
||||
wined3d_resource_invalidate_location(&surface->resource, ~surface->resource.map_binding);
|
||||
}
|
||||
|
||||
@@ -1236,24 +1236,6 @@ static void wined3d_surface_location_invalidated(struct wined3d_resource *resour
|
||||
@@ -1206,24 +1206,6 @@ static void wined3d_surface_location_invalidated(struct wined3d_resource *resour
|
||||
wined3d_texture_set_dirty(surface->container);
|
||||
}
|
||||
|
||||
@ -133,7 +133,7 @@ index 9aff2f2..421b1ed 100644
|
||||
static const struct wined3d_surface_ops surface_ops =
|
||||
{
|
||||
surface_private_setup,
|
||||
@@ -1707,7 +1689,7 @@ HRESULT surface_upload_from_surface(struct wined3d_surface *dst_surface, const P
|
||||
@@ -1677,7 +1659,7 @@ HRESULT surface_upload_from_surface(struct wined3d_surface *dst_surface, const P
|
||||
if (update_w == dst_w && update_h == dst_h)
|
||||
wined3d_texture_prepare_texture(dst_surface->container, context, FALSE);
|
||||
else
|
||||
@ -142,7 +142,7 @@ index 9aff2f2..421b1ed 100644
|
||||
wined3d_texture_bind_and_dirtify(dst_surface->container, context, FALSE);
|
||||
|
||||
surface_get_memory(src_surface, &data, src_surface->resource.locations);
|
||||
@@ -1840,7 +1822,7 @@ void surface_load(struct wined3d_surface *surface, struct wined3d_context *conte
|
||||
@@ -1810,7 +1792,7 @@ void surface_load(struct wined3d_surface *surface, struct wined3d_context *conte
|
||||
}
|
||||
TRACE("Reloading because surface is dirty.\n");
|
||||
|
||||
@ -151,7 +151,7 @@ index 9aff2f2..421b1ed 100644
|
||||
surface_evict_sysmem(surface);
|
||||
}
|
||||
|
||||
@@ -2729,7 +2711,7 @@ HRESULT CDECL wined3d_surface_map(struct wined3d_surface *surface,
|
||||
@@ -2683,7 +2665,7 @@ HRESULT CDECL wined3d_surface_map(struct wined3d_surface *surface,
|
||||
|
||||
if (surface->resource.device->d3d_initialized)
|
||||
context = context_acquire(surface->resource.device, NULL);
|
||||
@ -160,16 +160,7 @@ index 9aff2f2..421b1ed 100644
|
||||
if (context)
|
||||
context_release(context);
|
||||
}
|
||||
@@ -2834,7 +2816,7 @@ HRESULT CDECL wined3d_surface_getdc(struct wined3d_surface *surface, HDC *dc)
|
||||
{
|
||||
if (surface->flags & SFLAG_CLIENT)
|
||||
{
|
||||
- surface_load_location(surface, context, WINED3D_LOCATION_SYSMEM);
|
||||
+ wined3d_resource_load_location(&surface->resource, context, WINED3D_LOCATION_SYSMEM);
|
||||
surface_release_client_storage(surface);
|
||||
}
|
||||
hr = surface_create_dib_section(surface);
|
||||
@@ -2850,7 +2832,7 @@ HRESULT CDECL wined3d_surface_getdc(struct wined3d_surface *surface, HDC *dc)
|
||||
@@ -2798,7 +2780,7 @@ HRESULT CDECL wined3d_surface_getdc(struct wined3d_surface *surface, HDC *dc)
|
||||
surface->resource.map_binding = WINED3D_LOCATION_DIB;
|
||||
}
|
||||
|
||||
@ -178,7 +169,7 @@ index 9aff2f2..421b1ed 100644
|
||||
wined3d_resource_invalidate_location(&surface->resource, ~WINED3D_LOCATION_DIB);
|
||||
|
||||
if (context)
|
||||
@@ -2899,7 +2881,7 @@ HRESULT CDECL wined3d_surface_releasedc(struct wined3d_surface *surface, HDC dc)
|
||||
@@ -2847,7 +2829,7 @@ HRESULT CDECL wined3d_surface_releasedc(struct wined3d_surface *surface, HDC dc)
|
||||
if (device->d3d_initialized)
|
||||
context = context_acquire(device, NULL);
|
||||
|
||||
@ -187,7 +178,7 @@ index 9aff2f2..421b1ed 100644
|
||||
wined3d_resource_invalidate_location(&surface->resource, WINED3D_LOCATION_DIB);
|
||||
if (context)
|
||||
context_release(context);
|
||||
@@ -3536,8 +3518,8 @@ static void surface_blt_to_drawable(const struct wined3d_device *device,
|
||||
@@ -3484,8 +3466,8 @@ static void surface_blt_to_drawable(const struct wined3d_device *device,
|
||||
gl_info = context->gl_info;
|
||||
|
||||
/* Make sure the surface is up-to-date. This should probably use
|
||||
@ -198,7 +189,7 @@ index 9aff2f2..421b1ed 100644
|
||||
wined3d_texture_load(src_surface->container, context, FALSE);
|
||||
|
||||
/* Activate the destination context, set it up for blitting */
|
||||
@@ -3957,29 +3939,6 @@ void surface_load_ds_location(struct wined3d_surface *surface, struct wined3d_co
|
||||
@@ -3905,29 +3887,6 @@ void surface_load_ds_location(struct wined3d_surface *surface, struct wined3d_co
|
||||
surface->ds_current_size.cy = surface->resource.height;
|
||||
}
|
||||
|
||||
@ -228,7 +219,7 @@ index 9aff2f2..421b1ed 100644
|
||||
static void surface_copy_simple_location(struct wined3d_surface *surface, DWORD location)
|
||||
{
|
||||
struct wined3d_device *device = surface->resource.device;
|
||||
@@ -4029,7 +3988,7 @@ static void surface_load_sysmem(struct wined3d_surface *surface,
|
||||
@@ -3977,7 +3936,7 @@ static void surface_load_sysmem(struct wined3d_surface *surface,
|
||||
}
|
||||
|
||||
if (surface->resource.locations & (WINED3D_LOCATION_RB_MULTISAMPLE | WINED3D_LOCATION_RB_RESOLVED))
|
||||
@ -237,7 +228,7 @@ index 9aff2f2..421b1ed 100644
|
||||
|
||||
/* Download the surface to system memory. */
|
||||
if (surface->resource.locations & (WINED3D_LOCATION_TEXTURE_RGB | WINED3D_LOCATION_TEXTURE_SRGB))
|
||||
@@ -4065,7 +4024,7 @@ static HRESULT surface_load_drawable(struct wined3d_surface *surface,
|
||||
@@ -4013,7 +3972,7 @@ static HRESULT surface_load_drawable(struct wined3d_surface *surface,
|
||||
}
|
||||
|
||||
surface_get_rect(surface, NULL, &r);
|
||||
@ -246,7 +237,7 @@ index 9aff2f2..421b1ed 100644
|
||||
surface_blt_to_drawable(surface->resource.device, context,
|
||||
WINED3D_TEXF_POINT, FALSE, surface, &r, surface, &r);
|
||||
|
||||
@@ -4138,7 +4097,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
|
||||
@@ -4086,7 +4045,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
|
||||
/* Performance warning... */
|
||||
FIXME("Downloading RGB surface %p to reload it as sRGB.\n", surface);
|
||||
surface_prepare_map_memory(surface);
|
||||
@ -255,7 +246,7 @@ index 9aff2f2..421b1ed 100644
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -4149,7 +4108,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
|
||||
@@ -4097,7 +4056,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
|
||||
/* Performance warning... */
|
||||
FIXME("Downloading sRGB surface %p to reload it as RGB.\n", surface);
|
||||
surface_prepare_map_memory(surface);
|
||||
@ -264,7 +255,7 @@ index 9aff2f2..421b1ed 100644
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4158,7 +4117,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
|
||||
@@ -4106,7 +4065,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
|
||||
WARN("Trying to load a texture from sysmem, but no simple location is valid.\n");
|
||||
/* Lets hope we get it from somewhere... */
|
||||
surface_prepare_system_memory(surface);
|
||||
@ -273,7 +264,7 @@ index 9aff2f2..421b1ed 100644
|
||||
}
|
||||
|
||||
wined3d_texture_prepare_texture(texture, context, srgb);
|
||||
@@ -4184,7 +4143,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
|
||||
@@ -4132,7 +4091,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
|
||||
surface->resource.map_binding = WINED3D_LOCATION_SYSMEM;
|
||||
|
||||
surface_prepare_map_memory(surface);
|
||||
@ -282,7 +273,7 @@ index 9aff2f2..421b1ed 100644
|
||||
surface_remove_pbo(surface, gl_info);
|
||||
}
|
||||
|
||||
@@ -4259,9 +4218,11 @@ static void surface_load_renderbuffer(struct wined3d_surface *surface, struct wi
|
||||
@@ -4207,9 +4166,11 @@ static void surface_load_renderbuffer(struct wined3d_surface *surface, struct wi
|
||||
surface, src_location, &rect, surface, dst_location, &rect);
|
||||
}
|
||||
|
||||
@ -296,7 +287,7 @@ index 9aff2f2..421b1ed 100644
|
||||
HRESULT hr;
|
||||
|
||||
TRACE("surface %p, location %s.\n", surface, wined3d_debug_location(location));
|
||||
@@ -4288,20 +4249,6 @@ void surface_load_location(struct wined3d_surface *surface, struct wined3d_conte
|
||||
@@ -4236,20 +4197,6 @@ void surface_load_location(struct wined3d_surface *surface, struct wined3d_conte
|
||||
}
|
||||
}
|
||||
|
||||
@ -317,7 +308,7 @@ index 9aff2f2..421b1ed 100644
|
||||
if (!surface->resource.locations)
|
||||
{
|
||||
ERR("Surface %p does not have any up to date location.\n", surface);
|
||||
@@ -5452,7 +5399,8 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC
|
||||
@@ -5413,7 +5360,8 @@ HRESULT CDECL wined3d_surface_blt(struct wined3d_surface *dst_surface, const REC
|
||||
if (!wined3d_resource_is_offscreen(&dst_surface->container->resource))
|
||||
{
|
||||
struct wined3d_context *context = context_acquire(device, dst_surface);
|
||||
@ -327,7 +318,7 @@ index 9aff2f2..421b1ed 100644
|
||||
context_release(context);
|
||||
}
|
||||
return WINED3D_OK;
|
||||
@@ -5525,6 +5473,17 @@ cpu:
|
||||
@@ -5487,6 +5435,17 @@ cpu:
|
||||
return surface_cpu_blt(dst_surface, &dst_rect, src_surface, &src_rect, flags, fx, filter);
|
||||
}
|
||||
|
||||
@ -346,7 +337,7 @@ index 9aff2f2..421b1ed 100644
|
||||
const struct wined3d_resource_desc *desc, GLenum target, unsigned int level, unsigned int layer, DWORD flags)
|
||||
{
|
||||
diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c
|
||||
index e87a209..b9bf4c1 100644
|
||||
index 5e2c515..7463ae2 100644
|
||||
--- a/dlls/wined3d/swapchain.c
|
||||
+++ b/dlls/wined3d/swapchain.c
|
||||
@@ -315,7 +315,7 @@ static void swapchain_blit(const struct wined3d_swapchain *swapchain,
|
||||
@ -358,7 +349,7 @@ index e87a209..b9bf4c1 100644
|
||||
}
|
||||
|
||||
context_apply_fbo_state_blit(context, GL_READ_FRAMEBUFFER, backbuffer, NULL, location);
|
||||
@@ -517,14 +517,14 @@ static void swapchain_gl_present(struct wined3d_swapchain *swapchain, const RECT
|
||||
@@ -525,14 +525,14 @@ static void swapchain_gl_present(struct wined3d_swapchain *swapchain, const RECT
|
||||
*/
|
||||
if (!swapchain->render_to_fbo && render_to_fbo && wined3d_settings.offscreen_rendering_mode == ORM_FBO)
|
||||
{
|
||||
@ -375,7 +366,7 @@ index e87a209..b9bf4c1 100644
|
||||
}
|
||||
|
||||
if (swapchain->render_to_fbo)
|
||||
@@ -617,7 +617,7 @@ void x11_copy_to_screen(const struct wined3d_swapchain *swapchain, const RECT *r
|
||||
@@ -625,7 +625,7 @@ void x11_copy_to_screen(const struct wined3d_swapchain *swapchain, const RECT *r
|
||||
|
||||
TRACE("Copying surface %p to screen.\n", front);
|
||||
|
||||
@ -385,7 +376,7 @@ index e87a209..b9bf4c1 100644
|
||||
src_dc = front->hDC;
|
||||
window = swapchain->win_handle;
|
||||
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
|
||||
index 2a183e8..29c7eec 100644
|
||||
index 71f1c47..e05238d 100644
|
||||
--- a/dlls/wined3d/texture.c
|
||||
+++ b/dlls/wined3d/texture.c
|
||||
@@ -774,7 +774,7 @@ static void texture2d_sub_resource_add_dirty_region(struct wined3d_resource *sub
|
||||
@ -398,10 +389,10 @@ index 2a183e8..29c7eec 100644
|
||||
wined3d_resource_invalidate_location(&surface->resource, ~surface->resource.map_binding);
|
||||
}
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index 031e684..879d5f0 100644
|
||||
index 6fa239e..a5af340 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -2466,8 +2466,6 @@ void surface_load_ds_location(struct wined3d_surface *surface,
|
||||
@@ -2468,8 +2468,6 @@ void surface_load_ds_location(struct wined3d_surface *surface,
|
||||
struct wined3d_context *context, DWORD location) DECLSPEC_HIDDEN;
|
||||
void surface_load_fb_texture(struct wined3d_surface *surface, BOOL srgb,
|
||||
struct wined3d_context *context) DECLSPEC_HIDDEN;
|
||||
@ -411,5 +402,5 @@ index 031e684..879d5f0 100644
|
||||
void wined3d_surface_prepare(struct wined3d_surface *surface, struct wined3d_context *context,
|
||||
DWORD location) DECLSPEC_HIDDEN;
|
||||
--
|
||||
2.6.2
|
||||
2.6.4
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 5b00654bc918a13d1c702d102de41bdaaf0dc360 Mon Sep 17 00:00:00 2001
|
||||
From 7131fa240dda38ce201e9e6dfa45ed3adbaf264d Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Thu, 16 Jan 2014 22:07:17 +0100
|
||||
Subject: wined3d: Move volume PBO infrastructure into the resource.
|
||||
@ -10,10 +10,10 @@ Subject: wined3d: Move volume PBO infrastructure into the resource.
|
||||
3 files changed, 83 insertions(+), 80 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c
|
||||
index 39df397..5f0a98e 100644
|
||||
index bff4997..16c4ab9 100644
|
||||
--- a/dlls/wined3d/resource.c
|
||||
+++ b/dlls/wined3d/resource.c
|
||||
@@ -373,7 +373,7 @@ GLbitfield wined3d_resource_gl_map_flags(DWORD d3d_flags)
|
||||
@@ -389,7 +389,7 @@ GLbitfield wined3d_resource_gl_map_flags(DWORD d3d_flags)
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -22,7 +22,7 @@ index 39df397..5f0a98e 100644
|
||||
{
|
||||
if (d3d_flags & WINED3D_MAP_READONLY)
|
||||
return GL_READ_ONLY_ARB;
|
||||
@@ -511,3 +511,65 @@ void wined3d_resource_load_location(struct wined3d_resource *resource,
|
||||
@@ -527,3 +527,65 @@ void wined3d_resource_load_location(struct wined3d_resource *resource,
|
||||
|
||||
resource->resource_ops->resource_load_location(resource, context, location);
|
||||
}
|
||||
@ -89,10 +89,10 @@ index 39df397..5f0a98e 100644
|
||||
+ }
|
||||
+}
|
||||
diff --git a/dlls/wined3d/volume.c b/dlls/wined3d/volume.c
|
||||
index af3f055..084e0e6 100644
|
||||
index c274eb7..78b153d 100644
|
||||
--- a/dlls/wined3d/volume.c
|
||||
+++ b/dlls/wined3d/volume.c
|
||||
@@ -218,7 +218,7 @@ static void wined3d_volume_load_location(struct wined3d_resource *resource,
|
||||
@@ -216,7 +216,7 @@ static void wined3d_volume_load_location(struct wined3d_resource *resource,
|
||||
}
|
||||
else if (volume->resource.locations & WINED3D_LOCATION_BUFFER)
|
||||
{
|
||||
@ -101,7 +101,7 @@ index af3f055..084e0e6 100644
|
||||
wined3d_texture_bind_and_dirtify(volume->container, context,
|
||||
location == WINED3D_LOCATION_TEXTURE_SRGB);
|
||||
wined3d_volume_upload_data(volume, context, &data);
|
||||
@@ -274,7 +274,7 @@ static void wined3d_volume_load_location(struct wined3d_resource *resource,
|
||||
@@ -272,7 +272,7 @@ static void wined3d_volume_load_location(struct wined3d_resource *resource,
|
||||
break;
|
||||
|
||||
case WINED3D_LOCATION_BUFFER:
|
||||
@ -110,7 +110,7 @@ index af3f055..084e0e6 100644
|
||||
ERR("Trying to load WINED3D_LOCATION_BUFFER without setting it up first.\n");
|
||||
|
||||
if (volume->resource.locations & WINED3D_LOCATION_DISCARDED)
|
||||
@@ -284,7 +284,7 @@ static void wined3d_volume_load_location(struct wined3d_resource *resource,
|
||||
@@ -282,7 +282,7 @@ static void wined3d_volume_load_location(struct wined3d_resource *resource,
|
||||
}
|
||||
else if (volume->resource.locations & (WINED3D_LOCATION_TEXTURE_RGB | WINED3D_LOCATION_TEXTURE_SRGB))
|
||||
{
|
||||
@ -119,7 +119,7 @@ index af3f055..084e0e6 100644
|
||||
|
||||
if (volume->resource.locations & WINED3D_LOCATION_TEXTURE_RGB)
|
||||
wined3d_texture_bind_and_dirtify(volume->container, context, FALSE);
|
||||
@@ -321,16 +321,16 @@ static void wined3d_volume_prepare_pbo(struct wined3d_volume *volume, struct win
|
||||
@@ -319,16 +319,16 @@ static void wined3d_volume_prepare_pbo(struct wined3d_volume *volume, struct win
|
||||
{
|
||||
const struct wined3d_gl_info *gl_info = context->gl_info;
|
||||
|
||||
@ -140,7 +140,7 @@ index af3f055..084e0e6 100644
|
||||
}
|
||||
|
||||
static void wined3d_volume_free_pbo(struct wined3d_volume *volume)
|
||||
@@ -338,10 +338,10 @@ static void wined3d_volume_free_pbo(struct wined3d_volume *volume)
|
||||
@@ -336,10 +336,10 @@ static void wined3d_volume_free_pbo(struct wined3d_volume *volume)
|
||||
struct wined3d_context *context = context_acquire(volume->resource.device, NULL);
|
||||
const struct wined3d_gl_info *gl_info = context->gl_info;
|
||||
|
||||
@ -155,7 +155,7 @@ index af3f055..084e0e6 100644
|
||||
context_release(context);
|
||||
}
|
||||
|
||||
@@ -349,7 +349,7 @@ void wined3d_volume_destroy(struct wined3d_volume *volume)
|
||||
@@ -347,7 +347,7 @@ void wined3d_volume_destroy(struct wined3d_volume *volume)
|
||||
{
|
||||
TRACE("volume %p.\n", volume);
|
||||
|
||||
@ -164,7 +164,7 @@ index af3f055..084e0e6 100644
|
||||
wined3d_volume_free_pbo(volume);
|
||||
|
||||
resource_cleanup(&volume->resource);
|
||||
@@ -382,7 +382,7 @@ static void volume_unload(struct wined3d_resource *resource)
|
||||
@@ -380,7 +380,7 @@ static void volume_unload(struct wined3d_resource *resource)
|
||||
wined3d_resource_invalidate_location(&volume->resource, ~WINED3D_LOCATION_DISCARDED);
|
||||
}
|
||||
|
||||
@ -173,7 +173,7 @@ index af3f055..084e0e6 100644
|
||||
{
|
||||
/* Should not happen because only dynamic default pool volumes
|
||||
* have a buffer, and those are not evicted by device_evit_managed_resources
|
||||
@@ -486,44 +486,6 @@ static BOOL wined3d_volume_prepare_map_memory(struct wined3d_volume *volume, str
|
||||
@@ -462,44 +462,6 @@ static BOOL wined3d_volume_prepare_map_memory(struct wined3d_volume *volume, str
|
||||
}
|
||||
}
|
||||
|
||||
@ -218,7 +218,7 @@ index af3f055..084e0e6 100644
|
||||
HRESULT wined3d_volume_map(struct wined3d_volume *volume,
|
||||
struct wined3d_map_desc *map_desc, const struct wined3d_box *box, DWORD flags)
|
||||
{
|
||||
@@ -575,7 +537,7 @@ HRESULT wined3d_volume_map(struct wined3d_volume *volume,
|
||||
@@ -551,7 +513,7 @@ HRESULT wined3d_volume_map(struct wined3d_volume *volume,
|
||||
else
|
||||
wined3d_resource_load_location(&volume->resource, context, volume->resource.map_binding);
|
||||
|
||||
@ -227,7 +227,7 @@ index af3f055..084e0e6 100644
|
||||
context_release(context);
|
||||
|
||||
TRACE("Base memory pointer %p.\n", base_memory);
|
||||
@@ -629,30 +591,6 @@ HRESULT wined3d_volume_map(struct wined3d_volume *volume,
|
||||
@@ -605,30 +567,6 @@ HRESULT wined3d_volume_map(struct wined3d_volume *volume,
|
||||
return WINED3D_OK;
|
||||
}
|
||||
|
||||
@ -258,7 +258,7 @@ index af3f055..084e0e6 100644
|
||||
HRESULT wined3d_volume_unmap(struct wined3d_volume *volume)
|
||||
{
|
||||
struct wined3d_device *device = volume->resource.device;
|
||||
@@ -666,7 +604,7 @@ HRESULT wined3d_volume_unmap(struct wined3d_volume *volume)
|
||||
@@ -642,7 +580,7 @@ HRESULT wined3d_volume_unmap(struct wined3d_volume *volume)
|
||||
}
|
||||
|
||||
context = context_acquire(device, NULL);
|
||||
@ -268,10 +268,10 @@ index af3f055..084e0e6 100644
|
||||
|
||||
volume->resource.map_count--;
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index 394ea0e..2a113e0 100644
|
||||
index a5af340..db60de5 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -2174,6 +2174,7 @@ struct wined3d_resource
|
||||
@@ -2199,6 +2199,7 @@ struct wined3d_resource
|
||||
DWORD priority;
|
||||
void *heap_memory, *user_memory, *bitmap_data;
|
||||
UINT custom_row_pitch, custom_slice_pitch;
|
||||
@ -279,7 +279,7 @@ index 394ea0e..2a113e0 100644
|
||||
struct list resource_list_entry;
|
||||
DWORD locations;
|
||||
|
||||
@@ -2203,14 +2204,17 @@ void resource_unload(struct wined3d_resource *resource) DECLSPEC_HIDDEN;
|
||||
@@ -2228,14 +2229,17 @@ void resource_unload(struct wined3d_resource *resource) DECLSPEC_HIDDEN;
|
||||
DWORD wined3d_resource_access_from_location(DWORD location) DECLSPEC_HIDDEN;
|
||||
BOOL wined3d_resource_allocate_sysmem(struct wined3d_resource *resource) DECLSPEC_HIDDEN;
|
||||
void wined3d_resource_free_sysmem(struct wined3d_resource *resource) DECLSPEC_HIDDEN;
|
||||
@ -298,8 +298,8 @@ index 394ea0e..2a113e0 100644
|
||||
DWORD wined3d_resource_sanitize_map_flags(const struct wined3d_resource *resource, DWORD flags) DECLSPEC_HIDDEN;
|
||||
void wined3d_resource_update_draw_binding(struct wined3d_resource *resource) DECLSPEC_HIDDEN;
|
||||
void wined3d_resource_validate_location(struct wined3d_resource *resource, DWORD location) DECLSPEC_HIDDEN;
|
||||
@@ -2337,7 +2341,6 @@ struct wined3d_volume
|
||||
DWORD flags;
|
||||
@@ -2356,7 +2360,6 @@ struct wined3d_volume
|
||||
|
||||
GLint texture_level;
|
||||
DWORD download_count;
|
||||
- GLuint pbo;
|
||||
@ -307,5 +307,5 @@ index 394ea0e..2a113e0 100644
|
||||
|
||||
static inline struct wined3d_volume *volume_from_resource(struct wined3d_resource *resource)
|
||||
--
|
||||
2.6.0
|
||||
2.6.4
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From e6f030ca36c31b52f7dce040eb03552a2a73b2e7 Mon Sep 17 00:00:00 2001
|
||||
From bd7832b10a3c2c43e33abff97a9447d52166da3e Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Wed, 18 Sep 2013 22:49:34 +0200
|
||||
Subject: wined3d: Move buffer creation into the resource.
|
||||
@ -9,13 +9,12 @@ location scheme. Otherwise the unimplemented buffer_load_location and
|
||||
surface_load_location will write a lot of ERRs.
|
||||
---
|
||||
dlls/wined3d/resource.c | 66 ++++++++++++++++++++++++++++++++++++++++++
|
||||
dlls/wined3d/texture.c | 2 +-
|
||||
dlls/wined3d/volume.c | 63 ++--------------------------------------
|
||||
dlls/wined3d/wined3d_private.h | 4 ++-
|
||||
4 files changed, 72 insertions(+), 63 deletions(-)
|
||||
3 files changed, 71 insertions(+), 62 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c
|
||||
index dda77f0..e20f353 100644
|
||||
index 5204fee..0d2145f 100644
|
||||
--- a/dlls/wined3d/resource.c
|
||||
+++ b/dlls/wined3d/resource.c
|
||||
@@ -223,6 +223,18 @@ HRESULT resource_init(struct wined3d_resource *resource, struct wined3d_device *
|
||||
@ -57,7 +56,7 @@ index dda77f0..e20f353 100644
|
||||
context_resource_unloaded(resource->device,
|
||||
resource, resource->type);
|
||||
}
|
||||
@@ -581,3 +599,51 @@ void wined3d_resource_release_map_ptr(const struct wined3d_resource *resource,
|
||||
@@ -597,3 +615,51 @@ void wined3d_resource_release_map_ptr(const struct wined3d_resource *resource,
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -109,24 +108,11 @@ index dda77f0..e20f353 100644
|
||||
+ return FALSE;
|
||||
+ }
|
||||
+}
|
||||
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
|
||||
index 0241309..abd2d8a 100644
|
||||
--- a/dlls/wined3d/texture.c
|
||||
+++ b/dlls/wined3d/texture.c
|
||||
@@ -1289,7 +1289,7 @@ static void texture3d_prepare_texture(struct wined3d_texture *texture, struct wi
|
||||
void *mem = NULL;
|
||||
|
||||
if (gl_info->supported[APPLE_CLIENT_STORAGE] && !format->convert
|
||||
- && volume_prepare_system_memory(volume))
|
||||
+ && wined3d_resource_prepare_system_memory(&volume->resource))
|
||||
{
|
||||
TRACE("Enabling GL_UNPACK_CLIENT_STORAGE_APPLE for volume %p\n", volume);
|
||||
gl_info->gl_ops.gl.p_glPixelStorei(GL_UNPACK_CLIENT_STORAGE_APPLE, GL_TRUE);
|
||||
diff --git a/dlls/wined3d/volume.c b/dlls/wined3d/volume.c
|
||||
index 084e0e6..d823ebd 100644
|
||||
index 78b153d..c95af94 100644
|
||||
--- a/dlls/wined3d/volume.c
|
||||
+++ b/dlls/wined3d/volume.c
|
||||
@@ -316,42 +316,10 @@ void wined3d_volume_load(struct wined3d_volume *volume, struct wined3d_context *
|
||||
@@ -314,42 +314,10 @@ void wined3d_volume_load(struct wined3d_volume *volume, struct wined3d_context *
|
||||
srgb_mode ? WINED3D_LOCATION_TEXTURE_SRGB : WINED3D_LOCATION_TEXTURE_RGB);
|
||||
}
|
||||
|
||||
@ -169,7 +155,7 @@ index 084e0e6..d823ebd 100644
|
||||
resource_cleanup(&volume->resource);
|
||||
volume->resource.parent_ops->wined3d_object_destroyed(volume->resource.parent);
|
||||
HeapFree(GetProcessHeap(), 0, volume);
|
||||
@@ -368,7 +336,7 @@ static void volume_unload(struct wined3d_resource *resource)
|
||||
@@ -366,7 +334,7 @@ static void volume_unload(struct wined3d_resource *resource)
|
||||
|
||||
TRACE("texture %p.\n", resource);
|
||||
|
||||
@ -178,7 +164,7 @@ index 084e0e6..d823ebd 100644
|
||||
{
|
||||
context = context_acquire(device, NULL);
|
||||
wined3d_resource_load_location(&volume->resource, context, WINED3D_LOCATION_SYSMEM);
|
||||
@@ -382,15 +350,6 @@ static void volume_unload(struct wined3d_resource *resource)
|
||||
@@ -380,15 +348,6 @@ static void volume_unload(struct wined3d_resource *resource)
|
||||
wined3d_resource_invalidate_location(&volume->resource, ~WINED3D_LOCATION_DISCARDED);
|
||||
}
|
||||
|
||||
@ -192,9 +178,9 @@ index 084e0e6..d823ebd 100644
|
||||
- }
|
||||
-
|
||||
/* The texture name is managed by the container. */
|
||||
volume->flags &= ~WINED3D_VFLAG_CLIENT_STORAGE;
|
||||
|
||||
@@ -468,24 +427,6 @@ static BOOL wined3d_volume_check_box_dimensions(const struct wined3d_volume *vol
|
||||
resource_unload(resource);
|
||||
@@ -444,24 +403,6 @@ static BOOL wined3d_volume_check_box_dimensions(const struct wined3d_volume *vol
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@ -219,7 +205,7 @@ index 084e0e6..d823ebd 100644
|
||||
HRESULT wined3d_volume_map(struct wined3d_volume *volume,
|
||||
struct wined3d_map_desc *map_desc, const struct wined3d_box *box, DWORD flags)
|
||||
{
|
||||
@@ -524,7 +465,7 @@ HRESULT wined3d_volume_map(struct wined3d_volume *volume,
|
||||
@@ -500,7 +441,7 @@ HRESULT wined3d_volume_map(struct wined3d_volume *volume,
|
||||
flags = wined3d_resource_sanitize_map_flags(&volume->resource, flags);
|
||||
|
||||
context = context_acquire(device, NULL);
|
||||
@ -229,10 +215,10 @@ index 084e0e6..d823ebd 100644
|
||||
WARN("Out of memory.\n");
|
||||
map_desc->data = NULL;
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index 828f9a7..67c1de2 100644
|
||||
index 6dc1b04..0049165 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -2213,6 +2213,9 @@ void wined3d_resource_invalidate_location(struct wined3d_resource *resource, DWO
|
||||
@@ -2238,6 +2238,9 @@ void wined3d_resource_invalidate_location(struct wined3d_resource *resource, DWO
|
||||
BOOL wined3d_resource_is_offscreen(struct wined3d_resource *resource) DECLSPEC_HIDDEN;
|
||||
void wined3d_resource_load_location(struct wined3d_resource *resource,
|
||||
struct wined3d_context *context, DWORD location) DECLSPEC_HIDDEN;
|
||||
@ -242,7 +228,7 @@ index 828f9a7..67c1de2 100644
|
||||
void wined3d_resource_release_map_ptr(const struct wined3d_resource *resource,
|
||||
const struct wined3d_context *context) DECLSPEC_HIDDEN;
|
||||
DWORD wined3d_resource_sanitize_map_flags(const struct wined3d_resource *resource, DWORD flags) DECLSPEC_HIDDEN;
|
||||
@@ -2348,7 +2351,6 @@ static inline struct wined3d_volume *volume_from_resource(struct wined3d_resourc
|
||||
@@ -2367,7 +2370,6 @@ static inline struct wined3d_volume *volume_from_resource(struct wined3d_resourc
|
||||
return CONTAINING_RECORD(resource, struct wined3d_volume, resource);
|
||||
}
|
||||
|
||||
@ -251,5 +237,5 @@ index 828f9a7..67c1de2 100644
|
||||
unsigned int level, struct wined3d_volume **volume) DECLSPEC_HIDDEN;
|
||||
void wined3d_volume_destroy(struct wined3d_volume *volume) DECLSPEC_HIDDEN;
|
||||
--
|
||||
2.6.0
|
||||
2.6.4
|
||||
|
||||
|
@ -1,37 +0,0 @@
|
||||
From d0f1f1278a8225075bd03c9586112bf29318563c Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Mon, 16 Sep 2013 22:22:39 +0200
|
||||
Subject: wined3d: Allocate sysmem for client storage if it doesn't exist
|
||||
already.
|
||||
|
||||
---
|
||||
dlls/wined3d/texture.c | 6 ++++--
|
||||
1 file changed, 4 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
|
||||
index 41cf61d..8298e53 100644
|
||||
--- a/dlls/wined3d/texture.c
|
||||
+++ b/dlls/wined3d/texture.c
|
||||
@@ -904,8 +904,7 @@ static void texture2d_prepare_texture(struct wined3d_texture *texture, struct wi
|
||||
if (gl_info->supported[APPLE_CLIENT_STORAGE])
|
||||
{
|
||||
if (surface->flags & (SFLAG_NONPOW2 | SFLAG_DIBSECTION)
|
||||
- || texture->flags & WINED3D_TEXTURE_CONVERTED
|
||||
- || !surface->resource.heap_memory)
|
||||
+ || texture->flags & WINED3D_TEXTURE_CONVERTED)
|
||||
{
|
||||
/* In some cases we want to disable client storage.
|
||||
* SFLAG_NONPOW2 has a bigger opengl texture than the client memory, and different pitches
|
||||
@@ -917,6 +916,9 @@ static void texture2d_prepare_texture(struct wined3d_texture *texture, struct wi
|
||||
}
|
||||
else
|
||||
{
|
||||
+ if (!surface->resource.heap_memory)
|
||||
+ wined3d_resource_allocate_sysmem(&surface->resource);
|
||||
+
|
||||
surface->flags |= SFLAG_CLIENT;
|
||||
mem = surface->resource.heap_memory;
|
||||
|
||||
--
|
||||
2.1.3
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 4345b09b18121021362ea09caa4232d1b97bcf37 Mon Sep 17 00:00:00 2001
|
||||
From 1505be1b5bedf3387daa7dc558314f3480b2004e Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Tue, 21 Jan 2014 16:40:56 +0100
|
||||
Subject: wined3d: Replace surface alloc functions with resource ones.
|
||||
@ -6,15 +6,15 @@ Subject: wined3d: Replace surface alloc functions with resource ones.
|
||||
---
|
||||
dlls/wined3d/resource.c | 10 +++++
|
||||
dlls/wined3d/surface.c | 89 ++++--------------------------------------
|
||||
dlls/wined3d/texture.c | 5 +--
|
||||
dlls/wined3d/texture.c | 2 +-
|
||||
dlls/wined3d/wined3d_private.h | 1 -
|
||||
4 files changed, 19 insertions(+), 86 deletions(-)
|
||||
4 files changed, 18 insertions(+), 84 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/resource.c b/dlls/wined3d/resource.c
|
||||
index 9b87d6b..1da4da5 100644
|
||||
index b47536a..261b386 100644
|
||||
--- a/dlls/wined3d/resource.c
|
||||
+++ b/dlls/wined3d/resource.c
|
||||
@@ -610,6 +610,16 @@ BOOL wined3d_resource_prepare_map_memory(struct wined3d_resource *resource, stru
|
||||
@@ -700,6 +700,16 @@ BOOL wined3d_resource_prepare_map_memory(struct wined3d_resource *resource, stru
|
||||
case WINED3D_LOCATION_SYSMEM:
|
||||
return wined3d_resource_prepare_system_memory(resource);
|
||||
|
||||
@ -32,10 +32,10 @@ index 9b87d6b..1da4da5 100644
|
||||
ERR("Unexpected map binding %s.\n", wined3d_debug_location(resource->map_binding));
|
||||
return FALSE;
|
||||
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
index 3bcf0ab..0a908b1 100644
|
||||
index af4de99..2287523 100644
|
||||
--- a/dlls/wined3d/surface.c
|
||||
+++ b/dlls/wined3d/surface.c
|
||||
@@ -478,81 +478,6 @@ static HRESULT surface_create_dib_section(struct wined3d_surface *surface)
|
||||
@@ -479,81 +479,6 @@ static HRESULT surface_create_dib_section(struct wined3d_surface *surface)
|
||||
return WINED3D_OK;
|
||||
}
|
||||
|
||||
@ -117,7 +117,7 @@ index 3bcf0ab..0a908b1 100644
|
||||
static void surface_evict_sysmem(struct wined3d_surface *surface)
|
||||
{
|
||||
/* In some conditions the surface memory must not be freed:
|
||||
@@ -1159,7 +1084,7 @@ static void surface_unload(struct wined3d_resource *resource)
|
||||
@@ -1064,7 +989,7 @@ static void surface_unload(struct wined3d_resource *resource)
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -126,7 +126,7 @@ index 3bcf0ab..0a908b1 100644
|
||||
wined3d_resource_load_location(&surface->resource, context, surface->resource.map_binding);
|
||||
wined3d_resource_invalidate_location(&surface->resource, ~surface->resource.map_binding);
|
||||
}
|
||||
@@ -2139,7 +2064,7 @@ HRESULT wined3d_surface_update_desc(struct wined3d_surface *surface,
|
||||
@@ -1999,7 +1924,7 @@ HRESULT wined3d_surface_update_desc(struct wined3d_surface *surface,
|
||||
|
||||
if (!valid_location)
|
||||
{
|
||||
@ -135,7 +135,7 @@ index 3bcf0ab..0a908b1 100644
|
||||
valid_location = WINED3D_LOCATION_SYSMEM;
|
||||
}
|
||||
|
||||
@@ -2695,7 +2620,7 @@ HRESULT CDECL wined3d_surface_map(struct wined3d_surface *surface,
|
||||
@@ -2556,7 +2481,7 @@ HRESULT CDECL wined3d_surface_map(struct wined3d_surface *surface,
|
||||
if (device->d3d_initialized)
|
||||
context = context_acquire(device, NULL);
|
||||
|
||||
@ -144,7 +144,7 @@ index 3bcf0ab..0a908b1 100644
|
||||
if (flags & WINED3D_MAP_DISCARD)
|
||||
{
|
||||
TRACE("WINED3D_MAP_DISCARD flag passed, marking %s as up to date.\n",
|
||||
@@ -4226,7 +4151,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
|
||||
@@ -3932,7 +3857,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
|
||||
{
|
||||
/* Performance warning... */
|
||||
FIXME("Downloading RGB surface %p to reload it as sRGB.\n", surface);
|
||||
@ -153,7 +153,7 @@ index 3bcf0ab..0a908b1 100644
|
||||
wined3d_resource_load_location(&surface->resource, context, surface->resource.map_binding);
|
||||
}
|
||||
}
|
||||
@@ -4237,7 +4162,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
|
||||
@@ -3943,7 +3868,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
|
||||
{
|
||||
/* Performance warning... */
|
||||
FIXME("Downloading sRGB surface %p to reload it as RGB.\n", surface);
|
||||
@ -162,7 +162,7 @@ index 3bcf0ab..0a908b1 100644
|
||||
wined3d_resource_load_location(&surface->resource, context, surface->resource.map_binding);
|
||||
}
|
||||
}
|
||||
@@ -4246,7 +4171,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
|
||||
@@ -3952,7 +3877,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
|
||||
{
|
||||
WARN("Trying to load a texture from sysmem, but no simple location is valid.\n");
|
||||
/* Lets hope we get it from somewhere... */
|
||||
@ -171,7 +171,7 @@ index 3bcf0ab..0a908b1 100644
|
||||
wined3d_resource_load_location(&surface->resource, context, WINED3D_LOCATION_SYSMEM);
|
||||
}
|
||||
|
||||
@@ -4272,7 +4197,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
|
||||
@@ -3978,7 +3903,7 @@ static HRESULT surface_load_texture(struct wined3d_surface *surface,
|
||||
else
|
||||
surface->resource.map_binding = WINED3D_LOCATION_SYSMEM;
|
||||
|
||||
@ -181,10 +181,10 @@ index 3bcf0ab..0a908b1 100644
|
||||
surface_remove_pbo(surface, gl_info);
|
||||
}
|
||||
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
|
||||
index 2ae36ef..8faeefa 100644
|
||||
index 174cea4..746131c 100644
|
||||
--- a/dlls/wined3d/texture.c
|
||||
+++ b/dlls/wined3d/texture.c
|
||||
@@ -783,8 +783,8 @@ static void texture2d_sub_resource_add_dirty_region(struct wined3d_resource *sub
|
||||
@@ -772,8 +772,8 @@ static void texture2d_sub_resource_add_dirty_region(struct wined3d_resource *sub
|
||||
struct wined3d_surface *surface = surface_from_resource(sub_resource);
|
||||
struct wined3d_context *context;
|
||||
|
||||
@ -194,21 +194,11 @@ index 2ae36ef..8faeefa 100644
|
||||
wined3d_resource_load_location(&surface->resource, context, surface->resource.map_binding);
|
||||
context_release(context);
|
||||
wined3d_resource_invalidate_location(&surface->resource, ~surface->resource.map_binding);
|
||||
@@ -896,8 +896,7 @@ static void texture2d_prepare_texture(struct wined3d_texture *texture, struct wi
|
||||
}
|
||||
else
|
||||
{
|
||||
- if (!surface->resource.heap_memory)
|
||||
- wined3d_resource_allocate_sysmem(&surface->resource);
|
||||
+ wined3d_resource_prepare_system_memory(&surface->resource);
|
||||
|
||||
surface->flags |= SFLAG_CLIENT;
|
||||
mem = surface->resource.heap_memory;
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index 4540df1..bbf9128 100644
|
||||
index b882152..915d529 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -2397,7 +2397,6 @@ HRESULT wined3d_surface_create(struct wined3d_texture *container, const struct w
|
||||
@@ -2490,7 +2490,6 @@ HRESULT wined3d_surface_create(struct wined3d_texture *container, const struct w
|
||||
GLenum target, unsigned int level, unsigned int layer, DWORD flags,
|
||||
struct wined3d_surface **surface) DECLSPEC_HIDDEN;
|
||||
void wined3d_surface_destroy(struct wined3d_surface *surface) DECLSPEC_HIDDEN;
|
||||
@ -217,5 +207,5 @@ index 4540df1..bbf9128 100644
|
||||
const struct wined3d_format *format, const RECT *src_rect, UINT src_pitch, const POINT *dst_point,
|
||||
BOOL srgb, const struct wined3d_const_bo_address *data) DECLSPEC_HIDDEN;
|
||||
--
|
||||
2.3.0
|
||||
2.6.4
|
||||
|
||||
|
@ -1,78 +0,0 @@
|
||||
From e2500c76e7b1b762eeb610d580ce90eec9798773 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Tue, 21 Jan 2014 17:06:20 +0100
|
||||
Subject: wined3d: Use client storage with DIB sections.
|
||||
|
||||
Now that DIBs are a separate location, we can keep the sysmem around for
|
||||
OpenGL's use.
|
||||
---
|
||||
dlls/wined3d/surface.c | 27 ---------------------------
|
||||
dlls/wined3d/texture.c | 3 +--
|
||||
2 files changed, 1 insertion(+), 29 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
index 16233d3..303a0dc 100644
|
||||
--- a/dlls/wined3d/surface.c
|
||||
+++ b/dlls/wined3d/surface.c
|
||||
@@ -484,28 +484,6 @@ static void surface_evict_sysmem(struct wined3d_surface *surface)
|
||||
wined3d_resource_invalidate_location(&surface->resource, WINED3D_LOCATION_SYSMEM);
|
||||
}
|
||||
|
||||
-static void surface_release_client_storage(struct wined3d_surface *surface)
|
||||
-{
|
||||
- struct wined3d_context *context = context_acquire(surface->resource.device, NULL);
|
||||
- const struct wined3d_gl_info *gl_info = context->gl_info;
|
||||
-
|
||||
- if (surface->container->texture_rgb.name)
|
||||
- {
|
||||
- wined3d_texture_bind_and_dirtify(surface->container, context, FALSE);
|
||||
- gl_info->gl_ops.gl.p_glTexImage2D(surface->texture_target, surface->texture_level,
|
||||
- GL_RGB, 1, 1, 0, GL_RGB, GL_UNSIGNED_BYTE, NULL);
|
||||
- }
|
||||
- if (surface->container->texture_srgb.name)
|
||||
- {
|
||||
- wined3d_texture_bind_and_dirtify(surface->container, context, TRUE);
|
||||
- gl_info->gl_ops.gl.p_glTexImage2D(surface->texture_target, surface->texture_level,
|
||||
- GL_RGB, 1, 1, 0, GL_RGB, GL_UNSIGNED_BYTE, NULL);
|
||||
- }
|
||||
- wined3d_texture_force_reload(surface->container);
|
||||
-
|
||||
- context_release(context);
|
||||
-}
|
||||
-
|
||||
static BOOL surface_use_pbo(const struct wined3d_surface *surface)
|
||||
{
|
||||
const struct wined3d_gl_info *gl_info = &surface->resource.device->adapter->gl_info;
|
||||
@@ -2483,11 +2461,6 @@ HRESULT CDECL wined3d_surface_getdc(struct wined3d_surface *surface, HDC *dc)
|
||||
/* Create a DIB section if there isn't a dc yet. */
|
||||
if (!surface->hDC)
|
||||
{
|
||||
- if (surface->flags & SFLAG_CLIENT)
|
||||
- {
|
||||
- wined3d_resource_load_location(&surface->resource, context, WINED3D_LOCATION_SYSMEM);
|
||||
- surface_release_client_storage(surface);
|
||||
- }
|
||||
hr = surface_create_dib_section(surface);
|
||||
if (FAILED(hr))
|
||||
{
|
||||
diff --git a/dlls/wined3d/texture.c b/dlls/wined3d/texture.c
|
||||
index 429eb89..ec5c847 100644
|
||||
--- a/dlls/wined3d/texture.c
|
||||
+++ b/dlls/wined3d/texture.c
|
||||
@@ -903,12 +903,11 @@ static void texture2d_prepare_texture(struct wined3d_texture *texture, struct wi
|
||||
|
||||
if (gl_info->supported[APPLE_CLIENT_STORAGE])
|
||||
{
|
||||
- if (surface->flags & (SFLAG_NONPOW2 | SFLAG_DIBSECTION)
|
||||
+ if (surface->flags & (SFLAG_NONPOW2)
|
||||
|| texture->flags & WINED3D_TEXTURE_CONVERTED)
|
||||
{
|
||||
/* In some cases we want to disable client storage.
|
||||
* SFLAG_NONPOW2 has a bigger opengl texture than the client memory, and different pitches
|
||||
- * SFLAG_DIBSECTION: Dibsections may have read / write protections on the memory. Avoid issues...
|
||||
* WINED3D_TEXTURE_CONVERTED: The conversion destination memory is freed after loading the surface
|
||||
* heap_memory == NULL: Not defined in the extension. Seems to disable client storage effectively
|
||||
*/
|
||||
--
|
||||
2.1.3
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 3ccf9437225eff52fd9cad94d861e4d8fa2f5ec0 Mon Sep 17 00:00:00 2001
|
||||
From e2f09806ffc0332e4b3fdb3a6112ad9a2bedb1c2 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Sun, 7 Jul 2013 12:06:31 +0200
|
||||
Subject: wined3d: Preload buffers if streamsrc is not dirty
|
||||
@ -18,7 +18,7 @@ here...
|
||||
3 files changed, 6 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
|
||||
index 2386410..3de580e 100644
|
||||
index 4e91176..7eef51e 100644
|
||||
--- a/dlls/wined3d/buffer.c
|
||||
+++ b/dlls/wined3d/buffer.c
|
||||
@@ -711,7 +711,7 @@ static void buffer_direct_upload(struct wined3d_buffer *This, const struct wined
|
||||
@ -31,10 +31,10 @@ index 2386410..3de580e 100644
|
||||
buffer->flags &= ~(WINED3D_BUFFER_SYNC | WINED3D_BUFFER_DISCARD);
|
||||
}
|
||||
diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
|
||||
index 2204d29..861af29 100644
|
||||
index 46aa0cc..116bf67 100644
|
||||
--- a/dlls/wined3d/context.c
|
||||
+++ b/dlls/wined3d/context.c
|
||||
@@ -2999,8 +2999,12 @@ BOOL context_apply_draw_state(struct wined3d_context *context, struct wined3d_de
|
||||
@@ -3227,8 +3227,12 @@ BOOL context_apply_draw_state(struct wined3d_context *context, struct wined3d_de
|
||||
for (i = 0, map = context->stream_info.use_map; map; map >>= 1, ++i)
|
||||
{
|
||||
if (map & 1)
|
||||
@ -49,17 +49,17 @@ index 2204d29..861af29 100644
|
||||
if (state->index_buffer)
|
||||
{
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index fd7e8f9..69c984ba 100644
|
||||
index d320a62..4bbfe42 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -2686,7 +2686,6 @@ void buffer_get_memory(struct wined3d_buffer *buffer, struct wined3d_context *co
|
||||
@@ -2786,7 +2786,6 @@ void buffer_get_memory(struct wined3d_buffer *buffer, struct wined3d_context *co
|
||||
BYTE *buffer_get_sysmem(struct wined3d_buffer *This, struct wined3d_context *context) DECLSPEC_HIDDEN;
|
||||
void buffer_internal_preload(struct wined3d_buffer *buffer, struct wined3d_context *context,
|
||||
const struct wined3d_state *state) DECLSPEC_HIDDEN;
|
||||
-void buffer_mark_used(struct wined3d_buffer *buffer) DECLSPEC_HIDDEN;
|
||||
HRESULT wined3d_buffer_upload_data(struct wined3d_buffer *buffer,
|
||||
const struct wined3d_box *box, const void *data) DECLSPEC_HIDDEN;
|
||||
|
||||
struct wined3d_rendertarget_view
|
||||
{
|
||||
--
|
||||
2.2.1
|
||||
2.6.4
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 0603f71135885ebf0666d406380385936ed5ff7b Mon Sep 17 00:00:00 2001
|
||||
From e65b83c7523a8c124cd04dc97b3f617175e24541 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Thu, 4 Jul 2013 23:40:56 +0200
|
||||
Subject: wined3d: Don't preload buffers on unmap
|
||||
@ -8,7 +8,7 @@ Subject: wined3d: Don't preload buffers on unmap
|
||||
1 file changed, 4 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
|
||||
index 5544640..b76a07d 100644
|
||||
index c519fcd..3c8c681 100644
|
||||
--- a/dlls/wined3d/buffer.c
|
||||
+++ b/dlls/wined3d/buffer.c
|
||||
@@ -1129,10 +1129,6 @@ void CDECL wined3d_buffer_unmap(struct wined3d_buffer *buffer)
|
||||
@ -21,7 +21,7 @@ index 5544640..b76a07d 100644
|
||||
- }
|
||||
}
|
||||
|
||||
static ULONG buffer_resource_incref(struct wined3d_resource *resource)
|
||||
HRESULT wined3d_buffer_upload_data(struct wined3d_buffer *buffer,
|
||||
--
|
||||
2.1.3
|
||||
2.6.4
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 6d53bc01b8d6db32aab6c0d9e7b93c20f2a7af94 Mon Sep 17 00:00:00 2001
|
||||
From 9725eb43a6e513c68761a40b534f308c85e55086 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Sat, 6 Jul 2013 17:05:12 +0200
|
||||
Subject: wined3d: Access the buffer dirty areas through the CS
|
||||
@ -27,7 +27,7 @@ be protected by locks.
|
||||
3 files changed, 37 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
|
||||
index c0bbfb7..df44ae0 100644
|
||||
index 7d1a532..9b6ccc8 100644
|
||||
--- a/dlls/wined3d/buffer.c
|
||||
+++ b/dlls/wined3d/buffer.c
|
||||
@@ -41,7 +41,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(d3d);
|
||||
@ -52,7 +52,7 @@ index c0bbfb7..df44ae0 100644
|
||||
if (!(buffer->flags & WINED3D_BUFFER_DOUBLEBUFFER))
|
||||
{
|
||||
diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c
|
||||
index 0a246a9..b871d92 100644
|
||||
index 491ad85..bc90df2 100644
|
||||
--- a/dlls/wined3d/cs.c
|
||||
+++ b/dlls/wined3d/cs.c
|
||||
@@ -70,6 +70,7 @@ enum wined3d_cs_op
|
||||
@ -77,7 +77,7 @@ index 0a246a9..b871d92 100644
|
||||
struct wined3d_cs_skip
|
||||
{
|
||||
enum wined3d_cs_op opcode;
|
||||
@@ -2272,6 +2280,28 @@ void wined3d_cs_emit_buffer_swap_mem(struct wined3d_cs *cs, struct wined3d_buffe
|
||||
@@ -2273,6 +2281,28 @@ void wined3d_cs_emit_buffer_swap_mem(struct wined3d_cs *cs, struct wined3d_buffe
|
||||
cs->ops->submit(cs, sizeof(*op));
|
||||
}
|
||||
|
||||
@ -106,7 +106,7 @@ index 0a246a9..b871d92 100644
|
||||
static UINT (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void *data) =
|
||||
{
|
||||
/* WINED3D_CS_OP_NOP */ wined3d_cs_exec_nop,
|
||||
@@ -2320,6 +2350,7 @@ static UINT (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void
|
||||
@@ -2321,6 +2351,7 @@ static UINT (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void
|
||||
/* WINED3D_CS_OP_RESOURCE_MAP */ wined3d_cs_exec_resource_map,
|
||||
/* WINED3D_CS_OP_RESOURCE_UNMAP */ wined3d_cs_exec_resource_unmap,
|
||||
/* WINED3D_CS_OP_BUFFER_SWAP_MEM */ wined3d_cs_exec_buffer_swap_mem,
|
||||
@ -115,10 +115,10 @@ index 0a246a9..b871d92 100644
|
||||
/* WINED3D_CS_OP_QUERY_DESTROY */ wined3d_cs_exec_query_destroy,
|
||||
/* WINED3D_CS_OP_UPDATE_SURFACE */ wined3d_cs_exec_update_surface,
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index efc5d2d..801c221 100644
|
||||
index e30ae80..7d0eba9 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -2745,6 +2745,8 @@ void wined3d_cs_emit_update_texture(struct wined3d_cs *cs, struct wined3d_textur
|
||||
@@ -2813,6 +2813,8 @@ void wined3d_cs_emit_update_texture(struct wined3d_cs *cs, struct wined3d_textur
|
||||
void wined3d_cs_emit_evict_resource(struct wined3d_cs *cs, struct wined3d_resource *resource) DECLSPEC_HIDDEN;
|
||||
void wined3d_cs_emit_buffer_swap_mem(struct wined3d_cs *cs, struct wined3d_buffer *buffer,
|
||||
BYTE *mem) DECLSPEC_HIDDEN;
|
||||
@ -127,14 +127,14 @@ index efc5d2d..801c221 100644
|
||||
|
||||
/* Direct3D terminology with little modifications. We do not have an issued state
|
||||
* because only the driver knows about it, but we have a created state because d3d
|
||||
@@ -2830,6 +2832,7 @@ void buffer_get_memory(struct wined3d_buffer *buffer, struct wined3d_context *co
|
||||
@@ -2898,6 +2900,7 @@ void buffer_get_memory(struct wined3d_buffer *buffer, struct wined3d_context *co
|
||||
BYTE *buffer_get_sysmem(struct wined3d_buffer *This, struct wined3d_context *context) DECLSPEC_HIDDEN;
|
||||
void buffer_internal_preload(struct wined3d_buffer *buffer, struct wined3d_context *context,
|
||||
const struct wined3d_state *state) DECLSPEC_HIDDEN;
|
||||
+void buffer_invalidate_bo_range(struct wined3d_buffer *This, UINT offset, UINT size) DECLSPEC_HIDDEN;
|
||||
HRESULT wined3d_buffer_upload_data(struct wined3d_buffer *buffer,
|
||||
const struct wined3d_box *box, const void *data) DECLSPEC_HIDDEN;
|
||||
|
||||
struct wined3d_rendertarget_view
|
||||
{
|
||||
--
|
||||
2.4.2
|
||||
2.6.4
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From fd33771329457adaba5a2fb8006991e7ad756ec7 Mon Sep 17 00:00:00 2001
|
||||
From cb3001744c90910e2a44caa6bb05eb0c5a685efd Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Tue, 30 Jul 2013 22:17:10 +0200
|
||||
Subject: wined3d: Separate GL buffer discard control from ignoring
|
||||
@ -18,7 +18,7 @@ There are some problems left:
|
||||
3 files changed, 28 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
|
||||
index 675dbec..8b09aee 100644
|
||||
index 3945549..2421eb3 100644
|
||||
--- a/dlls/wined3d/buffer.c
|
||||
+++ b/dlls/wined3d/buffer.c
|
||||
@@ -32,7 +32,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(d3d);
|
||||
@ -67,7 +67,7 @@ index 675dbec..8b09aee 100644
|
||||
wined3d_resource_allocate_sysmem(&buffer->resource);
|
||||
wined3d_cs_emit_buffer_swap_mem(device->cs, buffer, buffer->resource.map_heap_memory);
|
||||
}
|
||||
@@ -1332,3 +1338,10 @@ HRESULT CDECL wined3d_buffer_create_ib(struct wined3d_device *device, UINT size,
|
||||
@@ -1399,3 +1405,10 @@ HRESULT CDECL wined3d_buffer_create_ib(struct wined3d_device *device, UINT size,
|
||||
|
||||
return WINED3D_OK;
|
||||
}
|
||||
@ -79,10 +79,10 @@ index 675dbec..8b09aee 100644
|
||||
+ buffer->flags |= WINED3D_BUFFER_DISCARD;
|
||||
+}
|
||||
diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c
|
||||
index 6b16d51..4b9af57 100644
|
||||
index ee76ef0..5eb8803 100644
|
||||
--- a/dlls/wined3d/cs.c
|
||||
+++ b/dlls/wined3d/cs.c
|
||||
@@ -722,11 +722,17 @@ void wined3d_cs_emit_draw(struct wined3d_cs *cs, UINT start_idx, UINT index_coun
|
||||
@@ -732,11 +732,17 @@ void wined3d_cs_emit_draw(struct wined3d_cs *cs, UINT start_idx, UINT index_coun
|
||||
op->indexed = indexed;
|
||||
|
||||
if (indexed)
|
||||
@ -100,7 +100,7 @@ index 6b16d51..4b9af57 100644
|
||||
}
|
||||
for (i = 0; i < sizeof(state->textures) / sizeof(*state->textures); i++)
|
||||
{
|
||||
@@ -2151,8 +2157,7 @@ static UINT wined3d_cs_exec_buffer_swap_mem(struct wined3d_cs *cs, const void *d
|
||||
@@ -2265,8 +2271,7 @@ static UINT wined3d_cs_exec_buffer_swap_mem(struct wined3d_cs *cs, const void *d
|
||||
const struct wined3d_cs_buffer_swap_mem *op = data;
|
||||
struct wined3d_buffer *buffer = op->buffer;
|
||||
|
||||
@ -111,10 +111,10 @@ index 6b16d51..4b9af57 100644
|
||||
if (!buffer->buffer_object && buffer->resource.bind_count)
|
||||
{
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index 4070e1d..0f88961 100644
|
||||
index 27a534a..c79b6a9 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -2760,6 +2760,7 @@ struct wined3d_buffer
|
||||
@@ -2877,6 +2877,7 @@ struct wined3d_buffer
|
||||
GLenum buffer_object_usage;
|
||||
GLenum buffer_type_hint;
|
||||
DWORD flags;
|
||||
@ -122,14 +122,14 @@ index 4070e1d..0f88961 100644
|
||||
void *map_ptr;
|
||||
|
||||
struct wined3d_map_range *maps;
|
||||
@@ -2785,6 +2786,7 @@ BYTE *buffer_get_sysmem(struct wined3d_buffer *This, struct wined3d_context *con
|
||||
@@ -2902,6 +2903,7 @@ BYTE *buffer_get_sysmem(struct wined3d_buffer *This, struct wined3d_context *con
|
||||
void buffer_internal_preload(struct wined3d_buffer *buffer, struct wined3d_context *context,
|
||||
const struct wined3d_state *state) DECLSPEC_HIDDEN;
|
||||
void buffer_invalidate_bo_range(struct wined3d_buffer *This, UINT offset, UINT size) DECLSPEC_HIDDEN;
|
||||
+void buffer_swap_mem(struct wined3d_buffer *buffer, BYTE *mem) DECLSPEC_HIDDEN;
|
||||
HRESULT wined3d_buffer_upload_data(struct wined3d_buffer *buffer,
|
||||
const struct wined3d_box *box, const void *data) DECLSPEC_HIDDEN;
|
||||
|
||||
struct wined3d_rendertarget_view
|
||||
{
|
||||
--
|
||||
2.1.3
|
||||
2.6.4
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 60ebba02de794f88fea7b31406493de579ce01e3 Mon Sep 17 00:00:00 2001
|
||||
From 66a6fe6a092a4fa661e5baab52bbb2c1d7c661de Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Wed, 2 Oct 2013 21:47:08 +0200
|
||||
Subject: wined3d: Create VBOs through the command stream.
|
||||
@ -11,7 +11,7 @@ A stop-gap solution to make fglrx happier until buffers are updated.
|
||||
3 files changed, 37 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
|
||||
index 5ebe487..7c3dc17 100644
|
||||
index 8f86a5b..a937b90 100644
|
||||
--- a/dlls/wined3d/buffer.c
|
||||
+++ b/dlls/wined3d/buffer.c
|
||||
@@ -117,7 +117,7 @@ static void delete_gl_buffer(struct wined3d_buffer *This, const struct wined3d_g
|
||||
@ -44,10 +44,10 @@ index 5ebe487..7c3dc17 100644
|
||||
}
|
||||
|
||||
diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c
|
||||
index 21d5b74..c00d1d3 100644
|
||||
index 59b9a9c..33a3b05 100644
|
||||
--- a/dlls/wined3d/cs.c
|
||||
+++ b/dlls/wined3d/cs.c
|
||||
@@ -81,6 +81,7 @@ enum wined3d_cs_op
|
||||
@@ -82,6 +82,7 @@ enum wined3d_cs_op
|
||||
WINED3D_CS_OP_VIEW_DESTROY,
|
||||
WINED3D_CS_OP_VDECL_DESTROY,
|
||||
WINED3D_CS_OP_SHADER_CLEANUP,
|
||||
@ -55,7 +55,7 @@ index 21d5b74..c00d1d3 100644
|
||||
WINED3D_CS_OP_STOP,
|
||||
};
|
||||
|
||||
@@ -470,6 +471,12 @@ struct wined3d_cs_shader_cleanup
|
||||
@@ -480,6 +481,12 @@ struct wined3d_cs_shader_cleanup
|
||||
struct wined3d_shader *shader;
|
||||
};
|
||||
|
||||
@ -68,7 +68,7 @@ index 21d5b74..c00d1d3 100644
|
||||
static void wined3d_cs_mt_submit(struct wined3d_cs *cs, size_t size)
|
||||
{
|
||||
LONG new_val = (cs->queue.head + size) & (WINED3D_CS_QUEUE_SIZE - 1);
|
||||
@@ -2307,6 +2314,30 @@ void wined3d_cs_emit_shader_cleanup(struct wined3d_cs *cs, struct wined3d_shader
|
||||
@@ -2421,6 +2428,30 @@ void wined3d_cs_emit_shader_cleanup(struct wined3d_cs *cs, struct wined3d_shader
|
||||
cs->ops->submit(cs, sizeof(*op));
|
||||
}
|
||||
|
||||
@ -99,7 +99,7 @@ index 21d5b74..c00d1d3 100644
|
||||
static UINT (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void *data) =
|
||||
{
|
||||
/* WINED3D_CS_OP_NOP */ wined3d_cs_exec_nop,
|
||||
@@ -2366,6 +2397,7 @@ static UINT (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void
|
||||
@@ -2481,6 +2512,7 @@ static UINT (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void
|
||||
/* WINED3D_CS_OP_VIEW_DESTROY */ wined3d_cs_exec_view_destroy,
|
||||
/* WINED3D_CS_OP_VDECL_DESTROY */ wined3d_cs_exec_vertex_declaration_destroy,
|
||||
/* WINED3D_CS_OP_SHADER_CLEANUP */ wined3d_cs_exec_shader_cleanup,
|
||||
@ -108,10 +108,10 @@ index 21d5b74..c00d1d3 100644
|
||||
|
||||
static inline void *_wined3d_cs_mt_require_space(struct wined3d_cs *cs, size_t size, BOOL prio)
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index 2cdc6e9..63b8ece 100644
|
||||
index 9eb3c3a..4d5710a 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -2722,6 +2722,7 @@ void wined3d_cs_emit_view_destroy(struct wined3d_cs *cs, struct wined3d_renderta
|
||||
@@ -2822,6 +2822,7 @@ void wined3d_cs_emit_view_destroy(struct wined3d_cs *cs, struct wined3d_renderta
|
||||
void wined3d_cs_emit_vertex_declaration_destroy(struct wined3d_cs *cs,
|
||||
struct wined3d_vertex_declaration *declaration) DECLSPEC_HIDDEN;
|
||||
void wined3d_cs_emit_shader_cleanup(struct wined3d_cs *cs, struct wined3d_shader *shader) DECLSPEC_HIDDEN;
|
||||
@ -119,15 +119,15 @@ index 2cdc6e9..63b8ece 100644
|
||||
|
||||
/* Direct3D terminology with little modifications. We do not have an issued state
|
||||
* because only the driver knows about it, but we have a created state because d3d
|
||||
@@ -2810,6 +2811,8 @@ void buffer_internal_preload(struct wined3d_buffer *buffer, struct wined3d_conte
|
||||
@@ -2910,6 +2911,8 @@ void buffer_internal_preload(struct wined3d_buffer *buffer, struct wined3d_conte
|
||||
const struct wined3d_state *state) DECLSPEC_HIDDEN;
|
||||
void buffer_invalidate_bo_range(struct wined3d_buffer *This, UINT offset, UINT size) DECLSPEC_HIDDEN;
|
||||
void buffer_swap_mem(struct wined3d_buffer *buffer, BYTE *mem) DECLSPEC_HIDDEN;
|
||||
+void buffer_create_buffer_object(struct wined3d_buffer *This,
|
||||
+ struct wined3d_context *context) DECLSPEC_HIDDEN;
|
||||
HRESULT wined3d_buffer_upload_data(struct wined3d_buffer *buffer,
|
||||
const struct wined3d_box *box, const void *data) DECLSPEC_HIDDEN;
|
||||
|
||||
struct wined3d_rendertarget_view
|
||||
{
|
||||
--
|
||||
2.2.1
|
||||
2.6.4
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 6462e66d6d2229b1755e7689e2b01eee97696676 Mon Sep 17 00:00:00 2001
|
||||
From 1ddba156e6aa9f96e9e05b18b1324183884a2596 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Wed, 2 Oct 2013 22:50:08 +0200
|
||||
Subject: wined3d: Clean up buffer resource data through the CS.
|
||||
@ -10,7 +10,7 @@ Subject: wined3d: Clean up buffer resource data through the CS.
|
||||
3 files changed, 50 insertions(+), 19 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
|
||||
index d968dcb..15ed760 100644
|
||||
index e248ca9..12a1ca0 100644
|
||||
--- a/dlls/wined3d/buffer.c
|
||||
+++ b/dlls/wined3d/buffer.c
|
||||
@@ -545,37 +545,38 @@ static void buffer_unload(struct wined3d_resource *resource)
|
||||
@ -72,10 +72,10 @@ index d968dcb..15ed760 100644
|
||||
|
||||
return refcount;
|
||||
diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c
|
||||
index 6edd5e3..40cd85d 100644
|
||||
index 4a42ca3..f64c43d 100644
|
||||
--- a/dlls/wined3d/cs.c
|
||||
+++ b/dlls/wined3d/cs.c
|
||||
@@ -83,6 +83,7 @@ enum wined3d_cs_op
|
||||
@@ -84,6 +84,7 @@ enum wined3d_cs_op
|
||||
WINED3D_CS_OP_SHADER_CLEANUP,
|
||||
WINED3D_CS_OP_CREATE_VBO,
|
||||
WINED3D_CS_OP_RESOURCE_CLEANUP,
|
||||
@ -83,7 +83,7 @@ index 6edd5e3..40cd85d 100644
|
||||
WINED3D_CS_OP_STOP,
|
||||
};
|
||||
|
||||
@@ -484,6 +485,12 @@ struct wined3d_cs_resource_cleanup
|
||||
@@ -494,6 +495,12 @@ struct wined3d_cs_resource_cleanup
|
||||
struct wined3d_resource *resource;
|
||||
};
|
||||
|
||||
@ -96,7 +96,7 @@ index 6edd5e3..40cd85d 100644
|
||||
static void wined3d_cs_mt_submit(struct wined3d_cs *cs, size_t size)
|
||||
{
|
||||
LONG new_val = (cs->queue.head + size) & (WINED3D_CS_QUEUE_SIZE - 1);
|
||||
@@ -2365,6 +2372,26 @@ void wined3d_cs_emit_resource_cleanup(struct wined3d_cs *cs, struct wined3d_reso
|
||||
@@ -2479,6 +2486,26 @@ void wined3d_cs_emit_resource_cleanup(struct wined3d_cs *cs, struct wined3d_reso
|
||||
cs->ops->submit(cs, sizeof(*op));
|
||||
}
|
||||
|
||||
@ -123,7 +123,7 @@ index 6edd5e3..40cd85d 100644
|
||||
static UINT (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void *data) =
|
||||
{
|
||||
/* WINED3D_CS_OP_NOP */ wined3d_cs_exec_nop,
|
||||
@@ -2426,6 +2453,7 @@ static UINT (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void
|
||||
@@ -2541,6 +2568,7 @@ static UINT (* const wined3d_cs_op_handlers[])(struct wined3d_cs *cs, const void
|
||||
/* WINED3D_CS_OP_SHADER_CLEANUP */ wined3d_cs_exec_shader_cleanup,
|
||||
/* WINED3D_CS_OP_CREATE_VBO */ wined3d_cs_exec_create_vbo,
|
||||
/* WINED3D_CS_OP_RESOURCE_CLEANUP */ wined3d_cs_exec_resource_cleanup,
|
||||
@ -132,10 +132,10 @@ index 6edd5e3..40cd85d 100644
|
||||
|
||||
static inline void *_wined3d_cs_mt_require_space(struct wined3d_cs *cs, size_t size, BOOL prio)
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index f4c269c..76c0708 100644
|
||||
index e80859a..83c94c5 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -2709,6 +2709,7 @@ void wined3d_cs_emit_shader_cleanup(struct wined3d_cs *cs, struct wined3d_shader
|
||||
@@ -2826,6 +2826,7 @@ void wined3d_cs_emit_shader_cleanup(struct wined3d_cs *cs, struct wined3d_shader
|
||||
void wined3d_cs_emit_create_vbo(struct wined3d_cs *cs, struct wined3d_buffer *buffer) DECLSPEC_HIDDEN;
|
||||
void wined3d_cs_emit_resource_cleanup(struct wined3d_cs *cs,
|
||||
struct wined3d_resource *resource) DECLSPEC_HIDDEN;
|
||||
@ -143,14 +143,14 @@ index f4c269c..76c0708 100644
|
||||
|
||||
/* Direct3D terminology with little modifications. We do not have an issued state
|
||||
* because only the driver knows about it, but we have a created state because d3d
|
||||
@@ -2799,6 +2800,7 @@ void buffer_invalidate_bo_range(struct wined3d_buffer *This, UINT offset, UINT s
|
||||
@@ -2916,6 +2917,7 @@ void buffer_invalidate_bo_range(struct wined3d_buffer *This, UINT offset, UINT s
|
||||
void buffer_swap_mem(struct wined3d_buffer *buffer, BYTE *mem) DECLSPEC_HIDDEN;
|
||||
void buffer_create_buffer_object(struct wined3d_buffer *This,
|
||||
struct wined3d_context *context) DECLSPEC_HIDDEN;
|
||||
+void wined3d_buffer_cleanup_cs(struct wined3d_buffer *buffer) DECLSPEC_HIDDEN;
|
||||
HRESULT wined3d_buffer_upload_data(struct wined3d_buffer *buffer,
|
||||
const struct wined3d_box *box, const void *data) DECLSPEC_HIDDEN;
|
||||
|
||||
struct wined3d_rendertarget_view
|
||||
{
|
||||
--
|
||||
2.1.3
|
||||
2.6.4
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 660da782e4f462082b582638dab578af11c65b5f Mon Sep 17 00:00:00 2001
|
||||
From d16e01527b157dc80e7d6417b6f209d09450aecd Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Sun, 16 Mar 2014 14:13:42 +0100
|
||||
Subject: wined3d: Send getdc and releasedc through the command stream.
|
||||
@ -8,13 +8,13 @@ activation bug I just regret that I didn't describe more verbously
|
||||
earlier. I forgot what it was about exactly and can't be bothered to
|
||||
investigate atm.
|
||||
---
|
||||
dlls/wined3d/cs.c | 58 +++++++++++++++++++++++++
|
||||
dlls/wined3d/surface.c | 96 +++++++++++++++++++++---------------------
|
||||
dlls/wined3d/cs.c | 58 ++++++++++++++++++++++++++
|
||||
dlls/wined3d/surface.c | 93 +++++++++++++++++++++---------------------
|
||||
dlls/wined3d/wined3d_private.h | 4 ++
|
||||
3 files changed, 110 insertions(+), 48 deletions(-)
|
||||
3 files changed, 109 insertions(+), 46 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c
|
||||
index 56e5e1c..63040f6 100644
|
||||
index afc17a4..4830eb5 100644
|
||||
--- a/dlls/wined3d/cs.c
|
||||
+++ b/dlls/wined3d/cs.c
|
||||
@@ -91,6 +91,8 @@ enum wined3d_cs_op
|
||||
@ -104,17 +104,17 @@ index 56e5e1c..63040f6 100644
|
||||
|
||||
static inline void *_wined3d_cs_mt_require_space(struct wined3d_cs *cs, size_t size, BOOL prio)
|
||||
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
|
||||
index f35f56e..3d42543 100644
|
||||
index c63bb66..18a2f91 100644
|
||||
--- a/dlls/wined3d/surface.c
|
||||
+++ b/dlls/wined3d/surface.c
|
||||
@@ -2497,48 +2497,23 @@ HRESULT CDECL wined3d_surface_map(struct wined3d_surface *surface,
|
||||
@@ -2474,36 +2474,12 @@ HRESULT CDECL wined3d_surface_map(struct wined3d_surface *surface,
|
||||
return wined3d_resource_map(&surface->resource, map_desc, box, flags);
|
||||
}
|
||||
|
||||
-HRESULT CDECL wined3d_surface_getdc(struct wined3d_surface *surface, HDC *dc)
|
||||
+void wined3d_surface_getdc_cs(struct wined3d_surface *surface)
|
||||
{
|
||||
- HRESULT hr;
|
||||
HRESULT hr;
|
||||
struct wined3d_device *device = surface->resource.device;
|
||||
struct wined3d_context *context = NULL;
|
||||
|
||||
@ -145,12 +145,7 @@ index f35f56e..3d42543 100644
|
||||
if (device->d3d_initialized)
|
||||
context = context_acquire(surface->resource.device, NULL);
|
||||
|
||||
/* Create a DIB section if there isn't a dc yet. */
|
||||
if (!surface->hDC)
|
||||
{
|
||||
- hr = surface_create_dib_section(surface);
|
||||
+ HRESULT hr = surface_create_dib_section(surface);
|
||||
if (FAILED(hr))
|
||||
@@ -2514,7 +2490,7 @@ HRESULT CDECL wined3d_surface_getdc(struct wined3d_surface *surface, HDC *dc)
|
||||
{
|
||||
if (context)
|
||||
context_release(context);
|
||||
@ -159,7 +154,7 @@ index f35f56e..3d42543 100644
|
||||
}
|
||||
if (!(surface->resource.map_binding == WINED3D_LOCATION_USER_MEMORY
|
||||
|| surface->container->flags & WINED3D_TEXTURE_PIN_SYSMEM
|
||||
@@ -2551,35 +2526,40 @@ HRESULT CDECL wined3d_surface_getdc(struct wined3d_surface *surface, HDC *dc)
|
||||
@@ -2527,35 +2503,40 @@ HRESULT CDECL wined3d_surface_getdc(struct wined3d_surface *surface, HDC *dc)
|
||||
|
||||
if (context)
|
||||
context_release(context);
|
||||
@ -220,7 +215,7 @@ index f35f56e..3d42543 100644
|
||||
&& surface->resource.map_binding != WINED3D_LOCATION_DIB))
|
||||
{
|
||||
/* The game Salammbo modifies the surface contents without mapping the surface between
|
||||
@@ -2600,6 +2580,26 @@ HRESULT CDECL wined3d_surface_releasedc(struct wined3d_surface *surface, HDC dc)
|
||||
@@ -2576,6 +2557,26 @@ HRESULT CDECL wined3d_surface_releasedc(struct wined3d_surface *surface, HDC dc)
|
||||
if (context)
|
||||
context_release(context);
|
||||
}
|
||||
@ -248,10 +243,10 @@ index f35f56e..3d42543 100644
|
||||
return WINED3D_OK;
|
||||
}
|
||||
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
|
||||
index 7307746..d68bb48 100644
|
||||
index ec7bda3..670c14c 100644
|
||||
--- a/dlls/wined3d/wined3d_private.h
|
||||
+++ b/dlls/wined3d/wined3d_private.h
|
||||
@@ -2540,6 +2540,8 @@ void surface_blt_ugly(struct wined3d_surface *dst_surface, const RECT *dst_rect_
|
||||
@@ -2571,6 +2571,8 @@ void surface_blt_ugly(struct wined3d_surface *dst_surface, const RECT *dst_rect_
|
||||
const WINEDDBLTFX *fx, enum wined3d_texture_filter_type filter) DECLSPEC_HIDDEN;
|
||||
BOOL surface_check_block_align_rect(struct wined3d_surface *surface, const RECT *rect) DECLSPEC_HIDDEN;
|
||||
void wined3d_surface_cleanup_cs(struct wined3d_surface *surface) DECLSPEC_HIDDEN;
|
||||
@ -260,7 +255,7 @@ index 7307746..d68bb48 100644
|
||||
|
||||
void draw_textured_quad(const struct wined3d_surface *src_surface, struct wined3d_context *context,
|
||||
const RECT *src_rect, const RECT *dst_rect, enum wined3d_texture_filter_type filter) DECLSPEC_HIDDEN;
|
||||
@@ -2815,6 +2817,8 @@ HRESULT wined3d_cs_emit_create_swapchain_context(struct wined3d_cs *cs,
|
||||
@@ -2844,6 +2846,8 @@ HRESULT wined3d_cs_emit_create_swapchain_context(struct wined3d_cs *cs,
|
||||
struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN;
|
||||
void wined3d_cs_emit_delete_opengl_contexts(struct wined3d_cs *cs,
|
||||
struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN;
|
||||
@ -270,5 +265,5 @@ index 7307746..d68bb48 100644
|
||||
/* Direct3D terminology with little modifications. We do not have an issued state
|
||||
* because only the driver knows about it, but we have a created state because d3d
|
||||
--
|
||||
2.6.0
|
||||
2.6.4
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 3f00564e2ed6f37b857d0724dea00646285c747c Mon Sep 17 00:00:00 2001
|
||||
From b0f13fef660a46a781b1dd849996049ebe514242 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Stefan=20D=C3=B6singer?= <stefan@codeweavers.com>
|
||||
Date: Fri, 28 Aug 2015 01:13:32 +0200
|
||||
Subject: wined3d: Alloc the buffer map array before mapping the buffer.
|
||||
@ -9,10 +9,10 @@ FIXME: This needs to go into whatever patch creates the VBO on first map.
|
||||
1 file changed, 11 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
|
||||
index 6995264..753e38c 100644
|
||||
index 0c3dc56..531eb39 100644
|
||||
--- a/dlls/wined3d/buffer.c
|
||||
+++ b/dlls/wined3d/buffer.c
|
||||
@@ -1250,6 +1250,16 @@ static HRESULT buffer_init(struct wined3d_buffer *buffer, struct wined3d_device
|
||||
@@ -1317,27 +1317,28 @@ static HRESULT buffer_init(struct wined3d_buffer *buffer, struct wined3d_device
|
||||
buffer->flags |= WINED3D_BUFFER_CREATEBO;
|
||||
}
|
||||
|
||||
@ -28,17 +28,14 @@ index 6995264..753e38c 100644
|
||||
+
|
||||
if (data)
|
||||
{
|
||||
BYTE *ptr;
|
||||
@@ -1258,6 +1268,7 @@ static HRESULT buffer_init(struct wined3d_buffer *buffer, struct wined3d_device
|
||||
if (FAILED(hr))
|
||||
if (FAILED(hr = wined3d_buffer_upload_data(buffer, NULL, data->data)))
|
||||
{
|
||||
ERR("Failed to map buffer, hr %#x\n", hr);
|
||||
ERR("Failed to upload data, hr %#x.\n", hr);
|
||||
+ HeapFree(GetProcessHeap(), 0, buffer->maps);
|
||||
buffer_unload(&buffer->resource);
|
||||
resource_cleanup(&buffer->resource);
|
||||
return hr;
|
||||
@@ -1268,16 +1279,6 @@ static HRESULT buffer_init(struct wined3d_buffer *buffer, struct wined3d_device
|
||||
wined3d_buffer_unmap(buffer);
|
||||
}
|
||||
}
|
||||
|
||||
- buffer->maps = HeapAlloc(GetProcessHeap(), 0, sizeof(*buffer->maps));
|
||||
@ -55,5 +52,5 @@ index 6995264..753e38c 100644
|
||||
buffer->flags |= WINED3D_BUFFER_DOUBLEBUFFER;
|
||||
|
||||
--
|
||||
2.5.1
|
||||
2.6.4
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -2,6 +2,10 @@ wine-staging (1.9.1) UNRELEASED; urgency=low
|
||||
* Removed patch to implement SystemHandleInformation (accepted upstream).
|
||||
* Removed patch to align terminating null WCHAR in SysAllocStringByteLen
|
||||
(accepted upstream).
|
||||
* Removed patch to properly implement GetLargestConsoleWindowSize (accepted
|
||||
upstream).
|
||||
* Removed patch to implement stub for GetLogicalProcessorInformationEx (semi-
|
||||
stub accepted upstream).
|
||||
* Added patch to remove dead code from SCROLL_TrackScrollBar.
|
||||
* Added patch to do a device check before returning a default serial port
|
||||
name.
|
||||
|
Loading…
x
Reference in New Issue
Block a user