Le mardi 6 août 2013 01:11:44 vous avez écrit : > Le lundi 5 août 2013 14:58:44 Tom Stellard a écrit : > > From: Tom Stellard <thomas.stell...@amd.com> > > > > The TGSI->LLVM pass for radeonsi preloads constants and relies on LLVM's > > sinking pass to reduce SGPR usage by lowering constant reads to an > > optimal place in the code. However, LLVM's machine sink pass will not > > lower instructions that have been selected from llvm.SI.load.const > > intrinsics, because these instructions do not have a MachineMemOperand, > > which LLVM needs in order to determine whether or not it is safe to sink > > a load. Replacing this intrinsic with a real load instruction will > > enable the sinking optimization and probably a few others. > > > > The other advantages of using pointers are: > > + Reduced register usage (pointers take 2 registers, descriptors take 4) > > + More code sharing with compute > > > > This should also fix some crashes due to the compiler running out of > > registers like in this bug: > > > > https://bugs.freedesktop.org/show_bug.cgi?id=66805 > > > > v2: > > - Mark constant loads as invariant, so the machine sink pass will > > > > actually lower them. > > > > v3: > > - Correctly specify the invariant.load metadata > > > > --- > > Both patches are working properly with Portal, but got these with Dungeon > Defenders (game segfault before the game menu): > > si_state_draw.c:242:si_pipe_shader_ps: Assertion `num_sgprs <= 104' failed. > si_state_draw.c:242:si_pipe_shader_ps: Assertion `num_sgprs <= 104' failed. > Steam: An X Error occurred > X Error of failed request: BadWindow (invalid Window parameter) > Major opcode of failed request: 40 (X_TranslateCoords) > Resource id in failed request: 0x1cfa9cb > Serial number of failed request: 116812 > xerror_handler: X failed, continuing > Game removed: AppID 65800 "Dungeon Defenders", ProcID 1078
And in the kernel log: Aug 06 11:08:12 archMain kernel: DungeonDefender: page allocation failure: order:4, mode:0x10c0d0 Aug 06 11:08:12 archMain kernel: CPU: 5 PID: 15921 Comm: DungeonDefender Tainted: G C 3.11.0-14-agd5f #1 Aug 06 11:08:12 archMain kernel: Hardware name: Gigabyte Technology Co., Ltd. GA-890GPA-UD3H/GA-890GPA-UD3H, BIOS FF 11/24/2010 Aug 06 11:08:12 archMain kernel: 0000000000000000 ffff880076d538e8 ffffffff814d9628 000000000010c0d0 Aug 06 11:08:12 archMain kernel: ffff880076d53970 ffffffff81136b70 00000000ffffffff ffff88022fffab38 Aug 06 11:08:12 archMain kernel: 000000000000000e ffff880076d53940 ffffffff00000040 0000000000000005 Aug 06 11:08:12 archMain kernel: Call Trace: Aug 06 11:08:12 archMain kernel: [<ffffffff814d9628>] dump_stack+0x54/0x8d Aug 06 11:08:12 archMain kernel: [<ffffffff81136b70>] warn_alloc_failed+0xf0/0x140 Aug 06 11:08:12 archMain kernel: [<ffffffff8113af54>] __alloc_pages_nodemask+0x864/0xa70 Aug 06 11:08:12 archMain kernel: [<ffffffff81177529>] alloc_pages_current+0xa9/0x160 Aug 06 11:08:12 archMain kernel: [<ffffffff81135d4e>] __get_free_pages+0xe/0x50 Aug 06 11:08:12 archMain kernel: [<ffffffff8117ea3e>] kmalloc_order_trace+0x2e/0xe0 Aug 06 11:08:12 archMain kernel: [<ffffffff81182576>] __kmalloc+0x266/0x2b0 Aug 06 11:08:12 archMain kernel: [<ffffffffa08a7168>] ? radeon_cs_parser_init+0x178/0x640 [radeon] Aug 06 11:08:12 archMain kernel: [<ffffffffa08a77e9>] ? radeon_cs_ioctl+0xf9/0x9c0 [radeon] Aug 06 11:08:12 archMain kernel: [<ffffffffa08a7811>] radeon_cs_ioctl+0x121/0x9c0 [radeon] Aug 06 11:08:12 archMain kernel: [<ffffffffa06d51a2>] drm_ioctl+0x532/0x660 [drm] Aug 06 11:08:12 archMain kernel: [<ffffffff810c2cc9>] ? do_futex+0x109/0xad0 Aug 06 11:08:12 archMain kernel: [<ffffffff811b2c95>] ? d_free+0x55/0x60 Aug 06 11:08:12 archMain kernel: [<ffffffff8108f0d4>] ? lg_global_unlock+0x44/0x90 Aug 06 11:08:12 archMain kernel: [<ffffffff811bb2d0>] ? mntput_no_expire+0x100/0x150 Aug 06 11:08:12 archMain kernel: [<ffffffffa0930a14>] radeon_kms_compat_ioctl+0x14/0x30 [radeon] Aug 06 11:08:12 archMain kernel: [<ffffffff811ed871>] compat_sys_ioctl+0xd1/0x11f0 Aug 06 11:08:12 archMain kernel: [<ffffffff810c3ab1>] ? compat_SyS_futex+0x71/0x140 Aug 06 11:08:12 archMain kernel: [<ffffffff814e1729>] ? do_device_not_available+0x19/0x20 Aug 06 11:08:12 archMain kernel: [<ffffffff814ea0ac>] cstar_dispatch+0x7/0x21 Aug 06 11:08:12 archMain kernel: Mem-Info: Aug 06 11:08:12 archMain kernel: Node 0 DMA per-cpu: Aug 06 11:08:12 archMain kernel: CPU 0: hi: 0, btch: 1 usd: 0 Aug 06 11:08:12 archMain kernel: CPU 1: hi: 0, btch: 1 usd: 0 Aug 06 11:08:12 archMain kernel: CPU 2: hi: 0, btch: 1 usd: 0 Aug 06 11:08:12 archMain kernel: CPU 3: hi: 0, btch: 1 usd: 0 Aug 06 11:08:12 archMain kernel: CPU 4: hi: 0, btch: 1 usd: 0 Aug 06 11:08:12 archMain kernel: CPU 5: hi: 0, btch: 1 usd: 0 Aug 06 11:08:12 archMain kernel: Node 0 DMA32 per-cpu: Aug 06 11:08:12 archMain kernel: CPU 0: hi: 186, btch: 31 usd: 0 Aug 06 11:08:12 archMain kernel: CPU 1: hi: 186, btch: 31 usd: 0 Aug 06 11:08:12 archMain kernel: CPU 2: hi: 186, btch: 31 usd: 0 Aug 06 11:08:12 archMain kernel: CPU 3: hi: 186, btch: 31 usd: 0 Aug 06 11:08:12 archMain kernel: CPU 4: hi: 186, btch: 31 usd: 0 Aug 06 11:08:12 archMain kernel: CPU 5: hi: 186, btch: 31 usd: 0 Aug 06 11:08:12 archMain kernel: Node 0 Normal per-cpu: Aug 06 11:08:12 archMain kernel: CPU 0: hi: 186, btch: 31 usd: 0 Aug 06 11:08:12 archMain kernel: CPU 1: hi: 186, btch: 31 usd: 0 Aug 06 11:08:12 archMain kernel: CPU 2: hi: 186, btch: 31 usd: 0 Aug 06 11:08:12 archMain kernel: CPU 3: hi: 186, btch: 31 usd: 28 Aug 06 11:08:12 archMain kernel: CPU 4: hi: 186, btch: 31 usd: 0 Aug 06 11:08:12 archMain kernel: CPU 5: hi: 186, btch: 31 usd: 0 Aug 06 11:08:12 archMain kernel: active_anon:1319503 inactive_anon:448794 isolated_anon:0 active_file:13755 inactive_file:13477 isolated_file:0 unevictable:37 dirty:722 writeback:0 unstable:0 free:35116 slab_reclaimable:16819 slab_unreclaimable:24942 mapped:34099 shmem:13836 pagetables:15410 bounce:0 free_cma:0 Aug 06 11:08:12 archMain kernel: Node 0 DMA free:15872kB min:128kB low:160kB high:192kB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:15972kB managed:158 Aug 06 11:08:12 archMain kernel: lowmem_reserve[]: 0 3233 7968 7968 Aug 06 11:08:12 archMain kernel: Node 0 DMA32 free:61444kB min:27372kB low:34212kB high:41056kB active_anon:2058304kB inactive_anon:957380kB active_file:12504kB inactive_file:12020kB unevictable:132kB isolated(anon):0kB isolated(file):0k Aug 06 11:08:12 archMain kernel: lowmem_reserve[]: 0 0 4734 4734 Aug 06 11:08:12 archMain kernel: Node 0 Normal free:63148kB min:40076kB low:50092kB high:60112kB active_anon:3219708kB inactive_anon:837796kB active_file:42516kB inactive_file:41888kB unevictable:16kB isolated(anon):0kB isolated(file):0k Aug 06 11:08:12 archMain kernel: lowmem_reserve[]: 0 0 0 0 Aug 06 11:08:12 archMain kernel: Node 0 DMA: 0*4kB 0*8kB 0*16kB 0*32kB 2*64kB (U) 1*128kB (U) 1*256kB (U) 0*512kB 1*1024kB (U) 1*2048kB (R) 3*4096kB (M) = 15872kB Aug 06 11:08:12 archMain kernel: Node 0 DMA32: 1194*4kB (UEM) 115*8kB (UEM) 3105*16kB (UEM) 202*32kB (M) 1*64kB (M) 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 61904kB Aug 06 11:08:12 archMain kernel: Node 0 Normal: 15004*4kB (UEM) 260*8kB (UM) 65*16kB (UM) 7*32kB (UM) 1*64kB (M) 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 63424kB Aug 06 11:08:12 archMain kernel: Node 0 hugepages_total=0 hugepages_free=0 hugepages_surp=0 hugepages_size=2048kB Aug 06 11:08:12 archMain kernel: 188367 total pagecache pages Aug 06 11:08:12 archMain kernel: 147293 pages in swap cache Aug 06 11:08:12 archMain kernel: Swap cache stats: add 2106427, delete 1959134, find 1134141/1247396 Aug 06 11:08:12 archMain kernel: Free swap = 19736044kB Aug 06 11:08:12 archMain kernel: Total swap = 22557396kB Aug 06 11:08:12 archMain kernel: 2097151 pages RAM Aug 06 11:08:12 archMain kernel: 52600 pages reserved Aug 06 11:08:12 archMain kernel: 1482060 pages shared Aug 06 11:08:12 archMain kernel: 1899474 pages non-shared Aug 06 11:08:12 archMain kernel: [drm:radeon_cs_ioctl] *ERROR* Failed to parse relocation -12! Aug 06 11:08:14 archMain kernel: traps: DungeonDefender[15927] trap int3 ip:f5756ad4 sp:f06fe050 error:0 -- Laurent Carlier ArchLinux Developer http://www.archlinux.org
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev