2010/7/21 Rafał Miłecki <zajec5@xxxxxxxxx>: > W dniu 21 lipca 2010 11:30 użytkownik Rafał Miłecki <zajec5@xxxxxxxxx> napisał: >> First bisect try gave me: >> bad: [d8c253f30d0eb975e5c42c31587ef718517f5067] >> drm/radeon: optimize default 3D state for r6xx/r7xx blits >> >> I'm leaving today, not sure if I manage to confirm this before next week. > > I switched back to rebased drm-radeon-testing and confirmed lockup. > Then reverted that single patch and it helped. I'm quite sure it's the > "bad one". > > I use KDE4 with effects enabled, so 3D is enabled here. > > Not time to dig into this problem deeper, leaving now. When you get back can you revert the original and test version 2 of that patch (attached). It puts back the original state, but reorganizes the emit order to reduce the number of dwords. Alex
From 97b2c5f6475c6018638ed41b44b37b001dc4e682 Mon Sep 17 00:00:00 2001 From: Alex Deucher <alexdeucher@xxxxxxxxx> Date: Wed, 21 Jul 2010 13:18:44 -0400 Subject: [PATCH] drm/radeon: optimize default 3D state for r6xx/r7xx blits (v2) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Re-organize emit order to reduce the number of dwords in the default 3D state. This change reduces the default state size from 514 dwords to 340. v2: add back more state, should fix resume failure Reported-by: Rafał Miłecki <zajec5@xxxxxxxxx> Signed-off-by: Alex Deucher <alexdeucher@xxxxxxxxx> --- drivers/gpu/drm/radeon/r600_blit_shaders.c | 568 ++++++---------------------- 1 files changed, 122 insertions(+), 446 deletions(-) diff --git a/drivers/gpu/drm/radeon/r600_blit_shaders.c b/drivers/gpu/drm/radeon/r600_blit_shaders.c index 0271b53..c7b1dae 100644 --- a/drivers/gpu/drm/radeon/r600_blit_shaders.c +++ b/drivers/gpu/drm/radeon/r600_blit_shaders.c @@ -45,9 +45,6 @@ const u32 r6xx_default_state[] = 0x80000000, 0x80000000, 0xc0016800, - 0x00000010, - 0x00008000, - 0xc0016800, 0x00000542, 0x07000003, 0xc0016800, @@ -62,11 +59,9 @@ const u32 r6xx_default_state[] = 0xc0016800, 0x0000060e, 0x01020204, - 0xc0016f00, + 0xc0026f00, 0x00000000, 0x00000000, - 0xc0016f00, - 0x00000001, 0x00000000, 0xc0096900, 0x0000022a, @@ -82,31 +77,28 @@ const u32 r6xx_default_state[] = 0xc0016900, 0x00000004, 0x00000000, - 0xc0016900, + 0xc0026900, 0x0000000a, 0x00000000, - 0xc0016900, - 0x0000000b, 0x00000000, - 0xc0016900, + 0xc0026900, 0x0000010c, 0x00000000, - 0xc0016900, - 0x0000010d, 0x00000000, 0xc0016900, 0x00000200, 0x00000000, - 0xc0016900, + 0xc0026900, 0x00000343, 0x00000060, - 0xc0016900, - 0x00000344, 0x00000040, 0xc0016900, 0x00000351, 0x0000aa00, 0xc0016900, + 0x00000203, + 0x00000210, + 0xc0016900, 0x00000104, 0x00000000, 0xc0016900, @@ -124,237 +116,178 @@ const u32 r6xx_default_state[] = 0x00000000, 0x00000000, 0xc0046900, - 0x0000030c, - 0x01000000, - 0x00000000, - 0x00000000, - 0x00000000, - 0xc0046900, 0x00000048, 0x3f800000, 0x00000000, 0x3f800000, 0x3f800000, - 0xc0016900, - 0x0000008e, - 0x0000000f, - 0xc0016900, - 0x00000080, + 0xc0046900, + 0x0000030c, + 0x01000000, 0x00000000, - 0xc0016900, - 0x00000083, - 0x0000ffff, - 0xc0016900, - 0x00000084, 0x00000000, - 0xc0016900, - 0x00000085, - 0x20002000, - 0xc0016900, - 0x00000086, 0x00000000, 0xc0016900, - 0x00000087, - 0x20002000, - 0xc0016900, - 0x00000088, - 0x00000000, + 0x0000008f, + 0x0000000f, 0xc0016900, - 0x00000089, - 0x20002000, + 0x000001e8, + 0x00000001, 0xc0016900, - 0x0000008a, + 0x00000080, 0x00000000, 0xc0016900, - 0x0000008b, - 0x20002000, + 0x00000083, + 0x0000ffff, 0xc0016900, 0x0000008c, 0x00000000, - 0xc0016900, + 0xc0026900, 0x00000094, 0x80000000, - 0xc0016900, - 0x00000095, 0x20002000, 0xc0026900, 0x000000b4, 0x00000000, 0x3f800000, - 0xc0016900, + 0xc0026900, 0x00000096, 0x80000000, - 0xc0016900, - 0x00000097, 0x20002000, 0xc0026900, 0x000000b6, 0x00000000, 0x3f800000, - 0xc0016900, + 0xc0026900, 0x00000098, 0x80000000, - 0xc0016900, - 0x00000099, 0x20002000, 0xc0026900, 0x000000b8, 0x00000000, 0x3f800000, - 0xc0016900, + 0xc0026900, 0x0000009a, 0x80000000, - 0xc0016900, - 0x0000009b, 0x20002000, 0xc0026900, 0x000000ba, 0x00000000, 0x3f800000, - 0xc0016900, + 0xc0026900, 0x0000009c, 0x80000000, - 0xc0016900, - 0x0000009d, 0x20002000, 0xc0026900, 0x000000bc, 0x00000000, 0x3f800000, - 0xc0016900, + 0xc0026900, 0x0000009e, 0x80000000, - 0xc0016900, - 0x0000009f, 0x20002000, 0xc0026900, 0x000000be, 0x00000000, 0x3f800000, - 0xc0016900, + 0xc0026900, 0x000000a0, 0x80000000, - 0xc0016900, - 0x000000a1, 0x20002000, 0xc0026900, 0x000000c0, 0x00000000, 0x3f800000, - 0xc0016900, + 0xc0026900, 0x000000a2, 0x80000000, - 0xc0016900, - 0x000000a3, 0x20002000, 0xc0026900, 0x000000c2, 0x00000000, 0x3f800000, - 0xc0016900, + 0xc0026900, 0x000000a4, 0x80000000, - 0xc0016900, - 0x000000a5, 0x20002000, 0xc0026900, 0x000000c4, 0x00000000, 0x3f800000, - 0xc0016900, + 0xc0026900, 0x000000a6, 0x80000000, - 0xc0016900, - 0x000000a7, 0x20002000, 0xc0026900, 0x000000c6, 0x00000000, 0x3f800000, - 0xc0016900, + 0xc0026900, 0x000000a8, 0x80000000, - 0xc0016900, - 0x000000a9, 0x20002000, 0xc0026900, 0x000000c8, 0x00000000, 0x3f800000, - 0xc0016900, + 0xc0026900, 0x000000aa, 0x80000000, - 0xc0016900, - 0x000000ab, 0x20002000, 0xc0026900, 0x000000ca, 0x00000000, 0x3f800000, - 0xc0016900, + 0xc0026900, 0x000000ac, 0x80000000, - 0xc0016900, - 0x000000ad, 0x20002000, 0xc0026900, 0x000000cc, 0x00000000, 0x3f800000, - 0xc0016900, + 0xc0026900, 0x000000ae, 0x80000000, - 0xc0016900, - 0x000000af, 0x20002000, 0xc0026900, 0x000000ce, 0x00000000, 0x3f800000, - 0xc0016900, + 0xc0026900, 0x000000b0, 0x80000000, - 0xc0016900, - 0x000000b1, 0x20002000, 0xc0026900, 0x000000d0, 0x00000000, 0x3f800000, - 0xc0016900, + 0xc0026900, 0x000000b2, 0x80000000, - 0xc0016900, - 0x000000b3, 0x20002000, 0xc0026900, 0x000000d2, 0x00000000, 0x3f800000, - 0xc0016900, - 0x00000293, + 0xc0026900, + 0x00000292, + 0x00000000, 0x00004010, - 0xc0016900, + 0xc0096900, 0x00000300, 0x00000000, - 0xc0016900, - 0x00000301, - 0x00000000, - 0xc0016900, - 0x00000312, - 0xffffffff, - 0xc0016900, - 0x00000307, 0x00000000, - 0xc0016900, - 0x00000308, + 0x0000002d, + 0x3f800000, + 0x3f800000, + 0x3f800000, + 0x3f800000, 0x00000000, - 0xc0016900, - 0x00000283, 0x00000000, 0xc0016900, - 0x00000292, - 0x00000000, + 0x00000312, + 0xffffffff, 0xc0066900, 0x0000010f, 0x00000000, @@ -363,68 +296,29 @@ const u32 r6xx_default_state[] = 0x00000000, 0x00000000, 0x00000000, - 0xc0016900, - 0x00000206, - 0x00000000, - 0xc0016900, - 0x00000207, - 0x00000000, - 0xc0016900, - 0x00000208, - 0x00000000, - 0xc0046900, - 0x00000303, - 0x3f800000, - 0x3f800000, - 0x3f800000, - 0x3f800000, - 0xc0016900, - 0x00000205, + 0xc0056900, + 0x00000204, + 0x00010000, 0x00000004, - 0xc0016900, - 0x00000280, + 0x00000100, 0x00000000, - 0xc0016900, - 0x00000281, 0x00000000, - 0xc0016900, + 0xc0066900, 0x0000037e, 0x00000000, - 0xc0016900, - 0x00000382, 0x00000000, - 0xc0016900, - 0x00000380, 0x00000000, - 0xc0016900, - 0x00000383, 0x00000000, - 0xc0016900, - 0x00000381, 0x00000000, - 0xc0016900, - 0x00000282, - 0x00000008, - 0xc0016900, - 0x00000302, - 0x0000002d, - 0xc0016900, - 0x0000037f, 0x00000000, 0xc0016900, 0x000001b2, 0x00000000, - 0xc0016900, + 0xc0046900, 0x000001b6, 0x00000000, - 0xc0016900, - 0x000001b7, 0x00000000, - 0xc0016900, - 0x000001b8, 0x00000000, - 0xc0016900, - 0x000001b9, 0x00000000, 0xc0016900, 0x00000225, @@ -435,62 +329,30 @@ const u32 r6xx_default_state[] = 0xc0016900, 0x00000237, 0x00000000, - 0xc0016900, + 0xc0046900, 0x00000100, 0x00000800, - 0xc0016900, - 0x00000101, 0x00000000, - 0xc0016900, - 0x00000102, 0x00000000, - 0xc0016900, - 0x000002a8, 0x00000000, - 0xc0016900, - 0x000002a9, + 0xc0116900, + 0x00000280, 0x00000000, - 0xc0016900, - 0x00000103, 0x00000000, - 0xc0016900, - 0x00000284, + 0x00000008, + 0x00000000, 0x00000000, - 0xc0016900, - 0x00000290, 0x00000000, - 0xc0016900, - 0x00000285, 0x00000000, - 0xc0016900, - 0x00000286, 0x00000000, - 0xc0016900, - 0x00000287, 0x00000000, - 0xc0016900, - 0x00000288, 0x00000000, - 0xc0016900, - 0x00000289, 0x00000000, - 0xc0016900, - 0x0000028a, 0x00000000, - 0xc0016900, - 0x0000028b, 0x00000000, - 0xc0016900, - 0x0000028c, 0x00000000, - 0xc0016900, - 0x0000028d, 0x00000000, - 0xc0016900, - 0x0000028e, 0x00000000, - 0xc0016900, - 0x0000028f, 0x00000000, 0xc0016900, 0x000002a1, @@ -498,61 +360,37 @@ const u32 r6xx_default_state[] = 0xc0016900, 0x000002a5, 0x00000000, - 0xc0016900, + 0xc0026900, + 0x000002a8, + 0x00000000, + 0x00000000, + 0xc0036900, 0x000002ac, 0x00000000, - 0xc0016900, - 0x000002ad, 0x00000000, - 0xc0016900, - 0x000002ae, 0x00000000, 0xc0016900, 0x000002c8, 0x00000000, 0xc0016900, - 0x00000206, - 0x00000100, - 0xc0016900, - 0x00000204, - 0x00010000, - 0xc0036e00, - 0x00000000, - 0x00000012, - 0x00000000, - 0x00000000, - 0xc0016900, - 0x0000008f, + 0x0000008e, 0x0000000f, 0xc0016900, - 0x000001e8, - 0x00000001, - 0xc0016900, 0x00000202, 0x00cc0000, 0xc0016900, - 0x00000205, - 0x00000244, - 0xc0016900, - 0x00000203, - 0x00000210, - 0xc0016900, 0x000001b1, 0x00000000, 0xc0016900, 0x00000185, 0x00000000, 0xc0016900, + 0x00000191, + 0x00000900, + 0xc0036900, 0x000001b3, 0x00000001, - 0xc0016900, - 0x000001b4, 0x00000000, - 0xc0016900, - 0x00000191, - 0x00000b00, - 0xc0016900, - 0x000001b5, 0x00000000, }; @@ -562,9 +400,6 @@ const u32 r7xx_default_state[] = 0x80000000, 0x80000000, 0xc0016800, - 0x00000010, - 0x00008000, - 0xc0016800, 0x00000542, 0x07000002, 0xc0016800, @@ -579,11 +414,9 @@ const u32 r7xx_default_state[] = 0xc0016800, 0x0000060e, 0x00420204, - 0xc0016f00, + 0xc0026f00, 0x00000000, 0x00000000, - 0xc0016f00, - 0x00000001, 0x00000000, 0xc0096900, 0x0000022a, @@ -599,31 +432,28 @@ const u32 r7xx_default_state[] = 0xc0016900, 0x00000004, 0x00000000, - 0xc0016900, + 0xc0026900, 0x0000000a, 0x00000000, - 0xc0016900, - 0x0000000b, 0x00000000, - 0xc0016900, + 0xc0026900, 0x0000010c, 0x00000000, - 0xc0016900, - 0x0000010d, 0x00000000, 0xc0016900, 0x00000200, 0x00000000, - 0xc0016900, + 0xc0026900, 0x00000343, 0x00000060, - 0xc0016900, - 0x00000344, 0x00000000, 0xc0016900, 0x00000351, 0x0000aa00, 0xc0016900, + 0x00000203, + 0x00000210, + 0xc0016900, 0x00000104, 0x00000000, 0xc0016900, @@ -642,225 +472,166 @@ const u32 r7xx_default_state[] = 0x00000000, 0x00000000, 0xc0016900, - 0x0000008e, + 0x0000008f, 0x0000000f, 0xc0016900, + 0x000001e8, + 0x00000001, + 0xc0016900, 0x00000080, 0x00000000, 0xc0016900, 0x00000083, 0x0000ffff, 0xc0016900, - 0x00000084, - 0x00000000, - 0xc0016900, - 0x00000085, - 0x20002000, - 0xc0016900, - 0x00000086, - 0x00000000, - 0xc0016900, - 0x00000087, - 0x20002000, - 0xc0016900, - 0x00000088, - 0x00000000, - 0xc0016900, - 0x00000089, - 0x20002000, - 0xc0016900, - 0x0000008a, - 0x00000000, - 0xc0016900, - 0x0000008b, - 0x20002000, - 0xc0016900, 0x0000008c, 0xaaaaaaaa, - 0xc0016900, + 0xc0026900, 0x00000094, 0x80000000, - 0xc0016900, - 0x00000095, 0x20002000, 0xc0026900, 0x000000b4, 0x00000000, 0x3f800000, - 0xc0016900, + 0xc0026900, 0x00000096, 0x80000000, - 0xc0016900, - 0x00000097, 0x20002000, 0xc0026900, 0x000000b6, 0x00000000, 0x3f800000, - 0xc0016900, + 0xc0026900, 0x00000098, 0x80000000, - 0xc0016900, - 0x00000099, 0x20002000, 0xc0026900, 0x000000b8, 0x00000000, 0x3f800000, - 0xc0016900, + 0xc0026900, 0x0000009a, 0x80000000, - 0xc0016900, - 0x0000009b, 0x20002000, 0xc0026900, 0x000000ba, 0x00000000, 0x3f800000, - 0xc0016900, + 0xc0026900, 0x0000009c, 0x80000000, - 0xc0016900, - 0x0000009d, 0x20002000, 0xc0026900, 0x000000bc, 0x00000000, 0x3f800000, - 0xc0016900, + 0xc0026900, 0x0000009e, 0x80000000, - 0xc0016900, - 0x0000009f, 0x20002000, 0xc0026900, 0x000000be, 0x00000000, 0x3f800000, - 0xc0016900, + 0xc0026900, 0x000000a0, 0x80000000, - 0xc0016900, - 0x000000a1, 0x20002000, 0xc0026900, 0x000000c0, 0x00000000, 0x3f800000, - 0xc0016900, + 0xc0026900, 0x000000a2, 0x80000000, - 0xc0016900, - 0x000000a3, 0x20002000, 0xc0026900, 0x000000c2, 0x00000000, 0x3f800000, - 0xc0016900, + 0xc0026900, 0x000000a4, 0x80000000, - 0xc0016900, - 0x000000a5, 0x20002000, 0xc0026900, 0x000000c4, 0x00000000, 0x3f800000, - 0xc0016900, + 0xc0026900, 0x000000a6, 0x80000000, - 0xc0016900, - 0x000000a7, 0x20002000, 0xc0026900, 0x000000c6, 0x00000000, 0x3f800000, - 0xc0016900, + 0xc0026900, 0x000000a8, 0x80000000, - 0xc0016900, - 0x000000a9, 0x20002000, 0xc0026900, 0x000000c8, 0x00000000, 0x3f800000, - 0xc0016900, + 0xc0026900, 0x000000aa, 0x80000000, - 0xc0016900, - 0x000000ab, 0x20002000, 0xc0026900, 0x000000ca, 0x00000000, 0x3f800000, - 0xc0016900, + 0xc0026900, 0x000000ac, 0x80000000, - 0xc0016900, - 0x000000ad, 0x20002000, 0xc0026900, 0x000000cc, 0x00000000, 0x3f800000, - 0xc0016900, + 0xc0026900, 0x000000ae, 0x80000000, - 0xc0016900, - 0x000000af, 0x20002000, 0xc0026900, 0x000000ce, 0x00000000, 0x3f800000, - 0xc0016900, + 0xc0026900, 0x000000b0, 0x80000000, - 0xc0016900, - 0x000000b1, 0x20002000, 0xc0026900, 0x000000d0, 0x00000000, 0x3f800000, - 0xc0016900, + 0xc0026900, 0x000000b2, 0x80000000, - 0xc0016900, - 0x000000b3, 0x20002000, 0xc0026900, 0x000000d2, 0x00000000, 0x3f800000, - 0xc0016900, - 0x00000293, + 0xc0026900, + 0x00000292, + 0x00000000, 0x00514000, - 0xc0016900, + 0xc0096900, 0x00000300, 0x00000000, - 0xc0016900, - 0x00000301, - 0x00000000, - 0xc0016900, - 0x00000312, - 0xffffffff, - 0xc0016900, - 0x00000307, 0x00000000, - 0xc0016900, - 0x00000308, + 0x0000002d, + 0x3f800000, + 0x3f800000, + 0x3f800000, + 0x3f800000, 0x00000000, - 0xc0016900, - 0x00000283, 0x00000000, 0xc0016900, - 0x00000292, - 0x00000000, + 0x00000312, + 0xffffffff, 0xc0066900, 0x0000010f, 0x00000000, @@ -869,68 +640,29 @@ const u32 r7xx_default_state[] = 0x00000000, 0x00000000, 0x00000000, - 0xc0016900, - 0x00000206, - 0x00000000, - 0xc0016900, - 0x00000207, - 0x00000000, - 0xc0016900, - 0x00000208, - 0x00000000, - 0xc0046900, - 0x00000303, - 0x3f800000, - 0x3f800000, - 0x3f800000, - 0x3f800000, - 0xc0016900, - 0x00000205, + 0xc0056900, + 0x00000204, + 0x00010000, 0x00000004, - 0xc0016900, - 0x00000280, + 0x00000100, 0x00000000, - 0xc0016900, - 0x00000281, 0x00000000, - 0xc0016900, + 0xc0066900, 0x0000037e, 0x00000000, - 0xc0016900, - 0x00000382, 0x00000000, - 0xc0016900, - 0x00000380, 0x00000000, - 0xc0016900, - 0x00000383, 0x00000000, - 0xc0016900, - 0x00000381, 0x00000000, - 0xc0016900, - 0x00000282, - 0x00000008, - 0xc0016900, - 0x00000302, - 0x0000002d, - 0xc0016900, - 0x0000037f, 0x00000000, 0xc0016900, 0x000001b2, 0x00000001, - 0xc0016900, + 0xc0046900, 0x000001b6, 0x00000000, - 0xc0016900, - 0x000001b7, 0x00000000, - 0xc0016900, - 0x000001b8, 0x00000000, - 0xc0016900, - 0x000001b9, 0x00000000, 0xc0016900, 0x00000225, @@ -941,62 +673,30 @@ const u32 r7xx_default_state[] = 0xc0016900, 0x00000237, 0x00000000, - 0xc0016900, + 0xc0046900, 0x00000100, 0x00000800, - 0xc0016900, - 0x00000101, 0x00000000, - 0xc0016900, - 0x00000102, 0x00000000, - 0xc0016900, - 0x000002a8, 0x00000000, - 0xc0016900, - 0x000002a9, + 0xc0116900, + 0x00000280, 0x00000000, - 0xc0016900, - 0x00000103, 0x00000000, - 0xc0016900, - 0x00000284, + 0x00000008, + 0x00000000, 0x00000000, - 0xc0016900, - 0x00000290, 0x00000000, - 0xc0016900, - 0x00000285, 0x00000000, - 0xc0016900, - 0x00000286, 0x00000000, - 0xc0016900, - 0x00000287, 0x00000000, - 0xc0016900, - 0x00000288, 0x00000000, - 0xc0016900, - 0x00000289, 0x00000000, - 0xc0016900, - 0x0000028a, 0x00000000, - 0xc0016900, - 0x0000028b, 0x00000000, - 0xc0016900, - 0x0000028c, 0x00000000, - 0xc0016900, - 0x0000028d, 0x00000000, - 0xc0016900, - 0x0000028e, 0x00000000, - 0xc0016900, - 0x0000028f, 0x00000000, 0xc0016900, 0x000002a1, @@ -1004,61 +704,37 @@ const u32 r7xx_default_state[] = 0xc0016900, 0x000002a5, 0x00000000, - 0xc0016900, + 0xc0026900, + 0x000002a8, + 0x00000000, + 0x00000000, + 0xc0036900, 0x000002ac, 0x00000000, - 0xc0016900, - 0x000002ad, 0x00000000, - 0xc0016900, - 0x000002ae, 0x00000000, 0xc0016900, 0x000002c8, 0x00000000, 0xc0016900, - 0x00000206, - 0x00000100, - 0xc0016900, - 0x00000204, - 0x00010000, - 0xc0036e00, - 0x00000000, - 0x00000012, - 0x00000000, - 0x00000000, - 0xc0016900, - 0x0000008f, + 0x0000008e, 0x0000000f, 0xc0016900, - 0x000001e8, - 0x00000001, - 0xc0016900, 0x00000202, 0x00cc0000, 0xc0016900, - 0x00000205, - 0x00000244, - 0xc0016900, - 0x00000203, - 0x00000210, - 0xc0016900, 0x000001b1, 0x00000000, 0xc0016900, 0x00000185, 0x00000000, 0xc0016900, + 0x00000191, + 0x00000900, + 0xc0036900, 0x000001b3, 0x00000001, - 0xc0016900, - 0x000001b4, 0x00000000, - 0xc0016900, - 0x00000191, - 0x00000b00, - 0xc0016900, - 0x000001b5, 0x00000000, }; -- 1.7.1.1
_______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel