mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-01-28 22:04:43 -08:00
nvcuda-CUDA_Support: Added patch for Unknown5 internal CUDA interface.
This commit is contained in:
parent
21ab9dc521
commit
aa13fb8472
@ -37,11 +37,12 @@ Wine. All those differences are also documented on the
|
||||
Included bug fixes and improvements
|
||||
===================================
|
||||
|
||||
**Bugfixes and features included in the next upcoming release [18]:**
|
||||
**Bugfixes and features included in the next upcoming release [19]:**
|
||||
|
||||
* Add stub for D3DXComputeNormalMap
|
||||
* Add stub for D3DXComputeTangentFrameEx ([Wine Bug #31984](https://bugs.winehq.org/show_bug.cgi?id=31984))
|
||||
* Add stub for D3DXIntersect
|
||||
* Basic support for CUDA
|
||||
* Ensure X11 input events are handled even without explicit message loop ([Wine Bug #8854](https://bugs.winehq.org/show_bug.cgi?id=8854))
|
||||
* Expose PKEY_AudioEndpoint_PhysicalSpeakers device property in PulseAudio driver
|
||||
* Fix access violation when calling GetStringTypeW with NULL src. ([Wine Bug #37759](https://bugs.winehq.org/show_bug.cgi?id=37759))
|
||||
|
2
debian/changelog
vendored
2
debian/changelog
vendored
@ -24,7 +24,7 @@ wine-staging (1.7.34) UNRELEASED; urgency=low
|
||||
* Added patch to fix access violation when calling GetStringTypeW with NULL src.
|
||||
* Added patch for ID3DXFont::DrawTextA/W support.
|
||||
* Added patch to fix parameters for ConvertToIndexedBlendedMesh stub.
|
||||
* Added patch for nvcuda.
|
||||
* Added patch for basic CUDA support.
|
||||
* Added patches for D3DXComputeNormals and D3DXComputeNormalMap.
|
||||
* Removed patch to implement combase HSTRING objects (accepted upstream).
|
||||
* Removed patch to add fake ProductId to registry (accepted upstream).
|
||||
|
@ -88,7 +88,7 @@ PATCHLIST := \
|
||||
ntoskrnl-KeSetSystemAffinityThread.ok \
|
||||
ntoskrnl-Stub_FileObject.ok \
|
||||
ntoskrnl-Write_CR4.ok \
|
||||
nvcuda.ok \
|
||||
nvcuda-CUDA_Support.ok \
|
||||
ole32-CoWaitForMultipleHandles.ok \
|
||||
quartz-MediaSeeking_Positions.ok \
|
||||
riched20-IText_Interface.ok \
|
||||
@ -1376,18 +1376,20 @@ ntoskrnl-Write_CR4.ok:
|
||||
echo '+ { "Stefan Leichter", "ntoskrnl.exe: Emulate write to CR4 register.", 1 },'; \
|
||||
) > ntoskrnl-Write_CR4.ok
|
||||
|
||||
# Patchset nvcuda
|
||||
# Patchset nvcuda-CUDA_Support
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * configure.ac, dlls/nvcuda/Makefile.in, dlls/nvcuda/internal.c, dlls/nvcuda/nvcuda.c, dlls/nvcuda/nvcuda.h,
|
||||
# | dlls/nvcuda/nvcuda.rc, dlls/nvcuda/nvcuda.spec, dlls/nvcuda/tests/Makefile.in, dlls/nvcuda/tests/nvcuda.c
|
||||
# |
|
||||
.INTERMEDIATE: nvcuda.ok
|
||||
nvcuda.ok:
|
||||
$(call APPLY_FILE,nvcuda/0001-nvcuda-First-implementation.patch)
|
||||
.INTERMEDIATE: nvcuda-CUDA_Support.ok
|
||||
nvcuda-CUDA_Support.ok:
|
||||
$(call APPLY_FILE,nvcuda-CUDA_Support/0001-nvcuda-First-implementation.patch)
|
||||
$(call APPLY_FILE,nvcuda-CUDA_Support/0002-nvcuda-Add-Unknown5-internal-interface.patch)
|
||||
@( \
|
||||
echo '+ { "Michael Müller", "nvcuda: First implementation.", 1 },'; \
|
||||
) > nvcuda.ok
|
||||
echo '+ { "Michael Müller", "nvcuda: Add Unknown5 internal interface.", 1 },'; \
|
||||
) > nvcuda-CUDA_Support.ok
|
||||
|
||||
# Patchset ole32-CoWaitForMultipleHandles
|
||||
# |
|
||||
|
@ -0,0 +1,85 @@
|
||||
From cfce86cc5bde3a614bba4a7a20a38d78040afbc2 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Fri, 2 Jan 2015 21:48:23 +0100
|
||||
Subject: nvcuda: Add Unknown5 internal interface.
|
||||
|
||||
---
|
||||
dlls/nvcuda/internal.c | 41 ++++++++++++++++++++++++++++++++++++++++-
|
||||
1 file changed, 40 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/nvcuda/internal.c b/dlls/nvcuda/internal.c
|
||||
index 6e4f0e0..6f9e388 100755
|
||||
--- a/dlls/nvcuda/internal.c
|
||||
+++ b/dlls/nvcuda/internal.c
|
||||
@@ -98,6 +98,8 @@ static const CUuuid UUID_Unknown4 = {{0xC6, 0x93, 0x33, 0x6E,
|
||||
0xA8, 0xC3, 0x68, 0xF3, 0x55, 0xD8, 0x95, 0x93}};
|
||||
static const CUuuid UUID_TlsNotifyInterface = {{0x19, 0x5B, 0xCB, 0xF4, 0xD6, 0x7D, 0x02, 0x4A,
|
||||
0xAC, 0xC5, 0x1D, 0x29, 0xCE, 0xA6, 0x31, 0xAE}};
|
||||
+static const CUuuid UUID_Unknown5 = {{0x0C, 0xA5, 0x0B, 0x8C, 0x10, 0x04, 0x92, 0x9A,
|
||||
+ 0x89, 0xA7, 0xD0, 0xDF, 0x10, 0xE7, 0x72, 0x86}};
|
||||
|
||||
struct cuda_table
|
||||
{
|
||||
@@ -193,6 +195,20 @@ struct TlsNotifyInterface_table
|
||||
CUresult (WINAPI *Remove)(void *handle, void *param1);
|
||||
};
|
||||
|
||||
+/*
|
||||
+ * Unknown5
|
||||
+ */
|
||||
+struct Unknown5_table
|
||||
+{
|
||||
+ int size;
|
||||
+ void* (WINAPI *func0)(void *param0, void *param1, void *param2);
|
||||
+};
|
||||
+static const struct
|
||||
+{
|
||||
+ int size;
|
||||
+ void* (*func0)(void *param0, void *param1, void *param2);
|
||||
+} *Unknown5_orig = NULL;
|
||||
+
|
||||
void* WINAPI Unknown1_func0_relay(void *param0, void *param1)
|
||||
{
|
||||
TRACE("(%p, %p)\n", param0, param1);
|
||||
@@ -396,6 +412,18 @@ struct TlsNotifyInterface_table TlsNotifyInterface_Impl =
|
||||
TlsNotifyInterface_Remove,
|
||||
};
|
||||
|
||||
+void* WINAPI Unknown5_func0_relay(void *param0, void *param1, void *param2)
|
||||
+{
|
||||
+ TRACE("(%p, %p, %p)\n", param0, param1, param2);
|
||||
+ return Unknown5_orig->func0(param0, param1, param2);
|
||||
+}
|
||||
+
|
||||
+struct Unknown5_table Unknown5_Impl =
|
||||
+{
|
||||
+ sizeof(struct Unknown5_table),
|
||||
+ Unknown5_func0_relay,
|
||||
+};
|
||||
+
|
||||
static BOOL cuda_check_table(const struct cuda_table *orig, struct cuda_table *impl, const char *name)
|
||||
{
|
||||
if (!orig)
|
||||
@@ -487,7 +515,18 @@ CUresult cuda_get_table(const void **table, const CUuuid *uuid, const void *orig
|
||||
*table = (void *)&TlsNotifyInterface_Impl;
|
||||
return CUDA_SUCCESS;
|
||||
}
|
||||
+ else if (cuda_equal_uuid(uuid, &UUID_Unknown5))
|
||||
+ {
|
||||
+ if (orig_result)
|
||||
+ return orig_result;
|
||||
+ if (!cuda_check_table(orig_table, (void *)&Unknown5_Impl, "Unknown5"))
|
||||
+ return CUDA_ERROR_UNKNOWN;
|
||||
+
|
||||
+ Unknown5_orig = orig_table;
|
||||
+ *table = (void *)&Unknown5_Impl;
|
||||
+ return CUDA_SUCCESS;
|
||||
+ }
|
||||
|
||||
- FIXME("Unknown UUID: %s\n", cuda_print_uuid(uuid, buffer, sizeof(buffer)));
|
||||
+ FIXME("Unknown UUID: %s, error: %d\n", cuda_print_uuid(uuid, buffer, sizeof(buffer)), orig_result);
|
||||
return CUDA_ERROR_UNKNOWN;
|
||||
}
|
||||
--
|
||||
2.2.1
|
||||
|
1
patches/nvcuda-CUDA_Support/definition
Normal file
1
patches/nvcuda-CUDA_Support/definition
Normal file
@ -0,0 +1 @@
|
||||
Fixes: Basic support for CUDA
|
Loading…
x
Reference in New Issue
Block a user