Keith Packard <[email protected]> writes:

> Eric Anholt <[email protected]> writes:
>
>> Fixes regressions since my "don't make an FBO for the glyph atlas"
>> change.  The a1 upload was a fallback, as I expected.  However,
>> fallback reads use glReadPixels() because there's no
>> glGetTexSubImage2D() to match glTexSubImage2D().  We were just binding
>> the 0 FBO value, so the glReadPixels() would throw a GL error instead
>> of getting any data.  After the fallback was done we'd write back the
>> undefined data to the atlas, blowing away the entire rest of the atlas
>> because we didn't specify any bounds on our prepare.
>>
>> To fix the fallbacks to actually work, we'd need a prepare path that
>> allocates some memory memory do a full glGetTexImage() into, then
>> memcpy out of that.  Instead, just dodge the general fallback by
>> implementing the specific upload we need to do here, which should also
>> be *much* faster at uploading a1 glyphs since it's not
>> readpixels/texsubimaging back and forth.
>>
>> Signed-off-by: Eric Anholt <[email protected]>
>
> Nice fix. However, it's doing a CopyPlane operation by hand, making it
> LSB-specific. A shorter version just creates a temporary 8bpp CPU pixmap,
> uses CopyPlane to get the glyph into that and uploads from there.
>
> This works for me on ephyr

Reviewed-by: Eric Anholt <[email protected]>

How do you want to handle merging?

Attachment: signature.asc
Description: PGP signature

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to