Commit Graph
100 Commits
Author SHA1 Message Date
Steve Checkoway 2754fd0f18 Perform the same loop unrolling for Read. This eliminate all stalls in the loop for all processors with altivec (well, at least both G4s (IBM 7400 and 7450) and the G5 (IBM 970) processors. I didn't bother for the other read function since it isn't actually used and is included more for completeness than anything else (plus, these were a lot of fun to write). 2006-05-17 09:59:34 +00:00
Steve Checkoway 177e65a34c Do gcc's job for it and do sane loop unrolling. The (now second) while loop was stalling the pipeline almost as often as it was doing useful work. When gcc tried to do loop unrolling (i.e. when I changed the condition to size >= 8), it produced 4 _identical_ copies of the loop, each of which had the same number of stalls (this is all with the G5, the G4 had one stall in the loop). By unrolling and doing the most basic of instruction scheduling, this produces the same amount of code as gcc does but with 1 stall in the big loop (0 for the G4) but the same number in the second loop which is executed at most 3 times.
To keep gcc from unrolling the second loop, I'm using the bit masking condition which confuses the optimizer.

Note that this behavior won't change unless we stop targeting any OS below 10.3.9 and move to a more recent version of gcc (whose behavior I haven't bothered to test).
2006-05-17 09:27:54 +00:00
Steve Checkoway 8d83e1e3f8 Bah, revert. It still doesn't shut up the profiler. If it's not doing any work, it'll be quite quick. 2006-05-17 09:26:04 +00:00
Steve Checkoway 032c1269bc Pull size check out of the function. Profiling showed that a large number of samples (as in profiling samples, not sound samples) of Vector::FastSoundWrite() where in its prologue which was attributed to the early exit condition (basically just shuts the profiler up). 2006-05-17 09:13:08 +00:00
Steve Checkoway 060b68ff00 Add more logging: Check that the sample rate we just set matches what the device declares as it's sample rate; log if the device's sample rate changes while it's running. 2006-05-17 07:40:54 +00:00
Steve Checkoway 62acf89217 How many times do I have to remove this? 2006-05-17 01:57:08 +00:00
Steve Checkoway 51b2438668 Remove, again. 2006-05-14 09:14:28 +00:00
Steve Checkoway b912d61546 Following Wolfman's example, some comments so that maybe next time I look at this I won't see vec_ctf and think "capture the flag?" 2006-05-14 08:13:16 +00:00
Steve Checkoway 4995793c0b Quiet warning when building for i386. 2006-05-14 08:12:37 +00:00
Steve Checkoway 2b02ad8151 Cleanup. 2006-05-14 08:09:22 +00:00
Steve Checkoway f39e79efed The last of the changes, I hope. 2006-05-14 07:04:28 +00:00
Steve Checkoway ea19495a50 recommit, thanks sf 2006-05-14 06:57:32 +00:00
Steve Checkoway 90ec52aa55 recommit, thanks sf 2006-05-14 06:51:34 +00:00
Steve Checkoway 60d3b90552 I thought I fixed this already. This section ranges from 42 to 47. 2006-05-07 11:13:21 +00:00
Steve Checkoway 7a6d44c6c5 Ensure mad.framework is removed. 2006-05-07 07:39:54 +00:00
Steve Checkoway 57a97ac5f7 Remove files. 2006-05-06 11:20:11 +00:00
Steve Checkoway c2b857d01c Remove bloated c++ wrapper. 2006-05-06 11:19:25 +00:00
Steve Checkoway 431f13437b Unused otherwise. 2006-05-05 09:41:23 +00:00
Steve Checkoway 49d51f0a53 Remove file. 2006-05-05 09:41:16 +00:00
Steve Checkoway 7124e3360a Add MachineId(). 2006-05-05 09:27:26 +00:00
Steve Checkoway 2f95767104 Year. 2006-04-29 11:41:33 +00:00
Steve Checkoway 53f0531bba Reimplement without using Cocoa. Put crashinfo.txt into ~/Library/Logs/PRODUCT_ID along with log.txt and info.txt. 2006-04-29 11:38:49 +00:00
Steve Checkoway 414e2313a8 Reimplement without using Cocoa. 2006-04-29 09:44:02 +00:00
Steve Checkoway cb4c2f5c53 Cleanup. 2006-04-29 09:26:45 +00:00
Steve Checkoway 6869d2f0ba Implement GoToURL(). 2006-04-29 08:36:43 +00:00
Steve Checkoway 9350fe2427 Fix warnings. 2006-04-29 08:35:50 +00:00
Steve Checkoway 16c000665a Remove old files. 2006-04-26 05:14:41 +00:00
Steve Checkoway f2b10c2441 Remove unused search paths. 2006-04-07 07:39:41 +00:00
Steve Checkoway c7131c1b8c Use ~/Library/Preferences instead of ~/Library/Application Support. 2006-04-06 05:55:58 +00:00
Steve Checkoway e13fc56198 Initial linux ppc backtrace implementation. 2006-04-05 00:49:56 +00:00
Steve Checkoway 61363eff0b Use Frame*. 2006-03-29 11:21:44 +00:00
Steve Checkoway 8195572649 If we don't have gtk on linux, use the Null loading window, don't throw an exception. 2006-03-29 07:01:01 +00:00
Steve Checkoway 1a240d3b6c Cleanup. 2006-03-28 14:37:40 +00:00
Steve Checkoway 79fdd16a55 Add CrashHandlerInternal.cpp, remove libresample. 2006-03-28 14:31:14 +00:00
Steve Checkoway 5e898497d2 Add file. 2006-03-28 14:26:35 +00:00
Steve Checkoway 81afe152ec Oops, two changes in that last commit. Don't have the child kill the parent any longer. This doesn't work when gdb is tracing. Why is the parent waiting for the child anyway? It shouldn't really matter that much if the child is signaled.
Also, why doesn't RunCrashHandler call _exit()? ForceDeadlock() calls _exit() after RunCrashHandler(), but ForceCrash does not, it has to go back to sm_crash() before _exit() is called. It's all very mysterious at 6:30 am.
2006-03-28 14:26:22 +00:00
Steve Checkoway 746261d8bd Split out itoa, SignalName, and SignalCodeName. All of these are macros, so testing for them directly is okay (at least on OS X and linux). If some other system doesn't implement them as macros, then checks for them can be added to the configure.ac script.
All of these can be called under crash conditions.
2006-03-28 14:20:57 +00:00
Steve Checkoway 6d001dc761 Leave Save in Application Support, put Cache and Logs in Library, and put screenshots in Documents/PRODUCT_ID Screenshots. 2006-03-28 14:16:56 +00:00
Steve Checkoway 30624ab737 No optimizations in any Debug builds. 2006-03-28 10:02:19 +00:00
Steve Checkoway a649cce9a6 Disable the real time critical sections, it's causing audio problems on single processor machines. 2006-03-28 02:06:06 +00:00
Steve Checkoway 0766c4bf25 How did that happen? 2006-03-25 10:12:10 +00:00
Steve Checkoway 9fc2026e23 oops 2006-03-25 09:27:25 +00:00
Steve Checkoway bb1d5d4c05 Fix iFPS != 0 assertion, at least when a nonzero rate is returned. (Not sure what LCD displays will report.) 2006-03-20 19:59:11 +00:00
Steve Checkoway 568cc67a5b Allow disabling ffmpeg. 2006-03-20 19:01:19 +00:00
Steve Checkoway 7488850bb4 fix strtof check 2006-03-20 18:42:11 +00:00
Steve Checkoway 003adafdec Something about UB, c++, precompiled prefix headers, and -gfull fails so no strip dead code in universal binaries. 2006-03-20 18:37:58 +00:00
Steve Checkoway 4ca585dc01 npos. 2006-03-20 08:39:24 +00:00
Steve Checkoway c3e74bbecc Oops. 2006-03-20 08:06:51 +00:00
Steve Checkoway c1f2256399 Update...something. 2006-03-20 07:59:17 +00:00
Steve Checkoway acbfd4224f Use OS X text converter, not iconv (trying to keep the code base the same no matter for which arch it is compiling). 2006-03-20 07:58:42 +00:00
Steve Checkoway 003cb4baa6 OS X text converter. 2006-03-20 07:56:18 +00:00
Steve Checkoway b330d744fa Fix warning. 2006-03-20 07:27:46 +00:00
Steve Checkoway 8597aa1bd6 Old commit. 2006-03-20 06:53:17 +00:00
Steve Checkoway bb1b56aed4 BSD 2006-03-20 06:52:06 +00:00
Steve Checkoway f7c28cb43b This seems wrong. The test for TLS should not set HAVE_TLS if it is not supported. 2006-03-20 06:50:37 +00:00
Steve Checkoway 3a304b1a41 BSD stuff. Some of this seems like it should be in its own file... 2006-03-20 06:46:19 +00:00
Steve Checkoway 988e1729f9 Namespace 2006-03-20 06:45:58 +00:00
Steve Checkoway 01ec5db85a Do not rely on gnu coreutils and find. 2006-03-20 06:41:58 +00:00
Steve Checkoway c5b491ab62 Check for BSD. 2006-03-20 06:40:33 +00:00
Steve Checkoway b0a9165a57 NetBSD 2006-03-20 06:38:23 +00:00
Steve Checkoway 0b81507b2e Use iconv appeared some point after 10.2.8 but with the broken BSD headers. 2006-03-20 06:12:51 +00:00
Steve Checkoway 4861bc0949 Handle broken iconv headers (BSD and derivatives). ICONV_CONST is defined in config.h by the autotools, if HAVE_ICONV is defined, define ICONV_CONST to either const or leave it empty for other OSes. 2006-03-20 06:11:47 +00:00
Steve Checkoway 5d9ab0982b Fix warnings about possibly being used uninitialized. 2006-03-20 06:09:00 +00:00
Steve Checkoway b7b28f2435 Only Linux needs this. Nearly every other OS put it in stdlib.h (or stdlib.h includes alloca.h as needed). My stdlib.h in linux includes it if any of __USE_GNU, __USE_BSD, or __USE_MISC is defined. 2006-03-20 05:25:13 +00:00
Steve Checkoway 26741978ad This is not supposed to be in CVS. 2006-03-20 05:21:59 +00:00
Steve Checkoway 8166dbcc2d Unused. 2006-03-19 06:19:55 +00:00
Steve Checkoway 40b44ee6b8 Fix attacks not working properly with random songs in the editor. 2006-03-19 01:59:42 +00:00
Steve Checkoway 77a8b6ab61 Use EditMode_CourseMods and remove hack from ScreenEdit. 2006-03-19 01:20:42 +00:00
Steve Checkoway bd58e1661e Add return type. 2006-03-19 00:58:26 +00:00
Steve Checkoway c4835e0adb Revert. Reloading is a hack and shouldn't be part of the API. 2006-03-18 13:26:01 +00:00
Steve Checkoway dd3206c4fc Play invalid sound. 2006-03-18 13:24:31 +00:00
Steve Checkoway f648efa84e Add string. 2006-03-18 13:23:38 +00:00
Steve Checkoway 80fdf6d8eb group/persist/etc 2006-03-18 13:23:18 +00:00
Steve Checkoway a79329daa3 Only rebuild the option rows when they've actually changed. 2006-03-18 11:28:41 +00:00
Steve Checkoway 1d45c8a0fd For non-fixed songs find the longest non-tutorial song and use that for picking mods. Something isn't quite right with ScreenEdit though (it doesn't display existing attacks so you can add attacks but you cannot remove them, global mods can be modified normally). 2006-03-18 11:13:22 +00:00
Steve Checkoway 95c756f9e5 ReloadScreen(). 2006-03-18 11:02:56 +00:00
Steve Checkoway 2dcdea5467 Add ReloadScreen(). 2006-03-18 11:02:20 +00:00
Steve Checkoway 1b0c19d442 Copy code from RageThreads.cpp. 2006-03-18 09:22:56 +00:00
Steve Checkoway cd45684d48 Warn on bad backgrounds. 2006-03-18 09:17:20 +00:00
Steve Checkoway 678c74e7c1 Fix warning. 2006-03-18 08:43:15 +00:00
Steve Checkoway 3faa5ad4f2 If it's a random entry, rather than doing nothing, open ScreenPlayerOptions and set modifiers for the entry. It's less clear how attacks should be handled...so don't.
Strange things happen with second player. I'll look at it later.
2006-03-14 11:39:35 +00:00
Steve Checkoway d113837cd4 Consider attacks to be at the same time if they are less than 1 ms apart. 2006-03-14 08:51:12 +00:00
Steve Checkoway 811c4d8b09 Work on course editor.
1. Press v to place an attack at the current location or to modify an existing attack.
2. With a selection, press m to place an attack for the duration of the selection or to modify an existing attack's duration.
3. With only the start of a selection, press m to place an attack extending to the end of the song or to ... (you get the idea).
4. With no selection, press m to set modifies for the course entry. This could go away if we stop having modifiers and just attacks that encompass the entire song (in which case it would act the same but add an attack rather than modifiers).
5. Is anyone still reading this?
2006-03-14 08:41:16 +00:00
Steve Checkoway 4f0c3e36de Don't rely on the trail here since a particular entry might not be in any given trail. Try hard to get the specific st/cd combination, if all else fails, get any valid, non-autogenerated steps.
Also reset the course and trail when anything changes to update overlays.
2006-03-14 08:33:49 +00:00
Steve Checkoway b7d8e85741 Use the more robust names for the enum rather than the brittle corresponding integer values. 2006-03-14 03:48:46 +00:00
Steve Checkoway d4f3329c5a Modify the StringToX macro to emit a template specialization of the (new) T StringTo<T>(const RString& s) function. Doing this allows a general ThemeMetricEnum class which instead of reading an int will now read a string and then call the appropriate StringToX function via the StringTo<X> function.
Currently the only thing which uses ThemeMetricEnum is the EditMode enums. As a result, this breaks the EditMode=n (for n in 0..2) metrics (which I just broke with the previous commit anyway). That commit coming shortly.
2006-03-14 03:47:43 +00:00
Steve Checkoway 0c52c3698c Add EditModeToString and StringToEditMode. 2006-03-14 03:39:38 +00:00
Steve Checkoway abca5e5a78 View this as utf-8. 2006-03-14 03:37:20 +00:00
Steve Checkoway 00ddde56ba Revert. 2006-03-12 23:53:31 +00:00
Steve Checkoway 9a6a581e14 Const. 2006-03-12 23:42:50 +00:00
Steve Checkoway 3e9c9141fe Fix declared extern and then redeclared static warning. 2006-03-12 23:39:54 +00:00
Steve Checkoway 3481196347 Songs can be in any of the following formats:
*
song
group/*
group/song
If we read in "song" don't write out "group/song". If we read in "group/song" make sure we set the course entry's group name.
2006-03-12 09:10:31 +00:00
Steve Checkoway 3511392d6d Make this public. 2006-03-12 09:06:31 +00:00
Steve Checkoway 17847941ba Remove unused. 2006-03-12 00:48:19 +00:00
Steve Checkoway 8b5b59ac93 Use ScreenEdit. 2006-03-12 00:46:30 +00:00
Steve Checkoway 14d737a085 Working on course mod editor. Add new edit mode. 2006-03-12 00:45:18 +00:00
Steve Checkoway 6a0106ef56 When loading course entries that specify a song, fill out the song group too. 2006-03-12 00:35:55 +00:00
Steve Checkoway cbd67ed683 Fix debugging. 2006-03-12 00:19:25 +00:00
Steve Checkoway dd2857c70f Fix define. 2006-03-11 22:06:20 +00:00
Steve Checkoway 7e0d36ae5f Simplify. 2006-03-11 21:35:12 +00:00