OpenGL software rendering alternatives

12,765

Solution 1

As far as I've searched, the only other option is using WebGL software renderer, that as of today only Chrome supports. Direct3D has the reference driver (which is really unstable) and Swiftshader, which is good and expensive.

After some more headaches I managed to build Mesa3D for Windows, but only an old version which had still some support for it. At least, it has an awesome performance.

Solution 2

That depends on what OpenGL version you wish to accelerate. Depending on your needs, there are some alternatives available. I've listed those I'm aware of below:

OpenGL 1.0 & 1.1

Windows (since Windows NT 3.5) actually includes an OpenGL software implementation to begin with. If you haven't installed any other software rasterizer, this ought to be your default implementation. The Microsoft software rasterizer supports either OpenGL 1.0 or 1.1, depending on your platform, but will not accelerate anything newer than that. If your desired OpenGL version is covered by 1.0 or 1.1 (however unlikely), the solution should be sufficient. I'm unsure as to what extent the default Windows OpenGL software implementation covers the OpenGL ES 1.x frameworks through its OpenGL 1.0 or 1.1 support.

OpenGL 1.4

Furthermore, in Windows Vista, Microsoft included an emulation layer which may translate OpenGL into Direct3D; thus supporting up-to OpenGL 1.4. Additionally, this should mean that Windows Vista (and up?) runtimes may accelerate most parts of OpenGL SC. I've never used this emulator myself, and was quite surprised to hear about it, but it may be of interest to someone having to run one of these old frameworks in a Windows environment. Note that the standard Windows OpenGL software rasterizer (OpenGL 1.0 or 1.1) is also included in Windows Vista and above.

OpenGL ES 2.0

Additionally, there's the ANGLE project which accelerates WebGL and OpenGL ES 2.0 by translating OpenGL ES 2.0 invocations to DirectX 9 and 11. Their development notes also mention that an OpenGL ES 3.0 solution is in the works. Never having used ANGLE, I cannot offer a verdict.

OpenGL 3.1

In addition to those mentioned above, Mesa 3D (which supports up to OpenGL 3.1) feature three software implementations:

  • swrast
  • softpipe
  • llvmpipe

Since I know very little of swrast (the original Mesa project software rasterizer) and softpipe (a reference driver) I'll refrain from going into these. The third implementation, llvmpipe, and probably the one that may interest you the most, is a high-speed software implementation that uses multithreading and JIT compilation to speed up simulation with native- and SIMD instructions.

Solution 3

I have used Swiftshader from Transgaming for a production project before and I must say, it was brilliant. A tad costly, but brilliant.

Share:
12,765

Related videos on Youtube

Bruno Kim
Author by

Bruno Kim

Data engineer at Zup Innovation, previously worked at Amazon and Google as Software Engineer.

Updated on June 04, 2022

Comments

  • Bruno Kim
    Bruno Kim about 2 years

    I need to software render OpenGL in Windows and have already found about Mesa3D, which doesn't provide DLLs and I'm having some pain to build... Are there alternatives available?

  • Bruno Kim
    Bruno Kim about 12 years
    Yes, I've tested Swiftshader and its awesome... and expensive! 3D is not our core business, and that's why I'm looking for OpenGL...
  • Ani
    Ani about 12 years
    Nope, can't think of any other free alternatives. Perhaps someone on the Mesa3D forums can help you build working binaries for Windows.
  • DirtY iCE
    DirtY iCE over 7 years
    Swiftshader was open-sourced by google in the meantime: blog.chromium.org/2016/06/…