Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Doom Performance

Featured Replies

Boy that topic can make it sound a lot worse than it is

I have been using a VM through unraid as my main windows 10 rig, and for the most part everything has been fine

But with the release of Doom, i finally noticed a huge problem

The game is slow, and I don't mean gameplay I mean everything about it is slow

I know I'm no the only one who's playing the "return to tradition" awesomeness that is Doom

Is anyone else have issues

Or would know why Mad Max can be run at max while doom on slow is a slow chug

what I'm running:

ASUS M5A99FX with ATI card dedicated for Unraid

EVGA GeForce GTX 960 4GB pass thru

AMD FD8350FRHKBOX

 

I love the idea of one system, but I'm wondering if it's time to separate the two again

I've got doom running on a windows VM and it runs fine at around 60fps with most (if not all) settings on the max.

 

On the other hand, Battleborn runs really slowly on the same hardware...

  • Author

So weird, let me ask how fast, in terms of speed should the marine be moving

Because he's walking like a senior citizen, but so is everything it's not lag so much the entire game is at teh same slow slow speed

 

Especially considering how well Doom(s) is coded it's very odd their code is usually the benchmark for coders

Battleborn on mine works fine

But then a game like Ghost in the Shell chugs

If you are playing Doom thru Steam, enable the fps counter... its in the steam settings, In-Game section - "In game fps counter".

 

That should give you a good indication of your framerate.  Anything above 30 should be playable, but of course higher is better.

  • Author

lol forgot steam added that

After an hour of playing

I'm averaging 15fps

Maybe this is an nvidia va amd thing then.  Pretty sure Battleborn is an nvidia "sponsored" game as it has physx in it.  Maybe Doom is optimised for AMD?

 

Might explain battleborn working fine on your nvidia card and doom on my AMD one...

 

Still, 15fps seems really low even taking that into account.  :o

I play on an amd and find the performance is very good no issues at all. The pinning of cpu cores helped me and i need to run hyperv on for it to run well

 

  • Author

what do you mean pinning and hyperv

Is that some stuff that is done manually to the xml?

what do you mean pinning and hyperv

Is that some stuff that is done manually to the xml?

 

It might help to mention the version of unRAID you are running if you make future threads.

CPU pinning is explained and demonstrated in the top sticky topic of this sub-forum. Hyper-V is explained in the wiki documentation.

Search is your friend  ;)

  • Author

I agree with searing, though before I started I didn't know how to start searching for it :)

Following the CPU sticky I got the VM set up

Now I'm pulling 18-21 fps

 

Running Unraid 6.1.9

 

 

<domain type='kvm' id='1' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>Main</name>
  <uuid>11593592-c37a-6295-c3d4-5ee1be345db3</uuid>
  <metadata>
    <vmtemplate name="Custom" icon="windows.png" os="windows"/>
  </metadata>
  <memory unit='KiB'>30932992</memory>
  <currentMemory unit='KiB'>30932992</currentMemory>
  <memoryBacking>
    <nosharepages/>
    <locked/>
  </memoryBacking>
  <vcpu placement='static'>6</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='2'/>
    <vcpupin vcpu='1' cpuset='3'/>
    <vcpupin vcpu='2' cpuset='4'/>
    <vcpupin vcpu='3' cpuset='5'/>
    <vcpupin vcpu='4' cpuset='6'/>
    <vcpupin vcpu='5' cpuset='7'/>
    <emulatorpin cpuset='0-1'/>
  </cputune>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-i440fx-2.3'>hvm</type>
  </os>
  <features>
    <acpi/>
    <apic/>
  </features>
  <cpu mode='host-passthrough'>
    <topology sockets='1' cores='6' threads='1'/>
  </cpu>
  <clock offset='localtime'>
    <timer name='rtc' tickpolicy='catchup'/>
    <timer name='pit' tickpolicy='delay'/>
    <timer name='hpet' present='no'/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/bin/qemu-system-x86_64</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source file='/mnt/cache/VMs/Main/vdisk1.img'/>
      <backingStore/>
      <target dev='hdc' bus='virtio'/>
      <boot order='1'/>
      <alias name='virtio-disk2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </disk>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source file='/mnt/disks/WDC_WD10EACS-07D6B0_WD-WCAU43599175-part1/Main/vdisk2.img'/>
      <backingStore/>
      <target dev='hdd' bus='virtio'/>
      <alias name='virtio-disk3'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </disk>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source file='/mnt/disks/WDC_WD10EACS-07D6B0_WD-WCAU43599175-part1/Main/vdisk3.img'/>
      <backingStore/>
      <target dev='hde' bus='virtio'/>
      <alias name='virtio-disk4'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </disk>
    <controller type='usb' index='0'>
      <alias name='usb'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
    </controller>
    <controller type='pci' index='0' model='pci-root'>
      <alias name='pci.0'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <alias name='virtio-serial0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:cc:ba:f4'/>
      <source bridge='br0'/>
      <target dev='vnet0'/>
      <model type='virtio'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </interface>
    <serial type='pty'>
      <source path='/dev/pts/0'/>
      <target port='0'/>
      <alias name='serial0'/>
    </serial>
    <console type='pty' tty='/dev/pts/0'>
      <source path='/dev/pts/0'/>
      <target type='serial' port='0'/>
      <alias name='serial0'/>
    </console>
    <channel type='unix'>
      <source mode='bind' path='/var/lib/libvirt/qemu/channel/target/Main.org.qemu.guest_agent.0'/>
      <target type='virtio' name='org.qemu.guest_agent.0' state='disconnected'/>
      <alias name='channel0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <vendor id='0x0fcf'/>
        <product id='0x1009'/>
        <address bus='5' device='2'/>
      </source>
      <alias name='hostdev0'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <vendor id='0x1b1c'/>
        <product id='0x1b1b'/>
        <address bus='4' device='4'/>
      </source>
      <alias name='hostdev1'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <vendor id='0x04d9'/>
        <product id='0x0167'/>
        <address bus='4' device='3'/>
      </source>
      <alias name='hostdev2'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <vendor id='0x046d'/>
        <product id='0xc01e'/>
        <address bus='4' device='2'/>
      </source>
      <alias name='hostdev3'/>
    </hostdev>
    <memballoon model='virtio'>
      <alias name='balloon0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
    </memballoon>
  </devices>
  <qemu:commandline>
    <qemu:arg value='-device'/>
    <qemu:arg value='ioh3420,bus=pci.0,addr=1c.0,multifunction=on,port=2,chassis=1,id=root.1'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=04:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=04:00.1,bus=root.1,addr=00.1'/>
  </qemu:commandline>
</domain>

I'm running the latest beta unraid with a gtx 780 passed to windows 10, gaming at 2k I get a minimum of 40fps with no issues at all with everything on medium

 

My vm is allocated 8 cores, and 12gb memory in vm manager with hyperv enabled

I agree with searing, though before I started I didn't know how to start searching for it :)

Following the CPU sticky I got the VM set up

Now I'm pulling 18-21 fps

 

Running Unraid 6.1.9

 

 

<domain type='kvm' id='1' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>Main</name>
  <uuid>11593592-c37a-6295-c3d4-5ee1be345db3</uuid>
  <metadata>
    <vmtemplate name="Custom" icon="windows.png" os="windows"/>
  </metadata>
  <memory unit='KiB'>30932992</memory>
  <currentMemory unit='KiB'>30932992</currentMemory>
  <memoryBacking>
    <nosharepages/>
    <locked/>
  </memoryBacking>
  <vcpu placement='static'>6</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='2'/>
    <vcpupin vcpu='1' cpuset='3'/>
    <vcpupin vcpu='2' cpuset='4'/>
    <vcpupin vcpu='3' cpuset='5'/>
    <vcpupin vcpu='4' cpuset='6'/>
    <vcpupin vcpu='5' cpuset='7'/>
    <emulatorpin cpuset='0-1'/>
  </cputune>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-i440fx-2.3'>hvm</type>
  </os>
  <features>
    <acpi/>
    <apic/>
  </features>
  <cpu mode='host-passthrough'>
    <topology sockets='1' cores='6' threads='1'/>
  </cpu>
  <clock offset='localtime'>
    <timer name='rtc' tickpolicy='catchup'/>
    <timer name='pit' tickpolicy='delay'/>
    <timer name='hpet' present='no'/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/bin/qemu-system-x86_64</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source file='/mnt/cache/VMs/Main/vdisk1.img'/>
      <backingStore/>
      <target dev='hdc' bus='virtio'/>
      <boot order='1'/>
      <alias name='virtio-disk2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </disk>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source file='/mnt/disks/WDC_WD10EACS-07D6B0_WD-WCAU43599175-part1/Main/vdisk2.img'/>
      <backingStore/>
      <target dev='hdd' bus='virtio'/>
      <alias name='virtio-disk3'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </disk>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source file='/mnt/disks/WDC_WD10EACS-07D6B0_WD-WCAU43599175-part1/Main/vdisk3.img'/>
      <backingStore/>
      <target dev='hde' bus='virtio'/>
      <alias name='virtio-disk4'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </disk>
    <controller type='usb' index='0'>
      <alias name='usb'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
    </controller>
    <controller type='pci' index='0' model='pci-root'>
      <alias name='pci.0'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <alias name='virtio-serial0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:cc:ba:f4'/>
      <source bridge='br0'/>
      <target dev='vnet0'/>
      <model type='virtio'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </interface>
    <serial type='pty'>
      <source path='/dev/pts/0'/>
      <target port='0'/>
      <alias name='serial0'/>
    </serial>
    <console type='pty' tty='/dev/pts/0'>
      <source path='/dev/pts/0'/>
      <target type='serial' port='0'/>
      <alias name='serial0'/>
    </console>
    <channel type='unix'>
      <source mode='bind' path='/var/lib/libvirt/qemu/channel/target/Main.org.qemu.guest_agent.0'/>
      <target type='virtio' name='org.qemu.guest_agent.0' state='disconnected'/>
      <alias name='channel0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <vendor id='0x0fcf'/>
        <product id='0x1009'/>
        <address bus='5' device='2'/>
      </source>
      <alias name='hostdev0'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <vendor id='0x1b1c'/>
        <product id='0x1b1b'/>
        <address bus='4' device='4'/>
      </source>
      <alias name='hostdev1'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <vendor id='0x04d9'/>
        <product id='0x0167'/>
        <address bus='4' device='3'/>
      </source>
      <alias name='hostdev2'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <vendor id='0x046d'/>
        <product id='0xc01e'/>
        <address bus='4' device='2'/>
      </source>
      <alias name='hostdev3'/>
    </hostdev>
    <memballoon model='virtio'>
      <alias name='balloon0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
    </memballoon>
  </devices>
  <qemu:commandline>
    <qemu:arg value='-device'/>
    <qemu:arg value='ioh3420,bus=pci.0,addr=1c.0,multifunction=on,port=2,chassis=1,id=root.1'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=04:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=04:00.1,bus=root.1,addr=00.1'/>
  </qemu:commandline>
</domain>

 

You need to pin your cores to how the thread pairs are. You can check this under,tools,sytem devices, CPU Thread Pairings.

Where you have done

<emulatorpin cpuset='0-1'/>

you have pinned thread 0 from core 1 and thread 1 from core 2. I am guessing you have a 4 core cpu so you cpu would be like this

0-4  core 1

1-5  core 2

2-6  core 3

3-7  core 4

 

so emulatorpin should be

<emulatorpin cpuset='0,4'/>

 

then you should pin the remaining cores to the vm

  <cputune>
    <vcpupin vcpu='0' cpuset='1'/>
    <vcpupin vcpu='1' cpuset='2'/>
    <vcpupin vcpu='2' cpuset='3'/>
    <vcpupin vcpu='3' cpuset='5'/>
    <vcpupin vcpu='4' cpuset='6'/>
    <vcpupin vcpu='5' cpuset='7'/>
    <emulatorpin cpuset='0,4'/>
  </cputune>

 

 

Also if you are putting the isocpu into your syslinux config then to isolate the 3 cores for the vm it should be

append isolcpus=1,2,3,5,6,7 initrd=/bzroot

 

Hope this helps

OPs post says they have a AMD FX-8350 which is an 8 core without hyper-threading, there are 4 modules and 2 cores per module. I don't know anything more but would it be safe to assume core 0 and 1 share the same module? Or did AMD go the other route with core 0 and 4 etc. Maybe there is some information about what cores unRAID likes to use on AMD CPUs somewhere that might help.

I used UnRAID with an AMD FX850 too, this was a misery for performance and gaming. :(

UnRAID only delivers solid support for Intel.

 

AMD does have virtualization functionality, they need to be supported by the motherboard though.

This isn't AMD's fault, well, I bent the knee and went with a separate server, running UnRAID for the software RAID and plugins.

 

It's still really annoying from Lime Technology to be like this without warning.

I used UnRAID with an AMD FX850 too, this was a misery for performance and gaming. :(

UnRAID only delivers solid support for Intel.

 

AMD does have virtualization functionality, they need to be supported by the motherboard though.

This isn't AMD's fault, well, I bent the knee and went with a separate server, running UnRAID for the software RAID and plugins.

 

It's still really annoying from Lime Technology to be like this without warning.

Limetech doesn't author the KVM virtualization software, they just integrate it. KVM is open source, so anyone can view and work with it. The fact that AMD is not well supported by KVM isn't limetech's fault, they have no control over it.
  • Author

After upgrading to the beta and pinning the CPUs, I got a glimpse, a quick glimpse of what doom should run as, only to have it pulled down to 18 fps

So I'm at a crossroads

Should I

A) give up a dream of having only one tower be both my Rig and Unraid and buy or build a standalone system

or

B) I read the AMD vs intel comment and dug into it a little, should i try running my unraid system with say an i5 instead of the AMD?

What say the experts? or any more ideas to try with what i have now

 

As always thanks in advance

If you have the i5 already then it won't hurt anything to try it and prove a point

  • Author

No, ironically, I sold it a while back

I'll just get one at microcenter or newegg to try or start looking into a standalone system again

Unless than any more tweaks i can try to my existing one

If there is nothing important on your system then upgrade to the latest beta and if not already, create the vm again using ovmf

 

The new beta has a lot of vm enhancements and it has made a huge difference

If there is nothing important on your system then upgrade to the latest beta and if not already, create the vm again using ovmf

 

The new beta has a lot of vm enhancements and it has made a huge difference

 

yes i would definately try ovmf if you havent already. I find i get higher 3d mark scores on my ovmf vms than my seabios ones.

 

Also as bigjme says make sure you try setting hypervisor to on. On unraid 6.19 and previous versions hypervisor will only work on off with nvidea cards and when you create the vm by default will be off. This can have a negative effect on windows vms in some situations. However on the beta versions hypervisor can be run on. However if you have upgraded from a previous version you will have to manually change this to on. Also after upgrade to beta change machine type from i440fx-2.3 to i440fx-2.5

 

I would also recommend running some benchmarks for both cpu and gpu.

If you can run some benchmarks on bare metal. Install windows on a spare harddrive. Then boot from that instead of your usb flash drive.

Run passmark cpu test and 3d mark firestrike and see what you get. Then run the same tests on your vm. Then post them back here.

On both bare metal and vm update your nvidea graphics driver to newest version.

--if you cant run bare metal tests 3dmark firestrike on gtx960 should be around 7000 and passmark cpu score on amd fx8350 should be around 8900

 

(On a side note. I have 2 profiles in my bios, one where all my harddrives are enabled for unraid boot, and another where only my windows hardrive is enabled and all unraid drives are disabled, so i cant break my array from windows when i want to compare baremetal!

On my windows vm i use a 40 gig vdisk on ssd where i install the os. I then passthrough the harddrive i have windows 10 baremetal installed as a second disk for the vm.

That physical disk is split 40 gigs os (where the baremetal windows is installed) then the rest of the hd a 950 gig partition used for programme and data install. So on the baremetal windows i install my games to the 950 gig data partition.

Then on the vm i also install same game or programme onto the same 950 gig data partition.

This way i can have the same games and programmes installed on bare metal and multiple different windows vms using the minimum of hard drive space)

 

 

  • Author

Trying to rebuild a VM using the new BIOS, but hitting a tons of hiccups? Has anyone encountered when windows 10 would randomly shut down for new reason, I have already ruled out thermal and power

Have you checked the event logs for the system and the vm?

  • Author

Sure as shooting I have a memory leak somewhere with Unraid

 

And diving deep into the forums it seems the best way to fix it is to reinstall Unraid

So I'm taking this as an opportunity

I'm going to upgrade my parity drive from 3tb to 4tb  preclearing twice of course ;) (btw can i use a Vm while it's preclearing??)

I'm adding a larger heat sink to the processor...just because I'll have the machine apart

Blowing all my VMs completely away

 

And I'm going to change out my cache drive from a 250 SSD + 120 SSD to two 250s

Unless I should keep the 120 as good measure?

 

This is going to be a long week! but hopefully we'll see a difference because it seems like a lot of people are decapitating hell demons as a smooth 30+fps :D

 

As a note, vms are leaking memory badly right now

 

My one vm has 12gb allocated and I've seen it using up to 18gb (run htop on the server to see)

 

In my server I have an 8gb and 12gb vm and they use around 28gb between them after a few days

As a note, vms are leaking memory badly right now

 

My one vm has 12gb allocated and I've seen it using up to 18gb (run htop on the server to see)

 

In my server I have an 8gb and 12gb vm and they use around 28gb between them after a few days

What version of unraid? 6.1.9 here, and I have VM's in use daily and no sign of a leak. There is qemu memory overhead associated with managing each VM, but that does not grow uncontrollably over time, which is the definition of a leak. My VM's are stable over multiple weeks.

Archived

This topic is now archived and is closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.