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