X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=TODO;h=4434ec7cb8af1f24eecec5e410020df17dece335;hb=1e1a00e964a1d8ef43d6d75c1c3a0b5d518d1979;hp=184f823cbb1a9cbe3edc5deeb000d0e675a2bb25;hpb=dcc530178050522705e70ff2f09b9da2b358ac01;p=profile%2Fivi%2Fpixman.git diff --git a/TODO b/TODO index 184f823..4434ec7 100644 --- a/TODO +++ b/TODO @@ -1,3 +1,16 @@ + - Testing + - Test implementations against each other + - Test both with and without the operator strength reduction. + They shold be identical. + + - SSE 2 issues: + + - Use MM_HINT_NTA instead of MM_HINT_T0 + + - Use of fbCompositeOver_x888x8x8888sse2() + + - Update the RLEASING file + - Things to keep in mind if breaking ABI: - There should be a guard #ifndef I_AM_EITHER_CAIRO_OR_THE_X_SERVER @@ -6,6 +19,8 @@ the required precision by simply adding offset_x/y to the relevant rendering API? + - Get rid of workaround for X server bug. + - pixman_image_set_indexed() should copy its argument, and X should be ported over to use a pixman_image as the representation of a Picture, rather than creating one on each @@ -17,13 +32,28 @@ (They only exist because they are theoretically available to drivers). - - Regions should become 32 bit + - 16 bit regions should be deleted - There should only be one trap rasterization API. + - The PIXMAN_g8/c8/etc formats should use the A channel + to indicate the actual depth. That way PIXMAN_x4c4 and PIXMAN_c8 + won't collide. + + - Maybe bite the bullet and make configure.ac generate a pixman-types.h + file that can be included from pixman.h to avoid the #ifdef magic + in pixman.h + - Make pixman_region_point_in() survive a NULL box, then fix up pixman-compose.c + - Possibly look into inlining the fetch functions + + - There is a bug with source clipping demonstrated by clip-test in the + test directory. If we interprete source clipping as given in + destination coordinates, which is probably the only sane choice, + then the result should have two red bars down the sides. + - Test suite - Add a general way of dealing with architecture specific @@ -55,11 +85,6 @@ this, I suggest just using 32-bit datatypes by setting IC_SHIFT to 5 for all machines. - - Consider whether calling regions region16 is really such a great - idea. Vlad wants 32 bit regions for Cairo. This will break X server - ABI, but should otherwise be mostly harmless, though a - pixman_region_get_boxes16() may be useful. - - Consider optimizing the 8/16 bit solid fills in pixman-util.c by storing more than one value at a time. @@ -73,6 +98,37 @@ (0, 0). Cairo would have to make sure that the delta *within* a batch of trapezoids does not exceed 16 bit. + - Consider adding actual backends. Brain dump: + + A backend is something that knows how to + + - Create images + - Composite three images + - Rasterize trapezoids + - Do solid fills and blits + + These operations are provided by a vtable that the backend will + create when it is initialized. Initial backends: + + - VMX + - SSE2 + - MMX + - Plain Old C + + When the SIMD backends are initialized, they will be passed a + pointer to the Plain Old C backend that they can use for fallback + purposes. + + Images would gain a vtable as well that would contain things like + + - Read scanline + - Write scanline + + (Or even read_patch/write_patch as suggested by Keith a while + back). + + This could simplify the compositing code considerably. + - Review the pixman_format_code_t enum to make sure it will support future formats. Some formats we will probably need: @@ -124,8 +180,33 @@ What about color spaces such a linear vs. srGB etc.? + done: +- Use pixmanFillsse2 and pixmanBltsse2 + +- Be consistent about calling sse2 sse2 + +- Rename "SSE" to "MMX_EXTENSIONS". (Deleted mmx extensions). + +- Commented-out uses of fbCompositeCopyAreasse2() + +- Consider whether calling regions region16 is really such a great + idea. Vlad wants 32 bit regions for Cairo. This will break X server + ABI, but should otherwise be mostly harmless, though a + pixman_region_get_boxes16() may be useful. + +- Altivec signal issue (Company has fix, there is also a patch by + dwmw2 in rawhide). + +- Behdad's MMX issue - see list + +- SSE2 issues: + - Crashes in Mozilla because of unaligned stack. Possible fixes + - Make use of gcc 4.2 feature to align the stack + - Write some sort of trampoline that aligns the stack + before calling SSE functions. + - Get rid of the switch-of-doom; replace it with a big table describing the various fast paths.