as / a

A graphical text editor

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

a: investigate why swizzle lags the ui so much; is pre-swizzle worth the complexity?

as opened this issue · comments

commented

Unswizzled shiny lives in github.com/as/shiny. It's like exp/shiny, but doesn't swizzle. Swizzle refers to the swapping of RGBA pixels into the native Windows pixel format. The current shiny implementation implements a swizzle in assembler remarkably faster than GDI's bitfields by orders of magnitude, using SSSE3 registers, etc. However, it seems that no matter how fast the implementation, there is considerable entropy in the following process current to exp/shiny:

1.) Lock the buffer
2.) Swizzle the buffer
3.) Upload the buffer
4.) Unswizzle the buffer

On a 4k screen, this algorithm performs unfavorably on most systems. Forcing the use of residency masks and rectangle caches to update text smoothly.

It is cheap to pre-compute the BGRA colors in as/frame and omit the swizzle entirely. However, it becomes a mess quickly when images are involved.