mesa: Use _mesa_has_OES_geometry_shader() when validating draws
authorTomasz Figa <tfiga@chromium.org>
Thu, 23 Feb 2017 08:05:18 +0000 (17:05 +0900)
committerKenneth Graunke <kenneth@whitecape.org>
Thu, 2 Mar 2017 08:37:17 +0000 (00:37 -0800)
commit06758c1e8a8963e0894387d2f5ca83d88c9ac86c
treef4c58880f755d52112b5fff9b2024c78d6dfbe5d
parent58793e514b6c57924b08d3a9c766ed05e8d9662a
mesa: Use _mesa_has_OES_geometry_shader() when validating draws

In validate_DrawElements_common() we need to check for OES_geometry_shader
extension to determine if we should fail if transform feedback is
unpaused. However current code reads ctx->Extensions.OES_geometry_shader
directly, which does not take context version into account. This means
that if the context is GLES 3.0, which makes the OES_geometry_shader
inapplicable, we would not validate the draw properly. To fix it, let's
replace the check with a call to _mesa_has_OES_geometry_shader().

Fixes following dEQP tests on i965 with a GLES 3.0 context:

dEQP-GLES3.functional.negative_api.vertex_array#draw_elements
dEQP-GLES3.functional.negative_api.vertex_array#draw_elements_incomplete_primitive
dEQP-GLES3.functional.negative_api.vertex_array#draw_elements_instanced
dEQP-GLES3.functional.negative_api.vertex_array#draw_elements_instanced_incomplete_primitive
dEQP-GLES3.functional.negative_api.vertex_array#draw_range_elements
dEQP-GLES3.functional.negative_api.vertex_array#draw_range_elements_incomplete_primitive

Signed-off-by: Tomasz Figa <tfiga@chromium.org>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
src/mesa/main/api_validate.c