Project

General

Profile

Actions

Emulator Issues #6652

closed

Update to VS2013

Added by Anonymous about 11 years ago.

Status:
Fixed
Priority:
High
Assignee:
-
% Done:

0%

Operating system:
Windows
Issue type:
Feature request
Milestone:
Current
Regression:
No
Relates to usability:
No
Relates to performance:
No
Easy:
No
Relates to maintainability:
No
Regression start:
Fixed in:

Description

Hello dolphin-people,

I'm in the process of migrating dolphin to use vs2013 for windows builds.

Current status:
It builds and runs (yay)

Notes:
I wish for dolphin to be able to be built with VS as the only dependency. This is already possible with some caveats. The main change is that the DirectX SDK bundled with VS2013 does not support oldschool DirectX. This only really affects two parts of dolphin:

  • DX9 video backend
  • XAudio2 sound backend

For each, the old behavior could be restored if the compilation machine has the June 2010 SDK installed. However without that SDK installed the DX9 backend would need to be completely removed. The XAudio2 backend may still be compiled and used, however it will only target Windows 8 and above (ie compiling builds to be run on < Windows 8 will require the compilation machine to have 2010 SDK installed).

DX9 is already planned to be removed so that doesn't seem like an issue.
For Xaudio2 I see two possibilities:

  • Try to detect old SDK presence at compile time and conditionally enable backwards compat if the compilation machine has the old SDK installed.
  • Only compile Xaudio2 which is compatible with >= Win8. Conditionally enable the backend at runtime.
    Assuming it's possible and people actually want XAudio2, the first option seems to be the best answer.
    Technically the same could be used for DX9 video backend, but as mentioned previously it's already been decided to remove it.

Things I'm waiting for:

  • VS2013 final release
  • DX9 removal to reach master (to make merging easier for everyone)
  • A decision about the above XAudio2 stuff
  • libusb sources to be committed so I can upgrade whatever version comex/parlane is using
    • Alternatively to be told "just use X version of libusb from Y"
  • Someone to replace D3DX11SaveTextureToFile
    • I've already done the (easy) replacement for D3DCompile, so don't worry about that.
Actions #1

Updated by degasus about 11 years ago

D3DX11SaveTextureToFile should be moved to VideoCommon, so it isn't needed at all.

Actions #2

Updated by parlane about 11 years ago

Issue invalid, did not fill out issue template.

Actions #3

Updated by Anonymous about 11 years ago

wickmarkus86: ok, but is someone (who isn't me) going to do that? if so, when.

parlane: you may stay on vs2010 forever.

Actions #4

Updated by Anonymous about 11 years ago

I should also mention that I intend this to remove Windows XP-level compat. It would still be possible for people to hack up dolphin and build for WinXP, but by default I don't think we should have to keep XP in mind while using Cool New Features(tm).

Actions #5

Updated by fly16 about 11 years ago

dolphin should use xaudio2 2.8, right now xaudio2 is unusable under windows 8.1...

Actions #6

Updated by Anonymous about 11 years ago

fly16: OK? That is what my original post states.

Actions #7

Updated by fly16 about 11 years ago

@godis, i just turned your suggestion into a bug report :)

Actions #8

Updated by tommyhl2.SS about 11 years ago

Yay. Those of us not upgrading will not be able to build dolphin anymore.

Actions #9

Updated by Anonymous about 11 years ago

That is not helpful or explanatory.

Actions #10

Updated by parlane about 11 years ago

Damn I really wanted to build using vs2008

Actions #11

Updated by rachelbryk about 11 years ago

If you want the latest version of the software you use, you can just upgrade to the latest version of the software you use. I don't see a problem.

Actions #12

Updated by booto about 11 years ago

Don't worry, those of us not upgrading should still be fine.

I'm pretty sure unupgraded dolphin source w/ unupgraded development environment should still build fine under unupgraded OS!

All is not lost!

Actions #13

Updated by NeoBrainX about 11 years ago

Will vs2008 users have to upgrade to 2013?

Actions #14

Updated by NeoBrainX about 11 years ago

s/vs2008/vs2010 .. damnit parlane, don't confuse me :D

Actions #15

Updated by Anonymous about 11 years ago

NeoBrainX: Yes

Actions #16

Updated by tueidj about 11 years ago

That is not helpful or explanatory.

The same could be said for this issue - you haven't explained why you want to force everybody to make the effort to upgrade nor what the benefits will be, so far there have only been only drawbacks listed.

Actions #17

Updated by parlane about 11 years ago

tueidj come around the IRC channel some time where we discuss these things.

Basically VS2013 is the first compiler that will actually support advanced c++ features.

Such as std::atomic and auto iterators. ( these are two of many..)

Actions #18

Updated by tueidj about 11 years ago

If the discussion is on IRC what's the point of using the issue tracker?
shuffle2 and I already played this game in #wiidev when vs2008 support was removed - there were no solid reasons given for that change other than "nobody objected to it" so this time I'm making sure it's on the record. Trivial STL additions don't really seem to cut it - you could just look at the VS2013 STL source code to see how they've achieved it rather than adopting the whole thing and forcing it on everyone else.

Actions #19

Updated by parlane about 11 years ago

The dicussion has been over a year and not specifically vs2013 related. The issue tracker is for tracking features or bugs.

Actions #20

Updated by Anonymous about 11 years ago

tueidj has a good point; ill just keep it for myself this time. I really don't care to convince people about things that I believe are common sense.
Admittedly updating to vs2013 was for my own use, anyways.

Actions #21

Updated by parlane about 11 years ago

  • Status changed from Invalid to Working as intended
Actions #22

Updated by comexk about 11 years ago

  • Status changed from Working as intended to Accepted
  1. if you can't upgrade a compiler, your environment is massively dysfunctional. I do not know much about Windows so maybe the standard environment is dysfunctional, but this strikes me the wrong way. I don't want to be held back forever due to outdated compilers.
  2. it probably produces better code.
  3. range-based for is a language feature, not STL. We also gain initializer lists, delegating constructors, deleted functions, and final without having to define it as 'sealed' (which affects anything called 'final'), among other features.
  4. it's also nicer to have useful things built into the STL rather than having to reimplement them - although, unfortunately, OS X at least does not support std::atomic, so the atomic crap can't be removed yet.
  5. I encountered serious bugs with move semantics in VS2010 - due to a combination of discrepancies, correct code was compiled incorrectly. I do not want to have to worry about these kinds of bugs when writing code.
Actions #24

Updated by rachelbryk about 11 years ago

^ that alone is enough reason. Don't like it? Too damn bad. Visual studio express is free, there is absolutely no reason you can't upgrade.

Actions #25

Updated by rachelbryk about 11 years ago

Btw, we have increased the required gcc version like 3 times in the last year, and not a single person has complained.

Actions #26

Updated by tueidj about 11 years ago

comex:

  1. If upgrading a compiler were as painless as you make it out to be we would not be having this conversation. Consider the issues encountered with making this project work with VS2013 and extrapolate those to hundreds of other projects (believe it or not people do work on other things besides Dolphin).
  2. "probably".
    3+4. Of course new things are nice but at what cost? If it implies "Win8+ only" then it's obviously not worth it.
  3. Do you know they've been fixed? Are you positive VS2013 won't break something else?
Actions #27

Updated by Anonymous about 11 years ago

tueidj: fwiw the upgrade issues are only caused by my want to have vs be the only dependency required to checkout and build dolphin successfully.
Installing the DX SDK June 2010 allows it to build the existing DX code in the existing manner.
Choosing the XP-compatible CRT allows the resulting binary to be run on XP.

I don't want to make either of the above the defaults. Again, personal preference. I will just post a patch sometime and if some dolphin dev wants to commit it, they can. I only upgraded to VS2013 so I could work on other dolphin features the way I wanted to and have no interest of forcing it on people.

Actions #28

Updated by comexk about 11 years ago

  1. It is as painless as that on other platforms. What exactly is the problem with upgrading, IDE plugins or something? Can you upgrade the compiler without upgrading the IDE?
    3+4. It is not Win8 only, so what does that have to do with anything?
  2. No, but VS2010 was released one year before the finalization of the C++11 spec, and VS2013 two years after. Maturity helps.
Actions #29

Updated by rachelbryk about 11 years ago

Upgrading is pretty painless. Download vs2013 from http://www.microsoft.com/visualstudio/eng/2013-downloads , install it, and then git pull. Done. Simple. It's no more than 2 minutes of work, not counting download/install times.

Actions #30

Updated by Billiard26 about 11 years ago

"Consider the issues encountered with making this project work with VS2013"
This is already taken care of by "godisgovernment".

@ tueidj
Why should we care about non-dolphin-developer build system opinions?
Why should you get to use the build system of your choosing?

Working on dolphin is a hobby not a job.
Fixing possible issues caused by the switch to VS2013 is obviously something many people are willing to do.

We do this for fun. Using old tools is less fun for many of us. I don't care if you don't like change.

Actions #31

Updated by rachelbryk about 11 years ago

As far as i see it, the only people who object to this are people who don't know what they're talking about, and aren't developers anyway. If you can't spend 2 minutes updating, then i guess you can stop using dolphin.

Actions #32

Updated by comexk about 11 years ago

fwiw, I don't know if that is the best way to close the discussion, but it would probably be best to have this sort of back-and-forth outside of a bug tracker anyway. To the extent that this needed to be on the record, it is now.

Actions #34

Updated by tommyhl2.SS about 11 years ago

fwiw, some of us are only going to be commenting on things like this in the issue tracker, so saying "you don't know what you're talking about" and closing the comments is not very helpful.

What ends up happening in cases like this is that people will be all for supporting older versions and they will come up will all kinds of reasons why this is a good idea just to get the new change pushed through. Then what ends up happening is someone will find a way to drop support for anything older as time goes on. It wouldn't be the first time that's happened, and it surely won't be the last. Of course, many of us aren't able to look that far ahead, but you really should try to.

Actions #35

Updated by NeoBrainX about 11 years ago

"As far as i see it, the only people who object to this are people who don't know what they're talking about, and aren't developers anyway. If you can't spend 2 minutes updating, then i guess you can stop using dolphin."

Fyi, updating to VS13 is a major inconvenience for me due to various reasons that I don't want to go into here; it's definitely not "2 minutes updating". That said, I likely won't object a replacement of vs10 with vs13 if it's done properly enough and people don't rush a merge such that I end up with an unusable Windows setup for Dolphin.

Currently I see a problem with the OP being the only guy working on a potential migration and him (apparently?) not caring about license issues, which would be a hard blocker IMO. Since I'm not particularly keep on having to update to vs13 anyway, I neither have any interest in fixing those license issues myself (just saying).

Actions #36

Updated by tueidj about 11 years ago

Wow guys. I thought the idea of an open source project was so that anybody could build it, work on it themselves and contribute back, but apparently:

  • You can't offer an opinion when somebody posts a public issue.
  • You're not expected to work on any other projects besides Dolphin, because Dolphin is the only project that matters when it comes to choosing a compiler/IDE/CRTs/SDKs.
  • If you expect your input to be considered at all you need to join the "official" developers, even if they only do this sort of thing as a hobby and you on the other hand earn a living as a software developer. Apparently you get bonus points if you often need to make multiple commits for simple little changes (yes rachelbryk I'm talking to you. You have brought nothing to the table here except childish behaviour, grow up).
  • Even if one dev admits that you have a point, expect to be told you don't know what you're talking about.

Viva open source - just don't expect "open" to imply open to suggestion, open for discussion or open minded.

Actions #37

Updated by rachelbryk about 11 years ago

  1. You can offer opinions, but arguing against improvements because you don't feel like upgrading is silly.
  2. Well, i just went ahead and searched git log, and the issue tracker. No commits, or issues reported by you. So if you're not contributing, i don't see why we need to make accommodations for you.
  3. See above. Being a better developer isn't useful to us if you're not contributing. If you've got hard evidence of why vs2010 is better than 2013, despite it's better debugging, and better support for new features, then present them. But otherwise, the inconvenience to the people who actually work on dolphin is a far bigger concern than those who don't. And the biggest inconvenience for us right now is being held back by an old compiler that doesn't support some of the new features (see comex's arguments), and shitty debugging.
Actions #38

Updated by tueidj about 11 years ago

  1. I was never arguing against improvements, I was asking for adequate justification for removing VS2010 support.
  2. You obviously didn't look very hard:
    https://code.google.com/p/dolphin-emu/issues/detail?id=5335
    https://code.google.com/p/dolphin-emu/issues/detail?id=5378
    https://code.google.com/p/dolphin-emu/issues/detail?id=6038#c4
    https://code.google.com/p/dolphin-emu/source/detail?r=b8e6ea14e11866efbf14e3757a0c92c5cdad412f
    https://code.google.com/p/dolphin-emu/source/detail?r=20e82ec08c9ab811b04664a6a4f9859924f712f0
    Regardless this is an OPEN project. If you do not value the input of non-developers you may as well abandon the issue tracker... or you can take the hint from your fellow developers who have noted your attitude is not appropriate.
  3. Being a better developer is worth absolutely nothing if I'm not even able to compile. You still seem to assume that Dolphin will be the only project affected by upgrading VS - imagine having to upgrade hundreds of VS solution/project files, retooling several automated build systems and tracking through problematic SDK/LIB/CRT conflicts. Then imagine doing the same thing over again when the actual RTM build gets pushed just because MS decided to "fix" something.
Actions #40

Updated by xemnasdp about 11 years ago

This won't be a problem if it's optional. Anybody who wants to use VS2013 can upgrade. But what the OP suggests forces everybody to upgrade; the reason is he wants to build Dolphin with VS as the only dependency. I think it doesn't justify unless most developers agree that it's nice to do this.

Actions #41

Updated by NeoBrainX about 11 years ago

@ xemnasdp: It is a problem if it's optional because no one wants to maintain an additional set of vs project files.

Actions #42

Updated by NeoBrainX about 11 years ago

.. to be fair you said "this won't be a problem" ...

Actions #43

Updated by Billiard26 about 11 years ago

No one is being forced to upgrade.
One can continue building old versions of dolphin with old versions of visual studio.

@ tueidj
At what date may we switch to Visual Studio 2013, sir?

Actions #44

Updated by xemnasdp about 11 years ago

If anybody wants to build a new version, then he is forced to upgrade. Also, you can use VS2013 whenever you want. The OP already uses it.

Actions #45

Updated by Billiard26 about 11 years ago

@ xemnasdp
At what date may we switch to Visual Studio 2013 and stop providing VS2010 project files in the repository?

Actions #46

Updated by rachelbryk about 11 years ago

@xemnasdp Do you want to maintain yet another set of project files? Because i sure don't. That's what we'd have to do to use vs2013 right now.

And your argument works exactly the same going the other way around. Anyone who wants to use vs2010 can simply update the project files themselves.

Actions #47

Updated by tommyhl2.SS about 11 years ago

You guys really are unbelievable sometimes. All of the decisions that you make are only considering what's good for the 4 or 5 people who are on IRC. No one else exists in your world. I wonder why you put people through the charade of being able to talk about things like this when you're just going to do whatever you feel like doing anyway. Why not just change whatever you feel like privately and let the pieces fall where they may? That would be better than having the illusion of a conversation.

Actions #48

Updated by rachelbryk about 11 years ago

Being able to debug properly is good for everyone who uses dolphin.

But yeah, that's why i restricted commenting before.

Actions #49

Updated by delroth about 11 years ago

Orly, decisions about development tools and the development process are taken by the people who contribute the most and maintain the infrastructure? Color me surprised.

If some people are unhappy about this change for any other reason than "I don't want to upgrade", we'll take their comments into account. We are usually fairly good at this.

Actions #50

Updated by NeoBrainX about 11 years ago

Okay, let's clear up some misconceptions here:

  • For the developer team, issue trackers often are a more convenient form of discussing permanent changes like this one for various reasons that I won't get into here. So no, we will definitely not take all our important discussions to IRC just to make end-users happy.
  • Just because this is an open source project doesn't mean we have to discuss topics to death with every user just because that user thinks he has some super-important fact that is relevant to the topic
  • (Not directly directed at this issue) It happens that end-users often bring up arguments which are either invalid, irrelevant or just plain dumb without them noticing. The point of issue trackers is to put together relevant information and discussions in a compact form such that anyone interested can get a picture of the issue as fast and convenient as possible. If we need to argue with users over 10 comments as to why their suggestion is dumb, the point of compact information is lost. Also, it's a ridiculous waste of time for everybody (oh right, just like this whole post is).

tl;dr: Yes, this is an open-source project but we are still free to disagree and we have no obligation whatsoever to explain to you why we disagree. You'll just have to trust us that we do whatever we feel is going to improve the project overall.

Actions #51

Updated by tommyhl2.SS about 11 years ago

I see then, I got it wrong. This isn't a place for everyone to talk about this issue, this is just a place for the core team to finalize their plans for world domination together. The fact that other people came in here and provided their opinion was just a side effect and an inconvenience.

Got it. It's all starting to come clear now. ;)

Actions #53

Updated by Anonymous about 11 years ago

fwiw the branch is in the repo as vc12
Notes:

  • You should remove DXSDK_DIR from the global VC++ directories if they're there.
  • June 2010 DirectX SDK is not required. It is required if you want the resulting build to have access to XAudio2 and XInput on < Windows 8 (ie, install it on the buildbot and if you're developing on < Windows 8 and want to use those APIs).
    (Possible) TODOs:
  • Probably should rename files:
  • DolphinWX -> Dolphin
  • Plugin_Video* -> Video*
  • Beautify the way include directories are handled. Would be purely for beautification/maintainability of the xml...

Any comments?

Also as discussed before, I am not going to merge the branch because drama. The greater dolphin hivemind can do that if they want.

Actions #54

Updated by Anonymous about 11 years ago

The branch has moved to github (to annoy the buildbot less): https://github.com/shuffle2/dolphin-vc12
I'll wait for the directory structure to stabilize in master and update it afterwards.

Actions #55

Updated by Anonymous about 11 years ago

fwiw i rebased/squashed all my changes on current master in that github branch.
currently waiting for buildbot to be updated (it will still need to handle vs2010 builds as well, because of existing branches).

Actions #56

Updated by Anonymous about 11 years ago

The github branch has been updated, rebased, and squashed again.
Changes: all include paths are now configured in the base.props file. This means that most of the compilation changes (apart from source file add/remove) can be done via base.props.
The only further improvement I see would be restructuring of precompiled headers.

Actions #57

Updated by milesprowers91 about 11 years ago

Doesn't Microsoft have a successor for Xaudio2 ?

Actions #58

Updated by Billiard26 almost 11 years ago

  • Status changed from Accepted to Fixed
Actions

Also available in: Atom PDF