Changeset 292035 in webkit
- Timestamp:
- Mar 29, 2022, 10:05:11 AM (5 years ago)
- Location:
- trunk/Source
- Files:
-
- 7 edited
-
WebCore/ChangeLog (modified) (1 diff)
-
WebCore/PAL/ChangeLog (modified) (1 diff)
-
WebCore/PAL/pal/spi/cg/ImageIOSPI.h (modified) (1 diff)
-
WebCore/platform/graphics/cg/ImageDecoderCG.cpp (modified) (4 diffs)
-
WebCore/platform/graphics/cg/ImageDecoderCG.h (modified) (3 diffs)
-
WebKit/ChangeLog (modified) (1 diff)
-
WebKit/WebProcess/WebProcess.cpp (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r292034 r292035 1 2022-03-28 Simon Fraser <simon.fraser@apple.com> 2 3 [iOS GPUProcess] Image decoding should not trigger IOSurface usage in the web process 4 https://bugs.webkit.org/show_bug.cgi?id=238489 5 <rdar://88717577> 6 7 Reviewed by Per Arne Vollan. 8 9 When hardwareAcceleratedDecodingDisabled() has been called, turn off hardware acceleration 10 for image decoding. 11 12 * platform/graphics/cg/ImageDecoderCG.cpp: 13 (WebCore::createImageSourceOptions): 14 (WebCore::ImageDecoderCG::disableHardwareAcceleratedDecoding): 15 (WebCore::ImageDecoderCG::hardwareAcceleratedDecodingDisabled): 16 * platform/graphics/cg/ImageDecoderCG.h: 17 1 18 2022-03-29 Brandon Stewart <brandonstewart@apple.com> 2 19 -
trunk/Source/WebCore/PAL/ChangeLog
r291992 r292035 1 2022-03-28 Simon Fraser <simon.fraser@apple.com> 2 3 [iOS GPUProcess] Image decoding should not trigger IOSurface usage in the web process 4 https://bugs.webkit.org/show_bug.cgi?id=238489 5 <rdar://88717577> 6 7 Reviewed by Per Arne Vollan. 8 9 Expose kCGImageSourceUseHardwareAcceleration. 10 11 * pal/spi/cg/ImageIOSPI.h: 12 1 13 2022-03-28 Chris Dumez <cdumez@apple.com> 2 14 -
trunk/Source/WebCore/PAL/pal/spi/cg/ImageIOSPI.h
r280789 r292035 37 37 IMAGEIO_EXTERN const CFStringRef kCGImageSourceSubsampleFactor; 38 38 IMAGEIO_EXTERN const CFStringRef kCGImageSourceShouldCacheImmediately; 39 IMAGEIO_EXTERN const CFStringRef kCGImageSourceUseHardwareAcceleration; 39 40 #endif 40 41 -
trunk/Source/WebCore/platform/graphics/cg/ImageDecoderCG.cpp
r291204 r292035 57 57 const CFStringRef kCGImageSourceSubsampleFactor = CFSTR("kCGImageSourceSubsampleFactor"); 58 58 const CFStringRef kCGImageSourceShouldCacheImmediately = CFSTR("kCGImageSourceShouldCacheImmediately"); 59 const CFStringRef kCGImageSourceUseHardwareAcceleration = CFSTR("kCGImageSourceUseHardwareAcceleration"); 59 60 #endif 60 61 … … 67 68 CFDictionarySetValue(options.get(), kCGImageSourceShouldPreferRGB32, kCFBooleanTrue); 68 69 CFDictionarySetValue(options.get(), kCGImageSourceSkipMetadata, kCFBooleanTrue); 70 71 if (ImageDecoderCG::hardwareAcceleratedDecodingDisabled()) 72 CFDictionarySetValue(options.get(), kCGImageSourceUseHardwareAcceleration, kCFBooleanFalse); 73 69 74 #if HAVE(IMAGE_RESTRICTED_DECODING) && USE(APPLE_INTERNAL_SDK) 70 75 if (ImageDecoderCG::restrictedDecodingEnabled()) … … 257 262 258 263 bool ImageDecoderCG::s_enableRestrictedDecoding = false; 264 bool ImageDecoderCG::s_hardwareAcceleratedDecodingDisabled = false; 259 265 260 266 ImageDecoderCG::ImageDecoderCG(FragmentedSharedBuffer& data, AlphaOption, GammaAndColorProfileOption) … … 608 614 } 609 615 616 void ImageDecoderCG::disableHardwareAcceleratedDecoding() 617 { 618 s_hardwareAcceleratedDecodingDisabled = true; 619 } 620 621 bool ImageDecoderCG::hardwareAcceleratedDecodingDisabled() 622 { 623 return s_hardwareAcceleratedDecodingDisabled; 624 } 625 610 626 } 611 627 -
trunk/Source/WebCore/platform/graphics/cg/ImageDecoderCG.h
r291204 r292035 27 27 28 28 #include "ImageDecoder.h" 29 30 #if USE(CG) 29 31 30 32 namespace WebCore { … … 72 74 static bool restrictedDecodingEnabled(); 73 75 76 WEBCORE_EXPORT static void disableHardwareAcceleratedDecoding(); 77 static bool hardwareAcceleratedDecodingDisabled(); 78 74 79 private: 75 80 bool m_isAllDataReceived { false }; … … 77 82 RetainPtr<CGImageSourceRef> m_nativeDecoder; 78 83 static bool s_enableRestrictedDecoding; 84 static bool s_hardwareAcceleratedDecodingDisabled; 79 85 }; 80 86 81 } 87 } // namespace WebCore 88 89 #endif // USE(CG) -
trunk/Source/WebKit/ChangeLog
r292031 r292035 1 2022-03-28 Simon Fraser <simon.fraser@apple.com> 2 3 [iOS GPUProcess] Image decoding should not trigger IOSurface usage in the web process 4 https://bugs.webkit.org/show_bug.cgi?id=238489 5 <rdar://88717577> 6 7 Reviewed by Per Arne Vollan. 8 9 When useGPUProcessForDOMRendering is true, disable hardware image decoding since 10 we need to avoid IOSurface access in the web process. 11 12 * WebProcess/WebProcess.cpp: 13 (WebKit::WebProcess::setUseGPUProcessForDOMRendering): 14 1 15 2022-03-29 Don Olmstead <don.olmstead@sony.com> 2 16 -
trunk/Source/WebKit/WebProcess/WebProcess.cpp
r291992 r292035 167 167 #endif 168 168 169 #if USE(CG) 170 #include <WebCore/ImageDecoderCG.h> 171 #endif 172 169 173 #if PLATFORM(MAC) 170 174 #include <WebCore/DisplayRefreshMonitorManager.h> … … 2103 2107 void WebProcess::setUseGPUProcessForDOMRendering(bool useGPUProcessForDOMRendering) 2104 2108 { 2109 if (useGPUProcessForDOMRendering == m_useGPUProcessForDOMRendering) 2110 return; 2111 2105 2112 m_useGPUProcessForDOMRendering = useGPUProcessForDOMRendering; 2113 #if USE(CG) 2114 if (m_useGPUProcessForDOMRendering) 2115 ImageDecoderCG::disableHardwareAcceleratedDecoding(); 2116 #endif 2106 2117 } 2107 2118 … … 2202 2213 return m_useGPUProcessForWebGL; 2203 2214 } 2204 2205 #endif 2206 2207 #endif 2215 #endif // ENABLE(WEBGL) 2216 2217 #endif // ENABLE(GPU_PROCESS) 2208 2218 2209 2219 #if ENABLE(MEDIA_STREAM)
Note:
See TracChangeset
for help on using the changeset viewer.