[PATCH v2 1/5] winevulkan: Support prefixing function parameters.
Georg Lehmann
dadschoorse at gmail.com
Fri Dec 10 09:06:51 CST 2021
On 10.12.21 14:21, Jacek Caban wrote:
> On 12/10/21 10:26 AM, Rémi Bernon wrote:
>> On 12/10/21 03:07, Jacek Caban wrote:
>>>
>>> To allow them being accessed from a struct.
>>>
>>> Signed-off-by: Jacek Caban <jacek at codeweavers.com>
>>> ---
>>> v2: make remaining direct calls more similar to __wine_unix_call
>>>
>>> dlls/winevulkan/make_vulkan | 59 ++++++++++++++++++++-----------------
>>> 1 file changed, 32 insertions(+), 27 deletions(-)
>>>
>>>
>>
>> Thanks, it indeed fixes the issue with Control DX12.
>>
>> Now that it works I could measure that the series causes a ~25% fps
>> drop in that same game, from an average of 165fps to 125fps measured
>> with WINEDEBUG=+fps, while being steady near the beginning of the game.
>
>
> That's interesting, it's worse than what I've seen in cases that seemed
> to be pretty bad examples wrt. an impact of those patches. I will look
> at it myself as well, but for comparison, could you please try the
> attached patch on top of the series? If it's similar to what I've seen
> so far, that should mitigate the problem.
>
>
> This is related to a possibility of further optimizations. Majority of
> Vulkan calls are usually command buffer recording calls. We could record
> their parameters ourselves on PE side, with no syscall involved, and
> replay them on Unix side when needed (usually in vkEndCommandBuffer).
> That should cover majority of syscall overhead at expense of additional
> layer of command buffer recording.
>
In vkd3d-proton's case a big problem might be vkUpdateDescriptorSets,
and unlike vkCmd* I don't see a way to avoid one unix call per
vkUpdateDescriptorSets.
Thanks,
Georg
>
> Thanks,
>
> Jacek
>
More information about the wine-devel
mailing list