# Video Card for OpenGL 4.1 with standard drivers?

## ipic

The root cause of this question is me wanting to play games on Steam. A couple want OpenGL 4.1.

My setup looks like this:

```

ian2 ~ # lspci | grep -i vga

01:05.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] RS880 [Radeon HD 4250]

ian2 ~ # glxinfo | grep -i opengl

OpenGL vendor string: X.Org

OpenGL renderer string: AMD RS880 (DRM 2.50.0 / 4.19.44-gentoo, LLVM 7.1.0)

OpenGL core profile version string: 3.3 (Core Profile) Mesa 19.1.0

OpenGL core profile shading language version string: 3.30

OpenGL core profile context flags: (none)

OpenGL core profile profile mask: core profile

OpenGL core profile extensions:

OpenGL version string: 3.0 Mesa 19.1.0

OpenGL shading language version string: 1.30

OpenGL context flags: (none)

OpenGL extensions:

OpenGL ES profile version string: OpenGL ES 3.0 Mesa 19.1.0

OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00

OpenGL ES profile extensions:

ian2 ~ # 
```

As far as I can tell, my video card (Radeon HD 4250) supports OpenGL 3.3.

My first question is:

  - Is this correct, in that despite having up to date Mesa and LLVM, the card is determining the level of OpenGL support?

Assuming that is the case, obvious solution is to buy a card that provides 4.1 support.

Here I hit a major snag!

Basically, there are SO many cards on the market, with such differing and obscure technical descriptions, I can't even get a good candidate list together!

My second question is thus:

   - Can anyone recommend a video card that....

...........provides an HDMI output (with working audio)

...........has drivers in the standard kernel tree

...........supports OpenGL 4.1

...........gives OK performance (really, I am not a hardcore gamer)

Many thanks in advance for any help on this. It is a very long time since I was involved in knowing stuff about video cards, and also a long time since I played games with any frequency, so I'm completely out of it in this field. And also my searching abilities are crap   :Sad: 

Thanks again,

Ian

----------

## aidanjt

This should help: https://wiki.gentoo.org/wiki/AMDGPU#Feature_support

Basically whatever current RX 500 series card you can afford will give you the software and hardware support you want, and a vast improvement on your existing card.  The RX 400 series is the same architecture, so if you can pick one of those up on the cheap you'd be doing pretty well there too.

----------

## Ant P.

 *ipic wrote:*   

>    - Can anyone recommend a video card that....
> 
> ...........provides an HDMI output (with working audio)
> 
> ...........has drivers in the standard kernel tree
> ...

 

That narrows it down to newer AMD cards only. As said above, the RX cards work well and should be future-proof for a while.

----------

## ipic

Thanks a lot guys, really appreciated.

I've ordered myself an RX 580. fairly cheap via Amazon.

I have a sneaking feeling this may cause a round of motherboard, CPU and memory upgrades - my existing motherboard is from 2011. I'll post back my experience when the card arrives.

----------

## aidanjt

 *ipic wrote:*   

> I have a sneaking feeling this may cause a round of motherboard, CPU and memory upgrades - my existing motherboard is from 2011. I'll post back my experience when the card arrives.

 

You should be fine hardware compatibility wise.  Although your system will probably bottleneck it, but like you said, you're not a hardcore gamer or anything, I'm sure you'll be alright if it otherwise serves your needs.

----------

## Ant P.

I'm using a RX550 on a 2009 motherboard. dmesg complains that the PCIe bus is a bottleneck, but other than that it works pretty well.

----------

## hhfeuer

More important than cpu/memory/board/whatever is the PSU. The RX580 has a power draw maximum of about 220W so you should have a 400W PSU at minimum, I guess.

----------

## Anon-E-moose

 *hhfeuer wrote:*   

> More important than cpu/memory/board/whatever is the PSU. The RX580 has a power draw maximum of about 220W so you should have a 400W PSU at minimum, I guess.

 

I would say 550-650 to give a good margin. I run a 560 and xfx says it'll run on a 350 but they recommend 450. 

I run two cards, using the 560 for passthrough, so I have a 620 watt psu that works well. Plenty of power for everything.

----------

## hhfeuer

Yes, I second that. It was merely a hint for the OP who is currently running a HD4250, a 25W gpu, to look out for it and not just swap cards.

----------

## ipic

Good point on the PSU. Just checked and I have a 550W PSU, so on the borderline I guess.

I'll post back when I have the card installed to say how it went.

Still waiting for Amazon to ship, not like them to take this long  :Sad: 

----------

## hhfeuer

Then you can use the waiting time to check if the model you ordered needs just one 8-pin power connector or 8-pin+6-pin connectors, whether your psu provides them or not so you need additional cables and the card comes with them;)Last edited by hhfeuer on Fri Jun 14, 2019 2:42 pm; edited 1 time in total

----------

## aidanjt

 *ipic wrote:*   

> Good point on the PSU. Just checked and I have a 550W PSU, so on the borderline I guess.

 

Unless you're packing a crazy workstation CPU and motherboard, or rather heavily overclocking a consumer CPU, a 550W PSU should comfortably handle a RX 580.  Let us know how you got on, anyway.

----------

## ipic

 *hhfeuer wrote:*   

> Then you can use the waiting time to check if the model you ordered needs just one 8-pin power connector or 8-pin+6-pin connectors, whether your psu provides them or not so you need additional cables and the card comes with them;)

 

I'm in luck. PSU has a PCIe port, and I have a cable with two 6 & 8 pin ends (it's a split cable, two endpoints).

The card spec says it needs both (one 6, one 8 ). I've not been tracking hardware recently and am a bit surprised - just how many different voltage levels does this thing need!

Amazon have shipped the card now, so fun begins soon. I'm going to make a start now by enabling the X11 bits I need. 

First step is to see if this works on current system 

```
VIDEO_CARDS="radeon amdgpu radeonsi"
```

My BIOS allows the on-board GPU to be disabled. This makes me hopeful that a kernel built with both radeon and amdgpu would be OK. Depends on whether the kernel "sees" the disabled GPU I guess. A bit of poking around with a rescuecd appears to be in my future - so I'll get one burnt onto a CD now!

----------

## ipic

I've got the new card working  :Smile:  Many thanks for all the helpful suggestions here.

Some details:

```
ian2 ~ # lspci | grep -i vga

01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI]  Ellesmere[Radeon RX 470/480/570/570X/580/580X] (rev e7)

ian2 ~ #
```

Having disabled the on-board GPU it doesn't exist as far as the kernel is concerned. This allowed me to build a kernel that supported both old and new cards.

The "Ellesmere" chip-set gave me a bit of a panic, but some googling confirmed that it is in fact POLARIS10. So kernel build and reboot all went OK.

The card is over 10 inches long (!!) which meant I had to dispense with an internal fan on the disk enclosure to make it fit. Discs are all running about 5-6 degrees hotter tan before now, so I'll have to keep an eye on that.

After getting it all started I got this for the opengl information:

```
ipic@ian2 ~ $ glxinfo | grep -i opengl

OpenGL vendor string: X.Org

OpenGL renderer string: Radeon RX 580 Series (POLARIS10, DRM 3.27.0, 4.19.44-gentoo, LLVM 7.1.0)

OpenGL core profile version string: 4.5 (Core Profile) Mesa 19.1.0

OpenGL core profile shading language version string: 4.50

OpenGL core profile context flags: (none)

OpenGL core profile profile mask: core profile

OpenGL core profile extensions:

OpenGL version string: 4.5 (Compatibility Profile) Mesa 19.1.0

OpenGL shading language version string: 4.50

OpenGL context flags: (none)

OpenGL profile mask: compatibility profile

OpenGL extensions:

OpenGL ES profile version string: OpenGL ES 3.2 Mesa 19.1.0

OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20

OpenGL ES profile extensions:

ipic@ian2 ~ $ 
```

...which confirms the POLARIS10 after the fact, and also shows version 4.5. 

I did a before and after benchmark:

```
ipic@ian2 ~ $ rm -r ~/.xonotic/

ipic@ian2 ~ $ xonotic-glx -benchmark demos/the-big-keybench 2>&1 | egrep -e '[0-9]+ frames'

10510 frames 484.5447957 seconds 21.6904610 fps, one-second fps min/avg/max: 12 23 33 (336 seconds)

ipic@ian2 ~ $
```

```
ipic@ian2 ~ $ rm -r ~/.xonotic/

ipic@ian2 ~ $ xonotic-glx -benchmark demos/the-big-keybench 2>&1 | egrep -e '[0-9]+ frames'

10510 frames 175.3000032 seconds 59.9543628 fps, one-second fps min/avg/max: 53 60 62 (336 seconds)

ipic@ian2 ~ $
```

...at least there is a difference!

And both my Steam games that needed OpenGL 4.1 or better now play.

No odd messages in dmseg.

Happy camper  :Smile: 

----------

## hhfeuer

Xonotic is running vsync'd so it only gives you 60FPS with the RX580. Disabling vsync would show more of the real potential of it but then your cpu would probably limit it. Try a Unigine demo for some real numbers.

----------

## ipic

 *hhfeuer wrote:*   

> Xonotic is running vsync'd so it only gives you 60FPS with the RX580. Disabling vsync would show more of the real potential of it but then your cpu would probably limit it. Try a Unigine demo for some real numbers.

 

Thanks for the suggestion. The benchmark was only really to show that the new card was working. As I said at the top of the thread I'm not a hardcore gamer.

from dmesg:

```

......

[    0.000000] DMI: Gigabyte Technology Co., Ltd. GA-880GA-UD3H/GA-880GA-UD3H, BIOS FE 03/04/2011

......

[    0.306612] smpboot: CPU0: AMD Athlon(tm) II X4 640 Processor (family: 0x10, model: 0x5, stepping: 0x3)

......

[    0.499454] pci 0000:01:00.0: 64.000 Gb/s available PCIe bandwidth, limited by 5 GT/s x16 link at 0000:00:02.0 (capable of 126.016 Gb/s with 8 GT/s x16 link)

......

```

This hardware won't be setting anyone's world alight  :Smile: 

----------

## Anon-E-moose

$ glxgears 

Running synchronized to the vertical refresh.  The framerate should be

approximately the same as the monitor refresh rate.

305 frames in 5.0 seconds = 60.955 FPS

301 frames in 5.0 seconds = 60.004 FPS

$ vblank_mode=0 glxgears

ATTENTION: default value of option vblank_mode overridden by environment.

8660 frames in 5.0 seconds = 1731.691 FPS

8663 frames in 5.0 seconds = 1732.469 FPS

This is with my nvidia 730, the rx560 I only use for passthrough, so I don't know what fps it is capable of, but the 580 is a decent mid level card.

Not quite as fast as an nvidia 1060 but not much off from it.

----------

## ipic

```

ipic@ian2 ~ $ glxgears

Running synchronized to the vertical refresh.  The framerate should be

approximately the same as the monitor refresh rate.

313 frames in 5.0 seconds = 62.494 FPS

300 frames in 5.0 seconds = 59.996 FPS

ipic@ian2 ~ $ vblank_mode=0 glxgears 

ATTENTION: default value of option vblank_mode overridden by environment.

16906 frames in 5.0 seconds = 3381.114 FPS

16865 frames in 5.0 seconds = 3372.966 FPS

ipic@ian2 ~ $ 

```

But it's not a competition.   :Confused: 

----------

## Anon-E-moose

I was just highlighting the difference between vblank on and off.   :Wink: 

----------

