nvperfapi_activity.h

Go to the documentation of this file.
00001 #ifndef NVPERFAPI_ACTIVITY_H
00002 #define NVPERFAPI_ACTIVITY_H
00003 
00004 /*
00005  * Copyright 2014-2017  NVIDIA Corporation.  All rights reserved.
00006  *
00007  * NOTICE TO USER:
00008  *
00009  * This source code is subject to NVIDIA ownership rights under U.S. and
00010  * international Copyright laws.
00011  *
00012  * This software and the information contained herein is PROPRIETARY and
00013  * CONFIDENTIAL to NVIDIA and is being provided under the terms and conditions
00014  * of a form of NVIDIA software license agreement.
00015  *
00016  * NVIDIA MAKES NO REPRESENTATION ABOUT THE SUITABILITY OF THIS SOURCE
00017  * CODE FOR ANY PURPOSE.  IT IS PROVIDED "AS IS" WITHOUT EXPRESS OR
00018  * IMPLIED WARRANTY OF ANY KIND.  NVIDIA DISCLAIMS ALL WARRANTIES WITH
00019  * REGARD TO THIS SOURCE CODE, INCLUDING ALL IMPLIED WARRANTIES OF
00020  * MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE.
00021  * IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL,
00022  * OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
00023  * OF USE, DATA OR PROFITS,  WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
00024  * OR OTHER TORTIOUS ACTION,  ARISING OUT OF OR IN CONNECTION WITH THE USE
00025  * OR PERFORMANCE OF THIS SOURCE CODE.
00026  *
00027  * U.S. Government End Users.   This source code is a "commercial item" as
00028  * that term is defined at  48 C.F.R. 2.101 (OCT 1995), consisting  of
00029  * "commercial computer  software"  and "commercial computer software
00030  * documentation" as such terms are  used in 48 C.F.R. 12.212 (SEPT 1995)
00031  * and is provided to the U.S. Government only as a commercial end item.
00032  * Consistent with 48 C.F.R.12.212 and 48 C.F.R. 227.7202-1 through
00033  * 227.7202-4 (JUNE 1995), all U.S. Government End Users acquire the
00034  * source code with only those rights set forth herein.
00035  *
00036  * Any use of this source code in individual and commercial software must
00037  * include, in the user documentation and internal comments to the code,
00038  * the above Disclaimer and U.S. Government End Users Notice.
00039  */
00040 
00041 #include "nvperfapi_common_types.h"
00042 
00043 
00044 #if defined(__GNUC__) && defined(NVPA_SHARED_LIB)
00045     #pragma GCC visibility push(default)
00046 #endif
00047 
00048 #ifdef __cplusplus
00049 extern "C" {
00050 #endif
00051 
00052 
00058 /***************************************************************************/
00068 struct NVPA_MetricOptions;
00069 
00073 NVPA_Status NVPA_MetricOptions_Create(
00074     NVPA_MetricOptions** ppMetricOptions
00075 );
00076 
00078 NVPA_Status NVPA_MetricOptions_Destroy(
00079     NVPA_MetricOptions* pMetricOptions
00080 );
00081 
00086 NVPA_Status NVPA_MetricOptions_SetSerialized(
00087     NVPA_MetricOptions* pMetricOptions,
00088     NVPA_Bool value
00089 );
00090 
00096 /***************************************************************************/
00106 struct NVPA_ActivityOptions;
00107 
00112 NVPA_Status NVPA_ActivityOptions_Create(
00113     NVPA_ActivityOptions** ppActivityOptions
00114 );
00115 
00118 NVPA_Status NVPA_ActivityOptions_Destroy(
00119     NVPA_ActivityOptions* pActivityOptions
00120 );
00121 
00126 NVPA_Status NVPA_ActivityOptions_SetActivityKind(
00127     NVPA_ActivityOptions* pActivityOptions,
00128     NVPA_ActivityKind activityKind
00129 );
00130 
00138 NVPA_Status NVPA_ActivityOptions_SetMaxPassCount(
00139     NVPA_ActivityOptions* pActivityOptions,
00140     size_t maxPassCount
00141 );
00142 
00153 NVPA_Status NVPA_ActivityOptions_IsolateCountersByWorkType(
00154     NVPA_ActivityOptions* pActivityOptions,
00155     NVPA_Bool value
00156 );
00157 
00163 /***************************************************************************/
00174 struct NVPA_Activity;
00175 
00184 NVPA_Status NVPA_Activity_CreateForDevice(
00185     size_t deviceIndex,
00186     const NVPA_ActivityOptions* pActivityOptions,
00187     NVPA_Activity** ppActivity
00188 );
00189 
00198 NVPA_Status NVPA_Activity_CreateForVirtualDevice(
00199     const char* pChipName,
00200     const NVPA_ActivityOptions* pActivityOptions,
00201     NVPA_Activity** ppActivity
00202 );
00203 
00206 NVPA_Status NVPA_Activity_Destroy(
00207     NVPA_Activity* pActivity
00208 );
00209 
00214 NVPA_Status NVPA_Activity_GetNumMetrics(
00215     const NVPA_Activity* pActivity,
00216     size_t* pNumMetrics
00217 );
00218 
00226 NVPA_Status NVPA_Activity_GetMetricIds(
00227     const NVPA_Activity* pActivity,
00228     size_t numMetricIds,
00229     NVPA_MetricId* pMetricIds,
00230     size_t* pNumMetricIds
00231 );
00232 
00238 NVPA_Status NVPA_Activity_FindMetricByName(
00239     const NVPA_Activity* pActivity,
00240     const char* pMetricName,
00241     NVPA_MetricId* pMetricId
00242 );
00243 
00255 NVPA_Status NVPA_Activity_FindMetricsByTags(
00256     const NVPA_Activity* pActivity,
00257     size_t numTags,
00258     const char** ppTags,
00259     size_t numMetricIds,
00260     NVPA_MetricId* pMetricIds,
00261     size_t* pNumMetricIds
00262 );
00263 
00282 NVPA_Status NVPA_Activity_EnableMetric(
00283     NVPA_Activity* pActivity,
00284     NVPA_MetricId metricId,
00285     const NVPA_MetricOptions* pMetricOptions,
00286     NVPA_MetricEnableError* pReason
00287 );
00288 
00307 NVPA_Status NVPA_Activity_CanEnableMetric(
00308     const NVPA_Activity* pActivity,
00309     NVPA_MetricId metricId,
00310     const NVPA_MetricOptions* pMetricOptions,
00311     NVPA_MetricEnableError* pReason
00312 );
00313 
00316 NVPA_Status NVPA_Activity_GetNumEnabledMetrics(
00317     const NVPA_Activity* pActivity,
00318     size_t* pNumEnabledMetrics
00319 );
00320 
00328 NVPA_Status NVPA_Activity_GetEnabledMetricIds(
00329     const NVPA_Activity* pActivity,
00330     size_t numMetricIds,
00331     NVPA_MetricId* pMetricIds,
00332     size_t* pNumMetricIds
00333 );
00334 
00342 NVPA_Status NVPA_Activity_GetMetricSerializedCaps(
00343     const NVPA_Activity* pActivity,
00344     NVPA_MetricId metricId,
00345     NVPA_Bool* pSerialized,
00346     NVPA_Bool* pPipelined
00347 );
00348 
00358 NVPA_Status NVPA_Activity_GetEnabledMetricsSerialized(
00359     const NVPA_Activity* pActivity,
00360     size_t numSerialized,
00361     NVPA_Bool* pSerialized,
00362     size_t* pNumSerialized
00363 );
00364 
00374 NVPA_Status NVPA_Activity_GetNumRequiredPasses(
00375     const NVPA_Activity* pActivity,
00376     size_t* pNumPipelinedPasses,
00377     size_t* pNumSerializedPasses
00378 );
00379 
00393 NVPA_Status NVPA_Activity_SetMaxNestedRanges(
00394     NVPA_Activity* pActivity,
00395     uint32_t maxNestedRanges
00396 );
00397 
00412 NVPA_Status NVPA_Activity_LimitMaxNestedRangesToObserved(
00413     NVPA_Activity* pActivity,
00414     NVPA_Bool limitToObserved
00415 );
00416 
00427 NVPA_Status NVPA_Activity_SetAutoRangesDraw(
00428     NVPA_Activity* pActivity,
00429     NVPA_Bool enable
00430 );
00431 
00442 NVPA_Status NVPA_Activity_SetAutoRangesDispatch(
00443     NVPA_Activity* pActivity,
00444     NVPA_Bool enable
00445 );
00446 
00447 
00453 /***************************************************************************/
00470 NVPA_Status NVPA_GetMetricNames(
00471     size_t numMetricIds,
00472     const NVPA_MetricId* pMetricIds,
00473     const char** ppMetricNames
00474 );
00475 
00488 NVPA_Status NVPA_GetMetricDescriptions(
00489     size_t numMetricIds,
00490     const NVPA_MetricId* pMetricIds,
00491     const char** ppDescriptions
00492 );
00493 
00506 NVPA_Status NVPA_GetMetricTags(
00507     NVPA_MetricId metricId,
00508     size_t numTags,
00509     const char** ppTags,
00510     size_t* pNumTags
00511 );
00512 
00522 NVPA_Status NVPA_GetNumAllMetricTags(
00523     size_t* pNumTags
00524 );
00525 
00537 NVPA_Status NVPA_GetAllMetricTags(
00538     size_t numTags,
00539     const char** ppTags,
00540     size_t* pNumTags
00541 );
00542 
00548 #ifdef __cplusplus
00549 } /* extern "C" */
00550 #endif
00551 
00552 #if defined(__GNUC__) && defined(NVPA_SHARED_LIB)
00553     #pragma GCC visibility pop
00554 #endif
00555 
00556 
00557 #endif /* NVPERFAPI_ACTIVITY_H */

NVIDIA(R) PerfWorks SDK Documentation (c) 2015-2016. NVIDIA Corporation. All Rights Reserved.