Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Poll

Having tested both 2D and STANDARD, how is 40d19 compared to 40d?

Faster, no (unknown) problems
Faster, problematic
Same speed, no (unknown) problems
Same speed, problematic
Slower, no other (unknown) problems
Slower, problematic
Doesn't work at all

Pages: 1 ... 20 21 [22] 23 24 ... 34

Author Topic: FotF: Dwarf Fortress 40d19  (Read 162105 times)

Andir

  • Bay Watcher
    • View Profile
Re: FotF: Dwarf Fortress 40d19
« Reply #315 on: March 17, 2010, 03:08:18 pm »

Great news on more speed.  Unfortunately I wish it was more game related than just GPU since most of the new features (shaders, etc.) won't work on my integrated Intel GPU where it's most needed anyway. ;)
Spoiler: offtopic (click to show/hide)
Logged
"Having faith" that the bridge will not fall, implies that the bridge itself isn't that trustworthy. It's not that different from "I pray that the bridge will hold my weight."

Baughn

  • Noble Phantasm
  • The Haruhiist
  • Hiss
    • View Profile
Re: FotF: Dwarf Fortress 40d19
« Reply #316 on: March 17, 2010, 03:37:48 pm »

Well, I'm also multithreading the drawing code. Will that help? :P
Logged
C++ makes baby Cthulhu weep. Why settle for the lesser horror?

Grax

  • Bay Watcher
  • The Only.
    • View Profile
Dwarf Therapist 0.4.2 for d19
« Reply #317 on: March 17, 2010, 04:00:13 pm »

Dwarf Therapist 0.4.2 for d19. I know everybody's waiting this.

Create   v0.28.181.40d19.ini :
Code: [Select]
[info]
checksum                = 0x4b918bb9
version_name            = v0.28.181.40d19

[addresses]
translation_vector      = 0x015591c4
language_vector         = 0x01559194
creature_vector         = 0x01512eec
dwarf_race_index        = 0x013409f0

[offsets]
word_table              = 0x0058
current_job_id          = 0x0008

[dwarf_offsets]
first_name              = 0x0000
nick_name               = 0x001C
last_name               = 0x0038
custom_profession       = 0x006c
profession              = 0x0088
race                    = 0x008C
flags1                  = 0x00FC
flags2                  = 0x0100
sex                     = 0x010A
id                      = 0x010C
squad_name              = 0x01D8
squad_leader_id         = 0x0268
money                   = 0x02F8
current_job             = 0x0314
strength                = 0x04f0
agility                 = 0x04f4
toughness               = 0x04f8
skills                  = 0x0504
labors                  = 0x0544
happiness               = 0x0610
traits                  = 0x0700

[flags]
flags1.invalidate       = 0xe38c0
flags2.invalidate       = 0x40080


Edit  game_data.ini :
Code: [Select]
[checksum_to_version]
# linux
0xdab3ce6b = v0.28.181.40d14
0x4f55a1dc = v0.28.181.40d15
0x22b9339 = v0.28.181.40d16
0x8f55a625 = v0.28.181.40d17
0x777e7d67 = v0.28.181.40d18

#windows

0x4b918bb9 = v0.28.181.40d19
Logged
Finis sanctificat media.

jfs

  • Bay Watcher
    • View Profile
Re: FotF: Dwarf Fortress 40d19
« Reply #318 on: March 17, 2010, 04:03:17 pm »

Well, I'm also multithreading the drawing code. Will that help? :P
Tell if you want help making code for Windows. Using a pthreads wrapper of native Win32 threading can be annoying to set up, from my experience :)
Logged

Baughn

  • Noble Phantasm
  • The Haruhiist
  • Hiss
    • View Profile
Re: FotF: Dwarf Fortress 40d19
« Reply #319 on: March 17, 2010, 04:09:58 pm »

Nah, I'm using SDL threads. No problem there.
Logged
C++ makes baby Cthulhu weep. Why settle for the lesser horror?

bombcar

  • Bay Watcher
    • View Profile
Re: FotF: Dwarf Fortress 40d19
« Reply #320 on: March 17, 2010, 07:22:52 pm »

Can you explain/document the Macro file?

Edit. I see you did here.
Logged

bonesmasta36

  • Escaped Lunatic
    • View Profile
Re: FotF: Dwarf Fortress 40d19
« Reply #321 on: March 19, 2010, 12:51:17 pm »

I find myself completely unable to link bridges to levers in 40d19. Has anyone else had this issue? The lever does not recognize that any bridges exist, in spite of the bridges showing up in the "r" menu.
Logged

Footkerchief

  • Bay Watcher
  • The Juffo-Wup is strong in this place.
    • View Profile
Re: FotF: Dwarf Fortress 40d19
« Reply #322 on: March 19, 2010, 01:02:37 pm »

I find myself completely unable to link bridges to levers in 40d19. Has anyone else had this issue? The lever does not recognize that any bridges exist, in spite of the bridges showing up in the "r" menu.

Yeah, it's a known problem, although it's not in the known issues list for some reason.
Logged

fleischwolff

  • Escaped Lunatic
    • View Profile
Re: FotF: Dwarf Fortress 40d19
« Reply #323 on: March 19, 2010, 01:15:52 pm »

Okay, I know I'm a bit late, but I didn't get to play/test very much lately...

Mid-size fort:

40d11 (the version I normally use):PARTIAL:5  20FPS

40d19:
STANDARD: 5 <5> / 5 FPS
PARTIAL:0 : 20 <20> / 20 FPS
ACCUM_BUFFER: 26 <20> / 27 FPS
VBO: 7 <7> / 7 FPS
2D: 28 <20> / 28 FPS
2DSW: 27 <20> / 29 FPS
2DASYNC: 25 <19> /25 FPS
TEXT: 20 <19> / 20 FPS

FRAME_BUFFER and SHADER crash on start (I have an ATI card, so I didn't have much on hopes on the shader mode anyway), and I get weird output in TEXT mode (probably because my keyboard settings are DE). save-crashes in Partial and Text, both because of floating-point exceptions. SINGLE_BUFFER was NO for all settings, causes horrible flickering...

Running on an ASUS F5RL Laptop, Intel DUO T2370 (1.73 GHz), 2GB RAM, ATI Radeon XPRess
Using Debian Lenny


Logged

kutulu

  • Bay Watcher
    • View Profile
Re: FotF: Dwarf Fortress 40d19
« Reply #324 on: March 19, 2010, 03:21:16 pm »

Yep. Careful micro-management cut the critically important graphicst::display function's cost by 4x.

I am most disturbed. Compilers are supposed to be smarter. Like GHC.

When given the choice, compilers usually pick "safe" over "smart".  But you can often get them to be much more daring by passing the correct flags.  Unfortunately, it's a trade-off; the more you let gcc optimize your code, the more likely it's gonna break something by accident.  In 99.9999% of cases there's no need to mess with those flags, but if you are trying to squeeze performance out of your code, it can sometimes be useful to experiment with more aggressive optimization settings.

The default is not to optimize *at all* (-O0) to make debugging easier.  For a production release, you should be using at least -O2, since that turns on all the 'safe' optimizations as well as the 'should be safe unless you write horrible code' optimizations.  (strict-aliasing, BTW, is enabled by -O2).  -O2 is generally considered the maximum combination of safe and fast.  You could *try* building the code with -O3 but I've heard that gcc 4 does some pretty dumb things at that optimization level, possibly making your code *slower* than before.

Since you're building for an x86 machine, which are ridiculously low on registers, you could also try building your production releases with -fomit-frame-pointer.  That option makes it impossible to get a useful backtrace from a crash, but it frees up a register for use by the actual code, which can make a big difference, especially in processor-heavy code like gfx.  Since it breaks debugging, gcc will never enable it by default on any x86-based target CPU.

Lastly, by default gcc won't enable instructions for things like MMX/SSE/etc unless you tell it those are OK.  Again, there's a trade-off: if you enable MMX, your code won't run on old 386/486 processors, but will probably run much faster on Pentiums and up.  SSE would speed things up even more, but eliminate anything older than a Pentium4 or Athlon-XP.  Depending on what you think your target audience is, you could probably get away with at least -march=i686 (will run on any Pentium Pro or later CPU, which is any computer less than 15 years old.)

There is also the '-mtune' option, which doesn't change the instruction set used but will reorder the compiler code to match the internal scheduler of the CPU in question.  This would make the code more likely to run at peak efficiency on that CPU, while having relatively little effect on others, but you'd have to pick a CPU to focus on (e.g., -march=i686 -mtune=core2).

(Of course, this is also where I being up the idea of doing a parallel 64-bit build of DF; since the x64 CPUs have way more registers, and all of them support all the various types of SIMD instructions.  But that's a completely different endlessly pointless discussion.)
Logged

kutulu

  • Bay Watcher
    • View Profile
Re: FotF: Dwarf Fortress 40d19
« Reply #325 on: March 19, 2010, 03:56:51 pm »

I'm _very_ surprised at the 5x improvement in the pathfinding - that's off the charts compared to any improvement that I've ever seen (although I don't bother with 32 bit at all anymore). It must be something where the x86 register spill really hurts.

The increase in performance for a single, specific task (pathfinding, graphical transformations, compression, etc) tend to be much higher than the actual performance difference in a practical application.  Most applications spend their time waiting on things other than the CPU, such as disk or network I/O.  I can tell you that number-crunching on 64-bit SQL Server "feels" many, many times faster than similar number-crunching on 32-bit SQL Server, though I've never wasted my time actually benchmarking it.  (The 32 -> 64 bit decision was made over my head so it's a moot point.)  But most of the time our SQL Server spends loading pages from disk or sending traffic to/from clients, so our end users only see a fraction of that performance improvement.

--K
Logged

Baughn

  • Noble Phantasm
  • The Haruhiist
  • Hiss
    • View Profile
Re: FotF: Dwarf Fortress 40d19
« Reply #326 on: March 19, 2010, 04:40:50 pm »

kutulu: Thanks, but I already knew all of that. Only the pointer aliasing issues were new to me.. well, that did help.

kutulu(2): Of course, DF doesn't do much in the way of I/O other than memory I/O. We really will have to try a 64-bit build later.
Logged
C++ makes baby Cthulhu weep. Why settle for the lesser horror?

Mason11987

  • Bay Watcher
    • View Profile
Re: FotF: Dwarf Fortress 40d19
« Reply #327 on: March 19, 2010, 04:55:56 pm »

I find myself completely unable to link bridges to levers in 40d19. Has anyone else had this issue? The lever does not recognize that any bridges exist, in spite of the bridges showing up in the "r" menu.

This fixed it for me:

http://www.bay12games.com/forum/index.php?topic=49196.0

kutulu

  • Bay Watcher
    • View Profile
Re: FotF: Dwarf Fortress 40d19
« Reply #328 on: March 19, 2010, 05:04:28 pm »

Oh yeah, my actual game play testing might be useful too :)

Gentoo Linux 64-bit with some crappy-ass Intel GM card.

1) Down to *one* local library in my libs folder.  Yay for Baughn. 
2) *grumblegrumbledf = disk freegrumblegrumble*
3) Graphics Performance on a new 4x4 embark using stupidly high FPS/G_FPS of 500/50 just for kicks:

2D: 250 (50) / 250
2DASYNC: 210 (50 ) / 250
2DSW: 230 (50) /230
STANDARD: 95 (50) / 100
PARTIAL_PRINT (1, 2, and 3): 95 (50) / 100:
ACCUM_BUFFER: 260 (50) / 250
VBO: 95 (50) / 100

Unplayable:
SHADER: segfault.  go intel.
FRAME_BUFFER: frozen, no display, had to kill -9.
TEXT: crashes only after loading saved game -- movies played fine at a nice 410 FPS; console didn't redraw after that but responded to keypresses.

4) There were weird graphics artifacts on all except 2D/2DASYNCH.  The background color of the tiles was displaying, and the opening movies had stray background ghost images wherever there was movement.  (I usually use maydayMIX which has a black background, so this may be more of a "2D does it better" than "STANDARD is broken".)

5) Mentioned already -- the dorfs and animals (but nothing else) were visible on the main menu after I saved and existed my fortress.

6) As usual, once I got to around 75 dorfs the game slowed to a crawl, 5-10fps and at 100, long stretches of 0fps, but that's not gfx related.

--K
Logged

bonesmasta36

  • Escaped Lunatic
    • View Profile
Re: FotF: Dwarf Fortress 40d19
« Reply #329 on: March 19, 2010, 05:37:56 pm »

I find myself completely unable to link bridges to levers in 40d19. Has anyone else had this issue? The lever does not recognize that any bridges exist, in spite of the bridges showing up in the "r" menu.

This fixed it for me:

http://www.bay12games.com/forum/index.php?topic=49196.0

Excellent, that was exactly what I needed! Worked like a charm. I'll look into some of those other d17 posts to see if they have the solution to my running-in-linux driver troubles, didn't realize they would have some of the answers to d19 problems!
Logged
Pages: 1 ... 20 21 [22] 23 24 ... 34