Git Product home page Git Product logo

asavonic / krita-gpu Goto Github PK

View Code? Open in Web Editor NEW

This project forked from kde/krita

1.0 1.0 0.0 551 MB

[WIP] OpenCL acceleration for Krita

License: GNU General Public License v3.0

CMake 1.37% C 1.95% Shell 0.11% Perl 0.06% C++ 92.24% MATLAB 0.01% Python 2.17% HTML 0.28% GLSL 0.04% Objective-C 0.04% QMake 0.01% Batchfile 0.15% Prolog 0.01% Scheme 0.02% QML 1.42% JavaScript 0.06% Objective-C++ 0.01% Makefile 0.01% NSIS 0.08%

krita-gpu's Introduction

Status

Build is ok; passed all existing tests. Tested on Nvidia GTX 1070 on Linux.

Performance is good (up to 27x speedup) on large tiles, but poor on small tiles.

Algorithms

  • [X] CompositeOpAlphaDarken32: implemented, performance: poor
  • [ ] CompositeOpAlphaDarken128
  • [ ] CompositeOpOver32
  • [ ] CompositeOpOver128

Current problems

Tile size is too small
Average working area of a composite function is 64x64 pixels (16KB), which means that runtime overhead of memory transfer b/w a host and a device is significant.
Need more testing
Unit tests for OpenCL components, more tests for composite ops.

Next steps

  • Optimize CompositeOpAlphaDarken32 for small tiles
    • [ ] Pre-allocate pinned memory
    • [ ] Allocate tiles in GPU memory and keep it consistent with CPU.
  • Run on Intel OpenCL for CPU and GPU.

krita-gpu's People

Contributors

hallarempt avatar dimula73 avatar kossebau avatar boemann avatar hambre avatar lukastvrdy avatar scottpetrovic avatar montel avatar therahedwig avatar staniek avatar ganeshp avatar sebsauer avatar ingwal avatar bcoppens avatar dfaure avatar miabrahams avatar plassy avatar alvinhochun avatar somsubhra avatar animtim avatar pinaraf avatar awhiemstra avatar mxj4 avatar petersimonsson avatar estan avatar gladhorn avatar leinir avatar mthaler avatar fyanardi avatar smjert avatar

Stargazers

Ninu J Laari avatar

Watchers

Andrew Savonichev avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.