NVIDIA IndeX API nvidia_logo_transpbg.gif Up
nv::index::IPerformance_values Class Referenceabstract

Interface class to query overall system performance values and statistics. More...

#include <iperformance_values.h>

Inherits mi::base::Interface_declare< 0xa3ed753a, ... >.

Public Member Functions

virtual mi::Uint64 get (const char *type_name, mi::Uint32 host_id=0) const =0
 Returns the value of the given performance counter. More...
 
virtual mi::Float32 get_time (const char *type_name, mi::Uint32 host_id=0) const =0
 Returns the value of the given performance value, interpreted as time in milliseconds. More...
 
virtual mi::Uint32 get_nb_type_names () const =0
 Returns the number of different performance value types. More...
 
virtual const char * get_type_name (mi::Uint32 index) const =0
 Returns the name of the given performance value type. More...
 
virtual mi::Size get_nb_host_ids () const =0
 Returns the size of host id array. More...
 
virtual void get_host_id_array (mi::Uint32 host_id_array[]) const =0
 Returns the host id array. More...
 
virtual IPer_span_statisticsget_per_span_statistics (mi::Uint32 span_id) const =0
 Returns performance statistics for the given horizontal span. More...
 

Static Public Member Functions

static mi::Float32 INVALID_VALUE_FLOAT ()
 Value returned by get_time() when an invalid type was specified. More...
 

Static Public Attributes

static const mi::Uint64 TIME_RESOLUTION = 1000000
 Internal resolution of time values (in 1/milliseconds). More...
 
static const mi::Uint64 INVALID_VALUE = ~0ULL
 Value returned by get() when an invalid type was specified. More...
 

Detailed Description

Interface class to query overall system performance values and statistics.

Member Function Documentation

 get()

virtual mi::Uint64 nv::index::IPerformance_values::get ( const char *  type_name,
mi::Uint32  host_id = 0 
) const
pure virtual

Returns the value of the given performance counter.

The following types of performance counters are available:

  • nb_subcubes_rendered: Number of subcubes that were rendered, i.e., are visible and not empty.
  • size_volume_data_rendered: Size (in bytes) of the volume data accessed during rendering.
  • size_horizon_data_rendered: Size (in bytes) of the heightfield data accessed during rendering.
  • nb_horizon_triangles_rendered: Approximation of the number of horizon triangles rendered.
  • time_rendering_horizon: Time just for rendering the horizon data.
  • time_rendering_volume: Time just for rendering the volume data.
  • time_rendering_volume_and_horizon: Time just for rendering volume and heightfield data (in the same subcube).
  • time_rendering_only: Time just for the basic rendering call without per-subcube initialization (sum of time_rendering_*).
  • time_gpu_upload: Time for uploading data to the GPU (e.g. volume data).
  • time_gpu_download: Time for downloading data from the GPU (e.g. rendering results).
  • time_rendering: Time for rendering the subcubes, with per-subcube initialization.
  • time_rendering_total_sum: Summed-up rendering time of all GPU or CPU threads.
  • size_volume_data_upload: Size (in bytes) of the uploaded volume data.
  • size_rendering_results_download: Size (in bytes) of the downloaded rendering results.
  • size_pinned_host_memory: Size (in bytes) of the allocated page-locked (pinned) host memory.
  • size_unpinned_host_memory: Size (in bytes) of the allocated normal (unpinned) host memory.
  • size_gpu_memory_used: Size (in bytes) of the device memory on the GPUs that is allocated by IndeX.
  • size_gpu_memory_total: Size (in bytes) of the total device memory on the GPUs.
  • size_gpu_memory_available: Size (in bytes) of the available (free) device memory on the GPU.
  • size_system_memory_usage: Size (in bytes) of the allocated system memory (on the host). The approximate value is queried using a system call.
  • size_transfer_compositing: Amount of image data (in bytes) sent to remote hosts for compositing.
  • nb_fragments: Total number of GPUs or number of CPU threads used for rendering.
  • is_using_gpu: Number of GPUs used for rendering, zero for all-CPU rendering.
  • time_total_rendering: Time for the entire rendering, including all initialization.
  • time_total_compositing: Time for compositing the rendering results into the final image.
  • time_total_final_compositing: Time for compositing the final result into the user-defined framebuffer.
  • time_complete_frame: Time for generating a complete frame, includes initialization, rendering and compositing.
  • time_frame_setup: Time for global initialization before rendering is finished.
  • time_frame_finish: Time for global deinitialization after compositing.
  • time_avg_rendering: Average rendering time per GPU or CPU thread.
  • frames_per_second: Rendered frames per second (corresponding to time_complete_frame).
  • nb_horizontal_spans: Number of horizontal spans used.
  • size_zbuffer_transfer: Size of the depth buffer used for application rendering integration.
  • size_zbuffer_transfer_compressed: Size of the compressed depth buffer that is transferred over the network.
  • time_zbuffer_serialize: Time taken for processing the depth buffer, e.g. compression.

The types that have names starting with "time_" as well as the type "frames_per_second" are to be accessed using get_time(), for all other types get() should be used.

Parameters
type_nameName of the performance counter type
host_idIf 0, request globally accumulated values, else return per-host values for the given host id.
Returns
Raw integer value of the performance counter, or INVALID_VALUE if the given type does not exist. For time values you need to multiply the result with TIME_RESOLUTION to get milliseconds (or just call get_time()).

 get_host_id_array()

virtual void nv::index::IPerformance_values::get_host_id_array ( mi::Uint32  host_id_array[]) const
pure virtual

Returns the host id array.

Parameters
[out]host_id_arrayA host id array to be filled by this method. The application must pre-allocate the array before calling this method. The size must be at least the size of the value returned by get_nb_host_ids().

 get_nb_host_ids()

virtual mi::Size nv::index::IPerformance_values::get_nb_host_ids ( ) const
pure virtual

Returns the size of host id array.

Returns
size of the host id array.

 get_nb_type_names()

virtual mi::Uint32 nv::index::IPerformance_values::get_nb_type_names ( ) const
pure virtual

Returns the number of different performance value types.

Returns
number of performance value types

 get_per_span_statistics()

virtual IPer_span_statistics * nv::index::IPerformance_values::get_per_span_statistics ( mi::Uint32  span_id) const
pure virtual

Returns performance statistics for the given horizontal span.

The range of span_id is [0, nb_horizontal_spans], where nb_horizontal_spans can be accessed with the get() method.

Parameters
[in]span_idThe requested span id.
Returns
per span statistics object associated with the span_id, or 0 when span_id is invalid.

 get_time()

virtual mi::Float32 nv::index::IPerformance_values::get_time ( const char *  type_name,
mi::Uint32  host_id = 0 
) const
pure virtual

Returns the value of the given performance value, interpreted as time in milliseconds.

See get() for a description of the supported performance counter types.

Parameters
type_nameName of the performance counter type
host_idIf 0, request globally accumulated values, else return per-host values for the given host id.
Returns
milliseconds of the given performance counter, or INVALID_VALUE_FLOAT if the given type does not exist

 get_type_name()

virtual const char * nv::index::IPerformance_values::get_type_name ( mi::Uint32  index) const
pure virtual

Returns the name of the given performance value type.

Parameters
indexSpecifies the type
Returns
name of the specified type, or 0 for invalid index

 INVALID_VALUE_FLOAT()

static mi::Float32 nv::index::IPerformance_values::INVALID_VALUE_FLOAT ( )
inlinestatic

Value returned by get_time() when an invalid type was specified.

Returns
invalid time value

Member Data Documentation

 INVALID_VALUE

const mi::Uint64 nv::index::IPerformance_values::INVALID_VALUE = ~0ULL
static

Value returned by get() when an invalid type was specified.

 TIME_RESOLUTION

const mi::Uint64 nv::index::IPerformance_values::TIME_RESOLUTION = 1000000
static

Internal resolution of time values (in 1/milliseconds).


The documentation for this class was generated from the following file: