[Bf-committers] State of Visual Studio 201X... Warning: may contain chaotic content ...

Jürgen Herrmann shadowrom at me.com
Mon Feb 17 18:54:14 CET 2014

Hey there, 


I had some time to look into blender code recently and found some disturbing
problems with both VS2012 and VS 2013.

With Visual Studio 2013 released I would like to drop support for 2012 and
take the transition to VS 2013 directly because of the much better C99/C++11

I think we should bundle resources on one migration project instead of
porting to two different versions of VC.


But (there is always a “But” ;):


Unfortunately Nvidia seems to be unable to release a Cuda toolkit with
Compiler support for VC12. That’s driving me crazy. Cuda 6 RC does not
support VS2013 and I am not sure when they get this done.

IMHO there are multiple possibilities how to handle this:


1.)    Port to MSVC 2013 and port Cycles’ kernel to C++/AMP (I bet this can
be done)

a.       Pro: Makes us independent from NVidia Cuda and OpenCL fuzz

b.      Pro: Updates to VS are easier because we won’t have to wait for

c.       Contra: Generates a lot of work (one time work load)

d.      Contra: Another Cycles kernel that has to be maintained

2.)    Port to VS2012/Cuda 5.5 and postpone our effords on VS2013 until we
get a working compiler from NVidia

a.       Pro: Majority of work is done, we’ll just have to tie everything
together and fix some problems

b.      Contra: We’ll end up waiting for NVidia until we can make a
transition to a newer VS version

c.       We may have to stick to this version of VS literally “forever” like
we did with VS2008

3.)    We stick to VS2008 / Cuda 5.0

a.       Pro: Nothing to do, just go on as is.

b.      Contra: No possibility to use newer technology

c.       Contra: Binaries might have compatibility issues with future
versions of Windows (9+)

4.)    Any other ideas?


I’d like to hear an official decision before I get started just to avoid a
waste of resources and time.


Best regards,



More information about the Bf-committers mailing list