Re: PATCH: GL: Create glyph mask surface only once per context, enlarge on demand

Mikko Strandborg <[email protected]>
Newsgroups gmane.comp.lib.cairo
Message-ID <CD44185D.C52C%[email protected]>
I don't think it is reasonable to expect GPU resources to be cheap to
create and/or destroy. That's why newer OpenGL specifications add more and
more ways to buffer such GPU resources on the GPU hardware, rather than
requiring them to be transferred over non-uniform memory and relatively
slow buses to the GPU hardware on every frame. Of course in this case we
weren't transferring data over the bus, but the situation is similar to
having a malloc/free pair in the inner loop of a computation.

I understand that cairo is immediate in nature, but we should aim towards
making it as GPU-friendly as possible in order to extract maximum
performance. Any GPU performance guide will tell you that creating and
releasing resources on-the-fly is A Bad Thing, so it should be avoided as
much as possible.

I wish we were in the position where cairo's fundamental requirements
would have a say in GPU HW architectures, but I just do not think it is
the case (at least not quite yet), so we'll have to adapt to whatever is
available =). The patch is fairly simple and straightforward, so there
should be no unintended side-effects.

--Mikko

On 2/15/13 4:26 PM, "Chris Wilson" <[email protected]> wrote:

>On Fri, Feb 15, 2013 at 02:15:41PM +0000, Mikko Strandborg wrote:
>> Hi,
>> 
>> I'm not quite sure what you mean. Is the mask currently allocated and
>> released every draw call in order to work around a driver bug?
>>Generally,
>> allocating new textures (or other GPU resources) every frame is
>>considered
>> ineffective.
>
>Hah. It is a fundamental requirement of the immediate mode nature of
>cairo that GPU resources need to be extremely to cheap to create and
>destroy. The current GL drivers are comparatively extremely poor in this
>area.
>-Chris
>
>-- 
>Chris Wilson, Intel Open Source Technology Centre

-- 
cairo mailing list
[email protected]
http://lists.cairographics.org/mailman/listinfo/cairo
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.