Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ID3D11Device::OpenSharedResource implementation #899

Closed
decrn opened this issue Feb 1, 2019 · 13 comments
Closed

ID3D11Device::OpenSharedResource implementation #899

decrn opened this issue Feb 1, 2019 · 13 comments
Labels

Comments

@decrn
Copy link

decrn commented Feb 1, 2019

Any timeline on shared resources? :)

@doitsujin
Copy link
Owner

doitsujin commented Feb 1, 2019

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
Copy link
Author

decrn commented Feb 1, 2019

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

@decrn
Copy link
Author

decrn commented Apr 7, 2019

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

Kreyren commented Oct 31, 2019

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

Winetricks/winetricks#1356

@Anti-Ultimate
Copy link

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

Kreyren commented Oct 31, 2019

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
Copy link
Owner

doitsujin commented Oct 31, 2019

@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
Copy link

Kreyren commented Oct 31, 2019

@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
Copy link
Collaborator

Joshua-Ashton commented Oct 31, 2019

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:

  • Attaching texture metadata to the handle
  • WineVulkan/Wine implementation of the shared memory stuff
  • How the hell do things synchronize???
    • We know at least a manual flush is required on source device in the docs before its used on another... But how is that waited on... The submitted cmd buffers might need some ordering guarantee.

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

Kreyren commented Oct 31, 2019

@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
Copy link

Kreyren commented Oct 31, 2019

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

Repository owner locked as resolved and limited conversation to collaborators Oct 31, 2019
@doitsujin
Copy link
Owner

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.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

6 participants
@Anti-Ultimate @Kreyren @decrn @Joshua-Ashton @doitsujin and others