Am 10.01.2014 12:04, schrieb Erik Faye-Lund: > On Fri, Jan 10, 2014 at 10:33 AM, Lauri Kasanen <c...@gmx.com> wrote: >> On Fri, 10 Jan 2014 03:57:45 +0100 >> srol...@vmware.com wrote: >> >>> From: Roland Scheidegger <srol...@vmware.com> >>> >>> OpenGL does whole-point clipping, that is a large point is either fully >>> clipped or fully unclipped (the latter means it may extend beyond the >>> viewport as long as the center is inside the viewport). d3d9 (d3d10 has >>> no large points) however requires points to be clipped after they are >>> expanded to a rectangle. (Note some IHVs are known to ignore GL rules at >>> least with some hw/drivers.) >>> >>> Hence add a rasterizer bit indicating which way points should be clipped >>> (some drivers probably will always ignore this), and add the draw >>> interaction >>> this requires. Drivers wanting to support this and using draw must support >>> large points on their own as draw doesn't implement vp clipping on the >>> expanded points (it potentially could but the complexity doesn't seem >>> warranted), and the driver needs to do viewport scissoring on such points. >> >> Is there any possibility of this being exposed to user-space? With that >> hat on, it would have been useful to me several times in the past. >> >> Perhaps whoever was Mesa's ARB contact could propose an extension? I >> know nothing about how that happens, just would like this functionality. > > IIRC there were some draft by NVIDIA discussed in Khronos OpenGL ES > meetings 6-7 years ago, but I don't think it ever resulted in a > released extension spec >
I think the spec would actually be a bit messy, as it means you have to convert points essentially to tris before before rasterization (before clipping in fact), so it doesn't really fit into "normal" pipeline. The llvmpipe implementation (which is only in a private branch as it can't be merged easily to master due to needing fake viewport scissoring) of course doesn't do this (points rasterization is way easier than tris) but just pretends like it does. It is worth noting d3d10 got rid of the problem entirely (for large points you have to explicitly convert your points to tris in the gs). Also, even if we had such an extension, drivers need to implement this. I don't know if all hw can easily do that, though at least some nvidia cards with blob will always follow d3d9 behavior (but I have no idea if the hw couldn't do GL behavior or nvidia just thought the d3d9 behavior is more useful anyway). (Not saying I'd object such an extension just rather it's out of the scope of this patch as we just need it for d3d9.) Roland _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev