[Intel-gfx] glxdemo/glxpixmap doesn't work, please help

Ben Widawsky ben at bwidawsk.net
Tue Aug 21 05:05:51 CEST 2012


On Tue, 21 Aug 2012 00:49:17 +0000
"Liu, Ying2" <ying2.liu at intel.com> wrote:

> We are running mesademo on Ivybridge platform. Glxdemo/glxpixmap
> doesn't work.
>
> If somebody could help us out, that would be great.

Please do not send HTML e-mail to the mailing list.

>
>
>
> The followings are the command dump from ring buffer when glxdemo and
> glxpixmap are runing:
>
>            Address       GPU commands     Meaning
>
>       0x0         7a000003          PIPE_COTROL
>
>       0x4         0x100002          DWORD 1
>
>       0x8         0x21084           DWORD 2
>
>       0xc         0x0               DWORD 3
>
>       0x10        0x0               DWORD 4
>
>       0x14        0x0               DWORD 5
>
>       0x18        0x7a000003        PIPE_COTROL
>
>       0x1c        0x4000            DWORD 1
>
>       0x20        0x21084           DWORD 2
>
>       0x24        0x0               DWORD 3
>
>       0x28        0x0               DWORD 4
>
>       0x2c        0x0               DWORD 5
>
>       0x30        0x7a000003        PIPE_CONTROL
>
>       0x34        0x1c1d            DWORD 1
>
>       0x38        0x21084           DWORD 2
>
>       0x3c        0x0               DWORD 3
>
>       0x40        0x0               DWORD 4
>
>       0x44        0x0               DWORD 5
>
>       0x48        0x18800080        MI_BATCH_BUFFER_START
>
>       0x4c        0x768000          BATCH_BUFFER_OFFSET
>
>       0x50        0x7a000003        PIPE_CONTROL
>
>       0x54        0x100002          DWORD 1
>
>       0x58        0x21084           DWORD 2
>
>       0x5c        0x0               DWORD 3
>
>       0x60        0x0               DWORD 4
>
>       0x64        0x0               DWORD 5
>
>       0x68        0x7a000003        PIPE_CONTROL
>
>       0x6c        0x4000            DWORD 1
>
>       0x70        0x21084           DWORD 2
>
>       0x74        0x0               DWORD 3
>
>       0x78        0x0               DWORD 4
>
>       0x7c        0x0               DWORD 5
>
>
>
> The batch buffer contains 3D render commands and data from glxdemo
> (or glxpixmap).  The GPU hangs at address 0x64.  That means all
> commands in batch buffer are completed but GPU is waiting for some
> flushes to finish in the pipe_control command.  Could you help me
> figure out is there any thing wrong in this command sequence from the
> ring buffer?
>
>
>
> Thank you so much
>
>
>
> Ying
>
>


First, if you have a hang, there should be associated error state. Can
you please submit the error state somewhere.
Here are directions for filing bugs:
http://intellinuxgraphics.org/how_to_report_bug.html

I'm just eyeballing it, so this may be off, but I think you're running
an old driver because I don't think you have the new TLB INVALIDATE
flags in the right places. I'm not sure if the patches went into
-fixes, or -queued. These are pretty recently added and fix some known
issues. 

The following would be answered with the error state, but moving past
that too for a moment... you say you hang at 0x64. You need to be
more specific than that. How do you know you are hung there? At least
the debug registers I am aware of only tell how far the Command
Streamer has fetched, and parsed. The GPU does not execute the commands
synchronously, and so PIPE_CONTROL is used to make sure the commands
are executed and their side effects flushed.

As an example of the above, if you invoke a shader in a batch which has
an infinite loop, your program would hang at the PIPE_CONTROL.

-- 
Ben Widawsky, Intel Open Source Technology Center



More information about the Intel-gfx mailing list