Programar un benchmark desde 0

Queridos amigos el otro dia un amigo mio me trajo un script para hacer un benchmark de las librerias gl sobre mi nvidia en mi ubuntu. Y me gustaria compartirlo con vosotros.

1º Generais un archivo con extension py (en mi caso testgl.py). Y copias lo siguiente:

from Tkinter import *
from OpenGL.GL import *
from OpenGL.Tk import *

import time

class ColorBox ( Frame ):

	def __init__( self ):
		Frame.__init__( self )
		self.master.title( "Color Box" )
		self.master.geometry( "640x480" )
		self.pack( expand = YES, fill = BOTH )

		self.openGL = Opengl( self, double = 1)
		self.openGL.pack ( expand = YES, fill = BOTH )

		self.openGL.redraw = self.redraw
		self.openGL.set_eyepoint( 20 )

		self.amountRotated = 0
		self.increment = 2
		
		self.compta = 0

		self.starttime = time.time()

		self.update()



	def redraw( self, openGL ):
		glClearColor( 1.0, 1.0, 1.0, 0.0 )
		glClear( GL_COLOR_BUFFER_BIT )
		glDisable( GL_LIGHTING )

		red = ( 1.0, 0.0, 0.0 )
		green = ( 0.0, 1.0, 0.0 )
		blue = ( 0.0, 0.0, 1.0 )
		purple = ( 1.0, 0.0, 1.0 )

		vertices = \
			[ (( -3.0, 3.0, -3.0 ), red),
			  (( -3.0, -3.0, -3.0 ), green),
			  (( 3.0, 3.0, -3.0 ), blue),
			  (( 3.0, -3.0, -3.0 ), purple),
			  (( 3.0, 3.0, 3.0 ), red),
			  (( 3.0, -3.0, 3.0 ), green),
			  (( -3.0, 3.0, 3.0 ), blue),
			  (( -3.0, -3.0, 3.0 ), purple),
			  (( -3.0, 3.0, -3.0 ), red),
			  (( -3.0, -3.0, -3.0 ), green) ]

		glBegin( GL_QUAD_STRIP )

		for vertex in vertices:
			location, color = vertex
			apply( glColor3f, color )
			apply( glVertex3f, location )

		glEnd()


	def update( self ):
		self.compta += 1

		if( (time.time() - self.starttime) > 5):
			self.master.title( "Color Box FPS " + str(self.compta / 5) )
			self.compta = 0
			self.starttime = time.time()

		if self.amountRotated >= 500:
			self.increment = -2

		if self.amountRotated <= 0:
			self.increment = 2

		glRotate( self.increment, 1.0, 1.0, 1.0 )
		
		self.amountRotated += self.increment

		self.openGL.tkRedraw()
		#self.openGL.after( 10, self.update )
		self.openGL.after( 1, self.update )

def main():
	ColorBox().mainloop()

if __name__ == "__main__":
	main()

2º Despues desde un terminal lo ejecutais mediante la siguiente orden:
sudo python testgl.py

3º Conclusion. Yo lo probe primero con el driver que viene por defecto en hoary y despues con el driver especifico de nvidia(nvidia-glx), y os digo que hay una diferencia abismal. Tambien os digo que antes de instalar el driver os mireis el foro para instalarlo correctamente sino tendreis problemas para iniciar el modo grafico X.

 

fuentes:

http://www.ubuntu-es.org/node/9124#.VPSMNvmG_Ng

http://foro.noticias3d.com/vbulletin/showthread.php?t=243243

http://geneura.ugr.es/~jmerelo/DyEC/

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s