4 ms·
> It is impossible to do better than 1 frame. Exclusive fullscreen applications shouldn't need any compositing, surely they must be exempt from that.
by the8472 6y ago
> It is impossible to do better than 1 frame.
Exclusive fullscreen applications shouldn't need any compositing, surely they must be exempt from that.
- flohofwoe 6y agoThere's still plenty of latency sources on the way from he mouse hardware to the application's event handling code. The remaining way to the display just adds (more or less) latency on top - which isn't as important when it's just about the discrepancy of the mouse cursor and what's rendered beneath though. But the mouse cursor can use all sorts of special shortcuts, for instance the cursor is a hardware sprite which is updated and rendered indepedently from the rest of the "rendering pipeline" otherwise the cursor movement would feel laggy all the time.
- DaiPlusPlus 6y ago> for instance the cursor is a hardware sprite which is updated and rendered indepedently from the rest of the "rendering pipeline" otherwise the cursor movement would feel laggy all the time. While investigating cursor lag issues on my computer (which were caused by an errant Intel Optane card, of all things...) I read through Windows’ video driver documentation and I learned that while Windows does direct the mouse pointer completely independently of the DWM, there is no requirement that the cursor be rendered during scanout (like a hardware sprite) and it is permissible for a GPU to render the pointer to the framebuffer. In fact, there’s a lot that’s undefined by the specs - for example, I used to believe there was a hard limit of 127x127 on cursor sizes (based on the ICO file format) but it turns out there is no upper-limit on cursor sizes at all. If you set a huge cursor image (say, 1500x1500px) some GPUs do render it to the framebuffer but others do not (in my testing, newer Radeon cards behaved differently if the image was above ~600px, whereas with my Nvidia cards anything over 255x255 had a different mouse-acceleration curve, that was weird)
- modeless 6y agoYes, exclusive fullscreen mode applications are not running in a window, so they can have zero frames of latency (though almost all don't, for various reasons). I am not sure about borderless fullscreen mode, I think this may also have an optimization that can eliminate the 1 frame delay. But normal windows always get the delay. There is also a feature designed to let applications bypass this delay in windowed mode using GPU hardware overlays, however it needs GPU driver support and it is not supported on Nvidia or AMD drivers AFAIK. Basically nobody uses it.
- corysama 6y agoMS had a big push to completely deprecate exclusive fullscreen a couple years ago by improving borderless fullscreen to match it.
- Sunspark 6y agoI'm not sold that borderless fullscreen matches it. I can see the difference in video panning between exclusive fullscreen and borderless. Granted, it is not a huge difference, but it does exist. At the end of the day we continue become further and further abstracted from the hardware. Input lag on the display, input lag in the device, etc.
- modeless 6y agoVideo panning differences don't have anything to do with input lag. The only way fullscreen exclusive mode would change the appearance of video panning (bugs aside) is if it changed the mode of the monitor so the refresh rate matched the video frame rate (or equivalently used G-sync or Freesync to do the same).
- Sunspark 6y agoMadvr on Windows for video playback supports both windowed hardware overlay and fullscreen exclusive mode as options so that is one application which exists.
- modeless 6y agoThis may refer to the old style video-specific YUV overlays, which I don't think DWM uses or supports these days. Video playback doesn't need low latency anyway, just predictable latency, which DWM can provide in normal operation. Fullscreen exclusive mode support is still common in games.