Rebase against a786dca935c3e9b3d85853db4b61700e590a1c8b.

This commit is contained in:
Sebastian Lackner 2015-11-13 18:00:14 +01:00
parent 75dc81b7d3
commit 2c3f70b42b
10 changed files with 87 additions and 179 deletions

View File

@ -239,7 +239,7 @@ for more details.*
* Port Royale doesn't display ocean correctly ([Wine Bug #17913](https://bugs.winehq.org/show_bug.cgi?id=17913))
* Prevent window managers from grouping all wine programs together ([Wine Bug #32699](https://bugs.winehq.org/show_bug.cgi?id=32699))
* Process APC calls before starting process
* Process Hacker 2.x needs ntoskrnl.ProbeForRead ([Wine Bug #38103](https://bugs.winehq.org/show_bug.cgi?id=38103))
* ~~Process Hacker 2.x needs ntoskrnl.ProbeForRead~~ ([Wine Bug #38103](https://bugs.winehq.org/show_bug.cgi?id=38103))
* Properly close sockets when WSACleanup is called ([Wine Bug #18670](https://bugs.winehq.org/show_bug.cgi?id=18670))
* 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))

1
debian/changelog vendored
View File

@ -24,6 +24,7 @@ wine-staging (1.7.55) UNRELEASED; urgency=low
FILE_DELETE_ON_CLOSE (accepted upstream).
* Removed patch to fix cursor clip regression / broken raw input in multiple
games (accepted upstream).
* Removed patch for ntoskrnl.ProbeForRead stub (accepted upstream).
-- Sebastian Lackner <sebastian@fds-team.de> Sun, 01 Nov 2015 01:06:20 +0100
wine-staging (1.7.54) unstable; urgency=low

View File

@ -1,4 +1,4 @@
From 65feac97e132fb25278e7c4c904d2ae831bf8a50 Mon Sep 17 00:00:00 2001
From 2e1a505fedd43f0f03ba36e1a8413bf04f8afa83 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Thu, 2 Oct 2014 19:53:46 +0200
Subject: winelib: Append '(Staging)' at the end of the version string.
@ -8,18 +8,18 @@ Subject: winelib: Append '(Staging)' at the end of the version string.
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libs/wine/Makefile.in b/libs/wine/Makefile.in
index bc5f6fe..799b032 100644
index 1b7fea8..780be10 100644
--- a/libs/wine/Makefile.in
+++ b/libs/wine/Makefile.in
@@ -105,7 +105,7 @@ config_EXTRADEFS = \
-DBIN_TO_DATADIR=\"`$(MAKEDEP) -R ${bindir} ${datadir}/wine`\"
@@ -112,7 +112,7 @@ libwine_LDFLAGS = $(LIBWINE_LDFLAGS)
libwine_DEPS = $(LIBWINE_DEPENDS)
version.c: dummy
- version=`(GIT_DIR=$(top_srcdir)/.git git describe HEAD 2>/dev/null || echo "wine-@PACKAGE_VERSION@") | sed -n -e '$$s/\(.*\)/const char wine_build[] = "\1";/p'` && (echo $$version | cmp -s - $@) || echo $$version >$@ || ($(RM) $@ && exit 1)
+ version=`(GIT_DIR=$(top_srcdir)/.git git describe HEAD 2>/dev/null || echo "wine-@PACKAGE_VERSION@") | sed -n -e '$$s/\(.*\)/const char wine_build[] = "\1 (Staging)";/p'` && (echo $$version | cmp -s - $@) || echo $$version >$@ || ($(RM) $@ && exit 1)
- version=`(GIT_DIR=$(top_srcdir)/.git git describe HEAD 2>/dev/null || echo "wine-$(PACKAGE_VERSION)") | sed -n -e '$$s/\(.*\)/const char wine_build[] = "\1";/p'` && (echo $$version | cmp -s - $@) || echo $$version >$@ || ($(RM) $@ && exit 1)
+ version=`(GIT_DIR=$(top_srcdir)/.git git describe HEAD 2>/dev/null || echo "wine-$(PACKAGE_VERSION)") | sed -n -e '$$s/\(.*\)/const char wine_build[] = "\1 (Staging)";/p'` && (echo $$version | cmp -s - $@) || echo $$version >$@ || ($(RM) $@ && exit 1)
dummy:
.PHONY: dummy
--
2.6.1
2.6.2

View File

@ -1,4 +1,4 @@
From 5733c4ddb3e5a2ff310fed2a585da13538345b97 Mon Sep 17 00:00:00 2001
From 94f9145a8c4e06efe46330c75819eb18486965f3 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Sun, 18 Jan 2015 05:42:10 +0100
Subject: ntoskrnl.exe/tests: Add initial driver testing framework and
@ -24,10 +24,10 @@ Subject: ntoskrnl.exe/tests: Add initial driver testing framework and
create mode 100644 dlls/ntoskrnl.exe/tests/ntoskrnl.c
diff --git a/aclocal.m4 b/aclocal.m4
index 774377d..bf91b70 100644
index d5a3532..f33846f 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -629,6 +629,28 @@ $ac_dir/crosstest: $ac_dir/Makefile __builddeps__ dummy
@@ -617,6 +617,28 @@ $ac_dir/crosstest: $ac_dir/Makefile __builddeps__ dummy
fi
}
@ -56,7 +56,7 @@ index 774377d..bf91b70 100644
wine_fn_config_tool ()
{
ac_dir=$[1]
@@ -734,6 +756,15 @@ wine_fn_config_test $1 ac_name[]ac_suffix [$2]dnl
@@ -722,6 +744,15 @@ wine_fn_config_test $1 ac_name[]ac_suffix [$2]dnl
m4_popdef([ac_suffix])dnl
m4_popdef([ac_name])])
@ -73,10 +73,10 @@ index 774377d..bf91b70 100644
dnl
dnl Usage: WINE_CONFIG_LIB(name,flags)
diff --git a/configure.ac b/configure.ac
index 48268b0..782d1d7 100644
index 7d2449f..dd5ee1e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3142,6 +3142,8 @@ WINE_CONFIG_TEST(dlls/ntdll/tests)
@@ -3097,6 +3097,8 @@ WINE_CONFIG_TEST(dlls/ntdll/tests)
WINE_CONFIG_DLL(ntdsapi,,[implib])
WINE_CONFIG_TEST(dlls/ntdsapi/tests)
WINE_CONFIG_DLL(ntoskrnl.exe,,[implib])
@ -530,13 +530,13 @@ index 0000000..9b8a6a7
+ unload_driver(service, filename);
+}
diff --git a/tools/make_makefiles b/tools/make_makefiles
index b7f8b63..8143c4f 100755
index 78b6dea..cb77784 100755
--- a/tools/make_makefiles
+++ b/tools/make_makefiles
@@ -200,7 +200,7 @@ sub parse_makefile($)
while (/\\$/) { chop; $_ .= <MAKE>; chomp; } # merge continued lines
next if (/^\s*$/);
@@ -204,7 +204,7 @@ sub parse_makefile($)
{
die "Configure substitution is not allowed in $file";
}
- if (/^\s*(MODULE|IMPORTLIB|TESTDLL|PARENTSRC|APPMODE)\s*=\s*(.*)/)
+ if (/^\s*(MODULE|IMPORTLIB|TESTDLL|RESOURCE|PARENTSRC|APPMODE)\s*=\s*(.*)/)
{
@ -557,7 +557,7 @@ index b7f8b63..8143c4f 100755
{
die "MODULE should not be defined as static lib in $file" unless $file =~ /^dlls\//;
diff --git a/tools/makedep.c b/tools/makedep.c
index 023c0ec..a4884cf 100644
index 14a26ef..ad61e99 100644
--- a/tools/makedep.c
+++ b/tools/makedep.c
@@ -171,4 +171,5 @@ struct makefile
@ -566,7 +566,7 @@ index 023c0ec..a4884cf 100644
+ const char *resource;
const char *sharedlib;
const char *staticlib;
@@ -474,6 +475,30 @@ static char *get_extension( char *filename )
@@ -472,6 +473,30 @@ static char *get_extension( char *filename )
/*******************************************************************
@ -597,7 +597,7 @@ index 023c0ec..a4884cf 100644
* replace_extension
*/
static char *replace_extension( const char *name, const char *old_ext, const char *new_ext )
@@ -2025,6 +2050,7 @@ static struct strarray output_sources( const struct makefile *make, struct strar
@@ -2044,6 +2069,7 @@ static struct strarray output_sources( const struct makefile *make, struct strar
struct strarray subdirs = empty_strarray;
struct strarray phony_targets = empty_strarray;
struct strarray all_targets = empty_strarray;
@ -605,7 +605,7 @@ index 023c0ec..a4884cf 100644
struct strarray install_rules[NB_INSTALL_RULES];
char *ldrpath_local = get_expanded_make_variable( make, "LDRPATH_LOCAL" );
char *ldrpath_install = get_expanded_make_variable( make, "LDRPATH_INSTALL" );
@@ -2297,7 +2323,7 @@ static struct strarray output_sources( const struct makefile *make, struct strar
@@ -2319,7 +2345,7 @@ static struct strarray output_sources( const struct makefile *make, struct strar
}
else
{
@ -614,7 +614,7 @@ index 023c0ec..a4884cf 100644
(source->file->flags & FLAG_C_IMPLIB) ||
(make->module && make->staticlib);
@@ -2311,7 +2337,7 @@ static struct strarray output_sources( const struct makefile *make, struct strar
@@ -2333,7 +2359,7 @@ static struct strarray output_sources( const struct makefile *make, struct strar
output_filenames( includes );
output_filenames( make->define_args );
output_filenames( extradefs );
@ -623,7 +623,7 @@ index 023c0ec..a4884cf 100644
{
output_filenames( dll_flags );
if (make->use_msvcrt) output_filenames( msvcrt_flags );
@@ -2390,6 +2416,72 @@ static struct strarray output_sources( const struct makefile *make, struct strar
@@ -2412,6 +2438,72 @@ static struct strarray output_sources( const struct makefile *make, struct strar
output( "\n" );
}
@ -696,7 +696,7 @@ index 023c0ec..a4884cf 100644
if (make->module && !make->staticlib)
{
struct strarray all_libs = empty_strarray;
@@ -2780,6 +2872,83 @@ static struct strarray output_sources( const struct makefile *make, struct strar
@@ -2806,6 +2898,83 @@ static struct strarray output_sources( const struct makefile *make, struct strar
add_install_rule( make, install_rules, make->scripts.str[i], make->scripts.str[i],
strmake( "S$(bindir)/%s", make->scripts.str[i] ));
@ -780,7 +780,7 @@ index 023c0ec..a4884cf 100644
if (all_targets.count)
{
output( "all:" );
@@ -3075,4 +3244,5 @@ static void update_makefile( const char *path )
@@ -3101,4 +3270,5 @@ static void update_makefile( const char *path )
make->module = get_expanded_make_variable( make, "MODULE" );
make->testdll = get_expanded_make_variable( make, "TESTDLL" );
+ make->resource = get_expanded_make_variable( make, "RESOURCE" );

View File

@ -1,42 +0,0 @@
From 091911f7841be1d88128ed63fd1d56f44d7c99a6 Mon Sep 17 00:00:00 2001
From: Austin English <austinenglish@gmail.com>
Date: Fri, 27 Feb 2015 01:27:07 +0100
Subject: ntoskrnl.exe: Add stub for ProbeForRead.
---
dlls/ntoskrnl.exe/ntoskrnl.c | 8 ++++++++
dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c
index 3d1db1b..a4d5641 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.c
+++ b/dlls/ntoskrnl.exe/ntoskrnl.c
@@ -2470,3 +2470,11 @@ void WINAPI KeLeaveCriticalRegion(void)
{
FIXME(": stub\n");
}
+
+/***********************************************************************
+ * ProbeForRead (NTOSKRNL.EXE.@)
+ */
+VOID WINAPI ProbeForRead(PVOID address, SIZE_T length, ULONG alignment)
+{
+ FIXME("%p %lu %u\n", address, length, alignment);
+}
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
index e1d594b..14ce087 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
+++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
@@ -835,7 +835,7 @@
@ stub PoShutdownBugCheck
@ stub PoStartNextPowerIrp
@ stub PoUnregisterSystemState
-@ stub ProbeForRead
+@ stdcall ProbeForRead(ptr long long)
@ stub ProbeForWrite
@ stub PsAssignImpersonationToken
@ stub PsChargePoolQuota
--
2.5.1

View File

@ -1,42 +0,0 @@
From e182b0a8eec7ec662d107591cf13cc80dc53ca98 Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Fri, 27 Feb 2015 01:29:54 +0100
Subject: ntoskrnl.exe: Add stub for ProbeForWrite.
---
dlls/ntoskrnl.exe/ntoskrnl.c | 8 ++++++++
dlls/ntoskrnl.exe/ntoskrnl.exe.spec | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c
index 6b52d27..274132e 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.c
+++ b/dlls/ntoskrnl.exe/ntoskrnl.c
@@ -2203,3 +2203,11 @@ VOID WINAPI ProbeForRead(PVOID address, SIZE_T length, ULONG alignment)
{
FIXME("%p %lu %u\n", address, length, alignment);
}
+
+/***********************************************************************
+ * ProbeForWrite (NTOSKRNL.EXE.@)
+ */
+VOID WINAPI ProbeForWrite(PVOID address, SIZE_T length, ULONG alignment)
+{
+ FIXME("%p %lu %u\n", address, length, alignment);
+}
diff --git a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
index 6e86a16..e813146 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
+++ b/dlls/ntoskrnl.exe/ntoskrnl.exe.spec
@@ -836,7 +836,7 @@
@ stub PoStartNextPowerIrp
@ stub PoUnregisterSystemState
@ stdcall ProbeForRead(ptr long long)
-@ stub ProbeForWrite
+@ stdcall ProbeForWrite(ptr long long)
@ stub PsAssignImpersonationToken
@ stub PsChargePoolQuota
@ stub PsChargeProcessNonPagedPoolQuota
--
2.3.0

View File

@ -9,6 +9,4 @@ Fixes: Add stub for ntoskrnl.ExReleaseResourceForThread
Fixes: Add stub for ntoskrnl.ExDeleteResourceLite
Fixes: Add stub for ntoskrnl.Mm{Map,Unmap}LockedPages
Fixes: Implement ntoskrnl.KeInitializeMutex
Fixes: [38103] Process Hacker 2.x needs ntoskrnl.ProbeForRead
Fixes: Add stub for ntoskrnl.PsRemoveLoadImageNotifyRoutine
# Fixes: [21448] SecuROM 5.x media validation fails

View File

@ -52,7 +52,7 @@ usage()
# Get the upstream commit sha
upstream_commit()
{
echo "370254cbe93beae6a9ff693d98c638db5bfb1134"
echo "a786dca935c3e9b3d85853db4b61700e590a1c8b"
}
# Show version information
@ -4411,9 +4411,6 @@ fi
# Patchset ntoskrnl-Stubs
# |
# | This patchset fixes the following Wine bugs:
# | * [#38103] Process Hacker 2.x needs ntoskrnl.ProbeForRead
# |
# | Modified files:
# | * dlls/ntoskrnl.exe/ntoskrnl.c, dlls/ntoskrnl.exe/ntoskrnl.exe.spec, include/ddk/wdm.h
# |
@ -4429,9 +4426,7 @@ if test "$enable_ntoskrnl_Stubs" -eq 1; then
patch_apply ntoskrnl-Stubs/0009-ntoskrnl.exe-Fix-IoReleaseCancelSpinLock-argument.patch
patch_apply ntoskrnl-Stubs/0010-ntoskrnl.exe-Implement-MmMapLockedPages-and-MmUnmapL.patch
patch_apply ntoskrnl-Stubs/0011-ntoskrnl.exe-Implement-KeInitializeMutex.patch
patch_apply ntoskrnl-Stubs/0012-ntoskrnl.exe-Add-stub-for-ProbeForRead.patch
patch_apply ntoskrnl-Stubs/0013-ntoskrnl.exe-Add-stub-for-ProbeForWrite.patch
patch_apply ntoskrnl-Stubs/0014-ntoskrnl.exe-Add-stub-for-PsRemoveLoadImageNotifyRou.patch
patch_apply ntoskrnl-Stubs/0012-ntoskrnl.exe-Add-stub-for-PsRemoveLoadImageNotifyRou.patch
(
echo '+ { "Austin English", "ntoskrnl.exe: add KeWaitForMultipleObjects stub.", 1 },';
echo '+ { "Alexander Morozov", "ntoskrnl.exe: Add stub for IoGetAttachedDeviceReference.", 1 },';
@ -4444,8 +4439,6 @@ if test "$enable_ntoskrnl_Stubs" -eq 1; then
echo '+ { "Christian Costa", "ntoskrnl.exe: Fix IoReleaseCancelSpinLock argument.", 1 },';
echo '+ { "Christian Costa", "ntoskrnl.exe: Implement MmMapLockedPages and MmUnmapLockedPages.", 1 },';
echo '+ { "Alexander Morozov", "ntoskrnl.exe: Implement KeInitializeMutex.", 1 },';
echo '+ { "Austin English", "ntoskrnl.exe: Add stub for ProbeForRead.", 1 },';
echo '+ { "Sebastian Lackner", "ntoskrnl.exe: Add stub for ProbeForWrite.", 1 },';
echo '+ { "Michael Müller", "ntoskrnl.exe: Add stub for PsRemoveLoadImageNotifyRoutine.", 1 },';
) >> "$patchlist"
fi

View File

@ -1218,7 +1218,7 @@ diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader
shader_arb_ps_local_constants(compiled, context, state, rt_height);
}
@@ -7850,7 +7858,11 @@
@@ -7851,7 +7859,11 @@
/* Now load the surface */
if (wined3d_settings.offscreen_rendering_mode != ORM_FBO
@ -1230,7 +1230,7 @@ diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader
== WINED3D_LOCATION_DRAWABLE
&& !wined3d_resource_is_offscreen(&src_surface->container->resource))
{
@@ -7880,6 +7892,7 @@
@@ -7881,6 +7893,7 @@
/* Leave the opengl state valid for blitting */
arbfp_blit_unset(context->gl_info);
@ -1238,7 +1238,7 @@ diff --git a/dlls/wined3d/arb_program_shader.c b/dlls/wined3d/arb_program_shader
if (wined3d_settings.cs_multithreaded)
context->gl_info->gl_ops.gl.p_glFinish();
else if (wined3d_settings.strict_draw_ordering
@@ -7891,6 +7904,17 @@
@@ -7892,6 +7905,17 @@
wined3d_resource_validate_location(&dst_surface->resource, dst_surface->container->resource.draw_binding);
wined3d_resource_invalidate_location(&dst_surface->resource, ~dst_surface->container->resource.draw_binding);
@ -1472,7 +1472,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
}
static void context_map_stage(struct wined3d_context *context, DWORD stage, DWORD unit)
@@ -2728,12 +2790,22 @@
@@ -2737,12 +2799,22 @@
/* Context activation is done by the caller. */
void context_state_drawbuf(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id)
{
@ -1495,7 +1495,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
if (rt_mask != *cur_mask)
{
context_apply_draw_buffers(context, rt_mask);
@@ -2935,7 +3007,11 @@
@@ -2944,7 +3016,11 @@
{
if (state->vertex_declaration->half_float_conv_needed && !stream_info->all_vbo)
{
@ -1507,7 +1507,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
context->use_immediate_mode_draw = TRUE;
}
else
@@ -3110,11 +3186,19 @@
@@ -3119,11 +3195,19 @@
}
/* Context activation is done by the caller. */
@ -1527,7 +1527,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
unsigned int i;
WORD map;
@@ -3147,12 +3231,17 @@
@@ -3156,12 +3240,17 @@
for (i = 0, map = context->stream_info.use_map; map; map >>= 1, ++i)
{
if (map & 1)
@ -1545,7 +1545,7 @@ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
}
if (state->index_buffer)
{
@@ -3247,7 +3336,11 @@
@@ -3256,7 +3345,11 @@
if (texture->texture_srgb.name)
wined3d_texture_load(texture, context, TRUE);
wined3d_texture_load(texture, context, FALSE);
@ -1692,7 +1692,7 @@ diff --git a/dlls/d3d9/tests/visual.c b/dlls/d3d9/tests/visual.c
/* Vendor-specific formats like ATI2N are a non-issue here since they're not
* supported as offscreen plain surfaces and do not support D3DUSAGE_RENDERTARGET
* when created as texture. */
@@ -17377,7 +17381,11 @@
@@ -17491,7 +17495,11 @@
fill_surface(surface_managed, 0x0000ff00, D3DLOCK_NO_DIRTY_UPDATE);
add_dirty_rect_test_draw(device);
color = getPixelColor(device, 320, 240);
@ -1765,7 +1765,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
};
extern struct wined3d_settings wined3d_settings DECLSPEC_HIDDEN;
@@ -1024,9 +1054,14 @@
@@ -1026,9 +1056,14 @@
WORD use_map; /* MAX_ATTRIBS, 16 */
};
@ -1780,7 +1780,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
DWORD get_flexible_vertex_size(DWORD d3dvtVertexType) DECLSPEC_HIDDEN;
#define eps 1e-8f
@@ -1114,8 +1149,10 @@
@@ -1116,8 +1151,10 @@
struct list entry;
GLuint id;
struct wined3d_context *context;
@ -1791,7 +1791,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
};
union wined3d_gl_query_object
@@ -1151,6 +1188,7 @@
@@ -1153,6 +1190,7 @@
struct list entry;
GLuint id;
struct wined3d_context *context;
@ -1799,7 +1799,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
UINT64 timestamp;
};
@@ -1186,6 +1224,12 @@
@@ -1188,6 +1226,12 @@
for (i = 0; i < min(dst->rt_size, src->rt_size); i++)
dst->render_targets[i] = src->render_targets[i];
}
@ -1812,7 +1812,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
struct wined3d_context
{
@@ -1201,7 +1245,9 @@
@@ -1203,7 +1247,9 @@
DWORD dirtyArray[STATE_HIGHEST + 1]; /* Won't get bigger than that, a state is never marked dirty 2 times */
DWORD numDirtyEntries;
DWORD isStateDirty[STATE_HIGHEST / (sizeof(DWORD) * CHAR_BIT) + 1]; /* Bitmap to find out quickly if a state is dirty */
@ -1822,7 +1822,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
struct wined3d_swapchain *swapchain;
struct wined3d_surface *current_rt;
@@ -1298,8 +1344,17 @@
@@ -1300,8 +1346,17 @@
GLfloat fog_coord_value;
GLfloat color[4], fogstart, fogend, fogcolor[4];
GLuint dummy_arbfp_prog;
@ -1840,7 +1840,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
};
typedef void (*APPLYSTATEFUNC)(struct wined3d_context *ctx, const struct wined3d_state *state, DWORD state_id);
@@ -1439,8 +1494,12 @@
@@ -1442,8 +1497,12 @@
void context_apply_blit_state(struct wined3d_context *context, const struct wined3d_device *device) DECLSPEC_HIDDEN;
BOOL context_apply_clear_state(struct wined3d_context *context, const struct wined3d_device *device,
UINT rt_count, const struct wined3d_fb_state *fb) DECLSPEC_HIDDEN;
@ -1853,7 +1853,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
void context_apply_fbo_state_blit(struct wined3d_context *context, GLenum target,
struct wined3d_surface *render_target, struct wined3d_surface *depth_stencil, DWORD location) DECLSPEC_HIDDEN;
void context_active_texture(struct wined3d_context *context, const struct wined3d_gl_info *gl_info,
@@ -2020,7 +2079,11 @@
@@ -2026,7 +2085,11 @@
struct wined3d_state
{
DWORD flags;
@ -1865,7 +1865,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
struct wined3d_vertex_declaration *vertex_declaration;
struct wined3d_stream_output stream_output[MAX_STREAM_OUT];
@@ -2065,6 +2128,7 @@
@@ -2071,6 +2134,7 @@
DWORD render_states[WINEHIGHEST_RENDER_STATE + 1];
};
@ -1873,7 +1873,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
struct wined3d_gl_bo
{
GLuint name;
@@ -2073,6 +2137,7 @@
@@ -2079,6 +2143,7 @@
UINT size;
};
@ -1881,7 +1881,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
#define WINED3D_UNMAPPED_STAGE ~0U
/* Multithreaded flag. Removed from the public header to signal that
@@ -2128,11 +2193,23 @@
@@ -2134,11 +2199,23 @@
struct wined3d_rendertarget_view *back_buffer_view;
struct wined3d_swapchain **swapchains;
UINT swapchain_count;
@ -1905,7 +1905,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
/* For rendering to a texture using glCopyTexImage */
GLuint depth_blt_texture;
@@ -2143,6 +2220,9 @@
@@ -2149,6 +2226,9 @@
UINT xScreenSpace;
UINT yScreenSpace;
UINT cursorWidth, cursorHeight;
@ -1915,7 +1915,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
HCURSOR hardwareCursor;
/* The Wine logo texture */
@@ -2174,6 +2254,7 @@
@@ -2180,6 +2260,7 @@
UINT message, WPARAM wparam, LPARAM lparam, WNDPROC proc) DECLSPEC_HIDDEN;
void device_resource_add(struct wined3d_device *device, struct wined3d_resource *resource) DECLSPEC_HIDDEN;
void device_resource_released(struct wined3d_device *device, struct wined3d_resource *resource) DECLSPEC_HIDDEN;
@ -1923,7 +1923,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
void device_invalidate_state(const struct wined3d_device *device, DWORD state) DECLSPEC_HIDDEN;
void device_invalidate_shader_constants(const struct wined3d_device *device, DWORD mask) DECLSPEC_HIDDEN;
void device_exec_update_texture(struct wined3d_context *context, struct wined3d_texture *src_texture,
@@ -2185,6 +2266,11 @@
@@ -2191,6 +2272,11 @@
void device_create_dummy_textures(struct wined3d_device *device, struct wined3d_context *context) DECLSPEC_HIDDEN;
void device_delete_opengl_contexts_cs(struct wined3d_device *device,
struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN;
@ -1935,7 +1935,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
static inline BOOL isStateDirty(const struct wined3d_context *context, DWORD state)
{
@@ -2204,9 +2290,11 @@
@@ -2210,9 +2296,11 @@
HRESULT (*resource_sub_resource_map)(struct wined3d_resource *resource, unsigned int sub_resource_idx,
struct wined3d_map_desc *map_desc, const struct wined3d_box *box, DWORD flags);
HRESULT (*resource_sub_resource_unmap)(struct wined3d_resource *resource, unsigned int sub_resource_idx);
@ -1947,7 +1947,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
};
struct wined3d_resource
@@ -2231,6 +2319,7 @@
@@ -2237,6 +2325,7 @@
UINT depth;
UINT size;
DWORD priority;
@ -1955,7 +1955,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
void *heap_memory, *map_heap_memory, *user_memory, *bitmap_data;
UINT custom_row_pitch, custom_slice_pitch;
struct wined3d_gl_bo *buffer, *map_buffer;
@@ -2238,6 +2327,10 @@
@@ -2244,6 +2333,10 @@
DWORD locations;
LONG access_fence;
BOOL unmap_dirtify;
@ -1966,7 +1966,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
void *parent;
const struct wined3d_parent_ops *parent_ops;
@@ -2262,6 +2355,7 @@
@@ -2268,6 +2361,7 @@
void *parent, const struct wined3d_parent_ops *parent_ops,
const struct wined3d_resource_ops *resource_ops) DECLSPEC_HIDDEN;
void resource_unload(struct wined3d_resource *resource) DECLSPEC_HIDDEN;
@ -1974,7 +1974,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
DWORD wined3d_resource_access_from_location(DWORD location) DECLSPEC_HIDDEN;
BOOL wined3d_resource_allocate_sysmem(struct wined3d_resource *resource) DECLSPEC_HIDDEN;
void wined3d_resource_changed(struct wined3d_resource *resource,
@@ -2310,6 +2404,15 @@
@@ -2316,6 +2410,15 @@
{
while(InterlockedCompareExchange(&resource->access_fence, 0, 0));
}
@ -1990,7 +1990,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
/* Tests show that the start address of resources is 32 byte aligned */
#define RESOURCE_ALIGNMENT 16
@@ -2394,7 +2497,9 @@
@@ -2400,7 +2503,9 @@
void wined3d_texture_apply_sampler_desc(struct wined3d_texture *texture,
const struct wined3d_sampler_desc *sampler_desc, const struct wined3d_gl_info *gl_info) DECLSPEC_HIDDEN;
@ -2000,7 +2000,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
void wined3d_texture_bind(struct wined3d_texture *texture,
struct wined3d_context *context, BOOL srgb) DECLSPEC_HIDDEN;
void wined3d_texture_bind_and_dirtify(struct wined3d_texture *texture,
@@ -2428,9 +2533,16 @@
@@ -2434,9 +2539,16 @@
struct wined3d_resource resource;
struct wined3d_texture *container;
@ -2017,7 +2017,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
};
static inline struct wined3d_volume *volume_from_resource(struct wined3d_resource *resource)
@@ -2438,6 +2550,7 @@
@@ -2444,6 +2556,7 @@
return CONTAINING_RECORD(resource, struct wined3d_volume, resource);
}
@ -2025,7 +2025,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
HRESULT wined3d_volume_create(struct wined3d_texture *container, const struct wined3d_resource_desc *desc,
unsigned int level, struct wined3d_volume **volume) DECLSPEC_HIDDEN;
void wined3d_volume_destroy(struct wined3d_volume *volume) DECLSPEC_HIDDEN;
@@ -2453,6 +2566,27 @@
@@ -2459,6 +2572,27 @@
struct wined3d_surface_dib
{
HBITMAP DIBsection;
@ -2053,7 +2053,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
UINT bitmap_size;
};
@@ -2478,7 +2612,11 @@
@@ -2484,7 +2618,11 @@
struct wined3d_surface_ops
{
HRESULT (*surface_private_setup)(struct wined3d_surface *surface);
@ -2065,7 +2065,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
};
struct wined3d_surface
@@ -2486,12 +2624,26 @@
@@ -2492,12 +2630,26 @@
struct wined3d_resource resource;
const struct wined3d_surface_ops *surface_ops;
struct wined3d_texture *container;
@ -2092,7 +2092,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
GLuint rb_multisample;
GLuint rb_resolved;
GLenum texture_target;
@@ -2535,11 +2687,22 @@
@@ -2541,11 +2693,22 @@
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;
@ -2115,7 +2115,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
void surface_modify_ds_location(struct wined3d_surface *surface, DWORD location, UINT w, UINT h) DECLSPEC_HIDDEN;
void surface_prepare_rb(struct wined3d_surface *surface,
const struct wined3d_gl_info *gl_info, BOOL multisample) DECLSPEC_HIDDEN;
@@ -2551,6 +2714,7 @@
@@ -2557,6 +2720,7 @@
const struct wined3d_gl_info *gl_info, void *mem, unsigned int pitch) DECLSPEC_HIDDEN;
HRESULT surface_upload_from_surface(struct wined3d_surface *dst_surface, const POINT *dst_point,
struct wined3d_surface *src_surface, const RECT *src_rect) DECLSPEC_HIDDEN;
@ -2123,7 +2123,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
HRESULT wined3d_surface_create(struct wined3d_texture *container, const struct wined3d_resource_desc *desc,
GLenum target, unsigned int level, unsigned int layer, DWORD flags,
struct wined3d_surface **surface) DECLSPEC_HIDDEN;
@@ -2565,6 +2729,17 @@
@@ -2571,6 +2735,17 @@
void wined3d_surface_cleanup_cs(struct wined3d_surface *surface) DECLSPEC_HIDDEN;
void wined3d_surface_getdc_cs(struct wined3d_surface *surface) DECLSPEC_HIDDEN;
void wined3d_surface_releasedc_cs(struct wined3d_surface *surface) DECLSPEC_HIDDEN;
@ -2141,7 +2141,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
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;
@@ -2587,8 +2762,10 @@
@@ -2593,8 +2768,10 @@
GLuint name;
};
@ -2152,7 +2152,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
struct wined3d_vertex_declaration_element
{
const struct wined3d_format *format;
@@ -2617,8 +2794,10 @@
@@ -2623,8 +2800,10 @@
BOOL half_float_conv_needed;
};
@ -2163,7 +2163,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
struct wined3d_saved_states
{
DWORD transform[(HIGHEST_TRANSFORMSTATE >> 5) + 1];
@@ -2686,6 +2865,7 @@
@@ -2692,6 +2871,7 @@
void stateblock_init_contained_states(struct wined3d_stateblock *stateblock) DECLSPEC_HIDDEN;
void state_cleanup(struct wined3d_state *state) DECLSPEC_HIDDEN;
@ -2171,7 +2171,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
HRESULT state_init(struct wined3d_state *state, const struct wined3d_gl_info *gl_info,
const struct wined3d_d3d_info *d3d_info, DWORD flags) DECLSPEC_HIDDEN;
void state_unbind_resources(struct wined3d_state *state) DECLSPEC_HIDDEN;
@@ -2736,6 +2916,32 @@
@@ -2742,6 +2922,32 @@
void wined3d_cs_destroy(struct wined3d_cs *cs) DECLSPEC_HIDDEN;
void wined3d_cs_switch_onscreen_ds(struct wined3d_cs *cs, struct wined3d_context *context,
struct wined3d_surface *depth_stencil) DECLSPEC_HIDDEN;
@ -2204,7 +2204,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
void wined3d_cs_emit_clear(struct wined3d_cs *cs, DWORD rect_count, const RECT *rects,
DWORD flags, const struct wined3d_color *color, float depth, DWORD stencil) DECLSPEC_HIDDEN;
@@ -2785,6 +2991,7 @@
@@ -2791,6 +2997,7 @@
void wined3d_cs_emit_set_vertex_declaration(struct wined3d_cs *cs,
struct wined3d_vertex_declaration *declaration) DECLSPEC_HIDDEN;
void wined3d_cs_emit_set_viewport(struct wined3d_cs *cs, const struct wined3d_viewport *viewport) DECLSPEC_HIDDEN;
@ -2212,7 +2212,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
void wined3d_cs_emit_set_consts_f(struct wined3d_cs *cs, UINT start_register, const float *constants,
UINT vector4f_count, enum wined3d_shader_type type) DECLSPEC_HIDDEN;
void wined3d_cs_emit_set_consts_b(struct wined3d_cs *cs, UINT start_register,
@@ -2848,6 +3055,7 @@
@@ -2854,6 +3061,7 @@
void wined3d_cs_emit_update_sub_resource(struct wined3d_cs *cs, struct wined3d_resource *resource,
unsigned int sub_resource_idx, const struct wined3d_box *box, const void *data, unsigned int row_pitch,
unsigned int depth_pitch) DECLSPEC_HIDDEN;
@ -2220,7 +2220,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
/* 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
@@ -2862,8 +3070,12 @@
@@ -2868,8 +3076,12 @@
struct wined3d_query_ops
{
HRESULT (*query_get_data)(struct wined3d_query *query, void *data, DWORD data_size, DWORD flags);
@ -2233,7 +2233,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
};
struct wined3d_query
@@ -2877,12 +3089,16 @@
@@ -2883,12 +3095,16 @@
enum wined3d_query_type type;
DWORD data_size;
void *extendedData;
@ -2250,7 +2250,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
/* TODO: Add tests and support for FLOAT16_4 POSITIONT, D3DCOLOR position, other
* fixed function semantics as D3DCOLOR or FLOAT16 */
@@ -2909,7 +3125,9 @@
@@ -2915,7 +3131,9 @@
GLenum buffer_object_usage;
GLenum buffer_type_hint;
DWORD flags;
@ -2260,7 +2260,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
void *map_ptr;
struct wined3d_map_range *maps;
@@ -2934,11 +3152,15 @@
@@ -2940,11 +3158,15 @@
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;
@ -2276,7 +2276,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
struct wined3d_rendertarget_view
{
@@ -2977,8 +3199,10 @@
@@ -2983,8 +3205,10 @@
return surface_from_resource(resource);
}
@ -2287,7 +2287,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
struct wined3d_shader_resource_view
{
LONG refcount;
@@ -2991,8 +3215,12 @@
@@ -2997,8 +3221,12 @@
struct wined3d_swapchain_ops
{
void (*swapchain_present)(struct wined3d_swapchain *swapchain, const RECT *src_rect,
@ -2300,7 +2300,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
};
struct wined3d_swapchain
@@ -3031,8 +3259,10 @@
@@ -3037,8 +3265,10 @@
void swapchain_destroy_contexts(struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN;
HDC swapchain_get_backup_dc(struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN;
void swapchain_update_draw_bindings(struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN;
@ -2311,7 +2311,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
/*****************************************************************************
* Utility function prototypes
@@ -3232,7 +3462,9 @@
@@ -3241,7 +3471,9 @@
void shader_generate_main(const struct wined3d_shader *shader, struct wined3d_string_buffer *buffer,
const struct wined3d_shader_reg_maps *reg_maps, const DWORD *byte_code, void *backend_ctx) DECLSPEC_HIDDEN;
BOOL shader_match_semantic(const char *semantic_name, enum wined3d_decl_usage usage) DECLSPEC_HIDDEN;
@ -4609,7 +4609,7 @@ diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
unsigned int i, extra_constants_needed = 0;
const struct wined3d_shader_lconst *lconst;
const char *prefix;
@@ -1906,7 +1914,11 @@
@@ -1904,7 +1912,11 @@
{
UINT in_count = min(vec4_varyings(version->major, gl_info), shader->limits->packed_input);
@ -4621,7 +4621,7 @@ diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
declare_in_varying(gl_info, buffer, FALSE, "vec4 %s_link[%u];\n", prefix, in_count);
shader_addline(buffer, "vec4 %s_in[%u];\n", prefix, in_count);
}
@@ -1947,6 +1959,7 @@
@@ -1945,6 +1957,7 @@
}
else
{
@ -4629,7 +4629,7 @@ diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
/* This happens because we do not have proper tracking of the
* constant registers that are actually used, only the max
* limit of the shader version.
@@ -1955,6 +1968,23 @@
@@ -1953,6 +1966,23 @@
* it and just create the uniform.
*/
FIXME("Cannot find a free uniform for vpos correction params\n");
@ -9144,7 +9144,7 @@ diff --git a/dlls/wined3d/shader.c b/dlls/wined3d/shader.c
}
return refcount;
@@ -2412,7 +2422,11 @@
@@ -2417,7 +2427,11 @@
memset(args, 0, sizeof(*args)); /* FIXME: Make sure all bits are set. */
if (!gl_info->supported[ARB_FRAMEBUFFER_SRGB] && state->render_states[WINED3D_RS_SRGBWRITEENABLE])
{
@ -9724,7 +9724,7 @@ diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c
diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -5529,9 +5529,15 @@
@@ -5530,9 +5530,15 @@
DebugBreak();
}