// Copyright 2018 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. #include #include "base/at_exit.h" #include "base/command_line.h" #include "base/debug/stack_trace.h" #include "base/logging.h" #include "base/message_loop/message_pump_type.h" #include "base/task/single_thread_task_executor.h" #include "base/task/thread_pool/thread_pool_instance.h" #include "base/trace_event/trace_event.h" #include "components/tracing/common/trace_to_console.h" #include "components/tracing/common/tracing_switches.h" #include "gpu/vulkan/demo/vulkan_demo.h" int main(int argc, char** argv) { base::CommandLine::Init(argc, argv); base::AtExitManager exit_manager; base::debug::EnableInProcessStackDumping(); // Initialize logging so we can enable VLOG messages. logging::LoggingSettings settings; logging::InitLogging(settings); // Initialize tracing. if (base::CommandLine::ForCurrentProcess()->HasSwitch( switches::kTraceToConsole)) { base::trace_event::TraceConfig trace_config = tracing::GetConfigForTraceToConsole(); base::trace_event::TraceLog::GetInstance()->SetEnabled( trace_config, base::trace_event::TraceLog::RECORDING_MODE); } // Build UI thread task executor. This is used by platform // implementations for event polling & running background tasks. base::SingleThreadTaskExecutor main_task_executor(base::MessagePumpType::UI); base::ThreadPoolInstance::CreateAndStartWithDefaultParams("VulkanDemo"); gpu::VulkanDemo vulkan_demo; vulkan_demo.Initialize(); vulkan_demo.Run(); vulkan_demo.Destroy(); return 0; }