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

(Video) Disable Desktop Composition setting broken #1962

Open
GPDP2 opened this issue Jul 14, 2015 · 17 comments
Open

(Video) Disable Desktop Composition setting broken #1962

GPDP2 opened this issue Jul 14, 2015 · 17 comments

Comments

@GPDP2
Copy link

GPDP2 commented Jul 14, 2015

On Windows 7, toggling the Disable Desktop Composition setting does nothing. Tried on a build from June 28 and the latest on the buildbot.


Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

@hizzlekizzle
Copy link
Contributor

So it worked in the 6/28 build but not the most recent ones? Any chance you could help us pin down exactly which was the last working build? From there, it should be easier to bisect to find the exact commit.

@GPDP2
Copy link
Author

GPDP2 commented Jul 14, 2015

No, meant to say the oldest build I tried was from 6/28, and it didn't work there nor on the latest. I'll try and see if I can find an older build where it does work.

Edit: Just tried the oldest build on the buildbot, from 6/3. Still not working there.

@hizzlekizzle
Copy link
Contributor

Ok, well, that's good to know, too. Thanks for looking into it :)

@Monroe88
Copy link
Contributor

I did a git bisect on this issue:
http://hastebin.com/ukozugirin.vala

possible first bad commit: [18801c8] Move gfx_set_dwm call to platform_win32.c

This is most likely the commit that broke the disable desktop composition option. The other two commits are buildfix commits that came immediately after that one, since mingw had build errors at that time.

Disable desktop composition does work in the commit immediately before that (f91f543)

@hizzlekizzle
Copy link
Contributor

Yeah, that seems a likely culprit.

@andres-asm
Copy link
Contributor

This only works on win7 right? I don't think you can disable composition in 8,8.1 or 10.
I could try to fix it but I don't have a win7 box to test it.

@GPDP2
Copy link
Author

GPDP2 commented Sep 15, 2015

Yes, this only works on Windows 7, as well as Vista IIRC. Still, it's a crucial feature to have on those platforms, as even in exclusive fullscreen, Aero can potentially screw up performance and sync. For example, deinterlacing shaders look really uneven, like they skip frames or something. The Mupen64Plus core also suffers performance-wise. The only recourse I currently have to fix these problems is to open up another program in the background that is forced to disable composition, or to disable Aero outright.

In any case, looks like the feature is still broken on the latest nightlies as far as I can tell.

@inactive123
Copy link
Contributor

The frontend driver's 'init' function might not have been the right point in time to call gfx_set_dwm.

084217f

I moved it now to the 'environment get' function callback which should be called after the program has loaded the settings file. Hopefully this should do the trick. If not, let me know.

@Monroe88
Copy link
Contributor

No it still doesn't work on the build I just made from latest git. Toggling the setting causes the window to reinit but the Aero composition is not disabled. This is on Windows 7 by the way.

I've never encountered problems with running non-windowed fullscreen while Aero composition is enabled since doing that should automatically disable composition due to RetroArch taking exclusive control over the screen.

@inactive123
Copy link
Contributor

I don't understand why it would matter at which point in time these function pointers get called, and why it should be done exactly after D3D/GL init.

Can some other Windows developer chime in here? I really didn't like that previously we had to insert manual calls to gfx_set_dwm randomly from each graphics drivers' init function. The idea was to better abstract that away for just the Win32 platform in general instead of cluttering up graphics drivers with such calls.

@Ryunam
Copy link
Contributor

Ryunam commented Mar 3, 2016

Bringing this up and confirming that this option still does not work in any of the latest builds on Windows 7. When activating the corresponding option in the Menu the screen flashes for a second, but Desktop Composition is not disabled and Aero / DWM appears firmly in place.

@RobLoach RobLoach changed the title Disable Desktop Composition setting broken in latest builds (Video) Disable Desktop Composition setting broken Jul 29, 2018
@inactive123
Copy link
Contributor

@Ryunam Is this still an issue?

@Ryunam
Copy link
Contributor

Ryunam commented Oct 15, 2018

I need to check this. I’m currently on Windows 10 and the option definitely doesn’t work there, but that is to be expected given the changes introduced by Microsoft to the DWM. I’ll report back here as soon as I can test it again on Windows 7.

@klepp0906
Copy link

dont think it can be disabled via windows 10 anymore. the single only potential means ive found, and i say potential as I havent tested it.

add full\path\to\retroarch.exe as a string to the registry at one of the following locations

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers

give it a value of ~ DISABLEDWM

this "should" do it but would require RA to be able to add/remove that string based on the toggle. its not a protected key or anything so i dont think any crazy permissions issues would be encountered.

@Ryunam
Copy link
Contributor

Ryunam commented May 3, 2020

I don't have a Windows 7 system readily available anymore to test these flags, but I have just tested them on Windows 10 x64 1909 and they do not produce any effect. DWM is still enforced as it is an integral part of the OS by now and cannot be disabled.

@sonninnos
Copy link
Collaborator

Also there is no need to disable it in W10 anymore, as it behaves and performs much better than in W7.

@klepp0906
Copy link

mmm. it was working (anecdotally) as of 1909 at least. see here https://superuser.com/questions/1509013/is-there-a-way-to-disable-dwm-on-windows-10-1903

but to be fair, I have tested the disabling of FSO globally which used to be possible and is no longer the case as of the most recent windows version bump.

Unsure if your on 1909 or 2004, i know im on 2004 so thats all likely the way of the dinosaur if my testing (with FSO) and yours (with DWM) is the case.

i know they recently updated WDDM and FSO could be deeply entangled. Goes well above my paygrade.

Either way, as mentioned its not nearly as much of an impediment as it used to be. Neither is FSO tbh, but it can prove problematic in some scenarios and is nice to be able to control as a process of elimination if nothing else.

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

No branches or pull requests

9 participants