"Fossies" - the Fresh Open Source Software Archive

Member "mesa-20.1.8/src/gallium/drivers/iris/iris_monitor.h" (16 Sep 2020, 2578 Bytes) of package /linux/misc/mesa-20.1.8.tar.xz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "iris_monitor.h" see the Fossies "Dox" file reference documentation and the last Fossies "Diffs" side-by-side code changes report: 20.1.5_vs_20.2.0-rc1.

    1 /*
    2  * Copyright © 2019 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 shall be included
   12  * in all copies or substantial portions of the Software.
   13  *
   14  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
   15  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   16  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
   17  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   18  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
   19  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
   20  * DEALINGS IN THE SOFTWARE.
   21  */
   22 
   23 #ifndef IRIS_MONITOR_H
   24 #define IRIS_MONITOR_H
   25 
   26 #include "pipe/p_screen.h"
   27 
   28 struct iris_monitor_counter {
   29    int group;
   30    int counter;
   31 };
   32 
   33 struct iris_monitor_config {
   34    struct gen_perf_config *perf_cfg;
   35 
   36    /* gallium requires an index for each counter */
   37    int num_counters;
   38    struct iris_monitor_counter *counters;
   39 };
   40 
   41 int iris_get_monitor_info(struct pipe_screen *pscreen, unsigned index,
   42                           struct pipe_driver_query_info *info);
   43 int iris_get_monitor_group_info(struct pipe_screen *pscreen,
   44                                 unsigned index,
   45                                 struct pipe_driver_query_group_info *info);
   46 
   47 struct iris_context;
   48 struct iris_screen;
   49 
   50 struct iris_monitor_object *
   51 iris_create_monitor_object(struct iris_context *ice,
   52                            unsigned num_queries,
   53                            unsigned *query_types);
   54 
   55 struct pipe_query;
   56 void iris_destroy_monitor_object(struct pipe_context *ctx,
   57                                  struct iris_monitor_object *monitor);
   58 
   59 bool
   60 iris_begin_monitor(struct pipe_context *ctx,
   61                    struct iris_monitor_object *monitor);
   62 bool
   63 iris_end_monitor(struct pipe_context *ctx,
   64                  struct iris_monitor_object *monitor);
   65 
   66 bool
   67 iris_get_monitor_result(struct pipe_context *ctx,
   68                         struct iris_monitor_object *monitor,
   69                         bool wait,
   70                         union pipe_numeric_type_union *result);
   71 
   72 #endif