[Moonlight-list] Fwd: silverlight 3 features

StApostol stapostol at gmail.com
Mon Nov 9 18:53:29 EST 2009


AMD has released an open source tool that can convert HLSL shaders to
GLSL. This might be useful for implementing OpenGL acceleration in the
future: http://sourceforge.net/projects/hlsl2glsl/

On 11/9/09, Chris Toshok <toshok at gmail.com> wrote:
> -------- Original Message --------
> Subject: 	silverlight 3 features
> Date: 	Mon, 09 Nov 2009 14:36:58 -0500
> From: 	David Reveman <dreveman at novell.com>
>
>
>
> Been doing some basic background research on the silverlight features we
> need to implement for 3.0. I'm currently getting to know the moonlight
> code base and will start to implement the features in the order
> described below asap..
>
> - david
>
>
> Silverlight 3.0
> ===============
>
> Perspective 3D
> --------------
>
> Basic perspective transformations of 2D objects is all that is supported
> by silverlight 3.0. Perspective transformations are not supported by the
> cairo API but supported by pixman and xlib backends. Which means we have
> to implement it as bitmap transformations by pushing the rendering of a
> UIElement into a bitmap and render that bitmap unto its parent with the
> perspective transformation. This intermediate compositing step will have
> an impact on performance mostly due to the extremely inefficient
> implementation of perspective transformation in pixman.
>
>
> Pixel Shader APIs
> -----------------
>
> * No hardware accelerated in Silverlight 3.0
> * .ps effect files
> * Allows use of DirectX’s shader dialect called HLSL to create the
> effect files
>
> Obviously not supported by cairo so it will have to implemented in a
> similar way to perspective transformations. We can't really have
> anything like this run on the server side when xlib backend is used so
> it will have to always run on the client side using local pixman images.
> Can eventually be accelerated using an OpenGL output backend.
>
>
> Cached Composition (GPU support)
> --------------------------------
>
> * Push rendering of UIElements to cairo surfaces
> * Use cached surface instead of rendering child elements
>    + Provides GPU acceleration through Xrender
> * OpenGL output surface could give better GPU acceleration
>
> Integrates with perspective transformations and pixels shaders. The
> amount of acceleration this will provide through Xrender depends much on
> the X server driver architecture and such. Can provide significant
> acceleration through an OpenGL backend.
>
>
> TODO
> ====
>
> Pixel shaders, perspective transformations and bitmap caching can be
> implemented in a similar way to how the opacity mask property in the
> UIElement class is handled.
>
> I recommend that we use Gallium3D for pixel processing
>
> Gallium3D
>    + MIT licenced
>    + SSE2 optimized software implementation
>    + LLVM implementation
>    + Can be hardware accelerated if necessary
>
> We need to convert .ps effect files to TGSI
>
> Proposed order of implementation:
>
> 1. Bitmap caching
> 2. Perspective transformations
> 3. Pixel shaders
> 4. OpenGL acceleration
>
>
>
>
>


More information about the Moonlight-list mailing list