GSoC: Add support for performance counters in the profiling view.

Martin Peres martin.peres at linux.intel.com
Wed Apr 29 06:21:15 PDT 2015


Hello everyone,

I would like to congratulate Alex in public for being accepted into the 
Google Summer of Code 2015! He will be working on improving the 
profiling view and I will be his principal mentor. Mark and Carl have 
also expressed a lot of interest and will also be mentoring Alex as time 
permits.

Most of our discussions will happen on irc (#dri-devel?) or on this 
mailing list.

Thanks,
Martin Peres

Here is Alex's proposal for the GSoC:

---------------------------------------------------------------------------------

Summary:

This project aims to improve the profiling capabilities of Apitrace on 
the OpenGL side by introducing new metric-collection systems and 
improving the profiling GUI.


Goals and details:

1. Implement an abstraction system for profiling data collectors. The 
idea behind this is to write a general interface to different sources of 
profiling data. It should be capable of at least:

   a. Initialization/deinitialization

   b. Setup (basically choosing counters)

   c. Methods like beginQuery/endQuery in OpenGL

I think this all should be added as an additional feature with the 
corresponding option to be passed to the compiler.

2. Implement on top of the abstraction system several backends:

   a. AMD_performance_monitor OpenGL extension

   b. INTEL_performance_query OpenGL extension

   c. perfkit (probably via libperf)

3. Improve existing GUI for profiling performance of traces. It should 
basically be extended to support new metric-collection systems. This 
particular task can be divided into 2:

   a. Signals (counters) selection for retrace

   b. Visualization of metrics.

This is likely to be the most difficult part.



Additional goals (if there is some spare time):

1. Additional GUI features.

2. CLI support for new metric-collection systems.

3. Windows/Mac support.



Approximate schedule:

There will be 14 weeks beginning with May 25.

Week 1-2: Study existing similar solutions (like one from NVIDIA), work 
out a plan for the GUI design and development.

Week 3-4: Write an abstraction system. Implement backends.

Week 5: Rewrite existing GUI in a very simple way to allow testing for 
implemented backends.

Week 6: Mid-term evaluations.

Week 7: Implement signal selection part of the GUI.

Week 8-11: Main GUI development (this one highly depends on the plan 
worked out in the first weeks).

Week 12-13: Test and polish.

Week 14: Final evaluations.



About me:

I am currently studying for my Master Degree in St. Petersburg State 
University (Russia), where I am majoring in Physics. I am looking for a 
chance to be involved in open-source and graphics stack development.


More information about the apitrace mailing list