On 07/18/2012 12:34 AM, Kenneth Graunke wrote: > Unigine Heaven (at least) has a bug where it incorrectly uses the > GL_ARB_blend_func_extended extension. > > Dual source blending allows two color outputs per render target; > individual shader outputs can be assigned to be either the first or > second blending input by setting the 'index' via one of two methods: > > - An API call: glBindFragDataLocationIndexed() > - The GLSL 'layout' qualifier provided by GL_ARB_explicit_attrib_location > > Both of these only work on user defined fragment shader outputs; it's an > error to use either on built-in outputs like gl_FragData. > > Unigine uses gl_FragData and gl_FragColor exclusively, and doesn't even > attempt to use either method to set index == 1. However, it does set > the blending function to SRC1 enums, which requires a fragment shader > output with index == 1 or else rendering is undefined. > > In other words, enabling ARB_blend_func_extended causes Unigine to > render incorrectly, resulting in an apparent regression, even though our > driver code (as far as I can tell) is perfectly fine. > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=50291 > Signed-off-by: Kenneth Graunke <kenn...@whitecape.org> > --- > src/mesa/drivers/dri/common/drirc | 4 ++++ > src/mesa/drivers/dri/common/xmlpool/options.h | 10 ++++++++++ > src/mesa/drivers/dri/intel/intel_extensions.c | 2 +- > src/mesa/drivers/dri/intel/intel_screen.c | 3 ++- > 4 files changed, 17 insertions(+), 2 deletions(-) > > Really sad to send this out, but I'm not sure what else to do. I thought > I found an small bit of out-of-spec behavior that they were relying on > which could make things work, but it doesn't...even with my change, the > sun disappears from the sky. > > Still need to report this upstream.
:( Reviewed-by: Chad Versace <chad.vers...@linux.intel.com> _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev