[Mesa-dev] [PATCH 0/3] More gently check for driver limits and lack thereof.

Mathias.Froehlich at gmx.net Mathias.Froehlich at gmx.net
Sat Jun 2 06:51:35 UTC 2018


From: Mathias Fröhlich <Mathias.Froehlich at gmx.net>

Hi,

Turns out that the MaxVertexAttribStride constant value
is not set by all drivers as I expected to be set.
Expecially virgl may run on top of an OpenGL stack that
is too old to allow the query of GL_MAX_VERTEX_ATTRIB_STRIDE.
So, allow setting that MaxVertexAttribStride value to zero, where
zero means that the driver does not want to announce any non
zero limit that may not hold in the end, but do what any OpenGL
application did for the time before the GL_MAX_VERTEX_ATTRIB_STRIDE
query, hope for the best and just execute the draw.
Also etnaviv has a real hardware limit of 255 bytes that may be hit by
the vbo module. Even if that limit is unikely to be hit by a real world
application, something that is not an internal consistency problem
shall not assert. So, to report something sane to the calling
application, set GL_OUT_OF_MEMORY in case that the stride in the
vbo module exceeds a driver provided non zero limit.
Also drop a note how the limit handling is meant to work.

Please review!
best
Mathias


Mathias Fröhlich (3):
  vbo: Reestablish VAO limit checking on imm VAOs.
  vbo: Reestablish VAO limit checking on dlist VAOs.
  mesa: Update comments at Const.MaxVertexAttribStride.

 src/mesa/main/mtypes.h       | 19 ++++++++++++++++++-
 src/mesa/vbo/vbo_exec_draw.c | 24 +++++++++++++++++++++++-
 src/mesa/vbo/vbo_save_api.c  | 24 ++++++++++++++++++++----
 3 files changed, 61 insertions(+), 6 deletions(-)

-- 
2.17.1



More information about the mesa-dev mailing list