What kinds of games do you play?
Some are cpu limited, and some are more graphics limited.
CPU limited tend to be strategy, sims, mmo types which depend on the performance of a single master thread.
Few games can use more than 2-3 threads.
Fast action games respond to better graphics.
Your I5-3470 has a passmark rating of 6567 and a single thread rating of 1908. That is actually quite good.
The proposed I7-4790 has a passmark rating of 10011 and a single thread rating of 2289
As good as the 4790 is, you can do better for less for gaming.
A i5-6600K will cost less and perform better. At stock, the single thread performance is similar to the 4790.
But, most 6600K samples can get a 30% performance boost with overclocking.
That requires a z170 motherboard. With your budget, I would do no less.
If your GTX960 is not doing the job, you will be disappointed with a R9-380.
It is only one tier higher on tom's graphics hierarchy chart.
http://www.tomshardware.com/reviews/gpu-hierarchy,4388.html
They recommend at least 3 tiers higher for a significant difference.
What is your psu?
That will determine your graphics card options.
GTX960 needs 430w, the R 9 cards are power hungry and the 380 needs 550w.
Here are other options:
http://www.realhardtechx.com/index_archivos/Page362.htm
Here is my stock approach to the cpu/gpu upgrade question:
------------------------------------------------------------
To help clarify your CPU/GPU options, run these two tests:
a) Run YOUR games, but lower your resolution and eye candy.
If your FPS increases, it indicates that your cpu is strong enough to drive a better graphics configuration.
If your FPS stays the same, you are likely more cpu limited.
b) Limit your cpu, either by reducing the OC, or, in windows power management, limit the maximum cpu% to something like 70%.
Go to control panel/power options/change plan settings/change advanced power settings/processor power management/maximum processor state/
This will simulate what a lack of cpu power will do.
Conversely what a 30% improvement in core speed might do.
You should also experiment with removing one core. You can do this in the windows msconfig boot advanced options option. You will need to reboot for the change to take effect. Set the number of processors to less than you have.
This will tell you how sensitive your games are to the benefits of many cores.
If your FPS drops significantly, it is an indicator that your cpu is the limiting factor, and a cpu upgrade is in order.
It is possible that both tests are positive, indicating that you have a well balanced system, and both cpu and gpu need to be upgraded to get better gaming FPS.
-------------------------------------------------------------