Implementing Render acceleration in the siliconmotion driver

Roland Scheidegger sroland at tungstengraphics.com
Wed Aug 20 09:50:12 PDT 2008


On 20.08.2008 17:12, currojerez at gmail.com wrote:
> Hi,
> 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:
> ftp://ftp.siliconmotion.com.tw/databooks/ . 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?

Looks to me like you hit the nail on the head... Though for
multitexturing, the wording you quoted seems to suggest to me that it
has 1 physical unit, but 2 logical units so "multiple passes" refers to
internal passes. Though even if this would work, different organization
of pixmaps and textures looks like a deal-breaker to me - creating
shadow pixmaps doesn't sound particularly fast (though it would solve
the a8 problem too)...
I think no other driver with such an outdated 3d engine has render
acceleration, which might indicate the hurdles are just not worth it...

Roland



More information about the xorg mailing list