Edit

kc3-lang/angle/src/tests/perf_tests/DrawCallPerfParams.cpp

Branch :

  • Show log

    Commit

  • Author : Yuly Novikov
    Date : 2017-10-27 18:14:14
    Hash : b8d2664f
    Message : Run angle_perftests on GLES backend Adds OPENGLES_NULL configuration and selects between OPENGL and OPENGLES based on whether building for Android. Also 2 small changes to get the newly enabled tests to pass on N5X: 1. Require GL_EXT_texture_storage in TexSubImage test 2. Limit numVertexUniforms and numFragmentUniforms to 64 in MatrixUniforms test BUG=675997 Change-Id: I5439e5fb7e93b3a928f12594761115d56f60d81b Reviewed-on: https://chromium-review.googlesource.com/748522 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org>

  • src/tests/perf_tests/DrawCallPerfParams.cpp
  • //
    // Copyright (c) 2017 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.
    //
    // DrawCallPerfParams.cpp:
    //   Parametrization for performance tests for ANGLE draw call overhead.
    //
    
    #include "DrawCallPerfParams.h"
    
    #include <sstream>
    
    std::ostream &operator<<(std::ostream &os, const DrawCallPerfParams &params)
    {
        os << params.suffix().substr(1);
        return os;
    }
    
    std::string DrawCallPerfParams::suffix() const
    {
        std::stringstream strstr;
    
        strstr << RenderTestParams::suffix();
    
        if (numTris == 0)
        {
            strstr << "_validation_only";
        }
    
        if (useFBO)
        {
            strstr << "_render_to_texture";
        }
    
        if (eglParameters.deviceType == EGL_PLATFORM_ANGLE_DEVICE_TYPE_NULL_ANGLE)
        {
            strstr << "_null";
        }
    
        return strstr.str();
    }
    
    using namespace angle::egl_platform;
    
    DrawCallPerfParams DrawCallPerfD3D11Params(bool useNullDevice, bool renderToTexture)
    {
        DrawCallPerfParams params;
        params.eglParameters = useNullDevice ? D3D11_NULL() : D3D11();
        params.useFBO        = renderToTexture;
        return params;
    }
    
    DrawCallPerfParams DrawCallPerfD3D9Params(bool useNullDevice, bool renderToTexture)
    {
        DrawCallPerfParams params;
        params.eglParameters = useNullDevice ? D3D9_NULL() : D3D9();
        params.useFBO        = renderToTexture;
        return params;
    }
    
    DrawCallPerfParams DrawCallPerfOpenGLOrGLESParams(bool useNullDevice, bool renderToTexture)
    {
        DrawCallPerfParams params;
        params.eglParameters = OPENGL_OR_GLES(useNullDevice);
        params.useFBO        = renderToTexture;
        return params;
    }
    
    DrawCallPerfParams DrawCallPerfValidationOnly()
    {
        DrawCallPerfParams params;
        params.eglParameters  = DEFAULT();
        params.iterations     = 10000;
        params.numTris        = 0;
        params.runTimeSeconds = 5.0;
        return params;
    }
    
    DrawCallPerfParams DrawCallPerfVulkanParams(bool renderToTexture)
    {
        DrawCallPerfParams params;
        params.eglParameters = VULKAN();
        params.useFBO        = renderToTexture;
        return params;
    }