Re: [Radeon RV280] radeon_cs_gem.c:181: cs_gem_write_reloc: Assertion »boi->space_accounted« failed, core dumped

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Does the attached libdrm patch fix the issue for you?

Marek

On Fri, Aug 1, 2014 at 1:16 PM, Marek Olšák <maraeo@xxxxxxxxx> wrote:
> Not in this case. You added a fail path to a function which isn't
> supposed to fail under these circumstances. No wonder Mesa couldn't
> cope with it. It really has nothing to do with your original issue.
>
> Marek
>
> On Fri, Aug 1, 2014 at 9:25 AM, Jochen Rollwagen <joro-2013@xxxxxxxxxxx> wrote:
>> I've built the latest libdrm and replaced the assertion in radeon_cs_gem.c.
>> with
>>
>> if (!boi->space_accounted) return -EINVAL;
>>
>> I now get the following crash in the cutscene:
>>
>>
>> CS section size missmatch start at (r200_state_init.c,ctx_emit_cs,487) 28 vs
>> 24
>> CS section end at (r200_state_init.c,ctx_emit_cs,520)
>> CS section size missmatch start at (r200_state_init.c,tex_emit_mm,572) 13 vs
>> 11
>> CS section end at (r200_state_init.c,tex_emit_mm,588)
>> drmRadeonCmdBuffer: -22. Kernel failed to parse or rejected command stream.
>> See dmesg for more info.
>>
>>
>> dmesg output is:
>>
>> [ 1232.744676] [drm:radeon_cs_packet_next_reloc] *ERROR* No packet3 for
>> relocati
>> on for packet at 34.
>> [ 1232.744691] [drm] ib[34]=0x00000712
>> [ 1232.744694] [drm] ib[35]=0x00010340
>> [ 1232.744698] [drm:r200_packet0_check] *ERROR* No reloc for ib[33]=0x1C40
>> [ 1232.744701] [drm] ib[32]=0x00000710
>> [ 1232.744704] [drm] ib[33]=0x00000000
>> [ 1232.744707] [drm:radeon_cs_ib_chunk] *ERROR* Invalid command stream !
>>
>> So it's really a mesa bug :-(
>>
>>
>>
>> Am 27.07.2014 um 14:47 schrieb Marek Olšák:
>>>
>>> I think the problem is the driver hasn't called
>>>
>>> radeon_cs_space_add_persistent_bo.
>>>
>>> Marek
>>>
>>> On Fri, Jul 25, 2014 at 6:32 PM, Jochen Rollwagen <joro-2013@xxxxxxxxxxx>
>>> wrote:
>>>>
>>>> I've recently ported the peopsxgl OpenGL-GPU-Plugin for the pcsx
>>>> Playstation1 Emulator to the Powerpc-architecture. When running certain
>>>> games (for instance "Vagrant Stories") during longer cut-scenes i get a
>>>> reproducible crash of the radeon drm driver (i.e. it always crashes at
>>>> certain points in the scene) with the following message (in german):
>>>>
>>>> pcsx: radeon_cs_gem.c:181: cs_gem_write_reloc: Zusicherung
>>>> »boi->space_accounted« nicht erfüllt.
>>>> Abgebrochen (Speicherabzug geschrieben)
>>>>
>>>> This happens with all the latest 3.10, 3.12 and 3.14 kernels.
>>>>
>>>> Other than that i'm running the latest xorg-ati driver, libdrm and mesa
>>>> from
>>>> git on a Mac Mini G4 (PowerPC).
>>>>
>>>> OpenGL vendor string: Mesa Project
>>>> OpenGL renderer string: Mesa DRI R200 (RV280 5962)  TCL DRI2
>>>> OpenGL version string: 1.3 Mesa 10.1.6 (git-42f86ef)
>>>>
>>>> I guess the issue is memory/vm/swap-related since the machine only has 1
>>>> gb
>>>> RAM. The GPU has 64 MB VRAM.
>>>>
>>>> Any ideas what i could do to avoid these crashes ?
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> dri-devel mailing list
>>>> dri-devel@xxxxxxxxxxxxxxxxxxxxx
>>>> http://lists.freedesktop.org/mailman/listinfo/dri-devel
>>
>>
From a9410a10d2b0986b93d76d1e14c545d64c4e70bd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= <marek.olsak@xxxxxxx>
Date: Fri, 1 Aug 2014 13:30:50 +0200
Subject: [PATCH] radeon: allow write_reloc with unaccounted buffers to cope
 with Mesa bug

---
 radeon/radeon_cs_gem.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/radeon/radeon_cs_gem.c b/radeon/radeon_cs_gem.c
index b87c6b1..bcfa05b 100644
--- a/radeon/radeon_cs_gem.c
+++ b/radeon/radeon_cs_gem.c
@@ -178,6 +178,15 @@ static int cs_gem_write_reloc(struct radeon_cs_int *cs,
     uint32_t idx;
     unsigned i;
 
+    if (!boi->space_accounted) {
+        struct radeon_cs *rcs = (struct radeon_cs*)cs;
+        int r;
+
+        radeon_cs_space_add_persistent_bo(rcs, bo, read_domain, write_domain);
+        r = radeon_cs_space_check(rcs);
+        if (r)
+            return r;
+    }
     assert(boi->space_accounted);
 
     /* check domains */
-- 
1.9.1

_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/dri-devel

[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux