Skia Graphics 2018+ Themes
Client Driven
Web
Priorities:
- New platform support
- Low memory/storage/bandwidth
- Speed, Simplicity, Stability, Security
- Futures like AR/VR
重要度:
- 新平臺支持
- 低內存,存儲,帶寬
- 速度,簡單,穩定,安全
- AR/VR 特性的支持
Answers:
- Deferred Display Lists (for improved CPU-GPU parallelism)
- Experimental Metal or DirectX backends
- Better GPU: Threading, caching, ANGLE
- Improved cache management
- New APIs for compacting not recently used resources
- Skia Raster Pipeline and serialization
- Code simplification
- Security fuzzing + fixing
- Large coverage cross-platform/device perf and correctness testing
- Scene & animation picture format for improved debug
- Better Print: PDFium rendering + security, XPS support
- Improved font manipulation, including emoji, bidi, ...
方案:
- 延遲顯示隊列(改進CPU,GPU併發)
- 實驗metal,dx 後端支持
- 優化gpu,線程,緩存,ANGLE工程
- 改進緩存管理
- 新的API,壓縮最近不使用的資源
- skia 柵格化管線和序列化
- 代碼簡化
- 安全性
- 機型覆蓋 優化,正確性測試
- 場景&動畫 改進調試的圖片格式
- 更好地打印,pdf渲染,加密,XPS支持
- 改進字體管理,emoji表情,bidi
Mobile
Priorities:
- Next level performance & correctness across devices
- Material Design shadows and effects
- True color experience
- Low memory/storage/bandwidth
- Improved developer tools and experience
Answers:
- Skia correctness testing in Android Compatibility Test Suite
- Full Skia rendering pipeline + Vulkan
- Material Design implementation
- Improved tooling for professional design → graphics implementation
- Wide gamut support
- Codec integration and memory efficient streaming
- Improved cache management, Raster Pipeline, code simplification
優先級:
- 下一個級別的性能 & 多設備的正確性
- 材質設計 陰影和效果
- 真彩色體驗
- 低內存/存儲/帶寬
- 改進開發者工具和體驗
方案:
- skia正確性測試,在android兼容測試集合中
- skia全渲染管線,+vulkan
- 材質設計實現
- 改進 專業設計的工具,圖形執行
- 全聲域的支持
- codeC 集成,內存高校流
- 改進緩存管理,柵格化管線,代碼簡化
Embedded
Priorities:
- Minimal code size
- Competitive native platform support
- Efficient drawing import/export
- Modularization and flexible builds
- Support libs (especially text)
- Efficient test & debug
Answers:
- Code simplification and deprecation
- Metal, DX backends
- SVG support
- Code restructuring and build advancements
- Documentation
- Text shaping library for Harfbuzz + ICU + Skia integration
優先級:
- 最小代碼量
- 支持本地平臺
- 高效的作品導出 導入
- 模塊化,靈活的構建
- 支持庫
- 高效的測試&調試
解法:
- 代碼精簡
- meta,dx後端
- svg格式支持
- 代碼重構,構建升級
- 文檔化
- 文本塑造庫 Harfbuzz + ICU + Skia 集成
Industry Driven
Trends:
- More capable cameras and displays
- More powerful GPUs
- More availability of CPU cores, SIMD
- AR/VR
- Changing web content and technologies
- Advances in font technologies
- Increasing platforms, GPU varieties
Answers:
- Custom, arbitrary, and wide color profile support
- Updated Coverage Counting Path Renderer
- GPU work staging
- Threaded CPU backend
- Lighting, perspective models
- AR/VR testing
- Cluster Telemetry testing
業界驅動
趨勢:
- 能力更強的照相機和顯示
- 更快速的gpus
- 更多的可用的CPU核心,SIMD
- AR/VR
- 修改web的內容和技術
- 高級字體技術
- 增加GPU品類
解法:
- 定製,任意的,廣泛的顏色配置支持,(HDR?)
- 升級 路徑渲染器
- gpu工作
- 多線程 使用cpu backend
- 光照,透視模型
- ar/vr 測試
- 遙感??
Internally Driven
Needs:
- Progress state of the art in graphics APIs
- Improve usability for clients
- Serve our open source community
- Improve code quality
Answers:
- Introduce new algorithms, effects, ...
- Participate in work groups and progress standards
- Shader compiler
- Deprecate legacy code and update known callsites
- Analysis of other graphics solutions, latest technologies
- Bookmaker API documentation project
- DevRel: Improved website, forum, samples, Fiddle, debugger, bugs, code reviews
- API/ABI stability: C API
- Trybot and CQ support for Perf, Gold
- Power/battery usage testing
- Workflows to go from code → test → samples → docs → bugs
內部驅動
需求:
- 藝術圖形api 升級
- 改進客戶端的可用性
- 服務 開源社區
- 改進代碼質量
解法:
- 引進新算法,效果...
- 參與工作組,過程標準化
- 着色器編譯
- 反對代碼遺產,更新知道的調用域。(代碼修改的藝術)
- 分析其他圖形解決方案,最近的技術
- 編輯API文檔工程
- 改進網站,帖子,樣例,調試器,bugs,代碼評審
- API/ABI 穩定性,C API
- 測試方面,支持perf,Gold
- 電量,電池使用 測試
- 工作流:代碼 -> 測試 -> 樣例 -> 文檔 -> bugs