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