While some of it is just petty competition that both go through, they do have valid points and it's not that they "can't compete". They can't optimize hairworks properly because NVidia won't release the source code. Basically, NVidia is trying to create a choke hold on PC gaming with the exclusivity deals and forcing customers into using their cards because of it, even though PC gaming isn't SUPPOSED to be exclusive like that. When AMD came out with new features in the past, they made that source code publicly available and yes, NVidia used that code to optomize drivers on their end to make the game AMD had a contract with run just as smooth on their hardware.
This is the BIG difference between NVidia and AMD. They both go for game contracts, but AMD doesn't "cut off" gamers who use NVidia hardware with exclusive features for their cards only. They may create new features, but htey make it possible for the competition to have those features too. NVidia meanwhile creates new features for their hardware, but then boards off AMD from getting to see it. Their code isn't publicly available. They deny requests to see said code so they can optimize their drivers.
This isn't about what card does what - for all we know, the 390x or whatever it is coming out could theoretically be the best performing card in the gaming industry, pushing ahead of NVidia - especially due to the new stacking technique - but it will STILL have issues with Hairworks not because it can't run it, but because it can't get optimized because AMD can't see the source code.
THIS is the fundamental issue here. It's not about which card is better, or which company is ahead of the game (AMD has come ahead in the past and will likely do so again), it's about one company trying to create exclusive feature sets that are really possible on all cards, but hard to get them to work equally because NVidia gets to create exclusive code for it that works via gameworks, while AMD doesn't get to see that code and when they get in a similar situation, they refuse to prevent NVidia from optimizing their drivers.
It's virtually two sides of the coin on handeling business. AMD wants a bigger market share, but they also don't want to cut off gamers based on hardware choices. They care about the consumer at the base level. NVidia only cares about the NVidia user - and they are doing what they can to cut off the users who use other hardware to force them into theirs. It's a terrible practice.
AMD has had every right to be upset the last couple of years because of how NVidia is treating PC gamers. Have they gone a bit far in their accusations? Sure, but they are pretty fed up with the whole ordeal. I mean, fans are literally asking AMD to start doing the same thing, and that would just be such a detrement to gaming, where now you have to start choosing what PC game you buy based on what GPU/CPU you own, regardless of having the top end one from either side, or intel. That's just stupid. PC is supposed to be that one area that isn't like consoles - it's not about "xbox one vs. ps4" with different hardware/specs - it's supposed to be universal - but NVidia is trying to make that not the case anymore.
I have a 970m in my laptop - but I've always preferred AMD and when I get the graphics amplifier for my laptop, I plan to get the new 390x if it is supported. Not only have I preferred them due to their awesome costumer support, but their overall company stance. I gave in the intel processors as I use to prefer the other guys, but admittedly, they just can't keep up - and intel isn't being huge dicks about source code stuff.
That being said, AMD's 290x card is pretty much just as good as the 980 in most ways, but The Witcher is noticeably worse on it and that sucks and shouldn't be the case as both cards are equally capable.