| # Copyright 2014 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("//gpu/vulkan/features.gni") |
| import("//skia/features.gni") |
| import("//third_party/dawn/scripts/dawn_features.gni") |
| import("//third_party/protobuf/proto_library.gni") |
| import("//ui/gl/features.gni") |
| |
| group("service") { |
| if (is_component_build) { |
| public_deps = [ "//gpu" ] |
| } else { |
| public_deps = [ ":service_sources" ] |
| } |
| } |
| |
| group("gles2") { |
| if (is_component_build) { |
| public_deps = [ "//gpu:gles2" ] |
| } else { |
| public_deps = [ ":gles2_sources" ] |
| } |
| } |
| |
| if (is_component_build) { |
| link_target_type = "source_set" |
| } else { |
| link_target_type = "static_library" |
| } |
| target(link_target_type, "service_sources") { |
| # External code should depend on this via //gpu/command_buffer/service above |
| # rather than depending on this directly or the component build will break. |
| visibility = [ "//gpu/*" ] |
| |
| sources = [ |
| "async_api_interface.h", |
| "command_buffer_direct.cc", |
| "command_buffer_direct.h", |
| "command_buffer_service.cc", |
| "command_buffer_service.h", |
| "common_decoder.cc", |
| "common_decoder.h", |
| "decoder_client.h", |
| "gpu_switches.cc", |
| "gpu_switches.h", |
| "image_factory.cc", |
| "image_factory.h", |
| "image_manager.cc", |
| "image_manager.h", |
| "mailbox_manager.h", |
| "memory_tracking.cc", |
| "memory_tracking.h", |
| "scheduler.cc", |
| "scheduler.h", |
| "scheduler_task_runner.cc", |
| "scheduler_task_runner.h", |
| "sequence_id.h", |
| "sync_point_manager.cc", |
| "sync_point_manager.h", |
| "texture_base.cc", |
| "texture_base.h", |
| "transfer_buffer_manager.cc", |
| "transfer_buffer_manager.h", |
| ] |
| |
| configs += [ |
| # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. |
| "//build/config/compiler:no_size_t_to_int_warning", |
| "//build/config:precompiled_headers", |
| "//gpu:gpu_implementation", |
| "//third_party/khronos:khronos_headers", |
| ] |
| |
| public_deps = [ |
| "//base", |
| "//gpu/command_buffer/common:common_sources", |
| "//url:url", |
| ] |
| deps = [ |
| "//base", |
| "//base/third_party/dynamic_annotations", |
| "//gpu/command_buffer/client:client_sources", |
| "//gpu/config:config_sources", |
| "//gpu/ipc/common:ipc_common_sources", |
| "//gpu/ipc/common:surface_handle_type", |
| "//ui/gfx", |
| "//ui/gfx/geometry", |
| "//ui/gfx/ipc/color", |
| "//ui/gl", |
| ] |
| |
| if (is_android && !is_debug) { |
| # On Android optimize more since this component can be a bottleneck. |
| configs -= [ "//build/config/compiler:default_optimization" ] |
| configs += [ "//build/config/compiler:optimize_max" ] |
| } |
| } |
| |
| target(link_target_type, "gles2_sources") { |
| # External code should depend on this via //gpu/command_buffer/service:gles2 |
| # above rather than depending on this directly or the component build will |
| # break. |
| visibility = [ "//gpu/*" ] |
| |
| sources = [ |
| "abstract_texture.h", |
| "abstract_texture_impl.cc", |
| "abstract_texture_impl.h", |
| "buffer_manager.cc", |
| "buffer_manager.h", |
| "client_service_map.h", |
| "context_group.cc", |
| "context_group.h", |
| "context_state.cc", |
| "context_state.h", |
| "context_state_autogen.h", |
| "context_state_impl_autogen.h", |
| "decoder_context.h", |
| "error_state.cc", |
| "error_state.h", |
| "feature_info.cc", |
| "feature_info.h", |
| "framebuffer_completeness_cache.cc", |
| "framebuffer_completeness_cache.h", |
| "framebuffer_manager.cc", |
| "framebuffer_manager.h", |
| "gl_context_virtual.cc", |
| "gl_context_virtual.h", |
| "gl_context_virtual_delegate.h", |
| "gl_state_restorer_impl.cc", |
| "gl_state_restorer_impl.h", |
| "gl_utils.cc", |
| "gl_utils.h", |
| "gles2_cmd_clear_framebuffer.cc", |
| "gles2_cmd_clear_framebuffer.h", |
| "gles2_cmd_copy_tex_image.cc", |
| "gles2_cmd_copy_tex_image.h", |
| "gles2_cmd_copy_texture_chromium.cc", |
| "gles2_cmd_copy_texture_chromium.h", |
| "gles2_cmd_decoder.cc", |
| "gles2_cmd_decoder.h", |
| "gles2_cmd_decoder_autogen.h", |
| "gles2_cmd_decoder_passthrough.cc", |
| "gles2_cmd_decoder_passthrough.h", |
| "gles2_cmd_decoder_passthrough_doer_prototypes.h", |
| "gles2_cmd_decoder_passthrough_doers.cc", |
| "gles2_cmd_decoder_passthrough_handlers.cc", |
| "gles2_cmd_decoder_passthrough_handlers_autogen.cc", |
| "gles2_cmd_srgb_converter.cc", |
| "gles2_cmd_srgb_converter.h", |
| "gles2_cmd_validation.cc", |
| "gles2_cmd_validation.h", |
| "gles2_cmd_validation_autogen.h", |
| "gles2_cmd_validation_implementation_autogen.h", |
| "gles2_query_manager.cc", |
| "gles2_query_manager.h", |
| "gpu_command_buffer_memory_tracker.cc", |
| "gpu_command_buffer_memory_tracker.h", |
| "gpu_fence_manager.cc", |
| "gpu_fence_manager.h", |
| "gpu_state_tracer.cc", |
| "gpu_state_tracer.h", |
| "gpu_tracer.cc", |
| "gpu_tracer.h", |
| "gr_cache_controller.cc", |
| "gr_cache_controller.h", |
| "gr_shader_cache.cc", |
| "gr_shader_cache.h", |
| "id_manager.cc", |
| "id_manager.h", |
| "indexed_buffer_binding_host.cc", |
| "indexed_buffer_binding_host.h", |
| "logger.cc", |
| "logger.h", |
| "mailbox_manager_dummy.cc", |
| "mailbox_manager_dummy.h", |
| "mailbox_manager_factory.cc", |
| "mailbox_manager_factory.h", |
| "mailbox_manager_impl.cc", |
| "mailbox_manager_impl.h", |
| "memory_program_cache.cc", |
| "memory_program_cache.h", |
| "multi_draw_manager.cc", |
| "multi_draw_manager.h", |
| "native_image_buffer.cc", |
| "native_image_buffer.h", |
| "passthrough_abstract_texture_impl.cc", |
| "passthrough_abstract_texture_impl.h", |
| "passthrough_discardable_manager.cc", |
| "passthrough_discardable_manager.h", |
| "passthrough_program_cache.cc", |
| "passthrough_program_cache.h", |
| "program_cache.cc", |
| "program_cache.h", |
| "program_manager.cc", |
| "program_manager.h", |
| "query_manager.cc", |
| "query_manager.h", |
| "raster_cmd_validation.cc", |
| "raster_cmd_validation.h", |
| "raster_cmd_validation_autogen.h", |
| "raster_cmd_validation_implementation_autogen.h", |
| "raster_decoder.cc", |
| "raster_decoder.h", |
| "renderbuffer_manager.cc", |
| "renderbuffer_manager.h", |
| "sampler_manager.cc", |
| "sampler_manager.h", |
| "service_discardable_manager.cc", |
| "service_discardable_manager.h", |
| "service_font_manager.cc", |
| "service_font_manager.h", |
| "service_transfer_cache.cc", |
| "service_transfer_cache.h", |
| "service_utils.cc", |
| "service_utils.h", |
| "shader_manager.cc", |
| "shader_manager.h", |
| "shader_translator.cc", |
| "shader_translator.h", |
| "shader_translator_cache.cc", |
| "shader_translator_cache.h", |
| "shared_context_state.cc", |
| "shared_context_state.h", |
| "shared_image_backing.cc", |
| "shared_image_backing.h", |
| "shared_image_backing_factory.cc", |
| "shared_image_backing_factory.h", |
| "shared_image_backing_factory_gl_common.cc", |
| "shared_image_backing_factory_gl_common.h", |
| "shared_image_backing_factory_gl_image.cc", |
| "shared_image_backing_factory_gl_image.h", |
| "shared_image_backing_factory_gl_texture.cc", |
| "shared_image_backing_factory_gl_texture.h", |
| "shared_image_backing_gl_common.cc", |
| "shared_image_backing_gl_common.h", |
| "shared_image_backing_gl_image.cc", |
| "shared_image_backing_gl_image.h", |
| "shared_image_backing_gl_texture.cc", |
| "shared_image_backing_gl_texture.h", |
| "shared_image_factory.cc", |
| "shared_image_factory.h", |
| "shared_image_manager.cc", |
| "shared_image_manager.h", |
| "shared_image_representation.cc", |
| "shared_image_representation.h", |
| "shared_image_representation_skia_gl.cc", |
| "shared_image_representation_skia_gl.h", |
| "shared_memory_region_wrapper.cc", |
| "shared_memory_region_wrapper.h", |
| "skia_utils.cc", |
| "skia_utils.h", |
| "texture_manager.cc", |
| "texture_manager.h", |
| "transform_feedback_manager.cc", |
| "transform_feedback_manager.h", |
| "validating_abstract_texture_impl.cc", |
| "validating_abstract_texture_impl.h", |
| "value_validator.h", |
| "vertex_array_manager.cc", |
| "vertex_array_manager.h", |
| "vertex_attrib_manager.cc", |
| "vertex_attrib_manager.h", |
| "webgpu_cmd_validation.cc", |
| "webgpu_cmd_validation.h", |
| "webgpu_cmd_validation_autogen.h", |
| "webgpu_cmd_validation_implementation_autogen.h", |
| "webgpu_decoder.cc", |
| "webgpu_decoder.h", |
| "wrapped_sk_image.cc", |
| "wrapped_sk_image.h", |
| ] |
| |
| if (use_dawn) { |
| sources += [ |
| "dawn_platform.cc", |
| "dawn_platform.h", |
| "dawn_service_memory_transfer_service.cc", |
| "dawn_service_memory_transfer_service.h", |
| "webgpu_decoder_impl.cc", |
| "webgpu_decoder_impl.h", |
| ] |
| } |
| |
| configs += [ |
| "//build/config:precompiled_headers", |
| "//gpu:gpu_gles2_implementation", |
| "//gpu:raster_implementation", |
| "//gpu:webgpu_implementation", |
| "//third_party/khronos:khronos_headers", |
| ] |
| |
| # Prefer mesa GL headers to system headers, which cause problems on Win. |
| include_dirs = [ "//third_party/mesa_headers" ] |
| |
| public_deps = [ |
| "//base", |
| "//cc/paint", |
| "//gpu/command_buffer/common", |
| "//gpu/command_buffer/common:gles2_sources", |
| "//gpu/command_buffer/common:raster_sources", |
| "//gpu/command_buffer/common:webgpu_sources", |
| "//skia", |
| "//third_party/dawn/src/dawn:dawn_headers", |
| ] |
| deps = [ |
| ":disk_cache_proto", |
| ":service", |
| "//base", |
| "//base/third_party/dynamic_annotations", |
| "//build:chromecast_buildflags", |
| "//build:chromeos_buildflags", |
| "//components/crash/core/common", |
| "//components/viz/common:resource_format_utils", |
| "//gpu/command_buffer/client", |
| "//gpu/command_buffer/common:gles2_utils", |
| "//gpu/config", |
| "//gpu/ipc/common", |
| "//gpu/vulkan:buildflags", |
| "//skia:buildflags", |
| "//third_party/angle:angle_commit_id", |
| "//third_party/angle:angle_image_util", |
| "//third_party/libyuv", |
| "//third_party/protobuf:protobuf_lite", |
| "//third_party/re2", |
| "//third_party/zlib", |
| "//ui/gfx", |
| "//ui/gfx/geometry", |
| "//ui/gl", |
| "//ui/gl:buildflags", |
| "//ui/gl/init", |
| ] |
| |
| # If statically linked against ANGLE, link against angle:translator which is already included with ANGLE. |
| if (use_static_angle) { |
| deps += [ "//third_party/angle:translator" ] |
| } else { |
| deps += [ "//third_party/angle:translator_gl_d3d_only" ] |
| } |
| |
| if (use_ozone) { |
| deps += [ |
| "//ui/base:features", |
| "//ui/ozone", |
| ] |
| } |
| |
| if (enable_vulkan) { |
| deps += [ |
| "//components/viz/common:vulkan_context_provider", |
| "//gpu/vulkan", |
| ] |
| |
| if (is_linux || is_chromeos || is_fuchsia || is_android || is_win) { |
| sources += [ |
| "external_semaphore.cc", |
| "external_semaphore.h", |
| "external_semaphore_pool.cc", |
| "external_semaphore_pool.h", |
| "external_vk_image_backing.cc", |
| "external_vk_image_backing.h", |
| "external_vk_image_factory.cc", |
| "external_vk_image_factory.h", |
| "external_vk_image_gl_representation.cc", |
| "external_vk_image_gl_representation.h", |
| "external_vk_image_overlay_representation.cc", |
| "external_vk_image_overlay_representation.h", |
| "external_vk_image_skia_representation.cc", |
| "external_vk_image_skia_representation.h", |
| ] |
| } |
| |
| if (use_ozone) { |
| sources += [ |
| "shared_image_backing_factory_ozone.cc", |
| "shared_image_backing_factory_ozone.h", |
| "shared_image_backing_ozone.cc", |
| "shared_image_backing_ozone.h", |
| "shared_image_representation_gl_ozone.cc", |
| "shared_image_representation_gl_ozone.h", |
| ] |
| } |
| |
| if ((is_linux || is_chromeos) && use_dawn) { |
| sources += [ |
| "external_vk_image_dawn_representation.cc", |
| "external_vk_image_dawn_representation.h", |
| ] |
| } |
| |
| if (use_ozone && use_dawn) { |
| sources += [ |
| "shared_image_representation_dawn_ozone.cc", |
| "shared_image_representation_dawn_ozone.h", |
| ] |
| } |
| if (use_x11) { |
| deps += [ "//ui/base:features" ] |
| } |
| } |
| |
| if (use_dawn) { |
| deps += [ |
| "//third_party/dawn/src/dawn:dawn_proc", |
| "//third_party/dawn/src/dawn_native", |
| "//third_party/dawn/src/dawn_platform", |
| ] |
| if (dawn_enable_opengles) { |
| sources += [ |
| "shared_image_representation_dawn_egl_image.cc", |
| "shared_image_representation_dawn_egl_image.h", |
| ] |
| } |
| } |
| |
| if (is_mac) { |
| deps += [ "//components/viz/common:metal_context_provider" ] |
| sources += [ |
| "shared_image_backing_factory_iosurface.h", |
| "shared_image_backing_factory_iosurface.mm", |
| ] |
| |
| # Required by gles2_cmd_decoder.cc on Mac. |
| frameworks = [ |
| "Cocoa.framework", |
| "IOSurface.framework", |
| "Metal.framework", |
| "OpenGL.framework", |
| ] |
| } |
| |
| if (skia_use_dawn) { |
| deps += [ |
| "//components/viz/common:dawn_context_provider", |
| "//third_party/dawn/src/dawn:dawn_proc", |
| "//third_party/dawn/src/dawn:dawncpp", |
| ] |
| } |
| |
| if (is_android) { |
| if (!is_debug) { |
| # On Android optimize more since this component can be a bottleneck. |
| configs -= [ "//build/config/compiler:default_optimization" ] |
| configs += [ "//build/config/compiler:optimize_max" ] |
| } |
| sources += [ |
| "ahardwarebuffer_utils.cc", |
| "ahardwarebuffer_utils.h", |
| "image_reader_gl_owner.cc", |
| "image_reader_gl_owner.h", |
| "shared_image_backing_android.cc", |
| "shared_image_backing_android.h", |
| "shared_image_backing_egl_image.cc", |
| "shared_image_backing_egl_image.h", |
| "shared_image_backing_factory_ahardwarebuffer.cc", |
| "shared_image_backing_factory_ahardwarebuffer.h", |
| "shared_image_backing_factory_egl.cc", |
| "shared_image_backing_factory_egl.h", |
| "shared_image_backing_scoped_hardware_buffer_fence_sync.cc", |
| "shared_image_backing_scoped_hardware_buffer_fence_sync.h", |
| "shared_image_batch_access_manager.cc", |
| "shared_image_batch_access_manager.h", |
| "shared_image_representation_gl_texture_android.cc", |
| "shared_image_representation_gl_texture_android.h", |
| "shared_image_representation_gl_texture_passthrough_android.cc", |
| "shared_image_representation_gl_texture_passthrough_android.h", |
| "shared_image_representation_skia_vk_android.cc", |
| "shared_image_representation_skia_vk_android.h", |
| "shared_image_video.cc", |
| "shared_image_video.h", |
| "stream_texture_shared_image_interface.h", |
| "surface_texture_gl_owner.cc", |
| "surface_texture_gl_owner.h", |
| "texture_owner.cc", |
| "texture_owner.h", |
| ] |
| |
| deps += [ "//base" ] |
| |
| # TODO(cblume): http://crbug.com/911313 |
| # Abstract out the platform specific defines. Right now we need the android |
| # platform specific define here to be able to include android specific |
| # functions. |
| defines = [ "VK_USE_PLATFORM_ANDROID_KHR" ] |
| deps += [ "//third_party/libsync" ] |
| if (enable_vulkan) { |
| deps += [ |
| "//gpu/ipc/common:android_image_reader_utils", |
| "//gpu/vulkan", |
| ] |
| } |
| } |
| |
| if (is_win) { |
| sources += [ |
| "shared_image_backing_d3d.cc", |
| "shared_image_backing_d3d.h", |
| "shared_image_backing_factory_d3d.cc", |
| "shared_image_backing_factory_d3d.h", |
| "shared_image_representation_d3d.cc", |
| "shared_image_representation_d3d.h", |
| ] |
| } |
| } |
| |
| proto_library("disk_cache_proto") { |
| sources = [ "disk_cache_proto.proto" ] |
| } |
| |
| if (is_android) { |
| static_library("android_texture_owner_test_support") { |
| testonly = true |
| sources = [ |
| "mock_abstract_texture.cc", |
| "mock_abstract_texture.h", |
| "mock_texture_owner.cc", |
| "mock_texture_owner.h", |
| ] |
| deps = [ |
| ":gles2", |
| "//base/test:test_support", |
| "//gpu:test_support", |
| "//testing/gmock", |
| "//testing/gtest", |
| "//ui/gl", |
| "//ui/gl/init", |
| ] |
| } |
| } |
| |
| if (is_android) { |
| source_set("android_texture_owner_unittests") { |
| testonly = true |
| sources = [ |
| "image_reader_gl_owner_unittest.cc", |
| "surface_texture_gl_owner_unittest.cc", |
| "surface_texture_transform_unittest.cc", |
| ] |
| |
| deps = [ |
| ":android_texture_owner_test_support", |
| ":gles2", |
| "//base/test:test_support", |
| "//gpu:test_support", |
| "//testing/gmock", |
| "//testing/gtest", |
| "//ui/gl", |
| "//ui/gl/init", |
| ] |
| } |
| } |