My adventure writing a display adapter driver

See Making sure you're not a bot!.

The problem is that to show software cursor, you need to blit it over current screen contents with alpha blending, but that screen contents may be in a middle of drawing right now, so mid-drawing contents will be displayed under cursor and flickering appears.

You may try to use front buffer in VRAM that have contents that already finished drawing, but note that VRAM → CPU RAM memcpu is VERY VERY SLOW for nearly all hardware. Even for 32x32 block copy cause significant slowdown. This is also why AGG can’t be used to draw directly on frontbuffer in VRAM: drawing with antialiasing require reading source image that is terribly slow for VRAM. This is also why AGG can’t work together with hardware 2D acceleration.

It worked in BeOS because BeOS had no antialiasing, so no need of VRAM reading by CPU. Antialiased font rendering in BeOS used low color as background, not actual contents under glyphs, exactly for the same reason to avoid slow VRAM read.