Comments (6)
Hmmm, interesting. It likely has something to do with the software cursor, as that is forced on with WGC. The good news is that in an upcoming release we've finally removed the transition to the software cursor while capturing. But I'll see what I can find for existing builds.
from windows.ui.composition-win32-samples.
Thanks very much! I'll read up on software vs hardware cursor differences and see if that can give me any leads on finding anything in common between people who can reproduce the issue.
Even if the issue can't be worked around on existing builds (as I imagine may be quite likely), finding a differentiator would be very beneficial, since it gives us more fine-grained options than the bludgeon of "fullscreen game + hidden cursor = fall back to DXGI/BitBlt."
I'll also try to narrow down whether OpenGL actually is a common factor here or if that's just coincidence based on the games that have been reported.
from windows.ui.composition-win32-samples.
Of course! And thanks for digging up more information. If you want to force the software cursor without WGC, you can turn on cursor trails. I think there's also a magnifier API to do so, but I can't remember off the top of my head.
Additionally it would be good to know what builds of Windows this behavior is seen on. Seems like I needed to read your original post closer. Oops!
from windows.ui.composition-win32-samples.
Yeah, we've definitely seen it on Win11 22621 and 22631; I'll dig through some of the other user reports and see if I can find any other cases (e.g. I imagine a yes/no for Win10 would be useful! Might struggle for that though as we disable WGC by default on 10 since our users mostly aren't fans of the yellow border)
from windows.ui.composition-win32-samples.
Quick update for you @robmikh : we haven't managed to get any definite confirmations for Win10 or other Win11 builds, but we've made the following observations:
- Interestingly, in all cases the issue appears to only manifest when a single graphics adapter is active in the system
- caveat: I suspect all the games I've tested personally were only actually willing to go into true exclusive fullscreen mode if a single adapter was active, even if the display in question was connected to the same adapter as the application was using for rendering in multi-adapter scenarios
- I struggled to test the case where the compositing adapter was also the same, because it seems many games don't respect the Windows graphics "set this application to power saving" setting and just use the dGPU anyway; not sure if there's any hack possible to force compositing to run on a specific adapter to test this
- In terms of 3D APIs:
- OpenGL applications are definitely affected while running in exclusive fullscreen
- DirectX applications don't seem to be affected
- Vulkan applications are likely not affected (see later for rationale):
- Dota 2 (with the "Vulkan support" DLC installed, running with the
-vulkan
launch option) is affected - Doom Eternal is unaffected
- Dota 2 (with the "Vulkan support" DLC installed, running with the
- Enabling cursor trails to force the software cursor without recording gives mixed results
- Minecraft Java Edition (OpenGL) does not exhibit the same behaviour as with WGC; the cursor has no trails, but is visible
- to me this suggests a WGC-specific issue beyond just use of the software cursor
- Dota 2 (Vulkan) does exhibit the same behaviour as with WGC; the cursor is invisible while exclusive fullscreen is active
- so this is likely a separate, wider issue related to the software cursor with some Vulkan apps
- Doom Eternal (Vulkan) continues to behave normally
- Minecraft Java Edition (OpenGL) does not exhibit the same behaviour as with WGC; the cursor has no trails, but is visible
- The WGC-specific behaviour with OpenGL has now been reproduced on NVIDIA, Intel and AMD GPUs, so unlikely to be a vendor driver problem
All of my testing above was tested on a mix of Win11 22631.3447 and 22631.3527
from windows.ui.composition-win32-samples.
Thanks for the extra info, this will definitely help!
from windows.ui.composition-win32-samples.
Related Issues (20)
- Some samples use `WindowsRuntimeMarshal` class, that is no longer available in .NET 5+ HOT 4
- Cannot use IGraphicsCaptureItemInterop::CreateForWindow with electron apps HOT 6
- This repo is missing important files HOT 4
- How to capture Windows10/11 Virtual Desktop via Windows.Graphics.Capture ? HOT 2
- Accessing screen capture image bytes with MapFlags.DoNotWait for better CPU usage HOT 3
- Can I do successive captures on two different windows HOT 8
- ScreenCapture Sample - write capture stream to disk mp4? HOT 5
- Capture area of a monitor HOT 4
- Memory Leak? HOT 5
- BSODs on 4 separate Hard Drives HOT 3
- Multiple screen captures in a loop cause explorer.exe and native Windows app to lag? HOT 11
- Capture OnFrame Callback very slow on Win11 23H2 HOT 7
- access_denied in CreateForMonitor in some cases HOT 5
- Cannot catch errors in CreateCaptureItemForWindow HOT 3
- WGC CaptureFrame returns wrong SystemRelativeTime in window capture mode HOT 2
- Frame has issue after change window state (maximize from normal/ normal from maximize/ ...) HOT 1
- ScreenCaptureforHWND sample leaks handles leading to "Out of memory" crash HOT 1
- ScreenCaptureforHWND sample main thread hang HOT 2
- ScreenCaptureforHWND: How to get the byte data of the captured frame? HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from windows.ui.composition-win32-samples.