# Copyright 2015 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.

_angle_perf_test_common_sources = [
  "../third_party/trace_event/trace_event.h",
  "perf_tests/ANGLEPerfTest.cpp",
  "perf_tests/ANGLEPerfTest.h",
  "perf_tests/ANGLEPerfTestArgs.cpp",
  "perf_tests/ANGLEPerfTestArgs.h",
  "perf_tests/third_party/perf/perf_result_reporter.cc",
  "perf_tests/third_party/perf/perf_result_reporter.h",
  "perf_tests/third_party/perf/perf_test.cc",
  "perf_tests/third_party/perf/perf_test.h",
  "test_utils/angle_test_configs.cpp",
  "test_utils/angle_test_configs.h",
  "test_utils/angle_test_instantiate.cpp",
  "test_utils/angle_test_instantiate.h",
  "test_utils/gl_raii.h",
]

if (is_mac) {
  _angle_perf_test_common_sources += [
    "test_utils/angle_test_instantiate_apple.mm",
    "test_utils/angle_test_instantiate_apple.h",
  ]
}

angle_perf_tests_sources = _angle_perf_test_common_sources + [
                             "perf_tests/BlitFramebufferPerf.cpp",
                             "perf_tests/BindingPerf.cpp",
                             "perf_tests/BufferSubData.cpp",
                             "perf_tests/ClearPerf.cpp",
                             "perf_tests/DispatchComputePerf.cpp",
                             "perf_tests/DrawCallPerf.cpp",
                             "perf_tests/DrawCallPerfParams.cpp",
                             "perf_tests/DrawCallPerfParams.h",
                             "perf_tests/DrawElementsPerf.cpp",
                             "perf_tests/DynamicPromotionPerfTest.cpp",
                             "perf_tests/EGLMakeCurrentPerf.cpp",
                             "perf_tests/IndexConversionPerf.cpp",
                             "perf_tests/InstancingPerf.cpp",
                             "perf_tests/InterleavedAttributeData.cpp",
                             "perf_tests/LinkProgramPerfTest.cpp",
                             "perf_tests/MultiviewPerf.cpp",
                             "perf_tests/PointSprites.cpp",
                             "perf_tests/TextureSampling.cpp",
                             "perf_tests/TextureUploadPerf.cpp",
                             "perf_tests/TexturesPerf.cpp",
                             "perf_tests/UniformsPerf.cpp",
                             "perf_tests/VulkanBarriersPerf.cpp",
                             "perf_tests/glmark2Benchmark.cpp",
                             "test_utils/ANGLETest.cpp",
                             "test_utils/ANGLETest.h",
                             "test_utils/MultiviewTest.cpp",
                             "test_utils/MultiviewTest.h",
                             "test_utils/draw_call_perf_utils.cpp",
                             "test_utils/draw_call_perf_utils.h",
                           ]

angle_white_box_perf_tests_sources = _angle_perf_test_common_sources + [
                                       "angle_unittests_utils.h",
                                       "perf_tests/BitSetIteratorPerf.cpp",
                                       "perf_tests/CompilerPerf.cpp",
                                       "perf_tests/EGLInitializePerf.cpp",  # Uses ANGLEGetDisplayPlatform, a non-standard EP.
                                       "perf_tests/ResultPerf.cpp",
                                     ]

angle_white_box_perf_tests_win_sources =
    [ "perf_tests/IndexDataManagerTest.cpp" ]

angle_white_box_perf_tests_vulkan_sources = [
  "perf_tests/VulkanCommandBufferPerf.cpp",
  "perf_tests/VulkanPipelineCachePerf.cpp",
  "test_utils/third_party/vulkan_command_buffer_utils.cpp",
  "test_utils/third_party/vulkan_command_buffer_utils.h",
]
