[PATCH 1/2] dlls/d3d12: Fix D3D12SerializeVersionedRootSignature.

Sveinar Søpler cybermax at dexter.no
Sun Nov 24 10:00:05 CST 2019

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 at dexter.no> wrote:
>>>>> Ok. Tested as follows:
>>>>> Wine-staging-4.20
>>>>> vkd3d git HEAD at 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....


>> 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

More information about the wine-devel mailing list