[Mesa-dev] [PATCH] mesa: only verify that enabled arrays have backing buffers

Ilia Mirkin imirkin at alum.mit.edu
Thu Dec 1 10:59:33 UTC 2016


On Thu, Dec 1, 2016 at 5:50 AM, Tapani Pälli <tapani.palli at intel.com> wrote:
>
>
> On 12/01/2016 12:19 PM, Tapani Pälli wrote:
>>
>>
>> On 12/01/2016 12:04 AM, Ilia Mirkin wrote:
>>>
>>> We were previously also verifying that no backing buffers were available
>>> when an array wasn't enabled. This is has no basis in the spec, and it
>>> causes GLupeN64 to fail as a result.
>>
>>
>> I'm a bit puzzled about the API usage here, is the app attempting to
>> render something without a VAO and we are having DefaultVAO in use?
>
>
> ok realized that can't be the case as there's a separate check for that.

No, they just have some VBO's bound with attribs that got disabled in
the VAO. i.e. a glDisableVertexAttribArray() call which removes the
bit from _Enabled, but not the VertexAttribBufferMask.

>
>>
>>> Fixes: c2e146f487 ("mesa: error out in indirect draw when vertex
>>> bindings mismatch")
>>> Cc: mesa-stable at lists.freedesktop.org
>>> Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
>>> Reviewed-by: Timothy Arceri <timothy.arceri at collabora.com>
>>> ---
>>>  src/mesa/main/api_validate.c | 2 +-
>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/src/mesa/main/api_validate.c b/src/mesa/main/api_validate.c
>>> index d3b4cab..071c16d 100644
>>> --- a/src/mesa/main/api_validate.c
>>> +++ b/src/mesa/main/api_validate.c
>>> @@ -925,7 +925,7 @@ valid_draw_indirect(struct gl_context *ctx,
>>>      * buffer bound.
>>>      */
>>>     if (_mesa_is_gles31(ctx) &&
>>> -       ctx->Array.VAO->_Enabled !=
>>> ctx->Array.VAO->VertexAttribBufferMask) {
>>> +       ctx->Array.VAO->_Enabled &
>>> ~ctx->Array.VAO->VertexAttribBufferMask) {
>>>        _mesa_error(ctx, GL_INVALID_OPERATION, "%s(No VBO bound)", name);
>>>        return GL_FALSE;
>>>     }
>>>
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list