Zhigang Gong
1495ba9e64
glamor: Use buffer object as much as possible.
...
Change the row length of 1bit color depth pixmap to the actual stride.
The previous implementation use the width as its stride which is not
good. As it will waste 8 times of space and also bring some non-unify
code path. With this commit, we can merge those 1bit or other color
depth to almost one code path. And we will use pixel buffer object
as much as possible due to performance issue. By default, some mesa
hardware driver will fallback to software rasterization when use
glReadPixels on a non-buffer-object frame buffer. This change will
get about 4x times performance improvemention when we use y-inverted
glamor or the driver support hardware y-flipped blitting.
2011-09-26 16:46:35 +08:00
Zhigang Gong
8593f22fb8
glamor: glamor_set_alu should enable GL_COLOR_LOGIC_OP.
...
GL_COLOR_OP seems not supported in current MESA.
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
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
d8c2662bf4
glamor: Set active texture in finishaccess drawing.
2011-09-26 16:46:33 +08:00
Eric Anholt
95d4a5a6ab
glamor: Enable fill acceleration and flip opposite for pixmaps too.
...
Here's my theory for the flipping: It doesn't really matter which
orientation we store the pixmaps if we don't scan them out. We have
to flip coordinates for the window system framebuffer. Doing so for
everything else makes things consistent. I'm not sure how this will
interact with future GLX integration, though.
2011-09-26 16:46:32 +08:00
Eric Anholt
5332547a0a
glamor: Fix prepare_access on 1bpp data.
...
Apparently I don't have anything hitting this path, so I'm not sure if
it's good or not.
2011-09-26 16:46:32 +08:00
Eric Anholt
c3c3a63497
glamor: Use the pixmap stride in fallbacks instead of trying to guess it.
...
Mostly fixes gnome-terminal text.
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
b5087ff9b1
glamor: Fix the row length of 1bpp prepare_access.
2011-09-26 16:46:32 +08:00
Eric Anholt
e93070affd
glamor: Fix up the access flags for glamor_prepare_access().
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
72a757ba00
glamor: Use GL_MESA_pack_invert to avoid complexity in prepare_access.
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
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
8a53566acb
glamor: make the polylines complaint a little more useful.
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
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
f66e5c4145
glamor: Add 8bpp to get/setspans.
2011-09-26 16:46:31 +08:00
Eric Anholt
60ca0260f2
glamor: Add more solid_fail_regions for software fallbacks.
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
8016135ec7
glamor: Fill out glamor_get_color_4f_from_pixel() a bit.
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
f92d1478e9
glamor: Maybe fix up the format/type for setspans.
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
fbbdd788cb
glamor: Fix up DrawPixels arguments to bear some relation to reality.
2011-09-26 16:46:30 +08:00
Eric Anholt
74f262bcdb
glamor: remove gratuitous flush.
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
b530cdea4a
glamor: Use a nicer struct initializer for gcops.
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