[PATCH v2 1/5] winevulkan: Support prefixing function parameters.

Jacek Caban jacek at codeweavers.com
Fri Dec 10 07:21:49 CST 2021


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.


Thanks,

Jacek

-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch.diff
Type: text/x-patch
Size: 669 bytes
Desc: not available
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20211210/1a7b34d9/attachment.bin>


More information about the wine-devel mailing list