.gitignore: add demos/checkerboard and demos/quad2quad
[profile/ivi/pixman.git] / TODO
diff --git a/TODO b/TODO
index 5acadf3..4434ec7 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,13 +1,14 @@
-  - SSE 2 issues:
+  - Testing
+    - Test implementations against each other
+    - Test both with and without the operator strength reduction.
+      They shold be identical.
 
-      - Commented-out uses of fbCompositeCopyAreasse2()
+  - SSE 2 issues:
 
       - Use MM_HINT_NTA instead of MM_HINT_T0
 
       - Use of fbCompositeOver_x888x8x8888sse2()
 
-      - Use pixmanFillsse2 and pixmanBltsse2
-
   - Update the RLEASING file
 
   - Things to keep in mind if breaking ABI:
@@ -18,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
@@ -29,7 +32,7 @@
         (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.
 
         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
+      - 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
         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.
 
     (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:
 
 
     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