Hardware has always chosen to blame software for their own mistakes. The truth hardware Engineering is way beyond Software.
My experience matches your first sentence more than the second. Hardware is often riddled with bugs and needs them to be papered over by software. This makes the software developers' jobs much harder, when they're simultaneously asked to implement new features
and optimize performance.
I have it on good authority that GPUs are no exception, in this regard. They have bugs aplenty, which probably helps explain why drivers are often lagging and continue to unlock more performance over the months following a new GPU's release.
That is why Software has continuously improved on older hardware through driver updates and by reprogramming the PROMs on the hardware.
There's no hard and fast rule about this. Sometimes, you're able to reach near enough the theoretical peak performance of the hardware that no further improvement is possible. Other times, this wasn't achieved. Reasons vary.
Hardware manufactures do not hire Software Engineers. They rent them.
That doesn't tally with how Jensen has pitched Nvidia as a software company that produces chips:
www.reddit.com
BTW, you're really missing my point:
designing a high-end GPU is not trivial. Saying that drivers are 95% of the problem trivializes the hardware, which is a mistake. The hardware design actually matters. I'm not going to assign percentages, but simply say that
both the hardware
and the software need to be done well, in order to achieve good
system performance, at the end.