On Fri, Apr 21, 2000 at 03:24:19PM -0600, Keith Whitwell wrote:
> OK, for anyone who's interested:
> I've committed (to the DRI tree under the mga-0-0-3-branch tag) a new even
> faster path for MGA setupdma (indexed vertex buffers). I see a 10-15% sp=
> at the q3dm1 spawn point at 640x480 (more benchmarks later).
Ok, i guess this is the obvious question (since you crossposted to utah-glx=
how hard is this to backport? I haven't looked at your patch yet so i dunn=
much got changed outside of the functions you added, but is this a major ch=
Also, while almost completely unrelated ... how hard is it to install XF4.0=
a seperate place than /usr/X11R6, and have it reside COMPLETELY within that
directory? I would like to test xf4.0 + mga dri, but i want to stick with
my current 3.3.6 for normal use :)
> The path is pretty simple, and looks something like this:
> - do obj->clip transform
> - cliptest and project
> - walk the clipmask array=20
> - for each unclipped vertex, emit that vertex to a waiting dma buffer
> - walk the element list and identify triangles to render
> - if triangle is unclipped, emit 3 indices to dma
> - if triangle is clipped:
> - build 3 clipspace vertices
> - perform clipping
> - project and emit any newly created vertices to dma
> - emit indices.
> Buffers are organized so that indices are emitted from low addresses up (=
> way you would expect them to), and vertices are emitted from the other en=
> the buffer, growing downwards.
> There are a couple of restrictions in the current implementation, which m=
> difficult to remove:
> - indices are emitted to hardware as the physical addresses of the refer=
> vertex in agp space. In order to calculate these, I emit unclipped verti=
> to a contiguous piece of agp space, allowing a simple relationship between
> element and physical address. In effect this requires that all the uncli=
> vertices can fit in a single dma buffer. Quake3 calls this path on array=
> up to 1024 vertices, vertices are 10 dwords but must be 4-dword aligned, =
> effectively 12 dwords/vertex. This means that dma buffers must be 64k or=
> in size for this path to be useful for q3.
> - there is no way to perform the vertex manipulations necessary to draw
> accelerated lines or points, or two-sided, flat-shaded, or other exotic
> triangles with this path.
> - mundane assembly issues add a requirement that the ModelProject matrix=
> "general" -- typically requiring a perspective transform.
> These are fairly small limitations, but do justify the continued existanc=
> the fastpath mga hardware.
> I've been able to reuse the assembly support from the "main" mesa path (t=
> slowpath?) in this code. By writing some new assembly a small additional
> speedup might be gained.
> utah-glx-dev mailing list
It is better to remain silent and be considered a fool, than to speak and
remove all doubt.
-- Mark Twain