Tile engine

View: New views
6 Messages — Rating Filter:   Alert me  

Tile engine

by Bugzilla from lukast.dev@gmail.com :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

I would like to ask if we have tile row hinting?
Described here http://git.gnome.org/cgit/gimp/tree/NEWS?h=gimp-1-2 as

"The image compositing has been speed up by                          
implementing hints to the tile structure.
That way the render-engine knows for example
if a row is totally transparent and can skip
the calculation."

Dimitry, do you know about any papers/articles describing the tile engine?


_______________________________________________
kimageshop mailing list
kimageshop@...
https://mail.kde.org/mailman/listinfo/kimageshop

Re: Tile engine

by Bugzilla from dimula73@gmail.com :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


I would like to ask if we have tile row hinting?
Described here http://git.gnome.org/cgit/gimp/tree/NEWS?h=gimp-1-2 as

"The image compositing has been speed up by
implementing hints to the tile structure.
That way the render-engine knows for example
if a row is totally transparent and can skip
the calculation."

Well, we do not have it as you described, we have extent() mechanism only to skip transparent pixels.

 
Dimitry, do you know about any papers/articles describing the tile engine?

Which do you mean? General science articles? I can't remember any =( But i shall take a look.

If you mean ones describing our engine, we could discuss it, and i could write some if needed.

I was publishing some initial ideas to the mail-list and a blog. Some of them have transformed a bit during implementation, but only a bit. =)
http://dimula73.blogspot.com/



--
Dmitry Kazakov

_______________________________________________
kimageshop mailing list
kimageshop@...
https://mail.kde.org/mailman/listinfo/kimageshop

Re: Tile engine

by Bugzilla from lukast.dev@gmail.com :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Wednesday 14 October 2009 18:18:41 Dmitry Kazakov wrote:

> > I would like to ask if we have tile row hinting?
> > Described here http://git.gnome.org/cgit/gimp/tree/NEWS?h=gimp-1-2 as
> >
> > "The image compositing has been speed up by
> > implementing hints to the tile structure.
> > That way the render-engine knows for example
> > if a row is totally transparent and can skip
> > the calculation."
>
> Well, we do not have it as you described, we have extent() mechanism only
>  to skip transparent pixels.

KisPaintDevice::Extent() is faster then KisPaintDevice::ExactBounds(),
exactBounds() is more precise but slow (AFAIK it does scanlines)
Would we benefit from that idea the GIMP is using? Would it be possible for you
to implement it in the tile engine?


> If you mean ones describing our engine, we could discuss it, and i could
> write some if needed.
>
> I was publishing some initial ideas to the mail-list and a blog. Some of
> them have transformed a bit during implementation, but only a bit. =)
> http://dimula73.blogspot.com/
 
I think your blog is enough. I just want to have basic understanding what is
doing Krita behind and if I can help to make the tile engine work faster using
OpenCL or OpenGL somehow..

If you have some spare time =) you can put high-level description to
http://wiki.koffice.org.

BTW What is the status of the mip mapping and your tile engine? When we will
switch to your tile engine?

Lukas
_______________________________________________
kimageshop mailing list
kimageshop@...
https://mail.kde.org/mailman/listinfo/kimageshop

Re: Tile engine

by Bugzilla from boud@valdyas.org :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Wednesday 14 October 2009, Dmitry Kazakov wrote:
> > "The image compositing has been speed up by
> > implementing hints to the tile structure.
> > That way the render-engine knows for example
> > if a row is totally transparent and can skip
> > the calculation."
>
> Well, we do not have it as you described, we have extent() mechanism only
>  to skip transparent pixels.
>

extent() gives the area covered by allocated tiles, exactbounds() the area
covered by non-transparent pixels.

--
Boudewijn Rempt | http://www.valdyas.org
_______________________________________________
kimageshop mailing list
kimageshop@...
https://mail.kde.org/mailman/listinfo/kimageshop

Re: Tile engine

by Bugzilla from lukast.dev@gmail.com :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Wednesday 14 October 2009 19:42:19 Boudewijn Rempt wrote:

> On Wednesday 14 October 2009, Dmitry Kazakov wrote:
> > > "The image compositing has been speed up by
> > > implementing hints to the tile structure.
> > > That way the render-engine knows for example
> > > if a row is totally transparent and can skip
> > > the calculation."
> >
> > Well, we do not have it as you described, we have extent() mechanism only
> >  to skip transparent pixels.
>
> extent() gives the area covered by allocated tiles, exactbounds() the area
> covered by non-transparent pixels.
>

Would be possible to add feature to iterators so that they would check how big
the rect actually is when accessing the data? Would that add too much
overhead?

The client usually can do that too but it complicates the design.
Eg. when I put pixels with sumi, I could check the QRect, but I would have to
change the method to paint anti-aliased pixels, e.g. for spray every
rasterizing method would have to be changed to compute the rect and I'm trying
to have rasterizing methods which could go to KisPainter so that I can reuse
them.

_______________________________________________
kimageshop mailing list
kimageshop@...
https://mail.kde.org/mailman/listinfo/kimageshop

Re: Tile engine

by Bugzilla from kde@bartcoppens.be :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Wednesday 14 October 2009, LukasT.dev@... wrote:
> I think your blog is enough. I just want to have basic understanding what
> is doing Krita behind and if I can help to make the tile engine work faster
> using OpenCL or OpenGL somehow..
A tiles engine is just a mechanism to store and retrieve raw datadumps.
Combining OpenGL with a tiles engine really only makes sense when the tile
data itself resides on the graphics card (so that the *rest* of Krita can use
OpenGL commands to transform the data on the graphics card directly). Hence,
IMO, you should not use OpenGL to somehow make the tile engine work faster,
since it merely exists to supply other parts of Krita with data.

Bart
_______________________________________________
kimageshop mailing list
kimageshop@...
https://mail.kde.org/mailman/listinfo/kimageshop