DS_773 :
LinuxDevice :
I've had a couple of motherboards which couldn't get past gen. 1 on a lot of different PCIe cards. Unless you run Linux it is hard to see this, so I suspect the issue is more widespread than people know. Once you get to gen. 2 most graphics cards won't care, even at the high end, but gen. 1 is a problem.
When PCIe first enumerates it goes through a "training" process where various signal strengths and timings are tested. The result of training determines if the card can reach gen. 3 or not. Basically it is a case of how well the signal quality can be adapted. When signal quality is low enough PCIe backs off to a lower speed. What it comes down to is that your combination of motherboard and video card can't reach higher speeds due to lack of signal quality.
It'd be tempting to blame the video card, but I've had two motherboards which had issues where absolutely no PCIe device could ever reach PCIe gen. 2 or higher. These days most people use integrated parts for everything except video, and thus tend to not have all of the extras people used to use (e.g., separate audio, separate network, separate HD controller), and don't think to look. Of all of those peripherals about the only thing which would suffer for not being past gen. 1 are graphics cards, USB3/3.1, and 10Gbit ethernet.
You might consider trying other PCIe devices capable of PCIe gen. 3, booting into Linux (even via a live DVD), and running this to see what it says:
sudo lspci -vvv | gawk '/LnkCap/,/LnkSta/'
The LnkCap is the generation capability, where 2.5GT/s is gen. 1, 5GT/s is gen. 2, 8GT/s is gen. 3. Soon you'll get 16GT/s if it is gen. 4. LnkSta is the actual status, and if status is lower than capability it means your link training didn't believe the signal was of sufficient quality to run at the higher speed.
There really isn't any way to know whether it is the card or the motherboard at fault since it is based on a combination of both operating together. On the two motherboards I've seen which couldn't reach past gen. 1 (the motherboards were capable of gen. 2 or gen. 3) there wasn't a single PCIe card which could ever reach past gen. 1, and so it seems motherboard manufacturers are more likely to blame.
if i try an old card it shows the slot as being gen 3 but running at gen 1 speeds an if i try the new card it shows it as a gen 2 running at gen 2 speeds which is weird i think.
This is why I say it is a combination of the card and the motherboard. In a way it isn't much different than a radio transmission line and antenna and transmitter all working together. The combination produces what is known as an "eye" diagram, and if the "eye" is open, then you can see a 1 or 0. If the eye is closed, then you can't reliably see if it is a 1 or a 0. Training tests variations on what is called preemphasis and deemphasis (an intentional excess transmit, followed by a counter-balanced reverse of this at the receive end...the result being a more open eye) as a means of getting the most "open" eye diagram. If the combination of all components of the chain of devices can't reach a sufficient "open" via preemphasis and deemphasis adjustments, then the whole chain fails as a whole.
I am assuming your test was on the same exact slot, otherwise results of comparison are not relevant, but this basically says your older card was unable to find a training of preemphasis/deemphasis combination with a sufficiently open eye diagram beyond gen. 1 speeds. Your newer card has better RF qualities and was able to train to gen. 2 speeds and still attain an open eye diagram. The reason would consist of a combination of better or worse trace layout (not just of the individual card...instead as a combination of card and motherboard), and perhaps also better materials (the dielectric constant of materials might provide lower or greater loss). Newer generations of hardware generally use higher quality materials and pay more attention to impedance matching. If you want to see what an eye diagram is, look here (note that the data lines are a balanced pair and the eye is one trace overlay onto the other trace when the two traces do the opposite polarity):
https://www.youtube.com/watch?v=cL7QsELuv_M&feature=youtu.be
There is nothing at all weird about one card being more stable at a higher speed than another...especially if a newer card works better than an older card.
Some motherboards have an option in BIOS/UEFI setup called "spread spectrum". Spread spectrum intentionally introduces a specific kind of jitter (known as lower sideband). This jitter results in successive waves not reinforcing produced interference. The outside world (including other parts on your own motherboard) appreciates lower noise from spread spectrum devices versus non-spread spectrum devices as this implies lower RF interference. The spread spectrum device itself may be slightly more immune to outside noise. On the other hand, your PCIe device is more likely to reach full speed if spread spectrum is disabled. You might want to check your BIOS and see if you have any spread spectrum (SS) option for PCIe. If this is enabled, then you can disable it and perhaps get the higher generation for more speed. If this is not enabled, then you are already at the best of conditions. Should spread spectrum be enabled, and then you disable it, then it is possible you could cause RF interference to some other device (if someone complains your computer is making the television look bad, then you'd be obligated to re-enable spread spectrum). You should investigate your BIOS settings and see if there is an option for spread spectrum, and if it is enabled, try disabling.