Fedora 28を使用しているのは、それがrx560xを正しく検出する唯一のディストリビューションであるためです。それでも、ディスクリートGPUを使用した場合のパフォーマンスは、統合GPUを使用した場合よりも著しく悪いことに気付きました。
私のマシン構成は、Acer nitro 5 an515-42、8GB RAM、APU ryzen 2500u、vega 8統合グラフィックスカード、RX 560X AMDディスクリートグラフィックスカード)です。
これはlspci
コマンドの出力です
00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 15d0
00:00.2 IOMMU: Advanced Micro Devices, Inc. [AMD] Device 15d1
00:01.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h
(Models 00h-0fh) PCIe Dummy Host Bridge
00:01.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Device 15d3
00:01.6 PCI bridge: Advanced Micro Devices, Inc. [AMD] Device 15d3
00:01.7 PCI bridge: Advanced Micro Devices, Inc. [AMD] Device 15d3
00:08.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Family 17h
(Models 00h-0fh) PCIe Dummy Host Bridge
00:08.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Device 15db
00:08.2 PCI bridge: Advanced Micro Devices, Inc. [AMD] Device 15dc
00:14.0 SMBus: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller
(rev 61)
00:14.3 ISA bridge: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge
(rev 51)
00:18.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 15e8
00:18.1 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 15e9
00:18.2 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 15ea
00:18.3 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 15eb
00:18.4 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 15ec
00:18.5 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 15ed
00:18.6 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 15ee
00:18.7 Host bridge: Advanced Micro Devices, Inc. [AMD] Device 15ef
01:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI]
Baffin [Radeon RX 460/560D / Pro 450/455/460/555/555X/560/560X] (rev
c0)
02:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd.
RTL8411B PCI Express Card Reader (rev 01)
02:00.1 Ethernet controller: Realtek Semiconductor Co., Ltd.
RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 12)
03:00.0 Network controller: Qualcomm Atheros QCA6174 802.11ac Wireless
Network Adapter (rev 32)
04:00.0 VGA compatible controller: Advanced Micro Devices, Inc.
[AMD/ATI] Raven Ridge [Radeon Vega Series / Radeon Vega Mobile Series]
(rev c4)
04:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Device
15de
04:00.2 Encryption controller: Advanced Micro Devices, Inc. [AMD]
Device 15df
04:00.3 USB controller: Advanced Micro Devices, Inc. [AMD] Device 15e0
04:00.4 USB controller: Advanced Micro Devices, Inc. [AMD] Device 15e1
04:00.6 Audio device: Advanced Micro Devices, Inc. [AMD] Device 15e3
05:00.0 SATA controller: Advanced Micro Devices, Inc. [AMD] FCH SATA
Controller [AHCI mode] (rev 61)
xrandr --listdevices
コマンドでわかるように、両方のカードが認識されます
Providers: number : 2
Provider 0: id: 0x7a cap: 0xf, Source Output, Sink Output, Source
Offload, Sink Offload crtcs: 4 outputs: 2 associated providers: 1
name:modesetting
Provider 1: id: 0x44 cap: 0x5, Source Output, Source Offload crtcs: 5
outputs: 0 associated providers: 1 name:modesetting
ただし、ディスクリートGPUを使用してアプリケーションを実行すると、パフォーマンスが低下します。一例が実行されています
DRI_PRIME=0 glmark2
それは統合されたGPUを使用しており、約2000 fpsのパフォーマンスを得ましたが、以下を実行しています:
DRI_PRIME=1 glmark2
約500 fpsのパフォーマンスが得られますが、ディスクリートGPUの場合はそうではありません。
これは、次の出力によって確認できます。
$ DRI_PRIME=0 glxinfo | grep "OpenGL renderer"
OpenGL renderer string: AMD RAVEN (DRM 3.26.0 / 4.18.7-
200.fc28.x86_64, LLVM 6.0.1)
$ DRI_PRIME=1 glxinfo | grep "OpenGL renderer"
OpenGL renderer string: AMD Radeon (TM) RX Graphics (POLARIS11 / DRM
3.26.0 / 4.18.7-200.fc28.x86_64, LLVM 6.0.1)
コマンドdmesg | grep amdgpu
の出力も添付します
[ 2.967193] [drm] amdgpu kernel modesetting enabled.
[ 2.983335] amdgpu 0000:01:00.0: enabling device (0002 -> 0003)
[ 3.049189] amdgpu 0000:01:00.0: VRAM: 4096M 0x000000F400000000 -
0x000000F4FFFFFFFF (4096M used)
[ 3.049190] amdgpu 0000:01:00.0: GTT: 256M 0x0000000000000000 -
0x000000000FFFFFFF
[ 3.049332] [drm] amdgpu: 4096M of VRAM memory ready
[ 3.049333] [drm] amdgpu: 4096M of GTT memory ready.
[ 3.140025] [drm:dc_create [amdgpu]] *ERROR* DC: Number of
connectors is zero!
[ 3.277785] [drm] Initialized amdgpu 3.26.0 20150101 for
0000:01:00.0 on minor 0
[ 3.278060] fb: switching to amdgpudrmfb from EFI VGA
[ 3.278487] amdgpu 0000:04:00.0: VRAM: 1024M 0x000000F400000000 -
0x000000F43FFFFFFF (1024M used)
[ 3.278489] amdgpu 0000:04:00.0: GTT: 1024M 0x000000F500000000 -
0x000000F53FFFFFFF
[ 3.278533] [drm] amdgpu: 1024M of VRAM memory ready
[ 3.278534] [drm] amdgpu: 3072M of GTT memory ready.
[ 3.468197] amdgpu: [powerplay] dpm has been enabled
[ 3.468480] [drm:construct [amdgpu]] *ERROR* construct: Invalid
Connector ObjectID from Adapter Service for connector index:2! type 0
expected 3
[ 3.468545] [drm:construct [amdgpu]] *ERROR* construct: Invalid
Connector ObjectID from Adapter Service for connector index:3! type 0
expected 3
[ 3.525127] fbcon: amdgpudrmfb (fb0) is primary device
[ 3.566614] amdgpu 0000:04:00.0: fb0: amdgpudrmfb frame buffer
device
[ 3.572124] amdgpu 0000:04:00.0: ring 0(gfx) uses VM inv eng 4 on
hub 0
[ 3.572125] amdgpu 0000:04:00.0: ring 1(comp_1.0.0) uses VM inv
eng 5 on hub 0
[ 3.572127] amdgpu 0000:04:00.0: ring 2(comp_1.1.0) uses VM inv
eng 6 on hub 0
[ 3.572128] amdgpu 0000:04:00.0: ring 3(comp_1.2.0) uses VM inv
eng 7 on hub 0
[ 3.572129] amdgpu 0000:04:00.0: ring 4(comp_1.3.0) uses VM inv
eng 8 on hub 0
[ 3.572131] amdgpu 0000:04:00.0: ring 5(comp_1.0.1) uses VM inv
eng 9 on hub 0
[ 3.572132] amdgpu 0000:04:00.0: ring 6(comp_1.1.1) uses VM inv
eng 10 on hub 0
[ 3.572133] amdgpu 0000:04:00.0: ring 7(comp_1.2.1) uses VM inv
eng 11 on hub 0
[ 3.572134] amdgpu 0000:04:00.0: ring 8(comp_1.3.1) uses VM inv
eng 12 on hub 0
[ 3.572136] amdgpu 0000:04:00.0: ring 9(kiq_2.1.0) uses VM inv eng
13 on hub 0
[ 3.572137] amdgpu 0000:04:00.0: ring 10(sdma0) uses VM inv eng 4
on hub 1
[ 3.572138] amdgpu 0000:04:00.0: ring 11(vcn_dec) uses VM inv eng 5 on hub 1
[ 3.572140] amdgpu 0000:04:00.0: ring 12(vcn_enc0) uses VM inv eng 6 on
hub 1
[ 3.572141] amdgpu 0000:04:00.0: ring 13(vcn_enc1) uses VM inv eng 7 on
hub 1
[ 3.579107] [drm] Initialized amdgpu 3.26.0 20150101 for 0000:04:00.0
on minor 1
[ 5.202665] audit: type=1130 audit(1537458205.475:67): pid=1 uid=0
auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0
msg='unit=systemd-backlight@backlight:amdgpu_bl1 comm="systemd"
exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[ 15.013231] amdgpu 0000:01:00.0: GPU pci config reset
[ 19.678936] amdgpu: [powerplay] dpm has been enabled
[ 26.341565] amdgpu 0000:01:00.0: GPU pci config reset
[ 59.533544] amdgpu: [powerplay] dpm has been enabled
[ 65.786402] amdgpu 0000:01:00.0: GPU pci config reset
[ 167.130594] [drm:generic_reg_wait [amdgpu]] *ERROR* REG_WAIT timeout
1us * 10 tries - optc1_lock line:628
[ 167.130677] WARNING: CPU: 3 PID: 1899 at
drivers/gpu/drm/AMD/amdgpu/../display/dc/dc_helper.c:254
generic_reg_wait+0xe7/0x160 [amdgpu]
[ 167.130704] snd_hda_codec irqbypass videobuf2_memops crct10dif_pclmul
btusb videobuf2_v4l2 snd_hda_core btrtl crc32_pclmul btbcm
videobuf2_common btintel ath snd_hwdep bluetooth snd_seq videodev
ghash_clmulni_intel snd_seq_device cfg80211 joydev snd_pcm media
ecdh_generic sp5100_tco snd_timer k10temp i2c_piix4 rtsx_pci_ms rfkill
snd
memstick soundcore wmi video pinctrl_AMD Acer_wireless pcc_cpufreq
acpi_cpufreq amdkfd AMD_iommu_v2 amdgpu chash i2c_algo_bit gpu_sched
drm_kms_helper rtsx_pci_sdmmc mmc_core ttm crc32c_intel serio_raw drm
r8169 rtsx_pci mii i2c_hid
[ 167.130774] RIP: 0010:generic_reg_wait+0xe7/0x160 [amdgpu]
[ 167.130850] optc1_lock+0xa0/0xb0 [amdgpu]
[ 167.130897] dcn10_pipe_control_lock.part.28+0x4a/0x70 [amdgpu]
[ 167.130944] dcn10_apply_ctx_for_surface+0xee/0x1210 [amdgpu]
[ 167.130994] ? hubbub1_verify_allow_pstate_change_high+0xdd/0x180
[amdgpu]
[ 167.131040] ? dcn10_verify_allow_pstate_change_high+0x1d/0x240
[amdgpu]
[ 167.131085] ? dcn10_set_bandwidth+0x275/0x2d0 [amdgpu]
[ 167.131129] dc_commit_state+0x269/0x580 [amdgpu]
[ 167.131171] ? set_freesync_on_streams.part.6+0x4d/0x250 [amdgpu]
[ 167.131213] ? mod_freesync_set_user_enable+0x11f/0x150 [amdgpu]
[ 167.131260] amdgpu_dm_atomic_commit_tail+0x37c/0xd70 [amdgpu]
[ 167.131298] ? amdgpu_bo_pin_restricted+0xd6/0x300 [amdgpu]
[ 167.131441] amdgpu_drm_ioctl+0x49/0x80 [amdgpu]
[ 167.493997] [drm:hwss_edp_wait_for_hpd_ready [amdgpu]] *ERROR*
hwss_edp_wait_for_hpd_ready: wait timed out!
[ 992.949753] amdgpu: [powerplay] dpm has been enabled
[ 999.815690] amdgpu 0000:01:00.0: GPU pci config reset
[ 1097.603835] amdgpu: [powerplay] dpm has been enabled
[ 1105.675220] amdgpu 0000:01:00.0: GPU pci config reset
[ 1138.629401] amdgpu: [powerplay] dpm has been enabled
[ 1157.490886] amdgpu 0000:01:00.0: GPU pci config reset
[ 1167.629670] amdgpu: [powerplay] dpm has been enabled
[ 1188.641935] amdgpu 0000:01:00.0: GPU pci config reset
[ 1237.003085] amdgpu: [powerplay] dpm has been enabled
[ 1243.811986] amdgpu 0000:01:00.0: GPU pci config reset
[ 1287.684082] amdgpu: [powerplay] dpm has been enabled
[ 1332.291087] amdgpu 0000:01:00.0: GPU pci config reset
[ 1511.066683] amdgpu: [powerplay] dpm has been enabled
[ 1520.167710] amdgpu 0000:01:00.0: GPU pci config reset
[ 1605.023196] amdgpu: [powerplay] dpm has been enabled
[ 1611.134239] amdgpu 0000:01:00.0: GPU pci config reset
[ 1930.739920] amdgpu: [powerplay] dpm has been enabled
[ 2105.711880] amdgpu 0000:01:00.0: GPU pci config reset
[ 2440.536121] amdgpu: [powerplay] dpm has been enabled
[ 2447.470108] amdgpu 0000:01:00.0: GPU pci config reset
[ 2453.329765] amdgpu: [powerplay] dpm has been enabled
[ 2489.324912] amdgpu 0000:01:00.0: GPU pci config reset
[ 3732.604342] amdgpu: [powerplay] dpm has been enabled
[ 3744.199117] amdgpu 0000:01:00.0: GPU pci config reset
[ 3747.717927] amdgpu: [powerplay] dpm has been enabled
[ 3900.960469] amdgpu 0000:01:00.0: GPU pci config reset
[ 4876.333471] amdgpu: [powerplay] dpm has been enabled
[ 4883.356467] amdgpu 0000:01:00.0: GPU pci config reset
[ 5597.531838] amdgpu: [powerplay] dpm has been enabled
[ 5604.423794] amdgpu 0000:01:00.0: GPU pci config reset
[ 5606.860546] amdgpu: [powerplay] dpm has been enabled
[ 5613.824859] amdgpu 0000:01:00.0: GPU pci config reset
[ 5619.323471] amdgpu: [powerplay] dpm has been enabled
[ 5625.588060] amdgpu 0000:01:00.0: GPU pci config reset
これに関するどんな助けでも大歓迎です!
編集:カーネルバージョン5.0以降を備えた新しいディストリビューションでは、Tweakを使用して機能しています。
たとえば、Doom 2016を起動してrx560xカードを使用したい場合、次の方法でコンソールからSteamを起動する必要があります。
DRI_PRIME=1 Steam
DRI_PRIME=1
コマンドはSteamにディスクリートGPUを使用するように指示するので、Doomを実行するとそれが使用されます!
Arch Linux(mesa-git、llvm-svn、linux 4.18.12(4.19.xまたはmainline 4.20rcxを実行している場合でも))の場合と同じ問題だと思います。安定したLinuxカーネルは、まだ私たちのGPU用に最適化されていません。幸い、一時的な解決策があります。私は、最新のAMDパッチが適用された linux-AMD-wip-git ( drm-next-4.21-wip )を試しました(これらのような他のカーネルもあります- linux-drm-fixes-git ( drm-fixes )、選択するユーザーによって異なります)。多くのゲームは安定したカーネルではプレイできず、それらのほとんどは、あなたが言っているように、ディスクリートのカーネルよりも統合されたgpuでよりよく実行されます。 linux-AMD-wip-gitは、統合されたものよりもディスクリートなGPUのパフォーマンスを向上させます。ワインとガリウムナイン/ DXVKを介して、World Of Warcraftで最大30 fpsのゲイン。いくつかのゲームは、私がやろうとしたすべてのパフォーマンスがさらに優れています。これらのパッチが安定したLinuxにマージされるのを待つ必要があります。最後に、少なくとも修正されることはわかっています。
編集:私は最新の5.0rc7をテストしました、それは前述のカーネルのように機能します。 5.0で修正される予定です。
@ Haxk20、これらはまだテストしていませんが、テストした結果、それぞれ正常に実行されました。少なくとも、それらが実行されることを期待していた方法です。これらはガリウムナインとDXVKを介してワインを経由しており、Vega 8よりもRX560Xの方が常にパフォーマンスが優れています(ネイティブLinuxゲームから、CS:GOだけをテストし、RX560Xでもパフォーマンスが優れていました)。 Windowsのパフォーマンスの70〜80%かもしれません。 SkyrimはおそらくWindowsのようにうまく動作しませんが、それは理解できると思います。これは、ネイティブLinuxゲームではないためです。また、私にとってゲームではそうではないので、奇妙なのはglxgearsです。私はあなたと同じ結果を得ます、確認できます。まだ問題がありますが、少なくとも、更新ごとに改善されています。
メインラインカーネルリポジトリおよびlinux-AMD-wip-gitに送信されたLinux 4.21パッチを試しましたが、VEGA 8はRX560Xよりもうまく機能しません。あなたが持っているのと同じラップトップで、TerrariaはVEGA 8ではるかに優れており、RX560Xは4.21で、linux-AMD-wip-gitも同様です。 RX560Xは最大60fpsでSkyrimを実行する必要がありますが、それでもlinux-AMD-wip-gitでさえ、Ultraで再生できず、高速度で実行する必要があり、それでも60fpsに到達できません。
glxgearsは、VEGA8では約7000 fps、RX560Xでは3500を報告します。
@Martin Otto rx560xは、より集中的なゲームで確かに優れたプリフォームを実行しますが、実行するのがそれほど難しくないゲームは、vega8で実際に多く実行されます。しかし、これはシングルチャネルRAMが原因です