[00:08:05] --> Kirben has joined #exult
[01:32:58] --> DraX has joined #exult
[01:59:41] <-- DraX has left IRC (bye? ..(sph))
[05:19:05] <-- matt0_ has left IRC (Read error to matt0_[1667079149-yippy.dsl.xmission.com]: EOF from client)
[05:20:17] <-- chimera|wookin has left IRC (Ping timeout for chimera|wookin[holladay.cb-travel.com])
[05:42:24] --> matt0 has joined #exult
[05:51:39] <-- matt0 has left IRC (Ping timeout for matt0[1667079149-yippy.dsl.xmission.com])
[07:02:14] --> wjp has joined #exult
[07:02:21] <wjp> hi
[07:07:59] <Kirben> Hi wjp
[07:26:51] --> matt0 has joined #exult
[07:43:44] <Kirben> btw a cygwin compile using standard autogen works if you add the mingw kludges file to acconfig.h, still problems linking though
[07:44:21] <Kirben> #ifdef CYGWIN
[07:44:22] <Kirben> #include "mingw_kludges.h"
[07:44:22] <Kirben> #endif
[07:46:27] <matt0> kirben!
[07:46:35] <Kirben> Hi
[09:20:19] --> Nadir has joined #exult
[09:21:41] <wjp> hi
[09:21:44] <Nadir> hi
[09:23:05] --- wjp is now known as wjp|work
[09:31:33] <Kirben> Any chance of another cvs update in new few hours ?
[09:32:01] <Kirben> Just wondering if I should update snapshots again or wait
[09:32:18] <Nadir> No, I'm waiting for a commit from Ryan before committing the Video Options gump
[09:38:08] <wjp|work> which one?
[09:38:34] <Kirben> ok wjp's changes are online
[09:38:34] <Nadir> evil: mousex >> scale
[09:38:55] <wjp|work> very evil :-)
[09:39:14] <Nadir> and the Log2(scale) magic
[09:39:25] <Nadir> s/magic/black magic/
[09:39:35] <wjp|work> btw, what do you mean by 'mouse cursor corrupting underlying graphics' ?
[09:39:42] <wjp|work> (in the TODO.xml)
[09:40:41] <wjp|work> there is some corrupting currently, but that's because of a bug in the scaler
[09:42:54] <Nadir> when moving the mouse around the scaling algorithm would create some aliasing artifacts on the underlying graphics
[09:43:50] <wjp|work> hmm, noticeable?
[09:43:56] <Nadir> slightly
[09:44:27] <Nadir> I don't know if it still happens, though, after Jeff added the pre-rendered bits
[09:44:44] <wjp|work> aren't these done pre-scaling?
[09:44:54] <Nadir> ah, right.
[09:45:16] <Nadir> Do you notice some flashes in the menus after the palette fades out ?
[09:46:08] * wjp|work turns palette fades back on
[09:46:30] <wjp|work> I don't see any
[09:46:37] <Nadir> use point scaler
[09:47:10] <wjp|work> ok, now I get them too
[09:47:18] <Nadir> what IS that ?
[09:47:42] <wjp|work> the menu with the wrong palette
[09:48:04] <Nadir> Shouldn't the surface be cleared ?
[09:48:15] <wjp|work> hmm, not sure
[09:48:20] <Nadir> Is the palette cycling doing one iteration too many ?
[09:53:51] <wjp|work> palette cycling code seems ok
[09:53:58] <wjp|work> s/cycling/fading/
[10:03:33] <wjp|work> ok, I fixed it
[10:04:01] <wjp|work> I added a gwin->show(1) after the gwin->clear_screen() at the end of ExultMenu::run()
[10:04:23] <wjp|work> (although I'm not entirely sure why that would fix it :-) )
[10:06:20] <wjp|work> hmm, otoh, SDL probably still had the old surface when the palette changed
[10:09:20] --> tst_ has joined #exult
[10:10:01] <-- tst_ has left #exult
[10:10:08] <wjp|work> ?
[10:11:01] --> tst_ has joined #exult
[10:11:18] <tst_> wjp, can you kick Nadir pls
[10:11:43] <-- Nadir has left IRC (Ping timeout for Nadir[natmi130.etnoteam.it])
[10:11:52] <-- tst_ has left IRC (I feel like dumping a core)
[10:12:13] --> Nadir has joined #exult
[10:12:19] <Nadir> b
[10:12:25] <Nadir> SOmething funny happened there...
[10:23:25] <wjp|work> sorry, was away
[10:23:44] <wjp|work> but kicking Nadir wouldn't have helped, probably. (I can't kick you off the server...)
[10:23:47] <wjp|work> anyway, lunch
[10:23:48] <wjp|work> bbl
[11:09:32] <wjp|work> b
[11:09:44] <Nadir> Should I remove the Alt-KP+/Alt-KP- for switching resolution once the Video Options are in ?
[11:09:59] <wjp|work> no, I kind of like them
[11:10:27] <Nadir> then the set_resolution/find_resolution/etc. functions should be taken out of exult.cc
[11:10:46] <wjp|work> agreed
[11:12:11] <wjp|work> the best place would probably be gamewin, I guess
[11:13:39] <wjp|work> hmm... annoying... cvs update seems to hang at the end
[11:15:21] <wjp|work> good idea to move version to main menu
[11:18:26] <Nadir> cvs: same for me
[11:18:38] <Nadir> no, gamewin is bloated enough as it is
[11:20:32] * wjp|work fixes some more flashes
[11:20:37] --- wjp|work is now known as wjp
[11:21:42] <Nadir> wjp: yes after the SI and BG menus
[11:22:02] <wjp> setup, quotes & credits too
[11:22:41] <Nadir> ok
[11:23:44] * wjp fixes those after BG&SI menus too
[11:24:47] <Nadir> good
[11:25:26] <Nadir> It would be cool if for nightly builds we could have the compilation date in the main menu.
[11:25:35] <Nadir> Is there a standard #define for that ?
[11:26:07] <wjp> let me check
[11:26:51] <wjp> no, doesn't look like it
[11:26:58] <Nadir> where did you look
[11:27:09] <wjp> g++ -E -dM - < /dev/null
[11:27:25] <Nadir> clever
[11:28:17] <wjp> can be quite useful
[11:29:31] <Nadir> check this one out: http://www.enteract.com/~asl2/music/dissoc_studio/
[11:31:17] <wjp> heh, interesting
[11:32:43] * Nadir reminds wjp to update the Exult homepage with the latest news
[11:33:05] <wjp> hmm, a week already? bah ;-)
[11:33:44] <Nadir> mention the FAQ update too
[11:35:35] <wjp> ok, I think I got all the menu-related flashes now
[11:35:41] <Nadir> great
[11:35:45] * wjp wonders if there are any in the intro
[11:35:46] <Nadir> that was really bugging me
[11:37:31] <wjp> hmm, with the new point scaler the intro is really way too fast :-)
[11:37:57] <Nadir> guardian's speech is 50 secs
[11:38:18] <wjp> wouldn't be too hard to get that length right
[11:38:29] <Nadir> On my machine it takes a while to generate the snow/plasma
[11:38:45] <wjp> how fast is your machine?
[11:38:58] <Nadir> 650Mhz mobile PIII
[11:39:37] <wjp> what happens while it is generating those screens?
[11:39:51] <Nadir> I just see the butterfly on the logo
[11:41:25] <wjp> hmm, now that you mention it, the butterfly does just sit there for a few seconds
[11:41:59] <Nadir> it takes too long to generate the snow and plasma. We should just have .shps
[11:42:35] <wjp> oh, that reminds me... we need to fix the intro for higher resolutions too
[11:43:28] <Nadir> No wonder it's running too fast when the Guardian is talking. The time allocated for each sentence is about 1 sec
[11:43:34] <wjp> maybe tweaking the plasma parameters a bit will speed it up, though. I may iterate too much
[11:44:20] <wjp> that 1 second is excluding screen updates, right?
[11:44:25] <Nadir> yes
[11:44:47] <Nadir> how many ms does it cost us to do an update ?
[11:44:54] <wjp> that varies a lot
[11:45:35] <Nadir> Actually the delay function is wrong. We shouldn't wait for 50ms. We should wait for 50ms after the end of the last wait
[11:45:40] <wjp> true
[11:46:01] <wjp> well, a bit more than 50ms then
[11:49:23] <wjp> weekly update done. (not really a big one, though)
[11:51:31] <Kirben> hmm shouldn't the ms vc compile have some intructions included ?
[11:51:54] <wjp> maybe
[11:52:09] <wjp> maybe a small reference to the 'msvcstuff' directory?
[11:53:21] <Nadir> wjp: in plasma you do 6144000 calls to ibuf8::fill8()
[11:53:32] <wjp> that many?
[11:53:34] <Kirben> Well at least some mention of it in readme
[11:53:40] <Nadir> w*h*8*6*2
[11:54:21] <wjp> maybe those calls should be replaced by manual pixel-setting
[11:54:45] <wjp> or a different way of generating that effect altogether
[11:55:32] <wjp> Kirben: I'll leave that to Ryan
[11:57:03] <Nadir> butterfly intro should be 5 secs longer to match music
[12:00:44] <wjp> I have to go
[12:00:46] <wjp> see you later
[12:01:03] <-- wjp has left IRC ([x]chat)
[12:03:01] <Nadir> Kirben: we promised no checkins, and we've done about 3/4
[12:03:02] <Nadir> :)
[12:03:36] <Kirben> I"m been recompling
[12:04:21] <Kirben> I need to find a better why to time releases, Late Late PM just doesn't look good
[12:04:34] <Nadir> night ?
[12:04:49] <Nadir> just put the time relative to GMT
[12:08:16] <Kirben> That can become confusing
[12:09:00] <Kirben> hmm mabye just release (number) and date
[12:09:15] <Kirben> ie release 1 06.07.2001
[12:20:11] <Nadir> I thinkk I have the Guardian intro sorted out
[12:21:07] <Nadir> at 320x200 with no scaling everything is kind of smooth-running :)
[12:39:22] <Kirben> Is is synced ?
[12:40:08] <Nadir> it's ok at 320x200 because screen updating is negligible against the 50ms delay we have. I'm experimenting with a variable delay now
[12:40:51] <Nadir> that should be "it's ok without scaling or with point/interlaced scaling"
[12:46:12] <Nadir> But I am using a totally non-optimized build. The scalers are much faster after a bit of -O2
[12:48:06] <Nadir> hmm, variable delay doesn't work
[13:07:58] <Nadir> bbl
[13:08:00] <-- Nadir has left IRC (I feel like dumping a core)
[13:19:39] --> sty_work has joined #exult
[13:19:46] <sty_work> hi
[13:20:55] <sty_work> have you ever really tried to compile exult with MinGW under WINDOWS ?
[13:23:30] <Kirben> yes
[13:24:25] <Kirben> I find cygwin easier though
[13:24:46] <sty_work> hum mingw g++ dislikes the version string
[13:24:50] <sty_work> \\\"0.93alpha4\\\"
[13:24:54] <Kirben> which mingw version ?
[13:25:04] <sty_work> g++ -O2 -mwindows -Wno-long-long -include mingw_kludges.h -DVERSION=\\\"0.93alpha4\\\" -DEXULT_DATADIR=\\\"data\\\" -g3 -DDEBUG -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -I./imagewin -I./shapes -I./files -I./gumps -I./objs -I. -I./audio -I./conf -I./pathfinder -I./usecode -I./sdl/include -c bggame.cc -o bggame.o
[13:25:04] <sty_work> g++ -O2 -mwindows -Wno-long-long -include mingw_kludges.h -DVERSION=\\\"0.93alpha4\\\" -DEXULT_DATADIR=\\\"data\\\" -g3 -DDEBUG -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -I./imagewin -I./shapes -I./files -I./gumps -I./objs -I. -I./audio -I./conf -I./pathfinder -I./usecode -I./sdl/include -c browser.cc -o browser.o
[13:25:04] <sty_work> g++ -O2 -mwindows -Wno-long-long -include mingw_kludges.h -DVERSION=\\\"0.93alpha4\\\" -DEXULT_DATADIR=\\\"data\\\" -g3 -DDEBUG -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -I./imagewin -I./shapes -I./files -I./gumps -I./objs -I. -I./audio -I./conf -I./pathfinder -I./usecode -I./sdl/include -c cheat.cc -o cheat.o
[13:25:04] <-- sty_work has left IRC (Excess Flood)
[13:25:29] --> sty_work has joined #exult
[13:25:35] <sty_work> i'm very sorry!
[13:25:50] <sty_work> i wanted to paste only a line :(
[13:26:13] <Kirben> gcc-2.95.2 or MinGW-1.0-20010608 ?
[13:26:30] <sty_work> exult.cc:229: stray '\' in program
[13:26:50] <sty_work> the second
[13:27:44] <Kirben> ok open the makefile
[13:28:12] <sty_work> now i'm trying to use -DVERSION=\"0.93alpha4\" instead of -DVERSION=\\\"0.93alpha4\\\"
[13:28:15] <Kirben> and remove the extra \ around 0.93alpha4 and data, there should only been one at each end of the name
[13:28:17] <sty_work> it seems to work :)
[13:28:54] <Kirben> The \\\ are hack to get older Mingw version of compile exult
[13:28:55] <sty_work> will be compatible with cyg & otherz ?
[13:29:40] <Kirben> compatible ?
[13:29:56] <sty_work> portable :)
[13:30:14] <sty_work> i mean, can we leave those \\ ?
[13:30:27] <sty_work> without getting trouble with other supported compilers ?
[13:31:49] <Kirben> The extra \\ are only required for Mingw version 2.95.2, they will break a compile under Mingw 1.0 or cygwin.
[13:32:24] <Kirben> Only reason I have not updated compile guide is because new mingw still fails to include a make
[13:32:45] <sty_work> kirb: yeah, in fact i've downloaded it alone
[13:33:12] <sty_work> uhm
[13:33:35] <sty_work> MAKE: *** No rule to make target `U7file.o', needed by `exult.exe'. Stop.
[13:35:33] <Kirben> That is odd
[13:35:53] <sty_work> maybe the make is broken :)))
[13:36:15] <sty_work> or it's case insensitive :)))
[13:36:21] <sty_work> Sensitive
[13:37:14] <Kirben> I will double check the old win32 tommorrow getting late here
[13:37:25] <Kirben> in mean time why not just use my snapshot ?
[13:37:50] <sty_work> kirb: i'm not compiling it just for playing with it
[13:37:57] <sty_work> i've already the executabler
[13:38:28] <Kirben> You are compiling to experiment or to add code ?
[13:38:32] <sty_work> but if i want to contribute ... i have to get this make work :DD
[13:38:49] <sty_work> add code
[13:39:13] <Kirben> In that case go for Cygwin for sure
[13:39:44] <sty_work> why?
[13:40:30] <Kirben> no good mingw gdb for a start
[13:40:44] <sty_work> just tell me what's the "official" compiler
[13:40:45] <Kirben> plus you get bash
[13:40:58] <Kirben> will give you url for cygwin compile in a sec
[13:42:12] <Kirben> http://blake.prohosting.com/kirben/cygwincompile.html
[13:42:26] <sty_work> i don't want to mess up with porting problems, i want to play between win an linux without headscratchings :)
[13:42:33] <sty_work> play= code&compile
[13:42:52] <sty_work> i'm using win at work, and linux at home :)
[13:44:46] <Kirben> The Cygwin compile is just compiling via mingw switch of Cygwin GCC and you just need to add those few extra libs for mingw as mentioned in that url above^
[14:00:00] --> Nadir has joined #exult
[14:00:35] <Kirben> Plus cygwin is just like linux
[14:18:01] <-- Kirben has left IRC (Sleep)
[14:19:39] <Nadir> ciao sty
[14:19:56] <sty_work> ciao :)
[14:29:13] --> Colourless has joined #Exult
[14:29:17] <Colourless> hi
[14:36:30] <sty_work> colur :)
[14:46:38] --> wjp has joined #exult
[14:46:43] <wjp> hi
[14:46:51] <Colourless> hi
[14:46:54] <sty_work> ave
[14:47:14] <wjp> ave :-)
[14:49:18] <sty_work> it's latin :)
[14:49:24] <wjp> I know :-)
[14:49:34] * wjp had 6 years of Latin in school
[14:49:59] * sty_work 6 months, it's enough :DDD
[14:50:59] <wjp> :-)
[14:51:08] <sty_work> 6 months, 10 years ago :)
[14:51:35] <wjp> 3 years ago for me. Unfortunately I already forgot most of it, I think :/
[14:53:30] <sty_work> like 99% of human race :)
[14:58:09] <wjp> hmm, CVS down?
[14:58:15] <Colourless> yeah
[14:59:25] <sty_work> damn :) i was just getting into CVS world by getting wincvs :)))
[15:02:55] <-- Colourless has left IRC (Ping timeout for Colourless[18.104.22.168])
[15:07:51] --> Colourless has joined #Exult
[15:12:32] <Colourless> when CVS comes back, i've got some new optimizations that I need you to profile for me
[15:12:49] <wjp> k
[15:13:10] <wjp> what functions?
[15:13:15] <wjp> rle?
[15:13:21] <Colourless> yeah
[15:13:35] <Colourless> and the point scaler
[15:14:04] <wjp> the 2x case?
[15:14:25] <Colourless> 2x and general
[15:16:13] <Colourless> it should be mentioned somewhere in the logs from yesterday, assuming that Exultbot wasn't off on it's walkabout
[15:16:57] <wjp> I think it caught the first part of that conversation
[15:18:09] <wjp> using the pointer as loop variable?
[15:18:25] <Colourless> yeah
[15:20:05] <Colourless> * exultmenu.cc: fixed annoying flash between menus
[15:20:07] <Colourless> about time someone did that
[15:20:18] <wjp> :-)
[15:20:32] <wjp> quite easy to fix :-)
[15:20:51] <Colourless> i would imagine that it required clear_screen()
[15:20:59] <wjp> no, that was the problem
[15:21:14] <wjp> the clear_screen() needed to be followed by a show(1)
[15:21:14] <Colourless> it was???
[15:21:29] <Colourless> ah :)
[15:22:11] * wjp is taking a look at the 2xSaI scaler
[15:22:36] * Colourless decides to have a look as well
[15:22:40] <wjp> good god...
[15:23:06] <Colourless> you are amazed by it's complexity ?
[15:23:16] <sty_work> rawpixies still rock
[15:23:21] <wjp> that, and the amount of function calls needed per pixels
[15:23:24] <wjp> s/pixels/pixel/
[15:23:45] <Colourless> yeah, i want to get rid of the function calls
[15:24:16] <Colourless> of course the easiest way is to use a #include hack
[15:24:37] <wjp> what are the Source_pixel and Dest_pixel types we use?
[15:24:50] <wjp> source: only uint8, I think?
[15:24:55] <Colourless> source_pixels always just the 8 bit index
[15:25:27] <Colourless> dest can be either a 555 16 bit pixel, 565 16 bit pixel or a 888 32 bit pixel
[15:27:13] <wjp> those functions at the top of scale.cc can all be converted to #define's I guess
[15:27:47] <wjp> although they already are inlines
[15:28:00] * wjp just noticed that :-)
[15:30:50] <Colourless> the manip.split_source calls will be hurting a bit
[15:37:05] <wjp> multiple of those per pixel too, it seems
[15:37:09] * Colourless needs CVS :(
[15:37:28] * sty_work is fighting with win port of ssh
[15:37:29] <Colourless> does are not inline either
[15:38:32] <Colourless> using ssh and cvs is really simple... of course the documentation is all crap and I don't go anywhere near the gui
[15:39:09] <wjp> it is independent of the dest pixel format, so we could take it out of the manip class
[15:39:38] <sty_work> colour: I shalt survive the foe :)
[15:40:20] <Colourless> wjp: yeah, it doesn't need to be there
[15:40:34] <sty_work> (my english is all-your-base-are-belong-to-us-style)
[15:40:59] <Colourless> wjp: of course, i think the manip class needs the palette
[15:42:14] <wjp> true
[15:43:13] <Colourless> there is a better way of doing things
[15:43:22] <Colourless> than what we are doing at the moment
[15:44:36] <sty_work> wow, hang that on the wall :)))
[15:45:25] * wjp waits... :-)
[15:50:25] <Colourless> my paint_rle function is not elegant
[15:56:00] <Colourless> it should be faster than the old one though. I moved it to Image_buffer8 and got it to directly access the framebuffer, and also do the clipping
[15:58:00] <Colourless> there are no longer any non inline function calls in the paint rle code... of course, IMO there are a few too many variables
[15:58:26] <Colourless> the vairables mostly relate to clipping the shape
[16:06:38] <Nadir> b
[16:06:50] * Nadir reads logs
[16:09:10] <Nadir> wjp: have you looked at plasma and if it's possible to reduce those 6 million calls to fill8() ?
[16:09:34] <Nadir> Is SF's CVS down ?
[16:09:51] <Colourless> yeah, cvs is down
[16:11:27] <Nadir> I have a few things I'd like to commit: VideoOptions menu (but that needs the mouse mods I asked Ryan to do for me :), Guardian synch in intro and a better wait_delay that attempts to keep framerate constant, and not just wait for 50ms
[16:12:15] <Colourless> the mouse stuff is done
[16:12:42] <Nadir> good. How have you done that ?
[16:14:10] <Colourless> removed the global variable from exult.cc. fixed every instance that attempted to do something to the scale value. I get the scale value with Image_window::get_scale()
[16:15:40] <-- sty_work has left IRC ()
[16:16:37] <Nadir> good !
[16:17:31] <Nadir> Do we still have a SDL_Delay in exult.cc to limit frames ?
[16:19:34] <Colourless> yeah, why do you ask?
[16:20:50] <Colourless> if it's about timing, exult uses proper timing in the main loop
[16:21:06] <Nadir> Because that waits for a fixed amount. My replacement is dynamic (i.e. if you tell it to wait for 50ms, but 30ms have passed since the last call it will only wait for 20ms). This should make gameplay smoother too, not just in the intro
[16:22:25] * Colourless wouldn't touch the main loop timing
[16:22:47] <Nadir> hmm, I'll experiment
[16:23:15] <Colourless> I doubt you'll get any sort of real improvement.
[16:24:35] <Nadir> gotta go. Have a good weekend
[16:24:39] <-- Nadir has left IRC (Read error to Nadir[22.214.171.124]: Connection reset by peer)
[16:59:43] <wjp> looks like CVS is back
[17:00:00] <Colourless> so it is
[17:00:06] <Colourless> a minute ago it wasn't working
[17:00:19] <wjp> first time I tried in over an hour :-)
[17:00:26] --- wjp is now known as wjp|dinner
[17:16:40] <Colourless> when you get back, before I commit can you profile exult using the point sampling scaler?
[17:22:36] --- wjp|dinner is now known as wjp
[17:23:10] <wjp> will do
[17:23:21] <Colourless> thanks
[17:24:56] <wjp> you can commit now, if you want
[17:26:27] <Colourless> done
[17:26:48] * wjp is still rebuilding the 'old' version
[17:38:46] <wjp> hmm, now that was weird
[17:39:04] <wjp> exult seemed to take up a _lot_ of memory there
[17:40:41] <wjp> hmm, probably because I'm not calling the right functions to have the chunk_flats cache cleared
[17:41:08] <wjp> 200Mb...
[17:41:23] <wjp> 250Mb...
[17:42:01] <wjp> ...400...
[17:42:26] <Colourless> that's a huge amount
[17:42:36] <wjp> 500...
[17:42:58] <wjp> 550... (disk cache filling up...)
[17:43:11] <Colourless> i've noticed some general wierdness if you use the teleport cheat, you can enter areas that dont have the flats rendered
[17:43:26] <wjp> 643Mb... ouch
[17:43:50] <wjp> that left only 5Mb of free space in my ram+swap
[17:43:59] <Colourless> ouch
[17:44:47] <wjp> but aren't those flats rendered when you enter the area?
[17:45:01] <Colourless> they aren't
[17:45:27] <wjp> does this happen everytime?
[17:45:56] <Colourless> it did before i cvs updated... now it's not doing it
[17:47:34] <Colourless> exult is now using 100 mb of ram here
[17:47:44] <Colourless> the chuck flats aren't being cleared
[17:48:00] <Colourless> i'm just teleporting around as well
[17:48:00] <wjp> that's bad
[17:48:53] <wjp> I wonder why I made my swapspace this small
[17:50:55] <wjp> hmm... do you have utils.h in your pch?
[17:51:04] <wjp> ibuf8.cc:354: `Read2' undeclared
[17:51:21] <Colourless> probably
[17:51:24] <wjp> (and: ibuf8.cc:502:1: warning: no newline at end of file)
[17:51:43] <Colourless> bah, that last one is not MY problem ;-)
[17:52:07] <Colourless> it looks like that the flats do get cleared... under what circumstance I've no idea
[17:52:20] <Colourless> my memory usage is down to 65 mb
[17:52:34] <Colourless> it peaked at 175 mb
[17:55:30] <wjp> that's a bit too much already...
[17:56:04] <Colourless> now it's at 116 and not moving
[17:56:23] <wjp> is that the RSS or total size, btw?
[17:56:33] <Colourless> total
[17:57:37] <Colourless> the more i move the more it's going up
[17:58:40] <wjp> they appear to be freed in emulate_cache()
[17:59:38] <Colourless> something is using up the memory
[18:00:03] <wjp> I'll try memprof in a bit
[18:01:55] <wjp> hmm... ibuf8 doesn't have a destructor
[18:02:00] <wjp> oh wait
[18:02:02] <wjp> inherited
[18:02:26] <Colourless> is bits deleted?
[18:02:32] <wjp> yeah
[18:08:38] <Colourless> ki
[18:08:53] <Colourless> i died and the memory is being freed
[18:09:09] <Colourless> very slowly
[18:09:12] <Colourless> about 1 mb a second
[18:09:55] <Colourless> leveled out to 64
[18:10:46] <Colourless> i think I know the problem
[18:12:14] <Colourless> it's because i was running in an 800x600 window. Chucks were being rendered that weren't being classed as cached in.
[18:12:35] <wjp> ah... of course
[18:13:33] <Colourless> because of that, as I would move away from a chuck, it would be cached out, have it's flats freed, then it would be rerendered and have it's flats reallocated, and it's flats wouldn't get deallocated
[18:14:34] <wjp> I'm going to run the new version... back in a few minutes
[18:14:41] <Colourless> ok
[18:19:35] <wjp> hmm... this is weird
[18:19:38] <wjp> rle is twice as slow
[18:19:48] <Colourless> it is!
[18:20:13] <wjp> 2x point scaler is 25% faster, though
[18:20:38] <wjp> (1.09 ms/call)
[18:20:59] <wjp> hmm, wait...
[18:21:33] * Colourless waits
[18:21:42] <wjp> ibuf8::paint_rle() is only called 1/4 of the times shape_frame::paint_rle() used to be called
[18:22:02] <wjp> (220000 vs. 960000)
[18:22:27] <wjp> and the total time spent in that function doubled
[18:22:45] <Colourless> paint_rle has some culling code
[18:23:05] <wjp> the shape_frame one?
[18:23:16] <Colourless> it would prevent the total rendering of the rle
[18:23:57] <wjp> apparently that already gets rid of 80% of the calls
[18:24:41] --> Cless has joined #Exult
[18:25:06] <Cless> i couldn't imagine that it would get rid of 80% of the calls... but it looks like i'm wrong
[18:25:53] <-- Colourless has left IRC (Read error to Colourless[126.96.36.199]: Connection reset by peer)
[18:26:47] <wjp> but the RLE function somehow seems 8x as slow
[18:27:48] <wjp> no, only 2x
[18:28:07] <-- Cless has left IRC (Ping timeout for Cless[188.8.131.52])
[18:28:22] * wjp hits head against wall
[18:31:00] <wjp> I'd better run this profile again
[18:36:38] * wjp hits head against wall *again*
[18:36:52] <wjp> it doesn't call any other functions anymore... no wonder it's slower
[18:43:43] --> freedman has joined #Exult
[18:43:51] <freedman> Someone mention usecode?:-)
[18:46:05] <freedman> wjp: When you build for profiling, do you leave out the debugging (-g) flag so inlining can occur?
[18:46:33] <-- wjp has left IRC (farmer.openprojects.net pratchett.openprojects.net)
[18:47:28] --> wjp has joined #exult
[18:47:42] <wjp> silly servers :-)
[18:47:45] <wjp> hi Jeff
[18:47:55] <freedman> Hi.
[18:48:03] <freedman> Here's my prev. question:
[18:48:07] <freedman> wjp: When you build for profiling, do you leave out the debugging (-g) flag
[18:48:10] <freedman> +so inlining can occur?
[18:48:27] <wjp> yeah, I do a non-debug build for profiling
[18:48:34] <wjp> -O2 too
[18:49:40] <freedman> Good. Find anything new?
[18:50:05] <freedman> ...other than a massive memory leak:-)
[18:50:25] <wjp> :-)
[18:50:59] <wjp> no, not really
[18:51:33] <wjp> fixed another couple of bugs this morning, but nothing big
[18:52:04] <freedman> The speed (with the Eagle scaler) does seem somewhat better.
[18:52:19] <freedman> Maybe we're done with this round of optimization...
[18:52:51] <wjp> the point scaler (2x) is now 15-20 times faster than it was :-)
[18:53:12] <wjp> those prerendered chunk flats help a lot too
[18:53:21] <freedman> Tried it two days ago and it was much faster.
[18:54:45] <wjp> hmm, something just occured to me: things like crystal balls probably cause the same kind of leak
[18:55:19] <freedman> Yes, the prerendered chunk freeing isn't right. I put it in the wrong place.
[18:55:50] <freedman> But I want to totally rewrite the chunk class soon, and that will be part of it. Maybe tonight.
[18:58:07] <freedman> Musing: There should be a queue of chunks, with the most-recently-used in the front. At a certain size, the last should be freed.
[18:58:33] <wjp> sounds reasonable
[18:58:38] <freedman> ...the size could depend on the window size.
[18:59:00] <wjp> maybe there should be some backup, for when there's no more room to prerender them?
[18:59:23] <freedman> Don't understand.
[18:59:50] <wjp> if you only have room for (say) 4 prerendered chunks, but there are more than that on screen
[19:00:58] <wjp> but, on the other hand, a screen full of chunks can't really be that big, can it?
[19:01:00] <freedman> We should always allow more than enough to cover the screen. They're ~16K each.
[19:01:52] <freedman> Lets, see: 1280x1024=1.3Mb. That's nothing nowadays.
[19:02:50] <freedman> But if you don't cheat:-) and play in 320x200, that's only 64K.
[19:03:05] <wjp> yeah, we can probably spare that much :-)
[19:04:17] <freedman> Also, adding the Chunk_terrain class should save quite a bit, since some chunks will have shared landscape.
[19:35:37] <wjp> I have to go
[19:35:41] <wjp> bye
[19:35:45] <freedman> Bye
[19:35:50] <-- wjp has left IRC ([x]chat)
[20:09:04] <-- freedman has left IRC (Leaving)
[20:18:45] --> chimera|wookin has joined #exult
[20:33:28] --> sty has joined #exult
[20:35:24] <sty> ave
[21:04:21] <-- sty has left IRC ()
[22:11:08] --> m0t0ro has joined #exult
[22:11:12] <-- m0t0ro has left #exult