Bug 29435

Summary: [r300g] general/draw-vertices-half-float causes GPU reset
Product: Mesa Reporter: Priit Laes (irc: plaes) <plaes>
Component: Drivers/DRI/r300Assignee: Default DRI bug account <dri-devel>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium    
Version: git   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Priit Laes (irc: plaes) 2010-08-07 08:26:19 UTC
Chipset: "ATI Radeon Mobility X300 (M22) 5460 (PCIE)" (ChipID = 0x5460)
Kernel 2.6.35
Mesa: GIT master: d64a119c28376d7ce069dcec044ff9af7f93ff9c
xf86-video-ati: git-master

After experiencing some hangups while checking out Enemy Territory, I decided to see whether running piglit can shed some light:

Test error:
[snip] 
Returncode: 234
Errors: drmRadeonCmdBuffer: -22. Kernel failed to parse or rejected command stream. See dmesg for more info.

Output:
Half vertices - components: 2, stride: 4, offset: 0
Probe at (5,5)
  Expected: 1.000000 1.000000 1.000000
  Observed: 0.200000 0.200000 0.200000
Half vertices - components: 2, stride: 6, offset: 0
Probe at (25,5)
  Expected: 1.000000 1.000000 1.000000
  Observed: 0.200000 0.200000 0.200000
Half vertices - components: 3, stride: 6, offset: 0
Probe at (45,5)
  Expected: 1.000000 1.000000 1.000000
  Observed: 0.200000 0.200000 0.200000
Half vertices - components: 2, stride: 8, offset: 0
[/snip]

dmesg output:
[  610.411286] fbo-nodepth-tes[2341]: segfault at 0 ip (null) sp bf9107bc error 4 in fbo-nodepth-test[8048000+5000]
[  610.608101] fbo-nostencil-t[2342]: segfault at 0 ip (null) sp bfdbee1c error 4 in fbo-nostencil-test[8048000+5000]
[  616.843041] radeon 0000:01:00.0: GPU lockup CP stall for more than 1039msec
[  616.843049] ------------[ cut here ]------------
[  616.843064] WARNING: at drivers/gpu/drm/radeon/radeon_fence.c:235 radeon_fence_wait+0x1e6/0x292()
[  616.843072] Hardware name: Latitude D610                   
[  616.843078] GPU lockup (waiting for 0x00001B75 last fence id 0x00001B6C)
[  616.843084] Modules linked in: michael_mic lib80211_crypt_tkip ipw2200 libipw lib80211 tg3 libphy
[  616.843106] Pid: 1811, comm: X Not tainted 2.6.35 #27
[  616.843112] Call Trace:
[  616.843126]  [<c1026cbe>] ? warn_slowpath_common+0x6a/0x7b
[  616.843135]  [<c11e0d1f>] ? radeon_fence_wait+0x1e6/0x292
[  616.843145]  [<c1026d35>] ? warn_slowpath_fmt+0x28/0x2c
[  616.843155]  [<c11e0d1f>] ? radeon_fence_wait+0x1e6/0x292
[  616.843167]  [<c1036f8c>] ? autoremove_wake_function+0x0/0x29
[  616.843179]  [<c11bd648>] ? ttm_bo_wait+0xb3/0x144
[  616.843190]  [<c11f06da>] ? radeon_bo_wait+0x8b/0xbc
[  616.843200]  [<c11f0732>] ? radeon_gem_wait_idle_ioctl+0x27/0x50
[  616.843211]  [<c11b1219>] ? drm_ioctl+0x1cf/0x27a
[  616.843220]  [<c11f070b>] ? radeon_gem_wait_idle_ioctl+0x0/0x50
[  616.843234]  [<c1008507>] ? restore_i387_fxsave+0x4c/0x5c
[  616.843245]  [<c11b104a>] ? drm_ioctl+0x0/0x27a
[  616.843254]  [<c108e1b7>] ? vfs_ioctl+0x1c/0x7d
[  616.843263]  [<c108e6c7>] ? do_vfs_ioctl+0x41d/0x456
[  616.843273]  [<c1008668>] ? restore_i387_xstate+0x151/0x181
[  616.843283]  [<c107566e>] ? mmap_region+0x32a/0x3fe
[  616.843294]  [<c1001dbe>] ? restore_sigcontext+0xba/0xd1
[  616.843303]  [<c108e72d>] ? sys_ioctl+0x2d/0x44
[  616.843311]  [<c1002690>] ? sysenter_do_call+0x12/0x26
[  616.843319] ---[ end trace 6829bf43dc6dc1c1 ]---
[  617.022262] radeon: wait for empty RBBM fifo failed ! Bad things might happen.
[  617.193310] Failed to wait GUI idle while programming pipes. Bad things might happen.
[  617.194332] radeon 0000:01:00.0: (r300_asic_reset:415) RBBM_STATUS=0x8411C100
[  617.280197] [drm:radeon_ib_schedule] *ERROR* radeon: couldn't schedule IB(10).
[  617.280201] [drm:radeon_cs_ioctl] *ERROR* Faild to schedule IB !
[  617.706819] radeon 0000:01:00.0: (r300_asic_reset:434) RBBM_STATUS=0x80010140
[  618.207820] radeon 0000:01:00.0: (r300_asic_reset:446) RBBM_STATUS=0x00000140
[  618.207846] radeon 0000:01:00.0: restoring config space at offset 0x1 (was 0x180403, writing 0x100407)
[  618.207877] radeon 0000:01:00.0: GPU reset succeed
[  618.207880] radeon 0000:01:00.0: GPU reset succeed
[  618.207887] radeon 0000:01:00.0: f7172e00 unpin not necessary
[  618.337886] [drm] radeon: 1 quad pipes, 1 Z pipes initialized.
[  618.339509] [drm] PCIE GART of 512M enabled (table at 0xD0040000).
[  618.339543] [drm] radeon: ring at 0x00000000B0000000
[  618.339564] [drm] ring test succeeded in 1 usecs
[  618.339576] [drm] ib test succeeded in 1 usecs
[  625.348761] stencil-twoside[2390]: segfault at 0 ip (null) sp bf9740cc error 4 in stencil-twoside[8048000+6000]


PS. Should I file separate bugs for other less serious piglit  test errors?
Comment 1 Marek Olšák 2010-08-07 08:43:59 UTC
Please post your glxinfo. Is this really r300g? I thought I disabled ARB_half_float_vertex on r3xx. The draw-vertices-half-float test should have been skipped.
Comment 2 Priit Laes (irc: plaes) 2010-08-07 08:58:55 UTC
(In reply to comment #1)
> Please post your glxinfo. Is this really r300g? I thought I disabled
> ARB_half_float_vertex on r3xx. The draw-vertices-half-float test should have
> been skipped.

Ouch.. nice catch. I still was running the classic version of the driver :S
Comment 3 Marek Olšák 2010-08-07 09:15:33 UTC
I have fixed the hardlock in r300c in mesa git.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.