acomminos / wine-pba

Patches to add a persistent buffer allocator for faster dynamic geometry in Direct3D games.
GNU Lesser General Public License v2.1
137 stars 6 forks source link

Will you continue to develop the PBA project? #49

Closed Kerrung closed 6 years ago

Kerrung commented 6 years ago

Hi! Thank you very much for creating your PBA project! Your PBA project is important in those games where DXVK can not work. For example, if the game simultaneously uses a mixture from different APIs, such as d3d9, d3d10 and d3d11, then using DXVK makes it impossible to run such games, but it's not a problem for your PBA. For example, World of Warcraft uses simultaneously pieces d3d9, d3d10 and d3d11 at the same time, and therefore World of Warcraft can not work if DXVK is used. Developer of DXVK said that in the near future does not plan to add support of d3d10. Therefore, your project is still relevant for many Wine users. But, will you continue to develop the PBA project? Unfortunately, we no longer see any your activity in the development of the PBA, there are no more new commits, and you do not respond to new bug reports. I would like to see your answer on this issue in order to understand what the situation is at the moment.

Thank you

gverm commented 6 years ago

What is the point of this issue? It's only been 12 days, please have some patience. I'm pretty sure this is not a full time job for him. He will release more changes once he has them. Making an issue to ask about the status of a project after only 12days of inactiveness is not necessary.

Kerrung commented 6 years ago

@gverm: What is the point of this issue? It's only been 12 days, please have some patience. I'm pretty sure this is not a full time job for him. He will release more changes once he has them. Making an issue to ask about the status of a project after only 12days of inactiveness is not necessary.

Earlier, I saw about three new commits a day every day. But now there is not even a rebase for Wine 3.4, but Wine 3.5 will be released soon.

Enverex commented 6 years ago

It worked with 3.4 at least at one point because I have a successful package build:

wine-staging-pba-git-3.4.r0.g495f9db4+wine.3.4.r0.gafe4f54bb4-1-x86_64.pkg.tar.gz

It's only broken very recently (i.e. today) due to CSMT (or rather CSMT_Helper) being removed from Wine-Staging. See https://github.com/wine-staging/wine-staging/commit/5876a3f7821ec6b780b780d6d86fa75d1f678d11.

ghost commented 6 years ago

@Kerrung rebasing the current patches is fairly trivial, I verbosely burbled about that on a wiki page

@Enverex I can look at that, PBA dosn't really touch the staging csmt code ( only one trivial patch to the csmt Makefile.in )

Edit easy, this got removed patches/wined3d-CSMT_Helper/0001-wined3d-Add-second-dll-with-STAGING_CSMT-definition-.patch

I already dodge that for patching none staging wine a quick sed can do the same

make a copy of your patches

sed -i '/diff.*csmt/,/device/d' 0001-wined3d-Initial-implementation-of-a-persistent-mappe.patch

that deletes the bit which patches the staging csmt Makefile.in You will still get a merge conflict, hints at fixing that on the wiki I linked

ghost commented 6 years ago

@gloriouseggroll has already fixed this issue with csmt https://github.com/GloriousEggroll/wine-pba

Enverex commented 6 years ago

That fixes that one, but it still runs into an issue further down the line (although it got to patch 8 this time).

  -> Applying PBA patch /var/tmp/makepkg/wine-staging-pba-git/src/wine-pba/patches/0008-wined3d-Add-DISABLE_PBA-envvar-some-PBA-cleanup.patch
patching file dlls/wined3d/buffer.c
Hunk #1 succeeded at 1601 (offset -2 lines).
patching file dlls/wined3d/buffer_heap.c
patching file dlls/wined3d/device.c
Hunk #1 succeeded at 844 (offset 7 lines).
Hunk #2 succeeded at 873 (offset 7 lines).
patching file dlls/wined3d/query.c
patching file dlls/wined3d/wined3d_private.h
Hunk #2 FAILED at 2943.
1 out of 2 hunks FAILED -- saving rejects to file dlls/wined3d/wined3d_private.h.rej

Looks like the section this patch removes doesn't actually exist anymore so likely an easy fix. Specifically...

--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -1713,9 +1713,6 @@ void wined3d_fence_destroy(struct wined3d_fence *fence) DECLSPEC_HIDDEN;
 void wined3d_fence_issue(struct wined3d_fence *fence, const struct wined3d_device *device) DECLSPEC_HIDDEN;
 enum wined3d_fence_result wined3d_fence_wait(const struct wined3d_fence *fence,
         const struct wined3d_device *device) DECLSPEC_HIDDEN;
-// XXX(acomminos): really expose this?
-enum wined3d_fence_result wined3d_fence_test(const struct wined3d_fence *fence,
-        const struct wined3d_device *device, DWORD flags) DECLSPEC_HIDDEN;
ghost commented 6 years ago

check the wiki, it is the issue I cover in that dosn't have the actual answer but has some very heavy hints at it

also check https://github.com/GloriousEggroll/wine-pba it is probably already fix there

Enverex commented 6 years ago

Sure, but I was documenting what the issues are as they stand now so that they can be fixed here. Your Wiki entry is just a guide on general merge issues when people are trying to fix them themselves.

The last issue I mentioned though is still live on GloriousEggroll's fork anyway.

ghost commented 6 years ago

well, I ran into no such issues, but I used git am --3way

PBA-for_staging_5876a3f7.tar.gz Note, patch 0010 in that is optional

Edit: check the whole of the reject, the real problem you face is the merge conflict described here

acomminos commented 6 years ago

I don't have as much free time right now as I did when I initially released the project. This project is a hobby for me, and I need to prioritize accordingly.

On that note, I'm happy to accept pull requests. I do plan on doing a rebase soon.

Goldpaw commented 6 years ago

Well your hobby has from doubled to tripled the framerate in games I had completely given up on, enabling me to finally play some of my favorite games again! So a huge thank you from me for all the work you've done so far. You rock! :)

ryanmusante commented 6 years ago

Could you give examples of games you see this increase in? I'd like to add to my list. I also use PBA.

Goldpaw commented 6 years ago

World of Warcraft and Path of Exile.

Saroufim commented 6 years ago

Path of Exile seems to lose FPS on my system with PBA.

Goldpaw commented 6 years ago

@Saroufim we're talking about Path of Exile 64bit with DX11, right? Because it was completely unplayable for me with the 32bit DX9 client. I'm using a tiny patch to get it to work with DX11.

Saroufim commented 6 years ago

That must be it because it doesn't work at all with DX11 on my computer. I'm forced to use DX9

Goldpaw commented 6 years ago

yeah, it was unplayable for me with Dx9. constant stuttering, poor fps, etc. If it helps, here's the patch I'm using. I apply it to the wine folder before staging and pba. Then I build wine, and run Path of Exile in 64bit mode with some launch options to preload spell effects and improve garbage collection to avoid out of memory crashes:

wine 'PathOfExile_x64.exe' --garbage-generation 1 --waitforpreload poe-fix.zip

Or if you're using Arch Linux or Manjaro, I have an AUR package for the wine version with staging, pba and the PoE-fix: https://aur.archlinux.org/packages/wine-staging-pba-git/

Goldpaw commented 6 years ago

@Saroufim and turn of engine multithreading in Path of Exile. Leave that to CSMT and wine, there's a notable framerate difference.