skia backend and backend selection
* Runtime detection of NEON support
* Add backend that uses GPU (OpenGL ES 2.x) and NEON
Blueprint information
- Status:
- Complete
- Approver:
- Jesse Barker
- Priority:
- High
- Drafter:
- Jammy Zhou
- Direction:
- Needs approval
- Assignee:
- Jammy Zhou
- Definition:
- Approved
- Series goal:
- Accepted for 11.05
- Implementation:
- Implemented
- Milestone target:
- 11.05-final
- Started by
- Jammy Zhou
- Completed by
- Jesse Barker
Related branches
Whiteboard
[jazh Dec 3] simple application developed for arm hwcaps detection: lp:~jammy-zhou/+junk/neon
[jazh Dec 7] develop a simple application to check NEON support of the compiler
[jazh Dec 19] adapt to the new milestones for Graphics WG
[jazh Dec 21] create one bug for the cross compile toolchains in Ubuntu Maverick: https:/
[jazh Dec 22] cross compile chromium browser successfully with fsl 4.4 toolchain
[jazh Dec 23] create one bug for linaro toolchain when compile chromium on ARM: https:/
[jazh Dec 24] two patches for NEON runtime detection in Skia sent out to chromium project for review: http://
[jazh Feb 28] create a topic in skia forum for patch review and discussion: https:/
[jazh March 15] There is benchmark for skia in its own source tree, named "bench". And there is no response from upstream about the patches, which make this blueprint in risk.
[jazh March 30] Re-org the WIs
[jazh March 31] Post the patch to skia reviewboard: http://
[jazh April 1] Upstream contact: <email address hidden>, and <email address hidden>
[jazh April 5] Report one bug for skia on ARM: http://
[jazh April 10] Create skia branch with neon runtime detection in git.linaro.org: http://
[rajeev Jan 21 2011]
Please add or split work items for milestone 11.03 and 11.04. Also, move work items mentioned towards end of sheet to any of the already existing milestone such as 11.01.
===============
[alf Oct 21 2010]
Skia currently has an experimental gl/gles1.1 backend that is not ready for production and currently unsupported: http://
See http://
Furthermore the existing gl code is fixed pipeline oriented (eg gles1.1).
[jazh Oct 22 2010]
Skia has already implemented some neon optimizations for blit and bitmap operations, and the optimization path is enabled by compile flag '__ARM_HAVE_NEON'. For runtime detection of NEON, one possible solution is to do the same as pixman to check "/proc/self/auxv" for arm verison and hardware capability.
Work Items
Work items for 11.01:
implement the check of NEON support in toolchain: DONE
build chromium browser for ARM platform (native build or cross compile) based on upstream code: DONE
get familiar with the 'gyp' build system of chromium browser: DONE
add NEON runtime detection code in opts_check_
Work items for 11.02:
extract NEON specific code into separate files: DONE
compile NEON specific files with "-mfpu=neon": DONE
send out the patch to upstream for review: DONE
Work items for 11.03:
find benchmark for evaluating skia performance: DONE
Work items for 11.04:
Review the skia and chromium contribution process: DONE
Add stand-alone build support of Skia on ARM platform: DONE
Adapt original patches to latest skia upstream: DONE
Separate the huge patchset into smaller ones for easy review: DONE
Do benchmark testing: DONE
Send out the patch for review according to the process: DONE
Upstream the patches: BLOCKED
Work items:
download and package upstream Skia to Launchpad: DONE
look into the skia implementation about NEON optimization: DONE
present the proposal of NEON runtime detection to upstream for feedbacks: DONE
Dependency tree
* Blueprints in grey have been implemented.