Path: chuka.playstation.co.uk!news From: Chris Chadwick Newsgroups: scee.yaroze.programming.2d_graphics Subject: Re: Sprite Z Ordering Date: Tue, 22 Apr 1997 03:54:33 -0700 Organization: PlayStation Net Yaroze (SCEE) Lines: 31 Message-ID: <335C98E9.67BA@dial.pipex.com> References: <01bc49e3$259ecfe0$250ce8c3@cma> <3354CA83.3A4A@interactive.sony.com> NNTP-Posting-Host: ac107.du.pipex.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Mailer: Mozilla 2.02 (Win95; I; 16bit) Hi Lo, SCEE Developer Support wrote: > The values for the size of the PACKET arrays are partly > arbitrary; basically, every primitive requires up to > 24 PACKETS; and the PACKET scratchpad must be enough > for all the primitives we want to draw. Given we don't want to > have to calculate the exact number each time, we just set > an upper limit, hence you may often see sample code > like this > > #define PACKET_MAX1 24 // max number of packets per primitive > #define PACKET_MAX2 2048 // max number of primitives we want to draw > > PACKET GpuPacketArea[2][PACKET_MAX1 * PACKET_MAX2]; What actual information is contained in the 24 PACKETS(bytes) of each sprite primitive? I *had* thought it might comprise a copy of the GsSPRITE object registered in the OT with GsSortFastSprite(), plus a pointer to the next primitive in line but, by my calculation, all the members of a GsSPRITE object add up to 22 bytes, leaving only 2 bytes for the pointer! Also, why are GsOT_TAGS defined as two bit-fields (unsigned p:24 and unsigned char num:8)? I thought just a normal (32bit) pointer would be used - although I suspect this has something to do with the three CPU logical address spaces used to map the 2MB of physical memory (maybe!?). Sorry, but I had never heard of Ordering Tables until I got my Yaroze (there, I've admitted it :) All the details please someone! Cheers Chris