[SOLVED] Game issues - framerate oddity, CPU overload, GPU driver questions.
SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Game issues - framerate oddity, CPU overload, GPU driver questions.
I am having some strange issues with my steam games. it seems as if for some reason the game is wanting to run the games' graphics through my CPU instead of my GPU. I was thinking a change in drivers should fix that problem.
KSysGuard shows all games having massive amounts of CPU usage (starbound in particular shows at least 90% usage on all cores!), and incredibly slow framerates ingame. However when I move the mouse out of the game screen, the cursor in XFCE works smooth as butter. I was thinking of changing my GPU driver, but when I found the page for the RX 480, it showed no option for a non-specific linux- just RHEL and Ubuntu. I'm leery at using drivers for another distro, for that matter, I don't know how to acquire the open source AMDGPU drivers, or if I'm even using them right now. Are the AMDGPU drivers a package or are they part of the kernel itself?
Also, in my attempt to optimize my gaming prowess, I have downloaded the latest stable source of the linux kernel, but I have an EFI system and thus, Elilo installed. what kind of differences and gotchas are there when installing a kernel in EFI vs a regular boot partition as listed here?
is it just as simple as changing "/boot" to "/boot/efi/EFI/Slackware/"?
Last edited by lawnm0wer; 12-06-2017 at 07:11 PM.
Reason: tag typo
I was thinking of changing my GPU driver, but when I found the page for the RX 480, it showed no option for a non-specific linux- just RHEL and Ubuntu. I'm leery at using drivers for another distro, for that matter, I don't know how to acquire the open source AMDGPU drivers, or if I'm even using them right now. Are the AMDGPU drivers a package or are they part of the kernel itself?
The opensource amdgpu drivers are already included in Slackware, however, due to the age of 14.2, they aren't the newest versions. And unfortunately, AFAIK, the opensource drivers don't include proper support for your card until the 4.15 series kernel, which is in RC status now (I think it's speculated to be released in Jan).
That being said, if you want to be a little adventurous, I have a SlackBuild to repackage the pro driver from Ubuntu. Unfortunately, I don't have the hardware to test it, so I fixed what was reported by other users. It *should* also uninstall cleanly, so if it doesn't work, it shouldn't jack up your install.
Quote:
Originally Posted by lawnm0wer
Also, in my attempt to optimize my gaming prowess, I have downloaded the latest stable source of the linux kernel, but I have an EFI system and thus, Elilo installed. what kind of differences and gotchas are there when installing a kernel in EFI vs a regular boot partition [url=https://docs.slackware.com/slackbook:linux_kernel]as listed here?/url]
is it just as simple as changing "/boot" to "/boot/efi/EFI/Slackware/"?
If you place your kernel (and possibly initrd) in /boot/ and then run eliloconfig, it should copy them automatically. However, I personally don't like that because it clears your old elilo.conf and generates a new one, so if you had any options (or multiple kernels), it clears it all.
What I do is copy my kernels and initrds to /boot/ with the kernel version in their names, then I'll mount my EFI partition (it's not normally mounted on boot) and copy those files to /boot/efi/EFI?Slackware/ and then I'll modify the elilo.conf in there to add the extra entries. If you're semi-familiar with editing the lilo.conf file, you shouldn't have any issues here since the syntax is very similar.
After that, you don't need to do anything special to save it. Just reboot and you should be in your new kernel
thank you for the answers! ok, so direct rendering works, that said, I will build the kernel first and see if that helps my framerate issue.
If my problems persist, I will download bassmadrigal's slackbuild and cross my fingers! either way, I'll try to provide updates of my progress when possible!
ok, so my adventures in kernel compiling have resulted in a compiled alternate kernel that shuts my computer off the moment I try to boot it...
Well, sudden spectacular failures aside, upon following the steps to reinstate the generic kernel's config as listed here have shown me something- that the amdgpu driver apparently is already in the generic kernel- just as a module.
I'm a neophyte when it comes to kernel wizardry, as such, I don't know to enable this module, let alone through elilo.
the hopeful in me says something like this will work...
Code:
# Elilo.conf secondary boot entry using the generic kernel
image=vmlinuz
label=vmlinuz-amd
read-only
append="root=/dev/sda1 vga=amdgpu ro"
...but the pessimist in me says "something will fall apart and give me no response whatsoever".
what must I append to load the amdgpu module during boot?
Last edited by lawnm0wer; 12-06-2017 at 07:28 PM.
Reason: clarification
The amdgpu driver has been a part of the kernel for quite some time. However, it has seen significant changes over the years with more cards being supported and adding new features for already supported cards. You might already be loading the amdgpu driver. You can check that with the following command:
Code:
lspci -k | grep -iA3 vga
The vga= parameter is not used to load the driver, but to set the resolution and color depth of the computer during bootup.
The amdgpu driver has been a part of the kernel for quite some time. However, it has seen significant changes over the years with more cards being supported and adding new features for already supported cards. You might already be loading the amdgpu driver. You can check that with the following command:
Code:
lspci -k | grep -iA3 vga
The vga= parameter is not used to load the driver, but to set the resolution and color depth of the computer during bootup.
the only thing I understand about it is that the GPU exists, and it's got an audio device- one that I'm not physically using.
is it really loading the module? for that matter, how would I load it upon boot?
This is likely because your card is new enough that the older module doesn't recognize it. So, because it doesn't recognize the device, it probably uses the generic VGA output, which leads to horrible performance.
Based on some research, it looks like basic support for your card was added in the 4.7 series kernel, so if you use any kernel from there on, it should hopefully have a module that supports your device.
You could grab the kernel from -current, which is the 4.9 series. I would suggest installing it using installpkg rather than upgradepkg, this way it will keep your old kernels around in case you run into booting issues. You'll also need to modify your bootloader to ensure both kernels are available to boot from. Do you know what bootloader you're using? lilo, grub, elilo?
For the kernels, I'd recommend grabbing kernel-genereic, kernel-huge, kernel-modules, kernel-firmware, and kernel-source packages. Don't worry about the kernel-headers package.
I managed to download the slackware-current kernel files that you suggested. I copied the "*-generic-4.9.67" files from /boot to /boot/efi/EFI/slackware, set up a boot entry, rebooted and got a kernel panic.
Code:
kernel panic-not syncing: VFS: unable to mount root fs on unknown block(8,2)
removing the system.map file & doing "ln -s System.map-vanilla-4.9.67 System.map" afterwards did not change anything. here is my elilo.conf.
If you load a generic kernel you need to generate an initrd for it. generic kernels don't contain drivers for the filesystems (and sometimes the motherboard components to read the drives). They are provided as separate modules, so you need to use an initrd to load those modules so it can actually read the harddrive.
To generate an initrd for the new kernel, you can use /usr/share/mkinitrd/mkinitrd_command_generator.sh -k 4.9.67 and then run the resulting command (although, I typically recommend adjusting the output file to contain the kernel version in it). Then, copy the resulting initrd to your /boot/efi/EFI/Slackware/ and add a reference to it in your elilo.conf using initrd=initrd-4.9.67.gz under the new entry.
Also, looking at your elilo.conf, you need to have your desired kernel as the first entry, so I'd change it so your 4.9.67 kernel is the first entry.
As an alternate to generating an initrd, you could also use the huge kernel, but Pat recommends only using the huge kernel for installation and switching to the generic with an initrd after installation is complete.
darn it all.
I've got the new generic kernel running, I've got the driver running, but my games' performance is still the same. they run terribly, it feels like the only thing that happened was that proper screen resolutions were recognized and that was it.
lawnm0wer - With a card as sweet as many RX 480s are I recommend you try the AMD provided Pro driver asap. FWIW the open source seems a wee bit better than it's counterpart, nouveau is for nvidia, but still the manufacturer's own driver is simply needed for any serious gaming. Bassmadrigal has been a great help to so many slackers, including me with almost 20 years of slack use, that it is with zero reservation that I recommend you try his slackbuild. As he stated there should be no risk and you have a great deal to gain. I think you need to experience it for yourself first before venturing "whole hog" into kernel customization. Expertise in that area comes with time and experience and perhaps a visit --- HERE ---
darn it all.
I've got the new generic kernel running, I've got the driver running, but my games' performance is still the same. they run terribly, it feels like the only thing that happened was that proper screen resolutions were recognized and that was it.
I don't know what to do, I don't get it, what did I miss?!
That card is still relatively new and I don't know how well supported it was in the 4.9.x kernel. I think you also might be limited due to Slackware 14.2 only using mesa 11.2. Based on research, it sounds like support was added to mesa 12. So, -current would probably have much better support for your card using the open source drivers, but it is also a development branch and can frequently break 3rd-party programs as it develops to be the next stable release, so I don't know if that is a better option for you.
But the first thing to check now that we know it is using the amdgpu module is to ensure direct rendering is enabled and that it is not using software rendering. Can you post the output of the following? I have a feeling it isn't using proper hardware rendering because I think mesa in 14.2 is too old.
Code:
glxinfo | grep render
If you don't want to move to -current, the amdgpu-pro driver might be a better option because it uses a lot of its own binaries, overriding older/limited versions included in Slackware to hopefully provide you better support. Hopefully it builds fine with a 4.9 kernel, because it was still pretty new when I put together the SlackBuild. Looking at the 17.10 SlackBuild, I had commented out the kernel patches, so hopefully that means it builds without issue. But if it doesn't, I can look into it and see if I can find patches other distros are using. Or you could switch back to the 4.4 kernel, since I know that it builds the module without issue using that.
No need to change to current to get a more modern graphics stack. Use Pat's slackbuilds in current to build a newer libdrm and then mesa, next build a newer kernel.
Just FTR - While I haven't bought an AMD/ATi video card since the time when they nestled in ISA slots, I strongly suspect there are important parallels to graphics drivers for nVidia in that they know what works best for hardware they created. That is likely especially true in high midrange cards like the RX 480 which averages around $400.00 USD. Whether one is a gamer or into 3D creation and editing, 3D is the area in which Open Source graphics drivers tend to be far less effective.
Unfortunately this is often not understood or given far less concern than it deserves by those satisfied with onboard or under $100 addon cards. My point is if you care enough to spend ~400 smackers (I do... just bought an EVGA GTX 1070 Ti for 500) it is just a waste to persist with OSS. I love and respect OSS but in this area, graphics drivers, they can never truly compare so I say honor the fact that the GPL honors both OSS and Proprietary. OSS is a preference and rightly so but $400 isn't Free. Get what fits.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.