LCG HW acceleration working
Blaz Antonic <blaz.antonic <at> siol.net>
2004-06-07 19:37:02 GMT
Hello,
I've picked up my work with LCG HW acceleration where i left it few
months ago; i can now inject command packets into FIFO (at least small
number of them, i haven't tried to fill the FIFO entirely yet to see
whether it wraps around correctly) and i have two basic functions
working - one is block copy (memcpy(), except that it can handle visual
blocks of framebuffer memory, such as rectangles on the screen, not just
linear memory like memcpy() does) and the other one is bitwise rasterops
function (it can perform any of the 16 basic operations on a rectangle
with stencil, like copy, clear, set, AND, OR, XOR, etc.).
Block copy function is good enough for console scrolling use (since our
rectangle always starts at the start of each line) but i have yet to
figure out how to copy blocks around the screen (like moving windows
under GUI). Bitwise ops seem work perfectly though, i just set address
of top left pixel of rectangle, its dimensions, stencil to be used and
operation to be performed and it just works, which means blanking (or
setting, etc. depending on the operation to be executed) a rectangle in
the middle of the screen is just as easy as blanking entire screen.
In plain english: this means VS 4000 VLC and model 60 will have HW
acceleration support added to console code which should (hopefully)
speed up scrolling, blanking, etc., the most commonly used operations on
large amounts of data that were now performed by the CPU. I have
absolutely no experience with X servers so i cannot integrate any of
that stuff into one (or write one from scratch). If anybody happens to
have 4000 VLC/M60 and is willing to do X server work i can send him the
relevant information. I suppose console driver will have to provide
access to FIFO to external applications (like it does now for
(Continue reading)