On 8/25/06, Timothy Miller <[EMAIL PROTECTED]> wrote:
> GPU operations are controlled by writing to these registers. For
> example bilblt. I'm simplifying but there is really only one command
> type in a command stream. The command just consists of a bunch of
> register addresses and the values to write to them. There is no bitblt
> command, just this generic command that can write to the registers
> that control the bilblt engine. You can totally control the chip this
> way, even change the video mode.
This isn't how I've seen it done. Besides, If you don't have a bitblt
command, then your packet has to include register addresses. If you
do have a bitblt command, the addresses are implicit, making the
packet smaller.
As a fallback, I would provide a command that could do arbitrary
register writes, but it would be seldom used.
I haven't looked into the reasons, but I suspect most commands run
long enough that there is no need to pack them. Pipelining hides the
large command size. Plus large is a relative term, no matter how
inefficent the packing most command streams are tiny compared to the
data they operate on. ATI has a set a command opcodes - set 1
register, set 2 registers, set 3 registers, etc.
Isn't this easier to build than packed commands?
--
Jon Smirl
[EMAIL PROTECTED]
_______________________________________________
Open-graphics mailing list
[email protected]
http://lists.duskglow.com/mailman/listinfo/open-graphics
List service provided by Duskglow Consulting, LLC (www.duskglow.com)