I’d like to preface my post with stating that I’m not really familiar with how FiveM works internally and it’s critically important to me for FiveM to work with wine and dxvk.
From what I’ve read on dxvk’s github and Phoronix, implementing ID3D11Device::OpenSharedResource in dxvk is technically possible, but is a pretty massive effort and no one is currently working on it since this function is used very rarely.
So I’d like to explore a different approach. How serious of an undertaking would it be to replace all the calls to ID3D11Device::OpenSharedResource in FiveM? I’ve grepped the codebase to find all call sites and there’s like 4 of them total and one is simply a stub, so 3 real calls total.
From what I can gather (correct me if I’m wrong), the function is used to obtain a memory address where (texture?) data is held to “do something with it”, populate some memory that’s further processed or something.
Does any other way currently exist to obtain same addresses/data/whatever this code supplies without relying on this specific function call? Like reading process memory manually, or using windows API or copying and patching game’s binaries directly at assembly language level or… anything really?
If it does not, how hard would it be to write such functionality from scratch?