doitsujin / dxvk

Vulkan-based implementation of D3D8, 9, 10 and 11 for Linux / Wine
zlib License
12.77k stars 823 forks source link

ID3D11Device::OpenSharedResource implementation #899

Closed decrn closed 5 years ago

decrn commented 5 years ago

Any timeline on shared resources? :)

doitsujin commented 5 years ago

It is not possible to implement this in any useful way without support for external memory, and Wine does not support that (it would be a huge task as well). So, basically it's not going to happen.

What do you need it for anyway?

decrn commented 5 years ago

Ah, damn shame. Injection clients like FiveM for GTA V uses it, among others.

decrn commented 5 years ago

Considering BattleEye and similar AC also use ReadProcessMemory and WriteProcessMemory, neither will be supported. I believe it will be up to the AC developers themselves to add Linux support, paving the way for game developers to support Linux out of the box.

After all, an anticheat that operates through a D3D wrapper can never be assumed to work as intended, anyway...

Kreyren commented 4 years ago

FWIW for FiveM I have tracking for it in winetricks, but so far I wasn't able to make sufficient workaround.

https://github.com/Winetricks/winetricks/issues/1356

Anti-Ultimate commented 4 years ago

Seems like there's significant progress on @Guy1524 's shared-resource branch https://github.com/Guy1524/wine/commits/shared-resources

I'm sure this isn't completed yet, but maybe it's time to reopen this again.

Kreyren commented 4 years ago

ping @KarenGhavam-lunarG @lenny-lunarg

Assuming this being a vulkan related could you provide some info that would help with the interpretation in DXVK or possible workarounds to be implemented in winetricks or possible way to adapt this in winelibs?

doitsujin commented 4 years ago

@Kreyren please refrain from pinging people who aren't directly involved in this project for no good reason. Last warning.

@Anti-Ultimate

I'm sure this isn't completed yet, but maybe it's time to reopen this again.

there's no good reason to reopen this issue either. If the wine patches land - which isn't even certain at this point - then yes, it'll probably be implemented, but a thread that opens with "when will this be done" doesn't help doing that in any way whatsoever. Especially since we already know that FiveM, one of the few actual use cases, will not work with the implementation.

Kreyren commented 4 years ago

@Kreyren please refrain from pinging people who aren't directly involved in this project for no good reason. Last warning.

These are vulkan developers so I believe that they are directly related to DXVK where I'm hoping that they would be able to provide info (or reference someone who might be able to) which would help us implement shared resources in either wine as wine patch/hack or workaround in winetricks or help you with the implementation in DXVK assuming that you said

It is not possible to implement this in any useful way without support for external memory, and Wine does not support that (it would be a huge task as well).

where I'm unable to find any relavant winebug to shared resources (https://bugs.winehq.org/buglist.cgi?quicksearch=shared%20resources) or external memory (https://bugs.winehq.org/buglist.cgi?quicksearch=external%20memory) and assuming that codeweawers announced working on this (https://www.phoronix.com/scan.php?page=news_item&px=Wine-Vulkan-Shared-Resources) including the patchwork (https://www.winehq.org/pipermail/wine-devel/2019-October/153443.html)

Maybe your informations about this implementation are not up to date based on provided info? Or is there a reason where you don't want to implement this in DXVK even if it would be possible?

Last warning

:(

EDIT: link

Joshua-Ashton commented 4 years ago

We know what needs to and has to be done to an extent -- I've even done an impl in my dxvk branch that works on Windows.

Currently the issues are:

Stuff will happen when it happens, putting 15 random links in your comment and pinging people from LunarG isn't going to help or change things.

Kreyren commented 4 years ago

@Joshua-Ashton thanks that's helpful, but some tracking for what needs to be done would be useful since if I wanted to contribute myself I have to go in basically blind without asking alike..

Kreyren commented 4 years ago

Attaching texture metadata to the handle

could you be more specific on this? Which handle?

How the hell do things synchronize??? ...

flush meaning? Reference on the docs?

.. assuming that me extracting these informations from Direct3D devs is helpful

doitsujin commented 4 years ago

These are vulkan developers so I believe that they are directly related to DXVK

No, they are not. Or is Linus Torvalds is directly related to DXVK as well now because it targets Linux?

Maybe just leave the development and project management to me and contributors.