| Summary: | [945GM] "ESR is 0x00000001, instruction error" after run some GL program using indirect rendering | ||
|---|---|---|---|
| Product: | Mesa | Reporter: | Jie Luo <clotho67> |
| Component: | Drivers/DRI/i915 | Assignee: | Default DRI bug account <dri-devel> |
| Status: | RESOLVED WONTFIX | QA Contact: | |
| Severity: | normal | ||
| Priority: | medium | ||
| Version: | git | ||
| Hardware: | x86 (IA32) | ||
| OS: | Linux (All) | ||
| Whiteboard: | |||
| i915 platform: | i915 features: | ||
| Attachments: |
Xorg.0.log
dmesg |
||
Created attachment 15853 [details]
dmesg
After reading the graphic core document from intel video driver site. I did some debug. Here is the result of dump debug register. This is the regdump of normal state. IPEIR: 0 IPEHR: 0 EIR: 0 ESR: 0 EMR: 0xffff INSTDONE: 0xffc0 INSTPM: 0 MEMMODE: 0x306 INSTPS: 0xf0000 HWSTAM: 0xfffe IER: 0x2 IMR: 0 IIR: 0x20 This is the regdump of the state ESR being set to 0x00000001. IPEIR: 0 IPEHR: 0 EIR: 0 ESR: 0x1 EMR: 0xffff INSTDONE: 0xffc0 INSTPM: 0 MEMMODE: 0x306 INSTPS: 0xf0000 HWSTAM: 0xfffe IER: 0xa2 IMR: 0 IIR: 0x50 According to the document, ESR being set to 0x1 indicate Instruction Error. The document said that IPEHR register contains the header (DWord 0) of the faulting instruction. So the faulting instruction is a MI instruction. IER being set to be 0xa2 means 'Display Plane C Flip Pending' and 'Display Pipe B VBLANK' is enabled. But because I don't have a PIPE C, this means the Instruction Error is caused by a MI_DISPLAY_BUFFER_INFO instruction with a defeatured opcode (PIPE C). Any comments? (In reply to comment #2) > After reading the graphic core document from intel video driver site. I did > some debug. Here is the result of dump debug register. > > This is the regdump of normal state. > IPEIR: 0 IPEHR: 0 > EIR: 0 ESR: 0 EMR: 0xffff > INSTDONE: 0xffc0 INSTPM: 0 > MEMMODE: 0x306 INSTPS: 0xf0000 > HWSTAM: 0xfffe IER: 0x2 IMR: 0 IIR: 0x20 > > This is the regdump of the state ESR being set to 0x00000001. > IPEIR: 0 IPEHR: 0 > EIR: 0 ESR: 0x1 EMR: 0xffff > INSTDONE: 0xffc0 INSTPM: 0 > MEMMODE: 0x306 INSTPS: 0xf0000 > HWSTAM: 0xfffe IER: 0xa2 IMR: 0 IIR: 0x50 > > According to the document, ESR being set to 0x1 indicate Instruction Error. The > document said that IPEHR register contains the header (DWord 0) of the faulting > instruction. So the faulting instruction is a MI instruction. IER being set to > be 0xa2 means 'Display Plane C Flip Pending' and 'Display Pipe B VBLANK' is > enabled. But because I don't have a PIPE C, this means the Instruction Error is > caused by a MI_DISPLAY_BUFFER_INFO instruction with a defeatured opcode (PIPE > C). Any comments? > It seams that my thought above is not correct. The only thing I'm sure is that glXSwapBuffers() may cause this instruction error. My test is done with glxdemo program. With LIBGL_ALWAYS_INDIRECT=1, glxdemo doesn't cause instruction error without call glXSwapBuffers(), but will cause this error with glXSwapBuffers() after some resizing and moving. I give up to track down this problem, it too complicated for me to do this. thanks for reporting this. I'll close this bug since no obvious issue found.. Mass version move, cvs -> git |
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.
Created attachment 15852 [details] Xorg.0.log Bug description: After run LIBGL_ALWAYS_INDIRECT=1 glxgears for some times or start compiz, then restart xserver, this warning will show up in my Xorg.log. Currently it didn't cause any visible problem. But this maybe indicate there is a bug in side xf86-intel-driver/mesa/dri/xserver, so I did this report. System environment: -- chipset: 00:02.0 VGA compatible controller: Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller (rev 03) 00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller (rev 03) -- system architecture: uname -m i686 -- xf86-video-intel: git 55338268bbdbb8c4fbb030adb803e258764e6860 -- xserver: git eabcfce0a68d504d11be9479f09e66f574dd2f21 -- mesa: git 51ad219d6fbcdaa50e2f1b5854dfbbc4b8cab8fc -- drm: inside kernel 2.6.24 -- kernel: 2.4.24 -- Linux distribution: Gentoo -- Machine or mobo model: ThinkPad X60 Reproduce steps: 1. startx 2. run LIBGL_ALWAYS_INDIRECT=1 glxgears 3. restartx This is not 100% hit the bug. 1. startx 2. run LIBGL_ALWAYS_INDIRECT=1 compiz --replace --indirect-rendering --sm-disable ccp 3. restartx This reproduce every time.