c.f. H'uru commits:
> commit e4e718e243
> Author: Adam Johnson <AdamJohnso@gmail.com>
> Date: Fri Feb 1 17:19:50 2013 -0500
>
> Bypass ATI Generic fudging with Radeon HD cards
> commit bbae6a76d7
> Author: Adam Johnson <AdamJohnso@gmail.com>
> Date: Sat Nov 30 20:02:08 2013 -0500
>
> We don't support 3dfx cards...
>
> Come on, man... They made some good cards, but they went out of business
> in 1999! Ain't nobody got time fo' dat.
> commit a30a326d17
> Author: Adam Johnson <AdamJohnso@gmail.com>
> Date: Sat Nov 30 20:06:19 2013 -0500
>
> We only support DirectX 9...
>
> If you have less than 11MB VRAM or need to use the ref implementation,
> then you are using a dinosaur and have no business even attempting to play
> this game.
> commit 544abef39e
> Author: Adam Johnson <AdamJohnso@gmail.com>
> Date: Sat Nov 30 20:41:56 2013 -0500
>
> Wow, those cards are old...
>
> Remove detection for cards that are don't support at LEAST DirectX 8.
> There's no way they would even be able to get past Direct3DCreate9, so we
> shouldn't need to worry about them... I hope.
> commit 9070d70e50
> Author: Branan Purvine-Riley <branan@gmail.com>
> Date: Sat Jul 27 14:50:20 2013 -0700
>
> Lots of cleanups to hsG3DeviceDelector
> commit ac23835384
> Author: Branan Purvine-Riley <branan@gmail.com>
> Date: Sat Jul 27 15:09:24 2013 -0700
>
> Get rid of obsolete readers/writes for device info
> commit fc67738ee8
> Author: Branan Purvine-Riley <branan@gmail.com>
> Date: Sat Jul 27 15:50:10 2013 -0700
>
> Remove some obviously obsolete caps
> commit 60c544e1ff
> Author: Adam Johnson <AdamJohnso@gmail.com>
> Date: Fri Nov 29 23:42:20 2013 -0500
>
> Don't lazy-load D3D9.dll
>
> We already link against it, so that's just a waste of time. Also, cleanup
> some unneeded ddraw includes. Remember that in Direct3D9, all devices can
> render in windowed mode.
This prevents users from needing to manually delete files from their
streamingCache folder when an audio file is updated. Note that this will
not fix streamingCaches that are already in a borked state.
Newer versions of VS and Windows use ASLR for security purposes, meaning
that the module may be relocated from what is expected by the linker map
file. While we could kludge around that by disabling ASLR, it would be
better to just map the actual stack addresses to the expected addresses.
This also simplifies all of the weird segment math to simply use the
rvabase value in the map file.
Newer versions of VS and Windows use ASLR for security purposes, meaning
that the module may be relocated from what is expected by the linker map
file. While we could kludge around that by disabling ASLR, it would be
better to just map the actual stack addresses to the expected addresses.
This also simplifies all of the weird segment math to simply use the
rvabase value in the map file.
This fixes a leak of a Python bound method. Leaking this means that
PythonFileMods keys are still loaded when the client exits. These
methods are most commonly used by xSimpleImager.py, so the effect of the
leak can be observed by simply linking to Relto and quitting with a leak
detector active.
The "wait for server response" return value was short-circuiting the
"already done" value. The previous commit fixed always needing a new
instance, exposing this problem.
This fixes a leak of a Python bound method. Leaking this means that
PythonFileMods keys are still loaded when the client exits. These
methods are most commonly used by xSimpleImager.py, so the effect of the
leak can be observed by simply linking to Relto and quitting with a leak
detector active.
The "wait for server response" return value was short-circuiting the
"already done" value. The previous commit fixed always needing a new
instance, exposing this problem.
Unify references to HTML string chunk as being accessed as wchar_t[]
strings rather than repeatedly calling std::wstring.c_str() on the
chunk, then using character positions obtained from those strings
to index directly into the std::wstring[] form from chunk->fText.
The affected code was ported from H'uru where NetVaultNode has a zeroing
constructor. OU does not have a zeroing constructor for this class, and
instead assumes that all allocations will be done with NEWZERO (there is
a debug mode assertion to this effect). The result of the improper
allocation is that the node fields flag could be garbage, causing a
vault node with random contents to be written to the server.
Unfortunately, NetVaultNode::Read_LCS is not extremely resilient to
reading in unexpected data, so this may result in a crash.
Unify references to HTML string chunk as being accessed as wchar_t[]
strings rather than repeatedly calling std::wstring.c_str() on the
chunk, then using character positions obtained from those strings
to index directly into the std::wstring[] form from chunk->fText.
H'Uru PR #719 commit log:
commit 5f53b86494605c484c0b304e0a5ab15a07929106
Author: Adam Johnson <AdamJohnso@gmail.com>
Date: Fri Sep 4 07:38:15 2020 -0400
Fix an infinite loop in plDXPipeline.
This was observed in a 2x2 DXT1 mipmap produced by Korman. While Korman
should probably force such a thing to be uncompressed, the pipeline
should also not be able to enter such an obviously invalid state.
M Sources/Plasma/PubUtilLib/plPipeline/DX/plDXPipeline.cpp
Some of the Python code expects for explicit Age initialization to
complete immediately. Rewriting that would be something of a chore, so
this will prevent first time clicks on the Er'cana and Ahnoying
Cathedral books from causing a perma-stick.
Homologue of H'uru commit ec0aecd202
Per testing on Minkata, suppressing callbacks during all vault downloads
has a deleterious effect on imagers. While my high level assumption is
correct, vault downloads can encompass situations where we want
notifications (eg re-downloading imager inbox folders, new age info
vault fragments). Whoops!
On MOULa, there have been complaints about linking to some Neighborhoods
and activating some players taking a very long time. One of these
Neighborhoods in particular is the "DRC(67) Bevin". When I attempted to
link to this Age, I found the link took approximately 85 seconds each
time. On profiling, I discovered that for every node downloaded during
the initialization phase, we were calling into Python at least once.
Suppressing vault callbacks during times when they are obviously going
to storm and be useless decreases the link time to 7 seconds.
H-uru:
From f45679a54f Mon Sep 17 00:00:00 2001
From: Adam Johnson <AdamJohnso@gmail.com>
Date: Sun, 15 Jan 2012 18:35:05 -0500
Subject: [PATCH] Make pyVault::AddChronicleEntry a blocking operation to avoid
a race condition
Fixes a reference counting issue that prevents non-DirectXCompressed
mipmaps from being used in GUI Lists (eg as icons for avatar clothing).
All future clothing PRPs produced by CreateClothingPRP.py will depend on
this change.