Here is the driver-independent part of ARB_gpu_shader5's interpolateAtCentroid, interpolateAtOffset builtins.
Before I go further with this approach, I'd like feedback on the following: 1) I've (ab)used ir_var_shader_in variable mode in function signatures to enforce the strange restrictions interpolateAt* have. Is this crazy/awful? 2) I intend to implement interpolateAtSample() by: - Adding a new builtin uniform (perhaps "gl_SamplePositionsMESA"); which will be an array of vec2, containing the full palette of current sample positions. This could be formally exposed by another extension at a later point. - Compiling interpolateAtSample(x, sample_num) as if the shader author wrote: interpolateAtOffset(x, gl_SamplePositionsMESA[sample_num] - vec2(0.5)) Is this sensible? Does it match what other hardware will need to do? (it makes sense for i965, where the fragment shader payload otherwise does not have access to a full palette of sample positions.) _______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
