[Mesa-dev] [Mesa-stable] [PATCH v2] mesa: fix GL_COLOR_SUM enum for drivers without ARB_vertex_program

Ilia Mirkin imirkin at alum.mit.edu
Thu Jan 16 10:42:35 PST 2014


On Thu, Jan 16, 2014 at 1:38 PM, Ilia Mirkin <imirkin at alum.mit.edu> wrote:
> On Thu, Jan 16, 2014 at 1:34 PM, Ian Romanick <idr at freedesktop.org> wrote:
>> On 01/16/2014 10:13 AM, Ilia Mirkin wrote:
>>> Commit c13970808 (mesa: GL_EXT_secondary_color is not optional) changed
>>>
>>> CHECK_EXTENSION2(EXT_secondary_color, ARB_vetex_program, cap)
>>>
>>> to
>>>
>>> CHECK_EXTENSION(ARB_vertex_program, cap)
>>>
>>> However CHECK_EXTENSION2 checks that either extension is available, not
>>> both. Remove the extension check entirely since the intent was for it to
>>> always be enabled.
>>>
>>> Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
>>> Cc: 9.2 10.0 <mesa-stable at lists.freedesktop.org>
>>
>> Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
>
> Thanks! Can you take care of checking it in? I don't have an fd.o account.
>
>>
>>> ---
>>>
>>> I hope this is what you meant by the get_hash_params.py change. I'm not
>>> entirely clear on when one should use NO_EXTRA vs a flush of some sort.
>>
>> The various flushes are only needed for queries of derived state (like
>> the current secondary color query).

Actually if the extra_ARB_vertex_program was needed before -- wouldn't
it still be needed now? Presumably it only does work if that extension
exists, and GL_COLOR_SUM somehow interacts with it. (Sorry, my
knowledge of the details is rather weak.)

>>
>>>  src/mesa/main/enable.c           | 2 --
>>>  src/mesa/main/get_hash_params.py | 2 +-
>>>  2 files changed, 1 insertion(+), 3 deletions(-)
>>>
>>> diff --git a/src/mesa/main/enable.c b/src/mesa/main/enable.c
>>> index bb4a23c..fca3068 100644
>>> --- a/src/mesa/main/enable.c
>>> +++ b/src/mesa/main/enable.c
>>> @@ -762,7 +762,6 @@ _mesa_set_enable(struct gl_context *ctx, GLenum cap, GLboolean state)
>>>        case GL_COLOR_SUM_EXT:
>>>           if (ctx->API != API_OPENGL_COMPAT)
>>>              goto invalid_enum_error;
>>> -         CHECK_EXTENSION(ARB_vertex_program, cap);
>>>           if (ctx->Fog.ColorSumEnabled == state)
>>>              return;
>>>           FLUSH_VERTICES(ctx, _NEW_FOG);
>>> @@ -1443,7 +1442,6 @@ _mesa_IsEnabled( GLenum cap )
>>>        case GL_COLOR_SUM_EXT:
>>>           if (ctx->API != API_OPENGL_COMPAT)
>>>              goto invalid_enum_error;
>>> -         CHECK_EXTENSION(ARB_vertex_program);
>>>           return ctx->Fog.ColorSumEnabled;
>>>
>>>        /* GL_ARB_multisample */
>>> diff --git a/src/mesa/main/get_hash_params.py b/src/mesa/main/get_hash_params.py
>>> index 6195d63..bc2bbaf 100644
>>> --- a/src/mesa/main/get_hash_params.py
>>> +++ b/src/mesa/main/get_hash_params.py
>>> @@ -541,7 +541,7 @@ descriptor=[
>>>    [ "TRANSPOSE_TEXTURE_MATRIX_ARB", "CONTEXT_MATRIX_T(TextureMatrixStack), NO_EXTRA" ],
>>>
>>>  # GL_EXT_secondary_color
>>> -  [ "COLOR_SUM", "CONTEXT_BOOL(Fog.ColorSumEnabled), extra_ARB_vertex_program" ],
>>> +  [ "COLOR_SUM", "CONTEXT_BOOL(Fog.ColorSumEnabled), NO_EXTRA" ],
>>>    [ "CURRENT_SECONDARY_COLOR", "CONTEXT_FIELD(Current.Attrib[VERT_ATTRIB_COLOR1][0], TYPE_FLOATN_4), extra_flush_current" ],
>>>    [ "SECONDARY_COLOR_ARRAY", "ARRAY_BOOL(VertexAttrib[VERT_ATTRIB_COLOR1].Enabled), NO_EXTRA" ],
>>>    [ "SECONDARY_COLOR_ARRAY_TYPE", "ARRAY_ENUM(VertexAttrib[VERT_ATTRIB_COLOR1].Type), NO_EXTRA" ],
>>>
>>


More information about the mesa-dev mailing list