[offtopic] Re: Proprosed break in libGL / DRI driver ABI

Allen Akin akin at pobox.com
Thu Apr 7 14:43:39 PDT 2005


On Thu, Apr 07, 2005 at 01:29:21PM -0400, Adam Jackson wrote:
| I would think it possible to decompose the scene along notional view volumes 
| in the tiler...

In general that doesn't work, because (a) primitives that are clipped
based on the raster position clip in their entirety, rather than just
clipping the fragments outside the view volume; (b) clipping
computations can yield different parameter values at the boundaries than
interpolation during rasterization would have yielded, leading to
texturing discontinuities or Mach banding.  (These can be really
dramatic if interpolation isn't perspective-correct.)

If interpolation is done in such a way that you can guarantee reasonable
correspondence between interpolated and clipped parameter values, you
might be able to get away with overlapped view volumes and blending to
minimize the seams.

I haven't looked at this stuff in years, so someone with more current
experience than mine might have a better idea.

| I don't know that the rasteriser is the right place to solve this problem.  

Well, it is true that we don't have any control over the hardware
rasterizers, so we can't depend on solving the whole problem there.
But I doubt it can be solved without work in the OpenGL implementation.

| Eventually X will outgrow the 15-bit coordinate limit, and/or Roland will 
| want to do 1440dpi on A4 or whatever.  So it's not about asking for 12 bits 
| of fragment precision as opposed to 11, it's about asking for infinite 
| precision.

I don't think it's quite that bad. :-)

But you do need to guarantee how parameters are interpolated.  And that
the OpenGL implementation allows parameters to be specified with enough
precision that higher-level libraries can tile the scene, while leaving
errors at the seams that are too small to see.  (For example, the OpenGL
implementation shouldn't represent colors with just 8 bits.)

Allen


More information about the xorg-arch mailing list