OpenGL: system info tweaks

- show extensions one per line in order for easier human scanning
- show DrawElements vertex & index limits
- assume GL version >= 2 for GLSL limit queries
This commit is contained in:
Mike Erwin 2015-12-13 15:58:01 -05:00
parent 9f6c06595a
commit 9c53e55db5

@ -170,8 +170,7 @@ def write_sysinfo(op):
output.write("version:\t%r\n" % (bgl.glGetString(bgl.GL_VERSION))) output.write("version:\t%r\n" % (bgl.glGetString(bgl.GL_VERSION)))
output.write("extensions:\n") output.write("extensions:\n")
glext = bgl.glGetString(bgl.GL_EXTENSIONS) glext = sorted(bgl.glGetString(bgl.GL_EXTENSIONS).split())
glext = textwrap.wrap(glext, 70)
for l in glext: for l in glext:
output.write("\t%s\n" % l) output.write("\t%s\n" % l)
@ -179,23 +178,26 @@ def write_sysinfo(op):
limit = bgl.Buffer(bgl.GL_INT, 1) limit = bgl.Buffer(bgl.GL_INT, 1)
bgl.glGetIntegerv(bgl.GL_MAX_TEXTURE_UNITS, limit) bgl.glGetIntegerv(bgl.GL_MAX_TEXTURE_UNITS, limit)
output.write("Maximum Fixed Function Texture Units:\t%d\n" % limit[0]) output.write("Maximum Fixed Function Texture Units:\t%d\n" % limit[0])
bgl.glGetIntegerv(bgl.GL_MAX_ELEMENTS_VERTICES, limit)
output.write("Maximum DrawElements Vertices:\t%d\n" % limit[0])
bgl.glGetIntegerv(bgl.GL_MAX_ELEMENTS_INDICES, limit)
output.write("Maximum DrawElements Indices:\t%d\n" % limit[0])
output.write("\nGLSL:\n") output.write("\nGLSL:\n")
if version[0] > '1': bgl.glGetIntegerv(bgl.GL_MAX_VARYING_FLOATS, limit)
bgl.glGetIntegerv(bgl.GL_MAX_VARYING_FLOATS, limit) output.write("Maximum Varying Floats:\t%d\n" % limit[0])
output.write("Maximum Varying Floats:\t%d\n" % limit[0]) bgl.glGetIntegerv(bgl.GL_MAX_VERTEX_ATTRIBS, limit)
bgl.glGetIntegerv(bgl.GL_MAX_VERTEX_ATTRIBS, limit) output.write("Maximum Vertex Attributes:\t%d\n" % limit[0])
output.write("Maximum Vertex Attributes:\t%d\n" % limit[0]) bgl.glGetIntegerv(bgl.GL_MAX_VERTEX_UNIFORM_COMPONENTS, limit)
bgl.glGetIntegerv(bgl.GL_MAX_VERTEX_UNIFORM_COMPONENTS, limit) output.write("Maximum Vertex Uniform Components:\t%d\n" % limit[0])
output.write("Maximum Vertex Uniform Components:\t%d\n" % limit[0]) bgl.glGetIntegerv(bgl.GL_MAX_FRAGMENT_UNIFORM_COMPONENTS, limit)
bgl.glGetIntegerv(bgl.GL_MAX_FRAGMENT_UNIFORM_COMPONENTS, limit) output.write("Maximum Fragment Uniform Components:\t%d\n" % limit[0])
output.write("Maximum Fragment Uniform Components:\t%d\n" % limit[0]) bgl.glGetIntegerv(bgl.GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS, limit)
bgl.glGetIntegerv(bgl.GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS, limit) output.write("Maximum Vertex Image Units:\t%d\n" % limit[0])
output.write("Maximum Vertex Image Units:\t%d\n" % limit[0]) bgl.glGetIntegerv(bgl.GL_MAX_TEXTURE_IMAGE_UNITS, limit)
bgl.glGetIntegerv(bgl.GL_MAX_TEXTURE_IMAGE_UNITS, limit) output.write("Maximum Fragment Image Units:\t%d\n" % limit[0])
output.write("Maximum Fragment Image Units:\t%d\n" % limit[0]) bgl.glGetIntegerv(bgl.GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS, limit)
bgl.glGetIntegerv(bgl.GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS, limit) output.write("Maximum Pipeline Image Units:\t%d\n" % limit[0])
output.write("Maximum Pipeline Image Units:\t%d\n" % limit[0])
if bpy.app.build_options.cycles: if bpy.app.build_options.cycles:
import cycles import cycles