Showing posts with label hd7770. Show all posts
Showing posts with label hd7770. Show all posts

Wednesday, October 21, 2015

Goat Simulator and GoatZ on Xubuntu

A family member had been running Goat Simulator on an old Q6600 + HD7770 machine, but found that the GoatZ DLC add-on just wouldn't work. It continually crashed with the dreaded "goatgame-win32-shipping.exe" error.

None of the suggested fixes I could find (verify cache; update graphics drivers; reinstall; tweak some shader settings) had any effect. Although Vista is still officially supported, it may have been something to do with that. Since the machine was dual-booting with Linux, and Goat Sim now has a Linux target, I just installed it on there.

Ran fine using the current AMD fglrx drivers in Xubuntu 14.04. Bit of glitchiness in the water rendering, but nothing that couldn't be ignored.

Really the only issue was the mouse sensitivity in-game. I've found this with other games based on the Unreal Engine, the mouse speed goes way down. I fixed this by tweaking the mouse speed in the desktop using xset:

$ xset m 4/1 0

(Basically, followed the advice from this thread).

Sunday, December 22, 2013

SteamOS Beta: Installation and Test

Despite my stance on DRM (I abhor the entire concept for many, many reasons, but that's for another post), due to demands gentle encouragement from friends I decided to try out Steam (and specifically, SteamOS) and see what it's all about.

At this point SteamOS is in Beta, and while it's got a lot of areas to iron out, once you get it installed it works pretty well, including fully functional AMD GPU drivers despite no official support.

Initially I tried to run this on my old Core 2 Quad system, but the install failed because the BIOS wasn't new enough (needed to have UEFI Boot option). But on a newer machine the install process was much smoother. It was a fairly low-specced machine with the following parts: Intel G1610, 2GB RAM, AMD HD7770, 128GB Sandisk Ultra Plus SSD.

SteamOS desktop

Here are the steps:

  • I chose the SteamOSIntaller.zip option, mainly because I thought the CloneZilla-based image option wouldn't work because I didn't have a 1TB HDD, which was apparently required for the image.
  • Instead of following the installer instructions in the SteamOS FAQ, I converted it to an ISO using the following command:
  • grub-mkrescue -o SteamOS.iso steam/
  • Next I put the ISO on a flash drive (using Unetbootin or ISO writer of choice). I discovered that even with the ISO, UEFI boot is required.
  • Selected "Automated Install" from the boot list. Everything went smoothly for me from this point.
  • Initially I was just running with Intel onboard graphics. After install, I plugged in the HD7770. It picked up the fglrx_pci drivers and "just worked" which was nice.
  • The first time, you have to run "steam" from the console. It downloads and installs Steam (about 220MB). After installing and creating my account, it "crashed" (spat out a crash ID anyway). I restarted using the "Steam" icon on the desktop, which worked fine.

The first game I installed was Killing Floor. I was only running it at 1680x1050 (using an old monitor), but it looked great at High settings.

Killing Floor on SteamOS at 1450x900

Only games with a Linux target will work. Non-linux games appear in the Steam client window, but don't have an "Install" button. I assume that someone will work out how to get a wine option to run Windows only games via SteamOS, but I haven't tried this yet.

Things of interest to note:

  • The installer erases the target drive, and potentially any other drives plugged in. I installed on a fresh system to make sure no data was accidentally lost.
  • USB drives mount as read-only by default, and the "steam" user doesn't have permission to do even that. Makes it a pain trying to transfer screenshots or anything between computers.
  • The software sources are limited basically to Steam repos. I assume you can add other sources in, but haven't explored this.

Sunday, October 20, 2013

AMD GPU on Linux, Revisited

It's been almost a year since I first tried to run an AMD graphics card on Linux. After some success with an AMD A-CPU build a few weeks back, I picked up a 2nd hand HD7770 yesterday to try out and see if things have improved.

There were a number of tests I was interested in doing. I didn't have a convenient dual-monitor setup available, so everything is on a single screen (dual screen was one of my major problems last time, so I might get around to this at some point). The tests were:

  • Dragging a window around, looking for tearing
  • Scrolling in a web browser, looking for tearing again
  • Playing a HD video
  • Playing a game

I installed the card on my old Intel Q6600 system, and ran off the onboard graphics to start with, to get a baseline. I installed a fresh Kubuntu 13.04 as the test platform. These are the results, discussion at the end:

Test 1: Intel i915 (onboard) Graphics
ActionResultComments
Drag windowXNoticeable glitches
Browser scrollXOccasional glitches
Movie:)
GameXUnplayable (took a few minutes and hadn't even made it through the intro to the title screen)

Test 2: Open Source (Radeon) Drivers
ActionResultComments
Drag windowXNoticeable glitches
Browser scrollXOccasional glitches, similar in appearance to the onboard performance
Movie:)
GameXGame ran, going from 20 FPS sometimes down to 5. Some major glitching, and eventually a black screen. Not playable.

Example of the in-game glitching with the open source drivers


Test 3: AMD Catalyst 13.4
ActionResultComments
Drag window:)Looks nice, but need to ensure "Tear Free" option is selected in AMD Control Centre
Browser scroll:)Again, need to ensure "Tear Free" option is selected
Movie:)And again
Game:DVery good results (eventually), no noticeable lag on full-screen.

I intended to use 13.10, but the current version of Catalyst wouldn't install properly, so I dropped back to 13.04.

Installing the driver is still fraught with difficulties. The first couple of attempts failed -- even using the ubuntu libraries with apt-get install fglrx fglrx-amdccle wouldn't work. In the end, the way I got it going was by following the instructions in this askubuntu answer. In particular, I think getting all the dependencies is critical.

The proprietary driver may have an unfair advantage in my tests drag/scroll tests, since I found the "Tear Free" switch. I'm not sure if such an option exists for the open source drivers.

So, I had better luck than last time round, but the installation process is still daunting, and dual-screen support would be good to try out.

Tuesday, February 5, 2013

AMD HD7770 GPU in Linux


Update (Oct 2013): For anyone who stumbles across this, I've posted an update where I got the proprietary driver to work acceptably (but only on single screen).


After researching and asking around on forums about GPUs and Linux, I decided to get an AMD Gigabyte HD7770 1GB as an experiment. From what I could gather, AMD support in Linux was pretty bad, (or at least, more problematic than nVidia cards), so I went in with low expectations, willing to wear the difference of flogging it off secondhand if it didn't work out.

TL;DR: It wasn't all bad, but nothing "just works" (as was pointed out in forum responses). From my experience, I have to conclude that the AMD Linux drivers are effectively broken at the moment.

Rationale

Despite being warned away from AMD cards, the 7770 is an entry-level gaming card and not overly expensive. It was also overkill for the games I expect I would be trying to play (of which there isn't a huge selection on Linux yet anyway).

Since it wasn't too expensive ($119), I was willing to take the risk and try it out, partly for the chance to experiment, partly because AMD are reckoned to be good value for money in that price range, and partly because AMD at least supports an open source driver (for varying degrees of "supports").

Machine and OS Specs

Hooked into the i5 3470 system I built in December 2012, running LinuxMint 14 (Nadia) Cinnamon 64-bit.

On with what I found.

Card Installation

Quick and easy. Dropped right into the PCI-E slot without the firm coaxing that RAM and SATA cables usually need. I chose the second port because it looked like the USB 3.0 cable might get in the way of the card. After I put it in, I thought it probably wouldn't have been a problem, but I left it where it was.

Plug in the 6-pin power cable and away we go.

Note: If I'd got the slight less powerful 7570 (which I was considering) I wouldn't have needed the power, but I got a beefy PSU and it seemed a shame to not try out some of those cables sitting around in the bottom of the case).

With the GPU plugged in the on-board graphics is disabled. This is (I gather) expected behaviour.

Open Source AMD Video Driver

Single Screen

After plugging in the GPU and booting up, I didn't have have to do anything in particular. LinuxMint 14 has drivers installed by default to drive the GPU.

First test I plugged into the DVI port. It started up fine at full resolution.

A command you can use to see how the system has detected your GPU is:

    lscpi --nn | grep VGA

Mine displayed "[Radeon HD 7700 Series]"

Dual Screen

Then I added in the second monitor. If you've ever heard someone claim the dual-monitor support in Linux is limited, you can believe them.

Initially with both plugged in, only the HDMI monitor would work. The other monitor (plugged into the DVI, which was originally working), displays its "Current input timing not supported by monitor display" message.

I worked out how to get things going by using xrandr, a command-line tool that configures the displays.

By itself, executing xrandr outputs details about the detected displays. You need to know the "names" the system has given the monitors plugged into each port in order to control their output settings. In my case, the monitor plugged into the DVI port was "DVI-0", and the one plugged into the HDMI port "HDMI-0".

To make my main screen on the left and the second screen on the right, I used the following command:

    xrandr --output DVI-0 --auto --output HDMI-0 --auto --right-of DVI-0

This works, but leaves the taskbar on the right hand side screen (HDMI-0 in this case). To make the system use a particular screen as the "primary", use the following command:

    xrandr --output DVI-0 --preferred --auto --primary

This shifts the taskbar to the DVI-0 display.

Saving Dual Screen Setup -- Attempt 1

So, after using these commands to set up the displays as desired, I had to work out how to make the changes permanent. The "normal" way to do this (if that's the right word) is to put the configuration into the /etx/X11/xorg.conf file.

Using this answer, I adapted a minimal xorg.conf file and came up with this:
Section "Monitor"
  Identifier "First monitor"
  Option     "PreferredMode"   "1920x1200"
EndSection

Section "Monitor"
  Identifier "Second monitor"
  Option     "PreferredMode"   "1920x1080"
  Option     "RightOf"          "First monitor"
EndSection

Section "Device"
  Identifier  "Radeon HD 7700 Series"
  Driver      "radeon"
  Option      "DVI-0"   "First monitor"
  Option      "HDMI-0"   "Second monitor"
EndSection

Something went wrong when I ran it though. At least, the HDMI-0 monitor got a new name, and became "HDMI-3". So it didn't quite work.

Saving Dual Screen Setup -- Attempt 2

Next I thought I'd try and set things up with xrandr, then go into the Preferences/Display dialog and use the "Keep current configuration" option to save the setup.

This creates a monitors.xml file in ~/.config with the current settings. However, it only applies after you login. The HDMI screen, if plugged in, always seems to be considered the "primary".

Saving Dual Screen Setup -- Give Up

I tried a couple of other wild and fancy things that I found on various sites to set up dual screens, but in the end just gave up. No matter which way I plugged the monitors in, if the smaller 23" LCD was attached, it was the one that "lights up" for the splash screen. After login the 24" came to life, but not before.

I couldn't work out how to get both screens going at the system level, rather than the user level, so I gave up.

Open Source Driver Performance

First test was running a fullscreen 1080p video. It ran with lots of glitches and jaggies when playing. The CPU went up to 50-55 degrees on all cores -- was is actually processing in software?

Then I downloaded the Phoronix Test Suite. The suite package itself is reasonably small, but the full test suite takes over 5GB of download and can take a few hours. I managed to run a few of them, but none of them ran very well. For example, Nexuis looked like it was running at about 0.1 FPS.

It was clear that, unfortunately, the open source driver was not even close.

Proprietary AMD Video Driver

It seemed I could choose between the Catalyst driver from AMD's site, or one of the fglrx drivers that were listed in the software centre. I still haven't worked out what the difference between these two things is -- I think they're related in some way, but I'm not sure how.

So after looking at askubuntu.com/questions/142627, I did:

    sudo apt-get install fglrx-updates flgrx-amdcccle-updates

Bam! Upon reboot, the video was completely broken. I could see the motherboard post, and then nothing -- not even a prompt. The onboard video also wasn't working (at the time I didn't realise you have to unplug the GPU completely for the motherboard to activate the onboard video).

So, at a loss, I booted up and started typing blind the following steps:

  • Reboot
  • Ctrl-Alt-F1 (open a console, that wasn't visible at all)
  • Enter username
  • Enter password
  • sudo apt-get -y remove --purge fglrx-updates
  • Enter password again (for the sudo)
  • <wait>
  • sudo reboot

Fortunately, this fixed the problem. So I can't really recommend installing the fglrx-updates variant of the driver.

Next I tried installing the Linux Catalyst driver from AMD's website. This was version 12.11beta at the time (see upubuntu.com/2012/08/install-amd-catalyst-128-on-ubuntu.html for the steps I followed).

This driver seemed to work fine (it at least didn't black out my screen) but came with the "beta" watermark in the bottom right. To get rid of that, follow the instructions at askubuntu.com/a/216730.

Dual Screen -- Proprietary

Unfortunately, getting dual screens set up with the proprietary driver was, if anything, more difficult than with the open source driver.

I tried the following mechanisms:

  • Steps at unixmen.com/howto-install-ati-driver-in-ubuntu
  • Then superuser.com/questions/395927, but the Virtual 3820 caused tearing when the taskbar animated up
  • Then I used arandr to get the 2nd display going
  • Then I tried the amdcccle (admin) application to apply "Digital Monitor(2) -> Adjustments -> Scaling (0%)" This resulted in another refresh problem on the second monitor, where it would only update while the taskbar on the primary screen was animating during hover.

So I gave up on the dual screen idea in order to get some testing done for the driver. With the dodgy dual screen setup, running the test application fgl-glxgears got 500-600 FPS, but was very choppy.

Proprietary Driver Performance

To revert to a single screen, I entered the following at the command line:

    aticonfig --initial -f

Now running fgl-glxgears got around 2500-3000FPS. So, same driver but running with only a single screen instead of dual screen improved the performance of this benchmark application by 6x, and it no longer looked choppy. But this is a pretty simple little application, I wanted something with a bit more meat.

So I installed xonotic and ran it up fullscreen (1920x1200) with the highest settings I could set. Within the game is ran just fine (too fast for my old hands), but my old eyes couldn't discern any difference between the "default" versus the "high" settings, so I'm not sure if I did it right.

But, after running this (or, it seemed, any "fullscreen" game), the taskbar animation back in the desktop became choppy and caused tearing all over the screen.

Last Ditch

All this playing had taken a couple of weeks by this stage. I got recommended to run the sgfxi script at smxi.org (a "fix it all" graphics driver script). When I downloaded it and ran, it exited saying I needed to run it from outside X.

Which was fine, I thought, so I tried to Ctrl-Alt-F1 into a console. But I couldn't see the console, at all. I could see the X session, but none of the TTY console (1 through 6) were working.

Somewhere along the way I'd borked those. By this time I'd had enough "experimentation".

Blew away Mint. I'm now running Xubuntu with the onboard video. Anyone want to buy a barely used Gigabyte HD7770?

Conclusion

My experience has led me to conclude that both the open source and proprietary drivers for AMD GPUs on Linux are broken. The Intel drivers for the onboard video aren't without their quirks (for example, I find it really hard to configure the login screen to start on a specific monitor at a specific resolution, and setting up dual monitors is still a bit of a chore). But for the most part they work.

With the AMD proprietary drivers I had crashes, no screen at all for a while, and dual screen setup was diabolical. With the open source driver I had tearing and I wasn't quite sure it was actually using the GPU to do anything.

Hopefully I'll get an nVidia card at some point to get another perspective, but I'll be starting with pretty low expectations.