Fullscreen - 1 black bar at top of GUI/video
#1
Help!

I've been tearing my hair out... When I run XBMC in fullscreen mode, there is a black bar across the top of the GUI (and video playback) that is approximately the same size as a window title bar. It is NOT a scale/crop issue, resolution issue, or compositing issue. When moving the mouse pointer around the GUI, it will stop at the bottom of the black bar as if it had reached the top of the screen (just like a captured mouse pointer in Virtualbox). If I do a Video Calibration, the upper left corner bracket will also start to disappear as it reaches the black bar - as if the physical screen stopped there.

Mint 13 XFCE 64-bit (fresh install)
Linux 3.2.0-41-generic #66-Ubuntu SMP Thu Apr 25 03:27:11 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
XBMC 12.2 "Frodo" (from ppa)
Intel HD3000 graphics (i3-2105 integrated)
Intel video driver (3D accelerated, openGL appears to work OK)
Screen resolution 1208x679 (Panasonic PT-43LC14 LCD projection TV connected through HDMI)

This system was previously working under Mint 12 64-bit and XBMC "Eden"

kern.log: http://pastebin.com/iVGji7UC
Xorg0.log: http://pastebin.com/xKy5nEs9
xbmc.log: http://pastebin.com/W9eK0qJ2

1) This happens with compositing on or off.
2) Running XBMC as a separate session or from within XFCE has the same behavior.
3) Running in windowed mode (press "\") there is no black bar, even when I resize the window.
4) In windowed mode, the XFCE desktop extends all the way to the top of my TV screen, and the mouse pointer will go to the top of the TV screen (no black bar).
5) In windowed mode I can drag the XBMC window all the way to the top of my TV screen. Maximizing the XBMC window works fine (no black bar).
5) When changing from windowed to fullscreen, the XBMC GUI appears to "drop" slightly as the black bar appears.
6) My custom screen resolution appears in Settings->System->Video Output->Resolution, and changing this has no effect. The only other resolution (1024x768) causes a completely black screen - see below.

The only issue I've had with this setup is getting the screen resolution setup properly. My TV is very picky about resolutions and refresh rates, and will show a black screen if it doesn't like the values. It also has no option to disable overscan, hence the odd 1208x679 resolution. I had to boot with "nomodeset" to get a viewable screen to install Mint 13. After adding some xrandr commands to /etc/mdm/Init/Default I was able to remove "nomodeset". This still leaves me with unusable ctrl-alt-Fn tty consoles because the video mode changes to something my TV doesn't like. The console is there but the screen is blank.

I was getting lots of kern.log "[drm:drm_edid_block_valid] *ERROR* EDID checksum is invalid, remainder is ###" errors. I got rid of most of them by forcing the kernel to load standard EDID information using the grub parameter: drm_kms_helper.edid_firmware=edid/1024x768.bin. Now when an EDID checksum error appears it is immediately followed by: [drm] Got built-in EDID base block and 0 extensions from "edid/1024x768.bin" for connector "HDMI-A-2". My TV still doesn't like the standard 1024x768 EDID modes, so I'm in the process of generating a custom EDID for 1024x768@60 in hopes of getting usable ctrl-alt-Fn ttys.

get-edid shows supported DDC2 transfers, but ends with "call failed" and a warning of possibly invalid EDID data. parse-edid likes the EDID data just fine, and shows my TV manufacturer, H/V refresh rate numbers that match the TV manual, and modeline data for 720p and 1080i resolutions that work using xrandr.

As an aside, "nomodeset" or "i915.modeset=0" causes the kernel to use the vesafb framebuffer driver instead of the intel driver. No EDID errors, working console ttys, but a maximum resolution of 1024x768. xrandr shows a single video output of "default" and complains with "xrandr: Failed to get size of gamma for output default" if I try to create custom video modes. Without "nomodeset", the intel driver loads, xrandr shows VGA1, HDMI1, HDMI2, and DVI1 outputs and will allow me to enter custom video modes, my ctrl-alt-Fn consoles exist but the screen is blank (video mode my TV doesn't like)..

-Adrian
Reply
#2
This is an adjustment you need to make on your TV, like vertical shift or something.
If I have helped you or increased your knowledge, click the 'thumbs up' button to give thanks :) (People with less than 20 posts won't see the "thumbs up" button.)
Reply
#3
The video mode works well with XFCE, it's XBMC that doesn't utilize the whole screen. AFAIK there's no resolution change when switching from windowed mode to fullscreen mode. XBMC settings show only 2 video modes, and the other one doesn't work AT ALL with my TV.
Reply
#4
OK can you ssh in and run
Code:
export DISPLAY=:0
xwininfo -root
xwininfo -name "XBMC Media Center"
and post back the results?
If I have helped you or increased your knowledge, click the 'thumbs up' button to give thanks :) (People with less than 20 posts won't see the "thumbs up" button.)
Reply
#5
Thank you for your help. This is certainly looking like an underscan type of problem.

Code:
htpc@htpc ~ $ xwininfo -root

xwininfo: Window id: 0xaa (the root window) (has no name)

  Absolute upper-left X:  0
  Absolute upper-left Y:  0
  Relative upper-left X:  0
  Relative upper-left Y:  0
  Width: 1208
  Height: 679
  Depth: 24
  Visual: 0x21
  Visual Class: TrueColor
  Border width: 0
  Class: InputOutput
  Colormap: 0x20 (installed)
  Bit Gravity State: ForgetGravity
  Window Gravity State: NorthWestGravity
  Backing Store State: NotUseful
  Save Under State: no
  Map State: IsViewable
  Override Redirect State: no
  Corners:  +0+0  -0+0  -0-0  +0-0
  -geometry 1208x679+0+0

Here it is with XBMC running windowed (maximized):

Code:
htpc@htpc ~ $ xwininfo -name "XBMC Media Center"

xwininfo: Window id: 0x320000e "XBMC Media Center"

  Absolute upper-left X:  0
  Absolute upper-left Y:  24
  Relative upper-left X:  0
  Relative upper-left Y:  24
  Width: 1208
  Height: 655
  Depth: 24
  Visual: 0x22
  Visual Class: TrueColor
  Border width: 0
  Class: InputOutput
  Colormap: 0x320000c (installed)
  Bit Gravity State: ForgetGravity
  Window Gravity State: NorthWestGravity
  Backing Store State: NotUseful
  Save Under State: no
  Map State: IsViewable
  Override Redirect State: no
  Corners:  +0+24  -0+24  -0-0  +0-0
  -geometry 1208x655+0+0

Now with XBMC running fullscreen:

Code:
htpc@htpc ~ $ xwininfo -name "XBMC Media Center"

xwininfo: Window id: 0x320000e "XBMC Media Center"

  Absolute upper-left X:  0
  Absolute upper-left Y:  24
  Relative upper-left X:  2
  Relative upper-left Y:  24
  Width: 1208
  Height: 679
  Depth: 24
  Visual: 0x22
  Visual Class: TrueColor
  Border width: 0
  Class: InputOutput
  Colormap: 0x320000c (installed)
  Bit Gravity State: ForgetGravity
  Window Gravity State: NorthWestGravity
  Backing Store State: NotUseful
  Save Under State: no
  Map State: IsViewable
  Override Redirect State: no
  Corners:  +0+24  -0+24  -0--24  +0--24
  -geometry 1208x679+-2+0

-Adrian
Reply
#6
Have to say it looks like something odd arising out of the very weird resolution you are running X at. why 1208x679?

By the way I can't seem to access your pastebin of your Xorg.0.log
If I have helped you or increased your knowledge, click the 'thumbs up' button to give thanks :) (People with less than 20 posts won't see the "thumbs up" button.)
Reply
#7
Here's another try at Xorg.0.log. Remember the EDID information shown (Linux XGA) isn't from my TV.
http://pastebin.com/eXU36YQv

The odd resolution is because my TV only supports a narrow range of input signals and has no option to turn off overscan. If I use a standard 720p modeline then my taskbar and first column of desktop icons are all but invisible. It's really annoying in a console tty.

Looking at the xwininfo data:
-root window is fine
-XBMC window (maximized) vertical resolution is reduced 24 pixels and upper-left window corder is down 24 pixels. I assume this is room for the window's title bar.
-XBMC fullscreen goes back to the resolution of the root window, but the upper-left window corner is still shifted down 24 pixels. That seems to be the cause of the black bar (which is about the size of the window title bar).
Reply
#8
While not solved, I did find a workaround (possibly 2) to this problem.

1) Before launching XBMC, change the video mode to 1280x720 . The TV overscan will push any black bar off the viewable screen area. Use the video calibration in XBMC to resize everything to fit the viewable portion of the screen. Create a script to change video modes before/after launching XBMC so I can see all my desktop icons and the lower panel.

2) Fix the INCORRECT EDID DATA sent by my TV. parse-edid shows no problems, but edid-decode shows an invalid extension block. In addition, the 1080i mode timings DON'T WORK when I try and use them. I get a black screen! For some reason I can get a 1080i picture by removing the "Interlace" flag. SO: Create a custom edid.bin file with proper resolutions for my TV. Write this data back into the TV so it reports correct timings and valid extension data. If that fails, use the custom edid.bin file to override the edid data reported by my TV.

I just finished creating several edid.bin files for testing...

-Adrian
Reply
#9
Hello

Were you ever able to fix this problem?

I have the same issue here running Mint 16 and XBMC 12.3 and 13.0 Beta 3. Nvidia proprietary drivers in use.

If I set the resolution to 1024x768 - no problem but everything is scaled wrong because it's a widescreen.

I use the following in a startup script to force 1280 x 720 because that resolution is not available to select in display properties.

sleep 10
cvt 1280 720
xrandr --newmode "1280x720_60.00_wide" 74.50 1280 1344 1472 1664 720 723 728 748 -hsync +vsync
xrandr --addmode DVI-I-1 "1280x720_60.00_wide"
xrandr -s "1280x720_60.00_wide"

Seems to work fine interface in mint is fine.

When I run XBMC - I get a black bar at the top of the screen that cannot be adjusted or calibrated away.

Running xwininfo I get the following:

Normal Window

XBMC Running

xwininfo: Window id: 0x1d3 (the root window) (has no name)

Absolute upper-left X: 0
Absolute upper-left Y: 0
Relative upper-left X: 0
Relative upper-left Y: 0
Width: 1280
Height: 720
Depth: 24
Visual: 0x21
Visual Class: TrueColor
Border width: 0
Class: InputOutput
Colormap: 0x20 (installed)
Bit Gravity State: ForgetGravity
Window Gravity State: NorthWestGravity
Backing Store State: NotUseful
Save Under State: no
Map State: IsViewable
Override Redirect State: no
Corners: +0+0 -0+0 -0-0 +0-0
-geometry 1280x720+0+0

xwininfo: Window id: 0x200000e "XBMC Media Center"

Absolute upper-left X: 3
Absolute upper-left Y: 24
Relative upper-left X: 3
Relative upper-left Y: 24
Width: 1280
Height: 720
Depth: 24
Visual: 0x181
Visual Class: DirectColor
Border width: 0
Class: InputOutput
Colormap: 0x200000c (installed)
Bit Gravity State: ForgetGravity
Window Gravity State: NorthWestGravity
Backing Store State: NotUseful
Save Under State: no
Map State: IsViewable
Override Redirect State: no
Corners: +3+24 --3+24 --3--24 +3--24
-geometry 1280x720+0+0

It seems like you found a work around but you explanation of it went over my head so I don't know how I can implement it.

In Windows I never had this problem - I could add a custom resolution for the display and everything fit properly.
Reply
#10
Let me state that the main problem I was having was a lack of 1:1 pixel mapping when using the HDMI input. The Panasonic PT43LC14 television is also VERY picky about what resolutions it will accept. I didn't have any problems (black bars or overscan) when using the VGA input, but the max resolution was limited to 1024x768 and the picture showed quite a bit of noise. When i switched to the HDMI input the picture was a lot clearer, but there was no way to disable the overscan.

I initially created a custom resolution (using xrandr) of 1208x679 that would fill the screen without overscan. Somewhere along the line a system update, package install, configuration change, lunar eclipse or gamma ray impact caused this resolution to stop working in XBMC. The Mint desktop still worked fine, but XMBC would add the black bar - which acted like the screen edge. The mouse pointer would not move into the black area. This was on an Intel i3 CPU with integrated HD3000 graphics.

It looks like this is the same problem you have. The xwininfo result of "Absolute upper-left Y: 24" is the issue.

I never figured out exactly WHY this happened (or why it worked correctly in the past), but I did find a few fixes.

1) When I used a standard HD resolution of 1280x720, the black bar would be gone (or moved off the screen due to overscan - I don't know which). I then used XBMC's Video Calibration to scale everything so that it filled the viewable portion of my TV screen. The downside was having to change resolutions before running XBMC. And having to change back when exiting XBMC. IIRC, this solution also stopped working after a while.

2) The EDID information stored in my TV didn't actually comply with EDID standards. This resulted in Linux not knowing what resolutions the TV was capable of - and prevented resolutions from showing up in display properties or as allowed resolutions in xrandr. Combined with how picky the TV was about resolutions anyway, this often resulted in booting to a black screen (signal out of range for the TV). I managed to create a custom EDID block with parameters of the 1208x679 modeline and have GRUB pass it to the kernel at boot time. This allowed automatic detection of a working HD resolution and eliminated the need to have a script full of xrandr commands run on startup.

3) I also managed to get a workable resolution using xrandr that worked for both XBMC and the desktop. Something like: xrandr --fb 1280x720 --output HDMI-1 --mode 1208x679 --scale 1.05x1.05 --panning 1280x720+0+0 It took a LOT of trial and error to get a screen that worked AND allowed the mouse pointer to access the entire screen. Unfortunately I don't have a copy of the original xrandr command Sad The effect of the command is to scale a 1280x720 resolution down to 1208x679, which got rid of overscan for me. XBMC apparently saw it as a standard 1280x720 resolution and didn't give me the black bar.

Sorry I can't be more specific. I have since switched from XBMC to OpenELEC as this is an HTPC used almost exclusively for watching movies. OpenELEC boots very quickly from a small flash drive - and plays videos without the screen tearing that was driving me crazy with Mint 13 XFCE.

FWIW, I had a similar black bar problem running MAME (I believe it was mame-sdl) in full-screen.

After all of that, I still had problems with the Mint login screen being completely black sometimes. It never happened if I used "nomodeset" with GRUB. Turns out my TV didn't like 800x600 over HDMI. I finally had enough of fiddling with resolutions and configurations that would need to be re-tweaked after software updates. A finally got a Samsung LED TV that supports quite a few resolutions over HDMI and has a 1:1 pixel mapping mode (no overscan). I've had zero issues since. Good luck!
Reply

Logout Mark Read Team Forum Stats Members Help
Fullscreen - 1 black bar at top of GUI/video0