[EMAIL PROTECTED] wrote:
Hi,

Attached is a small patch for the Radeon driver. It allows use of the full
range of point sizes defined in Mesa. It uses the rasterization fallback
mechanism when rendering points outside the hardware supported range (!= 1.0).
Since point sizes greater than one don't seem be be an implementation
requirement this behaviour only occurs when the enironment variable
RADEON_LARGE_POINTS is set.

I am interested in finding a more efficient solution, but I'm not very familiar
with the code yet. Could anyone suggest a good place to start?



As you state, the trouble with this patch is that all rasterization falls back to software when poinsize != 1, even if no points are actually rendered.

To get good behaviour you really need to do something a little different.

First, yes, you will want a rasterization fallback for points. That means at least you have to turn of HW TCL when (pointsize != 1), otherwise you won't find it so easy to catch points with the existing infrastructure. (We could try & get fancy, but let's keep it simpler).

Then, have a look at radeonChooseRenderState() in radeon_swtcl.c. In here you will need to figure out how to hook in a software rasterization fallback *only* for points. This isn't something the radeon driver currently does, but other drivers *do*. Take a look at the equivalent function in the mga driver -- mgaChooseRenderState() -- which does hook in per-primitive-type fallbacks.

Keith




------------------------------------------------------- This SF.Net email sponsored by: Parasoft Error proof Web apps, automate testing & more. Download & eval WebKing and get a free book. www.parasoft.com/bulletproofapps1 _______________________________________________ Dri-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to