[Mesa-dev] [PATCH 4/9] r200: Enable extensions by just setting the flags

Ian Romanick idr at freedesktop.org
Thu Sep 8 10:53:45 PDT 2011


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 09/06/2011 03:21 PM, Roland Scheidegger wrote:
> Am 06.09.2011 22:13, schrieb Ian Romanick:
>> From: Ian Romanick <ian.d.romanick at intel.com>
>>
>> Core Mesa already does the dispatch offset remapping for every
>> function that could possibly ever be supported.  There's no need to
>> continue using that cruft in the driver.
>>
>> Since the call to _mesa_enable_imaging_extensions (via
>> driInitExtensions) is removed, EXT_blend_logic_op is explicitly added
>> to the list.  EXT_blend_color is also added, but it depends on the
>> drmSupportsBlendColor flag.
> 
> Hmm, I don't think EXT_blend_logic_op was advertized before. The reason
> for this is that EXT_blend_logic_op together with

EXT_blend_logic_op *was* previously enabled.  r200CreateContext called
driInitExtensions( ctx, card_extensions, GL_TRUE );.  The GL_TRUE
parameter tells driInitExtensions to call
_mesa_enable_imaging_extensions.  _mesa_enable_imaging_extensions in
turn enables:

   GL_EXT_blend_color
   GL_EXT_blend_logic_op
   GL_EXT_blend_minmax
   GL_EXT_blend_subtract

I didn't see anything in r200_state.c to handle blend equation being set
to GL_LOGIC_OP.

Of course, we have *zero* piglit tests for this extension.

> EXT_blend_equation_separate allows some unholy combinations which the
> r200 (possibly other hw too) can't handle correctly. Namely this
> combination makes it possible to have logic ops on rgb or alpha channels
> and color blending on the other channels.
> I know that at least sometime in the past this driver did not advertize
> EXT_blend_logic_op, since OpenGL 1.1 style logic ops do not have that
> problem and EXT_blend_logic_op wasn't really all that important. I guess
> though it's not exactly a severe problem since surely apps old enough to
> use EXT_blend_logic_op wouldn't try to use EXT_blend_equation_separate
> (though in theory some app could be clever and really want to do that...).

That's a good point.  I suspect that no hardware actually handles this
case correctly.  I seem to recall that this is the reason NVIDIA doesn't
support GL_EXT_blend_logic_op in their drivers.  I know the non-Quadro
cards don't support it, anyway.

Does this work on later chips in the Radeon family?

I don't think anyone will miss GL_EXT_blend_logic_op if we just remove
it altogether.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk5pASUACgkQX1gOwKyEAw/3OgCfR/mU4O+4dEeGdr6zGrpx7KzU
1zQAnRXhbDF6/gvIFmePr86ddVzKVPVV
=OI6v
-----END PGP SIGNATURE-----


More information about the mesa-dev mailing list