[Vm-dev] Patches to SqueakFFIPrims and FFI-Kernel to support "manual surfaces"

David T. Lewis lewis at mail.msen.com
Sat Jan 30 19:35:24 UTC 2010


On Sat, Jan 30, 2010 at 10:27:00AM -0800, Josh Gargus wrote:
>  
> Hi,
> 
> Here's a zip file that contains patches to SqueakFFIPrims (both Slang and
> C support files) and FFI-Kernels in order to support "manual surfaces",
> as embodied in the new class ExternalForm.  There's a README in the zip
> file that describes how the changes fit together, so here I'll just
> describe the goal.
> 
> The intent is to have a subclass of Form, ExternalForm, that uses an
> arbitrary pointer as the location of its pixel-data.  It achieves this
> by acting as a client of SurfacePlugin much like any other, with the added
> twist of a primitive that enables Squeak code to set/clear the pointer.
> This is useful when working with such APIs as OpenGL and OpenCL, which
> provide a "map-image" API for interacting with images which reside in
> GPU memory.  For example, if you want to access the updated contents of
> an OpenCL image, you would call clEnqueueMapImage().  This returns a
> pointer to CPU-accessible memory; by using this as the pointer for an
> ExternalForm, we can seamlessly use the OpenCL image just like any other
> Squeak Form.

Josh,

Sounds good!

Just FYI, there are 64 bit issues with both FFI and SurfacePlugin.

  Mantis 7237: Make FFI work on 64 bit platforms
    (http://bugs.squeak.org/view.php?id=7237)
  Mantis 7433: Gstreamer and Pango plugins fail on 64-bit host
    (http://bugs.squeak.org/view.php?id=7433)

Patches for FFI are available but not yet integrated (this is a
big set of changes that affects the interpreter as well as the
plugin). The issues with SurfacePlugin and dependent plugins have
not been addressed yet.

I'm mentioning this just so you are aware of the issues.

Dave



More information about the Vm-dev mailing list