XBMC Weekly report 11

As always, http://xbmc.org/topfs2/2010/08/09/weekly-report-11/

While not all of the original ideas made it into XBMC we have still come
a long way and XBMC have went from not running to becoming rather usable
on the BeagleBoard, still room left for more improvement ofcourse but
still great progress IMO.

Very well done!

Status
* Finally got the overlay to be under the controls which needs it.
* Created a minimal skin which actually hit vsync when rendering.
* Refactored the rendering passes and dirty region tracker to support
N-buffering. Also added the new cost reduction algorithm, the cost
reduction algorithm is using static costs now but could probably
calculate dynamic costs if it got timing data back regarding its
choices. I guess linear regression would work if we don't use to old
data points?

Plan
* Polish and add more dialogs and such to the minimal skin to make it a
viable skin for day to day usage
* Document what a skinner can do to make a skin which runs fast on
BeagleBoard

I would like a reasonable amount of documentation about the dirty
region stuff - since that's what you spent most of your time on, and
definitely the video overlay stuff - since that's useful for anyone
else wanting to do similar work. Don't need to go overboard though,
and the later could possibly go on the wiki?

I guess we will cover this in the meeting tonight, but I believe this
week is also the time to get the file drop ready including all the
diffs containing your code, and what not. I'm not sure if some of it
needs to be done earlier for mentor review either?

Risks
* Can't think of anything ...

I still get invalid shader on my own builds :-/ (as of yesterday anyway).

Michael

Having build issues. After cleaning everything, then i did an update,
and then i did a make clean and another build.

[1]: Entering directory `/home/notzed/xbmc/xbmc'
g++ -MD -c -fPIC -DPIC -D_REENTRANT -D_LARGEFILE64_SOURCE
-D_FILE_OFFSET_BITS=64 -g -D_DEBUG -Wall -O2 -mfloat-abi=softfp
-mno-apcs-stack-check -Wa,-march=armv7a -mcpu=cortex-a8 -mfpu=neon
-mvectorize-with-neon-quad -D_LINUX -D_FILE_DEFINED
-D__STDC_CONSTANT_MACROS -DBIN_INSTALL_PATH="\"/usr/local/lib/xbmc\""
-DINSTALL_PATH="\"/usr/local/share/xbmc\"" -DHAS_SDL_JOYSTICK
-D'SVN_REV="32644"' -D_ARMEL -DHAVE_CONFIG_H -I../ -I. -Ilinux
-Icores -I../guilib -Iutils -IFileSystem -I/usr/include/freetype2
-Icores/dvdplayer -Icores/dvdplayer/Codecs/ffmpeg
-Ilib/libUPnP/Platinum/Source/Core
-Ilib/libUPnP/Platinum/Source/Platinum
-Ilib/libUPnP/Platinum/Source/Devices/MediaServer
-Ilib/libUPnP/Platinum/Source/Devices/MediaConnect
-Ilib/libUPnP/Platinum/Source/Devices/MediaRenderer
-Ilib/libUPnP/Neptune/Source/System/Posix
-Ilib/libUPnP/Neptune/Source/Core -Ilib/libcdio/libcdio/include
-I../lib/jsoncpp/jsoncpp/include -Ilib/cpluff/libcpluff
-DDBUS_API_SUBJECT_TO_CHANGE -D_GNU_SOURCE=1 -D_REENTRANT
-I/home/notzed/xbmc -I/usr/include/ -I/usr/include/SDL
-I/usr/include/alsa -I/usr/include/dbus-1.0 -I/usr/include/freetype2
-I/usr/include/fribidi -I/usr/include/glib-2.0 -I/usr/include/hal
-I/usr/include/libpng12 -I/usr/include/lzo -I/usr/include/mysql
-I/usr/lib/dbus-1.0/include -I/usr/lib/glib-2.0/include
Application.cpp -o Application.o
In file included from SystemGlobals.h:25,
                 from Application.cpp:27:
cores/VideoRenderers/RenderManager.h: In member function 'int
CXBMCRenderManager::PutImage(YV12Image*, int)':
cores/VideoRenderers/RenderManager.h:86: error: 'class
CLinuxRendererGLES' has no member named 'PutImage'
cores/VideoRenderers/RenderManager.h: In member function 'void
CXBMCRenderManager::HasFlipped()':
cores/VideoRenderers/RenderManager.h:106: error: 'class
CLinuxRendererGLES' has no member named 'HasFlipped'
cores/VideoRenderers/RenderManager.h:106: error: return-statement with
a value, in function returning 'void'
make[1]: *** [Application.o] Error 1
make[1]: Leaving directory `/home/notzed/xbmc/xbmc'
make: *** [xbmc/xbmc.a] Error 2
Command exited with non-zero status 2

Oh I must have forgotten fixing up the old gles renderer when i removed the memcpy in videoplayback. I would suggest using --enable-omap-overlay configure switch but ill fix the renderer asap.

Cheers

shit i knew i forgot something when git blew away my configure configure script.

should add that switch to the build instructions, i cut and pasted from there.

Ta,
Z

Blast, still that shader error. I'll try updating angstrom and if
that doesn't work try downloading a new image.

Seems like a good thing.

I have dropped some documentattion on the wiki please say if its angled as wanted otherwise ill take another gander at it.

Seems like a good thing.

Well i've pretty well tried everything, even another opkg installed
version, but still the same issue.

About the only thing left to try is a fresh image from narcissus, or
maybe my other unit (it needs the capacitor fix though) although I
can't imagine it's a hardware issue.

I have dropped some documentattion on the wiki please say if its angled as
wanted otherwise ill take another gander at it.

Yeah looks about on the right track. Should be able to fill it out a
bit more I guess, that's about all I can suggest. There's probably
enough of each area at least, so if you want to focus on one of the
other that should be ok. Maybe just a little more technical detail on
the overlay stuff before leaving it.

!Z

Well, I tried another narcissus image today, wiped out the root
filesystem and replaced it with the new one ... Still the same
problem with the invalid shaders.

So in desperation I dragged out my spare unit and remembered how to
get that setup to run (it's got the original c3 flash). And that
worked. Same SD card and external hard drive in both machines. I've
tried the xbmc build from angstrom as well as my own build from a
couple of days ago and they both work ok now.

Puzzling. I wonder if the hardware is so flakey that such a thing
might happen? Given that other 3d apps work just fine, and it was ok
until last week it doesn't seem like it's hardware anyway. RAM
perhaps? Although the system is very stable and I haven't noticed any
other issues. Background images are loading a lot faster than they
were too - or has that changed in the last week? The only other
difference between the two is the video resolution .. hopefully it
wasn't something silly like that causing me all these issues. I
suppose i'll look at that leter.

Well nice to see it working at last.

The beagle theme in the build I have is a little difficult to use -
the black highlighting that shows up on the back background to tell
you what button you've selected doesn't help. Nor does the black
mouse pointer ... (in either theme).

!Z

Well, I tried another narcissus image today, wiped out the root
filesystem and replaced it with the new one ... Still the same
problem with the invalid shaders.

So in desperation I dragged out my spare unit and remembered how to
get that setup to run (it's got the original c3 flash). And that
worked. Same SD card and external hard drive in both machines. I've
tried the xbmc build from angstrom as well as my own build from a
couple of days ago and they both work ok now.

Puzzling. I wonder if the hardware is so flakey that such a thing
might happen? Given that other 3d apps work just fine, and it was ok
until last week it doesn't seem like it's hardware anyway. RAM
perhaps? Although the system is very stable and I haven't noticed any
other issues. Background images are loading a lot faster than they
were too - or has that changed in the last week? The only other
difference between the two is the video resolution .. hopefully it
wasn't something silly like that causing me all these issues. I
suppose i'll look at that leter.

Well nice to see it working at last.

Phiue, glad you got it working somewhat atleast :slight_smile:

I somehow doubt its resolution but who knows, maybe the egl context
isn't properly setup and the compiler isn't attached and therefore fails
to compile. Our egl creation and such isn't very fault proof.

The beagle theme in the build I have is a little difficult to use -
the black highlighting that shows up on the back background to tell
you what button you've selected doesn't help. Nor does the black
mouse pointer ... (in either theme).

Uhm, it should most definatly not have black highlight or black mouse
pointer :slight_smile: the highlight is meant to be bright blue and mousecursor is
same as in confluence... Wonder if you have the same issue koen have had
with loading textures (he had it on xM). For me the theme while being
not extremely nice looking its atleast very easy to nav (except for the
lot missing gui windows and such).

The beagle theme in the build I have is a little difficult to use -
the black highlighting that shows up on the back background to tell
you what button you've selected doesn't help. Nor does the black
mouse pointer ... (in either theme).

Uhm, it should most definatly not have black highlight or black mouse
pointer :slight_smile: the highlight is meant to be bright blue and mousecursor is
same as in confluence... Wonder if you have the same issue koen have had
with loading textures (he had it on xM). For me the theme while being
not extremely nice looking its atleast very easy to nav (except for the
lot missing gui windows and such).

Hah yeah I figured something was up. Most of confluence works but the
mouse is black too (it'd be nicer if it just used the X mouse and be
done with it, the flickering of a manually created mouse is nasty).

incase it helps ...

Getting a lot of this in the log:

11:07:28 T:1114507040 M:184037376 INFO: msg: PICTURE::LoadImage:
Unable to open image: Error: (2)
11:07:28 T:1114507040 M:184037376 ERROR: Texture manager unable to load file:

an strace of xbmc.bin showing opens:

strace -e open -p 2762
open("/usr/share/xbmc/addons/skin.beagle/media",
O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|0x80000) = 19
open("/usr/share/xbmc/addons/skin.beagle/media/Textures.xbt",
O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
open("/usr/share/xbmc/addons/skin.beagle/media",
O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|0x80000) = 19
open("/usr/share/xbmc/addons/skin.beagle/media/Textures.xpr",
O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
open("/usr/lib/xbmc/system/ImageLib-arm.so", O_RDONLY) = 19
open("", O_RDONLY|O_NONBLOCK|O_LARGEFILE) = -1 ENOENT (No such file or
directory)
open("", O_RDONLY|O_NONBLOCK|O_LARGEFILE) = -1 ENOENT (No such file or
directory)
open("/usr/share/xbmc/addons/skin.beagle/media",
O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|0x80000) = 19
open("/usr/share/xbmc/addons/skin.beagle/media/Textures.xbt",
O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
open("/usr/share/xbmc/addons/skin.beagle/media",
O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|0x80000) = 19
open("/usr/share/xbmc/addons/skin.beagle/media/Textures.xpr",
O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
open("", O_RDONLY|O_NONBLOCK|O_LARGEFILE) = -1 ENOENT (No such file or
directory)
open("", O_RDONLY|O_NONBLOCK|O_LARGEFILE) = -1 ENOENT (No such file or
directory)
open("/usr/share/xbmc/addons/skin.beagle/media",
O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|0x80000) = 19
open("/usr/share/xbmc/addons/skin.beagle/media/Textures.xbt",
O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
open("/usr/share/xbmc/addons/skin.beagle/media",
O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|0x80000) = 19
open("/usr/share/xbmc/addons/skin.beagle/media/Textures.xpr",
O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
open("", O_RDONLY|O_NONBLOCK|O_LARGEFILE) = -1 ENOENT (No such file or
directory)
open("", O_RDONLY|O_NONBLOCK|O_LARGEFILE) = -1 ENOENT (No such file or
directory)
open("/usr/share/xbmc/addons/skin.beagle/media",
O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|0x80000) = 19
open("/usr/share/xbmc/addons/skin.beagle/media/Textures.xbt",
O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
open("/usr/share/xbmc/addons/skin.beagle/media",
O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|0x80000) = 19
open("/usr/share/xbmc/addons/skin.beagle/media/Textures.xpr",
O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
open("", O_RDONLY|O_NONBLOCK|O_LARGEFILE) = -1 ENOENT (No such file or
directory)
open("", O_RDONLY|O_NONBLOCK|O_LARGEFILE) = -1 ENOENT (No such file or
directory)
open("/usr/share/xbmc/addons/skin.beagle/media",
O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|0x80000) = 19
open("/usr/share/xbmc/addons/skin.beagle/media/Textures.xbt",
O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
open("/usr/share/xbmc/addons/skin.beagle/media",
O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|0x80000) = 19
open("/usr/share/xbmc/addons/skin.beagle/media/Textures.xpr",
O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
open("", O_RDONLY|O_NONBLOCK|O_LARGEFILE) = -1 ENOENT (No such file or
directory)
open("", O_RDONLY|O_NONBLOCK|O_LARGEFILE) = -1 ENOENT (No such file or
directory)

Some of the directories it was looking into:

notzed@beagleboard:~$ ls -l /usr/share/xbmc/addons/skin.beagle/media/
total 268
-rw-r--r-- 1 root root 55350 Aug 12 10:03 Highlight256x72.bmp
-rw-r--r-- 1 root root 156654 Aug 12 10:03 HighlightList.bmp
-rw-r--r-- 1 root root 3173 Aug 12 10:03 MenuItemNF.png
-rw-r--r-- 1 root root 7807 Aug 12 10:03 OverlayDialogBackground.png
-rw-r--r-- 1 root root 6231 Aug 12 10:03 button-focus.png
-rw-r--r-- 1 root root 4113 Aug 12 10:03 pointer-focus-click.png
-rw-r--r-- 1 root root 4104 Aug 12 10:03 pointer-focus-drag.png
-rw-r--r-- 1 root root 4098 Aug 12 10:03 pointer-focus.png
-rw-r--r-- 1 root root 4096 Aug 12 10:03 pointer-nofocus.png

notzed@beagleboard:~/.xbmc/temp$ ls -l /usr/share/xbmc/addons/skin.beagle/720p
total 60
-rw-r--r-- 1 root root 767 Aug 12 10:03 DialogBusy.xml
-rw-r--r-- 1 root root 2690 Aug 12 10:03 DialogProgress.xml
-rw-r--r-- 1 root root 685 Aug 12 10:03 Font.xml
-rw-r--r-- 1 root root 4403 Aug 12 10:03 Home.xml
-rw-r--r-- 1 root root 239 Aug 12 10:03 MyMusicNav.xml
-rw-r--r-- 1 root root 239 Aug 12 10:03 MyMusicSongs.xml
-rw-r--r-- 1 root root 249 Aug 12 10:03 MyPics.xml
-rw-r--r-- 1 root root 249 Aug 12 10:03 MyVideo.xml
-rw-r--r-- 1 root root 1081 Aug 12 10:03 Pointer.xml
-rw-r--r-- 1 root root 1213 Aug 12 10:03 VideoFullscreen.xml
-rw-r--r-- 1 root root 93 Aug 12 10:03 VideoOverlay.xml
-rw-r--r-- 1 root root 2785 Aug 12 10:03 ViewsFileMode.xml
-rw-r--r-- 1 root root 336 Aug 12 10:03 defaults.xml
-rw-r--r-- 1 root root 94 Aug 12 10:03 includes.xml
notzed@beagleboard:~/.xbmc/temp$ fg

Hmm interesting, it tries to read the. Xbt (texturepack) but it shouldn’t be needed. Need to look throughout the source for that failsafe code. Sadly iirc the texturepacker (which produces xbt) isn’t working on arm.

Cheers,
Tobias

that looks like the problem I'm having on xM