Bug 28154

Summary: [r300g] Freeorion is missing some effects (r32g32_sscaled not supported)
Product: Mesa Reporter: Pavel Ondračka <pavel.ondracka>
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   
URL: http://sourceforge.net/projects/freeorion/files/FreeOrion/FreeOrion%20Version%200.3.14/FreeOrion-0.3.14.1-Linux-i386.tar.gz/download
Whiteboard:
i915 platform: i915 features:
Bug Depends on: 28259    
Bug Blocks:    
Attachments: terminal output

Description Pavel Ondračka 2010-05-18 02:37:59 UTC
Created attachment 35723 [details]
terminal output

Game Freeorion crash when clicking fleet icon: 
r300: Bad format r32g32_sscaled in r300_translate_vertex_data_type:419
r300: desc->channel[0].size == 32
r300_state_inlines.h:422:r300_translate_vertex_data_type: Assertion `0' failed.
This works fine with r300c.

01:00.0 VGA compatible controller: ATI Technologies Inc M56P [Radeon Mobility X1600]

mesa: 0f88ce1b0a98c7cacaa0dc53bbbb1f3c379aaa6a
Comment 1 Marek Olšák 2010-05-26 05:14:30 UTC
This vertex format (GL_INT) is not supported by hw and we have to add some kind of fallback for this. You may workaround this bug by typing RADEON_NO_TCL=1 before the executable. This will use software vertex processing, which is slow but should handle all such corner cases.
Comment 2 Pavel Ondračka 2010-05-26 05:45:39 UTC
OK thanks for explanation, but sadly I can't try this workaround now because of bug 28259.
And just a cosmetic thing, would it be possible to add Drivers/Gallium/r300g bugzilla component?
Comment 3 Marek Olšák 2010-05-26 06:53:19 UTC
(In reply to comment #2)
> OK thanks for explanation, but sadly I can't try this workaround now because of
> bug 28259.

I'll fix it once I get from work.

> And just a cosmetic thing, would it be possible to add Drivers/Gallium/r300g
> bugzilla component?

I was suggesting this some time ago and was too lazy to bug admins.
Comment 4 Pavel Ondračka 2010-06-07 06:58:38 UTC
After commit ebe2b546633a3593c54190bb1f2d372d70de14cd (r300g: report vertex format support in is_format_supported) this bug has changed. Now, when the fleet icon is clicked it doesn't crash, however fps is less than one also the whole system responds very slowly. Quick look at dmesg showed this:

[drm:radeon_fence_wait] *ERROR* fence(f2d706c0:0x0000103F) 510ms timeout going to reset GPU
[drm] GA reset succeed (RBBM_STATUS=0x10000140)
[drm] GA_IDLE=0x07FFFFFF
[drm] RB3D_RESET_STATUS=0x00001FD4
[drm] ISYNC_CNTL=0x00000033
[drm] radeon: cp idle (0x10000000)
[drm] radeon: ring at 0x0000000020000000
[drm] ring test succeeded in 16 usecs
[drm] GPU reset succeed (RBBM_STATUS=0x10000140)
[drm:radeon_fence_wait] *ERROR* fence(f2d706c0:0x0000103F) 523ms timeout
[drm:radeon_fence_wait] *ERROR* last signaled fence(0x0000103F)

repeated many times. Btw workaround with RADEON_NO_TCL=1 works, and there is only minor decrease of fps. Changing summary.
Comment 5 Marek Olšák 2010-06-07 07:45:17 UTC
Oh crap.. well... r32g32_sscaled still is not supported by the driver but somehow it passes ~0 as a vertex format through to hw, which in turn locks up the machine. You got lucky, the kernel managed to reset your GPU. What kernel version do you use?
Comment 6 Pavel Ondračka 2010-06-07 09:35:17 UTC
Yeah, GPU reset is a great thing. My kernel: 2.6.33.5-112.fc13
Comment 7 Pavel Ondračka 2010-06-08 02:20:24 UTC
With commit c1d91c490120b11fd1522b94d338e70fb38a82fb things have returned to original behavior (application crash).
Comment 8 Marek Olšák 2010-06-08 19:36:42 UTC
The driver should no longer crash.
Comment 9 Pavel Ondračka 2010-06-09 00:02:58 UTC
(In reply to comment #8)
> The driver should no longer crash.

Yes, no crash now. Still some effects are missing. I will keep this open until r32g32_sscaled software fallback is implemented.
Comment 10 Marek Olšák 2010-06-13 08:55:41 UTC
I've committed the fallback, can you try now?
Comment 11 Pavel Ondračka 2010-06-13 12:11:16 UTC
Everything looks good, closing. Thank you Marek.

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.