Zhigang Gong
f871d174a8
glamor: Switch to software fb for too large pixmap.
...
If pixmap's size exceeds the limitation of the MESA library, the
rendering will fail. So we switch to software fb if it is the case.
Add one new element for pixmap private structure to indicate whehter
we are a software fb type or a opengl type.
2011-09-26 16:46:35 +08:00
Zhigang Gong
c97d4533f2
glamor: Silent compilation warnings due to some deprecated APIs.
...
those xcalloc/xfree/xalloc/XNFprintf/... are deprecated. Replace
then with the new one. And fix some other minor problems.
2011-09-26 16:46:34 +08:00
Zhigang Gong
eb3487a448
glamor: Add new feature which is to flip output on y axis.
...
Due to the coordinate system on EGL is different from FBO
object. To support EGL surface well, we add this new feature.
When calling glamor_init from EGL ddx driver, it should use
the new flag GLAMOR_INVERTED_Y_AXIS.
2011-09-26 16:46:34 +08:00
Zhigang Gong
47b6531273
glamor: Fixed one segfault bug when close screen.
...
move the original glamor_fini to glamor_close_screen. And wrap the CloseScreen
with glamor_close_screen, Then we can do some thing before call the underlying
CloseScreen().
The root cause is that glamor_fini will be called after the ->CloseScreen().
This may trigger a segmentation fault at
glamor_unrealize_glyph_caches() at calling into FreePicture().
2011-09-26 16:46:34 +08:00
Zhigang Gong
f9843c7a35
glamor: Fixed one conflict data type(XID) bug.
...
We should include the dix-config.h for all the glamor files. Otherwise
the XID type maybe inconsisitent in different files in 64bit machine.
The root cause is this macro "#define _XSERVER64 1" should be included
in all files refer to the data type "XID" which is originally defined
in X.h. If _XSERVER64 is defined as 1, then XID is defined as CARD32
which is a 32bit integer. If _XSERVER64 is not defined as 1 then XID
is "unsigned long". In a 32bit machine, "unsigned long" should be
identical to CARD32. But in a 64bit machine, they are different.
2011-09-26 16:46:34 +08:00
Eric Anholt
003dee4c82
glamor: Replace the immediate mode in glamor_fill() with glDrawArrays().
2011-09-26 16:46:34 +08:00
Eric Anholt
60775e21e3
glamor: Use a VBO to accumulate multiple glyph quads at once.
...
This increases us from 23000 to 27000/sec on rgb24text.
2011-09-26 16:46:34 +08:00
Eric Anholt
6ce05e0b28
glamor: Convert the shaders path to handling glamor_composite_rect_t.
2011-09-26 16:46:34 +08:00
Eric Anholt
858ce0c192
glamor: Add support for component alpha rendering.
...
Brings x11perf -rgb24text from 230/sec to 18400/sec
2011-09-26 16:46:34 +08:00
Eric Anholt
d07fc66a05
glamor: Rework shader setup to make extending the IN types easier.
2011-09-26 16:46:33 +08:00
Eric Anholt
8cefa287dd
glamor: Add a little mechanism for only printing fallbacks when they happen.
...
Sometimes we want to try a couple of different methods for
accelerating. If one of them says "no" and the other says "yes",
don't spam the log about the "no."
2011-09-26 16:46:33 +08:00
Eric Anholt
d61a13cf3f
glamor: Fix and enable tile fill acceleration (aka the root weave).
2011-09-26 16:46:33 +08:00
Eric Anholt
be82a06242
glamor: Fix screen_x/screen_y handling for compositing.
...
It's not an offset from pixmap coords to composited pixmap coords,
it's an offset from screen-relative window drawable coords to
composited pixmap coords.
2011-09-26 16:46:33 +08:00
Eric Anholt
0565c1d789
glamor: Add support for accel of x8r8g8b8 source pictures.
...
There's a limitation still for RepeatNone, but this fixes a bunch of
fallbacks for gnome-terminal.
2011-09-26 16:46:33 +08:00
Eric Anholt
126fc09cb5
glamor: Rework the Render shader setup to be easily modified, like cairo-gl.
2011-09-26 16:46:33 +08:00
Eric Anholt
f4a3194837
glamor: Add the glyph cache from UXA (de-camelCased).
...
This doesn't yet have an optimized glamor_composite_rects()
implementation, but it does triple the speed of x11perf -aa10text.
2011-09-26 16:46:33 +08:00
Eric Anholt
7e6432e7b9
glamor: Fix up and enable accelerated composite.
2011-09-26 16:46:33 +08:00
Eric Anholt
647b9fb49a
glamor: Add CopyWindow implementation so it doesn't crash.
2011-09-26 16:46:32 +08:00
Eric Anholt
45de3d24b4
glamor: Replace the glDrawPixels in glamor_finish_access with GLSL.
...
Root weave displays. \o/
2011-09-26 16:46:32 +08:00
Eric Anholt
55dac9b42e
glamor: Add glamor_prepare_access_gc() from UXA.
2011-09-26 16:46:32 +08:00
Eric Anholt
e9d4794cd0
glamor: Add fallbacks for Render.
2011-09-26 16:46:32 +08:00
Eric Anholt
de675893b7
glamor: Add fallbacks for glamor_copy_area().
2011-09-26 16:46:32 +08:00
Eric Anholt
ca58607a44
glamor: Move glamor_poly_lines to a separate file.
2011-09-26 16:46:32 +08:00
Eric Anholt
c4343dfa0a
glamor: Add prepare/finishaccess code based on UXA.
2011-09-26 16:46:32 +08:00
Eric Anholt
5915b4c0cf
glamor: Add support for solid source pictures.
2011-09-26 16:46:32 +08:00
Eric Anholt
1159ebb30b
glamor: Add untested copyarea implementation
2011-09-26 16:46:32 +08:00
Eric Anholt
936385142c
glamor: Accelerate PolyFillRect using glamor_fill instead of spans.
2011-09-26 16:46:32 +08:00
Eric Anholt
854e9bd20a
glamor: Add untested PutImage XYBitmap support.
2011-09-26 16:46:31 +08:00
Eric Anholt
aa13306974
glamor: Start adding render acceleration support.
...
This brings in idr's glu3 code. We'll probably want to move to linking to
it as a library, once an ABI-stable release is out.
2011-09-26 16:46:31 +08:00
Eric Anholt
44e4599b83
glamor: Move planemask to a function in case I decide to fill it in.
2011-09-26 16:46:31 +08:00
Eric Anholt
cdb1fe6d96
glamor: Move setspans to a separate file.
2011-09-26 16:46:31 +08:00
Eric Anholt
cfb8dea815
glamor: Hook up miGetImage to fix some invalid accesses.
2011-09-26 16:46:31 +08:00
Eric Anholt
e3c02c09c1
glamor: Add ALU support to solid, tile, and putimage.
2011-09-26 16:46:31 +08:00
Eric Anholt
2b657d91d8
glamor: Add untested putimage support.
2011-09-26 16:46:31 +08:00
Eric Anholt
93ad091442
glamor: Add trapezoids code.
...
This fixes segfaults on starting gnome-terminal.
2011-09-26 16:46:31 +08:00
Eric Anholt
f6cffbb2ba
glamor: Add stub Composite support.
2011-09-26 16:46:31 +08:00
Eric Anholt
16c3b929dd
glamor: Add untested support for tile filling.
2011-09-26 16:46:31 +08:00
Eric Anholt
519103565c
glamor: Create FBOs for pixmaps.
2011-09-26 16:46:31 +08:00
Eric Anholt
4f139db92f
glamor: Add getspans implementation.
2011-09-26 16:46:30 +08:00
Eric Anholt
f1dbed5456
glamor: Move to using shader objects.
2011-09-26 16:46:30 +08:00
Eric Anholt
2e35ceca65
ephyr: Use GLEW.
...
This will hide all sorts of extension stuff from us.
2011-09-26 16:46:30 +08:00
Eric Anholt
df083fab84
glamor: first real attempt at rendering.
2011-09-26 16:46:30 +08:00
Eric Anholt
4d52ae7f2d
glamor: Start trying to hook up the rendering bits
2011-09-26 16:46:30 +08:00