Announcement

Collapse
No announcement yet.

AMDGPU DC Code Improvements Bring Better Page-Flipping

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • #11
    Originally posted by xception View Post

    I also have a R9 290, I use amdgpu.dc=0 on kernel commandline because DC forces my display in 1080p and with it disabled I can get 4K resolution
    See the GCN2 power management clean up patch and use the AMD wip kernel: https://cgit.freedesktop.org/~agd5f/...ae8e1bd0623b07

    Comment


    • #12
      What is this? *Finally* freesync over hdmi?? Awesome!

      Comment


      • #13
        Originally posted by Azpegath View Post
        I'm running it on a R290, so I guess I'm an outlier
        AFAIK AMDGPU only officially supports GCN 1.2 or newer and the R290/390 is a GCN 1.1 part. When you use something that's technically, but not officially, supported issues like this are more or less to be expected. Having been out of production for several years there isn't even a business case for bothering to extend support and all of the work required to do so.
        "Why should I want to make anything up? Life's bad enough as it is without wanting to invent any more of it."

        Comment


        • #14
          Originally posted by tildearrow View Post
          I have a question only partially related to page-flipping.

          Is it possible to disable Adaptive-VSync in Mesa? It seems to be always on and I've been unable to find a way to disable it... (by this I do not mean Adaptive-Sync AKA FreeSync, but rather the technique that disables VSync if the game is running too slow by not waiting for VBlank when swapping but rather doing so on the next command)
          That doesn't sound like any functionality Mesa has. Not sure what exactly you mean by "disables VSync if the game is running too slow by not waiting for VBlank when swapping but rather doing so on the next command" though, maybe try elaborating on the symptoms.

          Comment


          • #15
            Originally posted by L_A_G View Post

            AFAIK AMDGPU only officially supports GCN 1.2 or newer and the R290/390 is a GCN 1.1 part. When you use something that's technically, but not officially, supported issues like this are more or less to be expected. Having been out of production for several years there isn't even a business case for bothering to extend support and all of the work required to do so.
            Yes, that is my take on it as well. I'm glad that dc seems to work quite well at least.

            Comment


            • #16
              Hopefully AMD will make some sort of official control center to configure displays some day like there is on Windows. Getting multiple monitors to work and work at the correct refresh rates, color bit depths, and resolutions is like playing musical chairs with DP and HDMI cables.

              *plug in display*
              "Did it work? No. Not this time."
              *unplug display, plug in display*
              "Did it work? It's the right resolution this time at least but it's cropping half the logical desktop space. Try again I guess."
              *unplug display, plug in display*
              "Did it work? Nope, just black this time."
              *and so on*
              Last edited by Particle; 01-23-2019, 11:01 AM.

              Comment


              • #17
                Originally posted by Azpegath View Post

                I read through your bug report, and perhaps you are able to speed up the process by bisecting the issue. I know it's a hassle to constantly rebuild the kernel and reboot (I've done it once, and am not longing to do it again), but it will help the devs a lot. Have you tried bisecting before, or would you like some info on it?
                Thanks but for the moment I have 2 easy workarounds available and I just have no time to learn bisecting. Kids, job, kids, sleep, kids, job, kids, sleep - you know the drill

                Comment


                • #18
                  Originally posted by xception View Post

                  I believe it's vblank_mode=0 before the commandline.
                  just "glxgears" as command gives me "301 frames in 5.0 seconds = 60.001 FPS"
                  while "vblank_mode=0 glxgears" outputs after a warning "101447 frames in 5.0 seconds = 20289.314 FPS"
                  There is a second switch in xorg.conf, for the old radeon driver it was:
                  Option "swapbufferswait" "0"
                  I don't know what the equivalent is for amdgpu or if it's needed at all
                  you can add vblank_mode=0 to your environment so all applications start in that mode if you prefer
                  vblank_mode=0 disables Vsync...
                  What I want is true VSync without Adaptive.

                  Comment


                  • #19
                    Originally posted by tildearrow View Post

                    vblank_mode=0 disables Vsync...
                    What I want is true VSync without Adaptive.
                    Have you tried adding Option "VariableRefresh" "off" to your 10-amdgpu.conf ? Located in usr/share/xorg.conf.d
                    My monitor is too old and doesn't support freesync bad things happen with openmw if it's set to auto or on

                    Code:
                    [ 1721.038384] [drm:drm_atomic_helper_wait_for_dependencies [drm_kms_helper]] *ERROR* [CRTC:47:crtc-0] flip_done timed out
                    [ 1731.278388] [drm:drm_atomic_helper_wait_for_dependencies [drm_kms_helper]] *ERROR* [CONNECTOR:59:DP-1] flip_done timed out
                    [ 1741.518282] [drm:drm_atomic_helper_wait_for_dependencies [drm_kms_helper]] *ERROR* [PLANE:45:plane-5] flip_done timed out
                    [ 1751.758165] [drm:drm_atomic_helper_wait_for_dependencies [drm_kms_helper]] *ERROR* [PLANE:46:plane-6] flip_done timed out
                    [ 1751.758370] [drm:amdgpu_dm_atomic_commit_tail [amdgpu]] *ERROR* amdgpu_dm_commit_planes: acrtc 0, already busy
                    [ 1751.758630] WARNING: CPU: 2 PID: 1387 at drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:4859 amdgpu_dm_atomic_commit_tail+0xa0d/0xba0 [amdgpu]
                    [ 1751.758632] Modules linked in: rfcomm cmac bnep binfmt_misc nls_iso8859_1 pktcdvd edac_mce_amd snd_hda_codec_realtek btusb snd_hda_codec_generic kvm_amd ledtrig_audio ccp snd_
                    hda_codec_hdmi btrtl eeepc_wmi btbcm kvm btintel snd_hda_intel snd_seq_dummy bluetooth asus_wmi snd_hda_codec irqbypass snd_seq_oss joydev input_leds sparse_keymap video snd_hda_
                    core snd_seq_midi snd_hwdep ecdh_generic wmi_bmof snd_seq_midi_event snd_pcm snd_rawmidi k10temp fam15h_power snd_seq snd_seq_device snd_timer snd soundcore ip6t_REJECT nf_reject
                    _ipv6 mac_hid nf_log_ipv6 xt_hl ip6t_rt ipt_REJECT nf_reject_ipv4 nf_log_ipv4 nf_log_common xt_LOG xt_limit xt_tcpudp xt_addrtype xt_conntrack ip6table_filter ip6_tables nf_connt
                    rack_netbios_ns nf_conntrack_broadcast nf_nat_ftp nf_nat nf_conntrack_ftp sch_fq_codel nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 iptable_filter parport_pc bpfilter ppdev lp parp
                    ort ip_tables x_tables autofs4 btrfs zstd_compress algif_skcipher af_alg dm_crypt raid10 raid456 async_raid6_recov
                    [ 1751.758686]  async_memcpy async_pq async_xor async_tx xor raid6_pq libcrc32c raid1 raid0 multipath linear dm_mirror dm_region_hash dm_log hid_generic usbhid hid amdgpu crct10d
                    if_pclmul crc32_pclmul ghash_clmulni_intel chash amd_iommu_v2 aesni_intel gpu_sched i2c_algo_bit ttm drm_kms_helper syscopyarea aes_x86_64 sysfillrect crypto_simd sysimgblt crypt
                    d fb_sys_fops mxm_wmi glue_helper drm e1000e i2c_piix4 ahci libahci wmi
                    [ 1751.758720] CPU: 2 PID: 1387 Comm: InputThread Not tainted 5.0.0-994-lowlatency #201901171655
                    [ 1751.758722] Hardware name: To be filled by O.E.M. To be filled by O.E.M./CROSSHAIR V FORMULA-Z, BIOS 2201 03/23/2015
                    [ 1751.758889] RIP: 0010:amdgpu_dm_atomic_commit_tail+0xa0d/0xba0 [amdgpu]
                    [ 1751.758892] Code: 49 8b 47 08 e9 0e fc ff ff 41 8b 96 d0 04 00 00 48 c7 c6 50 21 5a c0 48 c7 c7 66 62 60 c0 48 89 85 48 ff ff ff e8 03 1c d7 ff <0f> 0b 48 8b 85 48 ff ff ff 4c
                    8b 5d a8 48 8b 4d b0 e9 3f fb ff ff
                    [ 1751.758894] RSP: 0018:ffffb61802b6b918 EFLAGS: 00010046
                    [ 1751.758897] RAX: 0000000000000000 RBX: 0000000000000005 RCX: 0000000000000006
                    [ 1751.758899] RDX: 0000000000000000 RSI: 0000000000000082 RDI: ffff8f4f2ea96440
                    [ 1751.758901] RBP: ffffb61802b6b9d0 R08: 0000000000000509 R09: ffffffff9a161474
                    [ 1751.758903] R10: 0000000000000072 R11: ffffb61802b6b720 R12: ffff8f4f1d466800
                    [ 1751.758905] R13: ffff8f4f202a0f00 R14: ffff8f4f1d466800 R15: ffff8f4f25e24b00
                    [ 1751.758908] FS:  00007f9260b3f700(0000) GS:ffff8f4f2ea80000(0000) knlGS:0000000000000000
                    [ 1751.758910] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
                    [ 1751.758912] CR2: 0000218920d2d000 CR3: 0000000423f56000 CR4: 00000000000406e0
                    [ 1751.758915] Call Trace:
                    [ 1751.758938]  commit_tail+0x42/0x70 [drm_kms_helper]
                    [ 1751.758957]  drm_atomic_helper_commit+0x113/0x120 [drm_kms_helper]
                    [ 1751.759123]  amdgpu_dm_atomic_commit+0x8d/0xa0 [amdgpu]
                    [ 1751.759166]  drm_atomic_commit+0x4a/0x50 [drm]
                    [ 1751.759184]  drm_atomic_helper_update_plane+0xe9/0x100 [drm_kms_helper]
                    [ 1751.759217]  __setplane_atomic+0xd6/0x120 [drm]
                    [ 1751.759251]  drm_mode_cursor_universal+0x145/0x270 [drm]
                    [ 1751.759287]  drm_mode_cursor_common+0x18f/0x200 [drm]
                    [ 1751.759292]  ? __switch_to_asm+0x40/0x70
                    [ 1751.759326]  ? drm_mode_setplane+0x2a0/0x2a0 [drm]
                    [ 1751.759359]  drm_mode_cursor_ioctl+0x4a/0x60 [drm]
                    [ 1751.759389]  drm_ioctl_kernel+0xad/0xf0 [drm]
                    [ 1751.759420]  drm_ioctl+0x233/0x410 [drm]
                    [ 1751.759453]  ? drm_mode_setplane+0x2a0/0x2a0 [drm]
                    [ 1751.759460]  ? dput.part.33+0x56/0x140
                    [ 1751.759584]  amdgpu_drm_ioctl+0x4f/0x80 [amdgpu]
                    [ 1751.759590]  do_vfs_ioctl+0xa9/0x640
                    [ 1751.759595]  ? __fget+0x73/0xa0
                    [ 1751.759600]  ksys_ioctl+0x67/0x90
                    [ 1751.759605]  __x64_sys_ioctl+0x1a/0x20
                    [ 1751.759610]  do_syscall_64+0x5a/0x110
                    [ 1751.759613]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
                    [ 1751.759617] RIP: 0033:0x7f9293dee5d7
                    [ 1751.759620] Code: b3 66 90 48 8b 05 b1 48 2d 00 64 c7 00 26 00 00 00 48 c7 c0 ff ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 b8 10 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48
                    8b 0d 81 48 2d 00 f7 d8 64 89 01 48
                    [ 1751.759622] RSP: 002b:00007f9260b3d348 EFLAGS: 00003246 ORIG_RAX: 0000000000000010
                    [ 1751.759625] RAX: ffffffffffffffda RBX: 000055ce5bc60ee0 RCX: 00007f9293dee5d7
                    [ 1751.759627] RDX: 00007f9260b3d380 RSI: 00000000c01c64a3 RDI: 0000000000000017
                    [ 1751.759629] RBP: 00007f9260b3d380 R08: 0000000000000001 R09: 0000000000000780
                    [ 1751.759630] R10: 000055ce5c1456a0 R11: 0000000000003246 R12: 00000000c01c64a3
                    [ 1751.759632] R13: 0000000000000017 R14: 000000000000042d R15: 0000000000000000
                    [ 1751.759801] WARNING: CPU: 2 PID: 1387 at drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:4859 amdgpu_dm_atomic_commit_tail+0xa0d/0xba0 [amdgpu]
                    [ 1751.759803] ---[ end trace 5e694e35567e4fe9 ]---
                    [ 1770.701897] [drm:drm_atomic_helper_wait_for_dependencies [drm_kms_helper]] *ERROR* [CRTC:47:crtc-0] flip_done timed out
                    [ 1780.941714] [drm:drm_atomic_helper_wait_for_dependencies [drm_kms_helper]] *ERROR* [CONNECTOR:59:DP-1] flip_done timed out
                    [ 1791.181507] [drm:drm_atomic_helper_wait_for_dependencies [drm_kms_helper]] *ERROR* [PLANE:45:plane-5] flip_done timed out
                    [ 1801.421313] [drm:drm_atomic_helper_wait_for_dependencies [drm_kms_helper]] *ERROR* [PLANE:46:plane-6] flip_done timed out
                    [ 1801.421512] [drm:amdgpu_dm_atomic_commit_tail [amdgpu]] *ERROR* amdgpu_dm_commit_planes: acrtc 0, already busy
                    [ 1801.421772] WARNING: CPU: 0 PID: 1387 at drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:4859 amdgpu_dm_atomic_commit_tail+0xa0d/0xba0 [amdgpu]
                    [ 1801.421774] Modules linked in: rfcomm cmac bnep binfmt_misc nls_iso8859_1 pktcdvd edac_mce_amd snd_hda_codec_realtek btusb snd_hda_codec_generic kvm_amd ledtrig_audio ccp snd_
                    hda_codec_hdmi btrtl eeepc_wmi btbcm kvm btintel snd_hda_intel snd_seq_dummy bluetooth asus_wmi snd_hda_codec irqbypass snd_seq_oss joydev input_leds sparse_keymap video snd_hda_
                    core snd_seq_midi snd_hwdep ecdh_generic wmi_bmof snd_seq_midi_event snd_pcm snd_rawmidi k10temp fam15h_power snd_seq snd_seq_device snd_timer snd soundcore ip6t_REJECT nf_reject
                    _ipv6 mac_hid nf_log_ipv6 xt_hl ip6t_rt ipt_REJECT nf_reject_ipv4 nf_log_ipv4 nf_log_common xt_LOG xt_limit xt_tcpudp xt_addrtype xt_conntrack ip6table_filter ip6_tables nf_connt
                    rack_netbios_ns nf_conntrack_broadcast nf_nat_ftp nf_nat nf_conntrack_ftp sch_fq_codel nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 iptable_filter parport_pc bpfilter ppdev lp parp
                    ort ip_tables x_tables autofs4 btrfs zstd_compress algif_skcipher af_alg dm_crypt raid10 raid456 async_raid6_recov
                    [ 1801.421829]  async_memcpy async_pq async_xor async_tx xor raid6_pq libcrc32c raid1 raid0 multipath linear dm_mirror dm_region_hash dm_log hid_generic usbhid hid amdgpu crct10d
                    if_pclmul crc32_pclmul ghash_clmulni_intel chash amd_iommu_v2 aesni_intel gpu_sched i2c_algo_bit ttm drm_kms_helper syscopyarea aes_x86_64 sysfillrect crypto_simd sysimgblt crypt
                    d fb_sys_fops mxm_wmi glue_helper drm e1000e i2c_piix4 ahci libahci wmi
                    [ 1801.421863] CPU: 0 PID: 1387 Comm: InputThread Tainted: G        W         5.0.0-994-lowlatency #201901171655
                    [ 1801.421865] Hardware name: To be filled by O.E.M. To be filled by O.E.M./CROSSHAIR V FORMULA-Z, BIOS 2201 03/23/2015
                    [ 1801.422030] RIP: 0010:amdgpu_dm_atomic_commit_tail+0xa0d/0xba0 [amdgpu]
                    [ 1801.422034] Code: 49 8b 47 08 e9 0e fc ff ff 41 8b 96 d0 04 00 00 48 c7 c6 50 21 5a c0 48 c7 c7 66 62 60 c0 48 89 85 48 ff ff ff e8 03 1c d7 ff <0f> 0b 48 8b 85 48 ff ff ff 4c
                    8b 5d a8 48 8b 4d b0 e9 3f fb ff ff
                    [ 1801.422036] RSP: 0018:ffffb61802b6b918 EFLAGS: 00010046
                    [ 1801.422039] RAX: 0000000000000000 RBX: 0000000000000005 RCX: 0000000000000006
                    [ 1801.422041] RDX: 0000000000000000 RSI: 0000000000000082 RDI: ffff8f4f2ea16440
                    [ 1801.422043] RBP: ffffb61802b6b9d0 R08: 000000000000053f R09: ffffffff9a162a64
                    [ 1801.422045] R10: 0000000000000072 R11: ffffb61802b6b720 R12: ffff8f4f1d466800
                    [ 1801.422047] R13: ffff8f4f202a0f00 R14: ffff8f4f1d466800 R15: ffff8f4f25e24280
                    [ 1801.422050] FS:  00007f9260b3f700(0000) GS:ffff8f4f2ea00000(0000) knlGS:0000000000000000
                    [ 1801.422052] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
                    [ 1801.422054] CR2: 00003e4897d48000 CR3: 0000000423f56000 CR4: 00000000000406f0
                    [ 1801.422056] Call Trace:
                    [ 1801.422080]  commit_tail+0x42/0x70 [drm_kms_helper]
                    [ 1801.422098]  drm_atomic_helper_commit+0x113/0x120 [drm_kms_helper]
                    [ 1801.422263]  amdgpu_dm_atomic_commit+0x8d/0xa0 [amdgpu]
                    [ 1801.422305]  drm_atomic_commit+0x4a/0x50 [drm]
                    [ 1801.422323]  drm_atomic_helper_update_plane+0xe9/0x100 [drm_kms_helper]
                    [ 1801.422356]  __setplane_atomic+0xd6/0x120 [drm]
                    [ 1801.422390]  drm_mode_cursor_universal+0x145/0x270 [drm]
                    [ 1801.422426]  drm_mode_cursor_common+0x18f/0x200 [drm]
                    [ 1801.422431]  ? __switch_to_asm+0x40/0x70
                    [ 1801.422465]  ? drm_mode_setplane+0x2a0/0x2a0 [drm]
                    [ 1801.422498]  drm_mode_cursor_ioctl+0x4a/0x60 [drm]
                    [ 1801.422528]  drm_ioctl_kernel+0xad/0xf0 [drm]
                    [ 1801.422559]  drm_ioctl+0x233/0x410 [drm]
                    [ 1801.422591]  ? drm_mode_setplane+0x2a0/0x2a0 [drm]
                    [ 1801.422598]  ? dput.part.33+0x56/0x140
                    [ 1801.422722]  amdgpu_drm_ioctl+0x4f/0x80 [amdgpu]
                    [ 1801.422728]  do_vfs_ioctl+0xa9/0x640
                    [ 1801.422733]  ? __fget+0x73/0xa0
                    [ 1801.422738]  ksys_ioctl+0x67/0x90
                    [ 1801.422743]  __x64_sys_ioctl+0x1a/0x20
                    [ 1801.422748]  do_syscall_64+0x5a/0x110
                    [ 1801.422751]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
                    [ 1801.422754] RIP: 0033:0x7f9293dee5d7
                    [ 1801.422758] Code: b3 66 90 48 8b 05 b1 48 2d 00 64 c7 00 26 00 00 00 48 c7 c0 ff ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 b8 10 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48
                    8b 0d 81 48 2d 00 f7 d8 64 89 01 48
                    [ 1801.422760] RSP: 002b:00007f9260b3d348 EFLAGS: 00003246 ORIG_RAX: 0000000000000010
                    [ 1801.422763] RAX: ffffffffffffffda RBX: 000055ce5bc60ee0 RCX: 00007f9293dee5d7
                    [ 1801.422765] RDX: 00007f9260b3d380 RSI: 00000000c01c64a3 RDI: 0000000000000017
                    [ 1801.422767] RBP: 00007f9260b3d380 R08: 0000000000000001 R09: 0000000000000780
                    [ 1801.422768] R10: 000055ce5c1456a0 R11: 0000000000003246 R12: 00000000c01c64a3
                    [ 1801.422770] R13: 0000000000000017 R14: 0000000000000511 R15: 0000000000000000
                    [ 1801.422940] WARNING: CPU: 0 PID: 1387 at drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:4859 amdgpu_dm_atomic_commit_tail+0xa0d/0xba0 [amdgpu]
                    [ 1801.422942] ---[ end trace 5e694e35567e4fea ]---

                    Comment


                    • #20
                      Woa, tested merging 5.1-wip+this patch series into my torvalds 5.0.0-rc3 build. Took me some effort to get the merging right but seems to be working fine. I'm pretty sure I have less input latency than before now, and vsynctester stopped spiking when I switch windows, really cool improvements. Sad that its too late for 5.0, I'll have to hack kernels around until 5.1 as always :P

                      edit: freesync is also smoother at least in unigine-valley

                      Comment

                      Working...
                      X