From: Roland S. <rsc...@hi...> - 2005-10-02 23:14:53
|
Philipp Klaus Krause wrote: > Roland found out how to do bigger aliased points on r200 hardware a long > time ago. AFAIK the patch was never applied since people failed to see > it's importance. > > 3D modellers use points to mark the currently selected vertices. A > maximum point size of 1 means they are invisible with today's screen > resolutions. This makes the r200 DRI driver useless for 3D modelling > with those applications. Bigger point sizes are really necessary! > > Roland's patch supported only aliased points, but since the maximum > point sizes for aliased and antialised points can be different that > would never cause a software fallback. I know that the popular free > wings3d modeller uses only aliased points and think that it's the same > with other 3d modellers. Ok here's a patch. It needs a semi-recent drm. It is downright trivial, all points with size != 1.0 are simply rendered with the point sprite primitive. Up to size 2047.0 - that should be enough for everyone :-). No point parameters or point sprites for now. In fact it would be possible to do it without a new drm - since the hardware can clamp the point size. But I'm not too sure if it's a good idea to do the point size calculation with unconfigured inputs and then simply clamping the result. One thing which is slightly confusing though is the register name, R200_SE_TCL_POINT_SPRITE_CNTL seems to imply this only works when using hw tcl. Now I don't doubt the point attenuation calculation will only work when using hw tcl, but I can't see a reason why the selection bit would not work with sw tcl (and I'd hope the point sprite tex coord generation would work with sw tcl too, otherwise there'd be a big problem when for some other reason there's a tcl fallback - it's impossible to manually attach 4 sets of tex coords to a single vertex I guess). Works fine for me with tcl_mode=0, but I don't have hardware which doesn't have tcl hardware (only IGP 9100 family doesn't have tcl). If it doesn't work there we'd need to submit the point size as a vertex parameter (which has the nice side-effect of getting ARB_point_parameter for free for the sw tcl case). Roland |