La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

ARB VP v1.0 en GPULib: comunicación GPULib Driver 8 de Julio del 2004.

Presentaciones similares


Presentación del tema: "ARB VP v1.0 en GPULib: comunicación GPULib Driver 8 de Julio del 2004."— Transcripción de la presentación:

1 ARB VP v1.0 en GPULib: comunicación GPULib Driver 8 de Julio del 2004

2 Comunicación de VP GPULib driver de bGPU Qué produce el ensamblador?: Código binario Shaders GPU Los operandos de la instrucción apuntan un (banco,registro) de la GPU. Contenido de los bancos Donde las instrucciones esperan encontrar los operandos según el texto del programa.

3 Ejemplo: El banco de parametros/constantes PARAM vector = {0,0,0,1}; Acceso de las instrucciones: DP4 r3, r2, vector; MOV r0, {0,0,0,1}; Parameters Bank: Id = 3 T C Comunicación de VP GPULib driver de bGPU 0.0 1.0 (Valores conocidos en tiempo de compilación) DP4 r3, r2, (BankId = 3, RegId = 0)

4 Ejemplo: El banco de parametros/constantes PARAM vector = program.local[23]; PARAM vector = program.env[17]; Comunicación de VP GPULib driver de bGPU Parameters Bank: Id = 3 T C0.0 1.0 Valores desconocidos en tiempo de compilación. Se definen y actualizan con las llamadas a la librería una vez compilado el programa: glProgramLocalParameter4fARB( GL_VERTEX_PROGRAM_ARB, index, x, y, z, w ) glProgramEnvParameter4fARB( GL_VERTEX_PROGRAM_ARB, index, x, y, z, w ) 23.00.0 L 17.00.0 E

5 Ejemplo: El banco de parametros/constantes PARAM mvp[] = { state.matrix.mvp.rows[0..2] }; Comunicación de VP GPULib driver de bGPU Valores desconocidos en tiempo de compilación. Se actualizan automáticamente con cada cambio de estado OpenGL Parameters Bank: Id = 3 T C0.0 1.0 23.00.0 L 17.00.0 E 226.00.0 226.01.00.0 226.02.00.0 S S S

6 Comunicación de VP GPULib driver de bGPU Porqué todo en el mismo banco? Podemos mezclar tipos de parametros en la declaración de un parametro: PARAM localparams[] ={ program.local[32], {0,0,0,0}, program.env[62..65], state.matrix.projection.row[1..2] }; Y acceder al parametro a través de registro: DP4 r3, r2, localparams[ addr.x + 4 ];

7 Comunicación de VP GPULib driver de bGPU Qué enviamos a la GPU? Código binario GPU producido por el ensamblador. Banco de parametros con los valores correctos actuales: Registros C: Tal cual Registros L y E: Con los valores actuales correspondientes de parametros locales y env. Registros S: Valores del estado OpenGL actual. Con cada cambio de estado (fuera del glBegin() i glEnd()) se actualiza de nuevo el banco Queda por definir bien esta sincronización

8 Comunicación de VP GPULib driver de bGPU Parameters Bank: Id = 3 T C0.0 1.0 23.00.0 L 17.00.0 E 226.00.0 226.01.00.0 226.02.00.0 S S S glRotatef(72.0,0.0,0.0,1.0) glProgramLocalParameter4fARB ( GL_VERTEX_PROGRAM_ARB, 23, 1.0, 2.0, 3.0, 4.0 ) 1.02.03.04.072.00.0 1.00.0 1.00.0


Descargar ppt "ARB VP v1.0 en GPULib: comunicación GPULib Driver 8 de Julio del 2004."

Presentaciones similares


Anuncios Google