Use the proper versioned serializer from vkd3d.
Signed-off-by: Hans-Kristian Arntzen post@arntzen-software.no --- dlls/d3d12/d3d12_main.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/dlls/d3d12/d3d12_main.c b/dlls/d3d12/d3d12_main.c index bd680d8254..9f0fa12ee8 100644 --- a/dlls/d3d12/d3d12_main.c +++ b/dlls/d3d12/d3d12_main.c @@ -420,9 +420,5 @@ HRESULT WINAPI D3D12SerializeVersionedRootSignature(const D3D12_VERSIONED_ROOT_S { TRACE("desc %p, blob %p, error_blob %p.\n", desc, blob, error_blob);
- if (desc->Version == D3D_ROOT_SIGNATURE_VERSION_1_0) - return vkd3d_serialize_root_signature(&desc->Desc_1_0, desc->Version, blob, error_blob); - - FIXME("Unsupported version %#x.\n", desc->Version); - return E_NOTIMPL; + return vkd3d_serialize_versioned_root_signature(desc, blob, error_blob); }
Signed-off-by: Hans-Kristian Arntzen post@arntzen-software.no --- dlls/d3d12/d3d12.spec | 2 +- dlls/d3d12/d3d12_main.c | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/dlls/d3d12/d3d12.spec b/dlls/d3d12/d3d12.spec index 7c2ae98806..21231d3955 100644 --- a/dlls/d3d12/d3d12.spec +++ b/dlls/d3d12/d3d12.spec @@ -5,7 +5,7 @@ @ stub D3D12CoreGetLayeredDeviceSize @ stub D3D12CoreRegisterLayers @ stdcall D3D12CreateRootSignatureDeserializer(ptr long ptr ptr) -#@ stub D3D12CreateVersionedRootSignatureDeserializer +@ stdcall D3D12CreateVersionedRootSignatureDeserializer(ptr long ptr ptr) @ stdcall D3D12EnableExperimentalFeatures(long ptr ptr ptr) @ stdcall D3D12SerializeRootSignature(ptr long ptr ptr) @ stdcall D3D12SerializeVersionedRootSignature(ptr ptr ptr) diff --git a/dlls/d3d12/d3d12_main.c b/dlls/d3d12/d3d12_main.c index 9f0fa12ee8..b8810848cd 100644 --- a/dlls/d3d12/d3d12_main.c +++ b/dlls/d3d12/d3d12_main.c @@ -406,6 +406,15 @@ HRESULT WINAPI D3D12CreateRootSignatureDeserializer(const void *data, SIZE_T dat return vkd3d_create_root_signature_deserializer(data, data_size, iid, deserializer); }
+HRESULT WINAPI D3D12CreateVersionedRootSignatureDeserializer(const void *data, SIZE_T data_size, + REFIID iid, void **deserializer) +{ + TRACE("data %p, data_size %lu, iid %s, deserializer %p.\n", + data, data_size, debugstr_guid(iid), deserializer); + + return vkd3d_create_versioned_root_signature_deserializer(data, data_size, iid, deserializer); +} + HRESULT WINAPI D3D12SerializeRootSignature(const D3D12_ROOT_SIGNATURE_DESC *root_signature_desc, D3D_ROOT_SIGNATURE_VERSION version, ID3DBlob **blob, ID3DBlob **error_blob) {
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=57859
Your paranoid android.
=== debian10 (build log) ===
collect2: error: ld returned 1 exit status Task: The win32 build failed
=== debian10 (build log) ===
collect2: error: ld returned 1 exit status Task: The wow64 build failed
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=57858
Your paranoid android.
=== debian10 (build log) ===
collect2: error: ld returned 1 exit status Task: The win32 build failed
=== debian10 (build log) ===
collect2: error: ld returned 1 exit status Task: The wow64 build failed
On Wed, 16 Oct 2019 at 14:37, Hans-Kristian Arntzen post@arntzen-software.no wrote:
- return vkd3d_serialize_versioned_root_signature(desc, blob, error_blob);
That's a version 1.2 interface, which has not been released yet. I.e., although unlikely, this API is still subject to change. We'd like to release vkd3d 1.2 sooner rather than later; currently it's blocked on review of the vkd3d-shader API.
On 10/18/19 4:13 PM, Henri Verbeet wrote:
On Wed, 16 Oct 2019 at 14:37, Hans-Kristian Arntzen post@arntzen-software.no wrote:
- return vkd3d_serialize_versioned_root_signature(desc, blob, error_blob);
That's a version 1.2 interface, which has not been released yet. I.e., although unlikely, this API is still subject to change. We'd like to release vkd3d 1.2 sooner rather than later; currently it's blocked on review of the vkd3d-shader API.
Right, might make sense to pick up RS 1.1 support after 1.2 is released then. It's not particularly urgent to merge this.
Cheers, Hans-Kristian
On Fri, 18 Oct 2019 at 17:43, Henri Verbeet hverbeet@gmail.com wrote:
That's a version 1.2 interface, which has not been released yet. I.e., although unlikely, this API is still subject to change. We'd like to release vkd3d 1.2 sooner rather than later; currently it's blocked on review of the vkd3d-shader API.
I forgot to add, once vkd3d 1.2 is released, you'd also need to update the Wine configure.ac check for vkd3d, or we'd fail to build against older versions of vkd3d.
I still use these two patches
[PATCH 1/2] dlls/d3d12: Fix D3D12SerializeVersionedRootSignature https://www.winehq.org/pipermail/wine-devel/2019-October/152356.html
[PATCH 2/2] dlls/d3d12: Add D3D12CreateVersionedRootSignatureDeserializer. https://www.winehq.org/pipermail/wine-devel/2019-October/152357.html
to play World of Warcraft with my patched vkd3d. Since this seems "gone" from the queue, does this mean it is better to try to get this implemented through staging, or should i just wait for vkd3d_1.2 and this patch being resubmitted?
Kinda feel like some "special interest" to play WoW with D3D12 i guess :)
Sveinar
On 18.10.2019 16:13, hverbeet at gmail.com (Henri Verbeet) wrote:
On Wed, 16 Oct 2019 at 14:37, Hans-Kristian Arntzen <post at arntzen-software.no> wrote:
- return vkd3d_serialize_versioned_root_signature(desc, blob, error_blob);
That's a version 1.2 interface, which has not been released yet. I.e., although unlikely, this API is still subject to change. We'd like to release vkd3d 1.2 sooner rather than later; currently it's blocked on review of the vkd3d-shader API.
On Sat, 16 Nov 2019 at 01:25, Sveinar Søpler cybermax@dexter.no wrote:
I still use these two patches
[PATCH 1/2] dlls/d3d12: Fix D3D12SerializeVersionedRootSignature https://www.winehq.org/pipermail/wine-devel/2019-October/152356.html
[PATCH 2/2] dlls/d3d12: Add D3D12CreateVersionedRootSignatureDeserializer. https://www.winehq.org/pipermail/wine-devel/2019-October/152357.html
to play World of Warcraft with my patched vkd3d. Since this seems "gone" from the queue, does this mean it is better to try to get this implemented through staging, or should i just wait for vkd3d_1.2 and this patch being resubmitted?
Kinda feel like some "special interest" to play WoW with D3D12 i guess :)
I was under the impression that you said a later vkd3d patch resolved the issue with World of Warcraft. Is that not the case?
Together with these wine patches yes, not by vkd3d patches by itself.
If it is of interest, i can post the necessary vkd3d patches that fixes both the errors with flashing textures (https://bugs.winehq.org/show_bug.cgi?id=46410) and crashes when zoning into nazjetar (https://bugs.winehq.org/show_bug.cgi?id=47471) and if one or both of the "D3D12 Serialize" patches is needed for D3D12 to work with current wine-staging-git?
PS. This "mailinglist" thing is horribly hopeless to keep up to date when referring to other patches.. atleast not in a way that i can figure out other than posting links.. and browsing through various .txt archive files to figure that out, so when i posted about a vkd3d patch that fixed things, it was probably not clear that it ALSO needed wine patches, that i think (without once again searching through 100'eds of mailthreads) was mentioned earlier in the thread. Sorry.
Sveinar
On 15.11.2019 23:10, Henri Verbeet wrote:
On Sat, 16 Nov 2019 at 01:25, Sveinar Søpler cybermax@dexter.no wrote:
I still use these two patches
[PATCH 1/2] dlls/d3d12: Fix D3D12SerializeVersionedRootSignature https://www.winehq.org/pipermail/wine-devel/2019-October/152356.html
[PATCH 2/2] dlls/d3d12: Add D3D12CreateVersionedRootSignatureDeserializer. https://www.winehq.org/pipermail/wine-devel/2019-October/152357.html
to play World of Warcraft with my patched vkd3d. Since this seems "gone" from the queue, does this mean it is better to try to get this implemented through staging, or should i just wait for vkd3d_1.2 and this patch being resubmitted?
Kinda feel like some "special interest" to play WoW with D3D12 i guess :)
I was under the impression that you said a later vkd3d patch resolved the issue with World of Warcraft. Is that not the case?
Ok. Tested as follows:
Wine-staging-4.20
vkd3d git HEAD@da68980fdc0e549174ce0a9c1f7859f2f388a907
World of Warcraft crashes upon loading with a "Error #132 Fatal Exception!"
Added the following patch to wine-staging-4.20: https://www.winehq.org/pipermail/wine-devel/2019-October/152356.html
WoW now loads, and can zone in. Textures are flashing ref. https://bugs.winehq.org/show_bug.cgi?id=46410
The bug: https://bugs.winehq.org/show_bug.cgi?id=47471 can be closed as this seems fixed with a recent commit.
To fix the texture flashing (https://bugs.winehq.org/show_bug.cgi?id=46410), you need this patch for vkd3d: https://www.winehq.org/pipermail/wine-devel/2019-November/153658.html , however due to https://source.winehq.org/git/vkd3d.git/commitdiff/72246862af70a338c818d9c42... the patch needs a minor rework. I can post the fixed patch as a separate "v2" patch if it will be implemented, but since it has not been upstreamed so far, i dunno if it will be... Maybe better if Hans-Kristian Arntzen review?
Sveinar
On 16.11.2019 13:13, Sveinar Søpler wrote:
Together with these wine patches yes, not by vkd3d patches by itself.
If it is of interest, i can post the necessary vkd3d patches that fixes both the errors with flashing textures (https://bugs.winehq.org/show_bug.cgi?id=46410) and crashes when zoning into nazjetar (https://bugs.winehq.org/show_bug.cgi?id=47471) and if one or both of the "D3D12 Serialize" patches is needed for D3D12 to work with current wine-staging-git?
PS. This "mailinglist" thing is horribly hopeless to keep up to date when referring to other patches.. atleast not in a way that i can figure out other than posting links.. and browsing through various .txt archive files to figure that out, so when i posted about a vkd3d patch that fixed things, it was probably not clear that it ALSO needed wine patches, that i think (without once again searching through 100'eds of mailthreads) was mentioned earlier in the thread. Sorry.
Sveinar
On 15.11.2019 23:10, Henri Verbeet wrote:
On Sat, 16 Nov 2019 at 01:25, Sveinar Søpler cybermax@dexter.no wrote:
I still use these two patches
[PATCH 1/2] dlls/d3d12: Fix D3D12SerializeVersionedRootSignature https://www.winehq.org/pipermail/wine-devel/2019-October/152356.html
[PATCH 2/2] dlls/d3d12: Add D3D12CreateVersionedRootSignatureDeserializer. https://www.winehq.org/pipermail/wine-devel/2019-October/152357.html
to play World of Warcraft with my patched vkd3d. Since this seems "gone" from the queue, does this mean it is better to try to get this implemented through staging, or should i just wait for vkd3d_1.2 and this patch being resubmitted?
Kinda feel like some "special interest" to play WoW with D3D12 i guess :)
I was under the impression that you said a later vkd3d patch resolved the issue with World of Warcraft. Is that not the case?
On Sun, 17 Nov 2019 at 00:11, Sveinar Søpler cybermax@dexter.no wrote:
Ok. Tested as follows:
Wine-staging-4.20
vkd3d git HEAD@da68980fdc0e549174ce0a9c1f7859f2f388a907
World of Warcraft crashes upon loading with a "Error #132 Fatal Exception!"
Added the following patch to wine-staging-4.20: https://www.winehq.org/pipermail/wine-devel/2019-October/152356.html
WoW now loads, and can zone in. Textures are flashing ref. https://bugs.winehq.org/show_bug.cgi?id=46410
The bug: https://bugs.winehq.org/show_bug.cgi?id=47471 can be closed as this seems fixed with a recent commit.
Ok, so the regression from commit c002aee119b638d30eeb7cdc91099449ccafeafc is independent of bug 46410, correct? Does the attached patch fix the regression?
PS. This "mailinglist" thing is horribly hopeless to keep up to date when referring to other patches.. atleast not in a way that i can figure out other than posting links.. and browsing through various .txt archive files to figure that out, so when i posted about a vkd3d patch that fixed things, it was probably not clear that it ALSO needed wine patches, that i think (without once again searching through 100'eds of mailthreads) was mentioned earlier in the thread. Sorry.
The bug tracker does work better for tracking bugs, yes.
Henri
On 18.11.2019 10:55, Henri Verbeet wrote:
On Sun, 17 Nov 2019 at 00:11, Sveinar Søpler cybermax@dexter.no wrote:
Ok. Tested as follows:
Wine-staging-4.20
vkd3d git HEAD@da68980fdc0e549174ce0a9c1f7859f2f388a907
World of Warcraft crashes upon loading with a "Error #132 Fatal Exception!"
Added the following patch to wine-staging-4.20: https://www.winehq.org/pipermail/wine-devel/2019-October/152356.html
WoW now loads, and can zone in. Textures are flashing ref. https://bugs.winehq.org/show_bug.cgi?id=46410
The bug: https://bugs.winehq.org/show_bug.cgi?id=47471 can be closed as this seems fixed with a recent commit.
Ok, so the regression from commit c002aee119b638d30eeb7cdc91099449ccafeafc is independent of bug 46410, correct? Does the attached patch fix the regression?
Yes, the bug 46410 is independent of this regression. I made an attempt at reposting a fix for that particular bug here: https://source.winehq.org/patches/data/174234 but i borked some formatting, so i dunno if that applies...
Your attached patch for vkd3d fixed the regression. I tested this with a clean unpatched wine-staging-4.20.
It does seem as the patch just forces things back to root_signature_1.0 tho? Would it not be better to implement the Fix D3D12SerializeVersionedRootSignature patch to wine?
Sveinar
PS. This "mailinglist" thing is horribly hopeless to keep up to date when referring to other patches.. atleast not in a way that i can figure out other than posting links.. and browsing through various .txt archive files to figure that out, so when i posted about a vkd3d patch that fixed things, it was probably not clear that it ALSO needed wine patches, that i think (without once again searching through 100'eds of mailthreads) was mentioned earlier in the thread. Sorry.
The bug tracker does work better for tracking bugs, yes.
Henri
On 11/23/19 4:47 PM, Sveinar Søpler wrote:
On 18.11.2019 10:55, Henri Verbeet wrote:
On Sun, 17 Nov 2019 at 00:11, Sveinar Søpler cybermax@dexter.no wrote:
Ok. Tested as follows:
Wine-staging-4.20
vkd3d git HEAD@da68980fdc0e549174ce0a9c1f7859f2f388a907
World of Warcraft crashes upon loading with a "Error #132 Fatal Exception!"
Added the following patch to wine-staging-4.20: https://www.winehq.org/pipermail/wine-devel/2019-October/152356.html
WoW now loads, and can zone in. Textures are flashing ref. https://bugs.winehq.org/show_bug.cgi?id=46410
The bug: https://bugs.winehq.org/show_bug.cgi?id=47471 can be closed as this seems fixed with a recent commit.
Ok, so the regression from commit c002aee119b638d30eeb7cdc91099449ccafeafc is independent of bug 46410, correct? Does the attached patch fix the regression?
Yes, the bug 46410 is independent of this regression. I made an attempt at reposting a fix for that particular bug here: https://source.winehq.org/patches/data/174234 but i borked some formatting, so i dunno if that applies...
Your attached patch for vkd3d fixed the regression. I tested this with a clean unpatched wine-staging-4.20.
It does seem as the patch just forces things back to root_signature_1.0 tho? Would it not be better to implement the Fix D3D12SerializeVersionedRootSignature patch to wine?
Sveinar
I think the problem is that D3D12SerializeVersionedRootSignature implementation depends on latest vkd3d to be able to compile, it cannot compile against vkd3d 1.1 (latest release, from January), which does not implement RS 1.1. Ideally wine master would depend on vkd3d master so we can expose RS 1.1 support.
Cheers, Hans-Kristian
PS. This "mailinglist" thing is horribly hopeless to keep up to date when referring to other patches.. atleast not in a way that i can figure out other than posting links.. and browsing through various .txt archive files to figure that out, so when i posted about a vkd3d patch that fixed things, it was probably not clear that it ALSO needed wine patches, that i think (without once again searching through 100'eds of mailthreads) was mentioned earlier in the thread. Sorry.
The bug tracker does work better for tracking bugs, yes.
Henri
On 23.11.2019 16:57, Hans-Kristian Arntzen wrote:
On 11/23/19 4:47 PM, Sveinar Søpler wrote:
On 18.11.2019 10:55, Henri Verbeet wrote:
On Sun, 17 Nov 2019 at 00:11, Sveinar Søpler cybermax@dexter.no wrote:
Ok. Tested as follows:
Wine-staging-4.20
vkd3d git HEAD@da68980fdc0e549174ce0a9c1f7859f2f388a907
World of Warcraft crashes upon loading with a "Error #132 Fatal Exception!"
Added the following patch to wine-staging-4.20: https://www.winehq.org/pipermail/wine-devel/2019-October/152356.html
WoW now loads, and can zone in. Textures are flashing ref. https://bugs.winehq.org/show_bug.cgi?id=46410
The bug: https://bugs.winehq.org/show_bug.cgi?id=47471 can be closed as this seems fixed with a recent commit.
Ok, so the regression from commit c002aee119b638d30eeb7cdc91099449ccafeafc is independent of bug 46410, correct? Does the attached patch fix the regression?
Yes, the bug 46410 is independent of this regression. I made an attempt at reposting a fix for that particular bug here: https://source.winehq.org/patches/data/174234 but i borked some formatting, so i dunno if that applies...
Your attached patch for vkd3d fixed the regression. I tested this with a clean unpatched wine-staging-4.20.
It does seem as the patch just forces things back to root_signature_1.0 tho? Would it not be better to implement the Fix D3D12SerializeVersionedRootSignature patch to wine?
Sveinar
I think the problem is that D3D12SerializeVersionedRootSignature implementation depends on latest vkd3d to be able to compile, it cannot compile against vkd3d 1.1 (latest release, from January), which does not implement RS 1.1. Ideally wine master would depend on vkd3d master so we can expose RS 1.1 support.
Cheers, Hans-Kristian
Yeah. I actually verified this for someone asking on bugzilla too. And asked on this thread how the testbot gets its packages.
Sveinar
PS. This "mailinglist" thing is horribly hopeless to keep up to date when referring to other patches.. atleast not in a way that i can figure out other than posting links.. and browsing through various .txt archive files to figure that out, so when i posted about a vkd3d patch that fixed things, it was probably not clear that it ALSO needed wine patches, that i think (without once again searching through 100'eds of mailthreads) was mentioned earlier in the thread. Sorry.
The bug tracker does work better for tracking bugs, yes.
Henri
On 11/23/19 9:57 AM, Hans-Kristian Arntzen wrote:
On 11/23/19 4:47 PM, Sveinar Søpler wrote:
On 18.11.2019 10:55, Henri Verbeet wrote:
On Sun, 17 Nov 2019 at 00:11, Sveinar Søpler cybermax@dexter.no wrote:
Ok. Tested as follows:
Wine-staging-4.20
vkd3d git HEAD@da68980fdc0e549174ce0a9c1f7859f2f388a907
World of Warcraft crashes upon loading with a "Error #132 Fatal Exception!"
Added the following patch to wine-staging-4.20: https://www.winehq.org/pipermail/wine-devel/2019-October/152356.html
WoW now loads, and can zone in. Textures are flashing ref. https://bugs.winehq.org/show_bug.cgi?id=46410
The bug: https://bugs.winehq.org/show_bug.cgi?id=47471 can be closed as this seems fixed with a recent commit.
Ok, so the regression from commit c002aee119b638d30eeb7cdc91099449ccafeafc is independent of bug 46410, correct? Does the attached patch fix the regression?
Yes, the bug 46410 is independent of this regression. I made an attempt at reposting a fix for that particular bug here: https://source.winehq.org/patches/data/174234 but i borked some formatting, so i dunno if that applies...
Your attached patch for vkd3d fixed the regression. I tested this with a clean unpatched wine-staging-4.20.
It does seem as the patch just forces things back to root_signature_1.0 tho? Would it not be better to implement the Fix D3D12SerializeVersionedRootSignature patch to wine?
Sveinar
I think the problem is that D3D12SerializeVersionedRootSignature implementation depends on latest vkd3d to be able to compile, it cannot compile against vkd3d 1.1 (latest release, from January), which does not implement RS 1.1. Ideally wine master would depend on vkd3d master so we can expose RS 1.1 support.
This isn't really a sustainable way to release libraries. It requires that anyone distributing libvkd3d distribute the git master, and it also requires that libvkd3d be distributed in lockstep with Wine in case its API does change in a non-backwards-compatible way.
The ideal solution is that the libvkd3d 1.2 API be reviewed and fixed, and that 1.2 be released.
Cheers, Hans-Kristian
PS. This "mailinglist" thing is horribly hopeless to keep up to date when referring to other patches.. atleast not in a way that i can figure out other than posting links.. and browsing through various .txt archive files to figure that out, so when i posted about a vkd3d patch that fixed things, it was probably not clear that it ALSO needed wine patches, that i think (without once again searching through 100'eds of mailthreads) was mentioned earlier in the thread. Sorry.
The bug tracker does work better for tracking bugs, yes.
Henri
On 24.11.2019 16:24, Zebediah Figura wrote:
On 11/23/19 9:57 AM, Hans-Kristian Arntzen wrote:
On 11/23/19 4:47 PM, Sveinar Søpler wrote:
On 18.11.2019 10:55, Henri Verbeet wrote:
On Sun, 17 Nov 2019 at 00:11, Sveinar Søpler cybermax@dexter.no wrote:
Ok. Tested as follows:
Wine-staging-4.20
vkd3d git HEAD@da68980fdc0e549174ce0a9c1f7859f2f388a907
World of Warcraft crashes upon loading with a "Error #132 Fatal Exception!"
Added the following patch to wine-staging-4.20: https://www.winehq.org/pipermail/wine-devel/2019-October/152356.html
WoW now loads, and can zone in. Textures are flashing ref. https://bugs.winehq.org/show_bug.cgi?id=46410
The bug: https://bugs.winehq.org/show_bug.cgi?id=47471 can be closed as this seems fixed with a recent commit.
Ok, so the regression from commit c002aee119b638d30eeb7cdc91099449ccafeafc is independent of bug 46410, correct? Does the attached patch fix the regression?
Yes, the bug 46410 is independent of this regression. I made an attempt at reposting a fix for that particular bug here: https://source.winehq.org/patches/data/174234 but i borked some formatting, so i dunno if that applies...
Your attached patch for vkd3d fixed the regression. I tested this with a clean unpatched wine-staging-4.20.
It does seem as the patch just forces things back to root_signature_1.0 tho? Would it not be better to implement the Fix D3D12SerializeVersionedRootSignature patch to wine?
Sveinar
I think the problem is that D3D12SerializeVersionedRootSignature implementation depends on latest vkd3d to be able to compile, it cannot compile against vkd3d 1.1 (latest release, from January), which does not implement RS 1.1. Ideally wine master would depend on vkd3d master so we can expose RS 1.1 support.
This isn't really a sustainable way to release libraries. It requires that anyone distributing libvkd3d distribute the git master, and it also requires that libvkd3d be distributed in lockstep with Wine in case its API does change in a non-backwards-compatible way.
The ideal solution is that the libvkd3d 1.2 API be reviewed and fixed, and that 1.2 be released.
Does this mean that supporting D3D12 root signature 1.1 requires a API change to libvkd3d_1.2? How would the testbot pick up the new package? Would it be much different than "releasing" libvkd3d_1.1-2 or something as a intermediate "release"?
Would doing some configure check be possible? If the local libvkd3d-dev package have the function compile WITH D3D12SerializeVersionedRootSignature, and if not, do not use this function? I mean if it is necessary for a distro to pick up this new release when that happens, will leave us in a state like the libFAudio library is now, and i do not think that is much more preferable...
It is kind of a catch 22 this thing, cos you cannot update Wine with this due to missing libvkd3d function, and you cannot upgrade libvkd3d with this, cos Wine does not support it....
Sveinar
Cheers, Hans-Kristian
PS. This "mailinglist" thing is horribly hopeless to keep up to date when referring to other patches.. atleast not in a way that i can figure out other than posting links.. and browsing through various .txt archive files to figure that out, so when i posted about a vkd3d patch that fixed things, it was probably not clear that it ALSO needed wine patches, that i think (without once again searching through 100'eds of mailthreads) was mentioned earlier in the thread. Sorry.
The bug tracker does work better for tracking bugs, yes.
Henri
On 11/24/19 10:00 AM, Sveinar Søpler wrote:
On 24.11.2019 16:24, Zebediah Figura wrote:
On 11/23/19 9:57 AM, Hans-Kristian Arntzen wrote:
On 11/23/19 4:47 PM, Sveinar Søpler wrote:
On 18.11.2019 10:55, Henri Verbeet wrote:
On Sun, 17 Nov 2019 at 00:11, Sveinar Søpler cybermax@dexter.no wrote:
Ok. Tested as follows:
Wine-staging-4.20
vkd3d git HEAD@da68980fdc0e549174ce0a9c1f7859f2f388a907
World of Warcraft crashes upon loading with a "Error #132 Fatal Exception!"
Added the following patch to wine-staging-4.20: https://www.winehq.org/pipermail/wine-devel/2019-October/152356.html
WoW now loads, and can zone in. Textures are flashing ref. https://bugs.winehq.org/show_bug.cgi?id=46410
The bug: https://bugs.winehq.org/show_bug.cgi?id=47471 can be closed as this seems fixed with a recent commit.
Ok, so the regression from commit c002aee119b638d30eeb7cdc91099449ccafeafc is independent of bug 46410, correct? Does the attached patch fix the regression?
Yes, the bug 46410 is independent of this regression. I made an attempt at reposting a fix for that particular bug here: https://source.winehq.org/patches/data/174234 but i borked some formatting, so i dunno if that applies...
Your attached patch for vkd3d fixed the regression. I tested this with a clean unpatched wine-staging-4.20.
It does seem as the patch just forces things back to root_signature_1.0 tho? Would it not be better to implement the Fix D3D12SerializeVersionedRootSignature patch to wine?
Sveinar
I think the problem is that D3D12SerializeVersionedRootSignature implementation depends on latest vkd3d to be able to compile, it cannot compile against vkd3d 1.1 (latest release, from January), which does not implement RS 1.1. Ideally wine master would depend on vkd3d master so we can expose RS 1.1 support.
This isn't really a sustainable way to release libraries. It requires that anyone distributing libvkd3d distribute the git master, and it also requires that libvkd3d be distributed in lockstep with Wine in case its API does change in a non-backwards-compatible way.
The ideal solution is that the libvkd3d 1.2 API be reviewed and fixed, and that 1.2 be released.
Does this mean that supporting D3D12 root signature 1.1 requires a API change to libvkd3d_1.2? How would the testbot pick up the new package? Would it be much different than "releasing" libvkd3d_1.1-2 or something as a intermediate "release"?
libvkd3d 1.2 hasn't been released. Exporting vkd3d_serialize_versioned_root_signature() is itself an API change from libvkd3d 1.1. The API change corresponds (if I understand correctly) to a convention in version naming: the minor version is incremented for changes which are backwards-compatible, the major version for those which are not.
I'm not sure how libraries are installed on testbot machines, but I suspect they go through distribution packages.
Would doing some configure check be possible? If the local libvkd3d-dev package have the function compile WITH D3D12SerializeVersionedRootSignature, and if not, do not use this function? I mean if it is necessary for a distro to pick up this new release when that happens, will leave us in a state like the libFAudio library is now, and i do not think that is much more preferable...
Once libvkd3d 1.2 has been released (and, I suspect, once a reasonable amount of time has been given for distributors to update it), Wine will either use it conditionally or require 1.2 to compile. See also Wine commit 72cf4a99c.
It is kind of a catch 22 this thing, cos you cannot update Wine with this due to missing libvkd3d function, and you cannot upgrade libvkd3d with this, cos Wine does not support it....
I'm not sure I see how. libvkd3d doesn't depend on Wine at all; that's kind of its entire point.
Sveinar
Cheers, Hans-Kristian
PS. This "mailinglist" thing is horribly hopeless to keep up to date when referring to other patches.. atleast not in a way that i can figure out other than posting links.. and browsing through various .txt archive files to figure that out, so when i posted about a vkd3d patch that fixed things, it was probably not clear that it ALSO needed wine patches, that i think (without once again searching through 100'eds of mailthreads) was mentioned earlier in the thread. Sorry.
The bug tracker does work better for tracking bugs, yes.
Henri
On 24.11.2019 17:40, Zebediah Figura wrote:
On 11/24/19 10:00 AM, Sveinar Søpler wrote:
On 24.11.2019 16:24, Zebediah Figura wrote:
On 11/23/19 9:57 AM, Hans-Kristian Arntzen wrote:
On 11/23/19 4:47 PM, Sveinar Søpler wrote:
On 18.11.2019 10:55, Henri Verbeet wrote:
On Sun, 17 Nov 2019 at 00:11, Sveinar Søpler cybermax@dexter.no wrote: > Ok. Tested as follows: > > Wine-staging-4.20 > > vkd3d git HEAD@da68980fdc0e549174ce0a9c1f7859f2f388a907 > > World of Warcraft crashes upon loading with a "Error #132 Fatal > Exception!" > > Added the following patch to wine-staging-4.20: > https://www.winehq.org/pipermail/wine-devel/2019-October/152356.html > > WoW now loads, and can zone in. Textures are flashing ref. > https://bugs.winehq.org/show_bug.cgi?id=46410 > > The bug: https://bugs.winehq.org/show_bug.cgi?id=47471 can be closed as > this seems fixed with a recent commit. > Ok, so the regression from commit c002aee119b638d30eeb7cdc91099449ccafeafc is independent of bug 46410, correct? Does the attached patch fix the regression?
Yes, the bug 46410 is independent of this regression. I made an attempt at reposting a fix for that particular bug here: https://source.winehq.org/patches/data/174234 but i borked some formatting, so i dunno if that applies...
Your attached patch for vkd3d fixed the regression. I tested this with a clean unpatched wine-staging-4.20.
It does seem as the patch just forces things back to root_signature_1.0 tho? Would it not be better to implement the Fix D3D12SerializeVersionedRootSignature patch to wine?
Sveinar
I think the problem is that D3D12SerializeVersionedRootSignature implementation depends on latest vkd3d to be able to compile, it cannot compile against vkd3d 1.1 (latest release, from January), which does not implement RS 1.1. Ideally wine master would depend on vkd3d master so we can expose RS 1.1 support.
This isn't really a sustainable way to release libraries. It requires that anyone distributing libvkd3d distribute the git master, and it also requires that libvkd3d be distributed in lockstep with Wine in case its API does change in a non-backwards-compatible way.
The ideal solution is that the libvkd3d 1.2 API be reviewed and fixed, and that 1.2 be released.
Does this mean that supporting D3D12 root signature 1.1 requires a API change to libvkd3d_1.2? How would the testbot pick up the new package? Would it be much different than "releasing" libvkd3d_1.1-2 or something as a intermediate "release"?
libvkd3d 1.2 hasn't been released. Exporting vkd3d_serialize_versioned_root_signature() is itself an API change from libvkd3d 1.1. The API change corresponds (if I understand correctly) to a convention in version naming: the minor version is incremented for changes which are backwards-compatible, the major version for those which are not.
I'm not sure how libraries are installed on testbot machines, but I suspect they go through distribution packages.
I think so too. Kinda like how buildbots do it i guess.
Would doing some configure check be possible? If the local libvkd3d-dev package have the function compile WITH D3D12SerializeVersionedRootSignature, and if not, do not use this function? I mean if it is necessary for a distro to pick up this new release when that happens, will leave us in a state like the libFAudio library is now, and i do not think that is much more preferable...
Once libvkd3d 1.2 has been released (and, I suspect, once a reasonable amount of time has been given for distributors to update it), Wine will either use it conditionally or require 1.2 to compile. See also Wine commit 72cf4a99c.
As i said above.. This kinda has not worked very well for libFAudio. But sure "given enough time" it will. So if libvkd3d_1.2 is released Q1 2020, i think atleast for the Ubuntu side, it might make it in time for 20.04 LTS, or atleast 20.10 later that year.
It is kind of a catch 22 this thing, cos you cannot update Wine with this due to missing libvkd3d function, and you cannot upgrade libvkd3d with this, cos Wine does not support it....
I'm not sure I see how. libvkd3d doesn't depend on Wine at all; that's kind of its entire point.
Oh i agree. libvkd3d is a standalone library that do not depend on wine... but to my knowledge the only thing using libvkd3d at the current time is wine. I am happy to be corrected ofc!
It might be ONLY world of warcraft that have these issues, and in that case it is not problematic to say that D3D12 simply does not work with current wine. I am interested in finding out if other games that uses D3D12 can use libvkd3d GIT version without these patches? Hitman 2? Dunno. Feedback welcome :)
But it is probably equally unproblematic to just revert patches too, and wait this one out a bit longer, as World of Warcraft seemed to work with Henri's patch a few posts up. The same question there too tho - Does reverting the root_signature_1.1 thing cause any problems? If not, sure, the easiest solution for the time being is just to go back to root_sig_1.0.
Philip: Any opinions about whether root_signature_1.1 is needed for games you have tested, or for that matter if you need this (wine)D3D12SerializeVersionedRootSignature patch with current libvkd3d GIT for other games?
Sveinar
Sveinar
Cheers, Hans-Kristian
> PS. This "mailinglist" thing is horribly hopeless to keep up to date > when referring to other patches.. atleast not in a way that i can > figure > out other than posting links.. and browsing through various .txt > archive > files to figure that out, so when i posted about a vkd3d patch that > fixed things, it was probably not clear that it ALSO needed wine > patches, that i think (without once again searching through 100'eds of > mailthreads) was mentioned earlier in the thread. Sorry. > The bug tracker does work better for tracking bugs, yes.
Henri
Sveinar
On 24.11.2019 18:39, Sveinar Søpler wrote:
On 24.11.2019 17:40, Zebediah Figura wrote:
On 11/24/19 10:00 AM, Sveinar Søpler wrote:
On 24.11.2019 16:24, Zebediah Figura wrote:
On 11/23/19 9:57 AM, Hans-Kristian Arntzen wrote:
On 11/23/19 4:47 PM, Sveinar Søpler wrote:
On 18.11.2019 10:55, Henri Verbeet wrote: > On Sun, 17 Nov 2019 at 00:11, Sveinar Søpler > cybermax@dexter.no wrote: >> Ok. Tested as follows: >> >> Wine-staging-4.20 >> >> vkd3d git HEAD@da68980fdc0e549174ce0a9c1f7859f2f388a907 >> >> World of Warcraft crashes upon loading with a "Error #132 Fatal >> Exception!" >> >> Added the following patch to wine-staging-4.20: >> https://www.winehq.org/pipermail/wine-devel/2019-October/152356.html >> >> >> WoW now loads, and can zone in. Textures are flashing ref. >> https://bugs.winehq.org/show_bug.cgi?id=46410 >> >> The bug: https://bugs.winehq.org/show_bug.cgi?id=47471 can be >> closed as >> this seems fixed with a recent commit. >> > Ok, so the regression from commit > c002aee119b638d30eeb7cdc91099449ccafeafc is independent of bug > 46410, > correct? Does the attached patch fix the regression? Yes, the bug 46410 is independent of this regression. I made an attempt at reposting a fix for that particular bug here: https://source.winehq.org/patches/data/174234 but i borked some formatting, so i dunno if that applies...
Your attached patch for vkd3d fixed the regression. I tested this with a clean unpatched wine-staging-4.20.
It does seem as the patch just forces things back to root_signature_1.0 tho? Would it not be better to implement the Fix D3D12SerializeVersionedRootSignature patch to wine?
Sveinar
I think the problem is that D3D12SerializeVersionedRootSignature implementation depends on latest vkd3d to be able to compile, it cannot compile against vkd3d 1.1 (latest release, from January), which does not implement RS 1.1. Ideally wine master would depend on vkd3d master so we can expose RS 1.1 support.
This isn't really a sustainable way to release libraries. It requires that anyone distributing libvkd3d distribute the git master, and it also requires that libvkd3d be distributed in lockstep with Wine in case its API does change in a non-backwards-compatible way.
The ideal solution is that the libvkd3d 1.2 API be reviewed and fixed, and that 1.2 be released.
Does this mean that supporting D3D12 root signature 1.1 requires a API change to libvkd3d_1.2? How would the testbot pick up the new package? Would it be much different than "releasing" libvkd3d_1.1-2 or something as a intermediate "release"?
libvkd3d 1.2 hasn't been released. Exporting vkd3d_serialize_versioned_root_signature() is itself an API change from libvkd3d 1.1. The API change corresponds (if I understand correctly) to a convention in version naming: the minor version is incremented for changes which are backwards-compatible, the major version for those which are not.
I'm not sure how libraries are installed on testbot machines, but I suspect they go through distribution packages.
I think so too. Kinda like how buildbots do it i guess.
Would doing some configure check be possible? If the local libvkd3d-dev package have the function compile WITH D3D12SerializeVersionedRootSignature, and if not, do not use this function? I mean if it is necessary for a distro to pick up this new release when that happens, will leave us in a state like the libFAudio library is now, and i do not think that is much more preferable...
Once libvkd3d 1.2 has been released (and, I suspect, once a reasonable amount of time has been given for distributors to update it), Wine will either use it conditionally or require 1.2 to compile. See also Wine commit 72cf4a99c.
As i said above.. This kinda has not worked very well for libFAudio. But sure "given enough time" it will. So if libvkd3d_1.2 is released Q1 2020, i think atleast for the Ubuntu side, it might make it in time for 20.04 LTS, or atleast 20.10 later that year.
It is kind of a catch 22 this thing, cos you cannot update Wine with this due to missing libvkd3d function, and you cannot upgrade libvkd3d with this, cos Wine does not support it....
I'm not sure I see how. libvkd3d doesn't depend on Wine at all; that's kind of its entire point.
Oh i agree. libvkd3d is a standalone library that do not depend on wine... but to my knowledge the only thing using libvkd3d at the current time is wine. I am happy to be corrected ofc!
It might be ONLY world of warcraft that have these issues, and in that case it is not problematic to say that D3D12 simply does not work with current wine. I am interested in finding out if other games that uses D3D12 can use libvkd3d GIT version without these patches? Hitman 2? Dunno. Feedback welcome :)
But it is probably equally unproblematic to just revert patches too, and wait this one out a bit longer, as World of Warcraft seemed to work with Henri's patch a few posts up. The same question there too tho - Does reverting the root_signature_1.1 thing cause any problems? If not, sure, the easiest solution for the time being is just to go back to root_sig_1.0.
Well, Henri's patch above fixes the crashing when STARTING WoW, but it does not fix the crash that happens when you zone into Nazjatar, or shortly thereafter. I guess as this is a new place for WoW they might be using some textures/functions/whatever that requires root_signature_1.1? Or something of that matter. Sadly you have to be max level to test this, so it is no easy way for dev's to do traces or whatnot unless you level a character to max level.
In other words, to play World of Warcraft in the new zone "Nazjatar", vkd3d kind of depends on using the root_signature_1.1 patches that vkd3d GIT have it seems.
Philip: Any opinions about whether root_signature_1.1 is needed for games you have tested, or for that matter if you need this (wine)D3D12SerializeVersionedRootSignature patch with current libvkd3d GIT for other games?
Sveinar
Sveinar
Cheers, Hans-Kristian
>> PS. This "mailinglist" thing is horribly hopeless to keep up to >> date >> when referring to other patches.. atleast not in a way that i can >> figure >> out other than posting links.. and browsing through various .txt >> archive >> files to figure that out, so when i posted about a vkd3d patch >> that >> fixed things, it was probably not clear that it ALSO needed wine >> patches, that i think (without once again searching through >> 100'eds of >> mailthreads) was mentioned earlier in the thread. Sorry. >> > The bug tracker does work better for tracking bugs, yes. > > Henri
I see the testbot failed these two patches here https://testbot.winehq.org/JobDetails.pl?Key=57859 and here https://testbot.winehq.org/JobDetails.pl?Key=57858 with an "undefined reference"
Is that because these patches needs the signature patches for vkd3d to be able to link?
Sveinar
On 16.10.2019 13:06, post at arntzen-software.no (Hans-Kristian Arntzen) wrote:
Use the proper versioned serializer from vkd3d.
Signed-off-by: Hans-Kristian Arntzen <post at arntzen-software.no>
dlls/d3d12/d3d12_main.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/dlls/d3d12/d3d12_main.c b/dlls/d3d12/d3d12_main.c index bd680d8254..9f0fa12ee8 100644 --- a/dlls/d3d12/d3d12_main.c +++ b/dlls/d3d12/d3d12_main.c @@ -420,9 +420,5 @@ HRESULT WINAPI D3D12SerializeVersionedRootSignature(const D3D12_VERSIONED_ROOT_S { TRACE("desc %p, blob %p, error_blob %p.\n", desc, blob, error_blob);
- if (desc->Version == D3D_ROOT_SIGNATURE_VERSION_1_0)
return vkd3d_serialize_root_signature(&desc->Desc_1_0, desc->Version, blob, error_blob);
- FIXME("Unsupported version %#x.\n", desc->Version);
- return E_NOTIMPL;
- return vkd3d_serialize_versioned_root_signature(desc, blob, error_blob); }
-- 2.23.0
On 30.10.2019 21:38, Sveinar Søpler wrote:
I see the testbot failed these two patches here https://testbot.winehq.org/JobDetails.pl?Key=57859 and here https://testbot.winehq.org/JobDetails.pl?Key=57858 with an "undefined reference"
Is that because these patches needs the signature patches for vkd3d to be able to link?
Sveinar
And to answer myself on this, yes, it is because the headers used for the testbot is not current with GIT. Is this something that the testbot updates by itself, or does it use system (distro) provided headers/dev packages?
Sveinar
PS. This patch is needed to make GIT version of vkd3d to not fail with a "Error #132 Fatal Exception!".
On 16.10.2019 13:06, post at arntzen-software.no (Hans-Kristian Arntzen) wrote:
Use the proper versioned serializer from vkd3d.
Signed-off-by: Hans-Kristian Arntzen <post at arntzen-software.no>
dlls/d3d12/d3d12_main.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/dlls/d3d12/d3d12_main.c b/dlls/d3d12/d3d12_main.c index bd680d8254..9f0fa12ee8 100644 --- a/dlls/d3d12/d3d12_main.c +++ b/dlls/d3d12/d3d12_main.c @@ -420,9 +420,5 @@ HRESULT WINAPI D3D12SerializeVersionedRootSignature(const D3D12_VERSIONED_ROOT_S { TRACE("desc %p, blob %p, error_blob %p.\n", desc, blob, error_blob);
- if (desc->Version == D3D_ROOT_SIGNATURE_VERSION_1_0) - return vkd3d_serialize_root_signature(&desc->Desc_1_0, desc->Version, blob, error_blob);
- FIXME("Unsupported version %#x.\n", desc->Version); - return E_NOTIMPL; + return vkd3d_serialize_versioned_root_signature(desc, blob, error_blob); } -- 2.23.0