[quake3] quake3 MacOS hackery, continued...
Avelino Santa Ana Jr.
a2daj at mac.com
Sat Nov 26 05:58:45 EST 2005
I didn't see it listed, but it looks like the large increase when
using r_smp was enabled disappeared along with the Mac specific code.
"Trying SMP acceleration...
^3ERROR: SMP support was disabled at compile time
...failed.
"
On Nov 25, 2005, at 11:56 PM, Ryan C. Gordon wrote:
>
> Okay,
>
> Subversion Revision #373 adds my Mac OS X work. I fully expect
> things to be broken in small ways on other platforms...just commit
> fixes if something is obviously hosed. I corrected the x86 assembly
> thing that was mentioned previously.
>
>
> Notes and current bugs:
>
> - Mac-specific codepaths are gone...it uses SDL and OpenAL in the Unix
> codepaths now. Less code to maintain.
>
> - Compiled VM seems to work, but keeps writing to console:
>
> Com_sprintf: overflow of 247 in 144
>
> ...so I guess the calling convention isn't totally right? I
> think this is a PowerPC Linux issue, too, at the moment. I tried
> vm_ppc_new.
>
> - Interpreted VM works, but eats like 30% of the CPU!
>
> - dlopen() is (mostly) gone...uses SDL_LoadObject() and
> SDL_GL_LoadLibrary() now. The dedicated server still uses dlopen, to
> avoid the dependency.
>
> - Rendering issues: mirror in Q3DM0 doesn't render, water in Q3DM2
> doesn't render. Looks like health orbs lose their orbs (just crosses
> rendering) with some frequency. All of these issues appear to affect
> PowerPC Linux, too, and did before I started my Mac work...some
> byteswap
> issue?
>
> - Haven't tried multiplayer at all.
>
> - Need OpenAL library...doesn't ship as a system framework until 10.4.
> SDL Audio and OpenAL output both appear to be fine on Mac OS now.
>
> - OpenAL dynamic loading doesn't compile. Should make default and let
> people choose a specific openal.dylib via a cvar.
>
> - Altivec code is split out now, since you can't call a function with
> Altivec code on a G3, even if the code is protected with an "if
> (altivec)" check...GCC adds prologue code to these functions to
> protect
> the vector registers, so G3 systems crash when you call the
> function at
> all. This is fixed now. Also, there is now a "com_altivec" cvar which
> uses can use to toggle Altivec support on/off at runtime (if
> com_altivec
> is 1 at startup, we'll detect support and set it appropriately...if
> it's
> 0, we won't detect it and just leave support off).
>
> - Altivec code is broken in _debug_ mode...see nastiness in
> LerpMeshVertexes() in renderer/tr_surface.c ... Works fine in
> release mode. Don't know why. Someone should fix that, I won't be
> doing so.
>
> - Altivec detection relies on Carbon framework...not sure how to do
> this
> on PowerPC Linux. For now, we assume it's available (and G3 Linux
> users
> will have to disable it from the command line).
>
> - I have (re)added the SDL and OpenAL headers to Subversion. I don't
> care what the Linux users say, this is non-negotiable. You can
> choose to
> use the system versions if you want for Linux, but on Windows and
> MacOS,
> these need to be included so we don't have to hunt down the external
> dependency. As such, there will also be Mac and Windows precompiled
> versions of the libraries added, too. Again, Linux users can use a
> system version if they want. By default, they still do this; I
> haven't changed the Makefile to do otherwise. Seriously, leave
> these headers in there.
>
> - Added support for ccache...please build with USE_CCACHE=0 if you
> don't
> want it.
>
> - The XCode project files went away with the rest of the Mac-specific
> bits...this could be reconstructed, though, but I don't personally use
> it, so I don't personally care. :)
>
> - Haven't tried x86 Mac (will do so this upcoming week if there's
> time).
>
> I think most of the remaining issues affect PowerPC Linux, too, so
> I'm leaving this to the pros from here out unless there's a
> specific issue for me to tackle.
>
> --ryan.
>
>
>
More information about the quake3
mailing list