1. Lenard Lindstrom
  2. blitter

Commits

Author Commit Message Date Builds
Lenard Lindstrom
Added tag Proto1 for changeset 8662367c81c2 Prototype 1 is a feasibility demonstration. It shows that, for a simple case, a RPython jitted blit loop has comparable performance to the equivalent hand-coded Pygame 1.9.2 loop.
Bookmarks
Proto2
Lenard Lindstrom
switch the order of the blit arguments
Tags
Proto1
Lenard Lindstrom
Tidy up for public preview
Lenard Lindstrom
Clean up the code in the target description The TranslationDriver extmod_name attribute is ignored which building a shared library, so remove the assignment. Also, for completeness, add a policy entry to the target return tuple.
Lenard Lindstrom
Remove a red constant from the jit arguments Remove the ndim constant from the interpreter loop, which make for one less value the jit needs to track.
Lenard Lindstrom
Use pointer arithmetic for array item addressing For the x86 jit backend, while doing a byte copy, allow the source and destination addresses to be represented as single instruction operands. Apparently the x86 backend does not handle full offset, base, index addressing.
Lenard Lindstrom
Factor out cffi from the RPython code. The blitter.py and blit_interpreter.py RPython modules no longer make allowances for cffi when loaded as Python modules. A new _blitter.py module provides a blit function that converts the cffi arguments passed it from function blit of arrblit.py to the rffi arguments expected by blit_buffer of blitter.py. The cffi definitions are also moved to a separate module, arrayview.py, with llarrayview.py …
Lenard Lindstrom
remove trailing spaces
Lenard Lindstrom
remove old default branch by merging back into new default
Lenard Lindstrom
relegating previous default branch to side-branch status
Branches
set_param
Lenard Lindstrom
Get bitbucket to display the README as reStructed Text
Lenard Lindstrom
Make the README presentable for public viewing
Lenard Lindstrom
Generate rffi definitions automatically from cffi definitions Add an ``tourcffi`` module, which contains a ``Parser`` class that does a depth-first tour of a ``cffi`` ``CType`` instance. The ``rcffi`` module defines a ``Parser.Handler`` visitor that build an rpython ``lltype`` representation of the ``CType``. The ``array_view`` module is modified to replace the explicit rffi C struct definitions of ARRAYVIEW and ARRAYVIEW_P with thoses taken from ``arrblit`…
Lenard Lindstrom
Make interpreter changes to allow the JIT to assign more register variables Within the interpreter loop, assign ``counters`` and ``advances`` values to scalars, which can be allocated to hardware registers.
Lenard Lindstrom
Start a parallel branch without JIT set_param calls
Lenard Lindstrom
Get bitbucket to display the README as reStructed Text
Lenard Lindstrom
Make the README presentable for public viewing
Lenard Lindstrom
Generate rffi definitions automatically from cffi definitions Add an ``tourcffi`` module, which contains a ``Parser`` class that does a depth-first tour of a ``cffi`` ``CType`` instance. The ``rcffi`` module defines a ``Parser.Handler`` visitor that build an rpython ``lltype`` representation of the ``CType``. The ``array_view`` module is modified to replace the explicit rffi C struct definitions of ARRAYVIEW and ARRAYVIEW_P with thoses taken from ``arrblit`…
Lenard Lindstrom
Make interpreter changes to allow the JIT to assign more register variables Within the interpreter loop, assign ``counters`` and ``advances`` values to scalars, which can be allocated to hardware registers.
Lenard Lindstrom
Add PYPYLOG logging support for the JIT Interpreter bytecode are named, and a get_printable_location handler is added to the jit driver to display entire blit instructions, include position and arguments. Remove the unnecessary ``promote`` JIT hints, as these constants are detected automatically.
Lenard Lindstrom
Add basic JIT interpreter hints The JIT hints include ``promote`` calls in an attempt to improve performance.
Lenard Lindstrom
Files to ignore
Lenard Lindstrom
Add profiling agains pygame.pixelcopy.surface_to_array
Lenard Lindstrom
Have arrblit.blit() accept arrays as arguments Move the Python side array interface extraction into arrblit.blit().
Lenard Lindstrom
Build the interpreter as a shared library Replace the standalone target with a shared library target. A new Python module, arrblit.py, is added to interface to the C level blitter function. The unit tests are rewritten to call arrblit.blit() with copying done between NumPy arrays. To build the shared library: pypy <path to pypy>/rpython/bin/rpython --shared targetblittershared.py Then copy the libtesting.* library file from the tempora…
Lenard Lindstrom
Convert to RPython Make the necessary changes to the code so it compiles under the RPython tool chain. Add a target file to define a standalone example to check the compiled code works. This is just a first step, to have some kind of RPython blit.
Lenard Lindstrom
Start with a Python integer array blitter An array is represented by a Python side version 3 array interface. It can be multi-dimensional and discontinuous. One, two, four, and eight byte integers are supported. An integer can be big-endian or little-endian. An array buffer is implemented as a Python list of integers, where each list item represents a byte. A logical array integer, then, is one or more contiguous list items.
Lenard Lindstrom
The goal