Commit b2356e5
feat: per-window GPU textures, cursor texture, alpha blending for VirGL compositing
Add per-window VirGL texture pool (up to 8 slots) with lazy init on first
composite, GPU cursor texture (12x18 arrow with transparency), and alpha
blend state for cursor rendering. BWM simplified by removing CPU-side
mapped buffer blitting — compositing now fully delegated to the kernel's
GPU pipeline.
- Per-window GPU textures: create_window_texture() with same proven
resource creation pattern as COMPOSITE_TEX
- Cursor texture: RESOURCE_CURSOR_TEX_ID with alpha channel, uploaded
once at init, rendered as alpha-blended quad
- VirGL alpha blend: create_blend_alpha() with SRC_ALPHA/INV_SRC_ALPHA
- BWM: removed mapped_ptr/blit_pixels_to_fb/blit_client_pixels/occluder
logic — ~200 lines of CPU compositing code eliminated
- Lazy per-window texture init in handle_composite_windows syscall
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>1 parent 1bf43e4 commit b2356e5
5 files changed
Lines changed: 1286 additions & 347 deletions
File tree
- docs/planning
- kernel/src
- drivers/virtio
- syscall
- userspace/programs/src
0 commit comments