blob: dc4734bbb6795edfd0a4d3d13244c5501c56087d [file] [log] [blame]
//
// Copyright (c) 2014 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
#include "SimpleBenchmark.h"
#include "BufferSubData.h"
EGLint platforms[] =
{
EGL_PLATFORM_ANGLE_TYPE_D3D9_ANGLE,
EGL_PLATFORM_ANGLE_TYPE_D3D11_ANGLE
};
GLenum vertexTypes[] = { GL_FLOAT };
GLint componentCounts[] = { 2, 3, 4 };
GLboolean vertexNorms[] = { GL_FALSE };
GLsizeiptr updateSizes[] = { 300 };
GLsizeiptr bufferSizes[] = { 1024 * 1024 };
unsigned int iterationCounts[] = { 10 };
int main(int argc, char **argv)
{
std::vector<BufferSubDataParams> benchmarks;
for (size_t platIt = 0; platIt < ArraySize(platforms); platIt++)
{
for (size_t typeIt = 0; typeIt < ArraySize(vertexTypes); typeIt++)
{
for (size_t compIt = 0; compIt < ArraySize(componentCounts); compIt++)
{
for (size_t normIt = 0; normIt < ArraySize(vertexNorms); normIt++)
{
// No normalized float data
if (vertexTypes[typeIt] == GL_FLOAT && vertexNorms[normIt] == GL_TRUE)
{
continue;
}
for (size_t updateIt = 0; updateIt < ArraySize(updateSizes); updateIt++)
{
for (size_t bufszIt = 0; bufszIt < ArraySize(bufferSizes); bufszIt++)
{
for (size_t itIt = 0; itIt < ArraySize(iterationCounts); itIt++)
{
BufferSubDataParams params;
params.requestedRenderer = platforms[platIt];
params.vertexType = vertexTypes[typeIt];
params.vertexComponentCount = componentCounts[compIt];
params.vertexNormalized = vertexNorms[normIt];
params.updateSize = updateSizes[updateIt];
params.bufferSize = bufferSizes[bufszIt];
params.iterations = iterationCounts[itIt];
benchmarks.push_back(params);
}
}
}
}
}
}
}
// Enumerates permutations
RunBenchmarks<BufferSubDataBenchmark>(benchmarks);
}