Any idea how to change displays in KMS mode?

I have pretty much switched from playing RA on windows to linux now that the 3.11 kernel allows the radeon open source driver to play all my games at full speed even with complex shaders once I turned on the new dpm feature. The last barrier in figuring this all out has been trying to get KMS mode to output to my HD tv instead of my laptop monitor. In my arch install I boot straight to the command line. The command line shows up just fine on both my laptop screen and my TV connected through hdmi. However whenever I start RA it always outputs to the laptop screen rather than the TV. I have tried forcing KMS to output to my TV with kernel parameters but this had the exact same affect as before. I have changed the monitor index in the RA config file but it still outputs to laptop screen. Of course trying any xrandr commands would be no help since x isn’t running.

So before I give up on this, I am just curious if anyone else has experience in this regard and can maybe point me in the right direction because I am all out of ideas and can’t find any helpful documentation on the arch wiki.

This forum post sounds like it does what you want: https://bbs.archlinux.org/viewtopic.php?pid=1173596

good idea. I tried to use this same boot argument to enable my TV but not to disable my laptop screen. Hopefully it works. I’ll have to try it when I get home. Thanks a lot.

Np. Hope it helps. I’m glad to hear that Radeon KMS doesn’t drop frames anymore!

Well I assumed the message in the log

  • missed 1 Vblank at so and so frame

meant a frame was dropped

This used to be every hundred frames or so. Now I might get that message once or twice in an hour session. So it appears to be resolved for the most part. It certainly isn’t noticable at all during play.

Seriosly though KMS mode is a dream. Finally, no more compromises. I get steady frames, all the shaders I like. Even intense games on heavier cores run fine. No input lag and perfectly smooth v-sync. Now I just need to find a proper adapter for that CRT i picked up a while ago (seems the cable I purchased is not enough to convert the signal).

Yep, that’s exactly what I was referring to, as well. I’m stoked that they finally fixed it. :smiley:

Gotta wub that KMS. Sweet that the frame dropping is fixed in Radeon now. :3 The frame drops usually come at the start of emulation. Anyways, 1 frame drop per hour is certainly what I’d call perfect.

dammit disabling the laptop screen didn’t work. In fact it didn’t seam to have any affect at all since it even worked when I started x. It is as though the kernel is entirely ignoring my boot parameters for some reason. I tried to foce my laptop screen off and force TV on and neither of those seem to have any affect. Tried to use an early KMS start but that didn’t really change anything. Other than that I am really running out of ideas for now. I’ll post the solution when I figure this out. I don’t want to have to unplug my laptop screen again, but that’s about all i can think of at this point.

It might be possible to select displays programmatically with KMS context. I might look into it sometime.

Well I have very limited programming knowledge but I will also continue to look into this as well. Thank you guys for all the help though

I finally figure it out. Firstly I had to use an early KMS start; which I tried before but I messed it up the first time. I made a mistake when trying to rebuild my kernel with mkinitcpio. My problem was I use the linux-ck kernel and I accidently rebuilt the regular stock arch kernel because I wasn’t paying close attention. That was my first mistake. After getting the early kms correctly setup I had to add another kernel parameter to get the other parameters I talked about earlier to show up correctly.

GRUB_CMDLINE_LINUX_DEFAULT=“quiet elevator=bfq radeon.dpm=1 drm_kms_helper.edid_firmware=edid/1920x1080.bin video=LVDS-1:d video=HDMI-A-1:e”

the “drm_kms_helper.edid_firmware=” bit is what made the whole thing come together. After adding this parameter the other two params to shut off my laptop screen and force my hdmi connection actually started working and now I can play KMS mode on other displays. Hopefully this helps anyone with a similar issue.

I’m trying KMS with the intel hd 4000 driver but having a problem an thought I’d post it here:

RetroArch [ERROR] :: [KMS/EGL]: Couldn’t get device connector. RetroArch [ERROR] :: Cannot open video driver … Exiting … RetroArch [ERROR] :: Fatal error received in: “init_video_input()”

I added the xorg-edgers ppa to get newer intel drivers but it didn’t help. On ubuntu 13.04

@timde9 Sweet! Glad you got it all sorted out :smiley:

@xenphor Did you build RetroArch yourself? If so, make sure KMS/EGL context is available when you run ‘retroarch --features’

Those logs imply that KMS/EGL is compiled in. I’m not sure what that error message means. Probably the device is locked down by something else (X?).

I got retroarch from hunter’s ppa.

What I do is Ctrl-alt-bksp to kill the xserver then login to a virtual terminal and launch it from there. I didn’t see X running in the list of processes listed in top. Do I have to suspend other processes?

edit: I see I forgot to kill lighdm as well.

Is there a way to do it in one command then instead of ctrl+alt+bsksp, ctrl+alt+f1, sudo service lightdm stop?

I think just killing lightdm from the desktop should be sufficient, though I’m not sure about that.

Well I used it but didn’t notice any difference myself.

The one core that could’ve benefited the most I thought was the n64, because, as it is now, the inputs feel pretty sluggish and framerate seems to be all over the place. I tried some games and didn’t notice any difference between it and stand alone mupen.