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