Summary: | radeon: The kernel rejected CS when running shader example from SFML library | ||
---|---|---|---|
Product: | Mesa | Reporter: | Laurent carlier <lordheavym> |
Component: | Drivers/Gallium/r600 | Assignee: | Default DRI bug account <dri-devel> |
Status: | RESOLVED FIXED | QA Contact: | |
Severity: | normal | ||
Priority: | medium | CC: | sa, stevenvandenbrandenstift |
Version: | git | ||
Hardware: | x86-64 (AMD64) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
Laurent carlier
2012-05-11 13:57:17 UTC
Same here : creating 2 SFML canvas in a wxWidgets application results in the same problem. Each canvas shows when alone, but the second does not when together. It seems not to refresh, as it sometimes shows other parts of the application in the canvas (title, the other canvas, menus...). In Windows 7, the same code works well. * Application output : lots of : radeon: The kernel rejected CS, see dmesg for more information. * dmesg output : lots of : radeon 0000:01:00.0: texture bo too small (384 480 26 0 -> 737280 have 4096) radeon 0000:01:00.0: alignments 384 1 1 1 [drm:radeon_cs_ib_chunk] *ERROR* Invalid command stream ! * uname -a : Linux perfection 3.3.5-gentoo #1 SMP Wed May 16 19:54:18 CEST 2012 x86_64 Intel(R) Core(TM)2 Duo CPU T6500 @ 2.10GHz GenuineIntel GNU/Linux * glxinfo | grep OpenGL : OpenGL vendor string: X.Org OpenGL renderer string: Gallium 0.4 on AMD RV710 OpenGL version string: 2.1 Mesa 8.0.2 OpenGL shading language version string: 1.20 OpenGL extensions: * latest libdrm in testing portage tree (2.4.33) * SFML-2.0rc //// I'm sorry for my english //// Here is a piece of C++ code which may help in solving the bug : /////////////////////////////////////////////////////////// //////////// Class Game : //////////// Game::Game() : renderWindow(sf::VideoMode(800,600),"") ... void Game::inGame() { ... testMap.createRender(this); ... } void Game::showSprite(sf::Sprite& sprite) { renderWindow.draw(sprite); } /////////// Class Map : /////////// void Map::createRender(Game* parent) { ... parent->showSprite(tilesFiles[nbTileset]); //tilesFiles is an sfml sprite ... } /////////////////////////////////////////////////////////// With this code, the same garbage and errors happen. //// I'm sorry for my english //// I'm sorry, forgot to say that the pointer is the cause of the bug. Directly accessing the Game class with a global variable works perfectly. //// I'm sorry for my english //// I apologize, the bug was not comming from the pointer, but from fact I was loading textures before creating the window. Really sorry. The bug is still present for me when opening two SFML windows, but dmesg output changed : radeon 0000:01:00.0: r600_check_texture_resource:1641 tex base offset (0x11f7000, 0x2000, 4) invalid [drm:radeon_cs_ib_chunk] *ERROR* Invalid command stream ! * uname -a Linux perfection 3.4.4-gentoo #2 SMP Tue Jun 26 14:30:57 CEST 2012 x86_64 Intel(R) Core(TM)2 Duo CPU T6500 @ 2.10GHz GenuineIntel GNU/Linux *glxinfo OpenGL vendor string: X.Org OpenGL renderer string: Gallium 0.4 on AMD RV710 OpenGL version string: 2.1 Mesa 8.1-devel (git-f34764e) OpenGL shading language version string: 1.30 *libdrm, mesa, xf86-video-ati from yesterday's GIT *Sample of code to reproduce the bug ############################################################### #include <SFML/Graphics.hpp> int main() { sf::RenderWindow Bug(sf::VideoMode(800, 600), "SFML bugging window"); sf::RenderWindow App(sf::VideoMode(800, 600), "SFML window"); sf::Texture texture; if (!texture.loadFromFile("cb.bmp")) return EXIT_FAILURE; sf::Sprite sprite(texture); sf::Texture texture2; if (!texture2.loadFromFile("cb.bmp")) return EXIT_FAILURE; sf::Sprite sprite2; sprite2.setTexture(texture2); while (Bug.isOpen() || App.isOpen()) { sf::Event event; sf::Event event2; while (Bug.pollEvent(event2)) { if(event2.type == sf::Event::Closed) Bug.close(); } while (App.pollEvent(event)) { if(event.type == sf::Event::Closed) App.close(); } Bug.clear(); App.clear(); Bug.draw(sprite2); App.draw(sprite); Bug.display(); App.display(); } return EXIT_SUCCESS; } #################################################################### Opening the windows in different threads works. Many thanks for your work. I can confirm this bug with the shader example of SFML 2.0 RC, with an Evergreen gpu (5850) and Mesa 8.0.4. Rendering is messed up and there's a lot of "radeon: The kernel rejected CS, see dmesg for more information.". $ uname -r 3.4.6-1-ARCH $ glxinfo |grep GL OpenGL vendor string: X.Org OpenGL renderer string: Gallium 0.4 on AMD CYPRESS OpenGL version string: 2.1 Mesa 8.0.4 OpenGL shading language version string: 1.20 $ dmesg A lot of : [ 5464.934734] [drm:radeon_cs_parser_relocs] *ERROR* gem object lookup failed 0x19 [ 5464.934739] [drm:radeon_cs_ioctl] *ERROR* Failed to parse relocation -2! Then : [ 6398.513323] radeon 0000:01:00.0: evergreen_cs_track_validate_texture:835 texture bo too small (layer size 286720, offset 0, max layer 1, depth 1, bo size 4096) (896 80) [ 6398.513325] [drm:radeon_cs_ib_chunk] *ERROR* Invalid command stream ! Thanks by advance. Some further data points: - There are no obvious problems when running the test cases with software rendering, only with r600g. - I tried to use apitrace to capture this bug, but in both cases (shader example and the one with two windows) replaying the trace works fine, with no rejected CS. same problem here when trying to run dungeon siege 2 via wine, intro plays fine and then hangs , found a radeon problem to be the cause. dmegs output: [ 7230.283645] radeon 0000:00:01.0: evergreen_cs_track_validate_cb:477 cb[0] bo too small (layer size -2147483648, offset 0, max layer 1, bo size 4096, slice 4194303) [ 7230.283665] radeon 0000:00:01.0: evergreen_cs_track_validate_cb:481 problematic surf: (32 8388608) (0 8 1 0 0 0 0) [ 7230.283675] radeon 0000:00:01.0: evergreen_packet3_check:2096 invalid cmd stream 783 [ 7230.283684] [drm:radeon_cs_ib_chunk] *ERROR* Invalid command stream ! [ 7231.299423] radeon 0000:00:01.0: evergreen_cs_track_validate_cb:477 cb[0] bo too small (layer size -2147483648, offset 0, max layer 1, bo size 4096, slice 4194303) [ 7231.299434] radeon 0000:00:01.0: evergreen_cs_track_validate_cb:481 problematic surf: (32 8388608) (0 8 1 0 0 0 0) [ 7231.299439] radeon 0000:00:01.0: evergreen_packet3_check:2096 invalid cmd stream 783 [ 7231.299444] [drm:radeon_cs_ib_chunk] *ERROR* Invalid command stream ! the wine errors (don't know if helpfull at all) show a directdraw problem ]$ wine ./.wine/drive_c/Program\ Files/2K\ Games/Dungeon\ Siege\ 2\ Broken\ World/DS2VideoConfig.exe fixme:ddraw:DirectDrawEnumerateExA flags 0x00000007 not handled radeon: The kernel rejected CS, see dmesg for more information. fixme:win:EnumDisplayDevicesW ((null),0,0x33e048,0x00000000), stub! radeon: The kernel rejected CS, see dmesg for more information. fixme:win:EnumDisplayDevicesW ((null),0,0x33e114,0x00000000), stub! uname -a: 3.4.6-1-ARCH #1 SMP PREEMPT Fri Jul 20 08:21:26 CEST 2012 x86_64 GNU/Linux glxinfo: OpenGL vendor string: X.Org OpenGL renderer string: Gallium 0.4 on AMD PALM OpenGL version string: 2.1 Mesa 8.0.4 OpenGL shading language version string: 1.20 (In reply to comment #8) > same problem here when trying to run dungeon siege 2 via wine, intro plays fine > and then hangs , found a radeon problem to be the cause. > Keep in mind that you can get these errors does not necessarily indicate the same problem, so it's probably not a good idea to make this bug a dumping ground for rejected CS. (In reply to comment #8) > same problem here when trying to run dungeon siege 2 via wine, intro plays fine > and then hangs , found a radeon problem to be the cause. I tried the demo of the game but couldn't reproduce this. It seems to be working fine both with 8.0.4 and with git master. (In reply to comment #10) > (In reply to comment #8) > > same problem here when trying to run dungeon siege 2 via wine, intro plays fine > > and then hangs , found a radeon problem to be the cause. > > I tried the demo of the game but couldn't reproduce this. It seems to be > working fine both with 8.0.4 and with git master. to be more precise its the dungeon siege 2 broken world extension afther running the video config feature from the game. I will try to reinstall wine and the game to give the exact steps i followed. With lastest drm/mesa/kernel, got a different message in kernel log 418627.980126] radeon 0000:01:00.0: evergreen_cs_track_validate_texture:842 texture bo too small (layer size 256000, offset 0, max layer 1, depth 1, bo size 4096) (800 80) [418627.980130] [drm:radeon_cs_ib_chunk] *ERROR* Invalid command stream ! [418627.983708] radeon 0000:01:00.0: evergreen_cs_track_validate_texture:842 texture bo too small (layer size 256000, offset 0, max layer 1, depth 1, bo size 4096) (800 80) [418627.983718] [drm:radeon_cs_ib_chunk] *ERROR* Invalid command stream ! [418628.007707] radeon 0000:01:00.0: evergreen_cs_track_validate_texture:842 texture bo too small (layer size 256000, offset 0, max layer 1, depth 1, bo size 4096) (800 80) [418628.007716] [drm:radeon_cs_ib_chunk] *ERROR* Invalid command stream ! [418628.016799] radeon 0000:01:00.0: evergreen_cs_track_validate_texture:842 texture bo too small (layer size 256000, offset 0, max layer 1, depth 1, bo size 4096) (800 80) * libdrm-2.4.39 * mesa from git * kernel 2.6rc3 I just updated mesa from git master. It seems to be fixed now. I think commit c96828ecb46b5aee3121a018be365b738c35cbdc fixed it. Not fixed for me with: * libdrm-2.4.39 * mesa from git OpenGL renderer string: Gallium 0.4 on AMD BARTS OpenGL version string: 3.0 Mesa 9.1-devel (git-aa3c2e3) OpenGL shading language version string: 1.30 * kernel 2.6rc6 Linux archMain 3.6.0-1-mainline #1 SMP PREEMPT Mon Sep 17 14:03:55 UTC 2012 x86_64 GNU/Linux .... [163750.003001] radeon 0000:01:00.0: evergreen_cs_track_validate_texture:842 texture bo too small (layer size 256000, offset 0, max layer 1, depth 1, bo size 4096) (800 80) [163750.003006] [drm:radeon_cs_ib_chunk] *ERROR* Invalid command stream ! [163750.019950] radeon 0000:01:00.0: evergreen_cs_track_validate_texture:842 texture bo too small (layer size 256000, offset 0, max layer 1, depth 1, bo size 4096) (800 80) [163750.019960] [drm:radeon_cs_ib_chunk] *ERROR* Invalid command stream ! [163750.042266] radeon 0000:01:00.0: evergreen_cs_track_validate_texture:842 texture bo too small (layer size 256000, offset 0, max layer 1, depth 1, bo size 4096) (800 80) [163750.042277] [drm:radeon_cs_ib_chunk] *ERROR* Invalid command stream ! Are you guys talking about the same sample causing the bug? If not, it's probably different bugs. I can confirm this bug is still there on Evergreen (Radeon 6320 Wrestler, Fusion APU) with SFML shader example and with Mesa 9.0.1. Error message log is unchanged. Hi! I get simmilar errors while using newwest drivers from oibaf repo: # dpkg -s mesa-vdpau-drivers Package: mesa-vdpau-drivers Version: 10.6~git1504200730.c01500~gd~t # dpkg -s xserver-xorg-video-ati Package: xserver-xorg-video-ati Version: 1:7.5.99+sarnex-dri3-git1504031652.5921ba~gd~tubuntu1 # dpkg -s xserver-xorg-video-radeon Package: xserver-xorg-video-radeon Version: 1:7.5.99+sarnex-dri3-git1504031652.5921ba~gd~tubuntu1 Errors (countinously) DMESG: [ 5817.740419] [drm:radeon_cs_parser_relocs [radeon]] *ERROR* gem object lookup failed 0x4e2 [ 5817.740475] [drm:radeon_cs_ioctl [radeon]] *ERROR* Failed to parse relocation -2! AND [ 5845.141137] radeon 0000:00:01.0: evergreen_cs_track_validate_texture:851 texture bo too small (layer size 1310720, offset 0, max layer 1, depth 1, bo size 12288) (640 512) [ 5845.141224] [drm:radeon_cs_ib_chunk [radeon]] *ERROR* Invalid command stream ! AND [ 6049.096770] [drm:radeon_cs_parser_relocs [radeon]] *ERROR* gem object lookup failed 0x480 [ 6049.096812] [drm:radeon_cs_ioctl [radeon]] *ERROR* Failed to parse relocation -2! AND [ 6058.179796] radeon 0000:00:01.0: evergreen_cs_track_validate_texture:851 texture bo too small (layer size 1310720, offset 0, max layer 1, depth 1, bo size 16384) (640 512) [ 6058.179923] [drm:radeon_cs_ib_chunk [radeon]] *ERROR* Invalid command stream ! Xorg.log: Fatal server error: [ 6061.456] (EE) Failed to map vb -2 [ 6061.456] (EE) [ 6061.456] (EE) Please consult the The X.Org Foundation support at http://wiki.x.org for help. [ 6061.456] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information. [ 6061.456] (EE) [ 6061.460] (II) AIGLX: Suspending AIGLX clients for VT switch [ 6061.574] (EE) Server terminated with error (1). Closing log file. Older dmesg: [ 363.540323] [drm:radeon_cs_parser_relocs [radeon]] *ERROR* gem object lookup failed 0x175 [ 363.540371] [drm:radeon_cs_ioctl [radeon]] *ERROR* Failed to parse relocation -2! [ 363.554470] [drm:radeon_cs_parser_relocs [radeon]] *ERROR* gem object lookup failed 0x175 [ 363.554512] [drm:radeon_cs_ioctl [radeon]] *ERROR* Failed to parse relocation -2! [ 388.715542] [drm:radeon_cs_parser_relocs [radeon]] *ERROR* gem object lookup failed 0x25e [ 388.715596] [drm:radeon_cs_ioctl [radeon]] *ERROR* Failed to parse relocation -2! [ 388.720331] [drm:radeon_cs_parser_relocs [radeon]] *ERROR* gem object lookup failed 0x25e [ 388.720366] [drm:radeon_cs_ioctl [radeon]] *ERROR* Failed to parse relocation -2! [ 388.721205] [drm:radeon_cs_parser_relocs [radeon]] *ERROR* gem object lookup failed 0x25e [ 388.721237] [drm:radeon_cs_ioctl [radeon]] *ERROR* Failed to parse relocation -2! [ 406.810691] [drm:radeon_cs_parser_relocs [radeon]] *ERROR* gem object lookup failed 0x17e [ 406.810738] [drm:radeon_cs_ioctl [radeon]] *ERROR* Failed to parse relocation -2! [ 406.834422] [drm:radeon_cs_parser_relocs [radeon]] *ERROR* gem object lookup failed 0x17e [ 406.834464] [drm:radeon_cs_ioctl [radeon]] *ERROR* Failed to parse relocation -2! [ 406.877642] [drm:radeon_cs_parser_relocs [radeon]] *ERROR* gem object lookup failed 0x17e [ 406.877684] [drm:radeon_cs_ioctl [radeon]] *ERROR* Failed to parse relocation -2! [ 406.891198] [drm:radeon_cs_parser_relocs [radeon]] *ERROR* gem object lookup failed 0x17e [ 406.891252] [drm:radeon_cs_ioctl [radeon]] *ERROR* Failed to parse relocation -2! [ 422.396475] [drm:radeon_cs_parser_relocs [radeon]] *ERROR* gem object lookup failed 0x27b [ 422.396524] [drm:radeon_cs_ioctl [radeon]] *ERROR* Failed to parse relocation -2! [ 422.443051] [drm:radeon_cs_parser_relocs [radeon]] *ERROR* gem object lookup failed 0x27b [ 422.443092] [drm:radeon_cs_ioctl [radeon]] *ERROR* Failed to parse relocation -2! [ 422.469227] [drm:radeon_cs_parser_relocs [radeon]] *ERROR* gem object lookup failed 0x27b [ 422.469268] [drm:radeon_cs_ioctl [radeon]] *ERROR* Failed to parse relocation -2! [ 510.323668] [drm:radeon_cs_parser_relocs [radeon]] *ERROR* gem object lookup failed 0x175 [ 510.323706] [drm:radeon_cs_ioctl [radeon]] *ERROR* Failed to parse relocation -2! [ 510.369326] [drm:radeon_cs_parser_relocs [radeon]] *ERROR* gem object lookup failed 0x175 [ 510.369364] [drm:radeon_cs_ioctl [radeon]] *ERROR* Failed to parse relocation -2! [ 551.560837] [drm:radeon_cs_parser_relocs [radeon]] *ERROR* gem object lookup failed 0x175 [ 551.560891] [drm:radeon_cs_ioctl [radeon]] *ERROR* Failed to parse relocation -2! [ 551.609329] [drm:radeon_cs_parser_relocs [radeon]] *ERROR* gem object lookup failed 0x175 [ 551.609399] [drm:radeon_cs_ioctl [radeon]] *ERROR* Failed to parse relocation -2! [ 557.819764] [drm:radeon_cs_parser_relocs [radeon]] *ERROR* gem object lookup failed 0x175 [ 557.819811] [drm:radeon_cs_ioctl [radeon]] *ERROR* Failed to parse relocation -2! [ 557.879473] radeon 0000:00:01.0: No GEM object associated to handle 0x00000175, can't create framebuffer [ 558.348375] [drm:radeon_cs_parser_relocs [radeon]] *ERROR* gem object lookup failed 0x175 [ 558.348407] [drm:radeon_cs_ioctl [radeon]] *ERROR* Failed to parse relocation -2! [ 558.358312] [drm:radeon_cs_parser_relocs [radeon]] *ERROR* gem object lookup failed 0x175 [ 558.358365] [drm:radeon_cs_ioctl [radeon]] *ERROR* Failed to parse relocation -2! lspci: 00:01.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Trinity [Radeon HD 7400G] > glxinfo | grep -i opengl OpenGL vendor string: X.Org OpenGL renderer string: Gallium 0.4 on AMD ARUBA OpenGL core profile version string: 3.3 (Core Profile) Mesa 10.6.0-devel (git-c015008 2015-04-20 trusty-oibaf-ppa) OpenGL core profile shading language version string: 3.30 OpenGL core profile context flags: (none) OpenGL core profile profile mask: core profile OpenGL core profile extensions: OpenGL version string: 3.0 Mesa 10.6.0-devel (git-c015008 2015-04-20 trusty-oibaf-ppa) OpenGL shading language version string: 1.30 OpenGL context flags: (none) OpenGL extensions: OpenGL ES profile version string: OpenGL ES 3.0 Mesa 10.6.0-devel (git-c015008 2015-04-20 trusty-oibaf-ppa) OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00 OpenGL ES profile extensions: > uname -a Linux sammie 4.0.0-040000rc7-generic #201504061936 SMP Mon Apr 6 23:37:35 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux Sorry for spamming, but those errors i got after running phoronix-test-suite and Road Rash (old win95 game) via PlayOnLinux on Wine 1.7.5 (ain't working on newwest dri3 enabled Wine). Second one i can reproduce. But this time i got this at Xorg start: [ 39.498435] [drm:radeon_cs_parser_relocs [radeon]] *ERROR* gem object lookup failed 0xf [ 39.498474] [drm:radeon_cs_ioctl [radeon]] *ERROR* Failed to parse relocation -2! [ 39.515073] radeon 0000:00:01.0: evergreen_cs_track_validate_texture:851 texture bo too small (layer size 4227072, offset 0, max layer 1, depth 1, bo size 45056) (1376 768) [ 39.515147] [drm:radeon_cs_ib_chunk [radeon]] *ERROR* Invalid command stream ! [ 40.097420] radeon 0000:00:01.0: evergreen_cs_track_validate_cb:477 cb[0] bo too small (layer size 4227072, offset 0, max layer 1, bo size 16384, slice 16511) [ 40.097430] radeon 0000:00:01.0: evergreen_cs_track_validate_cb:481 problematic surf: (1376 768) (4 4 1 1 2 2048 2) [ 40.097435] radeon 0000:00:01.0: evergreen_packet3_check:1970 invalid cmd stream 462 [ 40.097501] [drm:radeon_cs_ib_chunk [radeon]] *ERROR* Invalid command stream ! [ 40.097656] radeon 0000:00:01.0: evergreen_cs_track_validate_texture:851 texture bo too small (layer size 4227072, offset 0, max layer 1, depth 1, bo size 16384) (1376 768) [ 40.097687] [drm:radeon_cs_ib_chunk [radeon]] *ERROR* Invalid command stream ! Works fine now with: glxinfo | grep -i opengl OpenGL vendor string: X.Org OpenGL renderer string: Gallium 0.4 on AMD ARUBA OpenGL core profile version string: 3.3 (Core Profile) Mesa 10.6.0-devel (git-9450bd5 2015-04-22 trusty-oibaf-ppa) OpenGL core profile shading language version string: 3.30 OpenGL core profile context flags: (none) OpenGL core profile profile mask: core profile OpenGL core profile extensions: OpenGL version string: 3.0 Mesa 10.6.0-devel (git-9450bd5 2015-04-22 trusty-oibaf-ppa) OpenGL shading language version string: 1.30 OpenGL context flags: (none) OpenGL extensions: OpenGL ES profile version string: OpenGL ES 3.0 Mesa 10.6.0-devel (git-9450bd5 2015-04-22 trusty-oibaf-ppa) OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.00 OpenGL ES profile extensions: Thanks! |
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.