But you have to look longer term. If homogeneous computing prevails over heterogeneous computing, then sooner or later there will be no point in using OpenCL. It imposes limitations, and homogeneous throughput computing technology can be used with any programming language.
Limitations on hardware support, for instance? That's a limitation. In fact, that's quite a big limitation, wouldn't you say? x86-only proprietary ISA means it's only limited to Intel/AMD chips. Ease of programming/language be damned if your approach only works on 1% of hardware and outside of your target area (target area being mobile).
It's not HSA that's closing the doors here. HSA is meant to allow openCL to prosper and openCL is ubiquitous and has and will always outpace AVX2 and any other x86-derived ISA and nor does it need a Microsoft crutch as it lends itself across OSes.
You seem to have things a bit backwards here.
edit - just to clarify some things that people are misinterpreting with regards to openCL/HSA.
Heterogeneous systems architecture (HSA) is meant to provide a stable and rough guideline for architectures so openCL, a programming language, can thrive.
Now you don't need to apply a HSA approach to your architecture to enjoy openCL programming because openCL is pretty much supported everywhere nowadays, whether ARM to x86, AMD or nVidia, desktops to phones to car entertainment systems. As was already shown, openCL can run on x86 Intel chips but not on its on-die GPU. Thus with openCL you can run code without the GPUs involvement at all or it can be coded in such a manner where the workload is mixed (think HPC or CUDA acceleration if you're more familiar with that).
What you don't get with openCL/HSA that you do with AVX2 is "ease of programming." The issue with this "ease of programming" is that the programming is wrapped around x86 (the other issue is that it's not "ease of programming" but familiarity), a set of ISAs and a subsequently derived architecture
that most developers nowadays are avoiding in favor of ARM due to its inherent difficulties. With AVX2 you're only given one option and that's x86. That's it. If you want a wide range of hardware you must rely on only two hardware manufacturers, AMD and Intel, and due to their absence in everything mobile (tablets and phones) developers would lose out on revenue because they would
only be targeting x86-based hardware. Furthermore, it's also extremely unlikely we see anything with AVX2 down at the phone/tablet level until 2-3 years down the road and even then you've got to wait for the market share to increase (IF it increases. As that in itself is a big bet) in order for x86-relevancy to come to fruition and AVX2 to take hold. That's a lot of ifs and relying on a currently unfavorable ISA where one manufacturer enjoys a monopoly. So why in the world would developers outside of workstation/server applications bother with AVX2 and x86?
They won't. The answer is as easy as opening up your android/apple app store and realizing just how much work has been put into those and just how far they've gotten in the past 3-4 years compared to the ages its taken x86 to get where it is today. Throw in that most devices are tablets/phones that are sold (and for software people pay for. When's the last time you paid for x86 software outside of Windows?) along with ARM now part of the HSA foundation and an already ubiquitous programming language then you'll realize the odds aren't in favor of a proprietary ISA that's sitting on hardware in the wrong segment of the market.
AVX2 isn't going to take hold outside of anywhere but the desktop and server. No one questions that. x86 derived hardware is essentially the only choice you've got for that segment (although ARM's market share now surpasses AMD's in server which means you've got an option now). The reliance on x86 is already way too embedded for it to change overnight. The issue AVX2 has is if openCL takes off then you'll see even more GPU leveraging in the same segment of the market -- though I suppose we've already seen this in HPC where CUDA dominates and openCL has also stuck its foot in recently. But where x86 dominates in desktop and server the roles are reversed in the tablet/phone segment where it's ARM that dominates with no x86 alternatives (there technically are but they are even less meaningful than the ARM-based alternatives for server and the market share is smaller).
At the end of the day, AVX2 has one huge hindrance that people overlook: it requires Intel/AMD hardware but we don't live in an Intel/AMD-only world anymore and it's not the desktop and server that's sexy but rather ARM and mobile as the booming market.