Implementing Render acceleration in the siliconmotion driver

currojerez at currojerez at
Wed Aug 20 08:12:11 PDT 2008

I have been experimenting with the sm720 3d engine: I thought I
could implement EXA composite acceleration in this hardware but
it seems to have several drawbacks. 

The triangle engine worked more or less as expected, but the texture
engine only works when fed with images arranged in 16B*8 tiles (this
isn't mentioned in the documentation provided by smi: . In fact, the word "tile"
doesn't appear a single time in the datasheet).
This wouldn't be a problem if the rest of graphic subsystems supported
tiled data, or if the conversion could be done in hardware, but it
isn't the case.
The sm722 seems to have the same problem. The sm731 (Cougar3DR) drawing
engine and video processor seem to support tiled pixmaps, but I don't
think I could implement it without access to the hardware.

The second texture engine would be useful to implement masks, but I
can't get it working, it has all the necessary registers, but I don't
think it really has two texture engines ( From the manual: "Trilinear
mip-mapping and texture compositing (multiple texture map) are done in
2 passes.").

Moreover, it doesn't support any texture format like PICT_a8, I think
(please, correct me if i'm wrong) it is used intensively for things
like antialiased fonts, and it would be one of the main things
composite would accelerate.
Probably PICT_a8 masks could be converted in hardware to ARGB, but I
don't think anymore an efficient composite implementation could be
written for this hardware.
Any ideas?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 197 bytes
Desc: Digital signature
URL: <>

More information about the xorg mailing list