Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. /*
  2.  * Copyright © 2012 Intel Corporation
  3.  *
  4.  * Permission is hereby granted, free of charge, to any person obtaining a
  5.  * copy of this software and associated documentation files (the "Software"),
  6.  * to deal in the Software without restriction, including without limitation
  7.  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
  8.  * and/or sell copies of the Software, and to permit persons to whom the
  9.  * Software is furnished to do so, subject to the following conditions:
  10.  *
  11.  * The above copyright notice and this permission notice (including the next
  12.  * paragraph) shall be included in all copies or substantial portions of the
  13.  * Software.
  14.  *
  15.  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  16.  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  17.  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
  18.  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  19.  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  20.  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
  21.  * DEALINGS IN THE SOFTWARE.
  22.  */
  23.  
  24. /**
  25.  * \file performance_monitor.h
  26.  * Core Mesa support for the AMD_performance_monitor extension and the
  27.  * INTEL_performance_query extension.
  28.  */
  29.  
  30. #pragma once
  31. #ifndef PERFORMANCE_MONITOR_H
  32. #define PERFORMANCE_MONITOR_H
  33.  
  34. #include "glheader.h"
  35.  
  36. extern void
  37. _mesa_init_performance_monitors(struct gl_context *ctx);
  38.  
  39. extern void
  40. _mesa_free_performance_monitors(struct gl_context *ctx);
  41.  
  42. extern void GLAPIENTRY
  43. _mesa_GetPerfMonitorGroupsAMD(GLint *numGroups, GLsizei groupsSize,
  44.                               GLuint *groups);
  45.  
  46. extern void GLAPIENTRY
  47. _mesa_GetPerfMonitorCountersAMD(GLuint group, GLint *numCounters,
  48.                                 GLint *maxActiveCounters,
  49.                                 GLsizei countersSize, GLuint *counters);
  50.  
  51. extern void GLAPIENTRY
  52. _mesa_GetPerfMonitorGroupStringAMD(GLuint group, GLsizei bufSize,
  53.                                    GLsizei *length, GLchar *groupString);
  54.  
  55. extern void GLAPIENTRY
  56. _mesa_GetPerfMonitorCounterStringAMD(GLuint group, GLuint counter,
  57.                                      GLsizei bufSize, GLsizei *length,
  58.                                      GLchar *counterString);
  59.  
  60. extern void GLAPIENTRY
  61. _mesa_GetPerfMonitorCounterInfoAMD(GLuint group, GLuint counter, GLenum pname,
  62.                                    GLvoid *data);
  63.  
  64. extern void GLAPIENTRY
  65. _mesa_GenPerfMonitorsAMD(GLsizei n, GLuint *monitors);
  66.  
  67. extern void GLAPIENTRY
  68. _mesa_DeletePerfMonitorsAMD(GLsizei n, GLuint *monitors);
  69.  
  70. extern void GLAPIENTRY
  71. _mesa_SelectPerfMonitorCountersAMD(GLuint monitor, GLboolean enable,
  72.                                    GLuint group, GLint numCounters,
  73.                                    GLuint *counterList);
  74.  
  75. extern void GLAPIENTRY
  76. _mesa_BeginPerfMonitorAMD(GLuint monitor);
  77.  
  78. extern void GLAPIENTRY
  79. _mesa_EndPerfMonitorAMD(GLuint monitor);
  80.  
  81. extern void GLAPIENTRY
  82. _mesa_GetPerfMonitorCounterDataAMD(GLuint monitor, GLenum pname,
  83.                                    GLsizei dataSize, GLuint *data,
  84.                                    GLint *bytesWritten);
  85.  
  86. unsigned
  87. _mesa_perf_monitor_counter_size(const struct gl_perf_monitor_counter *);
  88.  
  89.  
  90. extern void GLAPIENTRY
  91. _mesa_GetFirstPerfQueryIdINTEL(GLuint *queryId);
  92.  
  93. extern void GLAPIENTRY
  94. _mesa_GetNextPerfQueryIdINTEL(GLuint queryId, GLuint *nextQueryId);
  95.  
  96. extern void GLAPIENTRY
  97. _mesa_GetPerfQueryIdByNameINTEL(char *queryName, GLuint *queryId);
  98.  
  99. extern void GLAPIENTRY
  100. _mesa_GetPerfQueryInfoINTEL(GLuint queryId,
  101.                             GLuint queryNameLength, char *queryName,
  102.                             GLuint *dataSize, GLuint *noCounters,
  103.                             GLuint *noActiveInstances,
  104.                             GLuint *capsMask);
  105.  
  106. extern void GLAPIENTRY
  107. _mesa_GetPerfCounterInfoINTEL(GLuint queryId, GLuint counterId,
  108.                               GLuint counterNameLength, char *counterName,
  109.                               GLuint counterDescLength, char *counterDesc,
  110.                               GLuint *counterOffset, GLuint *counterDataSize, GLuint *counterTypeEnum,
  111.                               GLuint *counterDataTypeEnum, GLuint64 *rawCounterMaxValue);
  112.  
  113. extern void GLAPIENTRY
  114. _mesa_CreatePerfQueryINTEL(GLuint queryId, GLuint *queryHandle);
  115.  
  116. extern void GLAPIENTRY
  117. _mesa_DeletePerfQueryINTEL(GLuint queryHandle);
  118.  
  119. extern void GLAPIENTRY
  120. _mesa_BeginPerfQueryINTEL(GLuint queryHandle);
  121.  
  122. extern void GLAPIENTRY
  123. _mesa_EndPerfQueryINTEL(GLuint queryHandle);
  124.  
  125. extern void GLAPIENTRY
  126. _mesa_GetPerfQueryDataINTEL(GLuint queryHandle, GLuint flags,
  127.                             GLsizei dataSize, void *data, GLuint *bytesWritten);
  128.  
  129. #endif
  130.