1cb93a386Sopenharmony_ciSkia Graphics Release Notes
2cb93a386Sopenharmony_ci
3cb93a386Sopenharmony_ciThis file includes a list of high level updates for each milestone release.
4cb93a386Sopenharmony_ci
5cb93a386Sopenharmony_ciMilestone 98
6cb93a386Sopenharmony_ci------------
7cb93a386Sopenharmony_ci  * The following functions and methods are not defined in SkSurface when SK_SUPPORT_GPU is 0:
8cb93a386Sopenharmony_ci    MakeFromBackendTexture, MakeFromBackendRenderTarget, MakeRenderTarget,
9cb93a386Sopenharmony_ci    getBackendTexture, getBackendRenderTarget, replaceBackendTexture. flush() with parameters
10cb93a386Sopenharmony_ci    was removed as well. These were all no-ops anyway when just the CPU backend was compiled in
11cb93a386Sopenharmony_ci    (noting that flush() and flushAndSubmit() are still no-ops on the CPU backend).
12cb93a386Sopenharmony_ci  * GrBackendSemaphore only includes methods that match the GPU backend that Skia was compiled for.
13cb93a386Sopenharmony_ci    For example, initVulkan and vkSemaphore are not defined unless the Vulkan backend is compiled
14cb93a386Sopenharmony_ci    into Skia.
15cb93a386Sopenharmony_ci  * Surfaces and images are now limited to just under 2GB of total size. Previously, larger images
16cb93a386Sopenharmony_ci    could be created, but the CPU backend would fail to index them correctly.
17cb93a386Sopenharmony_ci
18cb93a386Sopenharmony_ci
19cb93a386Sopenharmony_ciMilestone 97
20cb93a386Sopenharmony_ci------------
21cb93a386Sopenharmony_ci  * Added basic support for vulkan DRM modifiers. All of these are treated as read only textures
22cb93a386Sopenharmony_ci    internally (versus querying specific modifier support). Clients can either pass a flag to Vulkan
23cb93a386Sopenharmony_ci    GrBackendFormat to say it uses modifiers or pass the VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT
24cb93a386Sopenharmony_ci    to a GrBackendTexture via the GrVkImageInfo struct.
25cb93a386Sopenharmony_ci  * The following functions and methods are not defined in SkImage when SK_SUPPORT_GPU is 0:
26cb93a386Sopenharmony_ci    MakeTextureFromCompressed, MakeFromTexture, MakeFromCompressedTexture,
27cb93a386Sopenharmony_ci    MakeCrossContextFromPixmap, MakeFromAdoptedTexture, MakeFromYUVATextures,
28cb93a386Sopenharmony_ci    MakeFromYUVAPixmaps, MakePromiseTexture, MakePromiseYUVATexture, MakeBackendTextureFromSkImage,
29cb93a386Sopenharmony_ci    flush, flushAndSubmit, getBackendTexture, makeTextureImage.
30cb93a386Sopenharmony_ci    These were all no-ops anyway when just the CPU backend was compiled in.
31cb93a386Sopenharmony_ci
32cb93a386Sopenharmony_ci* * *
33cb93a386Sopenharmony_ci
34cb93a386Sopenharmony_ciMilestone 96
35cb93a386Sopenharmony_ci------------
36cb93a386Sopenharmony_ci  * SkRuntimeEffect no longer clamps the RGB values of an effect's output to the range 0..A.
37cb93a386Sopenharmony_ci    This makes it easier to use a hierarchy of SkSL shaders where intermediate values do not
38cb93a386Sopenharmony_ci    represent colors but are, for example, non-color inputs to a lighting model.
39cb93a386Sopenharmony_ci    http://review.skia.org/452558
40cb93a386Sopenharmony_ci
41cb93a386Sopenharmony_ci* * *
42cb93a386Sopenharmony_ci
43cb93a386Sopenharmony_ciMilestone 95
44cb93a386Sopenharmony_ci------------
45cb93a386Sopenharmony_ci  * Minimum supported iOS raised from 8 to 11. Skia may build back to iOS 9 but versions older
46cb93a386Sopenharmony_ci    than 11 are not tested. Community contributions to support versions 9 and 10 of iOS may be
47cb93a386Sopenharmony_ci    considered, but they may not be complex as they cannot be tested.
48cb93a386Sopenharmony_ci
49cb93a386Sopenharmony_ci* * *
50cb93a386Sopenharmony_ci
51cb93a386Sopenharmony_ciMilestone 94
52cb93a386Sopenharmony_ci------------
53cb93a386Sopenharmony_ci  * Metal backend has been changed to track command buffer resources manually
54cb93a386Sopenharmony_ci    rather than using retained resources.
55cb93a386Sopenharmony_ci    https://review.skia.org/432878
56cb93a386Sopenharmony_ci
57cb93a386Sopenharmony_ci  * Added virtual onResetClip() to SkCanvas for Android Framework, to emulate the soon-to-be-removed
58cb93a386Sopenharmony_ci    expanding clip ops guarded by SK_SUPPORT_DEPRECATED_CLIPOPS.
59cb93a386Sopenharmony_ci    https://review.skia.org/430897
60cb93a386Sopenharmony_ci
61cb93a386Sopenharmony_ci  * Removed SK_SUPPORT_DEPRECATED_CLIPOPS build flag. Clips can only be intersect and difference.
62cb93a386Sopenharmony_ci    https://review.skia.org/436565
63cb93a386Sopenharmony_ci
64cb93a386Sopenharmony_ci  * There is a new syntax for invoking (sampling) child effects in SkSL. Previously, children
65cb93a386Sopenharmony_ci    (shaders, colorFilters, blenders) were invoked using different overloads of `sample`. That
66cb93a386Sopenharmony_ci    syntax is deprecated (but still supported). Now, the child behaves like an object, with a method
67cb93a386Sopenharmony_ci    name `eval`. The arguments to these `eval` methods are the same as the arguments in the old
68cb93a386Sopenharmony_ci    `sample` intrinsics. For example:
69cb93a386Sopenharmony_ci      // Old syntax:
70cb93a386Sopenharmony_ci        sample(shader, xy)
71cb93a386Sopenharmony_ci        sample(colorFilter, color)
72cb93a386Sopenharmony_ci        sample(blender, srcColor, dstColor)
73cb93a386Sopenharmony_ci      // New syntax:
74cb93a386Sopenharmony_ci        shader.eval(xy)
75cb93a386Sopenharmony_ci        colorFilter.eval(color)
76cb93a386Sopenharmony_ci        blender.eval(srcColor, dstColor)
77cb93a386Sopenharmony_ci    https://review.skia.org/444735
78cb93a386Sopenharmony_ci
79cb93a386Sopenharmony_ci* * *
80cb93a386Sopenharmony_ci
81cb93a386Sopenharmony_ciMilestone 93
82cb93a386Sopenharmony_ci------------
83cb93a386Sopenharmony_ci  * Removed SkPaint::getHash
84cb93a386Sopenharmony_ci    https://review.skia.org/419336
85cb93a386Sopenharmony_ci
86cb93a386Sopenharmony_ci  * Removed SkShaders::Lerp. It was unused (and easy to replicate with SkRuntimeEffect).
87cb93a386Sopenharmony_ci    https://review.skia.org/419796
88cb93a386Sopenharmony_ci
89cb93a386Sopenharmony_ci  * The default value of GrContextOptions::fReduceOpsTaskSplitting is now enabled.
90cb93a386Sopenharmony_ci    https://review.skia.org/419836
91cb93a386Sopenharmony_ci
92cb93a386Sopenharmony_ci  * Removed SkMatrix44
93cb93a386Sopenharmony_ci
94cb93a386Sopenharmony_ci* * *
95cb93a386Sopenharmony_ci
96cb93a386Sopenharmony_ciMilestone 92
97cb93a386Sopenharmony_ci------------
98cb93a386Sopenharmony_ci  * Hides SkPathEffect::computeFastBounds() from public API; external subclasses of SkPathEffect
99cb93a386Sopenharmony_ci    must implement onComputeFastBounds() but can return false to signal it's not computable.
100cb93a386Sopenharmony_ci    https://review.skia.org/406140
101cb93a386Sopenharmony_ci
102cb93a386Sopenharmony_ci  * Add SkM44::RectToRect constructor (SkM44's equivalent to SkMatrix::RectToRect)
103cb93a386Sopenharmony_ci    https://review.skia.org/402957
104cb93a386Sopenharmony_ci
105cb93a386Sopenharmony_ci  * Metal support has been removed for versions of iOS older than 10.0 and MacOS older than 10.14.
106cb93a386Sopenharmony_ci    https://review.skia.org/401816
107cb93a386Sopenharmony_ci
108cb93a386Sopenharmony_ci  * Removed custom attributes from SkVertices and the corresponding `varying` feature from
109cb93a386Sopenharmony_ci    SkRuntimeEffect.
110cb93a386Sopenharmony_ci    https://review.skia.org/398222
111cb93a386Sopenharmony_ci
112cb93a386Sopenharmony_ci  * Dropped support for mixed samples. Mixed samples is no longer relevant for Ganesh. DMSAA and the
113cb93a386Sopenharmony_ci    new Ganesh architecture both rely on full MSAA, and any platform where mixed samples is
114cb93a386Sopenharmony_ci    supported will ultimately not use the old architecture.
115cb93a386Sopenharmony_ci
116cb93a386Sopenharmony_ci  * SkRuntimeEffect::Make has been removed. It is replaced by MakeForShader and MakeForColorFilter.
117cb93a386Sopenharmony_ci    These functions do stricter error checking on the SkSL, to ensure it is valid for a particular
118cb93a386Sopenharmony_ci    stage of the Skia pipeline.
119cb93a386Sopenharmony_ci    https://review.skia.org/402156
120cb93a386Sopenharmony_ci
121cb93a386Sopenharmony_ci* * *
122cb93a386Sopenharmony_ci
123cb93a386Sopenharmony_ciMilestone 91
124cb93a386Sopenharmony_ci------------
125cb93a386Sopenharmony_ci  * The SkSL DSL API has been moved into public headers, although it is still under active
126cb93a386Sopenharmony_ci    development and isn't quite ready for prime time yet.
127cb93a386Sopenharmony_ci    https://review.skia.org/378496
128cb93a386Sopenharmony_ci
129cb93a386Sopenharmony_ci  * Skia's GPU backend no longer supports NVPR. Our more recent path renderers are more
130cb93a386Sopenharmony_ci    performant and are not limited to nVidia hardware.
131cb93a386Sopenharmony_ci
132cb93a386Sopenharmony_ci  * SkRuntimeEffect now supports uniforms of type int, int2, int3, and int4. Per the OpenGL ES
133cb93a386Sopenharmony_ci    Shading Language Version 1.00 specification, there are few guarantees about the representation
134cb93a386Sopenharmony_ci    or range of integral types, and operations that assume integral representation (eg, bitwise),
135cb93a386Sopenharmony_ci    are not supported.
136cb93a386Sopenharmony_ci    https://review.skia.org/391856
137cb93a386Sopenharmony_ci
138cb93a386Sopenharmony_ci  * SkRuntimeEffect requires that 'shader' variables be declared as 'uniform'. The deprecated
139cb93a386Sopenharmony_ci    syntax of 'in shader' is no longer supported.
140cb93a386Sopenharmony_ci    https://review.skia.org/393081
141cb93a386Sopenharmony_ci
142cb93a386Sopenharmony_ci* * *
143cb93a386Sopenharmony_ci
144cb93a386Sopenharmony_ciMilestone 90
145cb93a386Sopenharmony_ci------------
146cb93a386Sopenharmony_ci  * Renamed use of sk_cf_obj in external Metal types to sk_cfp.
147cb93a386Sopenharmony_ci    https://review.skia.org/372556
148cb93a386Sopenharmony_ci
149cb93a386Sopenharmony_ci  * GrDirectContext::ComputeImageSize() is removed. Use SkImage::textureSize() instead.
150cb93a386Sopenharmony_ci    https://review.skia.org/368621
151cb93a386Sopenharmony_ci    https://review.skia.org/369317
152cb93a386Sopenharmony_ci    https://review.skia.org/371958
153cb93a386Sopenharmony_ci
154cb93a386Sopenharmony_ci  * Remove SkImageFilter::MakeMatrixFilter as it was unused and replaced with
155cb93a386Sopenharmony_ci    SkImageFilters::MatrixTransform.
156cb93a386Sopenharmony_ci    https://review.skia.org/366318
157cb93a386Sopenharmony_ci
158cb93a386Sopenharmony_ci  * Refactored particle system to use a single code string containing both Effect and Particle code.
159cb93a386Sopenharmony_ci    Uniform APIs are now shared for all program entry points, and no longer prefixed with 'Effect'
160cb93a386Sopenharmony_ci    or 'Particle'. For example, instead of `SkParticleEffect::effectUniformInfo` and
161cb93a386Sopenharmony_ci    `SkParticleEffect::particleUniformInfo`, there is just `SkParticleEffect::uniformInfo`.
162cb93a386Sopenharmony_ci
163cb93a386Sopenharmony_ci  * Remove SkImageFilter::CropRect from the public API as it's no longer usable. All factories
164cb93a386Sopenharmony_ci    work with 'SkRect', 'SkIRect', or nullable pointers to 'Sk[I]Rect'.
165cb93a386Sopenharmony_ci    https://review.skia.org/361496
166cb93a386Sopenharmony_ci
167cb93a386Sopenharmony_ci  * Remove deprecated SkImageFilter factory functions and supporting types. All default-provided
168cb93a386Sopenharmony_ci    SkImageFilters are now only constructed via 'include/effects/SkImageFilters.h'
169cb93a386Sopenharmony_ci    https://review.skia.org/357285
170cb93a386Sopenharmony_ci
171cb93a386Sopenharmony_ci  * Added SkRuntimeEffect::makeImage() to capture the output of an SkRuntimeEffect in an SkImage.
172cb93a386Sopenharmony_ci    https://review.skia.org/357284
173cb93a386Sopenharmony_ci
174cb93a386Sopenharmony_ci  * Updated SkRuntimeEffect::Make() to take an Options struct. It also now returns a Results struct
175cb93a386Sopenharmony_ci    instead of a tuple.
176cb93a386Sopenharmony_ci    https://review.skia.org/363785
177cb93a386Sopenharmony_ci    https://review.skia.org/367060
178cb93a386Sopenharmony_ci
179cb93a386Sopenharmony_ci  * Changed SkRuntimeEffect::Varying to have lower-case member names, with no 'f' prefix.
180cb93a386Sopenharmony_ci    https://review.skia.org/365656
181cb93a386Sopenharmony_ci
182cb93a386Sopenharmony_ci  * Changed SkRuntimeEffect::Uniform to have lower-case member names, with no 'f' prefix.
183cb93a386Sopenharmony_ci    https://review.skia.org/365696
184cb93a386Sopenharmony_ci
185cb93a386Sopenharmony_ci  * Deprecate (and ignore) SkAndroidCodec::ExifOrientation
186cb93a386Sopenharmony_ci    https://review.skia.org/344763
187cb93a386Sopenharmony_ci
188cb93a386Sopenharmony_ci  * Fix several minor issues in lighting image filters:
189cb93a386Sopenharmony_ci    - The spotlight falloff exponent is no longer clamped to [1, 128]. SVG 1.1 requires the specular
190cb93a386Sopenharmony_ci      lighting effect's exponent (shininess) to be clamped; not the spotlight's falloff. Any such
191cb93a386Sopenharmony_ci      parameter clamping is the client's responisibility, which makes Skia's lighting effect easily
192cb93a386Sopenharmony_ci      adaptable to SVG 1.1 (clamp exponent) or SVG 2 (no clamp).
193cb93a386Sopenharmony_ci    - Fix spotlight incorrectly scaling light within the cone angle.
194cb93a386Sopenharmony_ci    - Move saturation of RGBA to after multiplying lighting intensity with the lighting color, which
195cb93a386Sopenharmony_ci      improves rendering when diffuse and specular constants are greater than 1.
196cb93a386Sopenharmony_ci    https://review.skia.org/355496
197cb93a386Sopenharmony_ci
198cb93a386Sopenharmony_ci  * SkDeferredDisplayListRecorder::makePromiseTexture has moved to SkImage::MakePromiseTexture.
199cb93a386Sopenharmony_ci    New code should use the new entry point – migration CLs will be coming soon.
200cb93a386Sopenharmony_ci    https://review.skia.org/373716
201cb93a386Sopenharmony_ci
202cb93a386Sopenharmony_ciMilestone 89
203cb93a386Sopenharmony_ci------------
204cb93a386Sopenharmony_ci  * Removed SkYUVAIndex and SkYUVASizeInfo. These were no longer used in any
205cb93a386Sopenharmony_ci    public APIs.
206cb93a386Sopenharmony_ci    https://review.skia.org/352497
207cb93a386Sopenharmony_ci
208cb93a386Sopenharmony_ci  * Numerous changes to SkRuntimeEffect, aligning the capabilities and restrictions with
209cb93a386Sopenharmony_ci    The OpenGL ES Shading Language 1.00 (aka, the shading language of OpenGL ES2 and WebGL 1.0).
210cb93a386Sopenharmony_ci    All built-in functions from sections 8.1 through 8.6 implemented & tested on all backends.
211cb93a386Sopenharmony_ci    Removed types and features that require newer versions of GLSL:
212cb93a386Sopenharmony_ci      https://review.skia.org/346657  [Non-square matrices]
213cb93a386Sopenharmony_ci      https://review.skia.org/347046  [uint, short, ushort, byte, ubyte]
214cb93a386Sopenharmony_ci      https://review.skia.org/349056  [while and do-while loops]
215cb93a386Sopenharmony_ci      https://review.skia.org/350030  [Bitwise operators and integer remainder]
216cb93a386Sopenharmony_ci
217cb93a386Sopenharmony_ci  * Add SkShadowUtils::GetLocalBounds. Generates bounding box for shadows
218cb93a386Sopenharmony_ci    relative to path.
219cb93a386Sopenharmony_ci    https://review.skia.org/351922
220cb93a386Sopenharmony_ci
221cb93a386Sopenharmony_ci  * Removed SkPerlinNoiseShader::MakeImprovedNoise.
222cb93a386Sopenharmony_ci    https://review.skia.org/352057
223cb93a386Sopenharmony_ci
224cb93a386Sopenharmony_ci  * Removed deprecated version of MakeFromYUVATextures. Use the version
225cb93a386Sopenharmony_ci    that takes GrYUVABackendTextures instead.
226cb93a386Sopenharmony_ci    https://review.skia.org/345174
227cb93a386Sopenharmony_ci
228cb93a386Sopenharmony_ci  * SkAnimatedImage: Always respect exif orientation
229cb93a386Sopenharmony_ci    Replace SkPixmapPriv::ShouldSwapWidthHeight with
230cb93a386Sopenharmony_ci    SkEncodedOriginSwapsWidthHeight.
231cb93a386Sopenharmony_ci    https://review.skia.org/344762
232cb93a386Sopenharmony_ci
233cb93a386Sopenharmony_ci  * Add kDirectionalLight_ShadowFlag support. If enabled, light position represents
234cb93a386Sopenharmony_ci    a vector pointing towards the light, and light radius is blur radius at elevation 1.
235cb93a386Sopenharmony_ci    https://review.skia.org/321792
236cb93a386Sopenharmony_ci
237cb93a386Sopenharmony_ci  * Support GL_LUMINANCE8_ALPHA8 textures. These can be used with GrBackendTexture APIs
238cb93a386Sopenharmony_ci    on GrDirectContext and as planes of YUVA images via GrYUVABackendTextures.
239cb93a386Sopenharmony_ci    https://review.skia.org/344761
240cb93a386Sopenharmony_ci
241cb93a386Sopenharmony_ci  * Removed previously deprecated SkImage::MakeFromYUVATexturesCopyToExternal.
242cb93a386Sopenharmony_ci    https://review.skia.org/342077
243cb93a386Sopenharmony_ci
244cb93a386Sopenharmony_ci  * Add versions of GrDirectContext::createBackendTexture and updateBackendTexture
245cb93a386Sopenharmony_ci    that take a GrSurfaceOrigin. The previous versions are deprecated.
246cb93a386Sopenharmony_ci    https://review.skia.org/341005
247cb93a386Sopenharmony_ci
248cb93a386Sopenharmony_ci  * Remove support for deprecated kDontClipToLayer_SaveLayerFlag in SkCanvas::SaveLayerRec
249cb93a386Sopenharmony_ci    https://review.skia.org/339988
250cb93a386Sopenharmony_ci
251cb93a386Sopenharmony_ci  * Expose more info in SkCodec::FrameInfo
252cb93a386Sopenharmony_ci    https://review.skia.org/339857
253cb93a386Sopenharmony_ci
254cb93a386Sopenharmony_ci  * Added dither control to the SkImageFilters::Shader factory.
255cb93a386Sopenharmony_ci    https://review.skia.org/338156
256cb93a386Sopenharmony_ci
257cb93a386Sopenharmony_ci  * Add MTLBinaryArchive parameter to GrMtlBackendContext. This allows
258cb93a386Sopenharmony_ci    Skia to cache PipelineStates in the given archive for faster
259cb93a386Sopenharmony_ci    shader compiles on future runs. The client must handle loading and
260cb93a386Sopenharmony_ci    saving of the archive.
261cb93a386Sopenharmony_ci    https://review.skia.org/333758
262cb93a386Sopenharmony_ci
263cb93a386Sopenharmony_ci  * Deprecated enum SkYUVAInfo::PlanarConfig has been removed.
264cb93a386Sopenharmony_ci    https://review.skia.org/334161
265cb93a386Sopenharmony_ci
266cb93a386Sopenharmony_ci  * Deprecated SkImage factories have been removed from
267cb93a386Sopenharmony_ci    SkDeferredDisplayListRecorder.
268cb93a386Sopenharmony_ci
269cb93a386Sopenharmony_ci  * The following YUV image factories have been removed:
270cb93a386Sopenharmony_ci    SkImage::MakeFromYUVTexturesCopyWithExternalBackend
271cb93a386Sopenharmony_ci    SkImage::MakeFromNV12TexturesCopyWithExternalBackend
272cb93a386Sopenharmony_ci    Replacement pattern outlined below.
273cb93a386Sopenharmony_ci        1) Make image using MakeFromYUVATextures
274cb93a386Sopenharmony_ci        2) Make a SkSurface around result texture using SkSurface::MakeFromBackendTexture
275cb93a386Sopenharmony_ci        3) surface->getCanvas()->drawImage(image, 0, 0);
276cb93a386Sopenharmony_ci        4) surface->flushAndSubmit()
277cb93a386Sopenharmony_ci        5) Optional: SkImage::MakeFromBackendTexture() to use as SkImage.
278cb93a386Sopenharmony_ci    https://review.skia.org/334596
279cb93a386Sopenharmony_ci
280cb93a386Sopenharmony_ci  * Added a new interface for GrDirectContext creation in Metal, using
281cb93a386Sopenharmony_ci    a new struct called GrMtlBackendContext. The previous interface taking
282cb93a386Sopenharmony_ci    a MTLDevice and MTLCommandQueue is deprecated.
283cb93a386Sopenharmony_ci    https://review.skia.org/334426
284cb93a386Sopenharmony_ci
285cb93a386Sopenharmony_ci  * SkCanvas::flush has been deprecated.
286cb93a386Sopenharmony_ci
287cb93a386Sopenharmony_ci* * *
288cb93a386Sopenharmony_ci
289cb93a386Sopenharmony_ciMilestone 88
290cb93a386Sopenharmony_ci------------
291cb93a386Sopenharmony_ci
292cb93a386Sopenharmony_ci  * SkYUVAInfo now has separate enums for division of channels among planes and
293cb93a386Sopenharmony_ci    the subsampling. The previous combined enum, PlanarConfig, is deprecated.
294cb93a386Sopenharmony_ci    https://review.skia.org/334102
295cb93a386Sopenharmony_ci
296cb93a386Sopenharmony_ci  * Simplified SkDeferredDisplayListRecorder promise image API. Removed "release"
297cb93a386Sopenharmony_ci    callback and renamed "done" callback to "release". The new "release" proc can
298cb93a386Sopenharmony_ci    be null. Added a new SkYUVAInfo-based factory for YUVA promise texture images
299cb93a386Sopenharmony_ci    and deprecated the old SkYUVAIndex-based one.
300cb93a386Sopenharmony_ci    https://review.skia.org/331836
301cb93a386Sopenharmony_ci    https://review.skia.org/333519
302cb93a386Sopenharmony_ci
303cb93a386Sopenharmony_ci  * Limit the types and intrinsics supported in SkRuntimeEffect to GLSL ES 1.00
304cb93a386Sopenharmony_ci    https://review.skia.org/332597
305cb93a386Sopenharmony_ci
306cb93a386Sopenharmony_ci  * Add AVIF support to SkHeifCodec.
307cb93a386Sopenharmony_ci
308cb93a386Sopenharmony_ci  * Add support for creating SkSurfaceCharacterizations directly for use by a
309cb93a386Sopenharmony_ci    GrVkSecondaryCBDrawContext.
310cb93a386Sopenharmony_ci    https://review.skia.org/331877
311cb93a386Sopenharmony_ci
312cb93a386Sopenharmony_ci  * Removed SkSurfaceProps::kLegacyFontHost_InitType, SkFontLCDConfig, and related code.
313cb93a386Sopenharmony_ci    The default pixel geometry for SkSurfaceProps is now kUnknown instead of kRGB_H.
314cb93a386Sopenharmony_ci    The removal was guarded by the SK_LEGACY_SURFACE_PROPS build flag which was later removed.
315cb93a386Sopenharmony_ci    https://review.skia.org/322490
316cb93a386Sopenharmony_ci    https://review.skia.org/329364
317cb93a386Sopenharmony_ci
318cb93a386Sopenharmony_ci  * Legacy 8-bit YUV interface removed from SkImageGenerator. Use more flexible SkYUVAPixmaps-
319cb93a386Sopenharmony_ci    based interface instead.
320cb93a386Sopenharmony_ci    https://review.skia.org/327917
321cb93a386Sopenharmony_ci
322cb93a386Sopenharmony_ci  * New variant of SkImage::MakeFromYUVATextures. Takes a new type GrYUVATextures
323cb93a386Sopenharmony_ci    which wraps an SkYUVAInfo and compatible set of GrBackendTextures. The provides
324cb93a386Sopenharmony_ci    a more complete and structured specification of the planar configuration. Previous
325cb93a386Sopenharmony_ci    version is deprecated.
326cb93a386Sopenharmony_ci    Already deprecated MakeFromYUVATexturesCopyToExternal added to replace other deprecated
327cb93a386Sopenharmony_ci    APIs. It's not recommended that clients use this and instead use the pattern described
328cb93a386Sopenharmony_ci    in the API comment.
329cb93a386Sopenharmony_ci    https://review.skia.org/317762
330cb93a386Sopenharmony_ci    https://review.skia.org/329956
331cb93a386Sopenharmony_ci
332cb93a386Sopenharmony_ci  * Add field to GrContextOptions to disable mipmap support even if the backend
333cb93a386Sopenharmony_ci    supports it.
334cb93a386Sopenharmony_ci
335cb93a386Sopenharmony_ci  * SkTPin() removed from public API.
336cb93a386Sopenharmony_ci
337cb93a386Sopenharmony_ci  * Add new SkImageFilters::Blend factory function, in place of the now deprecated
338cb93a386Sopenharmony_ci    SkImageFilters::Xfermode factory function. Behavior is identical, but name better matches
339cb93a386Sopenharmony_ci    conventions in SkShader and SkColorFilter.
340cb93a386Sopenharmony_ci    https://review.skia.org/324623
341cb93a386Sopenharmony_ci
342cb93a386Sopenharmony_ci  * SkImageFilters::Foo() factory functions now accept SkIRect, SkRect, and optional SkIRect* or
343cb93a386Sopenharmony_ci    SkRect*, instead of previously just the optional SkIRect*. Internally, the crop rects are stored
344cb93a386Sopenharmony_ci    as floats to allow for fractional crops to be defined in the local coordinate system (before
345cb93a386Sopenharmony_ci    transformation by the canvas matrix).
346cb93a386Sopenharmony_ci    https://review.skia.org/324622
347cb93a386Sopenharmony_ci
348cb93a386Sopenharmony_ci  * Add new SkImageFilters::Shader factory and deprecate SkImageFilters::Paint factory. All
349cb93a386Sopenharmony_ci    supported/valid Paint() filters can be represented more cleanly as a Shader image filter.
350cb93a386Sopenharmony_ci    https://review.skia.org/323680
351cb93a386Sopenharmony_ci
352cb93a386Sopenharmony_ci  * GrContext has been replaced by two separate classes: GrDirectContext which is
353cb93a386Sopenharmony_ci    the traditional notion of GrContext, and GrRecordingContext which is a context
354cb93a386Sopenharmony_ci    that is recording an SkDeferredDisplayList and therefore has reduced functionality.
355cb93a386Sopenharmony_ci    Unless you are using SkDeferredDisplayList, migrate directly to GrDirectContext in
356cb93a386Sopenharmony_ci    all cases.
357cb93a386Sopenharmony_ci
358cb93a386Sopenharmony_ci  * CPU sync bool added to SkSurface::flushAndSubmit() and GrContext::flushAndSubmit()
359cb93a386Sopenharmony_ci
360cb93a386Sopenharmony_ci  * Removed legacy variant of SkImage::MakeFromYUVAPixmaps. Use the version that
361cb93a386Sopenharmony_ci    takes SkYUVAPixmaps instead. It has a more structured description of the
362cb93a386Sopenharmony_ci    planar configuration.
363cb93a386Sopenharmony_ci    https://review.skia.org/322480
364cb93a386Sopenharmony_ci
365cb93a386Sopenharmony_ci  * Some SkImage YUV image factories have been removed. Replacement patterns
366cb93a386Sopenharmony_ci    outlined below.
367cb93a386Sopenharmony_ci    SkImage::MakeFromYUVATexturesCopy
368cb93a386Sopenharmony_ci        1) Make SkImage from YUVA planes using SkImage::MakeFromYUVATextures
369cb93a386Sopenharmony_ci        2) Use Skia to allocate a surface using SkSurface::MakeRenderTarget
370cb93a386Sopenharmony_ci        3) surface->getCanvas()->drawImage(image, 0, 0);
371cb93a386Sopenharmony_ci        4) surface->makeImageSnapShot() produces RGBA image.
372cb93a386Sopenharmony_ci    SkImage::MakeFromYUVATexturesCopyWithExternalBackend
373cb93a386Sopenharmony_ci        1) Make image using MakeFromYUVATextures
374cb93a386Sopenharmony_ci        2) Make a SkSurface around result texture using SkSurface::MakeFromBackendTexture
375cb93a386Sopenharmony_ci        3) surface->getCanvas()->drawImage(image, 0, 0);
376cb93a386Sopenharmony_ci        4) surface->flushAndSubmit()
377cb93a386Sopenharmony_ci        5) Optional: SkImage::MakeFromBackendTexture() to use as SkImage.
378cb93a386Sopenharmony_ci    SkImage::MakeFromNV12TexturesCopy
379cb93a386Sopenharmony_ci        Same as SkImage::MakeFromYUVATexturesCopy
380cb93a386Sopenharmony_ci    https://review.skia.org/321537
381cb93a386Sopenharmony_ci
382cb93a386Sopenharmony_ci  * GrBackendRenderTargets which are created with a stencilBits param, now require
383cb93a386Sopenharmony_ci    the stencilBits to be 0, 8, or 16.
384cb93a386Sopenharmony_ci    https://review.skia.org/321545
385cb93a386Sopenharmony_ci
386cb93a386Sopenharmony_ci* * *
387cb93a386Sopenharmony_ci
388cb93a386Sopenharmony_ciMilestone 87
389cb93a386Sopenharmony_ci------------
390cb93a386Sopenharmony_ci
391cb93a386Sopenharmony_ci  * GrVkImageInfo now has a field for sample count. GrBackendRenderTarget constructor
392cb93a386Sopenharmony_ci    that took both a GrVkImageInfo and separate sample count is deprecated. Use the
393cb93a386Sopenharmony_ci    version without sample count instead. Similarly, GrD3DTextureResourceInfo now
394cb93a386Sopenharmony_ci    has a sample count field and GrBackendRenderTarget no longer takes a separate
395cb93a386Sopenharmony_ci    sample count for Direct3D. The sample count for GrBackendRenderTarget is now
396cb93a386Sopenharmony_ci    directly queried from MtlTexture rather than passed separately. The version that
397cb93a386Sopenharmony_ci    takes a separate sample count is deprecated and the parameter is ignored.
398cb93a386Sopenharmony_ci    https://review.skia.org/320262
399cb93a386Sopenharmony_ci    https://review.skia.org/320757
400cb93a386Sopenharmony_ci    https://review.skia.org/320956
401cb93a386Sopenharmony_ci
402cb93a386Sopenharmony_ci  * Added deprecation warning for Metal support on MacOS 10.13, iOS 8.3, and older.
403cb93a386Sopenharmony_ci    https://review.skia.org/320260
404cb93a386Sopenharmony_ci
405cb93a386Sopenharmony_ci  * GrVkImageInfo now has a field for sample count. GrBackendRenderTarget constructor
406cb93a386Sopenharmony_ci    that took both a GrVkImageInfo and separate sample count is deprecated. Use the
407cb93a386Sopenharmony_ci    version without sample count instead.
408cb93a386Sopenharmony_ci
409cb93a386Sopenharmony_ci  * Update SkClipOp::kMax_EnumValue to include only intersect and difference when
410cb93a386Sopenharmony_ci    SK_SUPPORT_DEPRECATED_CLIPOPS is not defined.
411cb93a386Sopenharmony_ci    https://review.skia.org/320064
412cb93a386Sopenharmony_ci
413cb93a386Sopenharmony_ci  * Add support for external allocator for Direct3D 12 backend.
414cb93a386Sopenharmony_ci    Defines base classes for an allocation associated with a backend texture and a
415cb93a386Sopenharmony_ci    a memory allocator to create such allocations.
416cb93a386Sopenharmony_ci    Adds memory allocator to backend context.
417cb93a386Sopenharmony_ci    https://review.skia.org/317243
418cb93a386Sopenharmony_ci
419cb93a386Sopenharmony_ci  * Add new optional parameter to GrContext::setBackend[Texture/RenderTarget]State which can
420cb93a386Sopenharmony_ci    be used to return the previous GrBackendSurfaceMutableState before the requested change.
421cb93a386Sopenharmony_ci    https://review.skia.org/318698
422cb93a386Sopenharmony_ci
423cb93a386Sopenharmony_ci  * New optimized clip stack for GPU backends. Enabled by default but old behavior based on
424cb93a386Sopenharmony_ci    SkClipStack can be restored by defining SK_DISABLE_NEW_GR_CLIP_STACK when building. It is not
425cb93a386Sopenharmony_ci    compatible with SK_SUPPORT_DEPRECATED_CLIPOPS and we are targeting the removal of support for
426cb93a386Sopenharmony_ci    the deprecated, expanding clip ops.
427cb93a386Sopenharmony_ci    https://review.skia.org/317209
428cb93a386Sopenharmony_ci
429cb93a386Sopenharmony_ci  * GPU backends now properly honor the SkFilterQuality when calling drawAtlas.
430cb93a386Sopenharmony_ci    https://review.skia.org/313081
431cb93a386Sopenharmony_ci
432cb93a386Sopenharmony_ci  * The signature of 'main' used with SkRuntimeEffect SkSL has changed. There is no longer an
433cb93a386Sopenharmony_ci    'inout half4 color' parameter, effects must return their color instead.
434cb93a386Sopenharmony_ci    Valid signatures are now 'half4 main()' or 'half4 main(float2 coord)'.
435cb93a386Sopenharmony_ci    https://review.skia.org/310756
436cb93a386Sopenharmony_ci
437cb93a386Sopenharmony_ci  * New YUVA planar specifications for SkCodec, SkImageGenerator, SkImage::MakeFromYUVAPixmaps.
438cb93a386Sopenharmony_ci    Chroma subsampling is specified in more structured way. SkCodec and SkImageGenerator
439cb93a386Sopenharmony_ci    don't assume 3 planes with 8bit planar values. Old APIs are deprecated.
440cb93a386Sopenharmony_ci    https://review.skia.org/309658
441cb93a386Sopenharmony_ci    https://review.skia.org/312886
442cb93a386Sopenharmony_ci    https://review.skia.org/314276
443cb93a386Sopenharmony_ci    https://review.skia.org/316837
444cb93a386Sopenharmony_ci    https://review.skia.org/317097
445cb93a386Sopenharmony_ci
446cb93a386Sopenharmony_ci  * Added VkImageUsageFlags to GrVkImageInfo struct.
447cb93a386Sopenharmony_ci
448cb93a386Sopenharmony_ci* * *
449cb93a386Sopenharmony_ci
450cb93a386Sopenharmony_ciMilestone 86
451cb93a386Sopenharmony_ci------------
452cb93a386Sopenharmony_ci
453cb93a386Sopenharmony_ci  * Remove support for 'in' variables from SkRuntimeEffect. API now exclusively refers to inputs
454cb93a386Sopenharmony_ci    as 'uniforms'.
455cb93a386Sopenharmony_ci    https://review.skia.org/309050
456cb93a386Sopenharmony_ci
457cb93a386Sopenharmony_ci  * Add SkImageGeneratorNDK and SkEncodeImageWithNDK for using Android's NDK APIs to decode and
458cb93a386Sopenharmony_ci    encode.
459cb93a386Sopenharmony_ci    https://review.skia.org/308185
460cb93a386Sopenharmony_ci    https://review.skia.org/308800
461cb93a386Sopenharmony_ci
462cb93a386Sopenharmony_ci  * SkImage:remove DecodeToRaster, DecodeToTexture
463cb93a386Sopenharmony_ci    https://review.skia.org/306331
464cb93a386Sopenharmony_ci
465cb93a386Sopenharmony_ci  * Add GrContext api to update compressed backend textures.
466cb93a386Sopenharmony_ci    https://review.skia.org/302265
467cb93a386Sopenharmony_ci
468cb93a386Sopenharmony_ci  * Rename GrMipMapped to GrMipmapped for consistency with new APIs.
469cb93a386Sopenharmony_ci    Also rename GrBackendTexture::hasMipMaps() to GrBackendTexture::hasMipmaps()
470cb93a386Sopenharmony_ci    https://review.skia.org/304576
471cb93a386Sopenharmony_ci    https://review.skia.org/304598
472cb93a386Sopenharmony_ci
473cb93a386Sopenharmony_ci  * Add option for clients to own semaphores after wait calls.
474cb93a386Sopenharmony_ci    https://review.skia.org/301216
475cb93a386Sopenharmony_ci
476cb93a386Sopenharmony_ci  * Remove obsolete GrFlushFlags.
477cb93a386Sopenharmony_ci    https://review.skia.org/298818
478cb93a386Sopenharmony_ci
479cb93a386Sopenharmony_ci  * Adds default flush() calls to SkSurface, SkImage, and GrContext. These calls do
480cb93a386Sopenharmony_ci    a basic flush without a submit. If you haven't updated Skia in a couple releases
481cb93a386Sopenharmony_ci    and still have flush() calls in your code that you expect to do a flush and
482cb93a386Sopenharmony_ci    submit, you should update all those to the previously added flushAndSubmit() calls
483cb93a386Sopenharmony_ci    instead.
484cb93a386Sopenharmony_ci    https://review.skia.org/299141
485cb93a386Sopenharmony_ci
486cb93a386Sopenharmony_ci  * Enable BackendSemaphores for the Direct3D backend.
487cb93a386Sopenharmony_ci    https://review.skia.org/298752
488cb93a386Sopenharmony_ci
489cb93a386Sopenharmony_ci  * Added SkImage:asyncRescaleAndReadPixels and SkImage::asyncRescaleAndReadPixelsYUV420
490cb93a386Sopenharmony_ci    https://review.skia.org/299281
491cb93a386Sopenharmony_ci
492cb93a386Sopenharmony_ci  * Ganesh is moving towards replacing GrContext with the GrDirectContext/GrRecordingContext
493cb93a386Sopenharmony_ci    pair. GrDirectContexts have _direct_ access to the GPU and are very similar to the old
494cb93a386Sopenharmony_ci    GrContext. GrRecordingContexts are less powerful contexts that lack GPU access but provided
495cb93a386Sopenharmony_ci    context-like utilities during DDL recording. SkSurfaces and SkCanvas will now only return
496cb93a386Sopenharmony_ci    GrRecordingContexts. Clients requiring context features that need GPU access can then
497cb93a386Sopenharmony_ci    check (via GrRecordingContext::asDirectContext) if the available recording context is actually
498cb93a386Sopenharmony_ci    a direct context.
499cb93a386Sopenharmony_ci
500cb93a386Sopenharmony_ci  * Replace #defined values in SkString with equivalent constexprs.
501cb93a386Sopenharmony_ci    http://review.skia.org/306160
502cb93a386Sopenharmony_ci
503cb93a386Sopenharmony_ci* * *
504cb93a386Sopenharmony_ci
505cb93a386Sopenharmony_ciMilestone 85
506cb93a386Sopenharmony_ci------------
507cb93a386Sopenharmony_ci
508cb93a386Sopenharmony_ci  * Added GrContext::oomed() which reports whether Skia has seen a GL_OUT_OF_MEMORY
509cb93a386Sopenharmony_ci    error from Open GL [ES] or VK_ERROR_OUT_OF_*_MEMORY from Vulkan.
510cb93a386Sopenharmony_ci    https://review.skia.org/298216
511cb93a386Sopenharmony_ci
512cb93a386Sopenharmony_ci  * Add option on SkSurface::flush to pass in a GrBackendSurfaceMutableState which
513cb93a386Sopenharmony_ci    we will set the gpu backend surface to be at the end of the flush.
514cb93a386Sopenharmony_ci    https://review.skia.org/295567
515cb93a386Sopenharmony_ci
516cb93a386Sopenharmony_ci  * Add GrContext function to set mutable state on a backend surface. Currently this
517cb93a386Sopenharmony_ci    is only used for setting vulkan VkImage layout and queue family.
518cb93a386Sopenharmony_ci    https://review.skia.org/293844
519cb93a386Sopenharmony_ci
520cb93a386Sopenharmony_ci  * SkSurface factores that take GrBackendTexture or GrBackendRenderTarget now always
521cb93a386Sopenharmony_ci    call the release proc (if provided) on failure. SkSurface::replaceBackendTexture
522cb93a386Sopenharmony_ci    also calls the release proc on failure.
523cb93a386Sopenharmony_ci    https://review.skia.org/293762
524cb93a386Sopenharmony_ci
525cb93a386Sopenharmony_ci  * SkSurface::asyncRescaleAndReadPixels and SkSurfaceasyncRescaleAndReadPixelsYUV420
526cb93a386Sopenharmony_ci    now require explicit GrContext submit to guarantee finite time before callback
527cb93a386Sopenharmony_ci    is invoked.
528cb93a386Sopenharmony_ci    https://review.skia.org/292840
529cb93a386Sopenharmony_ci
530cb93a386Sopenharmony_ci  * Add VkSharingMode field to GrVkImageInfo.
531cb93a386Sopenharmony_ci    https://review.skia.org/293559
532cb93a386Sopenharmony_ci
533cb93a386Sopenharmony_ci  * Move SkBitmapRegionDecoder into client_utils/android.
534cb93a386Sopenharmony_ci
535cb93a386Sopenharmony_ci  * SkCanvas.clear and SkCanvas.drawColor now accept SkColor4f in addition to SkColor.
536cb93a386Sopenharmony_ci
537cb93a386Sopenharmony_ci  * Remove SkSurface::MakeFromBackendTextureAsRenderTarget.
538cb93a386Sopenharmony_ci    This factory existed to work around issues with GL_TEXTURE_RECTANGLE that existed
539cb93a386Sopenharmony_ci    in Chrome's command buffer. Those issues have since been resolved. Use
540cb93a386Sopenharmony_ci    SkSurface::MakeFromBackendTexutre or SkSurface::MakeFromBackendRenderTarget instead.
541cb93a386Sopenharmony_ci    https://review.skia.org/292719
542cb93a386Sopenharmony_ci
543cb93a386Sopenharmony_ci  * Adds submittedProc callback to GrFlushInfo which will be called when the work
544cb93a386Sopenharmony_ci    from the flush call is submitted to the GPU. This is specifically useful for knowing
545cb93a386Sopenharmony_ci    when semahpores sent with the flush have been submitted and can be waiting on.
546cb93a386Sopenharmony_ci    https://review.skia.org/291078
547cb93a386Sopenharmony_ci
548cb93a386Sopenharmony_ci  * GrContext submit is now required to be called in order to send GPU work to the
549cb93a386Sopenharmony_ci    actual GPU. The flush calls simply produces 3D API specific objects that are ready
550cb93a386Sopenharmony_ci    to be submitted (e.g. command buffers). For the GL backend, the flush will still
551cb93a386Sopenharmony_ci    send commands to the driver. However, clients should still assume the must call
552cb93a386Sopenharmony_ci    submit which is where any glFlush that is need for sync objects will be called. There,
553cb93a386Sopenharmony_ci    are flushAndSubmit() functions of GrContext, SkSurface, and SkImage that will act
554cb93a386Sopenharmony_ci    like the previous flush() functions. This will flush the work and immediately call
555cb93a386Sopenharmony_ci    submit.
556cb93a386Sopenharmony_ci    https://review.skia.org/289033
557cb93a386Sopenharmony_ci
558cb93a386Sopenharmony_ci  * Remove deprecated version of flush calls on GrContext and SkSurface.
559cb93a386Sopenharmony_ci    https://review.skia.org/2290540
560cb93a386Sopenharmony_ci
561cb93a386Sopenharmony_ci  * SkCanvas::drawVertices and drawPatch now support mapping an SkShader without explicit
562cb93a386Sopenharmony_ci    texture coordinates. If they're not supplied, the local positions (vertex position or
563cb93a386Sopenharmony_ci    patch cubic positions) will be directly used to sample the SkShader.
564cb93a386Sopenharmony_ci    https://review.skia.org/290130
565cb93a386Sopenharmony_ci
566cb93a386Sopenharmony_ci* * *
567cb93a386Sopenharmony_ci
568cb93a386Sopenharmony_ciMilestone 84
569cb93a386Sopenharmony_ci------------
570cb93a386Sopenharmony_ci
571cb93a386Sopenharmony_ci  * Add api on GrContext, updateBackendTexture that will upload new data to a
572cb93a386Sopenharmony_ci    GrBackendTexture.
573cb93a386Sopenharmony_ci    https://review.skia.org/288909
574cb93a386Sopenharmony_ci
575cb93a386Sopenharmony_ci  * Add GrContext getter to SkSurface.
576cb93a386Sopenharmony_ci    https://review.skia.org/289479
577cb93a386Sopenharmony_ci
578cb93a386Sopenharmony_ci  * Deprecate GrContext and SkSurface flush() call and replace ith with flushAndSubmit().
579cb93a386Sopenharmony_ci    This only effects the default flush call that takes no parameters.
580cb93a386Sopenharmony_ci    https://review.skia.org/289478
581cb93a386Sopenharmony_ci
582cb93a386Sopenharmony_ci  * GrContext::createBackendTexture functions that initialize the texture no longer
583cb93a386Sopenharmony_ci    guarantee that all the data has been uploaded and the gpu is done with the texture.
584cb93a386Sopenharmony_ci    Instead the client can assume the upload work has been submitted to the gpu and they
585cb93a386Sopenharmony_ci    must wait for that work to finish before deleting the texture. This can be done via
586cb93a386Sopenharmony_ci    their own synchronization or by passing in a finish proc into the create calls which
587cb93a386Sopenharmony_ci    will be called when it is safe to delete the texture (at least in terms of work
588cb93a386Sopenharmony_ci    done during the create).
589cb93a386Sopenharmony_ci    https://review.skia.org/286517
590cb93a386Sopenharmony_ci
591cb93a386Sopenharmony_ci  * Remove unused SkMaskFilter helpers: compbine, compose
592cb93a386Sopenharmony_ci    Note: shadermaskfilter will likely be removed next (clipShader should serve)
593cb93a386Sopenharmony_ci
594cb93a386Sopenharmony_ci  * Add back SkCanvas::kPreserveLCDText_SaveLayerFlag to indicate that saveLayer()
595cb93a386Sopenharmony_ci    will preserve LCD-text. All text in the layer must be drawn on opaque background
596cb93a386Sopenharmony_ci    to ensure correct rendering.
597cb93a386Sopenharmony_ci
598cb93a386Sopenharmony_ci  * Add the new directory client_utils/ for code that is specific to a single client and
599cb93a386Sopenharmony_ci    should be considered separate from Skia proper. Move SkFrontBufferedStream into the
600cb93a386Sopenharmony_ci    subdir android/.
601cb93a386Sopenharmony_ci
602cb93a386Sopenharmony_ci  * SkBitmap and SkPixmap's erase() methods now treat their color parameters
603cb93a386Sopenharmony_ci    consistently with the rest of Skia, with all SkColors and any untagged
604cb93a386Sopenharmony_ci    SkColor4fs interpreted as sRGB, not as a color in the bitmap's color space.
605cb93a386Sopenharmony_ci    SkPixmap::erase(SkColor4f) now takes an SkColorSpace, so you can pass
606cb93a386Sopenharmony_ci    pixmap.colorSpace() if you want the old behavior.
607cb93a386Sopenharmony_ci
608cb93a386Sopenharmony_ci  * SkCamera.h and SkMatrix44.h are DEPRECATED.
609cb93a386Sopenharmony_ci    Use SkM44 if you want to have 3d transformations.
610cb93a386Sopenharmony_ci
611cb93a386Sopenharmony_ci  * Changed Dilate and Erode image filters to take SkScalar for radius instead of int. While
612cb93a386Sopenharmony_ci    the image filters themselves are defined in terms of discrete pixels, the radii provided by
613cb93a386Sopenharmony_ci    the user are mapped through the CTM so taking ints forced over discretization. After mapping
614cb93a386Sopenharmony_ci    through the CTM the radii are now rounded to pixels.
615cb93a386Sopenharmony_ci    https://review.skia.org/281731
616cb93a386Sopenharmony_ci    https://review.skia.org/282636
617cb93a386Sopenharmony_ci
618cb93a386Sopenharmony_ci  * Updated the contract of GrContext and SkSurface flush calls in regards to semaphores. Made it
619cb93a386Sopenharmony_ci    clear that the caller is responsible for deleting any initialized semaphores after the flush
620cb93a386Sopenharmony_ci    call regardless if we were able to submit them or not. Also, allows skia to only submit a
621cb93a386Sopenharmony_ci    subset of the requested semaphores if we failed to create some.
622cb93a386Sopenharmony_ci    https://review.skia.org/282265
623cb93a386Sopenharmony_ci
624cb93a386Sopenharmony_ci
625cb93a386Sopenharmony_ci  * SkCanvas::drawVertices will now always fill the triangles specified by the vertices. Previously,
626cb93a386Sopenharmony_ci    vertices with no colors and no (texture coordinates or shader) would be drawn in wireframe.
627cb93a386Sopenharmony_ci    https://review.skia.org/282043
628cb93a386Sopenharmony_ci
629cb93a386Sopenharmony_ci* * *
630cb93a386Sopenharmony_ci
631cb93a386Sopenharmony_ciMilestone 83
632cb93a386Sopenharmony_ci------------
633cb93a386Sopenharmony_ci
634cb93a386Sopenharmony_ci  * Remove localmatrix option from SkShaders::[Blend, Lerp]
635cb93a386Sopenharmony_ci
636cb93a386Sopenharmony_ci  * Fill out Direct3D parameters for backend textures and backend rendertargets.
637cb93a386Sopenharmony_ci
638cb93a386Sopenharmony_ci  * SkImage::makeTextureImage() takes an optional SkBudgeted param
639cb93a386Sopenharmony_ci
640cb93a386Sopenharmony_ci  * Made non-GL builds of GPU backend more robust.
641cb93a386Sopenharmony_ci    https://review.skia.org/277456
642cb93a386Sopenharmony_ci
643cb93a386Sopenharmony_ci  * MoltenVK support removed. Use Metal backend instead.
644cb93a386Sopenharmony_ci    https://review.skia.org/277612
645cb93a386Sopenharmony_ci
646cb93a386Sopenharmony_ci* * *
647cb93a386Sopenharmony_ci
648cb93a386Sopenharmony_ciMilestone 82
649cb93a386Sopenharmony_ci------------
650cb93a386Sopenharmony_ci
651cb93a386Sopenharmony_ci  * Removed drawBitmap and related functions from SkDevice; all public drawBitmap functions on
652cb93a386Sopenharmony_ci    SkCanvas automatically wrap the bitmap in an SkImage and call the equivalent drawImage function.
653cb93a386Sopenharmony_ci    Drawing mutable SkBitmaps will now incur a mandatory copy. Switch to using SkImage directly or
654cb93a386Sopenharmony_ci    mark the bitmap as immutable before drawing.
655cb93a386Sopenharmony_ci
656cb93a386Sopenharmony_ci  * Removed "volatile" flag from SkVertices. All SkVertices objects are assumed to be
657cb93a386Sopenharmony_ci    volatile (the previous default behavior).
658cb93a386Sopenharmony_ci
659cb93a386Sopenharmony_ci  * Removed exotic legacy bitmap functions from SkCanvas (drawBitmapLattic, drawBitmapNine); the
660cb93a386Sopenharmony_ci    exotic SkImage functions still exist.
661cb93a386Sopenharmony_ci
662cb93a386Sopenharmony_ci  * Make it possible to selectively turn on/off individual encoders/decoders,
663cb93a386Sopenharmony_ci    using skia_use_(libpng/libjpeg_turbo/libwebp)(decode/encode).
664cb93a386Sopenharmony_ci
665cb93a386Sopenharmony_ci  * Removed GrGpuResource, GrSurface, and GrTexture from public api. These were not
666cb93a386Sopenharmony_ci    meant to be public, and we now can move them into src. Also removed getTexture
667cb93a386Sopenharmony_ci    function from SkImage.h
668cb93a386Sopenharmony_ci
669cb93a386Sopenharmony_ci  * Removed Bones from SkVertices
670cb93a386Sopenharmony_ci
671cb93a386Sopenharmony_ci  * Added a field to GrContextOptions that controls whether GL errors are checked after
672cb93a386Sopenharmony_ci    GL calls that allocate textures, etc. It also controls checking for shader compile
673cb93a386Sopenharmony_ci    success, and program linking success.
674cb93a386Sopenharmony_ci
675cb93a386Sopenharmony_ci  * Made SkDeferredDisplayList.h officially part of the public API (i.e., moved it to
676cb93a386Sopenharmony_ci    include/core). Also added a ProgramIterator to SkDeferredDisplayList which allows
677cb93a386Sopenharmony_ci    clients to pre-compile some of the shaders the DDL requires.
678cb93a386Sopenharmony_ci
679cb93a386Sopenharmony_ci  * Added two new helper methods to SkSurfaceCharacterization: createBackendFormat and
680cb93a386Sopenharmony_ci    createFBO0. These make it easier for clients to create new surface characterizations that
681cb93a386Sopenharmony_ci    differ only a little from an existing surface characterization.
682cb93a386Sopenharmony_ci
683cb93a386Sopenharmony_ci  * Removed SkTMax and SkTMin.
684cb93a386Sopenharmony_ci  * Removed SkTClamp and SkClampMax.
685cb93a386Sopenharmony_ci  * Removed SkScalarClampMax and SkScalarPin.
686cb93a386Sopenharmony_ci  * Removed SkMax32 and SkMin32.
687cb93a386Sopenharmony_ci  * Removed SkMaxScalar and SkMinScalar.
688cb93a386Sopenharmony_ci
689cb93a386Sopenharmony_ci  * SkColorSetA now warns if the result is unused.
690cb93a386Sopenharmony_ci
691cb93a386Sopenharmony_ci  * An SkImageInfo with a null SkColorSpace passed to SkCodec::getPixels() and
692cb93a386Sopenharmony_ci    related calls is treated as a request to do no color correction at decode
693cb93a386Sopenharmony_ci    time.
694cb93a386Sopenharmony_ci
695cb93a386Sopenharmony_ci  * Add new APIs to add attributes to document structure node when
696cb93a386Sopenharmony_ci    creating a tagged PDF.
697cb93a386Sopenharmony_ci
698cb93a386Sopenharmony_ci  * Remove CGFontRef parameter from SkCreateTypefaceFromCTFont.
699cb93a386Sopenharmony_ci    Use CTFontManagerCreateFontDescriptorFromData instead of
700cb93a386Sopenharmony_ci    CGFontCreateWithDataProvider to create CTFonts to avoid memory use issues.
701cb93a386Sopenharmony_ci
702cb93a386Sopenharmony_ci  * Added SkCodec:: and SkAndroidCodec::getICCProfile for reporting the native
703cb93a386Sopenharmony_ci    ICC profile of an encoded image, even if it doesn't map to an SkColorSpace.
704cb93a386Sopenharmony_ci
705cb93a386Sopenharmony_ci  * SkSurface::ReplaceBackendTexture takes ContentChangeMode as a parameter,
706cb93a386Sopenharmony_ci    which allow callers to specify whether retain a copy of the current content.
707cb93a386Sopenharmony_ci
708cb93a386Sopenharmony_ci  * Enforce the existing documentation in SkCanvas::saveLayer that it ignores
709cb93a386Sopenharmony_ci    any mask filter on the restore SkPaint. The 'coverage' of a layer is
710cb93a386Sopenharmony_ci    ill-defined, and masking should be handled by pre-clipping or using the
711cb93a386Sopenharmony_ci    auxiliary clip mask image of the SaveLayerRec.
712cb93a386Sopenharmony_ci
713cb93a386Sopenharmony_ci* * *
714cb93a386Sopenharmony_ci
715cb93a386Sopenharmony_ciMilestone 81
716cb93a386Sopenharmony_ci------------
717cb93a386Sopenharmony_ci
718cb93a386Sopenharmony_ci  * Added support for GL_NV_fence extension.
719cb93a386Sopenharmony_ci
720cb93a386Sopenharmony_ci  * Make SkImageInfo::validRowBytes require rowBytes to be pixel aligned. This
721cb93a386Sopenharmony_ci    makes SkBitmap match the behavior of raster SkSurfaces in rejecting
722cb93a386Sopenharmony_ci    non-aligned rowBytes.
723cb93a386Sopenharmony_ci
724cb93a386Sopenharmony_ci  * Added an SkImage::MakeRasterFromCompressed entry point. Also updated
725cb93a386Sopenharmony_ci    SkImage::MakeFromCompressed to decompress the compressed image data if
726cb93a386Sopenharmony_ci    the GPU doesn't support the specified compression type (i.e., macOS Metal
727cb93a386Sopenharmony_ci    doesn't support BC1_RGB8_UNORM so such compressed images will always be
728cb93a386Sopenharmony_ci    decompressed on that platform).
729cb93a386Sopenharmony_ci
730cb93a386Sopenharmony_ci  * Added support for BC1 RGBA compressed textures
731cb93a386Sopenharmony_ci
732cb93a386Sopenharmony_ci  * Added CachingHint to SkImage::makeRasterImage
733cb93a386Sopenharmony_ci
734cb93a386Sopenharmony_ci  * Added SkAnimatedImage::getCurrentFrame()
735cb93a386Sopenharmony_ci
736cb93a386Sopenharmony_ci  * Add support to create an SkSurface from an MTKView, with delayed acquisition of
737cb93a386Sopenharmony_ci    the MTLDrawable.
738cb93a386Sopenharmony_ci    Entry point: SkSurface::MakeFromMTKView
739cb93a386Sopenharmony_ci
740cb93a386Sopenharmony_ci  * Removed SkIRect::EmptyIRect(). Use SkIRect::MakeEmpty() instead.
741cb93a386Sopenharmony_ci    https://review.skia.org/262382/
742cb93a386Sopenharmony_ci
743cb93a386Sopenharmony_ci  * Moved SkRuntimeEffect to public API. This is the new (experimental) interface to custom SkSL
744cb93a386Sopenharmony_ci    shaders and color filters.
745cb93a386Sopenharmony_ci
746cb93a386Sopenharmony_ci  * Added BC1 compressed format support. Metal and Vulkan seem to only support the BC
747cb93a386Sopenharmony_ci    formats on desktop machines.
748cb93a386Sopenharmony_ci
749cb93a386Sopenharmony_ci  * Added compressed format support for backend texture creation API.
750cb93a386Sopenharmony_ci    This adds the following new entry points:
751cb93a386Sopenharmony_ci    GrContext::compressedBackendFormat
752cb93a386Sopenharmony_ci    GrContext::createCompressedBackendTexture
753cb93a386Sopenharmony_ci    The latter method comes in variants that allow color-initialized and
754cb93a386Sopenharmony_ci    compressed texture data initialized.
755cb93a386Sopenharmony_ci
756cb93a386Sopenharmony_ci  * Added SkMatrix::MakeTrans(SkIVector)
757cb93a386Sopenharmony_ci    https://review.skia.org/259804
758cb93a386Sopenharmony_ci
759cb93a386Sopenharmony_ci* * *
760cb93a386Sopenharmony_ci
761cb93a386Sopenharmony_ciMilestone 80
762cb93a386Sopenharmony_ci------------
763cb93a386Sopenharmony_ci
764cb93a386Sopenharmony_ci  * For Vulkan backend, we now require that the VkDevice, Queue, and Instance outlive
765cb93a386Sopenharmony_ci    either the destruction or abandoning of the GrContext. Additionally, all
766cb93a386Sopenharmony_ci    GrBackendTextures created via GrContext::createBackendTexture calls must be deleted
767cb93a386Sopenharmony_ci    before destroying or abandoning the GrContext.
768cb93a386Sopenharmony_ci    https://review.skia.org/257921
769cb93a386Sopenharmony_ci
770cb93a386Sopenharmony_ci  * Removed SkSize& SkSize::operator=(const SkISize&)
771cb93a386Sopenharmony_ci    https://review.skia.org/257880
772cb93a386Sopenharmony_ci
773cb93a386Sopenharmony_ci  * SkISize width() and height() now constexpr
774cb93a386Sopenharmony_ci    https://review.skia.org/257680
775cb93a386Sopenharmony_ci
776cb93a386Sopenharmony_ci  * Added SkMatrix::MakeTrans(SkVector) and SkRect::makeOffset(SkVector).
777cb93a386Sopenharmony_ci    https://review.skia.org/255782
778cb93a386Sopenharmony_ci
779cb93a386Sopenharmony_ci  * Added SkImageInfo::MakeA8(SkISize) and added optional color space parameter to
780cb93a386Sopenharmony_ci    SkImageInfo::MakeN32Premul(SkISize).
781cb93a386Sopenharmony_ci
782cb93a386Sopenharmony_ci  * Added dimensions() and getFrameCount() to SkAnimatedImage
783cb93a386Sopenharmony_ci    https://review.skia.org/253542
784cb93a386Sopenharmony_ci
785cb93a386Sopenharmony_ci  * Removed SkMatrix44 version of toXYZD50 from SkColorSpace. Switched to skcms types in
786cb93a386Sopenharmony_ci    transferFn, invTrasnferFn, and gamutTransformTo functions.
787cb93a386Sopenharmony_ci    https://review.skia.org/252596
788cb93a386Sopenharmony_ci
789cb93a386Sopenharmony_ci  * Removed rotation and YUV support from SkColorMatrix
790cb93a386Sopenharmony_ci    https://review.skia.org/252188
791cb93a386Sopenharmony_ci
792cb93a386Sopenharmony_ci  * Added kBT2020_SkYUVColorSpace. This is BT.2020's YCbCr conversion (non-constant-luminance).
793cb93a386Sopenharmony_ci    https://review.skia.org/252160
794cb93a386Sopenharmony_ci
795cb93a386Sopenharmony_ci  * Remove old async read pixels APIs
796cb93a386Sopenharmony_ci    https://review.skia.org/251198
797cb93a386Sopenharmony_ci
798cb93a386Sopenharmony_ci  * Expose SkBlendModeCoeff and SkBlendMode_AsCoeff for Porter-Duff blend modes.
799cb93a386Sopenharmony_ci    https://review.skia.org/252600
800cb93a386Sopenharmony_ci
801cb93a386Sopenharmony_ci* * *
802cb93a386Sopenharmony_ci
803cb93a386Sopenharmony_ciMilestone 79
804cb93a386Sopenharmony_ci------------
805cb93a386Sopenharmony_ci
806cb93a386Sopenharmony_ci  * SkTextBlob::Iter to discover the glyph indices and typefaces in each run
807cb93a386Sopenharmony_ci    https://skia-review.googlesource.com/246296
808cb93a386Sopenharmony_ci
809cb93a386Sopenharmony_ci  * Added support for PQ and HLG transfer functions to SkColorSpace.
810cb93a386Sopenharmony_ci    https://skia-review.googlesource.com/c/skia/+/249000
811cb93a386Sopenharmony_ci
812cb93a386Sopenharmony_ci  * Added new api on GrContext ComputeImageSize. This replaces the hold static helper
813cb93a386Sopenharmony_ci    ComputeTextureSize.
814cb93a386Sopenharmony_ci    https://skia-review.googlesource.com/c/skia/+/247337
815cb93a386Sopenharmony_ci
816cb93a386Sopenharmony_ci  * New versions of SkSurface async-rescale-and read APIs that allow client to extend
817cb93a386Sopenharmony_ci    the lifetime of the result data. Old versions are deprecated.
818cb93a386Sopenharmony_ci    https://review.skia.org/245457
819cb93a386Sopenharmony_ci
820cb93a386Sopenharmony_ci  * Add SkColorInfo. It's dimensionless SkImageInfo.
821cb93a386Sopenharmony_ci    https://review.skia.org/245261
822cb93a386Sopenharmony_ci
823cb93a386Sopenharmony_ci  * Added SkPixmap-based createBackendTexture method to GrContext. This allows clients to create
824cb93a386Sopenharmony_ci    backend resources (initialized with texture data) that Skia/Ganesh doesn't know about/track.
825cb93a386Sopenharmony_ci    https://review.skia.org/244676
826cb93a386Sopenharmony_ci
827cb93a386Sopenharmony_ci  * Add explicit src and dst colorspace parameters to SkColorFilter::filterColor4f()
828cb93a386Sopenharmony_ci    https://review.skia.org/244882
829cb93a386Sopenharmony_ci
830cb93a386Sopenharmony_ci  * Remove Vulkan/Metal float32 RGBA texture support
831cb93a386Sopenharmony_ci    https://review.skia.org/244881
832cb93a386Sopenharmony_ci
833cb93a386Sopenharmony_ci  * Add SkSurface::MakeFromCAMetalLayer
834cb93a386Sopenharmony_ci    https://review.skia.org/242563
835cb93a386Sopenharmony_ci
836cb93a386Sopenharmony_ci  * Added kAlpha_F16_SkColorType, kRG_F16_SkColorType and kRGBA_16161616_SkColorType.
837cb93a386Sopenharmony_ci    This is intended to help support HDR YUV uses case (e.g., P010 and P016). As such,
838cb93a386Sopenharmony_ci    the addition is focused on allowing creation of SkPixmaps and SkImages and not
839cb93a386Sopenharmony_ci    SkSurfaces (i.e., who wants to render to render to these?)
840cb93a386Sopenharmony_ci    https://review.skia.org/241357
841cb93a386Sopenharmony_ci
842cb93a386Sopenharmony_ci  * Start to move nested SkPath types (e.g. Direction, Verb) up to root level in SkPathTypes.h
843cb93a386Sopenharmony_ci    https://review.skia.org/241079
844cb93a386Sopenharmony_ci
845cb93a386Sopenharmony_ci  * Remove isRectContour and ksNestedFillRects from public
846cb93a386Sopenharmony_ci    https://review.skia.org/241078
847cb93a386Sopenharmony_ci
848cb93a386Sopenharmony_ci  * Added kRG_88_SkColorType. This is intended to help support YUV uses case (e.g., NV12).
849cb93a386Sopenharmony_ci    As such, the addition is focused on allowing creation of SkPixmaps and SkImages and not
850cb93a386Sopenharmony_ci    SkSurfaces (i.e., who wants to render to RG?)
851cb93a386Sopenharmony_ci    https://review.skia.org/239930
852cb93a386Sopenharmony_ci    https://review.skia.org/235797
853cb93a386Sopenharmony_ci
854cb93a386Sopenharmony_ci  * Make the size of program/pipeline caches configurable via
855cb93a386Sopenharmony_ci    GrContextOptions::fRuntimeProgramCacheSize
856cb93a386Sopenharmony_ci    https://review.skia.org/239756
857cb93a386Sopenharmony_ci
858cb93a386Sopenharmony_ci  * Added kAlpha_16_SkColorType and kRG_1616_SkColorType. This is intended to help support HDR YUV
859cb93a386Sopenharmony_ci    uses case (e.g., P010 and P016). As such, the addition is focused on allowing creation of
860cb93a386Sopenharmony_ci    SkPixmaps and SkImages and not SkSurfaces (i.e., who wants to render to render to these?)
861cb93a386Sopenharmony_ci    https://review.skia.org/239930
862cb93a386Sopenharmony_ci
863cb93a386Sopenharmony_ci  * Add GrContext::precompileShader to allow up-front compilation of previously-cached shaders.
864cb93a386Sopenharmony_ci    https://review.skia.org/239438
865cb93a386Sopenharmony_ci
866cb93a386Sopenharmony_ci* * *
867cb93a386Sopenharmony_ci
868cb93a386Sopenharmony_ciMilestone 78
869cb93a386Sopenharmony_ci------------
870cb93a386Sopenharmony_ci
871cb93a386Sopenharmony_ci  * SkDrawLooper is no longer supported in SkPaint or SkCanvas.
872cb93a386Sopenharmony_ci    https://review.skia.org/230579
873cb93a386Sopenharmony_ci    https://review.skia.org/231736
874cb93a386Sopenharmony_ci
875cb93a386Sopenharmony_ci  * SkPath::Iter::next() now ignores its consumDegenerates bools. Those will so
876cb93a386Sopenharmony_ci    go away entirely
877cb93a386Sopenharmony_ci    https://review.skia.org/235104
878cb93a386Sopenharmony_ci
879cb93a386Sopenharmony_ci  * SkImage: new factories: DecodeToRaster, DecodeToTexture
880cb93a386Sopenharmony_ci    https://review.skia.org/234476
881cb93a386Sopenharmony_ci
882cb93a386Sopenharmony_ci  * SkImageFilter API refactor started:
883cb93a386Sopenharmony_ci    - Provide new factory API in include/effects/SkImageFilters
884cb93a386Sopenharmony_ci    - Consolidated enum types to use SkTileMode and SkColorChannel
885cb93a386Sopenharmony_ci    - Hide filter implementation classes
886cb93a386Sopenharmony_ci    - Hide previously public functions on SkImageFilter that were intended for
887cb93a386Sopenharmony_ci      internal use only
888cb93a386Sopenharmony_ci    https://review.skia.org/230198
889cb93a386Sopenharmony_ci    https://review.skia.org/230876
890cb93a386Sopenharmony_ci    https://review.skia.org/231256
891cb93a386Sopenharmony_ci
892cb93a386Sopenharmony_ci  * SkColorFilters::HSLAMatrix - new matrix color filter operating in HSLA
893cb93a386Sopenharmony_ci    space.
894cb93a386Sopenharmony_ci    https://review.skia.org/231736
895cb93a386Sopenharmony_ci
896cb93a386Sopenharmony_ci  * Modify GrBackendFormat getters to not return internal pointers. Use an enum
897cb93a386Sopenharmony_ci    class for GL formats.
898cb93a386Sopenharmony_ci    https://review.skia.org/233160
899cb93a386Sopenharmony_ci
900cb93a386Sopenharmony_ci  * Expose GrContext::dump() when SK_ENABLE_DUMP_GPU is defined.
901cb93a386Sopenharmony_ci    https://review.skia.org/233557
902cb93a386Sopenharmony_ci
903cb93a386Sopenharmony_ci  * Vulkan backend now supports YCbCr sampler for I420 Vulkan images that are
904cb93a386Sopenharmony_ci    not backed by external images.
905cb93a386Sopenharmony_ci    https://review.skia.org/233776
906cb93a386Sopenharmony_ci
907cb93a386Sopenharmony_ci  * Add SkCodec::SelectionPolicy for distinguishing between decoding a still
908cb93a386Sopenharmony_ci    image or an image sequence for a container format that has both (e.g. HEIF).
909cb93a386Sopenharmony_ci    https://review.skia.org/232839
910cb93a386Sopenharmony_ci
911cb93a386Sopenharmony_ci  * SkImage::makeTextureImage and SkImage::MakeCrossContextFromPixmap no longer
912cb93a386Sopenharmony_ci    take an SkColorSpace parameter. It was unused.
913cb93a386Sopenharmony_ci    https://review.skia.org/234579
914cb93a386Sopenharmony_ci    https://review.skia.org/234912
915cb93a386Sopenharmony_ci
916cb93a386Sopenharmony_ci  * SkImage::reinterpretColorSpace - to reinterpret image contents in a new
917cb93a386Sopenharmony_ci    color space.
918cb93a386Sopenharmony_ci    https://review.skia.org/234328
919cb93a386Sopenharmony_ci
920cb93a386Sopenharmony_ci  * Removed SkImage::MakeCrossContextFromEncoded.
921cb93a386Sopenharmony_ci    https://review.skia.org/234912
922cb93a386Sopenharmony_ci
923cb93a386Sopenharmony_ci  * Add Metal support for GrFence, GrSemaphore, and GrBackendSemaphore
924cb93a386Sopenharmony_ci    https://review.skia.org/233416
925cb93a386Sopenharmony_ci
926cb93a386Sopenharmony_ci  * SkMallocPixelRef: remove MakeDirect and MakeWithProc from API.
927cb93a386Sopenharmony_ci    https://review.skia.org/234660
928cb93a386Sopenharmony_ci
929cb93a386Sopenharmony_ci  * Remove 4-parameter variant of SkRect::join() and intersect(), and
930cb93a386Sopenharmony_ci    noemptycheck variants of intersect().
931cb93a386Sopenharmony_ci    https://review.skia.org/235832
932cb93a386Sopenharmony_ci    https://review.skia.org/237142
933cb93a386Sopenharmony_ci
934cb93a386Sopenharmony_ci  * Remove unused sk_sp comparison operators.
935cb93a386Sopenharmony_ci    https://review.skia.org/236942
936cb93a386Sopenharmony_ci
937cb93a386Sopenharmony_ci  * Add SkColor4f variant to experimental_DrawEdgeAAQuad for SkiaRenderer.
938cb93a386Sopenharmony_ci    https://review.skia.org/237492
939cb93a386Sopenharmony_ci
940cb93a386Sopenharmony_ci  * Deprecated maxCount resource cache limit for Ganesh.
941cb93a386Sopenharmony_ci    This hasn't been relevant for a long time.
942cb93a386Sopenharmony_ci
943cb93a386Sopenharmony_ci  * Changed GrContextOptions' fDisallowGLSLBinaryCaching to fShaderCacheStrategy,
944cb93a386Sopenharmony_ci    and allow caching SkSL.
945cb93a386Sopenharmony_ci    https://review.skia.org/238856
946cb93a386Sopenharmony_ci
947cb93a386Sopenharmony_ci  * Use GL_QCOM_TILED_RENDERING to explicitly discard stencil
948cb93a386Sopenharmony_ci
949cb93a386Sopenharmony_ci  * Added RELEASE_NOTES.txt file
950cb93a386Sopenharmony_ci    https://review.skia.org/229760
951cb93a386Sopenharmony_ci
952cb93a386Sopenharmony_ci  * Implemented internal support for OpenGL tessellation.
953