blob: 6ceeddd995b90b5792fe3eb69f33a5f095d23d4e [file] [log] [blame]
Jamie Madillffcc2e62014-08-26 13:16:40 -04001//
2// Copyright (c) 2014 The ANGLE Project Authors. All rights reserved.
3// Use of this source code is governed by a BSD-style license that can be
4// found in the LICENSE file.
5//
6
7#include "SimpleBenchmark.h"
Jamie Madill33ea2f92014-08-29 15:15:01 -04008#include "BufferSubData.h"
Jamie Madillbbffd552014-09-10 10:12:49 -04009#include "TexSubImage.h"
Jamie Madillea0e8732014-09-24 10:26:49 -040010#include "PointSprites.h"
Jamie Madill33ea2f92014-08-29 15:15:01 -040011
12EGLint platforms[] =
13{
14 EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE,
15 EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE
16};
17
18GLenum vertexTypes[] = { GL_FLOAT };
Jamie Madill82cceb22014-09-09 13:21:33 -040019GLint componentCounts[] = { 4 };
Jamie Madill33ea2f92014-08-29 15:15:01 -040020GLboolean vertexNorms[] = { GL_FALSE };
Jamie Madill82cceb22014-09-09 13:21:33 -040021GLsizeiptr updateSizes[] = { 0, 300 };
Jamie Madill33ea2f92014-08-29 15:15:01 -040022GLsizeiptr bufferSizes[] = { 1024 * 1024 };
23unsigned int iterationCounts[] = { 10 };
Jamie Madill82cceb22014-09-09 13:21:33 -040024unsigned int updatesEveryNFrames[] = { 1, 4 };
Jamie Madillffcc2e62014-08-26 13:16:40 -040025
26int main(int argc, char **argv)
27{
Jamie Madillbbffd552014-09-10 10:12:49 -040028 std::vector<BufferSubDataParams> subDataParams;
Jamie Madill33ea2f92014-08-29 15:15:01 -040029
30 for (size_t platIt = 0; platIt < ArraySize(platforms); platIt++)
31 {
32 for (size_t typeIt = 0; typeIt < ArraySize(vertexTypes); typeIt++)
33 {
34 for (size_t compIt = 0; compIt < ArraySize(componentCounts); compIt++)
35 {
36 for (size_t normIt = 0; normIt < ArraySize(vertexNorms); normIt++)
37 {
38 // No normalized float data
39 if (vertexTypes[typeIt] == GL_FLOAT && vertexNorms[normIt] == GL_TRUE)
40 {
41 continue;
42 }
43
44 for (size_t updateIt = 0; updateIt < ArraySize(updateSizes); updateIt++)
45 {
46 for (size_t bufszIt = 0; bufszIt < ArraySize(bufferSizes); bufszIt++)
47 {
48 for (size_t itIt = 0; itIt < ArraySize(iterationCounts); itIt++)
49 {
Jamie Madill82cceb22014-09-09 13:21:33 -040050 for (size_t nfrIt = 0; nfrIt < ArraySize(updatesEveryNFrames); nfrIt++)
51 {
52 BufferSubDataParams params;
53 params.requestedRenderer = platforms[platIt];
54 params.vertexType = vertexTypes[typeIt];
55 params.vertexComponentCount = componentCounts[compIt];
56 params.vertexNormalized = vertexNorms[normIt];
57 params.updateSize = updateSizes[updateIt];
58 params.bufferSize = bufferSizes[bufszIt];
59 params.iterations = iterationCounts[itIt];
60 params.updatesEveryNFrames = updatesEveryNFrames[nfrIt];
Jamie Madill33ea2f92014-08-29 15:15:01 -040061
Jamie Madill82cceb22014-09-09 13:21:33 -040062 if (updateSizes[updateIt] == 0)
63 {
64 if (nfrIt > 0)
65 {
66 continue;
67 }
68 else
69 {
70 params.updatesEveryNFrames = 1;
71 }
72 }
73
Jamie Madillbbffd552014-09-10 10:12:49 -040074 subDataParams.push_back(params);
Jamie Madill82cceb22014-09-09 13:21:33 -040075 }
Jamie Madill33ea2f92014-08-29 15:15:01 -040076 }
77 }
78 }
79 }
80 }
81 }
82 }
83
84 // Enumerates permutations
Jamie Madillbbffd552014-09-10 10:12:49 -040085 RunBenchmarks<BufferSubDataBenchmark>(subDataParams);
86
87 std::vector<TexSubImageParams> subImageParams;
88
89 for (size_t platIt = 0; platIt < ArraySize(platforms); platIt++)
90 {
91 TexSubImageParams params;
92
93 params.requestedRenderer = platforms[platIt];
94 params.imageWidth = 1024;
95 params.imageHeight = 1024;
96 params.subImageHeight = 64;
97 params.subImageWidth = 64;
98 params.iterations = 10;
99
100 subImageParams.push_back(params);
101 }
102
103 RunBenchmarks<TexSubImageBenchmark>(subImageParams);
Jamie Madillea0e8732014-09-24 10:26:49 -0400104
105 std::vector<PointSpritesParams> pointSpriteParams;
106
107 for (size_t platIt = 0; platIt < ArraySize(platforms); platIt++)
108 {
109 PointSpritesParams params;
110
111 params.requestedRenderer = platforms[platIt];
112 params.iterations = 10;
113 params.count = 10;
114 params.size = 3.0f;
115
116 pointSpriteParams.push_back(params);
117 }
118
119 RunBenchmarks<PointSpritesBenchmark>(pointSpriteParams);
Jamie Madillffcc2e62014-08-26 13:16:40 -0400120}