nvc0: allocate more space before a counter is configured

On nvc0, a counter can up to 6 sources instead of only one
for nve4+. This fixes a crash when a counter uses more than
one source.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
gallium: add pipe_context::get_driver_query_group_info

This will be used to sort counters per group for
GL_AMD_performance_monitor.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
gallium: add a group_id field to pipe_driver_query_info

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
nvc0: use of pipe_driver_query_info::group_id

This adds two groups of queries.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
nvc0: implement pipe_context::get_driver_query_group_info

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
gallium/nvc0: Use an union to store different numeric type for queries

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
gallium: Add more counter type to pipe_driver_query_info

This will be used by GL_AMD_performance_monitor.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
nvc0: Use of new counter types

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
gallium: Add a f32 field to pipe_query_result

This will be used for the GL_FLOAT counter type of
AMD_performance_monitor.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
mesa/st: enable GL_AMD_performance_monitor

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
mesa/st: implement GL_AMD_performance_monitor

This is based on the original patch of Christoph Bumiller.
(source: http://people.freedesktop.org/~chrisbmr/perfmon.diff)

V2: (Samuel Pitoiset)
 - Fix compilation
 - Improve the original code
 - Rewrite some parts of the original code

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>