Module: wine
Branch: master
Commit: 9058f5e08b03ab1f2565b82711568e25fda37128
URL: https://source.winehq.org/git/wine.git/?a=commit;h=9058f5e08b03ab1f2565b827…
Author: Liam Middlebrook <lmiddlebrook(a)nvidia.com>
Date: Tue Jan 7 13:54:05 2020 -0800
winevulkan: Support functions with basic_c return types.
Needed for VK_KHR_buffer_device_address which uses uint64_t as a return type.
Signed-off-by: Liam Middlebrook <lmiddlebrook(a)nvidia.com>
Signed-off-by: Piers Daniell <pdaniell(a)nvidia.com>
Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
---
dlls/winevulkan/make_vulkan | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/dlls/winevulkan/make_vulkan b/dlls/winevulkan/make_vulkan
index f9b1e1cf96..6c5753eda5 100755
--- a/dlls/winevulkan/make_vulkan
+++ b/dlls/winevulkan/make_vulkan
@@ -2845,6 +2845,7 @@ class VkRegistry(object):
for t in types:
type_info = {}
type_info["category"] = t.attrib.get("category", None)
+ type_info["requires"] = t.attrib.get("requires", None)
# We parse aliases in a second pass when we know more.
alias = t.attrib.get("alias")
@@ -2863,13 +2864,19 @@ class VkRegistry(object):
base_types.append(basetype)
type_info["data"] = basetype
+ # Basic C types don't need us to define them, but we do need data for them
+ if type_info["requires"] == "vk_platform":
+ requires = type_info["requires"]
+ basic_c = VkBaseType(name, _type, requires=requires)
+ type_info["data"] = basic_c
+
if type_info["category"] == "bitmask":
name = t.find("name").text
_type = t.find("type").text
# Most bitmasks have a requires attribute used to pull in
# required '*FlagBits" enum.
- requires = t.attrib.get("requires")
+ requires = type_info["requires"]
bitmask = VkBaseType(name, _type, requires=requires)
bitmasks.append(bitmask)
type_info["data"] = bitmask
Module: wine
Branch: master
Commit: d82a2683b197697c49fe3bf28dddafe36991d39a
URL: https://source.winehq.org/git/wine.git/?a=commit;h=d82a2683b197697c49fe3bf2…
Author: Stefan Dösinger <stefan(a)codeweavers.com>
Date: Tue Jan 7 12:40:06 2020 +0100
ddraw/tests: Mark a Geforce 9600 misbehavior broken().
Signed-off-by: Stefan Dösinger <stefan(a)codeweavers.com
Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
---
dlls/ddraw/tests/ddraw1.c | 9 +++++++--
dlls/ddraw/tests/ddraw2.c | 9 +++++++--
2 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/dlls/ddraw/tests/ddraw1.c b/dlls/ddraw/tests/ddraw1.c
index 80c96fccc4..c10be66236 100644
--- a/dlls/ddraw/tests/ddraw1.c
+++ b/dlls/ddraw/tests/ddraw1.c
@@ -10043,8 +10043,12 @@ static void test_getdc(void)
ok(SUCCEEDED(hr), "Failed to get DC for format %s, hr %#x.\n", test_data[i].name, hr);
hr = IDirectDrawSurface_ReleaseDC(surface, dc);
ok(SUCCEEDED(hr), "Failed to release DC for format %s, hr %#x.\n", test_data[i].name, hr);
+ /* Geforce 9600, Windows 7 returns E_FAIL. The unlock still seems to work as intended, after-
+ * wards the surface can be locked again. ReleaseDC() does not unlock the surface, trying to
+ * Lock it after ReleaseDC returns DDERR_SURFACEBUSY. ddraw4 and 7 are unaffected. */
hr = IDirectDrawSurface_Unlock(surface, NULL);
- ok(SUCCEEDED(hr), "Failed to unmap surface for format %s, hr %#x.\n", test_data[i].name, hr);
+ ok(SUCCEEDED(hr) || broken(ddraw_is_nvidia(ddraw) && hr == E_FAIL),
+ "Failed to unmap surface for format %s, hr %#x.\n", test_data[i].name, hr);
hr = IDirectDrawSurface_GetDC(surface, &dc);
ok(SUCCEEDED(hr), "Failed to get DC for format %s, hr %#x.\n", test_data[i].name, hr);
@@ -10080,7 +10084,8 @@ static void test_getdc(void)
hr = IDirectDrawSurface_ReleaseDC(surface, dc);
ok(SUCCEEDED(hr), "Failed to release DC for format %s, hr %#x.\n", test_data[i].name, hr);
hr = IDirectDrawSurface_Unlock(surface, NULL);
- ok(SUCCEEDED(hr), "Failed to unmap surface for format %s, hr %#x.\n", test_data[i].name, hr);
+ ok(SUCCEEDED(hr) || broken(ddraw_is_nvidia(ddraw) && hr == E_FAIL),
+ "Failed to unmap surface for format %s, hr %#x.\n", test_data[i].name, hr);
hr = IDirectDrawSurface_Lock(surface2, NULL, &map_desc, DDLOCK_READONLY | DDLOCK_WAIT, NULL);
ok(SUCCEEDED(hr), "Failed to map surface for format %s, hr %#x.\n", test_data[i].name, hr);
diff --git a/dlls/ddraw/tests/ddraw2.c b/dlls/ddraw/tests/ddraw2.c
index 390184e80d..8d4d44863a 100644
--- a/dlls/ddraw/tests/ddraw2.c
+++ b/dlls/ddraw/tests/ddraw2.c
@@ -10745,8 +10745,12 @@ static void test_getdc(void)
ok(SUCCEEDED(hr), "Failed to get DC for format %s, hr %#x.\n", test_data[i].name, hr);
hr = IDirectDrawSurface_ReleaseDC(surface, dc);
ok(SUCCEEDED(hr), "Failed to release DC for format %s, hr %#x.\n", test_data[i].name, hr);
+ /* Geforce 9600, Windows 7 returns E_FAIL. The unlock still seems to work as intended, after-
+ * wards the surface can be locked again. ReleaseDC() does not unlock the surface, trying to
+ * Lock it after ReleaseDC returns DDERR_SURFACEBUSY. ddraw4 and 7 are unaffected. */
hr = IDirectDrawSurface_Unlock(surface, NULL);
- ok(SUCCEEDED(hr), "Failed to unmap surface for format %s, hr %#x.\n", test_data[i].name, hr);
+ ok(SUCCEEDED(hr) || broken(ddraw_is_nvidia(ddraw) && hr == E_FAIL),
+ "Failed to unmap surface for format %s, hr %#x.\n", test_data[i].name, hr);
hr = IDirectDrawSurface_GetDC(surface, &dc);
ok(SUCCEEDED(hr), "Failed to get DC for format %s, hr %#x.\n", test_data[i].name, hr);
@@ -10782,7 +10786,8 @@ static void test_getdc(void)
hr = IDirectDrawSurface_ReleaseDC(surface, dc);
ok(SUCCEEDED(hr), "Failed to release DC for format %s, hr %#x.\n", test_data[i].name, hr);
hr = IDirectDrawSurface_Unlock(surface, NULL);
- ok(SUCCEEDED(hr), "Failed to unmap surface for format %s, hr %#x.\n", test_data[i].name, hr);
+ ok(SUCCEEDED(hr) || broken(ddraw_is_nvidia(ddraw) && hr == E_FAIL),
+ "Failed to unmap surface for format %s, hr %#x.\n", test_data[i].name, hr);
hr = IDirectDrawSurface_Lock(surface2, NULL, &map_desc, DDLOCK_READONLY | DDLOCK_WAIT, NULL);
ok(SUCCEEDED(hr), "Failed to map surface for format %s, hr %#x.\n", test_data[i].name, hr);
Module: wine
Branch: master
Commit: b9a9ad4c0355a7d42ee5515b0eefa3087bd930ca
URL: https://source.winehq.org/git/wine.git/?a=commit;h=b9a9ad4c0355a7d42ee5515b…
Author: Stefan Dösinger <stefan(a)codeweavers.com>
Date: Tue Jan 7 12:40:05 2020 +0100
ddraw/tests: Disable a test that causes heap corruption on some Nvidia.
Signed-off-by: Stefan Dösinger <stefan(a)codeweavers.com
Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
---
dlls/ddraw/tests/ddraw1.c | 16 +++++++++++++---
dlls/ddraw/tests/ddraw2.c | 16 +++++++++++++---
dlls/ddraw/tests/ddraw4.c | 16 +++++++++++++---
dlls/ddraw/tests/ddraw7.c | 16 +++++++++++++---
4 files changed, 52 insertions(+), 12 deletions(-)
diff --git a/dlls/ddraw/tests/ddraw1.c b/dlls/ddraw/tests/ddraw1.c
index b513121fbb..80c96fccc4 100644
--- a/dlls/ddraw/tests/ddraw1.c
+++ b/dlls/ddraw/tests/ddraw1.c
@@ -12908,9 +12908,19 @@ static void test_clipper_refcount(void)
IDirectDrawClipper_Release(clipper);
IDirectDrawClipper_Release(clipper);
- hr = IDirectDrawSurface_GetClipper(surface, &clipper2);
- ok(SUCCEEDED(hr), "Failed to get clipper, hr %#x.\n", hr);
- ok(clipper == clipper2, "Got clipper %p, expected %p.\n", clipper2, clipper);
+ if (!ddraw_is_nvidia(ddraw))
+ {
+ /* Disabled because it causes heap corruption (HeapValidate fails and random
+ * hangs in a later HeapFree) on Windows on one of my Machines: MacbookPro 10,1
+ * running Windows 10 18363.535 and Nvidia driver 425.31. Driver version 441.66
+ * is affected too.
+ *
+ * The same Windows and driver versions run the test without heap corruption on
+ * a Geforce 1060 GTX card. I have not seen the problem on AMD GPUs either. */
+ hr = IDirectDrawSurface_GetClipper(surface, &clipper2);
+ ok(SUCCEEDED(hr), "Failed to get clipper, hr %#x.\n", hr);
+ ok(clipper == clipper2, "Got clipper %p, expected %p.\n", clipper2, clipper);
+ }
/* Show that invoking the Release method does not crash, but don't get the
* vtable through the clipper pointer because it is no longer pointing to
diff --git a/dlls/ddraw/tests/ddraw2.c b/dlls/ddraw/tests/ddraw2.c
index a2a27d86f0..390184e80d 100644
--- a/dlls/ddraw/tests/ddraw2.c
+++ b/dlls/ddraw/tests/ddraw2.c
@@ -13737,9 +13737,19 @@ static void test_clipper_refcount(void)
IDirectDrawClipper_Release(clipper);
IDirectDrawClipper_Release(clipper);
- hr = IDirectDrawSurface_GetClipper(surface, &clipper2);
- ok(SUCCEEDED(hr), "Failed to get clipper, hr %#x.\n", hr);
- ok(clipper == clipper2, "Got clipper %p, expected %p.\n", clipper2, clipper);
+ if (!ddraw_is_nvidia(ddraw))
+ {
+ /* Disabled because it causes heap corruption (HeapValidate fails and random
+ * hangs in a later HeapFree) on Windows on one of my Machines: MacbookPro 10,1
+ * running Windows 10 18363.535 and Nvidia driver 425.31. Driver version 441.66
+ * is affected too.
+ *
+ * The same Windows and driver versions run the test without heap corruption on
+ * a Geforce 1060 GTX card. I have not seen the problem on AMD GPUs either. */
+ hr = IDirectDrawSurface_GetClipper(surface, &clipper2);
+ ok(SUCCEEDED(hr), "Failed to get clipper, hr %#x.\n", hr);
+ ok(clipper == clipper2, "Got clipper %p, expected %p.\n", clipper2, clipper);
+ }
/* Show that invoking the Release method does not crash, but don't get the
* vtable through the clipper pointer because it is no longer pointing to
diff --git a/dlls/ddraw/tests/ddraw4.c b/dlls/ddraw/tests/ddraw4.c
index 77cf6f4511..1a16e2d571 100644
--- a/dlls/ddraw/tests/ddraw4.c
+++ b/dlls/ddraw/tests/ddraw4.c
@@ -16388,9 +16388,19 @@ static void test_clipper_refcount(void)
IDirectDrawClipper_Release(clipper);
IDirectDrawClipper_Release(clipper);
- hr = IDirectDrawSurface4_GetClipper(surface, &clipper2);
- ok(SUCCEEDED(hr), "Failed to get clipper, hr %#x.\n", hr);
- ok(clipper == clipper2, "Got clipper %p, expected %p.\n", clipper2, clipper);
+ if (!ddraw_is_nvidia(ddraw))
+ {
+ /* Disabled because it causes heap corruption (HeapValidate fails and random
+ * hangs in a later HeapFree) on Windows on one of my Machines: MacbookPro 10,1
+ * running Windows 10 18363.535 and Nvidia driver 425.31. Driver version 441.66
+ * is affected too.
+ *
+ * The same Windows and driver versions run the test without heap corruption on
+ * a Geforce 1060 GTX card. I have not seen the problem on AMD GPUs either. */
+ hr = IDirectDrawSurface4_GetClipper(surface, &clipper2);
+ ok(SUCCEEDED(hr), "Failed to get clipper, hr %#x.\n", hr);
+ ok(clipper == clipper2, "Got clipper %p, expected %p.\n", clipper2, clipper);
+ }
/* Show that invoking the Release method does not crash, but don't get the
* vtable through the clipper pointer because it is no longer pointing to
diff --git a/dlls/ddraw/tests/ddraw7.c b/dlls/ddraw/tests/ddraw7.c
index f4a709711b..20a1bc5f3a 100644
--- a/dlls/ddraw/tests/ddraw7.c
+++ b/dlls/ddraw/tests/ddraw7.c
@@ -16290,9 +16290,19 @@ static void test_clipper_refcount(void)
IDirectDrawClipper_Release(clipper);
IDirectDrawClipper_Release(clipper);
- hr = IDirectDrawSurface7_GetClipper(surface, &clipper2);
- ok(SUCCEEDED(hr), "Failed to get clipper, hr %#x.\n", hr);
- ok(clipper == clipper2, "Got clipper %p, expected %p.\n", clipper2, clipper);
+ if (!ddraw_is_nvidia(ddraw))
+ {
+ /* Disabled because it causes heap corruption (HeapValidate fails and random
+ * hangs in a later HeapFree) on Windows on one of my Machines: MacbookPro 10,1
+ * running Windows 10 18363.535 and Nvidia driver 425.31. Driver version 441.66
+ * is affected too.
+ *
+ * The same Windows and driver versions run the test without heap corruption on
+ * a Geforce 1060 GTX card. I have not seen the problem on AMD GPUs either. */
+ hr = IDirectDrawSurface7_GetClipper(surface, &clipper2);
+ ok(SUCCEEDED(hr), "Failed to get clipper, hr %#x.\n", hr);
+ ok(clipper == clipper2, "Got clipper %p, expected %p.\n", clipper2, clipper);
+ }
/* Show that invoking the Release method does not crash, but don't get the
* vtable through the clipper pointer because it is no longer pointing to