Previous day | Jump to hour: 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | Next day

Seconds: Show Hide | Joins: Show Hide | View raw
Font: Serif Sans-Serif Monospace | Size: Small Medium Large

Click in the nick column to highlight everything a person has said.
The Logo icon identifies that the person is a core developer (has commit access).

#rockbox log for 2009-12-19

00:00:47 Join fyrestorm [0] (
00:04:38stripwax__n1s - hm, it shouldn't need another register. i think anyway.
00:04:55 Quit krazykit ("Connection reset by beer")
00:05:06n1sstripwax__: r3 is trashed between the different bitrev calculations
00:05:25n1sthe XPROD32 uses r3 as an output
00:05:29 Quit fyrestorm (Read error: 54 (Connection reset by peer))
00:05:42 Join fyrestorm [0] (
00:06:04 Quit fyrestorm (Read error: 104 (Connection reset by peer))
00:06:46 Quit bzed (
00:06:46 Quit rasher (
00:07:03***Saving seen data "./dancer.seen"
00:07:07NJoinbzed [0] (
00:07:07NJoinrasher [50] (n=rasher@rockbox/developer/rasher)
00:08:36 Join krazykit [0] (
00:11:07 Part froggyman
00:11:15 Quit bzed (
00:11:15 Quit rasher (
00:11:49NJoinbzed [0] (
00:11:49NJoinrasher [50] (n=rasher@rockbox/developer/rasher)
00:12:56stripwax__n1s - I had something like: r3 = bitrev12(bit); x0 = x + r3 blah, x1 = x + r3 blah; ... then later on r3 = (1<<(11-shift)); x0 -= r3; x1 += r3; . Does that use an extra register? (I'm just doing r3 = (1<<(11-shift)) instead of r3 = bitrev12(bit) for the second iteration)
00:13:18 Quit bzed (
00:13:18 Quit rasher (
00:13:32NJoinbzed [0] (
00:13:32NJoinrasher [50] (n=rasher@rockbox/developer/rasher)
00:14:13stripwax__i.e. not actually doing an or/xor, but just adding/subtracting that bit from x0 and x1 as appropriate
00:14:42 Join GeekShad__ [0] (
00:14:59 Quit bzed (
00:14:59 Quit rasher (
00:15:17 Quit archivator ("Leaving")
00:15:20n1sah, i saved the result of bitrev and ored that with 1<<11, what you have should not use any extra register,
00:15:21NJoinbzed [0] (
00:15:21NJoinrasher [50] (n=rasher@rockbox/developer/rasher)
00:16:12 Quit GeekShado_ (Read error: 110 (Connection timed out))
00:17:48n1si'm too tired to see why what you do works though :)
00:18:34 Quit GeekShadow (Read error: 60 (Operation timed out))
00:19:22 Join saratoga [0] (i=9803c6dd@gateway/web/freenode/x-vzectqhtrsilecao)
00:21:53 Join mc2739_ [0] (n=mc2739@rockbox/developer/mc2739)
00:23:31stickboyi'm trying the auto installation on 64bit ubuntu 8.10 for a late 2006 ipod video and i keep getting a proxy error whenever i try anything. is it safe to continue?
00:24:00n1scontinue what?
00:24:35stickboynls trying to install. i haven't started the install yet, only selected my ipod. i'd rather not brick it, heh.
00:25:12n1syou can't brick an ipod by installing rockbox
00:25:25stickboyoh, ok. well then might as well give it a shot, lol.
00:25:57n1sthere is a manual way to install if rbutil doens't work for some reason, described in the manual too
00:26:32stickboythe file download failed giving http error 302
00:26:59 Quit saratoga ("Page closed")
00:27:18stickboyis that an issue or will it still function?
00:27:40n1syou don't really need that, rockbox will still work but you will have only a few fonts to choose from
00:28:21stickboyok, np then
00:29:03 Quit HBK ()
00:29:34 Join HBK [0] (
00:34:06 Quit n1s ("Lämnar")
00:34:45 Quit evilnick ("Page closed")
00:44:37 Join Riku [0] (
00:47:21 Quit Zaba (Connection timed out)
00:52:45stickboyi had a bunch of music on my ipod before putting rockbox on, and it got added to the database. how do i delete all of that old music from the device?
00:52:45 Quit mc2739 (Nick collision from services.)
00:52:54 Nick mc2739_ is now known as mc2739 (n=mc2739@rockbox/developer/mc2739)
00:54:04stripwax__stickboy - you could use itunes, presumably.
00:54:16stripwax__That is if you want to remove it completely.
00:54:42stickboyi'm on linux, no itunes.
00:54:52stripwax__or the linux equivalent, in that case.
00:54:58stripwax__Whatever you used to put it on there...
00:55:16stripwax__Alternatively you can delete the hidden folders that the ipod original firmware uses to store audio content
00:55:59stripwax__These are all inside the /Ipod_Control/Music directory
00:56:03 Nick stripwax__ is now known as stripwax (
00:56:47stickboystripwax, they were originally put on with itunes but i no longer have windows. trying to use linux to manage it but amarok doesn't see the device. so i was hoping to just delete the files and then drag and drop new files on.
00:57:04stickboydo i delete all of /Ipod_Control/ or just /Music ?
00:57:31stripwaxI don't use the original ipod firmware, so I don't know what else is in Ipod_Control that you may or may not want/need. I would, personally, just delete Music
00:58:07stripwaxThat will remove all of your audio content only
00:58:22stickboystripwax, then where would i place the new music files?
00:58:30stripwaxanywhere you want
00:58:40stripwaxUsing rockbox, the ipod is just a big file system.
00:58:50stripwaxOrganise it however you feel comfortable.
00:58:52 Quit mc2739 (Read error: 60 (Operation timed out))
00:59:24stripwaxI personally create a root /Music folder, then organise subfolders by artist name, etc, inside that
01:00:50stickboyok, thanks stripwax
01:01:35stripwaxno problem
01:02:24stickboystripwax, will deleting the files like this damage the database?
01:02:49 Quit Lss (Read error: 110 (Connection timed out))
01:03:25stripwaxno. if it thinks they're still there after the delete, you can just Update the database. If you have Update Automatically enabled, it should just apply the changes automatically
01:04:49stickboyok ty
01:08:25 Join mc2739 [0] (n=mc2739@rockbox/developer/mc2739)
01:09:14stripwaxstickboy - with rockbox, the actual files are the main thing, the primary information. everything else (incl the database) is just 'gravy'
01:10:21stickboystripwax, hm, interesting
01:10:28 Join Tomis [0] (n=Tomis@
01:13:38 Quit panni_ (Read error: 54 (Connection reset by peer))
01:14:12 Join panni_ [0] (
01:23:34CIA-6New commit by stripwax (r24079): Get rid of fft-ffmpeg trig table initialisation and DIRECTLY use the sincos_lookup0 tables (same ones tremor mdct uses) for the fft twiddle factors. ...
01:23:39stripwax^ mdctexp again
01:30:58 Join saratoga [0] (i=463f90ed@gateway/web/freenode/x-zktmvfbcdzvbemag)
01:31:57stripwaxso good news and bad news. good news is I've removed the fft trig tables. bad news is it's hit performance (slightly .. something like 0.5%)
01:32:28 Quit bertrik ("De groeten")
01:32:29stripwaxbut obv. i'm not super concerned with optimising *yet* for this part.
01:32:55stripwax96kbps vorbis decodes at 36MHz on ipod 5g target versus something like 28MHz in trunk
01:33:22saratogastripwax: nice work
01:33:24stripwaxhand-optimising some of the smaller ffts should be a chunky win, I think.
01:33:33stripwaxI'd *love* to be able to profile it ....
01:33:46stripwaxhey - n1s - if you're around - any chance you could profile this on your beast?
01:34:41 Join Galois [0] (
01:36:00saratogastripwax: does mdct.c still use its own trig tables?
01:36:16stripwaxfor now, yes.
01:36:32 Join Tomis2 [0] (n=Tomis@
01:36:46stripwaxI tackled fft first since it was a mess. used a different format (s15.16 vs s.31 in mdct.c and tremor)
01:37:11stripwaxso now fft and mdct both using s.31 format trig tables. next step would be making mdct use the same s.31 trig tables as fft/tremor
01:37:21saratogaare you sure? i think all the trig tables were s.31
01:37:26stripwaxin fft, no.
01:37:38stripwaxhence the fft[i] = temp>>15; stuff
01:37:55stripwaxfsincos returns a value 0<x<0x7ffffff and then fft mangles into 0
01:38:34saratogaoh wow
01:38:35stripwaxand then uses separate s15.16 mult functions which use more instructions than the easier s15.16 ones
01:39:00stripwaxall that "fixmul32" stuff. now, gone... :)
01:39:11stripwaxreplaced by fixmul32b, which is same as MULT31 in tremor.
01:39:20saratogayeah i wrote those functions
01:39:55stripwaxwhich ones, fixmul32 or fixmul32b? if the former, you'd seen that #define PRECISION 16 thing? :-)
01:40:32saratogaPaul Jones wrote that and I never got around to removing it
01:42:17saratogaif you want an idea where the new mdct spends its time, it'd be pretty easy to just comment out the call to ff_fft_calc_c and run test codec
01:42:39Unhelpfulwouldn't 1.0 == (1<<x) be easier when it comes to descaling values than 1.0 = (1<<X)-1?
01:44:28 Quit dfkt ("-= SysReset 2.53=- Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn.")
01:45:05stripwaxsaratoga - yeah, but I'd really like function-level profiling, like n1s claims he can get on his beast :) I still don't know why profiling recently aborts/chokes on my ipod
01:45:37saratogastripwax: fwiw i don't think profiling the new fft is going to work very well, since its all written in the preprocessor
01:46:37stripwaxall those functions are still functions though, no? fft32, fft64, etc. it just so happens they're implemented in macros, but those macros still define real functions ..
01:47:10stripwaxit's not like anything's actually inlined... btw, that would probably improve a couple of things ...
01:48:09saratogahmm you're right
01:50:54 Join AaronM [0] (
01:50:54 Quit Tomis (Read error: 110 (Connection timed out))
01:50:55 Nick Tomis2 is now known as Tomis (n=Tomis@
01:59:07saratogastripwax: is it possible to get gcc to generate a version of fft-ffmpeg with the preprocessor defines fully substituted?
01:59:25stripwaxyeah, although I don't remember how exactly
02:01:32saratoga-E apparently
02:05:59saratogastripwax: in case you're interested:
02:07:06***Saving seen data "./dancer.seen"
02:07:49stripwaxsaratoga - nice ..
02:15:08 Join fenugrec [0] (
02:17:02 Join killsforpie [0] (
02:17:53saratogai guess also using one of the ASM functions for complex mul would be a lot faster then all those blocks of fixmuls
02:18:13stripwaxthose fixmuls expand to asm tho
02:18:21stripwaxbut yeah, I think so
02:18:47stripwaxusing CMUL directly (XPROD/ etc)
02:19:04stripwaxmdct.c uses CMUL by the way
02:19:06saratogastripwax: back in the day we had an optimized CMUL function for wma and it was a little faster IIRC
02:19:07saratogaoh ok
02:19:21stripwaxit's still there
02:19:28stripwaxsame as XPROD31 iirc
02:19:38saratogamore readible
02:19:57stripwaxthat's the old code right?
02:20:09stripwaxi.e. not after my changes
02:21:15saratogaoh yeah sorry
02:21:16saratogalet me fix it
02:23:18 Quit knin (Read error: 60 (Operation timed out))
02:24:01 Quit bluebrother (Nick collision from services.)
02:24:03 Join bluebroth3r [0] (n=dom@rockbox/developer/bluebrother)
02:25:35 Join poddy [0] (
02:26:03 Nick poddy is now known as Guest96905 (
02:26:45 Join twilightened [0] (
02:28:59 Quit twilightened (Client Quit)
02:30:35 Quit Guest96905 ("CGI:IRC (Ping timeout)")
02:31:25 Join webguest84 [0] (
02:31:32webguest84hello there again
02:32:02webguest84i have a sansa e200v2 and im having problems with rockbox
02:34:50saratogai don't see what the difference between PASS and PASS_BIG is
02:34:57 Join test [0] (i=5e013928@gateway/web/freenode/x-wmscpgbbmjbensyu)
02:35:14 Quit test (Client Quit)
02:35:40 Part fenugrec ("Leaving")
02:37:10stripwaxsaratoga - check out the #undef of BUTTERFLY above the definition of PASS_BIG. PASS_BIG implements a pass function that uses BUTTERFLY_BIG
02:38:35 Join webguest67 [0] (
02:38:35 Quit webguest84 ("CGI:IRC (EOF)")
02:38:39stripwaxbut I don't really understand the usefulness or otherwise of butterfly_big
02:39:05webguest67it says that theres a undefined instrustion at and a long number
02:39:11webguest67do u need the number?
02:41:22webguest67twice now i have downloaded and installed rb on my sansa and it plays fine i even reboot the player several times while at my puter
02:42:02webguest67and while im listenin to a song usually only about 30 mins of listenin it stops playing and i have to reboot then it wont play at all
02:42:56saratogawhat svn number are you using?
02:43:24webguest67are you talking to me and if so what is svn?
02:43:27 Join mc2739_ [0] (n=mc2739@rockbox/developer/mc2739)
02:43:41 Quit mc2739 (Nick collision from services.)
02:43:45 Nick mc2739_ is now known as mc2739 (n=mc2739@rockbox/developer/mc2739)
02:43:48saratogawebguest67: yes you, and I mean the SVN version of rockbox that you installed
02:44:03saratogabasically what are you running on your sandisk player
02:44:07stripwaxi.e. the version number, that it displays when you turn on rockbox (e.g. "r27474")
02:44:25webguest67ok r24036-091216
02:45:44saratogathat version has issues with disk corruption on the e200v2
02:45:55 Quit stripwax (Read error: 104 (Connection reset by peer))
02:46:03saratogayou should probably update to a newer version, and if that doesn't fix the issue reformat your player and reinstall rockbox
02:46:44webguest67ok i had an earlier version that worked fine
02:47:12webguest67and on the format thing can i just format with windows or do i need a special prog
02:47:47saratogai think the OF can format itself or windows should work
02:47:52saratogabut i am not sure
02:48:43webguest67ok will i know theres a few special steps to get ams to boot rb after i format will i have to do those again?
02:50:11saratogayou'll definately loose your rockbox install, i'm not sure if the OF will still be patched
02:50:18saratogaif you format in windows it will still be
02:50:37webguest67ok thanks ill give it a go thanks for the help
02:52:23*Unhelpful is starting to wonder if fixed-point log2(x) might be faster using some multiplies and no LUT... log(x) for 1<=x<=2 can be approximated by x*1.34267 - x^2*0.34267, and the result is very accurate, nearly to the full 14 fractional places that libfaad uses...
02:57:54 Join CaptainKewl [0] (
03:02:08 Quit grndslm (Remote closed the connection)
03:17:15 Join MethoS- [0] (n=clemens@
03:19:22 Quit saratoga ("Page closed")
03:21:48 Join panni__ [0] (
03:23:30 Quit iamdooser ("Page closed")
03:24:04 Quit panni_ (Read error: 54 (Connection reset by peer))
03:24:53 Join panni_ [0] (
03:41:47 Quit panni__ (Read error: 113 (No route to host))
03:45:32 Join kugel_ [0] (
03:46:37 Quit webguest67 ("CGI:IRC")
03:48:45 Join FOAD_ [0] (
03:50:03Unhelpfullog(1+x) that is, clearly :)
03:50:07 Quit FOAD (Read error: 60 (Operation timed out))
03:50:07 Nick FOAD_ is now known as FOAD (
04:02:15 Quit BlakeJohnson86 (Read error: 104 (Connection reset by peer))
04:02:40 Join BlakeJohnson86 [0] (
04:06:10 Join jac0b [0] (
04:06:35 Part jac0b
04:07:10***Saving seen data "./dancer.seen"
04:14:39 Join Tomis2 [0] (n=Tomis@
04:29:41 Quit BlakeJohnson86 ("Leaving.")
04:31:37 Quit Tomis (Read error: 110 (Connection timed out))
04:31:37 Nick Tomis2 is now known as Tomis (n=Tomis@
04:31:49 Join BlakeJohnson86 [0] (
04:32:33 Quit BlakeJohnson86 (Client Quit)
04:33:09 Join BlakeJohnson86 [0] (
04:34:36 Join flyback [0] (
04:34:45flybackanyone hacked together a f flex to cf adaptor?
04:35:35*flyback doesn't really want to buy a replacement mechnical 5gb hd for his iriver
04:41:46 Join Tomis2 [0] (n=Tomis@
04:43:43 Quit MethoS- (Remote closed the connection)
04:54:19 Quit GeekShad__ ("The cake is a lie !")
04:57:00 Quit Tomis (Read error: 110 (Connection timed out))
04:57:01 Nick Tomis2 is now known as Tomis (n=Tomis@
05:12:52 Quit darkham (Client Quit)
05:21:25 Quit kugel_ (Read error: 113 (No route to host))
06:07:12***Saving seen data "./dancer.seen"
06:22:39 Join Llorean1 [0] (
06:25:11 Join Xerion_ [0] (
06:26:33 Join guest431 [0] (
06:26:43 Quit guest431 (Client Quit)
06:26:52 Join vander [0] (
06:27:51 Quit panni_ ("( :: NoNameScript 3.81 :: )")
06:31:54 Quit vander ("CGI:IRC (Ping timeout)")
06:37:32 Join froggyman [0] (
06:40:29 Quit Llorean (Read error: 110 (Connection timed out))
06:41:34 Quit Xerion (Read error: 110 (Connection timed out))
06:41:35 Nick Xerion_ is now known as Xerion (
06:43:24 Join grndslm [0] (
06:47:44 Join MickeyShine [0] (n=chatzill@
06:57:07MickeyShineHi, I've just confirmed that iAudio 9 is using Telechip 7901 and is that enough to gather all the rest information needed according to ?
06:58:07 Join krazykit` [0] (
07:03:37 Quit krazykit (Read error: 60 (Operation timed out))
07:08:08 Join Horschti [0] (n=Horscht2@xbmc/user/horscht)
07:17:12 Join tomers [0] (
07:26:32 Quit Horscht (Read error: 110 (Connection timed out))
07:26:45 Part froggyman
07:28:22 Quit CaptainKewl (Read error: 60 (Operation timed out))
07:43:37 Join BHSPitLappy [0] (n=BHSPitLa@unaffiliated/bhspitmonkey)
07:47:59 Join Tomis2 [0] (n=Tomis@
07:48:26 Quit Tomis (Read error: 60 (Operation timed out))
07:48:26 Nick Tomis2 is now known as Tomis (n=Tomis@
07:51:58 Quit AaronM ("psycho_oreos wouldnt know that from experience tho would he ;D also g'night")
08:07:15***Saving seen data "./dancer.seen"
08:14:56 Join FOAD_ [0] (
08:19:44 Join OmegaFrog [0] (
08:20:05 Part OmegaFrog
08:20:51 Join OmegaFrog [0] (
08:24:33 Part OmegaFrog
08:29:14 Quit FOAD (Read error: 110 (Connection timed out))
08:29:14 Nick FOAD_ is now known as FOAD (
08:30:19 Join kaniini [0] (
08:31:01 Quit kaniini (Client Quit)
08:31:04 Join kaniini [0] (
08:31:46 Join mc2739_ [0] (n=mc2739@rockbox/developer/mc2739)
08:37:18 Quit tomers ("ChatZilla 0.9.86 [Firefox 3.5.5/20091109125225]")
08:45:23 Quit mc2739 (Read error: 110 (Connection timed out))
08:53:20 Join Kitr88 [0] (n=Kitarist@
08:53:44 Quit stickboy ("Leaving")
08:59:08 Quit killan (Read error: 60 (Operation timed out))
09:01:13 Join petur [0] (
09:11:24 Quit Kitar|st (Connection timed out)
09:11:39 Join Kitar|st [0] (
09:11:50 Quit Kitr88 (Success)
09:16:10 Join n1s [0] (n=n1s@rockbox/developer/n1s)
09:24:46n1sstripwax: (for the logs) if you tell me what to do i'd be happy to profile on my beast, only the function symbol −− address matching seems broken as i told you
09:34:48Unhelpfulinteresting, beast throws unknown instruction on vfp double instructions :/
09:35:11Unhelpfulaaaaand same with float. i thought we knew this thing had the VFP coprocessor?
09:36:20amiconnPerhaps it needs to be enabled first?
09:36:52Unhelpfulamiconn: i had no idea we might need to do such a thing... any idea how? :/
09:38:45Unhelpfulalso there doesn't seem to be much information on timing for vfp instructions... so this log2_int is certainly fewer *instructions* than the existing one, but i have no idea if it will be faster or slower. quite possibly slower as it has just as many loads (for fp constants)
09:40:08Unhelpfulgcc is also not too clever about those loads... given the massive excess of available registers in terms of what the math needs, i'd have put all of the loads at the beginning, before i even get the integer input converted to float. gcc just stuffs them right before the op that uses the constant :/
09:42:48amiconn"Access to the VFP11 coprocessor is controlled by the ARM11 Coprocessor Access Control Register. The coprocessor access rights must be configured correctly before any VFP11 instructions may be executed. Refer to the ARMVFP11 Technical Reference Manual for detailed information."
09:43:10amiconnThat's from the i.MX31 reference manual
09:45:26Unhelpfuli happen to have a copy of that. i'm starting to think that it might be better to do this same math with umull/umlal... i can save myself some conversion trouble there, but at the cost of a register
09:48:41 Join niekie [0] (i=quasselc@CAcert/Assurer/niekie)
09:49:36amiconnarm_DDI0100I.pdf page B3-16
09:50:09amiconnSet fields cp10 and cp11 to full access
09:50:47amiconn"After a system reset all coprocessor access rights are set to Access denied."
09:53:20*amiconn thinks this should happen in the core's crt0
09:54:14Unhelpfulis there any cost to it being enabled... ie is it powered off when disable, or is access simply being blocked?
09:54:17 Join bertrik [0] (
09:54:39amiconnI don't know
10:03:09amiconnI wouldn't think so, as these bits are described as controlling access
10:07:18***Saving seen data "./dancer.seen"
10:16:27Unhelpfulah, i found the timing. umull or smmul will almost certainly be faster - nearly all ops have throughput of 1 cycle but latency fmac, fmul, etc is 8 and on fld is 4.
10:16:56n1sok, so profile_read just uses the objdump -t output so either objdump is wrong or the profiling code is
10:17:44 Join flydutch [0] (
10:21:39 Quit MickeyShine (Remote closed the connection)
10:22:48*n1s votes for the profiling code, but has nfi how it works
10:26:32 Join Grahack [0] (
10:27:07n1sUnhelpful: latency of 8 cycles?!
10:31:19 Quit bertrik ("router reset")
10:32:02Unhelpfuln1s: yes, for floating-point instructions. it *still* might be worth using the VFP unit for things like division by non-constant values... although fdivis even worse, it has throughput of 15 cycles and latency of 19 for single-precision, or 29/33 for double.
10:33:27n1swow, i thought fpu divisions should be reasonably fast
10:34:01Unhelpfuland converting the inputs from ints has a latency of 8 as well ;)
10:34:39Unhelpfulit still might well be faster than an integer division routine :)
10:35:07 Join bertrik [0] (
10:38:33amiconnOn arm, certainly
10:39:34 Quit GodEater (Remote closed the connection)
10:39:54n1sisn't the clz thing supposed to speed up integer division
10:41:23Unhelpfuln1s: it only lets you quickly figure out how large the inputs are
10:41:48Unhelpfulyou still have to shift, subtract, set a bit in the output, and repeat
10:46:11Unhelpfulclz just lets you quickly start at the highest set bit instead of iterating over a bunch of 0 bits. you still take a *lot* of time doing the actual division, so 8 cycles each to convert the two inputs and the result, and 19 cycles to do the actual division, is still a win.
10:46:40Unhelpfulor 33 for the division if you want to make sure you have full precision for 32-bit inputs
11:07:31Tornethere is no cost to having the VFP enabled in CAR, no
11:07:50Torneyou also need to set FPEXC.EN to 1 for it to work but that may be true at reset
11:08:09Tornethere exist ARM cores where the VFP/NEON is in a seperate clock domain but the i.MX31 isn't one of them as far as I know
11:09:32Torne(and on the ones where it is, it's explicitly set int he clock/power management unit)
11:12:41Tornealso make sure it has exceptions disabled and flush-to-zero set or it'll die with an undef abort the first time you do an operation with a denormal result ;)
11:12:49Unhelpfulwe also don't save or restore vfp state at all... although this should not matter for code that assumes it must always load its operands itself and does not check for any exceptions, should it?
11:15:09Torneyou can't have exceptions turned on anyway
11:15:16Tornethey cause bounces to support code we don't ahve
11:15:31Tornebut yeah, there's no need to save and restore the context if nothing has to live through a yield
11:16:31Torneif somethign *does* want to live through a yield, also, there's always lazy context switching
11:17:10Torne(clear FPEXC.EN on context switch instead of saving the VFP context, and when you take an undef abort save and restore the VFPc ontext then) :)
11:19:53Unhelpfulit's not *entirely* clear how we'd disable exceptions... or are none generated if FPSCR.DN and .FZ are set?
11:20:28Torneset DN and FZ stops bounces from denormals and NaNs
11:20:37Tornenot setting any of the trap bits disables the traps
11:20:52Tornethen there are no undef aborts, as long as EN is on and CAR allows access
11:21:00 Quit Grahack (Remote closed the connection)
11:23:00UnhelpfulTorne: the IXE, OFE, and IOE bits in FPSCR are the ones you're referring to?
11:24:49Unhelpfulthen i think i know everything i need to set up, what would the best place in crt0 be for VFP setup?
11:24:59Tornedoubt it matters
11:26:39Unhelpfulexcept in terms of readability :)
11:26:58Tornewell yes but i'm sure you can judge that as well as I :)
11:27:50Unhelpfulhrm, shame we can't get gcc to inline fp ops for divison... unless there's some math flag i don't know to do the job?
11:28:10Tornewell, for everything
11:28:11Tornenot just for division
11:29:11 Quit mc2739_ (Read error: 60 (Operation timed out))
11:29:32Torne-mhard-float -mfloat-abi=softfp -mfpu=vfp -ffast-math
11:29:34Torneor similar
11:29:56Tornesoftfp ABI tells it not to us VFP registers for function args/return value
11:30:27 Join mc2739 [0] (n=mc2739@rockbox/developer/mc2739)
11:32:52 Join DerPapst [0] (
11:33:03 Quit nossracer ("CGI:IRC (EOF)")
11:34:08Unhelpfulsorry, i meant to say, for integer division :)
11:34:53*Torne stays out of that one :)
11:34:55*Torne hates arithmetic
11:35:25Torneyou can just shove it in __aeabi_idiv though, no?
11:35:30Torneor the non-eabi equivalent
11:35:41Torneprobably as good as inlining it really
11:37:29*Torne tries his hacked up test_disk on an *unmodified* build and it still hangs.
11:37:31 Join stoffel [0] (
11:38:54 Join Grahack [0] (
11:39:15Unhelpfulwell, for full precision divides of 32-bit values we'd need to use doubles, and it appears the divider has a latency of 33 cycles for double divisions. it certainly *seems* as though call overhead wouldn't count for much there :)
11:39:57Unhelpfulhaving a DIV macro that cast one operand to double would also do, but would mean using that wherever there's a division
11:40:21Torneis that really worth it if it takes that long?
11:42:04Tornegah, what does -52 mean from the disk code?
11:42:13Tornei can't find it anywhere
11:44:12Unhelpfulit means "we should return -LINENO or -E<something>" on error :)
11:44:42Tornethis is particularly annoying since it's returning that from ata_read_sectors
11:44:48Tornewhich i rewrote the other week
11:44:52Torneand i know there are no -52's in it
11:45:14Unhelpfuli'm trying to think of a way to incorporate a hash of the filename but i don't think that can be made compile-time constant :/
11:45:56Tornesure it can
11:46:00Unhelpfulunless we wrap the compiler with a script that hashes the filename and passes it in as a define :)
11:46:00 Join mrkiko [0] (
11:46:08Tornewell, i think
11:46:25Tornesubscript __FILE__ to pick a few chars out and multiply them together, or something
11:47:22Unhelpfulhrm... it *does* say __FILE__ is a string constant.
11:47:39TorneYah, it expands to a string literal
11:48:01Tornei'm not guaranteeing that will work..
11:48:08Tornebut a trivialish hash should be posible
11:48:51Unhelpfulyes, but doing it outside means 1) we could always use the path relative to the src dir as the hash input 2) we can use a *nice* hash :)
11:49:20Torneok there is no way for ata_read_sectors to return -52
11:49:22Tornenone at all
11:49:36Unhelpfuli think a problem with __FILE__ is going to be that there will be a prefix of variable length attached to the value
11:49:42TorneAh, yes
11:50:02Unhelpfulso we need to hash the *end* of the literal... and that's a can't-happen if we want to keep things constant.
11:50:19Tornecan you just check i'm not going mad her? I think every possible return value of ata_read_sectors is directly there in the source and never goes over -7
11:50:25Tornein firmware/drivers/ata.c
11:50:44Tornethat's also not true, btw
11:51:00Torneyou can fake negative indexes using compile time constant logic :)
11:51:04Unhelpfulah! of course. :)
11:51:48Unhelpfuldoing them outside of the source lets us enter all of the hash values for source files in a nice table in the build dir, though. :)
11:52:02Torneyou can write a script that does that anyway
11:52:03 Quit BHSPitLappy (Read error: 110 (Connection timed out))
11:52:13Torneanyway it wasn't a serious suggestion. ;)
11:52:22Tornejust pointing out that it probably *is* possible
11:52:32Torneif you are sufficiently demented/brave
11:53:41Tornethe real ata_read_sectors can't return -52 but the one for large physical sector emulation can
11:54:03Torneit does some crazy thing where it multiplies someone else's error by ten and subtracts one..
11:54:39Torneor two
11:54:57Torneso it actually means -5
11:55:07Tornetimed out waiting for RDY/DRQ
11:56:05Torne...why do I get that *every time*?
11:56:45Tornethis build isn't even modified
11:58:59Tornedisk access clearly works, because, er, i'm using it
11:59:32 Quit Grahack ("Tu m'as vu ?")
12:00:06 Join Grahack [0] (
12:00:23UnhelpfulTorne: i noticed instances of return-upstream-error*X in other places before. makes my scheme sound sane, really. :P
12:00:28Tornehang on, i'm a total idiot
12:00:48Tornethe ata code doesn't make any attempt to handle requests for more than the maximum number of sectors
12:01:44Torneso reading 16384 sectors is not going to work
12:02:32Tornethe limit is 256 on lba28
12:02:56Tornethat'll teach me to write a benchmark that's *clever*
12:03:27Unhelpfulat least it wasn't so clever that you couldn't debug the error :)
12:04:03amiconnImo that behaviour of the ata driver should be fixed
12:04:16bertrikmaybe there should be a panic when trying to read more than possible?
12:04:22amiconnSince the ata driver doesn't do it, the fat driver limits transfers to 256 sectors
12:04:25Tornebertrik: it could just *do* it, it's not hard
12:04:42amiconnThis is sub-optimal for all other storage drivers
12:04:43Torneamiconn: sounds like a good plan
12:05:39amiconnIt's even sub-optimal for ata when lba48 is in effect (because then the maximum sector count is 65536 sectors)
12:05:49Torneyeah. i'll do that later, then
12:05:53Tornefsvo later
12:06:04Tornei suspect i will actually be too drunk later.
12:06:35 Part Grahack
12:06:59Tornein the meantime, i wonder if this benchmark now works
12:07:21Torneinterestingly the DMA code hides the fact that you are passing a number that's too big quite nicely :(
12:07:22***Saving seen data "./dancer.seen"
12:07:45Torneif you ask for too many sectors in PIO it dies with -5 at some pointt during the transfer, but DMA just silently does the wrong thing
12:08:50Tornei should've noticed this when i was refactoring ata_transfer_sectors but i guess at least i didn't make it worse
12:08:59Torne(well noboydy has complained that their player is broken since i did)
12:11:58amiconnThe fat driver does the limitation atm, so unless you're doing raw ata benchmarking, everything is safe
12:12:26Torneyeah, i meant broken because i changed loads of stuff in ata.c in general
12:12:30Tornenot because of this specifically :)
12:12:58Torneread speeds of 25KB/s
12:13:02Tornei think my math is off
12:14:22Tornealso this is taking like a trillion years
12:14:57Unhelpfulwe only need to take 12 bits of a decent hash to be sure that hashes of our filenames are unique... so we crc or md5 the filename and pass 12 bits of it as -DFILEHASH, and then have an ERRNUM macro that's something like (__LINENO__ << 12 | FILEHASH)
12:15:34 Quit z35 (Remote closed the connection)
12:15:38Tornethat sounds pretty delicious :)
12:16:12Torneguaranteed-unique beats human-guessable
12:16:38Unhelpfulwell, it gets a bit yucky for inline functions. :/
12:16:57 Join bmbl [0] (n=Miranda@unaffiliated/bmbl)
12:18:16Unhelpfuleven so, this sounds like something that might actually *not* be a bad idea to do...
12:19:00Torneand my benchmark now works!
12:19:13Torneat least on a standard build
12:19:18Torneneed to put DMA back in
12:19:27 Quit DerPapst (Read error: 104 (Connection reset by peer))
12:21:44Unhelpfulinline functions could be handled by having them take a filehash argument if they use ERRNUM and then doing #define inlinefunc(...) inlinefunc(FILEHASH,__VA_ARGS)
12:23:08 Join shai [0] (
12:24:26 Join DerPapst [0] (
12:24:29 Join stripwax [0] (
12:25:28Unhelpfulprobably could count inlines that return negative on error on one hand :)
12:26:19Unhelpfuli'm going home soon, anyway... if i don't see any arguments as to why this is a very stupid idea maybe i'll take a shot at it.
12:26:32killsforpieHello, I was wondering if I could get write access to the wiki? My username is ElliottJordan. I would like to add some information about testing my ipod with my car stereo in the ipod accessories page.
12:26:46Tornesure, one sec
12:29:05killsforpieGreat, thanks again.
12:30:29Tornethanks for testing :)
12:32:37killsforpieNp, I was surprised how much worked
12:37:08n1sUnhelpful: we already use a macro for unsigned division in some(?) codecs (at least APE) as amiconn made some optimization to the udiv routine and put it in iram
12:37:36Tornekillsforpie: creposucre has been working on IAP support lately, it's greatly improved ;)
12:38:21 Join dfkt [0] (i=dfkt@unaffiliated/dfkt)
12:38:39amiconnn1s: That optimisation is only for ARMv4 though. For ARMv5+ libgcc already has similar code, just the ARMv4 implementation there is crap
12:40:01 Quit yosafbridge ("Coyote finally caught me")
12:40:04n1samiconn: yeah, just meant that the macro is used so we can hook in the fp div routine there
12:40:08killsforpieTorne: Great, yeah sometimes I can navigate through my playlist using the track skip buttons
12:40:11 Join yosafbridge [0] (
12:40:24amiconnAnd it's for unsigned division only
12:41:17n1samiconn: yeah, is there the same potential for signed division? tremor uses that a bit at least so might help arm alittle
12:41:29*amiconn wonders what's wrong with the current error return method (callee error * 10 + own error)
12:42:01amiconnThe only (small) issue with it is that *10 isn't as efficient as *0x10 would be
12:42:33Tornehang on these benchmark numbers are in the wrong unit
12:42:47*Torne is not having much luck today
12:42:50amiconnn1s: Iirc libgcc implements signed division using unsigned division + some pre/postfixing
12:43:17amiconnSo yes, the optimised implementation could be extended to signed division as well
12:43:37Tornewhat's the tick frequency?
12:43:47stripwaxwhere does tremor do signed division? (is that just in render_line or somesuch?)
12:44:01stripwaxI'd be amazed if that was a significant contributor to slow performance
12:44:16amiconnFor APE, speedup was significant because the range decoder does a lot of division
12:51:55 Join GodEater_ [0] (n=godeater@
12:52:49*Torne gets it in the right units after only four goes. :)
12:53:16n1sstripwax: yeah, render_point it was using inline asm for coldfire before we swithced gcc to use a target with hw div so it might affect speed a bit
12:54:01stripwaxI seem to remember on arm that render_point used about 0.1% of total decode time.
12:54:34 Quit killsforpie ("CGI:IRC")
12:54:48 Join GodEater__ [0] (n=godeater@
12:54:51 Quit GodEater__ (Client Quit)
12:55:20 Quit bmbl ("Bye!")
12:55:34 Join bmbl [0] (n=Miranda@unaffiliated/bmbl)
12:56:19stripwaxActually 0.6% .. Here, I've put it on pastebin now -
12:57:05stripwaxOne thing to note about that is that I split the mdct_backwards code into several subsections so you see a profile score against each one (_step1, _step2, etc)
12:57:15n1sok, probably not worth the effort then :)
12:57:38stripwaxyeah, probably not :)
12:58:35stripwaxThe final unrolling can also be improved by using multiple load/stores (the asm generated right now looks pretty awful) - but again probably not worth it as that's 2%-ish and could probably be improved to 1%-ish.
12:58:59stripwaxThe meat is still in the butterflies (really the whole mdct) and in decode_packed_block (really the whole bitstream stuff)
12:59:13 Quit stripwax ("")
13:00:24 Join teru [0] (
13:11:52 Join Cal [0] (
13:12:19 Nick Cal is now known as Guest61768 (
13:13:45Guest61768which media player preforms the best with rockbox?
13:14:12 Quit GodEater_ (Read error: 110 (Connection timed out))
13:15:06 Join robin0800 [0] (
13:17:22Tornewhat do you mean?
13:22:33markunGuest61768: I also don't understand the question
13:22:46Guest61768for video
13:23:07Torneyou mean which video codec?
13:23:37markunGuest61768: we only have this video player:
13:23:52Guest61768oh thank you
13:24:09markunTorne: correct me if I'm wrong :)
13:24:37Guest61768ya mpg on an ipod video runs horrible in rockbox.
13:24:48Torneyes. the ipod video has a very slow cpu and a very large screen
13:24:55Tornethat's an unfortunate combination
13:25:08Guest61768but thats ok im buying new player
13:25:11Torneyour only realistic option for video is to use the original firmware and sync them via itunes
13:25:22Tornebecause the OF can use the video accelerator hardware
13:25:41markunGuest61768: which player are you going to buy?
13:26:09Guest61768right i want to get a new media player, i dont know, which runs video best for rockbox.
13:27:01Torneprobably gigabeat S?
13:27:35Tornealso has quite a large screen but a much more powerful cpu
13:28:41 Join fyrestorm [0] (
13:30:48 Join killan [0] (
13:32:30Guest61768Another question, my ipod 2g nano boots into a white screen when fully charg, but luckly rockbox still plays music.
13:33:00Guest61768Keep up the good work.
13:33:03 Quit Guest61768 ("ChatZilla 0.9.85 [Firefox 3.0.15/2009101601]")
13:34:38 Join funman [0] (n=fun@rockbox/developer/funman)
13:37:32Unhelpfulamiconn: is there any reason we don't just give your udiv routine the abi name that gcc calls for division, instead of having a macro? although a macro *does* make it nice and easy to use x / (double)y on beast...
13:38:26 Join robin0800_ [0] (
13:39:42Unhelpfulamiconn: the 10* callee + own formula gets tricky when you don't know which callee threw the error, etc. wouldn't encoding the source file and line number always tell you *exactly* where it happened, with some variations if inlines are involved?
13:51:07 Quit robin0800 (Read error: 110 (Connection timed out))
13:53:34amiconnYou'd lose the call chain that lead to the final error
13:54:34*n1s stares blankly at profile.c
13:54:35amiconnYou should always know which callee threw the error by looking at the caller error
13:55:30 Join balug_ [0] (
13:55:44amiconnI rather wouldn't try to override the libgcc routine, for several reasons
13:56:48amiconn(1) It depends on linking order whether the optimised routine is used, with no notice if it isn't. (2) Who guarantees that the libgcc function name stays the same?
13:57:26amiconn(3) It would hide what's going on
14:00:39Unhelpful(4) gcc might make wrong assumptions about caller/callee locality...
14:00:54teruwhen will freeze start?
14:01:03 Join GeekShadow [0] (n=Antoine@reactos/tester/GeekShadow)
14:05:21 Quit Sajber^ (Read error: 104 (Connection reset by peer))
14:06:27 Quit funman (Read error: 113 (No route to host))
14:07:25***Saving seen data "./dancer.seen"
14:14:16n1steru: when we are comfortable with it :) looks like around christmas though
14:15:56terun1s: ok. thanks.
14:15:56 Quit flydutch ("/* empty */")
14:31:15 Quit stoffel (Read error: 110 (Connection timed out))
14:41:05 Join dar02 [0] (
14:41:07 Join stoffel [0] (
14:42:48 Quit dar02 (Client Quit)
15:07:42 Join FOAD_ [0] (
15:22:13 Quit FOAD (Read error: 110 (Connection timed out))
15:22:13 Nick FOAD_ is now known as FOAD (
16:03:35 Quit teru ("Quit")
16:07:28***Saving seen data "./dancer.seen"
16:25:53 Join Jaykay [0] (
16:30:28 Join fdinel [0] (
16:40:19 Join kugel [0] (n=kugel@rockbox/developer/kugel)
16:40:52kugelWhat could be the reason that my own mails to the dev ml take so long to "come back to me"?
16:41:24kugelLlorean's answer arrived before I saw my own mails. This is no problem on other MLs where I see my own mails instantly
16:43:49 Join CaptainKewl [0] (
16:44:04 Join CaptainKwel [0] (
16:47:14 Quit fyrestorm ("Ur skills' fireproof like a wooden panel -- U got feds talking leet on your IRC channel!")
16:52:30B4gderthis list has this suspicious domain name...
16:56:35 Join AaronM [0] (
16:59:07 Quit Llorean1 (Read error: 104 (Connection reset by peer))
17:01:15kugelcool, haxx or se? :)
17:01:41B4gderall of them!
17:01:58B4gderbut more seriously, the word "haxx" does trigger weird things at times
17:02:14 Quit CaptainKewl (Read error: 110 (Connection timed out))
17:02:33B4gdernot that it explains why one mail would be faster than another
17:19:07 Join ryvitlr [0] (
17:23:39 Quit krazykit` ("Connection reset by beer")
17:24:18 Quit DerPapst ("Leaving.")
17:25:26 Join krazykit [0] (
17:25:41 Join froggyman [0] (
17:30:00 Join GodEater_ [0] (n=godeater@
17:31:46 Quit GodEater_ (Client Quit)
17:37:17 Quit ryvitlr ("CGI:IRC (EOF)")
17:49:00 Join MethoS- [0] (n=clemens@
18:03:38 Quit sbhsu (Read error: 101 (Network is unreachable))
18:06:49 Quit B4gder (Read error: 110 (Connection timed out))
18:07:30***Saving seen data "./dancer.seen"
18:12:25 Join Casainho [0] (
18:25:00 Join Omlet [0] (
18:25:55 Quit Casainho (Remote closed the connection)
18:28:40 Quit Jaykay (Read error: 110 (Connection timed out))
18:28:55 Quit HellDragon (Read error: 104 (Connection reset by peer))
18:29:15 Join HellDragon [0] (
18:38:26 Quit shai ("Leaving")
18:39:07 Join flydutch [0] (
18:43:06 Part froggyman
18:43:28 Join toffe82 [0] (
19:01:46 Quit Omlet ("( :: NoNameScript 4.22 :: )")
19:06:18 Quit CaptainKwel ("( :: NoNameScript 4.22 :: )")
19:07:21 Quit erikw (Read error: 110 (Connection timed out))
19:18:49 Quit liar (Read error: 113 (No route to host))
19:23:33 Join liar [0] (n=liar@
19:24:40 Join linuxguy4 [0] (
19:29:07 Join Casainho [0] (
19:33:03 Quit amiconn (Nick collision from services.)
19:33:05 Join amiconn_ [0] (i=quassel@rockbox/developer/amiconn)
19:33:08 Quit linuxguy3 (Read error: 104 (Connection reset by peer))
19:33:21 Join pixelma_ [0] (i=quassel@rockbox/staff/pixelma)
19:33:21 Quit pixelma (Nick collision from services.)
19:33:24 Nick amiconn_ is now known as amiconn (i=quassel@rockbox/developer/amiconn)
19:33:36 Nick pixelma_ is now known as pixelma (i=quassel@rockbox/staff/pixelma)
19:37:24 Quit stoffel (Remote closed the connection)
19:37:52 Join Bagder_ [0] (
19:52:38 Nick Bagder_ is now known as B4gder (
20:07:02 Join p3tur [50] (n=petur@rockbox/developer/petur)
20:07:31***Saving seen data "./dancer.seen"
20:09:49 Join shai [0] (
20:14:52 Quit robin0800_ (Remote closed the connection)
20:22:50 Join froggyman [0] (
20:26:45 Join webguest41 [0] (
20:28:44FlynDicewebguest41: If you have a question just ask
20:30:56webguest41does anyone know where I could get old ipods exept ebay
20:31:38B4gderwebguest41: other places that sell used stuff
20:37:09CIA-6New commit by roolku (r24080): FS #8286 - utilise the buttons on the gigabeat cradle
20:37:30 Join roolku [0] (
20:38:23kugelroolku: haha
20:38:56roolkuI had this in my local build and completely forgotton that it wasn't committed. :)
20:45:09kugelit just took 2 years for someone to remind you :p
20:48:08 Quit bertrik (Read error: 110 (Connection timed out))
20:50:51 Join bertrik [0] (
20:51:15 Quit n17ikh ()
20:52:03 Join GodEater_ [0] (n=godeater@
20:52:06 Join JdGordon1 [0] (
20:53:23 Quit flydutch ("/* empty */")
20:57:52 Quit Tomis (Read error: 104 (Connection reset by peer))
20:57:57 Quit GodEater_ ("Get Colloquy for iPhone!")
20:58:04 Join Tomis [0] (n=Tomis@
20:58:09*flyback is hacking his own flex-ata to cf adaptor for the iriver h10 get got off ebay since no one seems to sell an adpaotr
20:59:02 Quit MethoS- (Remote closed the connection)
21:14:40 Join Tomis2 [0] (n=Tomis@
21:17:59 Join joens [0] (
21:20:35 Part froggyman
21:21:46 Quit Tomis (Read error: 110 (Connection timed out))
21:21:47 Nick Tomis2 is now known as Tomis (n=Tomis@
21:24:55 Quit roolku ()
21:26:11 Quit JdGordon1 (Read error: 110 (Connection timed out))
21:26:51 Join Ubuntuxer [0] (
21:28:39 Quit webguest41 ("CGI:IRC (Ping timeout)")
21:39:12 Join panni_ [0] (
21:47:26 Join CaptainKewl [0] (
21:50:45 Quit toffe82 (Remote closed the connection)
21:55:59 Quit shai ("Leaving")
21:57:21 Quit Casainho (Remote closed the connection)
22:01:12 Join archivator [0] (n=archivat@
22:07:02 Quit balug_ ("Ex-Chat")
22:07:34***Saving seen data "./dancer.seen"
22:11:44 Join fyrestorm [0] (
22:13:02 Quit fyrestorm (Client Quit)
22:18:21 Join NoGare [0] (
22:20:02 Quit archivator ("Leaving")
22:20:48 Quit bmbl ("Bye!")
22:21:30 Join kadoban [0] (
22:22:27 Quit HBK ()
22:39:00 Quit kadoban (Remote closed the connection)
22:43:27 Quit NoGare (Read error: 104 (Connection reset by peer))
22:44:01 Join sbhsu [0] (n=a6530466@
22:44:24 Join froggyman [0] (
22:46:28Unhelpfulso, after the IRQ/FIQ stack setup, etc, would be a reasonable place to insert VFP init? and probably make it #ifndef BOOTLOADER?
22:48:43 Join kadoban [0] (
23:02:32 Join Omlet [0] (
23:02:36 Quit Omlet (Remote closed the connection)
23:04:21 Part Ubuntuxer
23:07:15 Join dys [0] (
23:15:23 Part froggyman
23:31:02 Quit GeekShadow (Read error: 104 (Connection reset by peer))
23:31:26 Join GeekShadow [0] (n=Antoine@reactos/tester/GeekShadow)
23:33:10 Join GeekShado_ [0] (
23:38:51 Quit GeekShadow (Read error: 60 (Operation timed out))
23:40:49*flyback bbl
23:50:49 Quit kaniini (Read error: 60 (Operation timed out))
23:51:08 Join HBK [0] (

Previous day | Next day