* Epson13806 performances on Pb1100 @ 2004-12-08 16:06 Karl Lessard 2004-12-08 16:40 ` Dan Malek 2004-12-08 18:05 ` Pete Popov 0 siblings, 2 replies; 7+ messages in thread From: Karl Lessard @ 2004-12-08 16:06 UTC (permalink / raw) To: linux-mips; +Cc: ppopov Hi all, I'm currently developping on a Pb1100 alchemy board, and I use the Epson 13806 graphic controller connected to the Au1100 static bus. I've written a driver for it for kernel 2.6.x, and update the Au1100 code so I can access 0xE 0000 0000 address range. Everything works fine, but for the speed. It seems that accessing the chip is too slow for having high-graphic performances. The LCLK is set at 49500KHz, as the memory clock inside the chip. I know it's a bit overclocked, but a lower LCLK freezes my system. I would like to know if anyone have encountered this performance problem in the past with this chip. Thanks in advance, Karl ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Epson13806 performances on Pb1100 2004-12-08 16:06 Epson13806 performances on Pb1100 Karl Lessard @ 2004-12-08 16:40 ` Dan Malek 2004-12-08 18:05 ` Pete Popov 1 sibling, 0 replies; 7+ messages in thread From: Dan Malek @ 2004-12-08 16:40 UTC (permalink / raw) To: Karl Lessard; +Cc: linux-mips, ppopov On Dec 8, 2004, at 11:06 AM, Karl Lessard wrote: > Everything works fine, but for the speed. It seems that accessing the > chip is > too slow for having high-graphic performances. A couple of things. First, the Epson controller is obsolete, I don't know how much time is worth spending on the software. If you don't already have a system in production using it, there isn't much sense spending time working with it. Second, with the on-chip controller, I have experimented with some different cache modes for the frame buffer access. I don't know if this applicable to the external 13806, but you could try. Alchemy has an application note on this, I believe, but in any case, here is what I put into the au1100fb.c, au1100fb_mmap() function: pgprot_val(vma->vm_page_prot) &= ~_CACHE_MASK; pgprot_val(vma->vm_page_prot) |= _CACHE_CACHABLE_CUW; A similar kind of update is in the current CVS tree. Fujitsu has a bunch of nice high performance embedded graphics controllers for many different applications. -- Dan ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Epson13806 performances on Pb1100 2004-12-08 16:06 Epson13806 performances on Pb1100 Karl Lessard 2004-12-08 16:40 ` Dan Malek @ 2004-12-08 18:05 ` Pete Popov 2004-12-08 19:38 ` Karl Lessard 1 sibling, 1 reply; 7+ messages in thread From: Pete Popov @ 2004-12-08 18:05 UTC (permalink / raw) To: Karl Lessard; +Cc: linux-mips Karl Lessard wrote: > Hi all, > > I'm currently developping on a Pb1100 alchemy board, and I use the Epson > 13806 graphic controller connected to the Au1100 static bus. I've written a > driver for it for kernel 2.6.x, and update the Au1100 code so I can access > 0xE 0000 0000 address range. > > Everything works fine, but for the speed. It seems that accessing the chip is > too slow for having high-graphic performances. The LCLK is set at 49500KHz, > as the memory clock inside the chip. I know it's a bit overclocked, but a > lower LCLK freezes my system. I've used the chip with the 2.4 kernel/driver to run X and some apps. I'm not sure what you mean by high performance -- does X run at reasonable speeds? Pete > I would like to know if anyone have encountered this performance problem in > the past with this chip. > > Thanks in advance, > Karl > > ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Epson13806 performances on Pb1100 2004-12-08 18:05 ` Pete Popov @ 2004-12-08 19:38 ` Karl Lessard 2004-12-08 20:37 ` Michael Kelly 0 siblings, 1 reply; 7+ messages in thread From: Karl Lessard @ 2004-12-08 19:38 UTC (permalink / raw) To: Pete Popov; +Cc: linux-mips > > I've used the chip with the 2.4 kernel/driver to run X and some > apps. I'm not sure what you mean by high performance -- does X run > at reasonable speeds? I'm not running X, I've just runned a little application that writes a number of vertical lines (so pixel per pixel) in a backbuffer and then blit its content to the screen. Here's an example of one frame: __u8 *dest = (__u8*)back_buffer; memset(dest, 0, back_buffer_size); /* clear back buffer */ for (i = 0; i < 500; i++) { /* 500 lines */ for (j = 0; j >= 100; j--) { /* of 100 pixel each */ dest[(j * fb_width) + i] = 0xFF; } } memcpy(front_buffer, dest, back_buffer_size); /* copy back_buffer to front */ Benching with 500 frames, I obtain a rate of 8 fps with the backbuffer residing in video memory. The framerate increase to 31 fps when the backbuffer is in system memory! And if I do the same test using the Au1100 lcd controller (which has its front and back buffer in system memory), It goes up to 66 fps... I don't know what's going on when I try to access the 13806 controller, but it's really too slow. And using the blit engine don't helps much. The static controller seems to be set correctly. By the way, the DRAM is refreshing at 96Hz, and my CRT display is refreshing at 66Hz. Any Idea? By the way Dan, I've tried the cache trick, but no luck. Thanks a lot, Karl > > Pete > > > I would like to know if anyone have encountered this performance problem > > in the past with this chip. > > > > Thanks in advance, > > Karl ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Epson13806 performances on Pb1100 2004-12-08 19:38 ` Karl Lessard @ 2004-12-08 20:37 ` Michael Kelly 2004-12-08 21:17 ` Karl Lessard 0 siblings, 1 reply; 7+ messages in thread From: Michael Kelly @ 2004-12-08 20:37 UTC (permalink / raw) To: Karl Lessard; +Cc: Pete Popov, linux-mips KArl, There is a bug (they might call it a feature) that causes the Au1100 to perform two accesses when talking to 16-bit peripherals. The first access is the real one, while the second access has the byte enables off. But, this means every access creates two cycles on the bus. I am sure of this bug on the standard peripheral bus, and I am pretty sure it still exists when talking via the LCD signals, since the same bus controller is used. MIchael At 02:38 PM 12/8/2004, Karl Lessard wrote: > > > > I've used the chip with the 2.4 kernel/driver to run X and some > > apps. I'm not sure what you mean by high performance -- does X run > > at reasonable speeds? > >I'm not running X, I've just runned a little application that writes a number >of vertical lines (so pixel per pixel) in a backbuffer and then blit its >content to the screen. Here's an example of one frame: > >__u8 *dest = (__u8*)back_buffer; >memset(dest, 0, back_buffer_size); /* clear back buffer */ > >for (i = 0; i < 500; i++) { /* 500 lines */ > for (j = 0; j >= 100; j--) { /* of 100 pixel each */ > dest[(j * fb_width) + i] = 0xFF; > } >} > >memcpy(front_buffer, dest, back_buffer_size); /* copy back_buffer to front */ > > >Benching with 500 frames, I obtain a rate of 8 fps with the backbuffer >residing in video memory. The framerate increase to 31 fps when the backbuffer >is in system memory! And if I do the same test using the Au1100 lcd >controller (which has its front and back buffer in system memory), It goes up >to 66 fps... > >I don't know what's going on when I try to access the 13806 controller, but >it's really too slow. And using the blit engine don't helps much. The static >controller seems to be set correctly. By the way, the DRAM is refreshing at >96Hz, and my CRT display is refreshing at 66Hz. > >Any Idea? By the way Dan, I've tried the cache trick, but no luck. > >Thanks a lot, >Karl > > > > > > Pete > > > > > I would like to know if anyone have encountered this performance problem > > > in the past with this chip. > > > > > > Thanks in advance, > > > Karl Michael J. Kelly VP Engineering/Marketing Cogent Computer Systems, Inc. 1130 Ten Rod Road Suite A-201 North Kingstown, RI 02852 tel:401-295-6505 fax:401-295-6507 www.cogcomp.com alternate email: mkelly6505@hotmail.com ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Epson13806 performances on Pb1100 2004-12-08 20:37 ` Michael Kelly @ 2004-12-08 21:17 ` Karl Lessard 2004-12-08 22:35 ` Eric DeVolder 0 siblings, 1 reply; 7+ messages in thread From: Karl Lessard @ 2004-12-08 21:17 UTC (permalink / raw) To: Michael Kelly; +Cc: Pete Popov, linux-mips On December 8, 2004 03:37 pm, Michael Kelly wrote: > KArl, > > There is a bug (they might call it a feature) that causes the Au1100 > to perform two accesses when talking to 16-bit peripherals. The > first access is the real one, while the second access has the byte > enables off. But, this means every access creates two cycles on > the bus. > > I am sure of this bug on the standard peripheral bus, and I am pretty > sure it still exists when talking via the LCD signals, since the same > bus controller is used. > > MIchael Well, that may cause a problem of course. Do you mean that writing 8-bit or 16-bits data through a chip select configured for 16-bit data bus will send in fact two write signals? If it is the case, then I obviously need to send 32-bit data for every access, since the second write will be used to send the second word (I suppose). Do I understand well? > > At 02:38 PM 12/8/2004, Karl Lessard wrote: > > > I've used the chip with the 2.4 kernel/driver to run X and some > > > apps. I'm not sure what you mean by high performance -- does X run > > > at reasonable speeds? > > > >I'm not running X, I've just runned a little application that writes a > > number of vertical lines (so pixel per pixel) in a backbuffer and then > > blit its content to the screen. Here's an example of one frame: > > > >__u8 *dest = (__u8*)back_buffer; > >memset(dest, 0, back_buffer_size); /* clear back buffer */ > > > >for (i = 0; i < 500; i++) { /* 500 lines */ > > for (j = 0; j >= 100; j--) { /* of 100 pixel each */ > > dest[(j * fb_width) + i] = 0xFF; > > } > >} > > > >memcpy(front_buffer, dest, back_buffer_size); /* copy back_buffer to > > front */ > > > > > >Benching with 500 frames, I obtain a rate of 8 fps with the backbuffer > >residing in video memory. The framerate increase to 31 fps when the > > backbuffer is in system memory! And if I do the same test using the > > Au1100 lcd controller (which has its front and back buffer in system > > memory), It goes up to 66 fps... > > > >I don't know what's going on when I try to access the 13806 controller, > > but it's really too slow. And using the blit engine don't helps much. The > > static controller seems to be set correctly. By the way, the DRAM is > > refreshing at 96Hz, and my CRT display is refreshing at 66Hz. > > > >Any Idea? By the way Dan, I've tried the cache trick, but no luck. > > > >Thanks a lot, > >Karl > > > > > Pete > > > > > > > I would like to know if anyone have encountered this performance > > > > problem in the past with this chip. > > > > > > > > Thanks in advance, > > > > Karl > > Michael J. Kelly > VP Engineering/Marketing > Cogent Computer Systems, Inc. > 1130 Ten Rod Road > Suite A-201 > North Kingstown, RI 02852 > tel:401-295-6505 fax:401-295-6507 > www.cogcomp.com > alternate email: mkelly6505@hotmail.com ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Epson13806 performances on Pb1100 2004-12-08 21:17 ` Karl Lessard @ 2004-12-08 22:35 ` Eric DeVolder 0 siblings, 0 replies; 7+ messages in thread From: Eric DeVolder @ 2004-12-08 22:35 UTC (permalink / raw) To: Karl Lessard; +Cc: Michael Kelly, Pete Popov, linux-mips [-- Attachment #1: Type: text/plain, Size: 3772 bytes --] The SED13506 device is horribly slow (it stalls the processor an enormous amount of time) while it accesses external DRAM for screen updates. The SED13806 has integrated SDRAM and performs better than the SED13506, but not nearly as well as a PCI graphics card. If you were to place a scope on the EWAIT# signal, you'll see it asserted a significant amount of time during Au accesses to the SED13806; simply put, this is the single largest factor in the poor performace you are observing. Your empirical tests verify this. As for the bug/feature, the controller always performs two beats for 16-bit chip-selects, so it is best to utilize both beats by performing 32-bit accesses rather than 8 or 16 (in which case one beat is not utilized). Karl Lessard wrote: >On December 8, 2004 03:37 pm, Michael Kelly wrote: > > >>KArl, >> >>There is a bug (they might call it a feature) that causes the Au1100 >>to perform two accesses when talking to 16-bit peripherals. The >>first access is the real one, while the second access has the byte >>enables off. But, this means every access creates two cycles on >>the bus. >> >>I am sure of this bug on the standard peripheral bus, and I am pretty >>sure it still exists when talking via the LCD signals, since the same >>bus controller is used. >> >>MIchael >> >> > >Well, that may cause a problem of course. Do you mean that writing 8-bit or >16-bits data through a chip select configured for 16-bit data bus will send >in fact two write signals? > >If it is the case, then I obviously need to send 32-bit data for every >access, since the second write will be used to send the second word (I >suppose). Do I understand well? > > > >>At 02:38 PM 12/8/2004, Karl Lessard wrote: >> >> >>>>I've used the chip with the 2.4 kernel/driver to run X and some >>>>apps. I'm not sure what you mean by high performance -- does X run >>>>at reasonable speeds? >>>> >>>> >>>I'm not running X, I've just runned a little application that writes a >>>number of vertical lines (so pixel per pixel) in a backbuffer and then >>>blit its content to the screen. Here's an example of one frame: >>> >>>__u8 *dest = (__u8*)back_buffer; >>>memset(dest, 0, back_buffer_size); /* clear back buffer */ >>> >>>for (i = 0; i < 500; i++) { /* 500 lines */ >>> for (j = 0; j >= 100; j--) { /* of 100 pixel each */ >>> dest[(j * fb_width) + i] = 0xFF; >>> } >>>} >>> >>>memcpy(front_buffer, dest, back_buffer_size); /* copy back_buffer to >>>front */ >>> >>> >>>Benching with 500 frames, I obtain a rate of 8 fps with the backbuffer >>>residing in video memory. The framerate increase to 31 fps when the >>>backbuffer is in system memory! And if I do the same test using the >>>Au1100 lcd controller (which has its front and back buffer in system >>>memory), It goes up to 66 fps... >>> >>>I don't know what's going on when I try to access the 13806 controller, >>>but it's really too slow. And using the blit engine don't helps much. The >>>static controller seems to be set correctly. By the way, the DRAM is >>>refreshing at 96Hz, and my CRT display is refreshing at 66Hz. >>> >>>Any Idea? By the way Dan, I've tried the cache trick, but no luck. >>> >>>Thanks a lot, >>>Karl >>> >>> >>> >>>>Pete >>>> >>>> >>>> >>>>>I would like to know if anyone have encountered this performance >>>>>problem in the past with this chip. >>>>> >>>>>Thanks in advance, >>>>>Karl >>>>> >>>>> >>Michael J. Kelly >>VP Engineering/Marketing >>Cogent Computer Systems, Inc. >>1130 Ten Rod Road >>Suite A-201 >>North Kingstown, RI 02852 >>tel:401-295-6505 fax:401-295-6507 >>www.cogcomp.com >>alternate email: mkelly6505@hotmail.com >> >> > > > > [-- Attachment #2: Type: text/html, Size: 4558 bytes --] ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2004-12-08 22:35 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2004-12-08 16:06 Epson13806 performances on Pb1100 Karl Lessard 2004-12-08 16:40 ` Dan Malek 2004-12-08 18:05 ` Pete Popov 2004-12-08 19:38 ` Karl Lessard 2004-12-08 20:37 ` Michael Kelly 2004-12-08 21:17 ` Karl Lessard 2004-12-08 22:35 ` Eric DeVolder
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.