Please use this identifier to cite or link to this item:

Title3D application debugging
Author(s)Liu, André Alexandre Wang
Advisor(s)Fernandes, António Ramires
Keywords3D Modeling
Issue date5-Dec-2014
Abstract(s)It is rare for a bugless program to exist, this includes 3D applications with their respective shaders. In particular shaders are harder to debug than common applications, since they are loaded to the GPU and executed in thousands of smaller threads simultaneously. It is not easy to obtain variables values, the application state and it is hard to detect what causes errors. That’s why it is necessary to study and develop debugging environments for these applications. OpenGL in particular has many open source debuggers. A study about the features and usability of Bugle, Apitrace, GLIntercept, glslDevil and VOGL is documented, hopefully helping the reader to select the best tool for his needs. An analysis of the inner workings of each of these tools was also performed. Furthermore, the appendices allow the reader to use this document as a user manual. Being a debugger for an API that is constantly evolving is not an easy task, hence, the issue of upgradeability is highly relevant. This study examines how each tool copes with OpenGL’s evolution, in particular how each tool deals with new extensions and OpenGL versions. Also a study on commercial debuggers from known companies such as AMD and NVIDIA was performed. While it is expected that these debuggers are more capable in general than their open source counterparts, this potential can only be fully explored in the respective graphics hardware. On the downside it is not possible to alter these debuggers and integrate them in another application. The goal of this section is not only to analyse the potential of these proprietary tools, but also to understand the real value of the open source debuggers. Nau 3D engine, developed at Universidade do Minho, is an engine which renders projects written with xml. Being capable of combining rasterization (OpenGL) and ray-tracing (NVIDIA’s Optix) in multipass projects, it is a complex application that greatly benefits from having as much debugging features as possible. Adding debugger features could help immensely all who work with the engine, helping both the engine developers to discover bugs in the source code, and the engine users to find bugs in their own projects. With the knowledge gathered by studying OpenGL debuggers, several debugging features were implemented in Nau 3D engine. Some of these features are configurable, and maintaining the spirit of the original project, this configuration is also written in XML.
É muito raro existir um programa sem bugs, incluindo aplicações 3D com shaders. Os shaders em particular são mais complicados que as aplicações "comuns", uma vez os shaders são carregados para a placa gráfica e são executados em milhares de pequenas threads em simultâneo. Não é fácil obter valores de variáveis, estado da aplicação, e descobrir causas de erros. Consequentemente é importante utilizar debuggers especializados para este tipo de ambientes. O OpenGL em particular tem vários debuggers open-source. O estudo realizado sobre a usabilidade e versatilidade deste debuggers é documentado nesta tese. Os debuggers open-source analisados são: Bugle, Apitrace, GLIntercept, glslDevil e VOGL. É também descrito o processo de instalação e utilização em apêndices permitindo que este documento também possa ser usado como um manual de utilizador. Um estudo breve do código dos debuggers mencionados é necessário para entender as bases necessárias para debug de uma solução OpenGL. Este estudo também é necessário para compreender a questão da actualização destes projectos para acompanhar a evolução do OpenGL. Também um estudo dos debuggers comerciais actuais de empresas conhecidas como AMD e NVIDIA é efectuado de forma a conhecer os debuggers comerciais actuais, o procedimento da documentação terá algumas semelhanças com os debuggers open source. Este estudo tem também como objectivo permitir avaliar sobre o valor real dos projectos open-source. Nau é um motor 3D, desenvolvido na Universidade do Minho, para OpenGL que faz renderização de projectos escritos em XML. A possibilidade de ter um debugger interno pode ajudar imensamente todos os que desejem trabalhar com este motor, permitindo aos programadores do motor perceber possíveis bugs a acontecerem dentro do motor e também aos utilizadores do motor encontrarem bugs dos seus projectos. Com base no estudo sobres os debuggers open-source OpenGL, são implementadas funcionalidades de debugging para o motor 3D Nau. Mantendo o espírito original do projecto, estas funcionalidades poderão ser configuras em XML.
TypeMaster thesis
DescriptionDissertação de mestrado em Engenharia Informática (área de especialização Computação Gráfica)
AccessOpen access
Appears in Collections:BUM - Dissertações de Mestrado

Files in This Item:
File Description SizeFormat 
eeum_di_dissertacao_pg22841.pdf2,35 MBAdobe PDFView/Open

Partilhe no FacebookPartilhe no TwitterPartilhe no DeliciousPartilhe no LinkedInPartilhe no DiggAdicionar ao Google BookmarksPartilhe no MySpacePartilhe no Orkut
Exporte no formato BibTex mendeley Exporte no formato Endnote Adicione ao seu ORCID