Commit Graph

1044 Commits

Author SHA1 Message Date
Eric Anholt d2da9d1c22 glamor: Reduce the noise from wide lines "fallback". 2011-09-26 16:46:34 +08:00
Eric Anholt 955ccfbc34 glamor: Fix the segfault at screen fini. 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 8ce312e619 glamor: Use glamor_composite_with_shader once per group of glyphs.
This shaves CPU time in GL setup.  Performance of rgb24text went from
18400/sec to 23500/sec.
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 5f5c35b56d glamor: Fix up the fallback message for no texture present on compositing. 2011-09-26 16:46:33 +08:00
Eric Anholt 2fa95725d8 glamor: Add support for a1 composite sources.
They're stored just like a8, but the values are set to either 0.0 or
1.0.  Because they're a8 with only two legal values, we can't use them
as destinations, but nobody's rendering to a1 dests anyway (we hope).
2011-09-26 16:46:33 +08:00
Eric Anholt 9bcbcbf8c2 glamor: Fix and enable ZPixmap PutImage acceleration. 2011-09-26 16:46:33 +08:00
Eric Anholt 2ba634fab9 glamor: Fix render source transforms.
Fixes (except for small bit differences) cairo source-pattern.
2011-09-26 16:46:33 +08:00
Eric Anholt b1f67a5082 glamor: Fix and enable glamor_get_spans().
This makes running the cairo test suite almost tolerable.
2011-09-26 16:46:33 +08:00
Eric Anholt f88d76cf7e glamor: Enable glamor_fill_spans().
x11perf -wline100 performance goes from 8.8/sec to 111/sec.
2011-09-26 16:46:33 +08:00
Eric Anholt a63df0c504 glamor: Fix up the wide/non-solid lines fallback. 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 86a2065253 glamor: Fix off-by-one in CopyPixels CopyArea path.
Fixes window dragging in uncomposited metacity.
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 5360b1e8bb glamor: Implement glCopyPixels based src == dest CopyArea acceleration 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 e6bf505736 glamor: Set active texture on glamor_copy_n_to_n setup.
Fixes failure in rendercheck -t blend -o src
2011-09-26 16:46:33 +08:00
Eric Anholt be64167fea glamor: Don't try to CopyArea from a Solid source picture.
Fixes failure with rendercheck.
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 a0b589e90a glamor: Restore planemask to all-on when finishing a fill. 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 4f398b29dd glamor: Align stride of fallback pixmap data to 32 bits.
fb/pixman demand this alignment, and all sorts of things go badly otherwise.
Fixes piglit x11-8bpp-7x8-draw.
2011-09-26 16:46:33 +08:00
Eric Anholt 15e58b5ffb glamor: Split the copy path out into its own function. 2011-09-26 16:46:33 +08:00
Eric Anholt ad67299fa2 glamor: Provide more information about the operands to fallback composites. 2011-09-26 16:46:33 +08:00
Eric Anholt 4811e428a9 glamor: Pull in UXA code for dumping some composites down to copy_n_to_n.
Window dragging with metacity+gnome-terminal+xcompmgr is almost credible.
2011-09-26 16:46:33 +08:00
Eric Anholt 35847c578e glamor: Add acceleration for copyarea not from the screen. 2011-09-26 16:46:32 +08:00
Eric Anholt 647b9fb49a glamor: Add CopyWindow implementation so it doesn't crash. 2011-09-26 16:46:32 +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 d8d3fa1034 glamor: All the fallbacks in the world.
Bringup is really not flying when I can't see anything.  So dump back
to all software so I can turn on a bit at a time.
2011-09-26 16:46:32 +08:00
Eric Anholt 745502af96 glamor: Add check for EXT_bgra which we rely on. 2011-09-26 16:46:32 +08:00
Eric Anholt 6ce378f11f glamor: Add fallback support for glamor_get_spans(). 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 0e56c182c3 glamor: Add fallback support to glamor_put_image(). 2011-09-26 16:46:32 +08:00
Eric Anholt 22cad98975 glamor: Add fallback support to glamor_set_spans(). 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 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 800fd4f849 glamor: Fix the type for copyarea. 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 f17473cdd5 glamor: Fix pixmap private getter in copyarea. 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 6dacc9b08c glamor: Add untested PutImage 1bpp XYPixmap support. 2011-09-26 16:46:31 +08:00
Eric Anholt 854e9bd20a glamor: Add untested PutImage XYBitmap support. 2011-09-26 16:46:31 +08:00
Eric Anholt 8a53566acb glamor: make the polylines complaint a little more useful. 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 4a51cc0440 glamor: Add clipping to setspans. 2011-09-26 16:46:31 +08:00
Eric Anholt 5fadea5d9c glamor: Fix some screen_xy offsets to be the right way around. 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 882411bef1 glamor: add alu support to setspans. 2011-09-26 16:46:31 +08:00
Eric Anholt c70ce72fd7 glamor: Give setspans the same format support as getspans. 2011-09-26 16:46:31 +08:00
Eric Anholt d9eef95c74 glamor: Fix bad fallthrough in getspans (accessing invalid memory). 2011-09-26 16:46:31 +08:00
Eric Anholt 0360ba361a glamor: Fix memory leak in getspans. 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 f66e5c4145 glamor: Add 8bpp to get/setspans. 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 60ca0260f2 glamor: Add more solid_fail_regions for software fallbacks. 2011-09-26 16:46:31 +08:00
Eric Anholt 7500ee2b02 glamor: Fill in 1 and 24-bit getspans. 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 2fa26c4958 glamor: Free resources when destroying pixmaps. 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 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 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 399e006989 glamor: Fix up block/wakeup handler.
Prototypes are fixed, and we don't need to flush on wakeup.
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 08097434ec add fill files, merge with first real attempt at rendering. 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 1b151f2e6a glamor: glFlush from the blockhandler so rendering happens. 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
Eric Anholt da6e0ffad2 More ephyr/glamor glue. 2011-09-26 16:46:30 +08:00
Eric Anholt 0ec823ce5b Add build infrastructure for glamor. 2011-09-26 16:37:50 +08:00