skia2/gn/graphite.gni

160 lines
4.5 KiB
Plaintext
Raw Normal View History

# Copyright 2021 Google LLC
#
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# Things are easiest for everyone if these source paths are absolute.
_src = get_path_info("../src/gpu/graphite", "abspath")
_include = get_path_info("../include/gpu/graphite", "abspath")
_include_private = get_path_info("../include/private/gpu/graphite", "abspath")
skia_graphite_public = [
"$_include/BackendTexture.h",
"$_include/Context.h",
"$_include/GraphiteTypes.h",
"$_include/Recorder.h",
"$_include/Recording.h",
"$_include/SkStuff.h",
"$_include/TextureInfo.h",
]
skia_graphite_sources = [
"$_src/Attribute.h",
"$_src/BackendTexture.cpp",
"$_src/Buffer.cpp",
"$_src/Buffer.h",
"$_src/Caps.cpp",
"$_src/Caps.h",
[graphite] Initial ClipStack paired down from v1::ClipStack PS1 is the exact contents of src/gpu/v1/ClipStack.* copied to experimental/graphite/src. PS2+ shows all the changes to remove v1-only features and update some of the types over to what graphite uses. The major changes are: 1. FragmentProcessors, clip atlases, stencil mask writing, and SW mask writing are gone. 2. SW mask caching and tracking are gone. 3. Graphite is effectively in the "forceAA" mode that the original clip stack supported. So branches that focused on non-AA, or comparing AA or handling cases where elements' AA mismatched could all be removed. 4. Updated to use Graphite's Shape and Transform classes. Did not go as far as moving the bounds from SkIRect to Rect, but since everything is AA, it will be much simpler to switch to comparing float bounds directly and not worry about rounding in or out. That's a more substantial change so will come later. 5. The original ClipStack had a "Draw" type that was used to compute clip interactions between SaveRecords and Elements. It was always just device-space bounds because of limitations of the GrClip API. In Graphite, we can use the exact same set of info for Draws and Elements, making interaction tests share code and be more accurate. Since that's a more involved change, I just removed the simpler Draw type from this version for now. 6. Tried to add TODOs for what logic and extra state will need to be added to actually apply graphite's clip stack as depth-only draws. Bug: skia:12698 Change-Id: I418703e8f759cd5e1ddd1e302a864bf2204cf040 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/525516 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2022-03-31 15:59:16 +00:00
"$_src/ClipStack.cpp",
"$_src/ClipStack_graphite.h",
"$_src/CommandBuffer.cpp",
"$_src/CommandBuffer.h",
"$_src/CommandTypes.h",
"$_src/Context.cpp",
"$_src/ContextPriv.cpp",
"$_src/ContextPriv.h",
"$_src/ContextUtils.cpp",
"$_src/ContextUtils.h",
"$_src/CopyTask.cpp",
"$_src/CopyTask.h",
"$_src/Device.cpp",
"$_src/Device.h",
"$_src/DrawBufferManager.cpp",
"$_src/DrawBufferManager.h",
2021-10-04 20:36:51 +00:00
"$_src/DrawContext.cpp",
"$_src/DrawContext.h",
"$_src/DrawList.cpp",
"$_src/DrawList.h",
"$_src/DrawOrder.h",
"$_src/DrawPass.cpp",
"$_src/DrawPass.h",
"$_src/DrawTypes.h",
"$_src/DrawWriter.cpp",
"$_src/DrawWriter.h",
"$_src/GlobalCache.cpp",
"$_src/GlobalCache.h",
"$_src/Gpu.cpp",
"$_src/Gpu.h",
"$_src/GpuWorkSubmission.cpp",
"$_src/GpuWorkSubmission.h",
"$_src/GraphicsPipeline.cpp",
"$_src/GraphicsPipeline.h",
"$_src/GraphicsPipelineDesc.cpp",
"$_src/GraphicsPipelineDesc.h",
"$_src/GraphiteResourceKey.cpp",
"$_src/GraphiteResourceKey.h",
"$_src/Image_Graphite.cpp",
"$_src/Image_Graphite.h",
"$_src/Log.h",
"$_src/PaintParams.cpp",
"$_src/PaintParams.h",
"$_src/PipelineDataCache.h",
"$_src/Recorder.cpp",
"$_src/RecorderPriv.cpp",
"$_src/RecorderPriv.h",
"$_src/Recording.cpp",
"$_src/RenderPassTask.cpp",
"$_src/RenderPassTask.h",
"$_src/Renderer.h",
"$_src/Resource.cpp",
"$_src/Resource.h",
"$_src/ResourceCache.cpp",
"$_src/ResourceCache.h",
"$_src/ResourceProvider.cpp",
"$_src/ResourceProvider.h",
"$_src/ResourceTypes.h",
"$_src/Sampler.cpp",
"$_src/Sampler.h",
"$_src/SkStuff.cpp",
"$_src/Surface_Graphite.cpp",
"$_src/Surface_Graphite.h",
"$_src/Task.cpp",
"$_src/Task.h",
"$_src/TaskGraph.cpp",
"$_src/TaskGraph.h",
"$_src/Texture.cpp",
"$_src/Texture.h",
"$_src/TextureInfo.cpp",
"$_src/TextureProxy.cpp",
"$_src/TextureProxy.h",
"$_src/TextureProxyView.h",
"$_src/TextureUtils.cpp",
"$_src/TextureUtils.h",
"$_src/UniformManager.cpp",
"$_src/UniformManager.h",
"$_src/UploadBufferManager.cpp",
"$_src/UploadBufferManager.h",
"$_src/UploadTask.cpp",
"$_src/UploadTask.h",
"$_src/geom/BoundsManager.h",
"$_src/geom/IntersectionTree.cpp",
"$_src/geom/IntersectionTree.h",
"$_src/geom/Rect.h",
"$_src/geom/Shape.cpp",
"$_src/geom/Shape.h",
"$_src/geom/Transform.cpp",
"$_src/geom/Transform_graphite.h",
"$_src/render/CoverBoundsRenderStep.cpp",
"$_src/render/CoverBoundsRenderStep.h",
"$_src/render/DynamicInstancesPatchAllocator.h",
"$_src/render/MiddleOutFanRenderStep.cpp",
"$_src/render/MiddleOutFanRenderStep.h",
"$_src/render/StencilAndCoverDSS.h",
"$_src/render/StencilAndFillPathRenderer.cpp",
"$_src/render/TessellateCurvesRenderStep.cpp",
"$_src/render/TessellateCurvesRenderStep.h",
"$_src/render/TessellateStrokesRenderStep.cpp",
"$_src/render/TessellateStrokesRenderStep.h",
"$_src/render/TessellateWedgesRenderStep.cpp",
"$_src/render/TessellateWedgesRenderStep.h",
]
skia_graphite_mtl_sources = [
"$_include/mtl/MtlBackendContext.h",
"$_include/mtl/MtlTypes.h",
"$_include_private/MtlTypesPriv.h",
"$_src/mtl/MtlBlitCommandEncoder.h",
"$_src/mtl/MtlBuffer.h",
"$_src/mtl/MtlBuffer.mm",
"$_src/mtl/MtlCaps.h",
"$_src/mtl/MtlCaps.mm",
"$_src/mtl/MtlCommandBuffer.h",
"$_src/mtl/MtlCommandBuffer.mm",
"$_src/mtl/MtlGpu.h",
"$_src/mtl/MtlGpu.mm",
"$_src/mtl/MtlGraphicsPipeline.h",
"$_src/mtl/MtlGraphicsPipeline.mm",
"$_src/mtl/MtlRenderCommandEncoder.h",
"$_src/mtl/MtlResourceProvider.h",
"$_src/mtl/MtlResourceProvider.mm",
"$_src/mtl/MtlSampler.h",
"$_src/mtl/MtlSampler.mm",
"$_src/mtl/MtlTexture.h",
"$_src/mtl/MtlTexture.mm",
"$_src/mtl/MtlTrampoline.h",
"$_src/mtl/MtlTrampoline.mm",
"$_src/mtl/MtlTypesPriv.mm",
"$_src/mtl/MtlUtils.h",
"$_src/mtl/MtlUtils.mm",
]