Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • Krita Krita
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Bugzilla
    • Bugzilla
  • Merge requests 72
    • Merge requests 72
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Releases
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Jobs
  • Commits
Collapse sidebar
  • GraphicsGraphics
  • KritaKrita
  • Merge requests
  • !1404

[FEATURE] Port Krita to xsimd

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Amy spark requested to merge lsegovia/krita:work/amyspark/xsimd-port-2 into master Apr 04, 2022
  • Overview 88
  • Commits 13
  • Pipelines 38
  • Changes 94

This commit replaces our Vc backend with xsimd, QuantStack's SIMD offering backing the xtensor project.

This requires the following:

  • wholesale replacement of Vc with xsimd alternatives
  • implementation of dispatching against the xsimd::generic architecture (i.e. Vc::ScalarImpl)
  • implementation of rudimentary gather-scatter and integer rounding ops

This brings Arm support to our backend for Free(tm).

TODO

  • Correct implementation of target architecture detection
  • Vc's will not work on Android or on a cross-compiled architecture
  • Simplification of the xsimd Vc-ported CMake macros
  • A way to make the benchmarks use the highest available dispatchable instruction set

Test Plan

Build Krita with xsimd. Check that you can paint without glitches.

Formalities Checklist

  • I confirmed this builds.
  • I confirmed Krita ran and the relevant functions work.
  • I tested the relevant unit tests and can confirm they are not broken. (If not possible, don't hesitate to ask for help!)
  • I made sure my commits build individually and have good descriptions as per KDE guidelines.
  • I made sure my code conforms to the standards set in the HACKING file.
  • I can confirm the code is licensed and attributed appropriately, and that unattributed code is mine, as per KDE Licensing Policy.
Edited May 18, 2022 by Amy spark
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: work/amyspark/xsimd-port-2