mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-09-13 09:17:20 -07:00
Rebase against fec0b697c74a8e016b41968b342f9fc9fe11bf74.
[ntdll-NtQueryInformationThread] Removed patch to implement support for fs segment in GetThreadSelectorEntry (accepted upstream).
This commit is contained in:
parent
f788007dc4
commit
6a8aacda4c
@ -1,96 +0,0 @@
|
||||
From 9aaa34a9cd1e72b82212933dffcbf07692d3fa64 Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Timoshkov <dmitry@baikal.ru>
|
||||
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
|
||||
|
@ -1 +0,0 @@
|
||||
Fixes: Implement support for fs segment in GetThreadSelectorEntry
|
@ -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 <dmitry@baikal.ru>
|
||||
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)
|
||||
|
@ -1 +0,0 @@
|
||||
Depends: ntdll-NtQueryInformationThread
|
@ -1,58 +0,0 @@
|
||||
From d31370afac230bcf175872ef348030472577e3c7 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
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 <windows.h>
|
||||
#include <wingdi.h>
|
||||
#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
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user