[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Public WebGL] Centroid sampling makes conformance tests fail?




Hi Florian,

On 19/06/2012 3:47 PM, Florian Bösch wrote:
The OpenGL specification does not define nor does it make guarantees about the way that results are rasterized. The details and implementation of the rasterizer is entirely up to the vendor of the driver and hardware.

There are a variety of situations in which different results in the rasterized output will occur:
- centroid vs. non centroid sampling
- observing or ignoring texture2D bias arguments (which the driver is free to do)
- the heuristic used to come up with the derivatives (usually by evaluating 2x2 patches from top/left to bottom/right, but this is just one of several possible ways)
- the algorithm that performs anti-aliasing (supersampling, multisampling, other more excotic methods)
- the presence or absence of driver override settings in regards to anti-aliasing, anisotropic filtering, mipmapping, tone-mapping etc.
- the precision, implementation and bit-widths of the numerical circuitry, GPUs are not bound to do that by any IEEE standard for graphics applications, and may implement any variety of floating or fixed point schemes they deem appropriate
- I'm sure there are about two or three dozen I don't know about.


I think that writing pixel-precise and color-precise tests with zero tolerances is not a good idea.

That was my understanding of the lack of guarantees OpenGL makes as well. I'll make sure the WebGL conformance tests get fixed.


Do you think that to avoid any gotcha's ANGLE should avoid centroid sampling if possible? Or is there any other workaround to ensure that people can safely use anti-aliasing without any unexpected artifacts?

Thanks,
Nicolas

-----------------------------------------------------------
You are currently subscribed to public_webgl@khronos.org.
To unsubscribe, send an email to majordomo@khronos.org with
the following command in the body of your email:
unsubscribe public_webgl
-----------------------------------------------------------