[quake3] VM incompatibilities with anisotropic filtering patch and improvements with ongoing development

Ludwig Nussel ludwig.nussel at suse.de
Sat Apr 29 07:24:03 EDT 2006


Thilo Schulz wrote:
> With the latest patch introducing anisotropic texture filtering an 
> incompatibility to the old VM files has been introduced, too.
> 
> The glConfig structure that is being passed to these parts has been changed to 
> add info about the status of anisotropic filtering. The original VMs of 
> course do not mirror that change.
> This is problematic because the complete glConfig struct gets written to 
> address space managed by these VMs that calculate with a lower bytecount for 
> the glConfig structure und overwrites data.
> 
> For instance, in q3_ui/ui_local.h it overwrites the variables:
>         qboolean                        debug;
>         qhandle_t                       whiteShader;
> in the uiStatic_t struct.

AFAICS it also currupts cgs_t in cgame/ and uiInfo_t in ui/.

> As soon as you enable anisotropic filtering using the old VMs the debug value 
> gets overwritten and the menu is suddenly displayed in debug mode.
> 
> Now there are two ways to fix the problem:
> 1. move the
>         qboolean                                textureFilterAnisotropic;
>         int                                             maxAnisotropy;
> variables from the glconfig_t struct to another one
> 2. create a compatibility struct with the old data layout from the original iD 
> vm's and use this structure as base for writing to the VM's memory
> 3. Get all modders on the world to patch their VMs with the same modifications 
> we did to ioq3.

4. store the values in a cvar.
5. store them in static variables outside glConfig_t. Does mod code
need to know about anisotropic filtering anyways?

cu
Ludwig

-- 
 (o_   Ludwig Nussel
 //\   SUSE LINUX Products GmbH, Development
 V_/_  http://www.suse.de/




More information about the quake3 mailing list