diff --git a/patches/ntdll-NtQueryInformationThread/0001-ntdll-Add-support-for-fs-to-NtQueryInformationThread.patch b/patches/ntdll-NtQueryInformationThread/0001-ntdll-Add-support-for-fs-to-NtQueryInformationThread.patch deleted file mode 100644 index a65d1e47..00000000 --- a/patches/ntdll-NtQueryInformationThread/0001-ntdll-Add-support-for-fs-to-NtQueryInformationThread.patch +++ /dev/null @@ -1,96 +0,0 @@ -From 9aaa34a9cd1e72b82212933dffcbf07692d3fa64 Mon Sep 17 00:00:00 2001 -From: Dmitry Timoshkov -Date: Sat, 7 May 2016 11:56:17 +0800 -Subject: ntdll: Add support for fs to - NtQueryInformationThread(ThreadDescriptorTableEntry). - -This patch fixes one of the problems reported in the bug 40583. ---- - dlls/kernel32/tests/thread.c | 41 +++++++++++++++++++++++++++++++++++++++++ - dlls/ntdll/thread.c | 11 +++++++++++ - 2 files changed, 52 insertions(+) - -diff --git a/dlls/kernel32/tests/thread.c b/dlls/kernel32/tests/thread.c -index e0de3f9..67c5a37 100644 ---- a/dlls/kernel32/tests/thread.c -+++ b/dlls/kernel32/tests/thread.c -@@ -1100,6 +1100,46 @@ static void test_SetThreadContext(void) - CloseHandle( thread ); - } - -+static void test_GetThreadSelectorEntry(void) -+{ -+ TEB *teb = NtCurrentTeb(); -+ LDT_ENTRY entry; -+ CONTEXT ctx; -+ TEB *teb_fs; -+ DWORD ret; -+ -+ memset(&ctx, 0x11, sizeof(ctx)); -+ ctx.ContextFlags = CONTEXT_SEGMENTS | CONTEXT_CONTROL; -+ ret = GetThreadContext(GetCurrentThread(), &ctx); -+ ok(ret, "GetThreadContext error %u\n", GetLastError()); -+ ok(!HIWORD(ctx.SegCs) && !HIWORD(ctx.SegDs) && !HIWORD(ctx.SegEs) && !HIWORD(ctx.SegFs) && !HIWORD(ctx.SegGs), -+ "cs %08x, ds %08x, es %08x, fs %08x, gs %08x\n", ctx.SegCs, ctx.SegDs, ctx.SegEs, ctx.SegFs, ctx.SegGs); -+ -+ ret = GetThreadSelectorEntry(GetCurrentThread(), ctx.SegCs, &entry); -+ ok(ret, "GetThreadSelectorEntry(SegCs) error %u\n", GetLastError()); -+ -+ ret = GetThreadSelectorEntry(GetCurrentThread(), ctx.SegDs, &entry); -+ ok(ret, "GetThreadSelectorEntry(SegDs) error %u\n", GetLastError()); -+ -+ memset(&entry, 0x11, sizeof(entry)); -+ ret = GetThreadSelectorEntry(GetCurrentThread(), ctx.SegFs, &entry); -+ ok(ret, "GetThreadSelectorEntry(SegFs) error %u\n", GetLastError()); -+ -+ teb_fs = (TEB *)((entry.HighWord.Bits.BaseHi << 24) | (entry.HighWord.Bits.BaseMid << 16) | entry.BaseLow); -+ ok(teb_fs == teb, "teb_fs %p != teb %p\n", teb_fs, teb); -+ -+ ret = (entry.HighWord.Bits.LimitHi << 16) | entry.LimitLow; -+ ok(ret == 0x0fff || ret == 0x4000 /* testbot win7u */, "got %#x\n", ret); -+ -+ ok(entry.HighWord.Bits.Dpl == 3, "got %#x\n", entry.HighWord.Bits.Dpl); -+ ok(entry.HighWord.Bits.Sys == 0, "got %#x\n", entry.HighWord.Bits.Sys); -+ ok(entry.HighWord.Bits.Pres == 1, "got %#x\n", entry.HighWord.Bits.Pres); -+ ok(entry.HighWord.Bits.Granularity == 0, "got %#x\n", entry.HighWord.Bits.Granularity); -+ ok(entry.HighWord.Bits.Default_Big == 1, "got %#x\n", entry.HighWord.Bits.Default_Big); -+ ok(entry.HighWord.Bits.Type == 0x13, "got %#x\n", entry.HighWord.Bits.Type); -+ ok(entry.HighWord.Bits.Reserved_0 == 0, "got %#x\n", entry.HighWord.Bits.Reserved_0); -+} -+ - #endif /* __i386__ */ - - static HANDLE finish_event; -@@ -1965,6 +2005,7 @@ START_TEST(thread) - test_GetThreadExitCode(); - #ifdef __i386__ - test_SetThreadContext(); -+ test_GetThreadSelectorEntry(); - #endif - test_QueueUserWorkItem(); - test_RegisterWaitForSingleObject(); -diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c -index f6a5fbe..8465a26 100644 ---- a/dlls/ntdll/thread.c -+++ b/dlls/ntdll/thread.c -@@ -1051,6 +1051,17 @@ NTSTATUS WINAPI NtQueryInformationThread( HANDLE handle, THREADINFOCLASS class, - { - if (sel == (wine_get_cs() & ~3)) - tdi->Entry.HighWord.Bits.Type |= 8; /* code segment */ -+ else if (sel == (ntdll_get_thread_data()->fs & ~3)) -+ { -+ ULONG_PTR fs_base = (ULONG_PTR)NtCurrentTeb(); -+ tdi->Entry.BaseLow = fs_base & 0xffff; -+ tdi->Entry.HighWord.Bits.BaseMid = (fs_base >> 16) & 0xff; -+ tdi->Entry.HighWord.Bits.BaseHi = (fs_base >> 24) & 0xff; -+ tdi->Entry.LimitLow = 0x0fff; -+ tdi->Entry.HighWord.Bits.LimitHi = 0; -+ tdi->Entry.HighWord.Bits.Granularity = 0; -+ tdi->Entry.HighWord.Bits.Type = 0x13; -+ } - else status = STATUS_ACCESS_DENIED; - } - } --- -2.8.0 - diff --git a/patches/ntdll-NtQueryInformationThread/definition b/patches/ntdll-NtQueryInformationThread/definition deleted file mode 100644 index 5bca14de..00000000 --- a/patches/ntdll-NtQueryInformationThread/definition +++ /dev/null @@ -1 +0,0 @@ -Fixes: Implement support for fs segment in GetThreadSelectorEntry diff --git a/patches/ntdll-NtSetLdtEntries/0001-ntdll-Implement-NtSetLdtEntries.patch b/patches/ntdll-NtSetLdtEntries/0001-ntdll-Implement-NtSetLdtEntries.patch index f0adf5f7..0aa0a996 100644 --- a/patches/ntdll-NtSetLdtEntries/0001-ntdll-Implement-NtSetLdtEntries.patch +++ b/patches/ntdll-NtSetLdtEntries/0001-ntdll-Implement-NtSetLdtEntries.patch @@ -1,4 +1,4 @@ -From 41ea9000f7791e23906af3ab936728c52a0ed7aa Mon Sep 17 00:00:00 2001 +From b82b9f71f8204b1c55e397ca3de1bbd28a5ba86e Mon Sep 17 00:00:00 2001 From: Dmitry Timoshkov Date: Thu, 28 Apr 2016 18:14:36 +0800 Subject: ntdll: Implement NtSetLdtEntries. @@ -9,7 +9,7 @@ Subject: ntdll: Implement NtSetLdtEntries. 2 files changed, 106 insertions(+), 1 deletion(-) diff --git a/dlls/kernel32/tests/thread.c b/dlls/kernel32/tests/thread.c -index 67c5a37..5de114e 100644 +index b5ad1da..8c5cb3c 100644 --- a/dlls/kernel32/tests/thread.c +++ b/dlls/kernel32/tests/thread.c @@ -102,6 +102,7 @@ static NTSTATUS (WINAPI *pNtQueryInformationThread)(HANDLE,THREADINFOCLASS,PVOID @@ -21,7 +21,7 @@ index 67c5a37..5de114e 100644 static HANDLE create_target_process(const char *arg) { @@ -1140,6 +1141,82 @@ static void test_GetThreadSelectorEntry(void) - ok(entry.HighWord.Bits.Reserved_0 == 0, "got %#x\n", entry.HighWord.Bits.Reserved_0); + ok(entry.HighWord.Bits.Granularity == 0, "expected 0, got %u\n", entry.HighWord.Bits.Granularity); } +static void test_NtSetLdtEntries(void) diff --git a/patches/ntdll-NtSetLdtEntries/definition b/patches/ntdll-NtSetLdtEntries/definition deleted file mode 100644 index 80139748..00000000 --- a/patches/ntdll-NtSetLdtEntries/definition +++ /dev/null @@ -1 +0,0 @@ -Depends: ntdll-NtQueryInformationThread diff --git a/patches/opengl32-glDebugMessageCallback/0001-opengl32-tests-Include-wgl.h-and-remove-duplicate-de.patch b/patches/opengl32-glDebugMessageCallback/0001-opengl32-tests-Include-wgl.h-and-remove-duplicate-de.patch deleted file mode 100644 index 3929bfbb..00000000 --- a/patches/opengl32-glDebugMessageCallback/0001-opengl32-tests-Include-wgl.h-and-remove-duplicate-de.patch +++ /dev/null @@ -1,58 +0,0 @@ -From d31370afac230bcf175872ef348030472577e3c7 Mon Sep 17 00:00:00 2001 -From: Sebastian Lackner -Date: Fri, 12 Feb 2016 01:57:11 +0100 -Subject: opengl32/tests: Include wgl.h and remove duplicate declarations. - ---- - dlls/opengl32/tests/opengl.c | 25 +++---------------------- - 1 file changed, 3 insertions(+), 22 deletions(-) - -diff --git a/dlls/opengl32/tests/opengl.c b/dlls/opengl32/tests/opengl.c -index e5e1507..3f203ab 100644 ---- a/dlls/opengl32/tests/opengl.c -+++ b/dlls/opengl32/tests/opengl.c -@@ -21,38 +21,19 @@ - #include - #include - #include "wine/test.h" -- --void WINAPI glClearColor(float red, float green, float blue, float alpha); --void WINAPI glClear(unsigned int mask); --#define GL_COLOR 0x1800 --typedef unsigned int GLenum; --typedef int GLint; --void WINAPI glCopyPixels(int x, int y, int width, int height, GLenum type); --void WINAPI glFinish(void); --#define GL_NO_ERROR 0x0 --#define GL_INVALID_OPERATION 0x502 --GLenum WINAPI glGetError(void); --#define GL_COLOR_BUFFER_BIT 0x00004000 --const unsigned char * WINAPI glGetString(unsigned int); --#define GL_VENDOR 0x1F00 --#define GL_RENDERER 0x1F01 --#define GL_VERSION 0x1F02 --#define GL_EXTENSIONS 0x1F03 -- --#define GL_VIEWPORT 0x0ba2 --void WINAPI glGetIntegerv(GLenum pname, GLint *params); -+#include "wine/wgl.h" - - #define MAX_FORMATS 256 - typedef void* HPBUFFERARB; - - /* WGL_ARB_create_context */ - static HGLRC (WINAPI *pwglCreateContextAttribsARB)(HDC hDC, HGLRC hShareContext, const int *attribList); --/* GetLastError */ --#define ERROR_INVALID_VERSION_ARB 0x2095 -+ - #define WGL_CONTEXT_MAJOR_VERSION_ARB 0x2091 - #define WGL_CONTEXT_MINOR_VERSION_ARB 0x2092 - #define WGL_CONTEXT_LAYER_PLANE_ARB 0x2093 - #define WGL_CONTEXT_FLAGS_ARB 0x2094 -+ - /* Flags for WGL_CONTEXT_FLAGS_ARB */ - #define WGL_CONTEXT_DEBUG_BIT_ARB 0x0001 - #define WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x0002 --- -2.7.1 - diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index d0e559d9..37a24519 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -51,7 +51,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "5101a90bca2bd2618b488f37624af43efe17a0e0" + echo "fec0b697c74a8e016b41968b342f9fc9fe11bf74" } # Show version information @@ -218,7 +218,6 @@ patch_enable_all () enable_ntdll_Loader_Machine_Type="$1" enable_ntdll_NtAccessCheck="$1" enable_ntdll_NtQueryEaFile="$1" - enable_ntdll_NtQueryInformationThread="$1" enable_ntdll_NtQuerySection="$1" enable_ntdll_NtSetLdtEntries="$1" enable_ntdll_NtUnmapViewOfSection="$1" @@ -830,9 +829,6 @@ patch_enable () ntdll-NtQueryEaFile) enable_ntdll_NtQueryEaFile="$2" ;; - ntdll-NtQueryInformationThread) - enable_ntdll_NtQueryInformationThread="$2" - ;; ntdll-NtQuerySection) enable_ntdll_NtQuerySection="$2" ;; @@ -2152,13 +2148,6 @@ if test "$enable_ntdll_Purist_Mode" -eq 1; then enable_ntdll_DllRedirects=1 fi -if test "$enable_ntdll_NtSetLdtEntries" -eq 1; then - if test "$enable_ntdll_NtQueryInformationThread" -gt 1; then - abort "Patchset ntdll-NtQueryInformationThread disabled, but ntdll-NtSetLdtEntries depends on that." - fi - enable_ntdll_NtQueryInformationThread=1 -fi - if test "$enable_ntdll_Junction_Points" -eq 1; then if test "$enable_ntdll_NtQueryEaFile" -gt 1; then abort "Patchset ntdll-NtQueryEaFile disabled, but ntdll-Junction_Points depends on that." @@ -4936,18 +4925,6 @@ if test "$enable_ntdll_NtAccessCheck" -eq 1; then ) >> "$patchlist" fi -# Patchset ntdll-NtQueryInformationThread -# | -# | Modified files: -# | * dlls/kernel32/tests/thread.c, dlls/ntdll/thread.c -# | -if test "$enable_ntdll_NtQueryInformationThread" -eq 1; then - patch_apply ntdll-NtQueryInformationThread/0001-ntdll-Add-support-for-fs-to-NtQueryInformationThread.patch - ( - echo '+ { "Dmitry Timoshkov", "ntdll: Add support for fs to NtQueryInformationThread(ThreadDescriptorTableEntry).", 1 },'; - ) >> "$patchlist" -fi - # Patchset ntdll-NtQuerySection # | # | This patchset fixes the following Wine bugs: @@ -4972,9 +4949,6 @@ fi # Patchset ntdll-NtSetLdtEntries # | -# | This patchset has the following (direct or indirect) dependencies: -# | * ntdll-NtQueryInformationThread -# | # | Modified files: # | * dlls/kernel32/tests/thread.c, dlls/ntdll/nt.c, libs/wine/ldt.c # | @@ -5704,10 +5678,8 @@ fi # | dlls/opengl32/wgl.c # | if test "$enable_opengl32_glDebugMessageCallback" -eq 1; then - patch_apply opengl32-glDebugMessageCallback/0001-opengl32-tests-Include-wgl.h-and-remove-duplicate-de.patch patch_apply opengl32-glDebugMessageCallback/0002-opengl32-Add-wrappers-for-glDebugMessageCallback-to-.patch ( - echo '+ { "Sebastian Lackner", "opengl32/tests: Include wgl.h and remove duplicate declarations.", 1 },'; echo '+ { "Sebastian Lackner", "opengl32: Add wrappers for glDebugMessageCallback to handle calling convention differences.", 1 },'; ) >> "$patchlist" fi diff --git a/patches/wined3d-CSMT_Main/9999-IfDefined.patch b/patches/wined3d-CSMT_Main/9999-IfDefined.patch index 2260a9dd..bcf49e65 100644 --- a/patches/wined3d-CSMT_Main/9999-IfDefined.patch +++ b/patches/wined3d-CSMT_Main/9999-IfDefined.patch @@ -73,7 +73,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); } -@@ -8024,11 +8036,16 @@ static void arbfp_blit_surface(struct wined3d_device *device, enum wined3d_blit_ +@@ -8029,11 +8041,16 @@ static void arbfp_blit_surface(struct wined3d_device *device, enum wined3d_blit_ /* Leave the opengl state valid for blitting */ arbfp_blit_unset(context->gl_info); @@ -3878,7 +3878,7 @@ diff --git a/dlls/wined3d/sampler.c b/dlls/wined3d/sampler.c diff --git a/dlls/wined3d/shader.c b/dlls/wined3d/shader.c --- a/dlls/wined3d/shader.c +++ b/dlls/wined3d/shader.c -@@ -3036,7 +3036,11 @@ void find_ps_compile_args(const struct wined3d_state *state, const struct wined3 +@@ -3052,7 +3052,11 @@ void find_ps_compile_args(const struct wined3d_state *state, const struct wined3 UINT i; memset(args, 0, sizeof(*args)); /* FIXME: Make sure all bits are set. */ @@ -6366,7 +6366,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h }; extern struct wined3d_settings wined3d_settings DECLSPEC_HIDDEN; -@@ -1367,8 +1371,10 @@ struct wined3d_occlusion_query +@@ -1374,8 +1378,10 @@ struct wined3d_occlusion_query struct list entry; GLuint id; struct wined3d_context *context; @@ -6377,7 +6377,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h }; union wined3d_gl_query_object -@@ -1404,6 +1410,7 @@ struct wined3d_timestamp_query +@@ -1411,6 +1417,7 @@ struct wined3d_timestamp_query struct list entry; GLuint id; struct wined3d_context *context; @@ -6385,7 +6385,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h UINT64 timestamp; }; -@@ -1439,6 +1446,12 @@ static inline void wined3d_fb_copy(struct wined3d_fb_state *dst, const struct wi +@@ -1446,6 +1453,12 @@ static inline void wined3d_fb_copy(struct wined3d_fb_state *dst, const struct wi for (i = 0; i < min(dst->rt_size, src->rt_size); i++) dst->render_targets[i] = src->render_targets[i]; } @@ -6398,7 +6398,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_context { -@@ -1454,7 +1467,9 @@ struct wined3d_context +@@ -1461,7 +1474,9 @@ struct wined3d_context 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 */ @@ -6408,7 +6408,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_swapchain *swapchain; struct -@@ -1562,6 +1577,14 @@ struct wined3d_context +@@ -1569,6 +1584,14 @@ struct wined3d_context GLuint dummy_arbfp_prog; }; @@ -6423,7 +6423,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); struct StateEntry -@@ -1700,7 +1723,11 @@ void context_alloc_event_query(struct wined3d_context *context, +@@ -1707,7 +1730,11 @@ void context_alloc_event_query(struct wined3d_context *context, void context_alloc_occlusion_query(struct wined3d_context *context, struct wined3d_occlusion_query *query) DECLSPEC_HIDDEN; void context_apply_blit_state(struct wined3d_context *context, const struct wined3d_device *device) DECLSPEC_HIDDEN; @@ -6435,7 +6435,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h UINT rt_count, const struct wined3d_fb_state *fb) DECLSPEC_HIDDEN; BOOL context_apply_draw_state(struct wined3d_context *context, const struct wined3d_device *device, const struct wined3d_state *state) DECLSPEC_HIDDEN; -@@ -2326,7 +2353,11 @@ struct wined3d_stream_state +@@ -2333,7 +2360,11 @@ struct wined3d_stream_state struct wined3d_state { DWORD flags; @@ -6447,7 +6447,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]; -@@ -2372,6 +2403,7 @@ struct wined3d_state +@@ -2379,6 +2410,7 @@ struct wined3d_state DWORD render_states[WINEHIGHEST_RENDER_STATE + 1]; }; @@ -6455,7 +6455,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_gl_bo { GLuint name; -@@ -2380,6 +2412,7 @@ struct wined3d_gl_bo +@@ -2387,6 +2419,7 @@ struct wined3d_gl_bo UINT size; }; @@ -6463,7 +6463,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 -@@ -2432,11 +2465,23 @@ struct wined3d_device +@@ -2439,11 +2472,23 @@ struct wined3d_device struct wined3d_rendertarget_view *back_buffer_view; struct wined3d_swapchain **swapchains; UINT swapchain_count; @@ -6487,7 +6487,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; -@@ -2484,6 +2529,7 @@ LRESULT device_process_message(struct wined3d_device *device, HWND window, BOOL +@@ -2491,6 +2536,7 @@ LRESULT device_process_message(struct wined3d_device *device, HWND window, BOOL 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; @@ -6495,7 +6495,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, -@@ -2495,6 +2541,11 @@ void wined3d_device_release_bo(struct wined3d_device *device, struct wined3d_gl_ +@@ -2502,6 +2548,11 @@ void wined3d_device_release_bo(struct wined3d_device *device, struct wined3d_gl_ 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; @@ -6507,7 +6507,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) { -@@ -2538,7 +2589,11 @@ struct wined3d_resource +@@ -2545,7 +2596,11 @@ struct wined3d_resource UINT depth; UINT size; DWORD priority; @@ -6519,7 +6519,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct list resource_list_entry; LONG access_count; -@@ -2645,7 +2700,9 @@ struct wined3d_texture +@@ -2652,7 +2707,9 @@ struct wined3d_texture DWORD flags; GLenum target; DWORD update_map_binding; @@ -6529,7 +6529,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h GLuint rb_multisample; GLuint rb_resolved; -@@ -2683,8 +2740,12 @@ struct wined3d_texture +@@ -2690,8 +2747,12 @@ struct wined3d_texture unsigned int map_count; DWORD locations; @@ -6542,7 +6542,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h } sub_resources[1]; }; -@@ -2735,6 +2796,7 @@ void wined3d_texture_bind(struct wined3d_texture *texture, +@@ -2742,6 +2803,7 @@ 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, struct wined3d_context *context, BOOL srgb) DECLSPEC_HIDDEN; @@ -6550,7 +6550,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void wined3d_texture_changed(struct wined3d_texture *texture, unsigned int sub_resource_idx, struct wined3d_gl_bo *swap_buffer, void *swap_heap_memory) DECLSPEC_HIDDEN; -@@ -2744,6 +2806,13 @@ void wined3d_texture_get_dc_cs(struct wined3d_texture *texture, unsigned int sub +@@ -2751,6 +2813,13 @@ void wined3d_texture_get_dc_cs(struct wined3d_texture *texture, unsigned int sub GLenum wined3d_texture_get_gl_buffer(const struct wined3d_texture *texture) DECLSPEC_HIDDEN; void wined3d_texture_get_memory(struct wined3d_texture *texture, unsigned int sub_resource_idx, struct wined3d_bo_address *data, DWORD locations, BOOL map) DECLSPEC_HIDDEN; @@ -6564,7 +6564,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_texture_sub_resource *wined3d_texture_get_sub_resource(struct wined3d_texture *texture, unsigned int sub_resource_idx) DECLSPEC_HIDDEN; void wined3d_texture_invalidate_location(struct wined3d_texture *texture, -@@ -2754,6 +2823,7 @@ void *wined3d_texture_map_bo_address(const struct wined3d_bo_address *data, size +@@ -2761,6 +2830,7 @@ void *wined3d_texture_map_bo_address(const struct wined3d_bo_address *data, size const struct wined3d_gl_info *gl_info, GLenum binding, DWORD flags) DECLSPEC_HIDDEN; BOOL wined3d_texture_prepare_location(struct wined3d_texture *texture, unsigned int sub_resource_idx, struct wined3d_context *context, DWORD location) DECLSPEC_HIDDEN; @@ -6572,7 +6572,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h BOOL wined3d_texture_load_location(struct wined3d_texture *texture, unsigned int sub_resource_idx, struct wined3d_context *context, DWORD location); void *wined3d_texture_map_internal(struct wined3d_texture *texture, unsigned int sub_resource_idx, -@@ -2769,6 +2839,15 @@ void wined3d_texture_unmap_bo_address(const struct wined3d_bo_address *data, +@@ -2776,6 +2846,15 @@ void wined3d_texture_unmap_bo_address(const struct wined3d_bo_address *data, const struct wined3d_gl_info *gl_info, GLenum binding) DECLSPEC_HIDDEN; void wined3d_texture_unmap_internal(struct wined3d_texture *texture, unsigned int sub_resource_idx) DECLSPEC_HIDDEN; @@ -6588,7 +6588,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void wined3d_texture_validate_location(struct wined3d_texture *texture, unsigned int sub_resource_idx, DWORD location) DECLSPEC_HIDDEN; -@@ -2886,7 +2965,11 @@ void surface_get_drawable_size(const struct wined3d_surface *surface, const stru +@@ -2893,7 +2972,11 @@ void surface_get_drawable_size(const struct wined3d_surface *surface, const stru unsigned int *width, unsigned int *height) DECLSPEC_HIDDEN; void surface_load_fb_texture(struct wined3d_surface *surface, BOOL srgb, struct wined3d_context *context) DECLSPEC_HIDDEN; @@ -6600,7 +6600,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_context *context, DWORD location) DECLSPEC_HIDDEN; void surface_modify_ds_location(struct wined3d_surface *surface, DWORD location, UINT w, UINT h) DECLSPEC_HIDDEN; void surface_set_compatible_renderbuffer(struct wined3d_surface *surface, -@@ -2897,9 +2980,11 @@ HRESULT surface_upload_from_surface(struct wined3d_surface *dst_surface, const P +@@ -2904,9 +2987,11 @@ HRESULT surface_upload_from_surface(struct wined3d_surface *dst_surface, const P void wined3d_surface_upload_data(struct wined3d_surface *surface, const struct wined3d_gl_info *gl_info, 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; @@ -6612,7 +6612,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; -@@ -2914,10 +2999,12 @@ struct wined3d_sampler +@@ -2921,10 +3006,12 @@ struct wined3d_sampler GLuint name; }; @@ -6625,7 +6625,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; -@@ -3013,6 +3100,7 @@ struct wined3d_stateblock +@@ -3020,6 +3107,7 @@ struct wined3d_stateblock void stateblock_init_contained_states(struct wined3d_stateblock *stateblock) DECLSPEC_HIDDEN; void state_cleanup(struct wined3d_state *state) DECLSPEC_HIDDEN; @@ -6633,7 +6633,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; -@@ -3063,6 +3151,44 @@ struct wined3d_cs *wined3d_cs_create(struct wined3d_device *device) DECLSPEC_HID +@@ -3070,6 +3158,44 @@ struct wined3d_cs *wined3d_cs_create(struct wined3d_device *device) DECLSPEC_HID 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; @@ -6678,7 +6678,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; -@@ -3113,6 +3239,7 @@ void wined3d_cs_emit_set_transform(struct wined3d_cs *cs, enum wined3d_transform +@@ -3120,6 +3246,7 @@ void wined3d_cs_emit_set_transform(struct wined3d_cs *cs, enum wined3d_transform 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; @@ -6686,7 +6686,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, unsigned int start_idx, unsigned int count, const struct wined3d_vec4 *constants, enum wined3d_shader_type type) DECLSPEC_HIDDEN; void wined3d_cs_emit_set_consts_b(struct wined3d_cs *cs, unsigned int start_idx, -@@ -3168,6 +3295,14 @@ HRESULT wined3d_cs_emit_create_swapchain_context(struct wined3d_cs *cs, +@@ -3175,6 +3302,14 @@ HRESULT wined3d_cs_emit_create_swapchain_context(struct wined3d_cs *cs, void wined3d_cs_emit_delete_opengl_contexts(struct wined3d_cs *cs, struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN; void wined3d_cs_emit_update_swap_interval(struct wined3d_cs *cs, struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN; @@ -6701,7 +6701,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 -@@ -3182,8 +3317,12 @@ enum query_state { +@@ -3189,8 +3324,12 @@ enum query_state { struct wined3d_query_ops { HRESULT (*query_get_data)(struct wined3d_query *query, void *data, DWORD data_size, DWORD flags); @@ -6714,7 +6714,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h }; struct wined3d_query -@@ -3197,9 +3336,11 @@ struct wined3d_query +@@ -3204,9 +3343,11 @@ struct wined3d_query enum wined3d_query_type type; DWORD data_size; void *extendedData; @@ -6726,7 +6726,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 -@@ -3227,7 +3368,9 @@ struct wined3d_buffer +@@ -3234,7 +3375,9 @@ struct wined3d_buffer GLenum buffer_object_usage; GLenum buffer_type_hint; DWORD flags; @@ -6736,7 +6736,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void *map_ptr; struct wined3d_map_range *maps; -@@ -3252,6 +3395,7 @@ void buffer_get_memory(struct wined3d_buffer *buffer, struct wined3d_context *co +@@ -3259,6 +3402,7 @@ void buffer_get_memory(struct wined3d_buffer *buffer, struct wined3d_context *co BYTE *buffer_get_sysmem(struct wined3d_buffer *buffer, 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; @@ -6744,7 +6744,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h HRESULT wined3d_buffer_copy(struct wined3d_buffer *dst_buffer, unsigned int dst_offset, struct wined3d_buffer *src_buffer, unsigned int src_offset, unsigned int size) DECLSPEC_HIDDEN; HRESULT wined3d_buffer_upload_data(struct wined3d_buffer *buffer, -@@ -3260,6 +3404,13 @@ void buffer_invalidate_bo_range(struct wined3d_buffer *buffer, unsigned int offs +@@ -3267,6 +3411,13 @@ void buffer_invalidate_bo_range(struct wined3d_buffer *buffer, unsigned int offs 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; @@ -6758,7 +6758,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h struct wined3d_rendertarget_view { -@@ -3321,8 +3472,12 @@ struct wined3d_unordered_access_view +@@ -3328,8 +3479,12 @@ struct wined3d_unordered_access_view struct wined3d_swapchain_ops { void (*swapchain_present)(struct wined3d_swapchain *swapchain, @@ -6771,7 +6771,7 @@ diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h void (*swapchain_frontbuffer_updated)(struct wined3d_swapchain *swapchain); }; -@@ -3358,8 +3513,10 @@ struct wined3d_swapchain +@@ -3365,8 +3520,10 @@ struct wined3d_swapchain void wined3d_swapchain_activate(struct wined3d_swapchain *swapchain, BOOL activate) DECLSPEC_HIDDEN; struct wined3d_context *swapchain_get_context(struct wined3d_swapchain *swapchain) DECLSPEC_HIDDEN;