gecko-dev/gfx/layers/moz.build
Andrew Osmond 3aedcdc649 Bug 1492930 - Part 1. Expose composition of shared surfaces cache to allow memory reporting. r=nical
This exposes methods to capture a snapshot of the SharedSurfacesParent
cache for memory reporting purposes. It yields the identifiers, image
properties and references to images mapped in the cache. This will be
used by the compositor process to list everything it has mapped into its
memory space. It will also be used by the content processes / main
process to list images that specific process had mapped into the
compositor process. This will allow us to easily identify what images
remain in the compositor process, but are missing from the surface
cache.
2018-09-25 09:13:51 -04:00

586 lines
18 KiB
Python
Executable File

# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# vim: set filetype=python:
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
with Files('**'):
BUG_COMPONENT = ('Core', 'Graphics: Layers')
with Files('apz/**'):
BUG_COMPONENT = ('Core', 'Panning and Zooming')
EXPORTS += [
'basic/BasicCanvasLayer.h',
'basic/BasicImplData.h',
'basic/BasicLayers.h',
'basic/BasicLayersImpl.h',
'basic/BasicPaintedLayer.h',
'client/ClientCanvasLayer.h',
'client/ClientContainerLayer.h',
'client/ClientLayerManager.h',
'client/ClientPaintedLayer.h',
'client/ClientTiledPaintedLayer.h',
'composite/CompositableHost.h',
'composite/ImageHost.h',
'CompositorTypes.h',
'D3D9SurfaceImage.h',
'FrameMetrics.h',
'GLImages.h',
'GPUVideoImage.h',
'ImageContainer.h',
'ImageLayers.h',
'ImageTypes.h',
'IMFYCbCrImage.h',
'ipc/ThreadSafeRefcountingWithMainThreadDestruction.h',
'Layers.h',
'LayerScope.h',
'LayersLogging.h',
'LayerSorter.h',
'LayersTypes.h',
'LayerTreeInvalidation.h',
'LayerUserData.h',
'opengl/OGLShaderProgram.h',
'protobuf/LayerScopePacket.pb.h',
'ReadbackLayer.h',
'TiledLayerBuffer.h',
]
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
SOURCES += [
'D3D11ShareHandleImage.cpp',
'D3D11YCbCrImage.cpp',
]
UNIFIED_SOURCES += [
'D3D9SurfaceImage.cpp',
'IMFYCbCrImage.cpp',
'TextureDIB.cpp',
]
EXPORTS.mozilla.layers += [
'TextureDIB.h',
]
if CONFIG['MOZ_ENABLE_D3D10_LAYER']:
EXPORTS.mozilla.layers += [
'd3d11/CompositorD3D11.h',
'd3d11/DeviceAttachmentsD3D11.h',
'd3d11/DiagnosticsD3D11.h',
'd3d11/HelpersD3D11.h',
'd3d11/MLGDeviceD3D11.h',
'd3d11/ReadbackManagerD3D11.h',
'd3d11/ShaderDefinitionsD3D11.h',
'd3d11/TextureD3D11.h',
]
UNIFIED_SOURCES += [
'd3d11/DiagnosticsD3D11.cpp',
'd3d11/MLGDeviceD3D11.cpp',
'd3d11/TextureD3D11.cpp',
]
SOURCES += [
'd3d11/CompositorD3D11.cpp',
'd3d11/DeviceAttachmentsD3D11.cpp',
'd3d11/ReadbackManagerD3D11.cpp',
]
EXPORTS.gfxipc += [
'ipc/ShadowLayerUtils.h',
]
EXPORTS.mozilla.dom += [
'apz/util/CheckerboardReportService.h',
]
EXPORTS.mozilla.layers += [
'AnimationHelper.h',
'AnimationInfo.h',
'apz/public/APZInputBridge.h',
'apz/public/APZSampler.h',
'apz/public/APZUpdater.h',
'apz/public/CompositorController.h',
'apz/public/GeckoContentController.h',
'apz/public/IAPZCTreeManager.h',
'apz/public/MetricsSharingController.h',
# exporting things from apz/src is temporary until we extract a
# proper interface for the code there
'apz/src/APZUtils.h',
'apz/src/AsyncDragMetrics.h',
'apz/src/FocusTarget.h',
'apz/src/KeyboardMap.h',
'apz/src/KeyboardScrollAction.h',
'apz/testutil/APZTestData.h',
'apz/util/ActiveElementManager.h',
'apz/util/APZCCallbackHelper.h',
'apz/util/APZEventState.h',
'apz/util/APZThreadUtils.h',
'apz/util/ChromeProcessController.h',
'apz/util/ContentProcessController.h',
'apz/util/DoubleTapToZoom.h',
'apz/util/InputAPZContext.h',
'apz/util/ScrollLinkedEffectDetector.h',
'apz/util/TouchActionHelper.h',
'AsyncCanvasRenderer.h',
'AtomicRefCountedWithFinalize.h',
'AxisPhysicsModel.h',
'AxisPhysicsMSDModel.h',
'basic/BasicCompositor.h',
'basic/MacIOSurfaceTextureHostBasic.h',
'basic/TextureHostBasic.h',
'BSPTree.h',
'BufferTexture.h',
'CanvasRenderer.h',
'client/CanvasClient.h',
'client/CompositableClient.h',
'client/ContentClient.h',
'client/GPUVideoTextureClient.h',
'client/ImageClient.h',
'client/MultiTiledContentClient.h',
'client/SingleTiledContentClient.h',
'client/TextureClient.h',
'client/TextureClientPool.h',
'client/TextureClientRecycleAllocator.h',
'client/TextureClientSharedSurface.h',
'client/TiledContentClient.h',
'composite/AsyncCompositionManager.h',
'composite/CanvasLayerComposite.h',
'composite/ColorLayerComposite.h',
'composite/CompositorScreenshotGrabber.h',
'composite/ContainerLayerComposite.h',
'composite/ContentHost.h',
'composite/Diagnostics.h',
'composite/FPSCounter.h',
'composite/FrameUniformityData.h',
'composite/GPUVideoTextureHost.h',
'composite/ImageComposite.h',
'composite/ImageHost.h',
'composite/ImageLayerComposite.h',
'composite/LayerManagerComposite.h',
'composite/PaintedLayerComposite.h',
'composite/TextRenderer.h',
'composite/TextureHost.h',
'composite/TiledContentHost.h',
'Compositor.h',
'CompositorTypes.h',
'CopyableCanvasRenderer.h',
'D3D11ShareHandleImage.h',
'D3D11YCbCrImage.h',
'D3D9SurfaceImage.h',
'DirectionUtils.h',
'Effects.h',
'ImageDataSerializer.h',
'ipc/APZChild.h',
'ipc/APZCTreeManagerChild.h',
'ipc/APZCTreeManagerParent.h',
'ipc/APZInputBridgeChild.h',
'ipc/APZInputBridgeParent.h',
'ipc/CompositableForwarder.h',
'ipc/CompositableTransactionParent.h',
'ipc/CompositorBridgeChild.h',
'ipc/CompositorBridgeParent.h',
'ipc/CompositorManagerChild.h',
'ipc/CompositorManagerParent.h',
'ipc/CompositorThread.h',
'ipc/CompositorVsyncScheduler.h',
'ipc/CompositorVsyncSchedulerOwner.h',
'ipc/CrossProcessCompositorBridgeParent.h',
'ipc/ImageBridgeChild.h',
'ipc/ImageBridgeParent.h',
'ipc/ISurfaceAllocator.h',
'ipc/KnowsCompositor.h',
'ipc/LayerAnimationUtils.h',
'ipc/LayersMessageUtils.h',
'ipc/LayerTransactionChild.h',
'ipc/LayerTransactionParent.h',
'ipc/LayerTreeOwnerTracker.h',
'ipc/RefCountedShmem.h',
'ipc/RemoteContentController.h',
'ipc/ShadowLayers.h',
'ipc/SharedPlanarYCbCrImage.h',
'ipc/SharedRGBImage.h',
'ipc/SharedSurfacesChild.h',
'ipc/SharedSurfacesMemoryReport.h',
'ipc/SharedSurfacesParent.h',
'ipc/SynchronousTask.h',
'ipc/TextureForwarder.h',
'ipc/UiCompositorControllerChild.h',
'ipc/UiCompositorControllerMessageTypes.h',
'ipc/UiCompositorControllerParent.h',
'ipc/VideoBridgeChild.h',
'ipc/VideoBridgeParent.h',
'LayerAttributes.h',
'LayerMetricsWrapper.h',
'LayersHelpers.h',
'LayersTypes.h',
'MemoryPressureObserver.h',
'mlgpu/LayerManagerMLGPU.h',
'mlgpu/LayerMLGPU.h',
'mlgpu/MemoryReportingMLGPU.h',
'mlgpu/MLGDevice.h',
'mlgpu/MLGDeviceTypes.h',
'mlgpu/ShaderDefinitionsMLGPU.h',
'mlgpu/UtilityMLGPU.h',
'opengl/CompositingRenderTargetOGL.h',
'opengl/CompositorOGL.h',
'opengl/MacIOSurfaceTextureClientOGL.h',
'opengl/MacIOSurfaceTextureHostOGL.h',
'opengl/TextureClientOGL.h',
'opengl/TextureHostOGL.h',
'PaintThread.h',
'PersistentBufferProvider.h',
'ProfilerScreenshots.h',
'RenderTrace.h',
'RotatedBuffer.h',
'ShareableCanvasRenderer.h',
'SourceSurfaceSharedData.h',
'SourceSurfaceVolatileData.h',
'SyncObject.h',
'TextureSourceProvider.h',
'TextureWrapperImage.h',
'TransactionIdAllocator.h',
'UpdateImageHelper.h',
'wr/AsyncImagePipelineManager.h',
'wr/ClipManager.h',
'wr/IpcResourceUpdateQueue.h',
'wr/StackingContextHelper.h',
'wr/WebRenderBridgeChild.h',
'wr/WebRenderBridgeParent.h',
'wr/WebRenderCanvasRenderer.h',
'wr/WebRenderCommandBuilder.h',
'wr/WebRenderDrawEventRecorder.h',
'wr/WebRenderImageHost.h',
'wr/WebRenderLayerManager.h',
'wr/WebRenderLayersLogging.h',
'wr/WebRenderMessageUtils.h',
'wr/WebRenderScrollData.h',
'wr/WebRenderScrollDataWrapper.h',
'wr/WebRenderTextureHost.h',
'wr/WebRenderTextureHostWrapper.h',
'wr/WebRenderUserData.h',
]
if CONFIG['MOZ_X11']:
EXPORTS.mozilla.layers += [
'basic/TextureClientX11.h',
'basic/X11TextureSourceBasic.h',
'composite/X11TextureHost.h',
'ipc/ShadowLayerUtilsX11.h',
'opengl/X11TextureSourceOGL.h',
]
SOURCES += [
'basic/TextureClientX11.cpp',
'basic/X11BasicCompositor.cpp',
'basic/X11TextureSourceBasic.cpp',
'composite/X11TextureHost.cpp',
'ipc/ShadowLayerUtilsX11.cpp',
'opengl/X11TextureSourceOGL.cpp',
]
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
EXPORTS.mozilla.layers += [
'opengl/GLManager.h',
'TextureSync.h',
]
EXPORTS += [
'MacIOSurfaceHelpers.h',
'MacIOSurfaceImage.h',
]
UNIFIED_SOURCES += [
'opengl/GLManager.cpp',
'TextureSync.cpp',
]
SOURCES += [
'ipc/ShadowLayerUtilsMac.cpp',
'MacIOSurfaceHelpers.cpp',
'MacIOSurfaceImage.cpp',
]
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android':
UNIFIED_SOURCES += [
'apz/src/AndroidAPZ.cpp',
'apz/src/AndroidDynamicToolbarAnimator.cpp',
'apz/src/AndroidFlingPhysics.cpp',
]
EXPORTS.mozilla.layers += [
'apz/src/AndroidDynamicToolbarAnimator.h',
]
UNIFIED_SOURCES += [
'AnimationHelper.cpp',
'AnimationInfo.cpp',
'apz/src/APZCTreeManager.cpp',
'apz/src/APZInputBridge.cpp',
'apz/src/APZSampler.cpp',
'apz/src/APZUpdater.cpp',
'apz/src/APZUtils.cpp',
'apz/src/AsyncPanZoomController.cpp',
'apz/src/AutoscrollAnimation.cpp',
'apz/src/Axis.cpp',
'apz/src/CheckerboardEvent.cpp',
'apz/src/DragTracker.cpp',
'apz/src/FocusState.cpp',
'apz/src/FocusTarget.cpp',
'apz/src/GenericScrollAnimation.cpp',
'apz/src/GestureEventListener.cpp',
'apz/src/HitTestingTreeNode.cpp',
'apz/src/InputBlockState.cpp',
'apz/src/InputQueue.cpp',
'apz/src/KeyboardMap.cpp',
'apz/src/KeyboardScrollAction.cpp',
'apz/src/KeyboardScrollAnimation.cpp',
'apz/src/OverscrollHandoffState.cpp',
'apz/src/PotentialCheckerboardDurationTracker.cpp',
'apz/src/QueuedInput.cpp',
'apz/src/TouchCounter.cpp',
'apz/src/WheelScrollAnimation.cpp',
'apz/testutil/APZTestData.cpp',
'apz/util/ActiveElementManager.cpp',
'apz/util/APZCCallbackHelper.cpp',
'apz/util/APZEventState.cpp',
'apz/util/APZThreadUtils.cpp',
'apz/util/CheckerboardReportService.cpp',
'apz/util/ChromeProcessController.cpp',
'apz/util/ContentProcessController.cpp',
'apz/util/DoubleTapToZoom.cpp',
'apz/util/InputAPZContext.cpp',
'apz/util/ScrollLinkedEffectDetector.cpp',
'apz/util/TouchActionHelper.cpp',
'AsyncCanvasRenderer.cpp',
'AxisPhysicsModel.cpp',
'AxisPhysicsMSDModel.cpp',
'basic/BasicCanvasLayer.cpp',
'basic/BasicColorLayer.cpp',
'basic/BasicCompositor.cpp',
'basic/BasicContainerLayer.cpp',
'basic/BasicImages.cpp',
'basic/BasicLayerManager.cpp',
'basic/BasicLayersImpl.cpp',
'basic/BasicPaintedLayer.cpp',
'basic/TextureHostBasic.cpp',
'BSPTree.cpp',
'BufferTexture.cpp',
'CanvasRenderer.cpp',
'client/CanvasClient.cpp',
'client/ClientCanvasLayer.cpp',
'client/ClientCanvasRenderer.cpp',
'client/ClientColorLayer.cpp',
'client/ClientContainerLayer.cpp',
'client/ClientImageLayer.cpp',
'client/ClientLayerManager.cpp',
'client/ClientPaintedLayer.cpp',
'client/ClientTiledPaintedLayer.cpp',
'client/CompositableClient.cpp',
'client/ContentClient.cpp',
'client/GPUVideoTextureClient.cpp',
'client/ImageClient.cpp',
'client/MultiTiledContentClient.cpp',
'client/SingleTiledContentClient.cpp',
'client/TextureClient.cpp',
'client/TextureClientPool.cpp',
'client/TextureClientRecycleAllocator.cpp',
'client/TextureClientSharedSurface.cpp',
'client/TiledContentClient.cpp',
'composite/AsyncCompositionManager.cpp',
'composite/CanvasLayerComposite.cpp',
'composite/ColorLayerComposite.cpp',
'composite/CompositableHost.cpp',
'composite/CompositorScreenshotGrabber.cpp',
'composite/ContainerLayerComposite.cpp',
'composite/ContentHost.cpp',
'composite/Diagnostics.cpp',
'composite/FPSCounter.cpp',
'composite/FrameUniformityData.cpp',
'composite/GPUVideoTextureHost.cpp',
'composite/ImageComposite.cpp',
'composite/ImageHost.cpp',
'composite/ImageLayerComposite.cpp',
'composite/LayerManagerComposite.cpp',
'composite/PaintedLayerComposite.cpp',
'composite/TextRenderer.cpp',
'composite/TextureHost.cpp',
'composite/TiledContentHost.cpp',
'Compositor.cpp',
'CopyableCanvasRenderer.cpp',
'Effects.cpp',
'FrameMetrics.cpp',
'GLImages.cpp',
'ImageDataSerializer.cpp',
'ImageLayers.cpp',
'ipc/APZChild.cpp',
'ipc/APZCTreeManagerChild.cpp',
'ipc/APZCTreeManagerParent.cpp',
'ipc/APZInputBridgeChild.cpp',
'ipc/APZInputBridgeParent.cpp',
'ipc/CompositableTransactionParent.cpp',
'ipc/CompositorBench.cpp',
'ipc/CompositorBridgeChild.cpp',
'ipc/CompositorBridgeParent.cpp',
'ipc/CompositorManagerChild.cpp',
'ipc/CompositorManagerParent.cpp',
'ipc/CompositorThread.cpp',
'ipc/CompositorVsyncScheduler.cpp',
'ipc/CrossProcessCompositorBridgeParent.cpp',
'ipc/ImageBridgeChild.cpp',
'ipc/ImageBridgeParent.cpp',
'ipc/ISurfaceAllocator.cpp',
'ipc/LayerAnimationUtils.cpp',
'ipc/LayerTransactionChild.cpp',
'ipc/LayerTransactionParent.cpp',
'ipc/LayerTreeOwnerTracker.cpp',
'ipc/RefCountedShmem.cpp',
'ipc/RemoteContentController.cpp',
'ipc/ShadowLayers.cpp',
'ipc/SharedPlanarYCbCrImage.cpp',
'ipc/SharedRGBImage.cpp',
'ipc/SharedSurfacesChild.cpp',
'ipc/SharedSurfacesParent.cpp',
'ipc/UiCompositorControllerChild.cpp',
'ipc/UiCompositorControllerParent.cpp',
'ipc/VideoBridgeChild.cpp',
'ipc/VideoBridgeParent.cpp',
'Layers.cpp',
'LayerScope.cpp',
'LayersHelpers.cpp',
'LayersLogging.cpp',
'LayerSorter.cpp',
'LayersTypes.cpp',
'LayerTreeInvalidation.cpp',
'MemoryPressureObserver.cpp',
'mlgpu/BufferCache.cpp',
'mlgpu/CanvasLayerMLGPU.cpp',
'mlgpu/ContainerLayerMLGPU.cpp',
'mlgpu/FrameBuilder.cpp',
'mlgpu/ImageLayerMLGPU.cpp',
'mlgpu/LayerManagerMLGPU.cpp',
'mlgpu/LayerMLGPU.cpp',
'mlgpu/MaskOperation.cpp',
'mlgpu/MemoryReportingMLGPU.cpp',
'mlgpu/MLGDevice.cpp',
'mlgpu/PaintedLayerMLGPU.cpp',
'mlgpu/RenderPassMLGPU.cpp',
'mlgpu/RenderViewMLGPU.cpp',
'mlgpu/SharedBufferMLGPU.cpp',
'mlgpu/StagingBuffer.cpp',
'mlgpu/TexturedLayerMLGPU.cpp',
'mlgpu/TextureSourceProviderMLGPU.cpp',
'opengl/CompositingRenderTargetOGL.cpp',
'opengl/CompositorOGL.cpp',
'opengl/GLBlitTextureImageHelper.cpp',
'opengl/OGLShaderProgram.cpp',
'opengl/TextureClientOGL.cpp',
'opengl/TextureHostOGL.cpp',
'PaintThread.cpp',
'ProfilerScreenshots.cpp',
'ReadbackProcessor.cpp',
'RenderTrace.cpp',
'RotatedBuffer.cpp',
'ShareableCanvasRenderer.cpp',
'SourceSurfaceSharedData.cpp',
'SourceSurfaceVolatileData.cpp',
'SyncObject.cpp',
'TextureSourceProvider.cpp',
'TextureWrapperImage.cpp',
'wr/AsyncImagePipelineManager.cpp',
'wr/ClipManager.cpp',
'wr/IpcResourceUpdateQueue.cpp',
'wr/StackingContextHelper.cpp',
'wr/WebRenderBridgeChild.cpp',
'wr/WebRenderBridgeParent.cpp',
'wr/WebRenderCanvasRenderer.cpp',
'wr/WebRenderCommandBuilder.cpp',
'wr/WebRenderDrawEventRecorder.cpp',
'wr/WebRenderImageHost.cpp',
'wr/WebRenderLayerManager.cpp',
'wr/WebRenderLayersLogging.cpp',
'wr/WebRenderScrollData.cpp',
'wr/WebRenderTextureHostWrapper.cpp',
'wr/WebRenderUserData.cpp',
# XXX here are some unified build error.
#'wr/WebRenderTextureHost.cpp'
]
SOURCES += [
'basic/BasicImageLayer.cpp',
'ImageContainer.cpp',
'PersistentBufferProvider.cpp',
'protobuf/LayerScopePacket.pb.cc',
'wr/WebRenderTextureHost.cpp',
]
DEFINES['GOOGLE_PROTOBUF_NO_RTTI'] = True
DEFINES['GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER'] = True
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
SOURCES += [
'basic/MacIOSurfaceTextureHostBasic.cpp',
'opengl/MacIOSurfaceTextureClientOGL.cpp',
'opengl/MacIOSurfaceTextureHostOGL.cpp',
]
IPDL_SOURCES += [
'ipc/LayersMessages.ipdlh',
'ipc/LayersSurfaces.ipdlh',
'ipc/PAPZ.ipdl',
'ipc/PAPZCTreeManager.ipdl',
'ipc/PAPZInputBridge.ipdl',
'ipc/PCompositorBridge.ipdl',
'ipc/PCompositorManager.ipdl',
'ipc/PImageBridge.ipdl',
'ipc/PLayerTransaction.ipdl',
'ipc/PTexture.ipdl',
'ipc/PUiCompositorController.ipdl',
'ipc/PVideoBridge.ipdl',
'ipc/PWebRenderBridge.ipdl',
'ipc/WebRenderMessages.ipdlh',
]
include('/ipc/chromium/chromium-config.mozbuild')
if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
GENERATED_FILES = [
'CompositorD3D11Shaders.h',
'MLGShaders.h',
]
d3d11_shaders = GENERATED_FILES['CompositorD3D11Shaders.h']
d3d11_shaders.script = 'd3d11/genshaders.py'
d3d11_shaders.inputs = ['d3d11/shaders.manifest']
mlg_shaders = GENERATED_FILES['MLGShaders.h']
mlg_shaders.script = 'd3d11/genshaders.py'
mlg_shaders.inputs = ['d3d11/mlgshaders/shaders.manifest']
LOCAL_INCLUDES += [
'/docshell/base', # for nsDocShell.h
'/layout/base', # for TouchManager.h
'/layout/generic', # for nsTextFrame.h
'/media/libyuv/libyuv/include', # for libyuv.h
]
FINAL_LIBRARY = 'xul'
if CONFIG['MOZ_DEBUG']:
DEFINES['D3D_DEBUG_INFO'] = True
if CONFIG['MOZ_ENABLE_D3D10_LAYER']:
DEFINES['MOZ_ENABLE_D3D10_LAYER'] = True
if CONFIG['ENABLE_TESTS']:
DIRS += ['apz/test/gtest']
MOCHITEST_MANIFESTS += ['apz/test/mochitest/mochitest.ini']
MOCHITEST_CHROME_MANIFESTS += ['apz/test/mochitest/chrome.ini']
CXXFLAGS += CONFIG['MOZ_CAIRO_CFLAGS']
CXXFLAGS += CONFIG['TK_CFLAGS']
LOCAL_INCLUDES += CONFIG['SKIA_INCLUDES']
if CONFIG['CC_TYPE'] in ('clang', 'gcc'):
CXXFLAGS += ['-Wno-error=shadow']
# Suppress warnings in third-party code.
CXXFLAGS += [
'-Wno-maybe-uninitialized'
]
if CONFIG['MOZ_ENABLE_SKIA']:
UNIFIED_SOURCES += [
'composite/PaintCounter.cpp',
]