Re: [radeonhd] xvideo - high CPU/run away process
First i need some more info at what resolution/refresh rate you guys are running and what kind of video (resolution) you are running to trigger this behaviour.
Well, in my case my resolution is 1080p60 (ie 1920x1080 60 FPS) over HDMI. The recorded video is 640x480. High CPU happens when playing back video, but the runaway process only happens when zooming in to remove letter box (same scenario as described by Patrick). Prior to this commit XOrg would generally consume 25% of a single core on my dual core AMD 5200 under the same scenario. regards, jp -- To unsubscribe, e-mail: radeonhd+unsubscribe@opensuse.org For additional commands, e-mail: radeonhd+help@opensuse.org
On Mon, Feb 16, 2009 at 4:10 PM, JP Fournier
First i need some more info at what resolution/refresh rate you guys are running and what kind of video (resolution) you are running to trigger this behaviour.
Well, in my case my resolution is 1080p60 (ie 1920x1080 60 FPS) over HDMI. The recorded video is 640x480. High CPU happens when playing back video, but the runaway process only happens when zooming in to remove letter box (same scenario as described by Patrick).
Prior to this commit XOrg would generally consume 25% of a single core on my dual core AMD 5200 under the same scenario.
regards,
jp
-- To unsubscribe, e-mail: radeonhd+unsubscribe@opensuse.org For additional commands, e-mail: radeonhd+help@opensuse.org
For my part, videos recorded from the digital tuner do not have this problem, only those from my PVR-150. The same X freeze also occurs/doesn't occur using MPlayer hitting e to panscan. Here is some output from normal runs of MPlayer. Playing the first video and zooming crashes X. Playing the second video and zooming works as expected. MPlayer dev-SVN-rUNKNOWN-4.2.3 (C) 2000-2009 MPlayer Team CPU: AMD Athlon(tm) 64 X2 Dual Core Processor 5400+ (Family: 15, Model: 107, Stepping: 2) CPUflags: MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 1 SSE2: 1 Compiled with runtime CPU detection. Playing 1050_20090213223000.nuv. libavformat file format detected. [lavf] Video stream found, -vid 0 [lavf] Audio stream found, -aid 1 VIDEO: [DIVX] 720x480 10bpp 29.970 fps 0.0 kbps ( 0.0 kbyte/s) Opening video filter: [screenshot] ========================================================================== Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family Selected video codec: [ffodivx] vfm: ffmpeg (FFmpeg MPEG-4) ========================================================================== ========================================================================== Opening audio decoder: [mp3lib] MPEG layer-2, layer-3 AUDIO: 48000 Hz, 2 ch, s16le, 128.0 kbit/8.33% (ratio: 16000->192000) Selected audio codec: [mp3] afm: mp3lib (mp3lib MPEG layer-2, layer-3) ========================================================================== [AO OSS] audio_setup: Can't open audio device /dev/dsp: No such file or directory AO: [alsa] 48000Hz 2ch s16le (2 bytes per sample) Starting playback... VDec: vo config request - 720 x 480 (preferred colorspace: Planar YV12) VDec: using Planar YV12 as output csp (no 0) Movie-Aspect is 1.33:1 - prescaling to correct movie aspect. SwScaler: reducing / aligning filtersize 1 -> 4 SwScaler: reducing / aligning filtersize 1 -> 4 SwScaler: reducing / aligning filtersize 5 -> 4 SwScaler: reducing / aligning filtersize 5 -> 4 [swscaler @ 0xca5f00]BICUBIC scaler, from yuv420p to rgb24 using MMX2 [swscaler @ 0xca5f00]using 4-tap MMX scaler for horizontal luminance scaling [swscaler @ 0xca5f00]using 4-tap MMX scaler for horizontal chrominance scaling [swscaler @ 0xca5f00]using n-tap MMX scaler for vertical scaling (BGR) [swscaler @ 0xca5f00]720x480 -> 720x540 VO: [xv] 720x480 => 720x540 Planar YV12 A: 14.2 V: 14.2 A-V: 0.000 ct: 0.053 0/ 0 5% 0% 0.5% 1 0 Exiting... (Quit) $ mplayer 2591_20090215210000.mpg MPlayer dev-SVN-rUNKNOWN-4.2.3 (C) 2000-2009 MPlayer Team CPU: AMD Athlon(tm) 64 X2 Dual Core Processor 5400+ (Family: 15, Model: 107, Stepping: 2) CPUflags: MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 1 SSE2: 1 Compiled with runtime CPU detection. Playing 2591_20090215210000.mpg. TS file format detected. VIDEO MPEG2(pid=2048) AUDIO A52(pid=2049) NO SUBS (yet)! PROGRAM N. 1 VIDEO: MPEG2 1280x720 (aspect 3) 59.940 fps 25000.0 kbps (3125.0 kbyte/s) Opening video filter: [screenshot] ========================================================================== Opening video decoder: [mpegpes] MPEG 1/2 Video passthrough VDec: vo config request - 1280 x 720 (preferred colorspace: Mpeg PES) Could not find matching colorspace - retrying with -vf scale... Opening video filter: [scale] The selected video_out device is incompatible with this codec. Try appending the scale filter to your filter list, e.g. -vf spp,scale instead of -vf spp. VDecoder init failed :( Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family Selected video codec: [ffmpeg2] vfm: ffmpeg (FFmpeg MPEG-2) ========================================================================== ========================================================================== Opening audio decoder: [liba52] AC3 decoding with liba52 Using SSE optimized IMDCT transform Using MMX optimized resampler AUDIO: 48000 Hz, 2 ch, s16le, 384.0 kbit/25.00% (ratio: 48000->192000) Selected audio codec: [a52] afm: liba52 (AC3-liba52) ========================================================================== [AO OSS] audio_setup: Can't open audio device /dev/dsp: No such file or directory AO: [alsa] 48000Hz 2ch s16le (2 bytes per sample) Starting playback... VDec: vo config request - 1280 x 720 (preferred colorspace: Planar YV12) VDec: using Planar YV12 as output csp (no 0) Movie-Aspect is 1.78:1 - prescaling to correct movie aspect. [swscaler @ 0xca5f00]No accelerated colorspace conversion found. [swscaler @ 0xca5f00]using unscaled yuv420p -> rgb24 special converter VO: [xv] 1280x720 => 1280x720 Planar YV12 A:75265.6 V:75265.6 A-V: 0.004 ct: -0.351 1273/1273 18% 0% 1.9% 0 0 Exiting... (Quit) I also tried zooming in Live TV mode (where both streams are MPEG2) and the same results, HD is fine, SD crashes. Please let me know if there is any other info I can give. -- To unsubscribe, e-mail: radeonhd+unsubscribe@opensuse.org For additional commands, e-mail: radeonhd+help@opensuse.org
Am Montag, den 16.02.2009, 16:10 -0500 schrieb JP Fournier:
Well, in my case my resolution is 1080p60 (ie 1920x1080 60 FPS) over HDMI. The recorded video is 640x480. High CPU happens when playing back video, but the runaway process only happens when zooming in to remove letter box (same scenario as described by Patrick).
Prior to this commit XOrg would generally consume 25% of a single core on my dual core AMD 5200 under the same scenario. Could you try the following simple patch and tell me what actually vline range we are waiting for:
diff --git a/src/r6xx_accel.c b/src/r6xx_accel.c index 081e41f..c252f86 100644 --- a/src/r6xx_accel.c +++ b/src/r6xx_accel.c @@ -198,6 +198,8 @@ wait_vline_range(ScrnInfoPtr pScrn, drmBufPtr ib, int crtc, int start, int stop) if (stop <= start) return; + ErrorF("wait_vline_range: start %d stop %d\n", start, stop); + /* set the VLINE range */ if(crtc == 0) ereg(ib, D1MODE_VLINE_START_END, start | (stop << 16)); -- To unsubscribe, e-mail: radeonhd+unsubscribe@opensuse.org For additional commands, e-mail: radeonhd+help@opensuse.org
wait_vline_range: start 0 stop 1079 wait_vline_range: start 0 stop 1079 wait_vline_range: start 0 stop 1079 wait_vline_range: start 0 stop 1079 wait_vline_range: start 0 stop 1079 wait_vline_range: start 0 stop 1079 wait_vline_range: start 0 stop 1079 wait_vline_range: start 0 stop 1079 wait_vline_range: start 0 stop 1079 wait_vline_range: start 0 stop 1079 On Tuesday 17 February 2009 17:11:03 Christian König wrote:
Am Montag, den 16.02.2009, 16:10 -0500 schrieb JP Fournier:
Well, in my case my resolution is 1080p60 (ie 1920x1080 60 FPS) over HDMI. The recorded video is 640x480. High CPU happens when playing back video, but the runaway process only happens when zooming in to remove letter box (same scenario as described by Patrick).
Prior to this commit XOrg would generally consume 25% of a single core on my dual core AMD 5200 under the same scenario.
Could you try the following simple patch and tell me what actually vline range we are waiting for:
diff --git a/src/r6xx_accel.c b/src/r6xx_accel.c index 081e41f..c252f86 100644 --- a/src/r6xx_accel.c +++ b/src/r6xx_accel.c @@ -198,6 +198,8 @@ wait_vline_range(ScrnInfoPtr pScrn, drmBufPtr ib, int crtc, int start, int stop) if (stop <= start) return;
+ ErrorF("wait_vline_range: start %d stop %d\n", start, stop); + /* set the VLINE range */ if(crtc == 0) ereg(ib, D1MODE_VLINE_START_END, start | (stop << 16));
-- To unsubscribe, e-mail: radeonhd+unsubscribe@opensuse.org For additional commands, e-mail: radeonhd+help@opensuse.org
Am Dienstag, den 17.02.2009, 19:39 -0500 schrieb JP Fournier:
wait_vline_range: start 0 stop 1079 Ok, it looks like the patch itself actually works fine, so we need to search the bug somewhere else. I think it has something todo wich crtc we are waiting on (atm we wait hardcoded at the first one).
Could you send me an xorg log created with logverbose 7? And try the following patch, it's just a guess, but when it works we have narrowed down the problem: diff --git a/src/r600_textured_videofuncs.c b/src/r600_textured_videofuncs.c index cd81c39..20f7df7 100644 --- a/src/r600_textured_videofuncs.c +++ b/src/r600_textured_videofuncs.c @@ -514,7 +514,7 @@ R600DisplayTexturedVideo(ScrnInfoPtr pScrn, struct RHDPortPriv *pPriv) wait_vline_range( pScrn, accel_state->ib, - 0 /* TODO */, + 1 /* TODO */, dstyoff + pPriv->drw_y, dstyoff + pPriv->drw_y + pPriv->dst_h - 1 ); -- To unsubscribe, e-mail: radeonhd+unsubscribe@opensuse.org For additional commands, e-mail: radeonhd+help@opensuse.org
participants (3)
-
Christian König
-
JP Fournier
-
Patrick Oglesby