Try this patch to 0.3.2l, maybe will help, I don't think we need the
vsync wait anymore for OSD DMA.
*snip*
Removing the vsync wait code does speed up the OSD transfer by 2.6% after having opened the decoder (from ~24fps to ~25fps), but the overall performance hit of 25% after writing to the decoder is still there:
# patch -p2 -l < no-vsync-wait.patch # make # make install # modprobe ivtv # modprobe ivtv-fb # ../utils/ivtvfbctl -prepdma ... frameloop: userspace buffer 0xb7cfe000 of 1658880 bytes: Warning, you must change CPU_HZ to be accurate, currently 2793423000: mlock rc = 0 iter 0: time = 33.649651 fps iter 1: time = 33.635635 fps iter 2: time = 33.635289 fps iter 3: time = 33.635412 fps iter 4: time = 33.625753 fps iter 5: time = 33.630572 fps iter 6: time = 33.626303 fps
# cat ~/foo.mpeg > /dev/video16 # ../utils/ivtvfbctl -prepdma ... frameloop: userspace buffer 0xb7cfe000 of 1658880 bytes: Warning, you must change CPU_HZ to be accurate, currently 2793423000: mlock rc = 0 iter 0: time = 25.291016 fps iter 1: time = 25.250913 fps iter 2: time = 25.197580 fps iter 3: time = 25.195648 fps iter 4: time = 25.204124 fps iter 5: time = 25.198119 fps iter 6: time = 25.192121 fps
:-/
The performance hit appears to only occur after all 16 DMA decoder buffers have been filled: so that if writing to the decoder is interrupted before the decoder queue is full, the OSD appears to perform correctly afterwards. As each buffer is 65k, if the MPEG I try to decode is smaller than a megabyte, all's seems to be well - assuming the device isn't close()d too quickly due to lack of blocking whilst write()ing (I think).
I'm therefore assuming that it's something which happens once decoder DMA buffers start to be added to the FULL Queue rather than the IO Queue which causes the problem.
I'm going to investigate this more carefully this afternoon, but if anyone has any insight into what part of the decoder's DMA would adversely effect subsequent unrelated OSD transfers, it really would be very very helpful :)
cheers;
M.
On Wed, Mar 23, 2005 at 06:04:52PM +0000, Matthew Hodgson wrote:
Hi,
Chris Kennedy wrote:
This cleans up a bit more of the DMA code, removes some more unused code.
Please test this if you have had DMA problems, and if having VIA motherboard
problems in the past, or any other DMA errors.
I'm afraid this hasn't fixed the issue I'm having with OSD performance on my PVR-350 significantly reducing after DMAing to the decoder; on loading 0.3.2l ivtvfbctl -prepdma gives 33fps when displaying a 720x576 screen. I then cat something.mpeg > /dev/video16, and then running the same ivtvfbctl -prepdma gives 25fps.
Something I did notice, however, is that when running -prepdma with a 720x480 size frame, the problem doesn't present itself. In fact, it's only when the DMA size gets to around the 720x520 mark that the fps starts to fluctuate between 25fps and 33fps.
I've tried ramping up the PCI latency for the PVR-350 to maximum, but it doesn't seem to make any difference. Likewise splitting the transfer into two 720x288 chunks - or using PREP_DMA_BUF rather than PREP_DMA.
The only time it's worked recently has been with 0.3.2b using PREP_DMA_BUF - but DMA then became unstable after a few days.
Can you think of anything which would be causing this? Perhaps a difference between the number of DMA buffers that can be used of PAL size rather than NTSC? For what it's worth, I'm not currently using the mpeg2 encoder on the card - is there any chance that it might be somehow interfering with the OSD, and if so, how do I turn it off?
cheers;
Matthew.
-- ______________________________________________________________ Matthew Hodgson [EMAIL PROTECTED] Tel: +44 845 6667778 Systems Analyst, MX Telecom Ltd.
-------------------------------------------------------
This SF.net email is sponsored by Microsoft Mobile & Embedded DevCon 2005
Attend MEDC 2005 May 9-12 in Vegas. Learn more about the latest Windows
Embedded(r) & Windows Mobile(tm) platforms, applications & content. Register
by 3/29 & save $300 http://ads.osdn.com/?ad_id=6883&alloc_id=15149&op=click
_______________________________________________
ivtv-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ivtv-devel
--
______________________________________________________________
Matthew Hodgson [EMAIL PROTECTED] Tel: +44 845 6667778
Systems Analyst, MX Telecom Ltd.
------------------------------------------------------- This SF.net email is sponsored by Microsoft Mobile & Embedded DevCon 2005 Attend MEDC 2005 May 9-12 in Vegas. Learn more about the latest Windows Embedded(r) & Windows Mobile(tm) platforms, applications & content. Register by 3/29 & save $300 http://ads.osdn.com/?ad_id=6883&alloc_id=15149&op=click _______________________________________________ ivtv-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/ivtv-devel
