Edit

kc3-lang/angle/gni

Branch :

  • Show log

    Commit

  • Author : Shahbaz Youssefi
    Date : 2018-10-22 11:56:02
    Hash : 25224e78
    Message : Vulkan: add GPU trace events RendererVk now tries, as best as it can, to match the CPU and GPU timers on init as well as every finish(). A clock-sync event is generated for each such synchronization point. RendererVk::traceGpuEvent() is a new function that, given a command buffer, performs timestamp queries corresponding to GPU events. These queries are read back when done, without incurring GPU bubbles, at which point an event is generated with that timestamp. Bug: angleproject:2908 Change-Id: I08d7d11ff9f8ad6c9f9a9899767c9cd746d0623e Reviewed-on: https://chromium-review.googlesource.com/c/1296954 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: Yuly Novikov <ynovikov@chromium.org>

  • angle.gni
  • # Copyright 2015 The Chromium Authors. All rights reserved.
    # Use of this source code is governed by a BSD-style license that can be
    # found in the LICENSE file.
    
    import("//build/config/sanitizers/sanitizers.gni")
    import("//build/config/ui.gni")  # import the use_x11 variable
    import("//build_overrides/build.gni")
    if (is_android) {
      import("//build/config/android/config.gni")
    }
    
    if (build_with_chromium) {
      angle_root = "//third_party/angle"
    
      import("//ui/ozone/ozone.gni")
    } else {
      angle_root = "//"
    
      declare_args() {
        ozone_platform_gbm = false
      }
    }
    
    # Subdirectory to place data files (e.g. layer JSON files).
    data_dir = "angledata"
    
    declare_args() {
      if (current_cpu == "arm64" || current_cpu == "x64" ||
          current_cpu == "mips64el" || current_cpu == "s390x" ||
          current_cpu == "ppc64") {
        angle_64bit_current_cpu = true
      } else if (current_cpu == "arm" || current_cpu == "x86" ||
                 current_cpu == "mipsel" || current_cpu == "s390" ||
                 current_cpu == "ppc") {
        angle_64bit_current_cpu = false
      } else {
        assert(false, "Unknown current CPU: $current_cpu")
      }
    }
    
    declare_args() {
      if (!is_android) {
        ndk_supports_vulkan = false
        ndk_supports_nativewindow = false
      } else {
        ndk_supports_vulkan =
            (!angle_64bit_current_cpu && android32_ndk_api_level >= 24) ||
            (angle_64bit_current_cpu && android64_ndk_api_level >= 24)
        ndk_supports_nativewindow =
            (!angle_64bit_current_cpu && android32_ndk_api_level >= 26) ||
            (angle_64bit_current_cpu && android64_ndk_api_level >= 26)
      }
      angle_shared_libvulkan = false
      angle_libs_suffix = ""
    }
    
    declare_args() {
      angle_enable_d3d9 = is_win
      angle_enable_d3d11 = is_win
      angle_enable_gl = (ozone_platform_gbm || !is_linux ||
                         (use_x11 && !is_chromeos)) && !is_fuchsia
    
      angle_enable_vulkan = is_win || (is_linux && use_x11 && !is_chromeos) ||
                            (is_android && ndk_supports_vulkan)
      angle_enable_null = true
      angle_enable_essl = true
      angle_enable_glsl = true
      angle_force_thread_safety = false
    }
    
    declare_args() {
      angle_enable_gl_null = angle_enable_gl
      angle_enable_hlsl = angle_enable_d3d9 || angle_enable_d3d11
    
      # Disable the layers in ubsan builds because of really slow builds.
      angle_enable_vulkan_validation_layers =
          angle_enable_vulkan && !is_ubsan && !is_tsan && !is_asan
    
      if (angle_enable_vulkan) {
        # Enable Vulkan GPU trace event capability
        angle_enable_vulkan_gpu_trace_events = false
      }
    }
    
    if (is_win) {
      import("//build/config/win/visual_studio_version.gni")
    }