Trabalho De Conclusão Bárbara Bellaver Gonçalves

Trabalho De Conclusão Bárbara Bellaver Gonçalves

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA CURSO DE CIÊNCIA DA COMPUTAÇÃO BÁRBARA BELLAVER GONÇALVES glslAngel: Uma Ferramenta de Depuração para a Linguagem GLSL Trabalho de Graduação Prof. Dr. Manuel Menezes de Oliveira Neto Orientador Porto Alegre, novembro de 2008. UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL Reitor: Prof. Carlos Alexandre Netto Vice-Reitor: Prof. Rui Vicente Oppermann Pró-Reitora Graduação: Profa. Valquiria Link Bassani Diretor do Instituto de Informática: Prof. Flávio Rech Wagner Coordenador do CIC: Prof. Raul Fernando Weber Bibliotecária-Chefe do Instituto de Informática: Beatriz Regina Bastos Haro AGRADECIMENTOS Agradeço primeiramente à Deus, por toda a luz. Ao meu orientador, Manuel Menezes de Oliveira Neto, pela paciência, pelos conselhos, pelas conversas, pela disponibilidade e por toda a experiência adquirida no desenvolvimento deste trabalho. Aos doutorandos Vitor Pamplona e Leandro Fernandes pela ajuda revisando o texto e assistindo minha apresentação várias vezes. Suas críticas e comentários foram bastante valiosos. Por fim, agradeço minha família pelo carinho e apoio. SUMÁRIO LISTA DE ABREVIATURAS E SIGLAS ...................................................................... 6 LISTA DE FIGURAS ...................................................................................................... 7 LISTA DE TABELAS ..................................................................................................... 8 RESUMO ......................................................................................................................... 9 ABSTRACT ................................................................................................................... 10 1 INTRODUÇÃO ...................................................................................................... 11 2 O PIPELINE GRÁFICO ........................................................................................ 14 2.1 Sumário ............................................................................................................ 17 3 A LINGUAGEM GLSL ......................................................................................... 18 3.1 Shaders ............................................................................................................. 18 3.2 Evolução da programação de shaders .............................................................. 19 3.2.1 Cg ............................................................................................................ 20 3.2.2 HLSL ....................................................................................................... 20 3.2.3 GLSL ....................................................................................................... 21 3.3 Sumário ............................................................................................................ 23 4 EVOLUÇÃO E O ESTADO DA ARTE EM HARDWARE GRÁFICOS ............ 24 4.1 Sumário ............................................................................................................ 26 5 REQUISITOS DE UM DEPURADOR .................................................................. 28 5.1 Depuração em CPUs e GPUs ........................................................................... 28 5.2 Sumário ............................................................................................................ 29 6 TRABALHOS RELACIONADOS ........................................................................ 30 6.1 Depuradores de Programas OpenGL® ............................................................. 30 6.2 Depuradores e/ou editores de shaders .............................................................. 31 6.2.1 Que não consideram o programa OpenGL® hospedeiro ........................ 31 6.2.2 Que consideram o programa OpenGL® hospedeiro............................... 32 6.3 Sumário ............................................................................................................ 33 7 IMPLEMENTAÇÃO ............................................................................................. 34 7.1 Biblioteca de funções ....................................................................................... 35 7.1.1 Instrumentação do código ....................................................................... 36 7.2 Parser GLSL .................................................................................................... 41 7.3 Interface ............................................................................................................ 46 7.3.1 Inicialização da Ferramenta .................................................................... 47 7.3.2 Depuração Apenas do Shader ................................................................. 47 7.3.3 Depuração do Programa OpenGL e do Shader ....................................... 49 7.4 Compilando o Shader”. .................................................................................... 49 7.5 Sumário ............................................................................................................ 50 8 RESULTADOS ...................................................................................................... 51 8.1 A Ferramenta Construída ................................................................................. 51 8.2 Exemplo de Execução ...................................................................................... 52 8.3 Depuração do Programa OpenGL Hospedeiro ................................................. 56 8.4 Limitações ........................................................................................................ 57 8.5 Sumário ............................................................................................................ 58 9 CONCLUSÃO ........................................................................................................ 59 10 REFERÊNCIAS ..................................................................................................... 62 APÊNDICE A - Funções Inseridas na GLTrace ............................................................ 67 LISTA DE ABREVIATURAS E SIGLAS ARB Architecture Review Board CPU Central Processing Unit GPU Graphics Processing Unit GUI Graphic User Interface SDK Software Development Kit SLI Scalable Link Interface LISTA DE FIGURAS FIGURA 2.1: DIAGRAMA LÓGICO DA ARQUITETURA BÁSICA DA OPENGL 2.0 [ROS05] ............................. 15 FIGURA 2.2:ENTRADAS E SAÍDAS DO PROCESSADOR DE VÉRTICES [ROS04] ............................................. 16 FIGURA 2.3: ENTRADAS E SAÍDAS DO PROCESSADOR DE FRAGMENTOS [ROS04] ..................................... 17 FIGURA 3.1: CENA DO JOGO CRYSIS ........................................................................................................... 18 FIGURA 3.2: PROCESSO DE COMPILAÇÃO DE UM PROGRAMA EM LINGUAGEM CG................................. 20 FIGURA 3.3:PROCESSO DE COMPILAÇÃO DE UM PROGRAMA EM LINGUAGEM GLSL .............................. 22 FIGURA 4.1: IMAGEM EM TEMPO REAL COM O USO DA PLACA NVIDIA GEFORCEGTX280 [TWE08] ........ 26 FIGURA 4.2: IMAGEM EM TEMPO REAL COM O USO DA PLACA ATI RADEON HD4870X2 [AMD08] ......... 26 FIGURA 4.4:NVIDIA GEFORCEGTX280 ........................................................................................................ 26 FIGURA 5.1:REPRESENTAÇÃO DA VISUALIZAÇÃO DA DEPURAÇÃO DE QUATRO PROPRIEDADES DIFERENTES DE UM SHADER ESCRITO EM CG [DNB05A] .................................................................. 29 FIGURA 6.1: INTERFACE DA FERRAMENTA SPYGLASS [MAG02] ................................................................ 31 FIGURA 7.1: FLUXOGRAMA EM ALTO NÍVEL DA APLICAÇÃO ..................................................................... 35 FIGURA 7.2:FUNÇÕES ADICIONADAS AO CÓDIGO DA BIBLIOTECA NO INÍCIO DA EXECUÇÃO .................. 37 FIGURA 7.3: FUNÇÕES ADICIONADAS AO CÓDIGO DA BIBLIOTECA A CADA RENDERIZAÇÃO DA CENA .... 38 FIGURA 7.4: FUNÇÕES ADICIONADAS AO CÓDIGO DA BIBLIOTECA AO INICIAR A EXECUÇÃO DO PROGRAMA ....................................................................................................................................... 39 FIGURA 7.5: FUNÇÕES ADICIONADAS AO CÓDIGO DA BIBLIOTECA A CADA RENDERIZAÇÃO DA CENA .... 40 FIGURA 7.6: PASSOS NECESSÁRIOS PARA A CRIAÇÃO DE UM SHADER [FER06] ........................................ 41 FIGURA 7.7: EXEMPLO DE CASO ONDE DEVE SER INCLUÍDA A FUNÇÃO GL_POSITION (SUPERIOR) E DE QUANDO ELA NÃO DEVE SER INSERIDA (INFERIOR) ......................................................................... 42 FIGURA 7.9: VERSÃO RECEBIDA DA INTERFACE NOS PASSOS 1 E 2 DE EXECUÇÃO, RESPECTIVAMENTE. 43 FIGURA 7.8: CÓDIGO FONTE ORIGINAL DO VERTEX SHADER ..................................................................... 43 FIGURA 7.10: VERSÃO DEVOLVIDA PARA A INTERFACE APÓS O PASSO 1 ................................................. 43 FIGURA 7.11: VERSÃO DEVOLVIDA PARA A INTERFACE APÓS O PASSO 2 ................................................. 44 FIGURA 7.12: VERSÃO DO FRAGMENT SHADER QUE É GERADA NOS PASSOS 1 E 2 .................................. 44 FIGURA 7.13: CÓDIGO ALTERADO PARA DEPURAÇÃO DE UM FRAGMENT SHADER ................................. 45 FIGURA 7.14: INTERFACE DA FERRAMENTA ............................................................................................... 46 FIGURA 7.15: FLUXOGRAMA SIMPLIFICADO DA EXECUÇÃO DO DEPURADOR .......................................... 47 FIGURA

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    69 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us