3 ms·
> for instance the cursor is a hardware sprite which is updated and rendered indepedently from the rest of the "rendering pipeline" otherwise the cursor moveme
by 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)