Module: wine
Branch: master
Commit: c4ac2d285dd3c0c4aa3282eb70dc51d5ab4d5fcd
URL: http://source.winehq.org/git/wine.git/?a=commit;h=c4ac2d285dd3c0c4aa3282eb7…
Author: Donna Whisnant <dewhisna(a)dewtronics.com>
Date: Sat Nov 4 11:04:15 2017 -0500
oleaut32: Fix DispCallFunc() stdcall test to be ABI not x64 specific.
The tests checking callee stack cleaning for stdcall vs. cdecl should
be a function of the calling ABI of the platform, not whether it is
64-bit or not. This fixes the check for platforms like ARM that may
be 32-bit but that do not use the stdcall convention of callee stack
cleaning.
Signed-off-by: Donna Whisnant <dewhisna(a)dewtronics.com>
Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
---
dlls/oleaut32/tests/typelib.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/dlls/oleaut32/tests/typelib.c b/dlls/oleaut32/tests/typelib.c
index d8ff310..bb70164 100644
--- a/dlls/oleaut32/tests/typelib.c
+++ b/dlls/oleaut32/tests/typelib.c
@@ -92,6 +92,12 @@ static WCHAR wszguid[] = {'g','u','i','d',0};
static const BOOL is_win64 = sizeof(void *) > sizeof(int);
+#ifdef __i386__
+static const BOOL abi_supports_stdcall = TRUE;
+#else
+static const BOOL abi_supports_stdcall = FALSE;
+#endif
+
static HRESULT WINAPI invoketest_QueryInterface(IInvokeTest *iface, REFIID riid, void **ret)
{
if (IsEqualIID(riid, &IID_IUnknown) ||
@@ -1115,7 +1121,7 @@ static void test_DispCallFunc(void)
ok( V_UI4(&result) == 4321, "wrong result %u\n", V_UI4(&result) );
/* the function checks the argument sizes for stdcall */
- if (!is_win64) /* no stdcall on 64-bit */
+ if (abi_supports_stdcall)
{
res = DispCallFunc( NULL, (ULONG_PTR)stdcall_func, CC_STDCALL, VT_UI4, 0, types, pargs, &result );
ok( res == DISP_E_BADCALLEE, "DispCallFunc wrong error %x\n", res );
Module: wine
Branch: master
Commit: 2c51fc1bfc1d551aebb47616c19d3329c5e0f7f6
URL: http://source.winehq.org/git/wine.git/?a=commit;h=2c51fc1bfc1d551aebb47616c…
Author: Józef Kucia <jkucia(a)codeweavers.com>
Date: Fri Nov 3 14:35:20 2017 +0100
wined3d: Disable ARB_draw_indirect if ARB_base_instance is not available.
Avoids undefined behavior.
Signed-off-by: Józef Kucia <jkucia(a)codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
---
dlls/wined3d/directx.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index c89d556..ee04b12 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -4211,9 +4211,17 @@ static BOOL wined3d_adapter_init_gl_caps(struct wined3d_adapter *adapter,
if (gl_info->supported[ARB_TEXTURE_STORAGE] && gl_info->supported[APPLE_YCBCR_422])
{
/* AFAIK APPLE_ycbcr_422 is only available in legacy contexts so we shouldn't ever hit this. */
- FIXME("Disabling APPLE_ycbcr_422 because of ARB_texture_storage.\n");
+ ERR("Disabling APPLE_ycbcr_422 because of ARB_texture_storage.\n");
gl_info->supported[APPLE_YCBCR_422] = FALSE;
}
+ if (gl_info->supported[ARB_DRAW_INDIRECT] && !gl_info->supported[ARB_BASE_INSTANCE])
+ {
+ /* If ARB_base_instance is not supported the baseInstance field
+ * in indirect draw parameters must be 0 or behavior is undefined.
+ */
+ WARN("Disabling ARB_draw_indirect because ARB_base_instance is not supported.\n");
+ gl_info->supported[ARB_DRAW_INDIRECT] = FALSE;
+ }
wined3d_adapter_init_limits(gl_info);