Rebase against 17056908acae1d5c7cf5d255ec232210abfe86da

This commit is contained in:
Alistair Leslie-Hughes 2019-04-05 08:50:22 +11:00
parent 553986fdfb
commit 1773e25340
9 changed files with 50 additions and 335 deletions

View File

@ -1,23 +1,23 @@
From f23512417cb3d149a8be4f757282d17cc1f99f9a Mon Sep 17 00:00:00 2001
From fa73044dd60bae90b9a5ec850205a07579d4db17 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Thu, 29 May 2014 23:43:45 +0200
Subject: loader: Add commandline option --patches to show the patch list.
Subject: [PATCH] loader: Add commandline option --patches to show the patch
list.
---
dlls/ntdll/misc.c | 8 ++++++++
dlls/ntdll/ntdll.spec | 1 +
include/wine/library.h | 1 +
libs/wine/config.c | 6 ++++++
libs/wine/wine.def | 1 +
libs/wine/wine.map | 1 +
loader/main.c | 42 +++++++++++++++++++++++++++++++++++++++++-
7 files changed, 59 insertions(+), 1 deletion(-)
6 files changed, 58 insertions(+), 1 deletion(-)
diff --git a/dlls/ntdll/misc.c b/dlls/ntdll/misc.c
index ad1b43b..1f985e7 100644
index bb75d9c..21e2db6 100644
--- a/dlls/ntdll/misc.c
+++ b/dlls/ntdll/misc.c
@@ -55,6 +55,14 @@ const char * CDECL NTDLL_wine_get_version(void)
@@ -61,6 +61,14 @@ const char * CDECL NTDLL_wine_get_version(void)
}
/*********************************************************************
@ -33,10 +33,10 @@ index ad1b43b..1f985e7 100644
*/
const char * CDECL NTDLL_wine_get_build_id(void)
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
index 51de6e7..ee4ed49 100644
index 292b0f6..fb45a94 100644
--- a/dlls/ntdll/ntdll.spec
+++ b/dlls/ntdll/ntdll.spec
@@ -1421,6 +1421,7 @@
@@ -1516,6 +1516,7 @@
# Version
@ cdecl wine_get_version() NTDLL_wine_get_version
@ -57,10 +57,10 @@ index 242bb69..fae73fe 100644
extern void wine_init_argv0_path( const char *argv0 );
extern void wine_exec_wine_binary( const char *name, char **argv, const char *env_var );
diff --git a/libs/wine/config.c b/libs/wine/config.c
index a273502..5262c76 100644
index 3c9110b..5da6263 100644
--- a/libs/wine/config.c
+++ b/libs/wine/config.c
@@ -478,6 +478,12 @@ const char *wine_get_version(void)
@@ -522,6 +522,12 @@ const char *wine_get_version(void)
return PACKAGE_VERSION;
}
@ -73,18 +73,6 @@ index a273502..5262c76 100644
/* return the build id string */
const char *wine_get_build_id(void)
{
diff --git a/libs/wine/wine.def b/libs/wine/wine.def
index ed315bd..5b42029 100644
--- a/libs/wine/wine.def
+++ b/libs/wine/wine.def
@@ -83,6 +83,7 @@ EXPORTS
wine_get_sortkey
wine_get_user_name
wine_get_version
+ wine_get_patches
wine_init
wine_init_argv0_path
wine_is_dbcs_leadbyte
diff --git a/libs/wine/wine.map b/libs/wine/wine.map
index 2159fac..7cb2918 100644
--- a/libs/wine/wine.map
@ -98,10 +86,10 @@ index 2159fac..7cb2918 100644
wine_init_argv0_path;
wine_is_dbcs_leadbyte;
diff --git a/loader/main.c b/loader/main.c
index ce21173..4794e51 100644
index f197cf8..f662912 100644
--- a/loader/main.c
+++ b/loader/main.c
@@ -89,7 +89,8 @@ static void check_command_line( int argc, char *argv[] )
@@ -54,7 +54,8 @@ static void check_command_line( int argc, char *argv[] )
static const char usage[] =
"Usage: wine PROGRAM [ARGUMENTS...] Run the specified program\n"
" wine --help Display this help and exit\n"
@ -111,7 +99,7 @@ index ce21173..4794e51 100644
if (argc <= 1)
{
@@ -106,6 +107,45 @@ static void check_command_line( int argc, char *argv[] )
@@ -71,6 +72,45 @@ static void check_command_line( int argc, char *argv[] )
printf( "%s\n", wine_get_build_id() );
exit(0);
}
@ -158,5 +146,5 @@ index ce21173..4794e51 100644
--
2.2.1
1.9.1

View File

@ -1,16 +1,15 @@
From 41863fd8fdf3a885efa93359a538e4e74258fb30 Mon Sep 17 00:00:00 2001
From 9618572cf2eace39198fb83b747a70d1865015e3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Wed, 28 May 2014 19:50:51 +0200
Subject: loader: Add commandline option --check-libs.
Subject: [PATCH] loader: Add commandline option --check-libs.
---
include/wine/library.h | 2 +
libs/wine/config.c | 124 +++++++++++++++++++++++++++++++++++++++++++++++++
libs/wine/loader.c | 36 ++++++++++++++
libs/wine/wine.def | 2 +
libs/wine/wine.map | 2 +
loader/main.c | 50 +++++++++++++++++++-
6 files changed, 215 insertions(+), 1 deletion(-)
5 files changed, 213 insertions(+), 1 deletion(-)
diff --git a/include/wine/library.h b/include/wine/library.h
index fae73fe..7395a11 100644
@ -33,10 +32,10 @@ index fae73fe..7395a11 100644
extern void *wine_dlsym( void *handle, const char *symbol, char *error, size_t errorsize );
extern int wine_dlclose( void *handle, char *error, size_t errorsize );
diff --git a/libs/wine/config.c b/libs/wine/config.c
index 12f4a67..be9f401 100644
index 5da6263..6cedfb7 100644
--- a/libs/wine/config.c
+++ b/libs/wine/config.c
@@ -443,6 +443,130 @@ const char *wine_get_build_dir(void)
@@ -488,6 +488,130 @@ const char *wine_get_build_dir(void)
return build_dir;
}
@ -168,10 +167,10 @@ index 12f4a67..be9f401 100644
const char *wine_get_server_dir(void)
{
diff --git a/libs/wine/loader.c b/libs/wine/loader.c
index b5b32cc..1453a82 100644
index 649aa22..367dde3 100644
--- a/libs/wine/loader.c
+++ b/libs/wine/loader.c
@@ -1041,6 +1041,42 @@ void *wine_dlopen( const char *filename, int flag, char *error, size_t errorsize
@@ -1064,6 +1064,42 @@ void *wine_dlopen( const char *filename, int flag, char *error, size_t errorsize
}
/***********************************************************************
@ -214,26 +213,6 @@ index b5b32cc..1453a82 100644
* wine_dlsym
*/
void *wine_dlsym( void *handle, const char *symbol, char *error, size_t errorsize )
diff --git a/libs/wine/wine.def b/libs/wine/wine.def
index 5b42029..6acf329 100644
--- a/libs/wine/wine.def
+++ b/libs/wine/wine.def
@@ -64,6 +64,7 @@ EXPORTS
wine_dbg_sprintf
wine_dbgstr_an
wine_dbgstr_wn
+ wine_dladdr
wine_dlclose
wine_dll_enum_load_path
wine_dll_get_owner
@@ -79,6 +80,7 @@ EXPORTS
wine_get_build_id
wine_get_config_dir
wine_get_data_dir
+ wine_get_libs
wine_get_server_dir
wine_get_sortkey
wine_get_user_name
diff --git a/libs/wine/wine.map b/libs/wine/wine.map
index 7cb2918..72ffed8 100644
--- a/libs/wine/wine.map
@ -255,7 +234,7 @@ index 7cb2918..72ffed8 100644
wine_get_sortkey;
wine_get_ss;
diff --git a/loader/main.c b/loader/main.c
index 343ea26..44804e1 100644
index f662912..a2dc40c 100644
--- a/loader/main.c
+++ b/loader/main.c
@@ -36,6 +36,12 @@
@ -271,7 +250,7 @@ index 343ea26..44804e1 100644
#include <pthread.h>
#include "wine/library.h"
@@ -90,7 +96,8 @@ static void check_command_line( int argc, char *argv[] )
@@ -55,7 +61,8 @@ static void check_command_line( int argc, char *argv[] )
"Usage: wine PROGRAM [ARGUMENTS...] Run the specified program\n"
" wine --help Display this help and exit\n"
" wine --version Output version information and exit\n"
@ -281,7 +260,7 @@ index 343ea26..44804e1 100644
if (argc <= 1)
{
@@ -146,6 +153,47 @@ static void check_command_line( int argc, char *argv[] )
@@ -111,6 +118,47 @@ static void check_command_line( int argc, char *argv[] )
exit(0);
}
@ -330,5 +309,5 @@ index 343ea26..44804e1 100644
--
2.7.1
1.9.1

View File

@ -1,87 +0,0 @@
From 6c77d9cea2889d1cacbe8d774f07aef887dee3fa Mon Sep 17 00:00:00 2001
From: Christian Costa <titan.costa@gmail.com>
Date: Sun, 30 Jul 2017 23:50:18 +0200
Subject: d3dx9: Return D3DFMT_A8R8G8B8 in D3DXGetImageInfoFromFileInMemory for
32 bpp BMP with alpha.
---
dlls/d3dx9_36/surface.c | 18 ++++++++++++++++++
dlls/d3dx9_36/tests/surface.c | 26 ++++++++++++++++++++++++++
2 files changed, 44 insertions(+)
diff --git a/dlls/d3dx9_36/surface.c b/dlls/d3dx9_36/surface.c
index 958805a8cc6..87a41255050 100644
--- a/dlls/d3dx9_36/surface.c
+++ b/dlls/d3dx9_36/surface.c
@@ -973,6 +973,24 @@ HRESULT WINAPI D3DXGetImageInfoFromFileInMemory(const void *data, UINT datasize,
}
}
+ /* For 32 bpp BMP, windowscodecs.dll never returns a format with alpha while
+ * d3dx9_xx.dll returns one if at least 1 pixel has a non zero alpha component */
+ if (SUCCEEDED(hr) && (info->Format == D3DFMT_X8R8G8B8) && (info->ImageFileFormat == D3DXIFF_BMP)) {
+ DWORD size = sizeof(DWORD) * info->Width * info->Height;
+ BYTE *buffer = HeapAlloc(GetProcessHeap(), 0, size);
+ hr = IWICBitmapFrameDecode_CopyPixels(frame, NULL, sizeof(DWORD) * info->Width, size, buffer);
+ if (SUCCEEDED(hr)) {
+ DWORD i;
+ for (i = 0; i < info->Width * info->Height; i++) {
+ if (buffer[i*4+3]) {
+ info->Format = D3DFMT_A8R8G8B8;
+ break;
+ }
+ }
+ }
+ HeapFree(GetProcessHeap(), 0, buffer);
+ }
+
if (frame)
IWICBitmapFrameDecode_Release(frame);
diff --git a/dlls/d3dx9_36/tests/surface.c b/dlls/d3dx9_36/tests/surface.c
index 2be48dfddab..e45ee36e69c 100644
--- a/dlls/d3dx9_36/tests/surface.c
+++ b/dlls/d3dx9_36/tests/surface.c
@@ -67,6 +67,24 @@ static const unsigned char bmp_8bpp[] = {
0x00,0x00
};
+/* 2x2 bmp (32 bpp XRGB) */
+static const unsigned char bmp_32bpp_xrgb[] = {
+0x42,0x4d,0x46,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x28,0x00,
+0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x01,0x00,0x20,0x00,0x00,0x00,
+0x00,0x00,0x10,0x00,0x00,0x00,0x12,0x0b,0x00,0x00,0x12,0x0b,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0xa0,0xb0,0xc0,0x00,0xa1,0xb1,0xc1,0x00,0xa2,0xb2,
+0xc2,0x00,0xa3,0xb3,0xc3,0x00
+};
+
+/* 2x2 bmp (32 bpp ARGB) */
+static const unsigned char bmp_32bpp_argb[] = {
+0x42,0x4d,0x46,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x28,0x00,
+0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x01,0x00,0x20,0x00,0x00,0x00,
+0x00,0x00,0x10,0x00,0x00,0x00,0x12,0x0b,0x00,0x00,0x12,0x0b,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0xa0,0xb0,0xc0,0x00,0xa1,0xb1,0xc1,0x00,0xa2,0xb2,
+0xc2,0x00,0xa3,0xb3,0xc3,0x01
+};
+
static const unsigned char png_grayscale[] =
{
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49,
@@ -559,6 +577,14 @@ static void test_D3DXGetImageInfo(void)
ok(hr == D3D_OK, "D3DXGetImageInfoFromFileInMemory returned %#x, expected %#x\n", hr, D3D_OK);
ok(info.Depth == 1, "Got depth %u, expected 1\n", info.Depth);
ok(info.Format == D3DFMT_P8, "Got format %u, expected %u\n", info.Format, D3DFMT_P8);
+ hr = D3DXGetImageInfoFromFileInMemory(bmp_32bpp_xrgb, sizeof(bmp_32bpp_xrgb), &info);
+ ok(hr == D3D_OK, "D3DXGetImageInfoFromFileInMemory returned %#x, expected %#x\n", hr, D3D_OK);
+ ok(info.Depth == 1, "Got depth %u, expected 1\n", info.Depth);
+ ok(info.Format == D3DFMT_X8R8G8B8, "Got format %u, expected %u\n", info.Format, D3DFMT_X8R8G8B8);
+ hr = D3DXGetImageInfoFromFileInMemory(bmp_32bpp_argb, sizeof(bmp_32bpp_argb), &info);
+ ok(hr == D3D_OK, "D3DXGetImageInfoFromFileInMemory returned %#x, expected %#x\n", hr, D3D_OK);
+ ok(info.Depth == 1, "Got depth %u, expected 1\n", info.Depth);
+ ok(info.Format == D3DFMT_A8R8G8B8, "Got format %u, expected %u\n", info.Format, D3DFMT_A8R8G8B8);
/* Grayscale PNG */
hr = D3DXGetImageInfoFromFileInMemory(png_grayscale, sizeof(png_grayscale), &info);
--
2.13.1

View File

@ -1 +0,0 @@
Fixes: Return D3DFMT_A8R8G8B8 in D3DXGetImageInfoFromFileInMemory for 32 bpp BMP with alpha

View File

@ -1,81 +0,0 @@
From c20687718ab550c2f8b481ebad484986cdd588e4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Tue, 28 Jul 2015 17:26:09 +0200
Subject: d3dx9_36: Return dummy skininfo interface in D3DXLoadSkinMeshFromXof
when skin information is unavailable.
---
dlls/d3dx9_36/d3dx9_private.h | 2 ++
dlls/d3dx9_36/mesh.c | 7 +++++++
dlls/d3dx9_36/skin.c | 22 +++++++++++++++++++++-
3 files changed, 30 insertions(+), 1 deletion(-)
diff --git a/dlls/d3dx9_36/d3dx9_private.h b/dlls/d3dx9_36/d3dx9_private.h
index 9c1a6b23a49..f07173cda23 100644
--- a/dlls/d3dx9_36/d3dx9_private.h
+++ b/dlls/d3dx9_36/d3dx9_private.h
@@ -367,4 +367,6 @@ struct ctab_constant {
const struct ctab_constant *d3dx_shader_get_ctab_constant(ID3DXConstantTable *iface,
D3DXHANDLE constant) DECLSPEC_HIDDEN;
+HRESULT create_dummy_skin(ID3DXSkinInfo **iface) DECLSPEC_HIDDEN;
+
#endif /* __WINE_D3DX9_PRIVATE_H */
diff --git a/dlls/d3dx9_36/mesh.c b/dlls/d3dx9_36/mesh.c
index 1ddb4c300cb..1d41b775c1b 100644
--- a/dlls/d3dx9_36/mesh.c
+++ b/dlls/d3dx9_36/mesh.c
@@ -3332,6 +3332,13 @@ static HRESULT parse_mesh(ID3DXFileData *filedata, struct mesh_data *mesh_data,
goto end;
}
+ if ((provide_flags & PROVIDE_SKININFO) && !mesh_data->skin_info)
+ {
+ hr = create_dummy_skin(&mesh_data->skin_info);
+ if (FAILED(hr))
+ goto end;
+ }
+
hr = D3D_OK;
end:
diff --git a/dlls/d3dx9_36/skin.c b/dlls/d3dx9_36/skin.c
index f197d33582a..bed4b9f49d2 100644
--- a/dlls/d3dx9_36/skin.c
+++ b/dlls/d3dx9_36/skin.c
@@ -94,7 +94,7 @@ static ULONG WINAPI d3dx9_skin_info_Release(ID3DXSkinInfo *iface)
HeapFree(GetProcessHeap(), 0, skin->bones[i].vertices);
HeapFree(GetProcessHeap(), 0, skin->bones[i].weights);
}
- HeapFree(GetProcessHeap(), 0, skin->bones);
+ if (skin->bones) HeapFree(GetProcessHeap(), 0, skin->bones);
HeapFree(GetProcessHeap(), 0, skin);
}
@@ -495,3 +495,23 @@ HRESULT WINAPI D3DXCreateSkinInfoFVF(DWORD num_vertices, DWORD fvf, DWORD num_bo
return D3DXCreateSkinInfo(num_vertices, declaration, num_bones, skin_info);
}
+
+HRESULT create_dummy_skin(ID3DXSkinInfo **iface)
+{
+ static const D3DVERTEXELEMENT9 empty_declaration = D3DDECL_END();
+ struct d3dx9_skin_info *object = NULL;
+
+ object = HeapAlloc(GetProcessHeap(), 0, sizeof(*object));
+ if (!object) return E_OUTOFMEMORY;
+
+ object->ID3DXSkinInfo_iface.lpVtbl = &d3dx9_skin_info_vtbl;
+ object->ref = 1;
+ object->num_vertices = 0;
+ object->num_bones = 0;
+ object->vertex_declaration[0] = empty_declaration;
+ object->fvf = 0;
+ object->bones = NULL;
+
+ *iface = &object->ID3DXSkinInfo_iface;
+ return D3D_OK;
+}
--
2.13.1

View File

@ -1 +0,0 @@
Fixes: [33904] Return dummy ID3DXSkinInfo interface when skinning info not present

View File

@ -52,7 +52,7 @@ usage()
# Get the upstream commit sha
upstream_commit()
{
echo "8268c47462544baf5bc7e5071c0a9f2d00c5c2cb"
echo "17056908acae1d5c7cf5d255ec232210abfe86da"
}
# Show version information
@ -106,7 +106,6 @@ patch_enable_all ()
enable_d3d11_Deferred_Context="$1"
enable_d3d9_DesktopWindow="$1"
enable_d3d9_Tests="$1"
enable_d3dx9_36_32bpp_Alpha_Channel="$1"
enable_d3dx9_36_BumpLuminance="$1"
enable_d3dx9_36_CloneEffect="$1"
enable_d3dx9_36_D3DXDisassembleShader="$1"
@ -116,7 +115,6 @@ patch_enable_all ()
enable_d3dx9_36_DDS="$1"
enable_d3dx9_36_DXTn="$1"
enable_d3dx9_36_DrawText="$1"
enable_d3dx9_36_Dummy_Skininfo="$1"
enable_d3dx9_36_Filter_Warnings="$1"
enable_d3dx9_36_Optimize_Inplace="$1"
enable_d3dx9_36_Texture_Align="$1"
@ -460,9 +458,6 @@ patch_enable ()
d3d9-Tests)
enable_d3d9_Tests="$2"
;;
d3dx9_36-32bpp_Alpha_Channel)
enable_d3dx9_36_32bpp_Alpha_Channel="$2"
;;
d3dx9_36-BumpLuminance)
enable_d3dx9_36_BumpLuminance="$2"
;;
@ -490,9 +485,6 @@ patch_enable ()
d3dx9_36-DrawText)
enable_d3dx9_36_DrawText="$2"
;;
d3dx9_36-Dummy_Skininfo)
enable_d3dx9_36_Dummy_Skininfo="$2"
;;
d3dx9_36-Filter_Warnings)
enable_d3dx9_36_Filter_Warnings="$2"
;;
@ -2179,7 +2171,7 @@ fi
# |
# | Modified files:
# | * dlls/kernel32/process.c, dlls/ntdll/misc.c, dlls/ntdll/ntdll.spec, include/wine/library.h, libs/wine/Makefile.in,
# | libs/wine/config.c, libs/wine/loader.c, libs/wine/wine.def, libs/wine/wine.map, loader/main.c
# | libs/wine/config.c, libs/wine/loader.c, libs/wine/wine.map, loader/main.c
# |
if test "$enable_Staging" -eq 1; then
patch_apply Staging/0001-kernel32-Add-winediag-message-to-show-warning-that-t.patch
@ -2749,18 +2741,6 @@ if test "$enable_d3d9_Tests" -eq 1; then
) >> "$patchlist"
fi
# Patchset d3dx9_36-32bpp_Alpha_Channel
# |
# | Modified files:
# | * dlls/d3dx9_36/surface.c, dlls/d3dx9_36/tests/surface.c
# |
if test "$enable_d3dx9_36_32bpp_Alpha_Channel" -eq 1; then
patch_apply d3dx9_36-32bpp_Alpha_Channel/0001-d3dx9-Return-D3DFMT_A8R8G8B8-in-D3DXGetImageInfoFrom.patch
(
printf '%s\n' '+ { "Christian Costa", "d3dx9: Return D3DFMT_A8R8G8B8 in D3DXGetImageInfoFromFileInMemory for 32 bpp BMP with alpha.", 1 },';
) >> "$patchlist"
fi
# Patchset d3dx9_36-BumpLuminance
# |
# | Modified files:
@ -2965,21 +2945,6 @@ if test "$enable_d3dx9_36_DrawText" -eq 1; then
) >> "$patchlist"
fi
# Patchset d3dx9_36-Dummy_Skininfo
# |
# | This patchset fixes the following Wine bugs:
# | * [#33904] Return dummy ID3DXSkinInfo interface when skinning info not present
# |
# | Modified files:
# | * dlls/d3dx9_36/d3dx9_private.h, dlls/d3dx9_36/mesh.c, dlls/d3dx9_36/skin.c
# |
if test "$enable_d3dx9_36_Dummy_Skininfo" -eq 1; then
patch_apply d3dx9_36-Dummy_Skininfo/0001-d3dx9_36-Return-dummy-skininfo-interface-in-D3DXLoad.patch
(
printf '%s\n' '+ { "Michael Müller", "d3dx9_36: Return dummy skininfo interface in D3DXLoadSkinMeshFromXof when skin information is unavailable.", 1 },';
) >> "$patchlist"
fi
# Patchset d3dx9_36-Filter_Warnings
# |
# | This patchset fixes the following Wine bugs:
@ -6189,15 +6154,13 @@ fi
# Patchset taskmgr-Memory_Usage
# |
# | Modified files:
# | * dlls/ntdll/nt.c, programs/taskmgr/graph.c
# | * dlls/ntdll/nt.c
# |
if test "$enable_taskmgr_Memory_Usage" -eq 1; then
patch_apply taskmgr-Memory_Usage/0002-ntdll-Report-system-information-SystemPerformanceInf.patch
patch_apply taskmgr-Memory_Usage/0004-taskmgr-Use-different-units-depending-on-memory-usag.patch
patch_apply taskmgr-Memory_Usage/0005-ntdll-Implement-basic-IO-stats-for-SystemPerformance.patch
(
printf '%s\n' '+ { "Michael Müller", "ntdll: Report system information SystemPerformanceInformation info class.", 2 },';
printf '%s\n' '+ { "Michael Müller", "taskmgr: Use different units depending on memory usage.", 1 },';
printf '%s\n' '+ { "Michael Müller", "ntdll: Implement basic IO stats for SystemPerformanceInformation in NtQuerySystemInformation.", 1 },';
) >> "$patchlist"
fi

View File

@ -1,45 +0,0 @@
From 7136c5e40b705658e8f30f8d11c185aef1cc8f6e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Wed, 27 Jan 2016 05:03:26 +0100
Subject: [PATCH] taskmgr: Use different units depending on memory usage.
---
programs/taskmgr/graph.c | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/programs/taskmgr/graph.c b/programs/taskmgr/graph.c
index 7e978e1..eb2a4a3 100644
--- a/programs/taskmgr/graph.c
+++ b/programs/taskmgr/graph.c
@@ -239,8 +239,10 @@ static void Graph_DrawMemUsageGraph(HDC hDC, HWND hWnd)
/* Top bars that are "unused", i.e. are dark green, representing free memory */
int i;
- static const WCHAR wszFormat[] = {'%','d','K',0};
-
+ static const WCHAR wszFormatKB[] = {'%','u',' ','K','B',0};
+ static const WCHAR wszFormatMB[] = {'%','u',' ','M','B',0};
+ static const WCHAR wszFormatGB[] = {'%','.','1','f',' ','G','B',0};
+
/*
* Get the client area rectangle
*/
@@ -257,8 +259,13 @@ static void Graph_DrawMemUsageGraph(HDC hDC, HWND hWnd)
CommitChargeTotal = (ULONGLONG)PerfDataGetCommitChargeTotalK();
CommitChargeLimit = (ULONGLONG)PerfDataGetCommitChargeLimitK();
- swprintf(Text, wszFormat, (int)CommitChargeTotal);
-
+ if (CommitChargeTotal > 1048576)
+ swprintf(Text, wszFormatGB, (float)CommitChargeTotal / 1048576);
+ else if (CommitChargeTotal > 1024)
+ swprintf(Text, wszFormatMB, (DWORD)CommitChargeTotal / 1024);
+ else
+ swprintf(Text, wszFormatKB, (DWORD)CommitChargeTotal);
+
/*
* Draw the font text onto the graph
* The bottom 20 pixels are reserved for the text
--
1.9.1

View File

@ -1,4 +1,4 @@
From 86345de0628fe7d467f25797c532a3a11e5b61eb Mon Sep 17 00:00:00 2001
From 06aedadd2d7a6f0333e050806ce1d368e8a5fece Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Mon, 15 May 2017 02:05:49 +0200
Subject: [PATCH] winebuild: Use multipass label system to generate fake dlls.
@ -11,10 +11,10 @@ Subject: [PATCH] winebuild: Use multipass label system to generate fake dlls.
4 files changed, 180 insertions(+), 64 deletions(-)
diff --git a/tools/winebuild/build.h b/tools/winebuild/build.h
index b8ab56e..218b721 100644
index 0b7cb37..c1703de 100644
--- a/tools/winebuild/build.h
+++ b/tools/winebuild/build.h
@@ -332,6 +332,7 @@ extern size_t input_buffer_pos;
@@ -338,6 +338,7 @@ extern size_t input_buffer_pos;
extern size_t input_buffer_size;
extern unsigned char *output_buffer;
extern size_t output_buffer_pos;
@ -22,7 +22,7 @@ index b8ab56e..218b721 100644
extern size_t output_buffer_size;
extern void init_input_buffer( const char *file );
@@ -347,6 +348,11 @@ extern void put_dword( unsigned int val );
@@ -353,6 +354,11 @@ extern void put_dword( unsigned int val );
extern void put_qword( unsigned int val );
extern void put_pword( unsigned int val );
extern void align_output( unsigned int align );
@ -35,10 +35,10 @@ index b8ab56e..218b721 100644
/* global variables */
diff --git a/tools/winebuild/res32.c b/tools/winebuild/res32.c
index b20dfb4..2f35918 100644
index bd55bb2..d932901 100644
--- a/tools/winebuild/res32.c
+++ b/tools/winebuild/res32.c
@@ -534,7 +534,6 @@ void output_bin_resources( DLLSPEC *spec, unsigned int start_rva )
@@ -539,7 +539,6 @@ void output_bin_resources( DLLSPEC *spec, unsigned int start_rva )
if (!spec->nb_resources) return;
tree = build_resource_tree( spec, &data_offset );
@ -47,10 +47,10 @@ index b20dfb4..2f35918 100644
/* output the resource directories */
diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c
index dc63c39..59cced1 100644
index f9b6a72..f176519 100644
--- a/tools/winebuild/spec32.c
+++ b/tools/winebuild/spec32.c
@@ -811,11 +811,11 @@ void BuildSpec32File( DLLSPEC *spec )
@@ -823,11 +823,11 @@ void output_pe_module( DLLSPEC *spec )
/*******************************************************************
@ -65,7 +65,7 @@ index dc63c39..59cced1 100644
{
static const unsigned char dll_code_section[] = { 0x31, 0xc0, /* xor %eax,%eax */
0xc2, 0x0c, 0x00 }; /* ret $12 */
@@ -827,22 +827,8 @@ void output_fake_module( DLLSPEC *spec )
@@ -839,22 +839,8 @@ void output_fake_module( DLLSPEC *spec )
const unsigned int page_size = get_page_size();
const unsigned int section_align = page_size;
const unsigned int file_align = 0x200;
@ -88,7 +88,7 @@ index dc63c39..59cced1 100644
put_word( 0x5a4d ); /* e_magic */
put_word( 0x40 ); /* e_cblp */
@@ -870,7 +856,7 @@ void output_fake_module( DLLSPEC *spec )
@@ -882,7 +868,7 @@ void output_fake_module( DLLSPEC *spec )
put_dword( lfanew );
put_data( fakedll_signature, sizeof(fakedll_signature) );
@ -97,7 +97,7 @@ index dc63c39..59cced1 100644
put_dword( 0x4550 ); /* Signature */
switch(target_cpu)
@@ -894,11 +880,11 @@ void output_fake_module( DLLSPEC *spec )
@@ -906,11 +892,11 @@ void output_fake_module( DLLSPEC *spec )
IMAGE_NT_OPTIONAL_HDR32_MAGIC ); /* Magic */
put_byte( 7 ); /* MajorLinkerVersion */
put_byte( 10 ); /* MinorLinkerVersion */
@ -112,7 +112,7 @@ index dc63c39..59cced1 100644
if (get_ptr_size() == 4) put_dword( 0 ); /* BaseOfData */
put_pword( 0x10000000 ); /* ImageBase */
put_dword( section_align ); /* SectionAlignment */
@@ -910,8 +896,8 @@ void output_fake_module( DLLSPEC *spec )
@@ -922,8 +908,8 @@ void output_fake_module( DLLSPEC *spec )
put_word( spec->subsystem_major ); /* MajorSubsystemVersion */
put_word( spec->subsystem_minor ); /* MinorSubsystemVersion */
put_dword( 0 ); /* Win32VersionValue */
@ -123,7 +123,7 @@ index dc63c39..59cced1 100644
put_dword( 0 ); /* CheckSum */
put_word( spec->subsystem ); /* Subsystem */
put_word( spec->dll_characteristics ); /* DllCharacteristics */
@@ -924,10 +910,10 @@ void output_fake_module( DLLSPEC *spec )
@@ -936,10 +922,10 @@ void output_fake_module( DLLSPEC *spec )
put_dword( 0 ); put_dword( 0 ); /* DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT] */
put_dword( 0 ); put_dword( 0 ); /* DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT] */
@ -137,7 +137,7 @@ index dc63c39..59cced1 100644
}
else
{
@@ -937,8 +923,8 @@ void output_fake_module( DLLSPEC *spec )
@@ -949,8 +935,8 @@ void output_fake_module( DLLSPEC *spec )
put_dword( 0 ); put_dword( 0 ); /* DataDirectory[IMAGE_DIRECTORY_ENTRY_EXCEPTION] */
put_dword( 0 ); put_dword( 0 ); /* DataDirectory[IMAGE_DIRECTORY_ENTRY_SECURITY] */
@ -148,7 +148,7 @@ index dc63c39..59cced1 100644
put_dword( 0 ); put_dword( 0 ); /* DataDirectory[IMAGE_DIRECTORY_ENTRY_DEBUG] */
put_dword( 0 ); put_dword( 0 ); /* DataDirectory[IMAGE_DIRECTORY_ENTRY_COPYRIGHT] */
put_dword( 0 ); put_dword( 0 ); /* DataDirectory[IMAGE_DIRECTORY_ENTRY_GLOBALPTR] */
@@ -951,62 +937,95 @@ void output_fake_module( DLLSPEC *spec )
@@ -963,62 +949,95 @@ void output_fake_module( DLLSPEC *spec )
put_dword( 0 ); put_dword( 0 ); /* DataDirectory[15] */
/* .text section */
@ -280,11 +280,11 @@ index dc63c39..59cced1 100644
}
diff --git a/tools/winebuild/utils.c b/tools/winebuild/utils.c
index f331903..7188d10 100644
index 355c5ab..26ef44e 100644
--- a/tools/winebuild/utils.c
+++ b/tools/winebuild/utils.c
@@ -37,6 +37,7 @@
#include <sys/mman.h>
@@ -34,6 +34,7 @@
# include <sys/stat.h>
#endif
+#include "wine/list.h"
@ -378,7 +378,7 @@ index f331903..7188d10 100644
static void check_output_buffer_space( size_t size )
{
if (output_buffer_pos + size >= output_buffer_size)
@@ -560,7 +639,9 @@ void init_output_buffer(void)
@@ -555,7 +634,9 @@ void init_output_buffer(void)
{
output_buffer_size = 1024;
output_buffer_pos = 0;
@ -388,7 +388,7 @@ index f331903..7188d10 100644
}
void flush_output_buffer(void)
@@ -570,6 +651,7 @@ void flush_output_buffer(void)
@@ -565,6 +646,7 @@ void flush_output_buffer(void)
fatal_error( "Error writing to %s\n", output_file_name );
close_output_file();
free( output_buffer );
@ -396,7 +396,7 @@ index f331903..7188d10 100644
}
unsigned char get_byte(void)
@@ -609,12 +691,14 @@ void put_data( const void *data, size_t size )
@@ -604,12 +686,14 @@ void put_data( const void *data, size_t size )
check_output_buffer_space( size );
memcpy( output_buffer + output_buffer_pos, data, size );
output_buffer_pos += size;
@ -411,7 +411,7 @@ index f331903..7188d10 100644
}
void put_word( unsigned short val )
@@ -661,6 +745,14 @@ void align_output( unsigned int align )
@@ -656,6 +740,14 @@ void align_output( unsigned int align )
output_buffer_pos += size;
}