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

Zebediah Figura z.figura12 at gmail.com
Sun Nov 24 10:40:26 CST 2019



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

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



More information about the wine-devel mailing list