jdk/src/java.desktop/share/classes/sun/java2d/marlin/RendererStats.java
author lbourges
Wed, 23 Mar 2016 21:20:25 +0100
changeset 36902 bb30d89aa00e
parent 34801 a7740dae1f3a
child 39519 21bfc4452441
permissions -rw-r--r--
8144938: Handle properly coordinate overflow in Marlin Renderer Summary: skip point coordinates with NaN/Infinity values Reviewed-by: flar, prr
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
34417
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
     1
/*
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
     2
 * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
     4
 *
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
     7
 * published by the Free Software Foundation.  Oracle designates this
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
     8
 * particular file as subject to the "Classpath" exception as provided
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
     9
 * by Oracle in the LICENSE file that accompanied this code.
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    10
 *
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    11
 * This code is distributed in the hope that it will be useful, but WITHOUT
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    12
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    13
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    14
 * version 2 for more details (a copy is included in the LICENSE file that
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    15
 * accompanied this code).
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    16
 *
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    17
 * You should have received a copy of the GNU General Public License version
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    18
 * 2 along with this work; if not, write to the Free Software Foundation,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    19
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    20
 *
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    21
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    22
 * or visit www.oracle.com if you need additional information or have any
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    23
 * questions.
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    24
 */
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    25
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    26
package sun.java2d.marlin;
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    27
34801
a7740dae1f3a 8144630: Use PrivilegedAction to create Thread in Marlin RendererStats
lbourges
parents: 34417
diff changeset
    28
import java.security.AccessController;
a7740dae1f3a 8144630: Use PrivilegedAction to create Thread in Marlin RendererStats
lbourges
parents: 34417
diff changeset
    29
import java.security.PrivilegedAction;
34417
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    30
import java.util.Timer;
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    31
import java.util.TimerTask;
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    32
import java.util.concurrent.ConcurrentLinkedQueue;
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    33
import static sun.java2d.marlin.MarlinUtils.logInfo;
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    34
import sun.java2d.marlin.stats.Histogram;
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    35
import sun.java2d.marlin.stats.Monitor;
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    36
import sun.java2d.marlin.stats.StatLong;
34801
a7740dae1f3a 8144630: Use PrivilegedAction to create Thread in Marlin RendererStats
lbourges
parents: 34417
diff changeset
    37
import sun.awt.util.ThreadGroupUtils;
34417
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    38
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    39
/**
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    40
 * This class gathers global rendering statistics for debugging purposes only
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    41
 */
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    42
public final class RendererStats implements MarlinConst {
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    43
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    44
    // singleton
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    45
    private static volatile RendererStats singleton = null;
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    46
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    47
    static RendererStats getInstance() {
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    48
        if (singleton == null) {
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    49
            singleton = new RendererStats();
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    50
        }
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    51
        return singleton;
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    52
    }
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    53
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    54
    public static void dumpStats() {
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    55
        if (singleton != null) {
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    56
            singleton.dump();
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    57
        }
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    58
    }
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    59
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    60
    /* RendererContext collection as hard references
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    61
       (only used for debugging purposes) */
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    62
    final ConcurrentLinkedQueue<RendererContext> allContexts
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    63
        = new ConcurrentLinkedQueue<RendererContext>();
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    64
    // stats
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    65
    final StatLong stat_cache_rowAA
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    66
        = new StatLong("cache.rowAA");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    67
    final StatLong stat_cache_rowAAChunk
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    68
        = new StatLong("cache.rowAAChunk");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    69
    final StatLong stat_cache_tiles
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    70
        = new StatLong("cache.tiles");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    71
    final StatLong stat_rdr_poly_stack_curves
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    72
        = new StatLong("renderer.poly.stack.curves");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    73
    final StatLong stat_rdr_poly_stack_types
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    74
        = new StatLong("renderer.poly.stack.types");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    75
    final StatLong stat_rdr_addLine
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    76
        = new StatLong("renderer.addLine");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    77
    final StatLong stat_rdr_addLine_skip
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    78
        = new StatLong("renderer.addLine.skip");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    79
    final StatLong stat_rdr_curveBreak
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    80
        = new StatLong("renderer.curveBreakIntoLinesAndAdd");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    81
    final StatLong stat_rdr_curveBreak_dec
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    82
        = new StatLong("renderer.curveBreakIntoLinesAndAdd.dec");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    83
    final StatLong stat_rdr_curveBreak_inc
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    84
        = new StatLong("renderer.curveBreakIntoLinesAndAdd.inc");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    85
    final StatLong stat_rdr_quadBreak
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    86
        = new StatLong("renderer.quadBreakIntoLinesAndAdd");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    87
    final StatLong stat_rdr_quadBreak_dec
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    88
        = new StatLong("renderer.quadBreakIntoLinesAndAdd.dec");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    89
    final StatLong stat_rdr_edges
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    90
        = new StatLong("renderer.edges");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    91
    final StatLong stat_rdr_edges_count
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    92
        = new StatLong("renderer.edges.count");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    93
    final StatLong stat_rdr_edges_resizes
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    94
        = new StatLong("renderer.edges.resize");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    95
    final StatLong stat_rdr_activeEdges
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    96
        = new StatLong("renderer.activeEdges");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    97
    final StatLong stat_rdr_activeEdges_updates
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    98
        = new StatLong("renderer.activeEdges.updates");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
    99
    final StatLong stat_rdr_activeEdges_adds
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   100
        = new StatLong("renderer.activeEdges.adds");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   101
    final StatLong stat_rdr_activeEdges_adds_high
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   102
        = new StatLong("renderer.activeEdges.adds_high");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   103
    final StatLong stat_rdr_crossings_updates
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   104
        = new StatLong("renderer.crossings.updates");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   105
    final StatLong stat_rdr_crossings_sorts
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   106
        = new StatLong("renderer.crossings.sorts");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   107
    final StatLong stat_rdr_crossings_bsearch
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   108
        = new StatLong("renderer.crossings.bsearch");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   109
    final StatLong stat_rdr_crossings_msorts
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   110
        = new StatLong("renderer.crossings.msorts");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   111
    // growable arrays
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   112
    final StatLong stat_array_dasher_dasher
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   113
        = new StatLong("array.dasher.dasher.d_float");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   114
    final StatLong stat_array_dasher_firstSegmentsBuffer
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   115
        = new StatLong("array.dasher.firstSegmentsBuffer.d_float");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   116
    final StatLong stat_array_stroker_polystack_curves
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   117
        = new StatLong("array.stroker.polystack.curves.d_float");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   118
    final StatLong stat_array_stroker_polystack_curveTypes
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   119
        = new StatLong("array.stroker.polystack.curveTypes.d_byte");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   120
    final StatLong stat_array_marlincache_rowAAChunk
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   121
        = new StatLong("array.marlincache.rowAAChunk.d_byte");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   122
    final StatLong stat_array_marlincache_touchedTile
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   123
        = new StatLong("array.marlincache.touchedTile.int");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   124
    final StatLong stat_array_renderer_alphaline
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   125
        = new StatLong("array.renderer.alphaline.int");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   126
    final StatLong stat_array_renderer_crossings
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   127
        = new StatLong("array.renderer.crossings.int");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   128
    final StatLong stat_array_renderer_aux_crossings
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   129
        = new StatLong("array.renderer.aux_crossings.int");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   130
    final StatLong stat_array_renderer_edgeBuckets
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   131
        = new StatLong("array.renderer.edgeBuckets.int");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   132
    final StatLong stat_array_renderer_edgeBucketCounts
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   133
        = new StatLong("array.renderer.edgeBucketCounts.int");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   134
    final StatLong stat_array_renderer_edgePtrs
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   135
        = new StatLong("array.renderer.edgePtrs.int");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   136
    final StatLong stat_array_renderer_aux_edgePtrs
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   137
        = new StatLong("array.renderer.aux_edgePtrs.int");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   138
    // histograms
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   139
    final Histogram hist_rdr_crossings
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   140
        = new Histogram("renderer.crossings");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   141
    final Histogram hist_rdr_crossings_ratio
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   142
        = new Histogram("renderer.crossings.ratio");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   143
    final Histogram hist_rdr_crossings_adds
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   144
        = new Histogram("renderer.crossings.adds");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   145
    final Histogram hist_rdr_crossings_msorts
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   146
        = new Histogram("renderer.crossings.msorts");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   147
    final Histogram hist_rdr_crossings_msorts_adds
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   148
        = new Histogram("renderer.crossings.msorts.adds");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   149
    final Histogram hist_tile_generator_alpha
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   150
        = new Histogram("tile_generator.alpha");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   151
    final Histogram hist_tile_generator_encoding
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   152
        = new Histogram("tile_generator.encoding");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   153
    final Histogram hist_tile_generator_encoding_dist
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   154
        = new Histogram("tile_generator.encoding.dist");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   155
    final Histogram hist_tile_generator_encoding_ratio
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   156
        = new Histogram("tile_generator.encoding.ratio");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   157
    final Histogram hist_tile_generator_encoding_runLen
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   158
        = new Histogram("tile_generator.encoding.runLen");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   159
    // all stats
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   160
    final StatLong[] statistics = new StatLong[]{
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   161
        stat_cache_rowAA,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   162
        stat_cache_rowAAChunk,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   163
        stat_cache_tiles,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   164
        stat_rdr_poly_stack_types,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   165
        stat_rdr_poly_stack_curves,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   166
        stat_rdr_addLine,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   167
        stat_rdr_addLine_skip,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   168
        stat_rdr_curveBreak,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   169
        stat_rdr_curveBreak_dec,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   170
        stat_rdr_curveBreak_inc,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   171
        stat_rdr_quadBreak,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   172
        stat_rdr_quadBreak_dec,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   173
        stat_rdr_edges,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   174
        stat_rdr_edges_count,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   175
        stat_rdr_edges_resizes,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   176
        stat_rdr_activeEdges,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   177
        stat_rdr_activeEdges_updates,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   178
        stat_rdr_activeEdges_adds,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   179
        stat_rdr_activeEdges_adds_high,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   180
        stat_rdr_crossings_updates,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   181
        stat_rdr_crossings_sorts,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   182
        stat_rdr_crossings_bsearch,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   183
        stat_rdr_crossings_msorts,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   184
        hist_rdr_crossings,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   185
        hist_rdr_crossings_ratio,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   186
        hist_rdr_crossings_adds,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   187
        hist_rdr_crossings_msorts,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   188
        hist_rdr_crossings_msorts_adds,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   189
        hist_tile_generator_alpha,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   190
        hist_tile_generator_encoding,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   191
        hist_tile_generator_encoding_dist,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   192
        hist_tile_generator_encoding_ratio,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   193
        hist_tile_generator_encoding_runLen,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   194
        stat_array_dasher_dasher,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   195
        stat_array_dasher_firstSegmentsBuffer,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   196
        stat_array_stroker_polystack_curves,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   197
        stat_array_stroker_polystack_curveTypes,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   198
        stat_array_marlincache_rowAAChunk,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   199
        stat_array_marlincache_touchedTile,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   200
        stat_array_renderer_alphaline,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   201
        stat_array_renderer_crossings,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   202
        stat_array_renderer_aux_crossings,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   203
        stat_array_renderer_edgeBuckets,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   204
        stat_array_renderer_edgeBucketCounts,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   205
        stat_array_renderer_edgePtrs,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   206
        stat_array_renderer_aux_edgePtrs
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   207
    };
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   208
    // monitors
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   209
    final Monitor mon_pre_getAATileGenerator
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   210
        = new Monitor("MarlinRenderingEngine.getAATileGenerator()");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   211
    final Monitor mon_npi_currentSegment
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   212
        = new Monitor("NormalizingPathIterator.currentSegment()");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   213
    final Monitor mon_rdr_addLine
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   214
        = new Monitor("Renderer.addLine()");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   215
    final Monitor mon_rdr_endRendering
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   216
        = new Monitor("Renderer.endRendering()");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   217
    final Monitor mon_rdr_endRendering_Y
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   218
        = new Monitor("Renderer._endRendering(Y)");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   219
    final Monitor mon_rdr_copyAARow
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   220
        = new Monitor("Renderer.copyAARow()");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   221
    final Monitor mon_pipe_renderTiles
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   222
        = new Monitor("AAShapePipe.renderTiles()");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   223
    final Monitor mon_ptg_getAlpha
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   224
        = new Monitor("MarlinTileGenerator.getAlpha()");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   225
    final Monitor mon_debug
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   226
        = new Monitor("DEBUG()");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   227
    // all monitors
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   228
    final Monitor[] monitors = new Monitor[]{
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   229
        mon_pre_getAATileGenerator,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   230
        mon_npi_currentSegment,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   231
        mon_rdr_addLine,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   232
        mon_rdr_endRendering,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   233
        mon_rdr_endRendering_Y,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   234
        mon_rdr_copyAARow,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   235
        mon_pipe_renderTiles,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   236
        mon_ptg_getAlpha,
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   237
        mon_debug
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   238
    };
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   239
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   240
    private RendererStats() {
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   241
        super();
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   242
34801
a7740dae1f3a 8144630: Use PrivilegedAction to create Thread in Marlin RendererStats
lbourges
parents: 34417
diff changeset
   243
        AccessController.doPrivileged(
a7740dae1f3a 8144630: Use PrivilegedAction to create Thread in Marlin RendererStats
lbourges
parents: 34417
diff changeset
   244
            (PrivilegedAction<Void>) () -> {
a7740dae1f3a 8144630: Use PrivilegedAction to create Thread in Marlin RendererStats
lbourges
parents: 34417
diff changeset
   245
                final Thread hook = new Thread(
a7740dae1f3a 8144630: Use PrivilegedAction to create Thread in Marlin RendererStats
lbourges
parents: 34417
diff changeset
   246
                    ThreadGroupUtils.getRootThreadGroup(),
a7740dae1f3a 8144630: Use PrivilegedAction to create Thread in Marlin RendererStats
lbourges
parents: 34417
diff changeset
   247
                    new Runnable() {
a7740dae1f3a 8144630: Use PrivilegedAction to create Thread in Marlin RendererStats
lbourges
parents: 34417
diff changeset
   248
                        @Override
a7740dae1f3a 8144630: Use PrivilegedAction to create Thread in Marlin RendererStats
lbourges
parents: 34417
diff changeset
   249
                        public void run() {
a7740dae1f3a 8144630: Use PrivilegedAction to create Thread in Marlin RendererStats
lbourges
parents: 34417
diff changeset
   250
                            dump();
a7740dae1f3a 8144630: Use PrivilegedAction to create Thread in Marlin RendererStats
lbourges
parents: 34417
diff changeset
   251
                        }
a7740dae1f3a 8144630: Use PrivilegedAction to create Thread in Marlin RendererStats
lbourges
parents: 34417
diff changeset
   252
                    },
a7740dae1f3a 8144630: Use PrivilegedAction to create Thread in Marlin RendererStats
lbourges
parents: 34417
diff changeset
   253
                    "MarlinStatsHook"
a7740dae1f3a 8144630: Use PrivilegedAction to create Thread in Marlin RendererStats
lbourges
parents: 34417
diff changeset
   254
                );
a7740dae1f3a 8144630: Use PrivilegedAction to create Thread in Marlin RendererStats
lbourges
parents: 34417
diff changeset
   255
                hook.setContextClassLoader(null);
a7740dae1f3a 8144630: Use PrivilegedAction to create Thread in Marlin RendererStats
lbourges
parents: 34417
diff changeset
   256
                Runtime.getRuntime().addShutdownHook(hook);
34417
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   257
34801
a7740dae1f3a 8144630: Use PrivilegedAction to create Thread in Marlin RendererStats
lbourges
parents: 34417
diff changeset
   258
                if (useDumpThread) {
a7740dae1f3a 8144630: Use PrivilegedAction to create Thread in Marlin RendererStats
lbourges
parents: 34417
diff changeset
   259
                    final Timer statTimer = new Timer("RendererStats");
a7740dae1f3a 8144630: Use PrivilegedAction to create Thread in Marlin RendererStats
lbourges
parents: 34417
diff changeset
   260
                    statTimer.scheduleAtFixedRate(new TimerTask() {
a7740dae1f3a 8144630: Use PrivilegedAction to create Thread in Marlin RendererStats
lbourges
parents: 34417
diff changeset
   261
                        @Override
a7740dae1f3a 8144630: Use PrivilegedAction to create Thread in Marlin RendererStats
lbourges
parents: 34417
diff changeset
   262
                        public void run() {
a7740dae1f3a 8144630: Use PrivilegedAction to create Thread in Marlin RendererStats
lbourges
parents: 34417
diff changeset
   263
                            dump();
a7740dae1f3a 8144630: Use PrivilegedAction to create Thread in Marlin RendererStats
lbourges
parents: 34417
diff changeset
   264
                        }
a7740dae1f3a 8144630: Use PrivilegedAction to create Thread in Marlin RendererStats
lbourges
parents: 34417
diff changeset
   265
                    }, statDump, statDump);
34417
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   266
                }
34801
a7740dae1f3a 8144630: Use PrivilegedAction to create Thread in Marlin RendererStats
lbourges
parents: 34417
diff changeset
   267
                return null;
a7740dae1f3a 8144630: Use PrivilegedAction to create Thread in Marlin RendererStats
lbourges
parents: 34417
diff changeset
   268
            }
a7740dae1f3a 8144630: Use PrivilegedAction to create Thread in Marlin RendererStats
lbourges
parents: 34417
diff changeset
   269
        );
34417
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   270
    }
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   271
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   272
    void dump() {
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   273
        if (doStats) {
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   274
            ArrayCache.dumpStats();
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   275
        }
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   276
        final RendererContext[] all = allContexts.toArray(
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   277
                                          new RendererContext[allContexts.size()]);
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   278
        for (RendererContext rdrCtx : all) {
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   279
            logInfo("RendererContext: " + rdrCtx.name);
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   280
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   281
            if (doMonitors) {
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   282
                for (Monitor monitor : monitors) {
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   283
                    if (monitor.count != 0) {
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   284
                        logInfo(monitor.toString());
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   285
                    }
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   286
                }
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   287
                // As getAATileGenerator percents:
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   288
                final long total = mon_pre_getAATileGenerator.sum;
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   289
                if (total != 0L) {
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   290
                    for (Monitor monitor : monitors) {
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   291
                        logInfo(monitor.name + " : "
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   292
                                + ((100d * monitor.sum) / total) + " %");
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   293
                    }
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   294
                }
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   295
                if (doFlushMonitors) {
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   296
                    for (Monitor m : monitors) {
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   297
                        m.reset();
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   298
                    }
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   299
                }
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   300
            }
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   301
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   302
            if (doStats) {
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   303
                for (StatLong stat : statistics) {
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   304
                    if (stat.count != 0) {
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   305
                        logInfo(stat.toString());
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   306
                        stat.reset();
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   307
                    }
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   308
                }
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   309
                // IntArrayCaches stats:
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   310
                final RendererContext.ArrayCachesHolder holder
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   311
                    = rdrCtx.getArrayCachesHolder();
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   312
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   313
                logInfo("Array caches for thread: " + rdrCtx.name);
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   314
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   315
                for (IntArrayCache cache : holder.intArrayCaches) {
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   316
                    cache.dumpStats();
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   317
                }
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   318
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   319
                logInfo("Dirty Array caches for thread: " + rdrCtx.name);
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   320
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   321
                for (IntArrayCache cache : holder.dirtyIntArrayCaches) {
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   322
                    cache.dumpStats();
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   323
                }
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   324
                for (FloatArrayCache cache : holder.dirtyFloatArrayCaches) {
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   325
                    cache.dumpStats();
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   326
                }
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   327
                for (ByteArrayCache cache : holder.dirtyByteArrayCaches) {
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   328
                    cache.dumpStats();
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   329
                }
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   330
            }
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   331
        }
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   332
    }
57a3863abbb4 8076529: Marlin antialiasing renderer integration
flar
parents:
diff changeset
   333
}