Commit Graph

1101 Commits

Author SHA1 Message Date
404456ee8e Fix int8_t redefinition errors in VC2010
This was SVN commit r8635.
2010-11-17 03:02:04 +00:00
bd3bd084c0 Support new SpiderMonkey API.
wposix: Define int8_t compatibly with SpiderMonkey.
Remove unused camera, lightenv JS interfaces.
Remove most of vector JS interface.
Remove some of the redundant JS string conversion functions.
Remove unneeded vmem, _lodBias functions.
Clean up some formatting.

This was SVN commit r8629.
2010-11-16 23:00:52 +00:00
58b33af168 Support X mouse buttons on Windows
This was SVN commit r8591.
2010-11-13 19:51:15 +00:00
25cd781641 Support horizontal scroll wheels for camera rotation
This was SVN commit r8582.
2010-11-13 01:00:54 +00:00
6e74c53ee9 fix file/dir mode bits
fixes #648
also fix self-test on ICC 12

This was SVN commit r8558.
2010-11-08 15:02:05 +00:00
24f1a00190 avoid setting executable bit in files/dirs we create
thanks to fabio for reporting + a suggested fix.
fixes #648

This was SVN commit r8554.
2010-11-08 10:39:52 +00:00
6b4d5091b3 fixes from work: use ICC bswap intrinsics instead of fallbacks; update UNUSED2 to work with ICC; update mahaf for Win7
This was SVN commit r8553.
2010-11-08 10:01:12 +00:00
383cf7b220 cleanup:
use intrinsics for cpu_AtomicAdd and cpu_CAS, get rid of the
corresponding assembly implementations. (wrapper functions are necessary
at work because mere declarations aren't enough to export the functions
from DLL)
also remove no longer needed fminf

This was SVN commit r8521.
2010-11-02 13:38:56 +00:00
52851faeb6 cleanup - remove old cpu_memcpy and cpu_i64FromDouble that are no longer needed
This was SVN commit r8517.
2010-11-01 11:09:03 +00:00
657ec9aa45 WIP timer thread safety:
CAS functions now implemented directly in external asm files (avoids
wrapper functions)
reinstated cpu_CAS64 (checking ARCH_IA32 at every call site is onerous)
(temporarily disable timer monotonicity check)

This was SVN commit r8515.
2010-11-01 09:54:03 +00:00
2b9774aa05 fix: alt+enter -> resize window -> maximize window failed to generate a resize event
This was SVN commit r8514.
2010-11-01 09:04:55 +00:00
aefc87f226 Windows fixes
This was SVN commit r8513.
2010-10-31 22:26:41 +00:00
034504f536 Remove misleading wposix declaration of unimplemented gettimeofday.
This was SVN commit r8510.
2010-10-31 21:58:30 +00:00
dd5ff36363 Fix Linux build error (fixes #651).
This was SVN commit r8487.
2010-10-29 15:48:46 +00:00
0c3d69ae29 fixes from work: clarify that cpu_MemoryBarrier has no runtime cost by renaming to COMPILER_FENCE and moving to code_annotation.h; fix 32-bit Parallel Studio 2011 warning.
This was SVN commit r8486.
2010-10-29 12:54:51 +00:00
825bbf8f51 parallel studio 2011 warning fixes
This was SVN commit r8484.
2010-10-28 12:22:11 +00:00
e188683bab Preserve cursor-grabbing across alt-tabs on Windows (probably fixes #508).
This was SVN commit r8430.
2010-10-21 21:09:41 +00:00
d11bc41d9a move support for GL swap control into wsdl (based on patch from wacko)
fixes #523

This was SVN commit r8399.
2010-10-17 08:55:47 +00:00
2270961d14 VC2010 fix
This was SVN commit r8353.
2010-10-14 09:39:41 +00:00
48360edf21 noticed during testing that the file cache is much smaller than our dataset; added logic to choose a decent size. rebuild-workspaces required.
wversion: move into separate component from wutil to allow inclusion
from GameSetup without pulling in windows.h (causes conflicts)

This was SVN commit r8319.
2010-10-09 21:14:08 +00:00
6b5b35c245 Remove BFD-based debugging code, to avoid the runtime dependency on binutils.
Fixes #581.

This was SVN commit r8271.
2010-10-04 17:21:55 +00:00
f5f65c23c0 OSX compat: remove cpu_CAS64 wrapper, since intptr_t and i64 apparently aren't compatible types. IA-32 code should call ia32_asm_CAS64 if it wants to CAS 64-bit values.
This was SVN commit r8080.
2010-09-05 15:38:34 +00:00
2e7436434d warning fixes: mostly size_t vs. specialized API type and other type conversion.
added player_id_t typedef and INVALID_PLAYER, use that instead of -1.
also added sanity checks to cpu.cpp to ensure ARCH_* is correct (see
http://www.wildfiregames.com/forum/index.php?showtopic=13327&hl=)
and further predefined macros to arch.h just to be sure.

This was SVN commit r8079.
2010-09-05 09:38:30 +00:00
1c535b6a8a Fix #544 (Fall back to windowed mode if fullscreen fails), based on patch from oln
This was SVN commit r8072.
2010-09-04 14:49:12 +00:00
3abe355b7c Disable implementation of os_cpu_SetThreadAffinityMask on Linux, since it's not necessary and it causes errors.
Should fix #547.

This was SVN commit r8024.
2010-08-22 11:23:50 +00:00
8367b73087 Fix warning
This was SVN commit r7937.
2010-08-13 18:13:14 +00:00
7eebe05485 fixes+improvements from work:
timer: cleanup, remove duplication
topology: fix incorrect param order
tsc: ensure MSRs are available before accessing
msr: add prefix to make clear that registers are nehalem-specific

This was SVN commit r7892.
2010-08-10 17:03:17 +00:00
b89e86772b belatedly add files missing from 3d45069b3f (my bad)
This was SVN commit r7884.
2010-08-09 07:37:43 +00:00
3d45069b3f improvements/additions from work
bits: fix bit_mask for signed types, add SetBitsTo, LeastSignificantBit,
ClearLeastSignificantBit.
add MSR support (read/write via mahaf in kernel mode)
x86_x64: expose family/model
topology: add support for determining core/package from APIC ID.
TSC: report actual frequency for nehalem invariant TSC.
improved UNREACHABLE/ASSUME_UNREACHABLE (avoid ICC warning, add GCC4.5
support)

This was SVN commit r7860.
2010-08-06 13:03:44 +00:00
b4e409e80d Fix #525 more, so it doesn't use an uninitialised variable
This was SVN commit r7853.
2010-08-05 17:13:10 +00:00
c944148337 fix deadlock in pre-XP SP2 windows codepath
fixes #525

This was SVN commit r7852.
2010-08-05 16:20:11 +00:00
51d0abbf2a Use SDL_GL_SWAP_CONTROL to control vsync on non-Windows. Fixes #520.
This was SVN commit r7845.
2010-08-04 21:30:43 +00:00
95047013d0 improvement to os_cpu_SetThreadAffinityMask: avoid Sleep(), fall back to APIC ID if GetCurrentProcessorNumber is unavailable
This was SVN commit r7841.
2010-08-02 07:56:37 +00:00
1706363bab Fix #423 (Switch from CppDoc to Doxygen), based on patch from anr.
Also delete some unused declarations, and rename is_playing to
snd_is_playing.

This was SVN commit r7813.
2010-07-29 15:55:41 +00:00
759e452e0b Fix warning
This was SVN commit r7810.
2010-07-25 18:19:30 +00:00
f6a1501410 Set svn:eol-style native
This was SVN commit r7809.
2010-07-25 18:08:35 +00:00
f79056efbd fix CPU topology problem under VMs reported by Philip (update workspaces required)
also moved lib.h's code generation macros into a separate file to break
a circular dependency with lib.h's use of debug_assert, and added a stub
implementation of sysdep/numa.h

This was SVN commit r7808.
2010-07-25 17:10:57 +00:00
4cd88d8aa9 Remove an assertion which I hope wasn't important
This was SVN commit r7801.
2010-07-24 21:54:54 +00:00
fea6745ec9 fix incorrect screening of APIC IDs (now handle OS X's lack of thread affinity and/or running under a VM without complaint)
This was SVN commit r7797.
2010-07-24 18:48:25 +00:00
523a6a5819 Fix tests to be more tolerant of odd environments
This was SVN commit r7796.
2010-07-24 15:49:40 +00:00
9f6eb626b4 Fix reported build errors
This was SVN commit r7792.
2010-07-23 19:11:02 +00:00
a3f37209a5 Warning fix
This was SVN commit r7787.
2010-07-22 19:01:25 +00:00
8ab70776a5 fix: cpu_CAS64 should use i64 for compatibility with 64-bit CAS
This was SVN commit r7786.
2010-07-22 18:57:36 +00:00
aa44bac652 from work: add thread-safe timer; add CAS64 (required for thread-safe timer); remove topology init requirements, no longer cache results (simplifies GroupPolicy_PerCache); add scoped affinitizer; whrt: fix race condition reported by parallel inspector. also refactor cache and TLB detection.
This was SVN commit r7785.
2010-07-22 16:17:33 +00:00
12568b0229 further fixes from work (where i've finally managed to (temporarily) sign the Aken driver)
in particular, remove two hindrances to displaying the error dialog
during early init.

This was SVN commit r7754.
2010-07-14 12:23:53 +00:00
c634a62f4c from work: cpu_AtomicAdd - return previous value (required for atomic test&set)
numa: move allocator into higher-level VirtualMemory module, since
VirtualAllocExNuma requires Server 2008 and the workaround doesn't
require numa support

This was SVN commit r7753.
2010-07-14 08:52:20 +00:00
17469a93a1 fix: don't complain if redirecting stdout fails (when running as non-admin from "program files")
see http://www.wildfiregames.com/forum/index.php?showtopic=12949&hl=
also remove extern "C" to allow C++ implementation functions

This was SVN commit r7750.
2010-07-14 07:29:35 +00:00
45016e3980 numa: fix: nodeNumber isn't guaranteed to be contiguous; fix race conditions during init; add support for ACPI SRAT; pin NUMA alloc thread to NUMA node; major refactor
also removed two critical sections (no longer needed due to thread-safe
init)

This was SVN commit r7745.
2010-07-13 12:45:27 +00:00
ee72115b7a Fix Linux compile error
This was SVN commit r7743.
2010-07-12 22:14:28 +00:00
9f66c86d64 fix ACPI table validation after encountering signatures containing ! and _ (invalid)
This was SVN commit r7742.
2010-07-12 13:01:12 +00:00
98770fa4cc # fix race conditions in ModuleInit and related cleanup.
CAS: uintptr_t->intptr_t to allow use of both cpu_CAS and cpu_AtomicAdd
topology: remove non-thread safe caching, expose ApicIds, use ModuleInit
x86_x64: use ModuleInit instead of unsafe static flags; zero-init regs
instead of just setting ecx
ModuleInitState now holds the LibError returned by the init callback (so
that the second init doesn't appear to succeed despite the first
failing)
wnuma: cleanup, add ACPI SLIT relative distance detection

This was SVN commit r7741.
2010-07-12 12:57:58 +00:00
e6dec4b4b4 (vc2010) warning fixes
This was SVN commit r7733.
2010-07-10 18:24:02 +00:00
5030706314 more ACPI fixes (acpi_Init removed => callers must be prepared for acpi_GetTable to return 0)
This was SVN commit r7731.
2010-07-10 17:42:54 +00:00
c538d483bc fix overzealous assert (if windows doesn't provide the ACPI routines, the returned list of tables will of course be empty)
see
http://www.wildfiregames.com/forum/index.php?showtopic=12669&st=250&p=207927&#

This was SVN commit r7728.
2010-07-10 16:44:34 +00:00
fad4383a23 fix: wasn't checking function pointers => crash on older windows versions
This was SVN commit r7724.
2010-07-08 21:07:46 +00:00
a761cbdb6e Fix URL opener on OS X
This was SVN commit r7720.
2010-07-08 18:35:02 +00:00
fdf92bee98 warning fixes
This was SVN commit r7719.
2010-07-08 10:58:24 +00:00
b2c4a8597e enable use of ACPI without the mahaf driver (required for NUMA SRAT access at work). also use new DLL import macros.
This was SVN commit r7718.
2010-07-08 10:33:38 +00:00
8c1bd05ab9 fixes+improvements from work (overhaul wutil, add convenience macros for DLL imports)
This was SVN commit r7717.
2010-07-08 10:18:42 +00:00
88f25849b3 Windows fixes
This was SVN commit r7715.
2010-07-07 22:23:18 +00:00
4b06ebd52d Add basic help page into the main menu.
Add buttons to open the web site and IRC.
Tentatively allow Atlas to be launched from the menu.
Add some shutdown functions to support relaunching into Atlas without
having to restart the whole process.

This was SVN commit r7714.
2010-07-07 21:47:31 +00:00
6d3930ace7 fix: don't generate spurious resize events in fullscreen mode when interacting with another topmost window
fix: don't store a PIVFS reference in HDATA, because those aren't freed
due to caching (fixes memory leak)

This was SVN commit r7687.
2010-07-04 11:12:50 +00:00
d2cf6ceb88 less global variables: make most uses of g_VFS explicit (required for another app that has two VFSes), g_yres is no longer required by cursor module
This was SVN commit r7686.
2010-07-04 10:15:53 +00:00
3ff0ccc1fa we noticed that vcbuild somehow excludes winit function pointers from components that don't contain externals referenced by the main EXE (i.e. wposix, wnuma, wsock). the solution will include calling enet_initialize (to replace or coexist with wsock), removing wposix (see below) and ignoring wnuma (because apps that use it will need to call its functions).
wposix's sysconf is no longer used because OS X doesn't support some of
the POSIX names, so we had to add os_cpu routines that supplant the use
of sysconf. am now removing the no-longer needed sysconf emulation,
which also gets rid of wposix_Init.

This was SVN commit r7680.
2010-07-03 19:08:18 +00:00
5fec6c40dd Set svn:eol-style native
This was SVN commit r7655.
2010-07-01 16:58:44 +00:00
20c50d32d4 Windows fixes.
Avoid Boost.Random since it adds a dependency on a new library.

This was SVN commit r7654.
2010-06-30 23:40:51 +00:00
545979040b Expose the user's login name.
This was SVN commit r7648.
2010-06-30 21:18:29 +00:00
dba377532e # low-level fixes and improvements
dbghelp: ensure the DLL from our executable directory is loaded (avoids
breakage related to search-path and Dropbox)
wmi: use single-thread apartment COM model because multithreaded breaks
SHGetFolderPathW
wsysdep: sys_pick_directory: allow user-specified initial path; fix
previous non-unicode initial path; avoid reporting error if user cancels
wutil: add function to query executable directory at any time

This was SVN commit r7633.
2010-06-23 16:17:25 +00:00
1fc3076820 fix handling of window resizing (more closely match what SDL does, allow calling SDL_SetVideoMode without triggering a resize event); add support for video expose events
This was SVN commit r7632.
2010-06-21 20:22:26 +00:00
eb5f0ce639 fix logic error for CPUs lacking xAPIC (thanks to Brian for reporting this)
This was SVN commit r7628.
2010-06-19 18:22:47 +00:00
85bfdf0983 sync with work (add IO callbacks, export wsdl functions, avoid error in ReadVersionString)
This was SVN commit r7627.
2010-06-14 12:09:49 +00:00
4fa5f1892b # fix CPU detection issue
i3 CPUs report a *maximum* of 8 cores/package, which caused the number
of processors to be misreported as 0 (but only because the APIC IDs were
skipped because the CPU generation was deemed to low, which was due to
failing to consider extended family/model)
thanks to titanforever for reporting this.

This was SVN commit r7626.
2010-06-12 20:21:28 +00:00
045ac1c197 # cleanup
mem_util: inline freelist functions to avoid needing an additional if()
in pool.cpp
pool: add comments clarifying the roles of PoolAllocator vs
RawPoolAllocator
wsdl: refactor (naming convention, determination of window style, reduce
forward decls)

This was SVN commit r7610.
2010-06-05 18:52:39 +00:00
a18aa24fe3 Windows support for window resizing and fullscreen toggling.
Windows build fixes.

This was SVN commit r7607.
2010-06-03 21:15:45 +00:00
0f611042b1 # Support alt+enter to toggle fullscreen mode. Make game window resizable.
Refactor the video mode setting logic to cope better with dynamic
changes.

This was SVN commit r7606.
2010-06-03 19:07:59 +00:00
a6600185ff fix delete vs delete[]
This was SVN commit r7545.
2010-05-14 21:28:16 +00:00
f0c2479309 avoid non-utf8 encoded characters being passed to main() on windows
refs #503

This was SVN commit r7544.
2010-05-14 21:15:33 +00:00
202b13d557 Fix the calling conventions properly this time (I hope)
This was SVN commit r7542.
2010-05-13 16:22:07 +00:00
f728050b3f Use correct calling convention on x86-64 OS X
This was SVN commit r7541.
2010-05-13 15:31:49 +00:00
ba7d237d9a Fix triggering of "buffer too small" error during some stack dumps.
Remove dlopen's debug_assert, for POSIX compatibility and because it
causes very ugly problems when dumping the stack if the Collada DLL is
missing.

This was SVN commit r7530.
2010-05-09 19:52:13 +00:00
4981af4a57 OS X build/warning/test fixes
This was SVN commit r7512.
2010-05-07 20:55:23 +00:00
ef602c3dfd fixes/improvements from work
- improved form of noncopyable that avoids inheritance warnings
- PCH updates to allow more restrictive MINIMAL_PCH
sound/SoundGroup.cpp: fix copy-paste error

This was SVN commit r7498.
2010-05-03 12:27:39 +00:00
27556f4b21 Fix window title only displaying the first character
This was SVN commit r7440.
2010-04-06 12:32:17 +00:00
6fb5c1b307 lib/ changes required at work:
- allow building regardless of UNICODE setting (e.g. use LoadLibraryW
instead of LoadLibrary)
- export dlopen etc.
- more robust redirection of stdout

This was SVN commit r7427.
2010-04-03 10:46:28 +00:00
870fe8bfe5 fix nvidia multimon gamma issue ("if at first you fail, try again..")
refs #480

This was SVN commit r7421.
2010-03-31 22:26:08 +00:00
e1c6249eab Fix warning and debug spew on OS X
This was SVN commit r7417.
2010-03-31 20:33:42 +00:00
13302cc133 Disable visible warnings when gamma-setting fails. Fixes #480.
This was SVN commit r7410.
2010-03-28 18:33:35 +00:00
672b1221c3 Disable executable stacks in .asm files
This was SVN commit r7408.
2010-03-28 18:20:46 +00:00
148ff026ca Avoid apparent error on OS X by simplifying wopen API to avoid varargs.
Remove unused sys_wopen.

This was SVN commit r7384.
2010-03-21 12:42:50 +00:00
0bbb99c3cd move M_PI etc. to wposix.h to ensure they're always present on Windows (previously required MathUtil.h)
use M_PI instead of nonstandard PI

This was SVN commit r7380.
2010-03-20 20:54:03 +00:00
9a1fab5243 Build fixes (closes #464)
This was SVN commit r7343.
2010-03-03 14:14:26 +00:00
1861448e6c needed to split lib into separate headers and source files, which requires lots of drudgery to specify paths for each include filename (no longer relying on same-directory lookups)
also rename wchar -> utf8 to avoid conflict with <wchar.h> (requires
rebuild of workspace)
(unfortunately copying history fails to "502 bad gateway"; had to delete
old + add new independently)

This was SVN commit r7340.
2010-03-01 14:52:58 +00:00
adb3847e38 export pthread and byte_order functions
remove ia32_memcpy (no longer provides performance benefit for >= SSE2
CPUs)

This was SVN commit r7339.
2010-03-01 13:54:33 +00:00
5bb14c7a59 Misc. unity fixes (missing includes, undefs, and other things that could be considered generic cleanup)
This was SVN commit r7328.
2010-02-18 00:06:50 +00:00
c2fd939898 license change to the more permissible Expat/MIT license for lib/ (see forum thread)
This was SVN commit r7316.
2010-02-08 16:23:39 +00:00
cdf0ef1908 add SSE4 cap bits
This was SVN commit r7315.
2010-02-08 15:56:43 +00:00
50b79962ad fix off-by-one error in wcscpy_s parameter list causing crash when copying error dialog text
closes #454
Thanks to Erik for reporting this!

This was SVN commit r7303.
2010-02-03 11:01:58 +00:00
0d12738452 Fix crashlog code so it doesn't always crash when trying to generate the crashlog
This was SVN commit r7298.
2010-02-01 20:25:42 +00:00
33882ab698 wdll_ver: safely deal with DLLs that don't have version information (OpenAL32's soft_oal doesn't, and we've renamed it to OpenAL32 to override the Creative implementation, so the system detect code tries to retrieve its version)
snd_mgr: cleanup, initialize velocity

This was SVN commit r7280.
2010-01-22 14:22:09 +00:00
f8559e8c99 fix: if waiting for successful cancellation of the IO fails, then m_ovl must remain valid as well (thanks to Philip for pointing this out)
This was SVN commit r7265.
2010-01-10 09:34:57 +00:00
8513d57151 fix: GetOverlappedResult on ReadDirectoryChangesW hangs on Vista unless hEvent is valid (instead wait with timeout)
fix: return an error when called before the first watch is registered
(fixes error propagation)

This was SVN commit r7264.
2010-01-09 23:54:46 +00:00
e4be0892f8 fix: atlas calls ReloadChangedFiles before InitVfs, so safely handle directory watch requests before then (by checking for invalid completion port handle)
fix: prevent a pending IO from writing into freed memory by waiting for
the CancelIo to complete

This was SVN commit r7263.
2010-01-09 22:32:27 +00:00
29c1f282ec fix: shared_ptr dtor was calling delete on m_data, not delete[]
fix: freeing DirWatchRequest while IO was in-flight caused memory
corruption. now CancelIO when destroying the request.

This was SVN commit r7262.
2010-01-09 20:06:32 +00:00
7c2e9027c2 # Rewrite of the game's simulation system
Giant merge from
http://svn.wildfiregames.com/hg-source/file/5fb522019d5e
Infrastructure is largely complete, gameplay is largely missing
Disabled by default; use command-line flag "-sim2"
(Second attempt at commit...)

This was SVN commit r7259.
2010-01-09 19:20:14 +00:00
8dca5f7320 Fix rtl_AllocateAligned on GCC. Add tests for it.
This was SVN commit r7255.
2010-01-07 18:52:29 +00:00
a116670620 Remove unused wsdl field that doesn't exist in SDL
This was SVN commit r7253.
2010-01-07 18:41:28 +00:00
48f0c9b5d7 Set svn:eol-style=native
This was SVN commit r7252.
2010-01-07 17:42:56 +00:00
d1f6ea785a Linux build fixes
This was SVN commit r7247.
2010-01-05 20:55:07 +00:00
aafe575445 Fix buffer overflow in logger. Add tests for it. Make this kind of error harder to miss.
This was SVN commit r7244.
2010-01-05 19:55:09 +00:00
97db62c944 fix handling of non-CP1252 characters in paths
(added wide-character versions of posix opendir etc. - on Windows, we
must not convert to UTF8)

This was SVN commit r7243.
2010-01-05 19:44:30 +00:00
b0dcf49893 fix a hack that broke after switching to _wsopen_s (which ensures the pmode parameter only has read/write bits set)
(see http://www.wildfiregames.com/forum/index.php?showtopic=12560&hl=)

This was SVN commit r7241.
2010-01-03 15:58:06 +00:00
03726c0b54 ICC build fixes
warning fixes
get rid of SAFE_WCSCPY and SAFE_STRCPY

This was SVN commit r7239.
2010-01-01 15:33:07 +00:00
5f56ec86e9 fix waio error handling and update comments
This was SVN commit r7234.
2009-12-30 14:28:24 +00:00
88ad49bfc2 OS X build fix
This was SVN commit r7209.
2009-11-23 13:02:07 +00:00
7738eecbb0 icc build fix
This was SVN commit r7204.
2009-11-16 23:45:56 +00:00
22ac887785 fix: don't raise warnings when overwriting previous realDirectory (e.g. in the case of multiple mods mounting into the same directory) causes previous directory watches to be canceled
This was SVN commit r7202.
2009-11-16 21:01:36 +00:00
b51a0187bf Fix potential unfreed memory on shutdown
This was SVN commit r7200.
2009-11-14 19:12:09 +00:00
78bc63d92c VC fix: mustn't use filename/parent_path instead of leaf/branch_path because those aren't yet available in the version of boost we're currently using.
remove needless restriction on wdbg_printf buffer size
update description of wdbg_printf to match wvsprintfW's real behavior

This was SVN commit r7199.
2009-11-14 18:32:27 +00:00
a444e6febc Don't use wide print functions on typically-byte-oriented streams
This was SVN commit r7198.
2009-11-14 11:03:43 +00:00
6c8c99a107 # Greatly improve startup time on Linux, and avoid deadlocks
Handle FAM events in a background thread, instead of reading
synchronously

This was SVN commit r7194.
2009-11-13 20:26:20 +00:00
44066f5ae4 GCC build fix
This was SVN commit r7191.
2009-11-12 19:35:28 +00:00
7a6109f474 debug_SkipNextError changed to debug_SkipErrors (allow skipping multiple instances of the same error code until the next debug_StopSkippingErrors, which returns the number that were skipped)
also:
- add listing of error codes to avoid collisions
- cpu: add cpu_MemoryBarrier
- wchar: warn whenever a character is replaced/invalid bytes are
encountered

This was SVN commit r7189.
2009-11-10 15:48:41 +00:00
6ee9dd8afe GCC build fixes
This was SVN commit r7188.
2009-11-09 21:40:24 +00:00
ff15c522fe implement changes suggested by Philip:
- add self-test
- allow decoding UTF8 values beyond BMP (and replace them later)
- quietly replace invalid bytes

This was SVN commit r7187.
2009-11-09 20:53:48 +00:00
593bf6a571 GCC build fixes
This was SVN commit r7186.
2009-11-09 17:36:39 +00:00
450da0aaf7 rename [w]string_to_[w]string UTF8
add safer/more portable/less dependent on locale implementation of
wchar_t <-> UTF8

This was SVN commit r7185.
2009-11-09 14:52:51 +00:00
2ef4e7353e self-test and x64 fixes:
- headerless: distinguish between allocation granularity and min size
(hopefully fixes test failure on x64)
- test_wdbg_sym: disable printf spew
- hpet: use workaround when x64 MOVD isn't available due to processor or
compiler
- JSConversions: VC2005 x64 apparently distinguishes ssize_t from long
int (as it does with size_t)

This was SVN commit r7179.
2009-11-07 12:26:40 +00:00
7cf2888323 fix to sys_vswprintf's buffer termination (caught by self-test)
This was SVN commit r7178.
2009-11-07 09:42:25 +00:00
f432d9d18b fix dehydra warnings (some of which were dangerous pass-user-string-as-format-string vulnerabilities)
This was SVN commit r7177.
2009-11-07 09:32:19 +00:00
3334c83ce0 Fix build and tests on Linux
This was SVN commit r7174.
2009-11-06 18:35:32 +00:00
048d4c41c8 fix: unix doesn't have a standard wopen(). we'd like to use wchar_t _wopen on Windows, and convert to UTF8+open() on unix, which calls for adding a new sys_wopen() interface to sysdep.
This was SVN commit r7173.
2009-11-06 16:46:08 +00:00
607ea6f8b4 chip away at gcc errors/warnings
This was SVN commit r7172.
2009-11-06 16:15:09 +00:00
9662666403 more string drudgery
- sprintf, snprintf -> sprintf_s (ensures 0-termination of result)
- use %s instead of %hs with sprintf_s to avoid GCC warnings
- convert h_mgr's to_string to unicode

This was SVN commit r7170.
2009-11-06 10:59:10 +00:00
8fefedb5ae fix: native and vfs directory paths should end with '/' (more code cares about this now)
refactor: simplify dir_watch_Poll interface (returns vector)
wdir_watch: major refactor: use shared_ptr for reference-counting shared
watch state
remove no longer needed path_util functions

This was SVN commit r7168.
2009-11-05 20:46:15 +00:00
5ba40becc5 avoid unspecified behavior due to definition of __WFILE__ (now use WIDEN(__FILE__) instead)
fix inadvertent breakage of gfx_detect's SHORTEN

This was SVN commit r7167.
2009-11-04 23:00:53 +00:00
77d2c67ada misc. string fixes
convert remaining %s to %hs or %ls
use WPRINTF_ARGS on unicode printf functions
fix: __func__ can't be widened via preprocessor (-> revert to char*)
convert remaining external_[directory|file_string to string()
Util: don't mix fwprintf and fprintf
Formation: fix dangling pointer (storing result of c_str())

This was SVN commit r7164.
2009-11-04 15:29:28 +00:00
e29d5a779f fix: wprintf: buffer mustn't be unicode (caught by self-test)
test_wdbg_sym - reenable, add test for basic stack walking
ia32_GetCallTarget - move frequent cases to front, add support for ILT
function trampolines
wdbg_sym: fix: ia32_walk_stack wasn't setting AddrStack; fix string
output

This was SVN commit r7163.
2009-11-04 14:24:54 +00:00
da3030cfe6 more unicode/string cleanup:
- swprintf -> swprintf_s
- use secure_crt's _wfopen_s instead of conversion+fopen
- centralize all MBS <-> WCS conversion in new wchar.cpp (requires
workspace rebuild)
- remove no longer needed os_path
- remove unnecessary fs::wpath / VfsPath constructor casts
- fixed buffer size parameters -> ARRAY_SIZE

This was SVN commit r7162.
2009-11-03 22:27:25 +00:00
8a52113e60 huge cleanup and conversion of most string handling (especially paths) to unicode
please note: format strings must be %hs for char* arguments and %ls for
wchar_t*

This was SVN commit r7161.
2009-11-03 21:46:35 +00:00
a46f3432f3 harmless changes in preparation for moving to unicode
ia32: fix: ia32_GetCallTarget wasn't always initializing target
x86_x64: use macro implementation for rdtsc to reduce timing overhead

This was SVN commit r7160.
2009-11-03 16:30:21 +00:00
93ab45e434 simplify file implementation (remove unnecessary layer of abstraction)
ensure struct stat has 64-bit fields on windows
also fixed some warnings

This was SVN commit r7120.
2009-08-24 21:04:01 +00:00
cd6a926c14 Fix #293 (Lots of printf format string errors), based on patch from Cygal
This was SVN commit r7113.
2009-08-14 18:42:39 +00:00
43950c2fde Simplify sys_get_executable_name by using realpath
This was SVN commit r7104.
2009-08-09 20:28:46 +00:00
4cebd021b0 fix insidious 32-bit bug that was causing invalid struct stat offsets
This was SVN commit r7100.
2009-08-09 17:04:17 +00:00
5c8861adf4 Remove redundant -L linker arguments on non-Windows.
Fix some compiler warnings.
Fix missing non-PCH headers.

This was SVN commit r7083.
2009-08-07 17:22:05 +00:00
6374080b60 # Fixed Linux execution problem. Extended unit-test system.
Fix sys_get_executable_name.
Add mock object support.
Add CxxTest wrapper to support "-test TestSuitename" and "-test
TestSuitename::test_case_name" command-line arguments for running
individual tests.

This was SVN commit r7081.
2009-08-07 15:21:39 +00:00
3726a7c9b1 # safely and silently handle disabled WMI service
(see http://www.wildfiregames.com/forum/index.php?showtopic=12548&hl=)

This was SVN commit r7071.
2009-08-03 21:24:00 +00:00
373ed7fcb4 Avoid spurious Valgrind uninitialised-value warnings
This was SVN commit r7070.
2009-08-03 20:56:00 +00:00
ebac85ee81 # hopefully support non-admin accounts and unwritable directories by moving output folders to home/appdata
the old behavior (using directories under binaries/) can be kept by
passing -writableRoot on the command line.
the first game load will be slower than usual due to re-creation of
cached XMBs.

This was SVN commit r7065.
2009-08-02 11:07:42 +00:00
38737202cb wseh: write the minidump as soon as possible (inspired by http://www.wildfiregames.com/forum/index.php?showtopic=12533)
GameSetup: fix fs::path append (previous code compiled with VC2005 but
is apparently invalid)

This was SVN commit r7064.
2009-08-01 22:01:01 +00:00
4d1ad62e81 # improvements to HPET driver
(experimental, use -wNoMahaf command line argument if this causes
breakage)
see #280

This was SVN commit r7058.
2009-08-01 11:22:29 +00:00
9ca097da58 # add error checking for VFS directory creation
refs #279

This was SVN commit r7056.
2009-07-31 21:16:09 +00:00
468a67d18c # miscellaneous improvements
- increase io depth and block size to better utilize FusionIO's crazy
bandwidth
- add OS error number to crashlog (error message may be localized and
illegible)

This was SVN commit r7054.
2009-07-31 16:42:39 +00:00
6714d80fba Fix memory leak, Valgrind warnings
This was SVN commit r7051.
2009-07-28 20:13:26 +00:00
cd0554c6bc Fix Linux build warnings
This was SVN commit r7034.
2009-07-25 20:35:48 +00:00
a866ade2d7 OS X compile fixes
This was SVN commit r7015.
2009-07-18 01:58:16 +00:00
2a0025bc28 # fix warnings and 64-bit bugs in headerless.cpp (workspace update required)
(hopefully fixes often-reported crashes on 64-bit Linux)
remove lib/precompiled.cpp to simplify PCH handling in build system

This was SVN commit r7006.
2009-07-16 23:53:46 +00:00
df36e937f0 Patch from #258: [FreeBSD compat] add some missing includes
This was SVN commit r7001.
2009-07-16 16:53:55 +00:00
a389dd3afa Fix buffer overflow on Linux
This was SVN commit r6996.
2009-07-16 12:35:23 +00:00
c81ec63dee # Fixed Release build on Windows.
This was SVN commit r6920.
2009-06-23 19:46:03 +00:00
d9bb1a7447 remove dbghelp and directx libraries (not redistributable)
move dbghelp and powrprof-specific stuff into external_libraries
dbghelp: dynamically import functions to avoid needing the .lib

This was SVN commit r6912.
2009-06-20 17:50:43 +00:00
9842b8df98 32/64-bit warning drudgery
also ensure off_t is always 64-bit (required at work)

This was SVN commit r6858.
2009-05-05 20:24:06 +00:00
1743645fd3 Simplify the overly-complex CppDoc-breaking file headers
This was SVN commit r6832.
2009-04-18 17:51:05 +00:00
214b0e6683 Removed outdated licensing information
This was SVN commit r6831.
2009-04-18 17:17:34 +00:00
c9fa7f13d9 Add GPL header
This was SVN commit r6830.
2009-04-18 17:00:33 +00:00
7a4dd7b473 Set svn:eol-style=native
This was SVN commit r6828.
2009-04-18 16:14:48 +00:00
60f48f558d # infrastructure improvements
make off_t pointer-sized (required for >4gb files at work)
add shared_ptr deleter for free(), add ASSUME_ALIGNED, warning fixes

This was SVN commit r6826.
2009-04-18 08:41:10 +00:00
0f3e9cfa72 Avoid load-time dependency on Vista-only API
This was SVN commit r6754.
2009-03-19 23:37:18 +00:00
602e90096b Fixed issue in VerifyPages that was preventing me from compiling on Vista.
#Vista compile fix

This was SVN commit r6650.
2009-01-31 23:30:24 +00:00
d43636f8ae work-related additions:
x86_x64.cpp: detect TLBs (a major undertaking :/)
mem_util: export functions
win.h: hopefully avoid warnings from either vc2008 and vc2005 about
already defined win32 version macros
wnuma: revise large page heuristic (cause of slowdown is now known)

This was SVN commit r6600.
2009-01-06 20:17:06 +00:00
220b05ba08 fix: ignore GetCursorPos failure, which happens when switching desktop (e.g. after pressing ctrl+alt+del)
This was SVN commit r6590.
2009-01-03 18:40:48 +00:00
5228800b73 # Fixed Linux build
Use noncopyable instead of boost::noncopyable. (But maybe this should be
changed to the NONCOPYABLE macro instead?)
Use boost::filesystem::wpath::file_string instead of
external_file_string, since the latter varies between std::string on
Linux and std::wstring on Windows.
Use wcstombs instead of wcstombs_s.
Use rtl_AllocateAligned instead of _mm_malloc.

This was SVN commit r6574.
2009-01-02 21:19:41 +00:00
16ccae10cd # fix warnings
more icc11 fixes - mostly type conversion and noncopyable (now made a
macro)

This was SVN commit r6536.
2008-12-17 16:32:46 +00:00
387722d41e # code cleanup/fixes
improvements from work:
- no longer export classes; instead inline functions where it makes
sense (e.g. the scope timers) or export the member functions directly
- fix icc11 warnings
- add some comments

This was SVN commit r6531.
2008-12-16 21:13:04 +00:00
f7d5711623 additions from work:
add shared_ptr wrapper for numa_allocator and page_aligned_alloc
(removing previous code from shared_ptr.cpp)
pch: add TR1 array
wposix: add setenv
wtime: add strptime

This was SVN commit r6486.
2008-11-20 16:35:30 +00:00
1f065ffb02 fix gcc compile error
This was SVN commit r6461.
2008-11-03 07:46:30 +00:00
c0a5dde4bf jan's modifications
This was SVN commit r6431.
2008-10-18 18:42:23 +00:00
841293ee0a minor improvements from work
This was SVN commit r6419.
2008-10-13 15:08:30 +00:00
34b418e0c1 slight improvement, use ARCH_X86_X64 instead of ARCH_IA32||ARCH_AMD64
This was SVN commit r6411.
2008-09-27 10:23:05 +00:00
aea2368300 fixes to stack trace code under x64 (from work):
- displaying symbol values requires stack pointer, not frame pointer
- update debug_IsPointerBogus
- skip-n-frames code changed to skip-all-frames-up-to-func (more
reliable in the face of inlining)

debug.cpp: cleanup

This was SVN commit r6410.
2008-09-27 10:05:11 +00:00
c3a42633fa fix stupidly incorrect calculation of smoothed frequency and timer resolution (fixes observed dependence of sim rate on framerate, see http://www.wildfiregames.com/forum/index.php?showtopic=1671)
also improved filtering of the frame delta times.
while at it, improved interface of whrt backends to avoid leaking
implementation details.

This was SVN commit r6401.
2008-09-19 17:56:05 +00:00
0d79703fb0 wdbg_heap: disable leak reporting to make debug mode bearable
wdbg_sym: numerous fixes and improvements
- all values are (also) displayed in hex form
- more correct calculation of symbol addresses (workaround for apparent
PDB bug)

This was SVN commit r6399.
2008-09-18 18:06:48 +00:00
c4654fd8fa bits: avoid sign conversion warning
debug: cleanup
ogl_tex, tex: use full-width types to avoid truncation warnings
wdbg_sym.cpp: skip __suppress and __profile symbols; add additional hex
display for floats; cleanup
wdll_ver.cpp: cppdoc+cleanup (remove non-reentrant C interface, replace
with std::string)
sysdep: add cppdoc

everything else: flag parameters are now consistently size_t instead of
int (avoids warnings, allows slightly better code on x64)

This was SVN commit r6392.
2008-09-18 11:27:55 +00:00
4132549c2c 64-bit fixes (the parts of lib/ in use at work are now fully operational in 64-bit mode)
- x86_x64.cpp: fix: test ARCH_AMD64 instead of ARCH_IA32 because both
are defined on x64
- manifest.cpp: fix processor architecture
- wdbg_heap.cpp: only enable on ia32
- winit, wstartup: take (lack of) name mangling into account

compiler.h: add STRINGIZE and DECORATED_NAME for use by winit
dir_watch: fix: smart pointers were never actually released due to a
remaining reference

This was SVN commit r6375.
2008-09-16 17:46:45 +00:00
2624069993 replace most BIT macros with a Bit() template for better 64-bit safety
test_bits: add tests for all routines in bits.h
hpet: add safety check
unit.h, bits.h, DOMEvent.h: change T(~0) to ~T(0) (required when T is
64-bit)

This was SVN commit r6335.
2008-09-06 21:15:53 +00:00
c15cbe12d4 now load files from "public" mod unless onlyPublicFiles is on cmdline (see http://www.wildfiregames.com/forum/index.php?s=&showtopic=11983)
instead of checking if the public mod exists, remove the windows-only
wfilesystem assert and another in file_system_posix so that the 'error'
is gracefully handled.

This was SVN commit r6334.
2008-09-06 21:12:36 +00:00
14ec3a3026 minor fixes:
whrt: output timer implementation info, fix assert ( 1/(x-epsilon) < 1/x
+ epsilon )
wsdl: fix slightly incorrect gamma values (first and last are now
exactly 0 and 1)

This was SVN commit r6321.
2008-08-10 11:02:25 +00:00
a3b7e8c08c needed unicode at work:
debug: reinstate wchar_t version of debug_printf
  file, waio: add hack to allow creating File_Posix with unicode path
wposix: no longer include some rarely-used stuff to avoid conflict with
3rd party libraries
precompiled: bring boost::bind into global namespace (present in TR1)

dir_watch: needed directory watching with unicode paths and larger
buffers at work, so I completely overhauled and documented this

timer: add ToSeconds

SocketBase: fix to ensure correct match despite ::bind's conflict with
boost::bind

This was SVN commit r6319.
2008-08-09 19:22:13 +00:00
9f909073b4 fixes from work
- file: prevent error when closing a file twice (e.g. close and dtor)
- file_system_posix: export from DLL
- path_util: add some unicode versions of functions
- ia32: robustify, prevent hook reentry due to failure in disassembly,
gracefully handle breakpoints that overwrite code
- wdbg_heap: fix wdbg_heap_Validate

This was SVN commit r6264.
2008-07-21 20:43:37 +00:00
e063542a5f fix memory leak in leak detection code :P
This was SVN commit r6257.
2008-07-19 18:35:33 +00:00
0f9294ce17 Fixed some strict aliasing warnings
This was SVN commit r6252.
2008-07-19 00:36:42 +00:00
fbc3d22720 Use GCC's std::tr1::unordered_* classes instead of the now-deprecated __gnu_cxx::hash_* when possible
This was SVN commit r6250.
2008-07-19 00:20:54 +00:00
fe6370aff8 more dehydra. disabled lockfree module (not in use).
This was SVN commit r6240.
2008-07-17 17:00:00 +00:00
875260f60a Minor fixes for OSX: stub for debug_set_thread_name, changed name for os_cpu_CallByEachCPU and changed header path for os-sysdeps
This was SVN commit r6207.
2008-07-06 19:52:55 +00:00
3be2bfa7ac OSX implementation of rtl_AllocateAligned
This was SVN commit r6206.
2008-07-06 19:49:27 +00:00
ab7cd7a5fa avoid two warnings:
- recompiled enet without /GL and /LTCG because the game's release mode
doesn't include those, either (due to their heavy compile-time impact)
- wdbg_heap: wrap all allocation-hook logic in #ifndef NDEBUG to avoid
unreferenced local function warnings

This was SVN commit r6201.
2008-07-05 09:41:23 +00:00
e14d5be529 timing-related fix (only occurs with certain timer resolutions due to incorrect arithmetic)
frequency_filter wasn't dealing correctly with resolution = 0
.. which was happening due to incorrect cpu_i64FromDouble macros

This was SVN commit r6200.
2008-07-05 08:27:33 +00:00
11b308c347 fix detection of amd64 on VC and avoid 64-bit warning
This was SVN commit r6197.
2008-07-04 19:10:09 +00:00
5b757e536f fix: avoid reentering allocation hook if an error is raised within memory allocators
This was SVN commit r6196.
2008-07-04 18:02:54 +00:00
0d82179d64 add header and include guard
This was SVN commit r6173.
2008-07-02 06:21:06 +00:00
49f0feb969 Fixed Linux build more
This was SVN commit r6168.
2008-07-01 21:43:08 +00:00
58c3b031d6 Partly fixed Linux build
This was SVN commit r6166.
2008-07-01 20:18:05 +00:00
b79375a0c5 color conversion: avoid type punning by returning SColor4ub directly. that required a non-extern-C declaration of the SSE function, so i replaced it with straightforward intrinsics.
ia32: no longer needs #if since build system ensures it's not compiled
on amd64

This was SVN commit r6164.
2008-06-30 19:08:29 +00:00
10a6ef4e17 fix a few remnants of the previous sysdep/win folder location, including a relative path in icon.rc
This was SVN commit r6163.
2008-06-30 18:19:14 +00:00
a3696c0b91 premake: detect processor architecture from script
lib/sysdep: clean up by moving OS and cpu-arch folders into "os" and
"arch" folders

This was SVN commit r6162.
2008-06-30 17:34:18 +00:00
2382899a87 add system-specific AllocateAligned call (because _mm_malloc isnt as portable as hoped)
("RTL" directly has been added to sysdep - requires update of workspace)

This was SVN commit r6156.
2008-06-29 10:30:33 +00:00
91873a66a2 Const-correctness (less compile warnings)
This was SVN commit r6148.
2008-06-28 21:49:14 +00:00
f2129f70a5 AMD64 assembly modifications for linux
This was SVN commit r6142.
2008-06-28 18:44:06 +00:00
e62deac770 get rid of some instances of type punning (dangerous in the face of aliasing optimizations)
This was SVN commit r6140.
2008-06-28 17:51:18 +00:00
f2037e3dca uint/size_t fixes
This was SVN commit r6139.
2008-06-28 17:31:14 +00:00
ee969c4627 Changed link in error dialog from bugs.wildfiregames.com to trac.wildfiregames.com
This was SVN commit r6125.
2008-06-27 21:32:38 +00:00
0994b71316 fixes
bits: avoid warning, document ceil_log2 corner case
cpu, x86_x64: remove unused cpu_MemoryFence
wdbg_heap: avoid warning
test_bits: fix incorrect test values
TerrainOverlay: fix use of struct vs. class, correct unintended
search&destroy of intended->ssize_tended (LOL)

This was SVN commit r6119.
2008-06-26 20:12:42 +00:00
10237a66c7 GCC/Linux build fixes
This was SVN commit r6107.
2008-06-25 23:01:13 +00:00
129f923cf5 fix: GCC requires emmintrin.h for _mm_mfence
This was SVN commit r6106.
2008-06-25 20:37:25 +00:00
557f08db27 Fix some GCC build issues
This was SVN commit r6103.
2008-06-24 23:28:22 +00:00
e943dbf44b fixes
wsdl: check handles before using, prevent bogus error message due to
stupid MapWindowPoints return value
cursor: robustify, add CppDoc

This was SVN commit r6096.
2008-06-22 11:11:59 +00:00
a74ffe9a76 wsdl bugfixes:
- robustify gamma ramp calculation, hopefully avoid "invalid parameter"
error message
- fix two mixups of client vs. screen coordinates that caused button
presses to be ignored after moving the window

This was SVN commit r6090.
2008-06-21 18:24:07 +00:00
e364a26a3f fixes:
- Xeromyces filename had been changed to VfsPath but was still being
passed to LOG() without .string().c_str()
- CPUID.4 is "reserved" on AMD, they require a separate codepath for
determining cache parameters.

This was SVN commit r6040.
2008-06-17 18:27:19 +00:00
028a92375f fixes from work:
- aligned_allocator.h: use _mm_malloc instead of _aligned_malloc
(somewhat more portable)
bits: fix incorrect handling of bit_mask(0)
- archive_zip.cpp: fix ArchiveWriter_Zip (wasn't opening its output
file, ECDR record wasn't at end of file due to padding)
- io_align.cpp: move routines to header (DLL export)
- wdbg_heap.cpp: avoid crash in report hook if CRT memory block is
invalid

This was SVN commit r6030.
2008-06-16 18:36:36 +00:00
34fec9cb85 preemptive fix: prevent CRT error messages generated after PostQuitMessage from vanishing
This was SVN commit r6005.
2008-06-01 10:19:17 +00:00
5d80d2ee5d fixes+improvements from work:
- add AlignedAllocator - an STL allocator that returns
cache-line-aligned objects (required to avoid RFOs when threads write to
various independent items in a container)
- bits: bit_mask can now be used for N=0..numBits (works around
full-word-shifts-are-undefined issue)
- precompiled.h: remove scoped_ptr, add function-related stuff from TR1
- numa:
  . add numa_IsMemoryInterleaved
  . numa_Allocate is now able to allocate large pages as well (reduces
TLB misses)
- os_cpu: interface change to support 32-bit apps running on WoW64
systems with > 4 GB of memory
- topology: use new x86_x64_EnumerateCaches API; fix detection of cache
ID
- x86_x64: provide the means of enumerating all caches returned by CPUID
and detect L1 cache size

This was SVN commit r6004.
2008-06-01 08:25:12 +00:00
04127c7af3 fixes/improvements to lib code from work
- topology.cpp: modify interface due to thread-safety issue. caller is
now responsible for ensuring the first _Detect call isn't reentered;
everything else is safe.
- fix thread-safety issue in wnuma; use winit mechanism to ensure it's
ready before use
- VFS now takes a cacheSize parameter (required for being able to
disable read-only file caches for the image loader at work)
- allow dynarray that isn't actually holding memory
- debug_stl: VC9 fix (disable this code except on the exact STL version
on which it was tested)
- zlib, lib_api: changes to macro used to toggle between static and
dynamic linking
- add boost filesystem header in external_libraries
- amd64: cpu_ topology functions are now provided by x86_x64
- cpu: remove cpu_ClockFrequency (dangerous, may be tempting to use
during WHRT init which would cause a crash). use x86_x64_ClockFrequency
or os_cpu_ClockFrequency instead.
- werrno: cope with newer boost versions
- wmman: follow SUSv3 in rejecting zero-length mappings

This was SVN commit r5954.
2008-05-13 19:43:02 +00:00
d1a9348b91 major refactor of topology.cpp: each piece of information is detected separately on-demand (reduces coupling and static data)
fix documentation of ceil_log2 relating to input=0
remove os_cpu_SetThreadAffinity (redundant)
wcpu: make max # processors available via os_cpu.h; remove warning if
process affinity is restricted

This was SVN commit r5951.
2008-05-13 05:51:25 +00:00
b429c492ff (hopefully correctly) port the new os_cpu functions to Linux and OSX
the OSX port lacks thread affinity (too complex, can't test), but a link
to the API documentation is included.

This was SVN commit r5946.
2008-05-12 18:38:48 +00:00
ffdff6888d add NUMA and shared-L2-cache detect code (required at work)
enable most of IA-32 specific code to be used in amd64 (resides in
directory lib/sysdep/x86_x64)

bits: add IsBitSet
remove mem_PageSize (use os_cpu_PageSize instead)
cpuid: change interface to allow gracefully supporting later
subfunctions that require input parameters
amd64_asm.asm: add amd64 implementation of cpuid
cpu: move functions provided by OS to sysdep/os_cpu.cpp
cpu topology: avoid trouble when process affinity is set by remapping
processor numbers to 0..PopulationCount(processAffinity)
topology.cpp: move ex-ia32 topology code here.

This was SVN commit r5945.
2008-05-12 18:15:08 +00:00
c0ed950657 had to remove uint and ulong from lib/types.h due to conflict with other library.
this snowballed into a massive search+destroy of the hodgepodge of
mostly equivalent types we had in use (int, uint, unsigned, unsigned
int, i32, u32, ulong, uintN).

it is more efficient to use 64-bit types in 64-bit mode, so the
preferred default is size_t (for anything remotely resembling a size or
index). tile coordinates are ssize_t to allow more efficient conversion
to/from floating point. flags are int because we almost never need more
than 15 distinct bits, bit test/set is not slower and int is fastest to
type. finally, some data that is pretty much directly passed to OpenGL
is now typed accordingly.

after several hours, the code now requires fewer casts and less
guesswork.

other changes:
- unit and player IDs now have an "invalid id" constant in the
respective class to avoid casting and -1
- fix some endian/64-bit bugs in the map (un)packing. added a
convenience function to write/read a size_t.
- ia32: change CPUID interface to allow passing in ecx (required for
cache topology detection, which I need at work). remove some unneeded
functions from asm, replace with intrinsics where possible.

This was SVN commit r5942.
2008-05-11 18:48:32 +00:00
cc243f67eb fixes/improvements made at work:
- fix lots of 64-bit warnings
- round_up/down now templates
- avoid warning with definition of byte swap functions; remove
duplication of that in wsdl
- codec_zlib.cpp: avoid domination warning
- vfs/file_cache: VFS is now responsible for handling zero-length files
(no longer considered an error; just returns zero pointer and size=0)
- cpu: export all functions (thus obviating cpu_memcpy_thunk). this
required renaming asm functions and adding thunk functions that call
them
- winit: fix segment merge statement, reinstate /include (otherwise init
functions are stripped by linker)
- wstartup: VC CRT init section definitions have changed in amd64 build;
match their definition
- wsysdep.cpp: more descriptive text for osError = 0

This was SVN commit r5899.
2008-05-01 15:41:42 +00:00
a915bdc1b6 fix problems related to 64-bit compilation in lib
. dbghelp is now pulled in by a separate external_libraries header
. disable _SECURE_SCL (improves perf)
. amd64: initial implementation of essential functions, not yet complete
. manifest: disabled on ICC because its IPO module incorrectly
interprets /manifestdependency
. wdbg_sym: no longer support stack walks on non-ia32 win2k (avoids
trouble due to mixing SEH and dtors)
. winit and wstartup: had to remove forced symbol include - does not
link otherwise on ICC (for reasons unknown). function pointers are
actually included and called on x64 windows (compiling with MSC)

This was SVN commit r5895.
2008-04-19 18:10:00 +00:00
a9fcc1a87c small fixes required by use of lib codebase at work
This was SVN commit r5796.
2008-03-29 18:29:26 +00:00
bc999e00d7 paranoid error checking of pthread mutex functions (safely fails use-after-free requests)
fixes a crash at shutdown after a client has connected

This was SVN commit r5788.
2008-03-25 21:20:43 +00:00
1aa514a6ef fix (i.e. remove) mahaf warnings when running on least-permission account or when running multiple game instances
cpu, timer: fixes for when using lib code from DLL (required for work)

This was SVN commit r5787.
2008-03-24 15:44:37 +00:00
74b4ac19c1 cleanup+fixes; wdbg_heap is now feature complete.
should be safe to distribute this build

code_annotation.h: add our own noncopyable to avoid DLL base class
warning
debug: remove some unicode functions (unnecessary); minor cleanup
debug_stl: disabled
mahaf: do not warn when running as non admin
wdbg: add wdbg_printf and wdbg_assert for use in allocation hook. add
header
wdbg_heap: now feature complete.
. allows storing 3..4 frames from the call stack with 0 space overhead.
. prevents garbage file/line output.
. takes care of allocation counting (previously done by profiler)
wdbg_sym.cpp: cleanup+fixes (locking, wdbg_*)

fix: properly specify __declspec(dllimport) for certain classes

This was SVN commit r5679.
2008-02-25 21:19:52 +00:00
0201229520 Fixed build on Ubuntu.
This was SVN commit r5584.
2008-01-26 04:43:02 +00:00
58360a629c - fix incorrect use of block vs. sector aligned (both offset and length must be block-aligned to allow proper caching)
- use helper functions to reduce occurrences of BLOCK_SIZE and
SECTOR_SIZE
- wmi: provide for shutting it down (gets rid of its two threads); only
initialize if actually needed (costs 200ms)
- ogl_tex: don't complain if there's no gfx_card info (due to not having
used wmi)

This was SVN commit r5572.
2008-01-20 21:52:54 +00:00
aebf8cbf68 fix VFS bug preventing directories from being created:
- vfs_lookup: currentPath was of wrong type; simplified and fix create
logic
- archive_zip: fix: correctly handle filenames with /
- vfs: remove workaround for above bug
- io: temporarily disable block caching (works around problem with zip
file created by 7z)

add and use new wdbg_heap module (WIP)
remove mmgr

This was SVN commit r5571.
2008-01-20 16:53:09 +00:00
1700e90a15 fix VC9 warning*, update some comments, remove old VC6 workarounds
* http://www.wildfiregames.com/forum/index.php?showtopic=11479&hl=

This was SVN commit r5564.
2008-01-19 11:44:41 +00:00
9269be9ee3 remove mmgr and macros that redefine malloc/new/free
(see http://www.wildfiregames.com/forum/index.php?showtopic=11450&hl= )

clean up debug module
. no longer include platform-dependent header (-> less rebuilds)
. DISPLAY_ERROR -> DEBUG_DISPLAY_ERROR
. parts of config.h that don't affect all files moved to config.2 (->
fewer full rebuilds)
. remove creaky symbol cache (no longer needed for mmgr)
. remove TLS thread naming stuff (can use debugger's thread window
instead; no need for platform independence there)

wdbg: remove thread suspension and breakpoint APIs (not needed)

acpi: fix: u64 -> uintptr_t

wutil: fix WinScopedLock, use that instead of direct lock() functions

misc:
. get rid of SAFE_STRCPY, replace with strcpy_s
. remove _getcwd (shouldn't be used)

This was SVN commit r5563.
2008-01-19 11:33:11 +00:00
4df9e47976 wsdl: add WS_ flags mentioned as required by MSDN (even if it worked before)
wsdl: add note on deadlock in ChoosePixelFormat
ScriptGlue.cpp: timer.cpp no longer provides Seconds(), so remove that.

This was SVN commit r5549.
2008-01-14 21:04:55 +00:00
a859562ea7 improvements and fixes:
- properly differentiate between buffer/offset alignment and length
alignment (relevant since block size has been increased to 256k)
- use VfsPath for most game paths instead of CStr
- clean up timer interface and implementation
- self-tests no longer crash
- file_cache.cpp: fix for the case where allocation fails (prevent
deleter from seeing a null pointer)
- allocators: move all shared_ptr-related stuff to its own component;
add DummySharedPtr
- codec: disable checksums (important for performance at work)
- File: made into an interface class to avoid export problems. not
entirely sure about this..
- vfs_path.h, path.h, os_path.h: proper fix for using
fs::change_extension and similar utility functions with derivatives of
basic_path
- lib_api: automatically link against import lib if building lib/ as a
DLL
- path_util: remove unused functions (this component is deprecated)
- compiler.h: add INLINE
- Xeromyces.cpp: pass PIVFS so that GetXMBPath works in self-test
(should do this mostly everywhere rather than have one singleton g_VFS)

This was SVN commit r5537.
2008-01-07 20:03:19 +00:00
3273a8425c Partial Linux build fixes
This was SVN commit r5536.
2008-01-07 15:32:32 +00:00
ad55f9f1bc pending improvements and partial fixes to self-tests
fix: g_frequencyFilter is now in globals.cpp instead of in main (since
other modules access it and main.cpp isn't included in the self-test)
fix: globals.h now avoids dragging sdl.h into other projects
allocators: got rid of references to the old master header (must now
include the specific header, e.g. dynarray.h)

This was SVN commit r5534.
2008-01-03 22:07:18 +00:00
9cea581f43 config: add means of enabling/disabling wsdl (and cautionary note about SDL on windows)
wsdl: fix mouse trouble related to shutdown, use wmi instead of ddraw,
disable low-level kbd hook (not needed), cleanup

This was SVN commit r5533.
2007-12-29 16:45:22 +00:00
2bffecb331 h_mgr: fix: ModuleInitState wasn't set => shutdown didn't happen => leaked a lot of memory
sysdep/win: save-last-error logic now wrapped in a scoped class (avoids
need for "goto exit")

This was SVN commit r5527.
2007-12-23 12:20:37 +00:00
8667ea74c8 fixes and improvements
- directoryPosix: replace most methods with boost filesystem (but not
all: the latter cannot efficiently enumerate files AND query their
size/mtime)
- AllocatorChecker: better name for member functions
- file: move the File class here
- trace: bugfix
- io: move UnalignedWriter to write_buffer.cpp (basically the same
thing)
- vfs: remove unnecessary "vfs" warts from variable names
- vfs_tree: VfsFile now stores single Name/Size/MTime fields instead of
the FileInfo record (less clunky)
- vfs_path: use boost filesystem's version of the basename/extension
functions
- lf_alloc: remove (no longer necessary, won't be finished - not worth
the trouble)
- path_util: remove path_foreach_component (replaced by better path
traversal logic) and PathPackage (obsoleted by fs::path)

! resource loading code now receives VfsPath as its filename. there is
also OsPath (native absolute path) and Path (relative to binaries/data)

- tex is now independent of file loading code; it just en/decodes
in-memory buffers
- wdll_ver: clean up, use smart pointer to simplify bailout code
- wsdl: remove nonexistent failure path from calc_gamma (cruised by here
because SDL_SetGamme is failing once after a cold boot at work)
- wsnd: simplify OpenAL DLL search, use boost::filesystem
- wutil: Wow64 redirection is now packaged in a (RAII) class

This was SVN commit r5525.
2007-12-22 18:15:52 +00:00
d10b4851e2 fix: "config.h" should be "lib/config.h" (not sure why VC finds the files even though they are in different directories)
This was SVN commit r5522.
2007-12-21 08:17:20 +00:00
63086f4e26 part3: now functional file loading code (not entirely finalized)
(too many changes to list..)

moved tex_* files to lib/tex
archive builder and hotloading modules are disabled.\

This was SVN commit r5518.
2007-12-20 20:14:21 +00:00
2e5d9452aa part2: misc source/lib fixes/improvements
move all except user-specified config choices out of config.h and into
appropriate headers
CPU_IA32 -> ARCH_IA32
wsdl: disable use of ddraw (will soon be replaced by WMI)

use shared_ptr without namespace qualifier (it's in tr1)
debug_warn -> debug_assert(0)
LIB_API to allow building as DLL
smart pointers: reduce use of .get()
cache_adt: use map instead of hash_map (avoids needing a hashCompare
class). also remove spurious warning
code_annotation.h: better cassert implementation
move FPS measuring portion of timer.cpp into frequency_filter
move include of memory headers into mmgr.h (to avoid errors, we must
ensure they are included if mmgr is used)
posix_filesystem.h: move definition of mkdir to wfilesystem
stl: disable iterator checks in release mode
wmi: fix COM init bug, use smart pointers
wutil: add code to get DLL module handle (if compiled as such), add
WinScopedLock
timer: fix handling of raw ticks

This was SVN commit r5517.
2007-12-20 20:09:19 +00:00
b00ac7e5b5 fix to ia32_Generation (unfortunately, things are not as simple as querying the CPU family).
this hopefully fixes lag problems michael is seeing because rdtsc is
being used on his 7-th gen athlon (which was falsely reported as 6th gen
by the old version of this code)

This was SVN commit r5510.
2007-12-10 21:32:38 +00:00
ea96aa6b89 bucket: remove size optimization that causes warnings
path_util: add path_IsDirectory and path_split
wdbg_sym.cpp: bugfix for non-IA32 codepath

This was SVN commit r5498.
2007-12-01 18:23:28 +00:00
d19a2cba65 include boost smart pointers from PCH
factor out the "atom_fn" mechanism into lib/allocators/string_pool.cpp
factor out FAT date/time handling into lib/fat_time.cpp
path_util: replace strcpy with SAFE_STRCPY; add additional functions
that avoid passing an output buffer via StringPool

This was SVN commit r5474.
2007-11-20 18:44:36 +00:00