# Copyright 2017 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/ui.gni") import("//components/viz/viz.gni") import("//gpu/vulkan/features.gni") import("//testing/libfuzzer/fuzzer_test.gni") config("viz_service_implementation") { } viz_component("service") { sources = [ "display/bsp_tree.cc", "display/bsp_tree.h", "display/bsp_walk_action.cc", "display/bsp_walk_action.h", "display/ca_layer_overlay.cc", "display/ca_layer_overlay.h", "display/color_lut_cache.cc", "display/color_lut_cache.h", "display/dc_layer_overlay.cc", "display/dc_layer_overlay.h", "display/direct_renderer.cc", "display/direct_renderer.h", "display/display.cc", "display/display.h", "display/display_client.h", "display/display_resource_provider.cc", "display/display_resource_provider.h", "display/display_scheduler.cc", "display/display_scheduler.h", "display/draw_polygon.cc", "display/draw_polygon.h", "display/dynamic_geometry_binding.cc", "display/dynamic_geometry_binding.h", "display/geometry_binding.cc", "display/geometry_binding.h", "display/gl_renderer.cc", "display/gl_renderer.h", "display/gl_renderer_copier.cc", "display/gl_renderer_copier.h", "display/gl_renderer_draw_cache.cc", "display/gl_renderer_draw_cache.h", "display/layer_quad.cc", "display/layer_quad.h", "display/output_surface.cc", "display/output_surface.h", "display/output_surface_client.h", "display/output_surface_frame.cc", "display/output_surface_frame.h", "display/overlay_candidate.cc", "display/overlay_candidate.h", "display/overlay_candidate_validator.h", "display/overlay_processor.cc", "display/overlay_processor.h", "display/overlay_strategy_fullscreen.cc", "display/overlay_strategy_fullscreen.h", "display/overlay_strategy_single_on_top.cc", "display/overlay_strategy_single_on_top.h", "display/overlay_strategy_underlay.cc", "display/overlay_strategy_underlay.h", "display/overlay_strategy_underlay_cast.cc", "display/overlay_strategy_underlay_cast.h", "display/program_binding.cc", "display/program_binding.h", "display/renderer_utils.cc", "display/renderer_utils.h", "display/resource_fence.h", "display/resource_metadata.cc", "display/resource_metadata.h", "display/scoped_gpu_memory_buffer_texture.cc", "display/scoped_gpu_memory_buffer_texture.h", "display/scoped_render_pass_texture.cc", "display/scoped_render_pass_texture.h", "display/shader.cc", "display/shader.h", "display/shared_bitmap_manager.h", "display/skia_output_surface.cc", "display/skia_output_surface.h", "display/skia_renderer.cc", "display/skia_renderer.h", "display/software_output_device.cc", "display/software_output_device.h", "display/software_renderer.cc", "display/software_renderer.h", "display/static_geometry_binding.cc", "display/static_geometry_binding.h", "display/surface_aggregator.cc", "display/surface_aggregator.h", "display/sync_query_collection.cc", "display/sync_query_collection.h", "display/texture_deleter.cc", "display/texture_deleter.h", "display_embedder/buffer_queue.cc", "display_embedder/buffer_queue.h", "display_embedder/compositing_mode_reporter_impl.cc", "display_embedder/compositing_mode_reporter_impl.h", "display_embedder/compositor_overlay_candidate_validator.h", "display_embedder/display_provider.h", "display_embedder/gl_output_surface.cc", "display_embedder/gl_output_surface.h", "display_embedder/gl_output_surface_buffer_queue.cc", "display_embedder/gl_output_surface_buffer_queue.h", "display_embedder/gpu_display_provider.cc", "display_embedder/gpu_display_provider.h", "display_embedder/in_process_gpu_memory_buffer_manager.cc", "display_embedder/in_process_gpu_memory_buffer_manager.h", "display_embedder/server_shared_bitmap_manager.cc", "display_embedder/server_shared_bitmap_manager.h", "display_embedder/skia_output_surface_impl.cc", "display_embedder/skia_output_surface_impl.h", "display_embedder/skia_output_surface_impl_on_gpu.cc", "display_embedder/skia_output_surface_impl_on_gpu.h", "display_embedder/software_output_surface.cc", "display_embedder/software_output_surface.h", "display_embedder/viz_process_context_provider.cc", "display_embedder/viz_process_context_provider.h", "frame_sinks/compositor_frame_sink_impl.cc", "frame_sinks/compositor_frame_sink_impl.h", "frame_sinks/compositor_frame_sink_support.cc", "frame_sinks/compositor_frame_sink_support.h", "frame_sinks/compositor_frame_sink_support_manager.h", "frame_sinks/direct_layer_tree_frame_sink.cc", "frame_sinks/direct_layer_tree_frame_sink.h", "frame_sinks/external_begin_frame_source_mojo.cc", "frame_sinks/external_begin_frame_source_mojo.h", "frame_sinks/frame_sink_manager_impl.cc", "frame_sinks/frame_sink_manager_impl.h", "frame_sinks/frame_sink_observer.h", "frame_sinks/primary_begin_frame_source.cc", "frame_sinks/primary_begin_frame_source.h", "frame_sinks/root_compositor_frame_sink_impl.cc", "frame_sinks/root_compositor_frame_sink_impl.h", "frame_sinks/surface_resource_holder.cc", "frame_sinks/surface_resource_holder.h", "frame_sinks/surface_resource_holder_client.h", "frame_sinks/video_capture/capturable_frame_sink.h", "frame_sinks/video_capture/frame_sink_video_capturer_impl.cc", "frame_sinks/video_capture/frame_sink_video_capturer_impl.h", "frame_sinks/video_capture/frame_sink_video_capturer_manager.h", "frame_sinks/video_capture/in_flight_frame_delivery.cc", "frame_sinks/video_capture/in_flight_frame_delivery.h", "frame_sinks/video_capture/interprocess_frame_pool.cc", "frame_sinks/video_capture/interprocess_frame_pool.h", "frame_sinks/video_capture/video_capture_overlay.cc", "frame_sinks/video_capture/video_capture_overlay.h", "frame_sinks/video_detector.cc", "frame_sinks/video_detector.h", "gl/gpu_service_impl.cc", "gl/gpu_service_impl.h", "hit_test/hit_test_aggregator.cc", "hit_test/hit_test_aggregator.h", "hit_test/hit_test_aggregator_delegate.h", "hit_test/hit_test_manager.cc", "hit_test/hit_test_manager.h", "main/viz_compositor_thread_runner.cc", "main/viz_compositor_thread_runner.h", "surfaces/latest_local_surface_id_lookup_delegate.h", "surfaces/referenced_surface_tracker.cc", "surfaces/referenced_surface_tracker.h", "surfaces/surface.cc", "surfaces/surface.h", "surfaces/surface_client.h", "surfaces/surface_deadline_client.h", "surfaces/surface_dependency_deadline.cc", "surfaces/surface_dependency_deadline.h", "surfaces/surface_dependency_tracker.cc", "surfaces/surface_dependency_tracker.h", "surfaces/surface_hittest.cc", "surfaces/surface_hittest.h", "surfaces/surface_hittest_delegate.h", "surfaces/surface_manager.cc", "surfaces/surface_manager.h", "surfaces/surface_reference.cc", "surfaces/surface_reference.h", "viz_service_export.h", ] defines = [ "VIZ_SERVICE_IMPLEMENTATION" ] configs = [ "//build/config/compiler:no_size_t_to_int_warning" ] deps = [ "//cc/paint", "//components/crash/core/common:crash_key", "//components/viz/common", "//gpu/command_buffer/client:gles2_implementation", "//gpu/command_buffer/client:raster", "//gpu/command_buffer/service:gles2", "//gpu/ipc:gl_in_process_context", # Note that dependency on //gpu/ipc/client is for GpuMemoryBufferImpl. This # dependency should not be in public_deps. "//gpu/ipc/client", "//gpu/ipc/service", "//gpu/skia_bindings:skia_bindings", "//gpu/vulkan:buildflags", "//media", "//media/capture:capture_lib", "//media/gpu/ipc/service", "//media/mojo/services", "//services/viz/privileged/interfaces", "//skia", "//ui/display/types", ] public_deps = [ "//base", "//cc", "//cc/debug", "//gpu/command_buffer/client:gles2_interface", "//services/viz/privileged/interfaces/compositing", "//services/viz/public/interfaces", "//ui/gfx", "//ui/gfx/geometry", "//ui/latency", ] if (use_x11) { sources += [ "display_embedder/software_output_device_x11.cc", "display_embedder/software_output_device_x11.h", ] configs += [ "//build/config/linux:x11" ] deps += [ "//ui/gfx/x" ] } if (is_chromeos) { deps += [ "//components/arc/video_accelerator" ] } if (is_mac) { sources += [ "display_embedder/compositor_overlay_candidate_validator_mac.cc", "display_embedder/compositor_overlay_candidate_validator_mac.h", "display_embedder/gl_output_surface_mac.cc", "display_embedder/gl_output_surface_mac.h", "display_embedder/software_output_device_mac.cc", "display_embedder/software_output_device_mac.h", ] deps += [ "//ui/accelerated_widget_mac" ] libs = [ "IOSurface.framework" ] } if (is_android) { sources += [ "display_embedder/compositor_overlay_candidate_validator_android.cc", "display_embedder/compositor_overlay_candidate_validator_android.h", "frame_sinks/external_begin_frame_source_android.cc", "frame_sinks/external_begin_frame_source_android.h", "gl/throw_uncaught_exception.cc", "gl/throw_uncaught_exception.h", ] deps += [ ":service_jni_headers" ] } if (use_ozone) { sources += [ "display_embedder/compositor_overlay_candidate_validator_ozone.cc", "display_embedder/compositor_overlay_candidate_validator_ozone.h", "display_embedder/gl_output_surface_ozone.cc", "display_embedder/gl_output_surface_ozone.h", "display_embedder/software_output_device_ozone.cc", "display_embedder/software_output_device_ozone.h", ] public_deps += [ "//ui/ozone" ] } if (is_win) { sources += [ "display_embedder/compositor_overlay_candidate_validator_win.cc", "display_embedder/compositor_overlay_candidate_validator_win.h", "display_embedder/gl_output_surface_win.cc", "display_embedder/gl_output_surface_win.h", "display_embedder/output_device_backing.cc", "display_embedder/output_device_backing.h", "display_embedder/software_output_device_win.cc", "display_embedder/software_output_device_win.h", ] } if (is_android) { sources += [ "display_embedder/gl_output_surface_android.cc", "display_embedder/gl_output_surface_android.h", ] } if (enable_vulkan) { deps += [ "//gpu/vulkan" ] } } viz_source_set("unit_tests") { testonly = true sources = [ "display/bsp_tree_unittest.cc", "display/copy_output_scaling_pixeltest.cc", "display/display_resource_provider_unittest.cc", "display/display_scheduler_unittest.cc", "display/display_unittest.cc", "display/draw_polygon_unittest.cc", "display/gl_renderer_copier_pixeltest.cc", "display/gl_renderer_copier_unittest.cc", "display/gl_renderer_unittest.cc", "display/layer_quad_unittest.cc", "display/overlay_unittest.cc", "display/renderer_pixeltest.cc", "display/shader_unittest.cc", "display/software_renderer_unittest.cc", "display/surface_aggregator_pixeltest.cc", "display/surface_aggregator_unittest.cc", "display/texture_deleter_unittest.cc", "display_embedder/buffer_queue_unittest.cc", "display_embedder/server_shared_bitmap_manager_unittest.cc", "frame_sinks/compositor_frame_sink_support_unittest.cc", "frame_sinks/direct_layer_tree_frame_sink_unittest.cc", "frame_sinks/frame_sink_manager_unittest.cc", "frame_sinks/surface_references_unittest.cc", "frame_sinks/surface_synchronization_unittest.cc", "frame_sinks/video_capture/frame_sink_video_capturer_impl_unittest.cc", "frame_sinks/video_capture/interprocess_frame_pool_unittest.cc", "frame_sinks/video_capture/video_capture_overlay_unittest.cc", "frame_sinks/video_detector_unittest.cc", "gl/gpu_service_impl_unittest.cc", "hit_test/hit_test_aggregator_unittest.cc", "surfaces/referenced_surface_tracker_unittest.cc", "surfaces/surface_dependency_deadline_unittest.cc", "surfaces/surface_hittest_unittest.cc", "surfaces/surface_unittest.cc", ] if (!use_aura && !is_mac) { sources -= [ "display_embedder/buffer_queue_unittest.cc" ] } configs = [ "//build/config/compiler:no_size_t_to_int_warning", "//third_party/khronos:khronos_headers", ] deps = [ ":service", "//base", "//base/test:test_support", "//cc:test_support", "//cc/paint", "//components/viz/client", "//components/viz/common", "//components/viz/host", "//components/viz/test:test_support", "//gpu/command_buffer/client", "//gpu/command_buffer/client:gles2_implementation", "//gpu/ipc:gl_in_process_context", "//gpu/ipc/service", "//media", "//media/capture:capture_lib", "//services/viz/public/interfaces", "//services/ws/public/mojom", "//skia", "//testing/gmock", "//testing/gtest", "//third_party/libyuv", "//ui/display/types", "//ui/gfx:test_support", "//ui/gl", ] if (use_ozone) { sources += [ "display_embedder/software_output_device_ozone_unittest.cc" ] deps += [ "//ui/compositor:test_support", "//ui/ozone", ] } if (is_mac) { sources += [ "display_embedder/software_output_device_mac_unittest.mm" ] libs = [ "IOSurface.framework" ] } if (is_win) { sources += [ "display_embedder/output_device_backing_unittest.cc" ] } if (is_android) { sources += [ "frame_sinks/external_begin_frame_source_android_unittest.cc" ] } } viz_source_set("perf_tests") { testonly = true sources = [ "display/bsp_tree_perftest.cc", "display/display_perftest.cc", "display/surface_aggregator_perftest.cc", ] deps = [ ":service", "//base", "//base/test:test_support", "//cc", "//cc:test_support", "//cc/base", "//components/viz/test:test_support", "//testing/gtest", "//testing/perf", ] } fuzzer_test("hit_test_manager_fuzzer") { sources = [ "hit_test/hit_test_manager_fuzzer.cc", ] libfuzzer_options = [ "max_len=81920" ] deps = [ ":service", "//base/test:test_support", "//components/viz/test:test_support", ] } if (is_android) { android_library("service_java") { deps = [ "//base:base_java", "//ui/android:ui_full_java", ] java_files = [ "java/src/org/chromium/components/viz/service/gl/ThrowUncaughtException.java", "java/src/org/chromium/components/viz/service/frame_sinks/ExternalBeginFrameSourceAndroid.java", ] } generate_jni("service_jni_headers") { jni_package = "components/viz/service" sources = [ "java/src/org/chromium/components/viz/service/frame_sinks/ExternalBeginFrameSourceAndroid.java", "java/src/org/chromium/components/viz/service/gl/ThrowUncaughtException.java", ] } }