Ian Romanick wrote:
Keith Whitwell wrote:

[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.


Shouldn't it be possible to simulate large (or small) points by replacing them with a polygon? There would be some trickery involved to get it right, but I'd thing that on TCL hardware this would be a much better way to go. Could this be done by adding another pipeline stage? I've kind of permanently kept this issue on my back-burner, but it seems to be heating up lately. :) Maybe it's time to stir the pot...

Yep, in fact emitting a polygon in this fallback is probably a better idea (and easier) than trying to go to software rendering. In fact all the old drivers do it this way -- emit two triangles in the point routine.


Keith




------------------------------------------------------- This SF.net email is sponsored by: VM Ware With VMware you can run multiple operating systems on a single machine. WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines at the same time. Free trial click here: http://www.vmware.com/wl/offer/345/0 _______________________________________________ Dri-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to