There are many combinations of invalid arguments for OpenGL functions and it is impractical to cover all of them.
Even if nothing is wrong with the user, GL_CONTEXT_LOST
and
GL_OUT_OF_MEMORY
can also occur in many GL functions due to hardware
problems. They can leave the context in an invalid state which can
result in a reliability or security issue.
Check GL errors after an operation completes and prevent from using the GL context after a GL error occurred.
This merge request also contains several fixes uncovered by checking GL errors.
spec@!opengl 1.5@draw-vertices
, spec@!opengl 1.5@draw-vertices-user
,
and spec@!opengl 2.0@gl-2.0-vertexattribpointer
are marked as crash in
.gitlab-ci/expectations/host/piglit-virgl-gles-fails.txt
because they
require GL_DOUBLE
specification for glVertexAttribPointer
, which is
not supported by OpenGL ES. Avoiding the crashes requires capability
checks on the guest, which this change does not implement.
Signed-off-by: Akihiko Odaki akihiko.odaki@gmail.com