ClientSideGraphics=N no effect with PlayOnLinux

Автор Replies
gustep12 Friday 9 October 2015 at 23:28

I have an application which performs much better under Wine when I set the registry ClientSideGraphics=N. It makes a big difference when I use Wine directly. However, no matter what I try, I can't get the same performance improvement under PlayOnLinux.

For regular wine, I would set the registry key from the terminal window with wine regedit. It works.

For PlayOnLinux, I would go to the "Wine" tab, click on "registry editor", and set the same option. It doesn't seem to take effect. Why not? I have even tried selecting different versions of Wine under the "General" tab, it works with none of them.

When the option ClinetSideGraphics=N takes effect and works as intended (under Wine), the program will do some kind of on-screen rendering, so I can see how the complex image is gradually being built up. It is very fast. With ClientSideGraphics=Y under Wine, or always under PlayOnLinux, the program will do off-screen rendering and the image will suddenly be presented in its final state. Sadly, the off-screen rendering is much slower.

I suspect that there is a missing option for PlayOnLinux - Display tab - Offscreen Rendering Mode: I can select default, fbo, backbuffer, and pbuffer, but I can not select "disabled" and force on-screen rendering. Maybe if that option was included, I wouldn't have this issue.

Any advice on how to solve this? Thanks!



petch Friday 9 October 2015 at 23:40

That makes no sense to me at all, we use plain Wine too

petch Friday 9 October 2015 at 23:50

gustep12 Saturday 10 October 2015 at 0:06

I agree this doesn't make sense. I suspect that PlayOnLinux causes Wine to ignore or override this particular registry key.


I also have been trying to find a reason why on-screen rendering could be faster than off-screen rendering. There are several possible reasons. I have no proof of this happening, but I suspect one of these reasons:

1.) With on-screen rendering, you can be productive and interrupt the rendering to move / zoom around before the render is fully complete. With off-screen rendering, you have no visual feedback until it is done.

2.) It seems that the program in question will occasionally draw the same screen multiple times. For example, if the program decides to write the same geometry to the screen 3x, this could delay the presentation of the off-screen result by 3x. However, with on-screen rendering it would appear to be complete after the first pass.

3.) It is possible that the repeated drawing of the same scene was meant to be a hack to ensure that the displayed image is not occluded by other graphical elements on the screen. It is possible that a repeated drawing is triggered when the program detects that its window is not in focus yet. Maybe the off-screen rendering mode, which probably didn't exist at the time the program was written, triggers a lot of unnecessary repeat drawings. On-screen rendering would complete in 1 pass and be usable even before it is complete. Off-screen rendering might somehow trigger 5 passes before it is displayed, and the program is completely unusable until then.





petch Saturday 10 October 2015 at 0:45

Did you also set AlwaysOffscreen=disable when using Wine?

Edited by petch

Вы находитесь здесь: Index > PlayOnLinux > ClientSideGraphics=N no effect with PlayOnLinux