version 28
// The version number above should be implemented IF AND ONLY IF some
// change has been made that is sufficiently important to justify
// resetting the graphics preferences of all users to the recommended
// defaults.  This should be as rare an event as we can manage.

// NOTE: This is mostly identical to featuretable_mac.txt with a few differences
// Should be combined into one table

//
// Generates lists of feature mask that can be applied on top of each other.
//
//		//		Begin comments
//		list <name>
//		Starts a feature list named <name>
//		<name> <available> <recommended>
//		<name> is the name of a feature
//		<available> is 0 or 1, whether the feature is available
//		<recommended> is an F32 which is the recommended value
//
// For now, the first list read sets up all of the default values
//


//
// All contains everything at their default settings for high end machines
// NOTE: All settings are set to the MIN of applied values, including 'all'!
//
list all
RenderAnisotropic			1	1
RenderAvatarCloth			1	1
RenderAvatarLODFactor		1	1.0
RenderAvatarPhysicsLODFactor 1	1.0
RenderAvatarMaxVisible      1   12
RenderAvatarVP				1	1
RenderCubeMap				1	1
RenderDelayVBUpdate			1	0
RenderFarClip				1	256
RenderFlexTimeFactor		1	1.0
RenderFogRatio				1	4.0
RenderGamma					1	0
RenderGlowResolutionPow		1	9
RenderGround				1	1
RenderLocalLights			1	1
RenderMaxPartCount			1	8192
RenderObjectBump			1	1
RenderReflectionDetail		1	4
RenderTerrainDetail			1	1
RenderTerrainLODFactor		1	2.0
RenderTransparentWater		1	1
RenderTreeLODFactor			1	1.0
RenderUseImpostors			1	1
RenderVBOEnable				1	1
RenderVBOMappingDisable		1	1
RenderVolumeLODFactor		1	2.0
UseStartScreen				1	1
UseOcclusion				1	1
VertexShaderEnable			1	1
WindLightUseAtmosShaders	1	1
WLSkyDetail					1	128
Disregard128DefaultDrawDistance	1	1
Disregard96DefaultDrawDistance	1	1
RenderTextureMemoryMultiple		1	1.0
RenderCompressTextures		1	1
RenderShaderLightingMaxLevel		1	3
RenderDeferred				1	1
RenderDeferredSSAO			1	1
RenderShadowDetail			1	2
RenderFSAASamples			1	16
RenderMaxTextureIndex		1	16

//
// Low Graphics Settings (fixed function)
//
list LowFixedFunction
RenderAnisotropic			1	0
RenderAvatarCloth			1	0
RenderAvatarLODFactor		1	0
RenderAvatarPhysicsLODFactor 1	0
RenderAvatarMaxVisible      1   3
RenderAvatarVP				1	0
RenderFarClip				1	64
RenderFlexTimeFactor		1	0
RenderGlowResolutionPow		1	8
RenderLocalLights			1	0
RenderMaxPartCount			1	0
RenderObjectBump			1	0
RenderReflectionDetail		1	0
RenderTerrainDetail			1	0
RenderTerrainLODFactor		1	1
RenderTransparentWater		1	0
RenderTreeLODFactor			1	0
RenderUseImpostors			1	1
RenderVolumeLODFactor		1	0.5
VertexShaderEnable			1	1
WindLightUseAtmosShaders	1	0
RenderDeferred				1	0
RenderDeferredSSAO			1	0
RenderShadowDetail			1	0
WLSkyDetail					1	48
RenderFSAASamples			1	0

//
// Low Graphics Settings
//
list Low
RenderAnisotropic			1	0
RenderAvatarCloth			1	0
RenderAvatarLODFactor		1	0
RenderAvatarPhysicsLODFactor 1	0
RenderAvatarMaxVisible      1   3
RenderAvatarVP				1	0
RenderFarClip				1	64
RenderFlexTimeFactor		1	0
RenderGlowResolutionPow		1	8
RenderLocalLights			1	0
RenderMaxPartCount			1	0
RenderObjectBump			1	0
RenderReflectionDetail		1	0
RenderTerrainDetail			1	0
RenderTerrainLODFactor		1	1
RenderTransparentWater		1	0
RenderTreeLODFactor			1	0
RenderUseImpostors			1	1
RenderVolumeLODFactor		1	0.5
VertexShaderEnable			1	0
WindLightUseAtmosShaders	1	0
RenderDeferred				1	0
RenderDeferredSSAO			1	0
RenderShadowDetail			1	0
WLSkyDetail					1	48
RenderFSAASamples			1	0

//
// Medium Low Graphics Settings
//
list LowMid
RenderAnisotropic			1	0
RenderAvatarCloth			1	0
RenderAvatarLODFactor		1	0.5
RenderAvatarPhysicsLODFactor 1	0.75
RenderAvatarVP				1	1
RenderFarClip				1	96
RenderFlexTimeFactor		1	1.0
RenderGlowResolutionPow		1	8
RenderMaxPartCount			1	2048
RenderObjectBump			1	1
RenderLocalLights			1	1
RenderReflectionDetail		1	0
RenderTerrainDetail			1	1
RenderTerrainLODFactor		1	1.0
RenderTransparentWater		1	1
RenderTreeLODFactor			1	0.5
RenderUseImpostors			1	1
RenderVolumeLODFactor		1	1.125
VertexShaderEnable			1	1
WindLightUseAtmosShaders	1	0
RenderDeferred				1	0
RenderDeferredSSAO			1	0
RenderShadowDetail			1	0
WLSkyDetail					1	48
RenderFSAASamples			1	0

//
// Medium Graphics Settings (standard)
//
list Mid
RenderAnisotropic			1	1
RenderAvatarCloth			1	0
RenderAvatarLODFactor		1	1.0
RenderAvatarPhysicsLODFactor 1	1.0
RenderAvatarVP				1	1
RenderFarClip				1	128
RenderFlexTimeFactor		1	1.0
RenderGlowResolutionPow		1	9
RenderMaxPartCount			1	4096
RenderObjectBump			1	1
RenderLocalLights			1	1
RenderReflectionDetail		1	0
RenderTerrainDetail			1	1
RenderTerrainLODFactor		1	2.0
RenderTransparentWater		1	1
RenderTreeLODFactor			1	0.5
RenderUseImpostors			1	1
RenderVolumeLODFactor		1	1.125
VertexShaderEnable			1	1
WindLightUseAtmosShaders	1	1
RenderDeferred				1	0
RenderDeferredSSAO			1	0
RenderShadowDetail			1	0
WLSkyDetail					1	48
RenderFSAASamples			1	2

//
// Medium High Graphics Settings (deferred enabled)
//
list MidHigh
RenderAnisotropic			1	1
RenderAvatarCloth			1	0
RenderAvatarLODFactor		1	1.0
RenderAvatarPhysicsLODFactor 1	1.0
RenderAvatarVP				1	1
RenderFarClip				1	128
RenderFlexTimeFactor		1	1.0
RenderGlowResolutionPow		1	9
RenderMaxPartCount			1	4096
RenderObjectBump			1	1
RenderLocalLights			1	1
RenderReflectionDetail		1	0
RenderTerrainDetail			1	1
RenderTerrainLODFactor		1	2.0
RenderTransparentWater		1	1
RenderTreeLODFactor			1	0.5
RenderUseImpostors			1	1
RenderVolumeLODFactor		1	1.125
VertexShaderEnable			1	1
WindLightUseAtmosShaders	1	1
RenderDeferred				1	1
RenderDeferredSSAO			1	0
RenderShadowDetail			1	0
WLSkyDetail					1	48
RenderFSAASamples			1	2

//
// High Graphics Settings (deferred + SSAO)
//
list High
RenderAnisotropic			1	1
RenderAvatarCloth			1	0
RenderAvatarLODFactor		1	1.0
RenderAvatarPhysicsLODFactor 1	1.0
RenderAvatarVP				1	1
RenderFarClip				1	128
RenderFlexTimeFactor		1	1.0
RenderGlowResolutionPow		1	9
RenderMaxPartCount			1	4096
RenderObjectBump			1	1
RenderLocalLights			1	1
RenderReflectionDetail		1	0
RenderTerrainDetail			1	1
RenderTerrainLODFactor		1	2.0
RenderTransparentWater		1	1
RenderTreeLODFactor			1	0.5
RenderUseImpostors			1	1
RenderVolumeLODFactor		1	1.125
VertexShaderEnable			1	1
WindLightUseAtmosShaders	1	1
RenderDeferred				1	1
RenderDeferredSSAO			1	1
RenderShadowDetail			1	0
WLSkyDetail					1	48
RenderFSAASamples			1	2

//
// High Ultra Graphics Settings (deferred + SSAO + shadows)
//
list HighUltra
RenderAnisotropic			1	1
RenderAvatarCloth			1	0
RenderAvatarLODFactor		1	1.0
RenderAvatarPhysicsLODFactor 1	1.0
RenderAvatarVP				1	1
RenderFarClip				1	128
RenderFlexTimeFactor		1	1.0
RenderGlowResolutionPow		1	9
RenderMaxPartCount			1	4096
RenderObjectBump			1	1
RenderLocalLights			1	1
RenderReflectionDetail		1	0
RenderTerrainDetail			1	1
RenderTerrainLODFactor		1	2.0
RenderTransparentWater		1	1
RenderTreeLODFactor			1	0.5
RenderUseImpostors			1	1
RenderVolumeLODFactor		1	1.125
VertexShaderEnable			1	1
WindLightUseAtmosShaders	1	1
RenderDeferred				1	1
RenderDeferredSSAO			1	1
RenderShadowDetail			1	2
WLSkyDetail					1	48
RenderFSAASamples			1	2

//
// Ultra graphics (REALLY PURTY!)
//
list Ultra
RenderAnisotropic			1	1
RenderAvatarCloth			1	1
RenderAvatarLODFactor		1	1.0
RenderAvatarPhysicsLODFactor 1	1.0
RenderAvatarVP				1	1
RenderFarClip				1	256
RenderFlexTimeFactor		1	1.0
RenderGlowResolutionPow		1	9
RenderLocalLights			1	1
RenderMaxPartCount			1	8192
RenderObjectBump			1	1
RenderReflectionDetail		1	4
RenderTerrainDetail			1	1
RenderTerrainLODFactor		1	2.0
RenderTransparentWater		1	1
RenderTreeLODFactor			1	1.0
RenderUseImpostors			1	1
RenderVolumeLODFactor		1	2.0
VertexShaderEnable			1	1
WindLightUseAtmosShaders	1	1
WLSkyDetail					1	128
RenderDeferred				1	1
RenderDeferredSSAO			1	1
RenderShadowDetail			1	2
RenderFSAASamples			1	2

//
// Class Unknown Hardware (unknown)
//
list Unknown
RenderVBOEnable				1	0
RenderShadowDetail			1	0
RenderDeferred				1	0
RenderDeferredSSAO			1	0

//
// Class 0 Hardware (just old)
//
list Class0
RenderVBOEnable				1	1

//
// Class 1 Hardware
//
list Class1
RenderVBOEnable				1	1

//
// Class 2 Hardware
//
list Class2
RenderVBOEnable				1	1

//
// Class 3 Hardware
//
list Class3
RenderVBOEnable				1	1

//
// Class 4 Hardware 
//
list Class4
RenderVBOEnable				1	1

//
// Class 5 Hardware 
//
list Class5
RenderVBOEnable				1	1

//
// VRAM > 512MB
//
list VRAMGT512
RenderCompressTextures		1	0

//
// No Pixel Shaders available
//
list NoPixelShaders
RenderAvatarVP				0	0
RenderAvatarCloth			0	0
RenderReflectionDetail		0	0
VertexShaderEnable			0	0
WindLightUseAtmosShaders	0	0
RenderDeferred				0	0
RenderDeferredSSAO			0	0
RenderShadowDetail			0	0

//
// No Vertex Shaders available
//
list NoVertexShaders
RenderAvatarVP				0	0
RenderAvatarCloth			0	0
RenderReflectionDetail		0	0
VertexShaderEnable			0	0
WindLightUseAtmosShaders	0	0
RenderDeferred				0	0
RenderDeferredSSAO			0	0
RenderShadowDetail			0	0

//
// GL_ARB_map_buffer_range exists
//
list MapBufferRange
RenderVBOMappingDisable		1	1



// "Default" setups for safe, low, medium, high
//
list safe
RenderAnisotropic			1	0
RenderAvatarCloth			0	0
RenderAvatarVP				0	0
RenderObjectBump			0	0
RenderMaxPartCount			1	1024
RenderTerrainDetail 		1	0
RenderUseImpostors			0	0
RenderVBOEnable				1	0
RenderReflectionDetail		0	0
WindLightUseAtmosShaders	0	0
RenderDeferred				0	0
RenderDeferredSSAO			0	0
RenderShadowDetail			0	0


//
// CPU based feature masks
//

// 1Ghz or less (equiv)
list CPUSlow
RenderMaxPartCount			1	1024

//
// RAM based feature masks
//
list RAM256MB
RenderObjectBump			0	0

//
// Graphics card based feature masks
//
list OpenGLPre15
RenderVBOEnable				1	0

list OpenGLPre30
RenderDeferred				0	0
RenderMaxTextureIndex		1	1

list Intel
RenderAnisotropic			1	0
// Avoid some Intel crashes on Linux
RenderCubeMap				0	0
RenderFSAASamples			1	0

list GeForce2
RenderAnisotropic			1	0
RenderMaxPartCount			1	2048
RenderTerrainDetail			1	0
RenderVBOEnable				1	1

list SiS
UseOcclusion				0	0


list Intel_830M
RenderTerrainDetail			1	0
RenderVBOEnable				1	0

list Intel_845G					
RenderTerrainDetail			1	0
RenderVBOEnable				1	0

list Intel_855GM				
RenderTerrainDetail			1	0
RenderVBOEnable				1	0

list Intel_865G			
RenderTerrainDetail			1	0
RenderVBOEnable				1	0

list Intel_900		
RenderTerrainDetail			1	0
RenderVBOEnable				1	0

list Intel_915GM	
RenderTerrainDetail			1	0
RenderVBOEnable				1	0

list Intel_915G					
RenderTerrainDetail			1	0
RenderVBOEnable				1	0

list Intel_945GM			
RenderTerrainDetail			1	0
RenderVBOEnable				1	0

list Intel_945G
RenderTerrainDetail			1	0
RenderVBOEnable				1	0

list Intel_950
RenderTerrainDetail			1	0
RenderVBOEnable				1	0

list Intel_965
RenderTerrainDetail			1	0
RenderVBOEnable				1	0
UseOcclusion				0	0

list Intel_G33
RenderTerrainDetail			1	0
RenderVBOEnable				1	0

list Intel_Bear_Lake	
RenderTerrainDetail			1	0
RenderVBOEnable				1	0

list Intel_Broadwater 
RenderTerrainDetail			1	0
RenderVBOEnable				1	0

list Intel_Brookdale	
RenderTerrainDetail			1	0
RenderVBOEnable				1	0

list Intel_Montara
RenderTerrainDetail			1	0
RenderVBOEnable				1	0

list Intel_Springdale
RenderTerrainDetail			1	0
RenderVBOEnable				1	0


list ATI_FireGL_5200
RenderVBOEnable				1	0
WindLightUseAtmosShaders	0	0


list ATI_Mobility_Radeon_7xxx
RenderVBOEnable				0	0

list ATI_Radeon_7xxx
RenderVBOEnable				0	0

list ATI_All-in-Wonder_Radeon
RenderVBOEnable				0	0

list ATI_All-in-Wonder_7500
RenderVBOEnable				0	0

list ATI_Mobility_Radeon_9600
Disregard96DefaultDrawDistance	1	0


/// tweaked ATI to 96 Draw distance

list ATI_Radeon_9000
Disregard96DefaultDrawDistance	1	0
list ATI_Radeon_9200
Disregard96DefaultDrawDistance	1	0
list ATI_Radeon_9500
Disregard96DefaultDrawDistance	1	0
list ATI_Radeon_9600
Disregard96DefaultDrawDistance	1	0

/// tweaked ATI to 128 draw distance

list ATI_Radeon_X300 
Disregard128DefaultDrawDistance	1	0
list ATI_Radeon_X400 
Disregard128DefaultDrawDistance	1	0
list ATI_Radeon_X500 
Disregard128DefaultDrawDistance	1	0
list ATI_Radeon_X600 
Disregard128DefaultDrawDistance	1	0
list ATI_Radeon_X700 
Disregard128DefaultDrawDistance	1	0
list ATI_Radeon_X1300 
Disregard128DefaultDrawDistance	1	0
UseStartScreen					0	0
list ATI_Radeon_X1400 
Disregard128DefaultDrawDistance	1	0
list ATI_Radeon_X1500 
Disregard128DefaultDrawDistance	1	0
UseStartScreen					0	0
list ATI_Radeon_X1600 
Disregard128DefaultDrawDistance	1	0
list ATI_Radeon_X1700 
Disregard128DefaultDrawDistance	1	0
list ATI_Mobility_Radeon_X1xxx
Disregard128DefaultDrawDistance	1	0
list ATI_Radeon_HD_2300
Disregard128DefaultDrawDistance	1	0
list ATI_Radeon_HD_2400
Disregard128DefaultDrawDistance	1	0
list ATI_ASUS_AH24xx
Disregard128DefaultDrawDistance	1	0


// Avatar hardware skinning causes invisible avatars
// on various ATI chipsets on drivers before 8.2

list ATIOldDriver
RenderAvatarVP				0	0
RenderAvatarCloth			0	0
// Avoid driver crashes with some features on Linux with old ATI drivers
UseOcclusion				0	0
WindLightUseAtmosShaders	0	0


/// Tweaked NVIDIA

list NVIDIA_GeForce_FX_5100
Disregard96DefaultDrawDistance	1	0
list NVIDIA_GeForce_FX_5200
Disregard96DefaultDrawDistance	1	0
list NVIDIA_GeForce_FX_5500
Disregard96DefaultDrawDistance	1	0
list NVIDIA_GeForce_FX_5600
Disregard96DefaultDrawDistance	1	0

list NVIDIA_GeForce_FX_Go5100
Disregard96DefaultDrawDistance	1	0
list NVIDIA_GeForce_FX_Go5200
Disregard96DefaultDrawDistance	1	0
list NVIDIA_GeForce_FX_Go5300
Disregard96DefaultDrawDistance	1	0
list NVIDIA_GeForce_FX_Go5500
Disregard96DefaultDrawDistance	1	0
list NVIDIA_GeForce_FX_Go5600
Disregard96DefaultDrawDistance	1	0

list NVIDIA_GeForce_6100
Disregard128DefaultDrawDistance	1	0
list NVIDIA_GeForce_6200
Disregard128DefaultDrawDistance	1	0
list NVIDIA_GeForce_6500
Disregard128DefaultDrawDistance	1	0
list NVIDIA_GeForce_6600
Disregard128DefaultDrawDistance	1	0

list NVIDIA_G73
Disregard128DefaultDrawDistance	1	0

list NVIDIA_GeForce_Go_6100
RenderVBOEnable				1	0
Disregard128DefaultDrawDistance	1	0
list NVIDIA_GeForce_Go_6200
RenderVBOEnable				1	0
Disregard128DefaultDrawDistance	1	0
list NVIDIA_GeForce_Go_6500
RenderVBOEnable				1	0
Disregard128DefaultDrawDistance	1	0
list NVIDIA_GeForce_Go_6600
RenderVBOEnable				1	0
Disregard128DefaultDrawDistance	1	0
list NVIDIA_GeForce_Go_6700
RenderVBOEnable				1	0
Disregard128DefaultDrawDistance	1	0
list NVIDIA_GeForce_Go_6800
RenderVBOEnable				1	0
Disregard128DefaultDrawDistance	1	0
list NVIDIA_GeForce_Go_6
RenderVBOEnable				1	0
Disregard128DefaultDrawDistance	1	0

list NVIDIA_GeForce_7000
RenderShaderLightingMaxLevel	1	2
list NVIDIA_GeForce_7100
RenderShaderLightingMaxLevel	1	2
list NVIDIA_GeForce_7200
Disregard128DefaultDrawDistance	1	0
RenderShaderLightingMaxLevel	1	2
list NVIDIA_GeForce_7300
Disregard128DefaultDrawDistance	1	0
RenderShaderLightingMaxLevel	1	2
list NVIDIA_GeForce_7400
Disregard128DefaultDrawDistance	1	0
RenderShaderLightingMaxLevel	1	2
list NVIDIA_GeForce_7500
RenderShaderLightingMaxLevel	1	2
list NVIDIA_GeForce_7600
RenderShaderLightingMaxLevel	1	2
list NVIDIA_GeForce_7700
RenderShaderLightingMaxLevel	1	2
list NVIDIA_GeForce_7800
RenderShaderLightingMaxLevel	1	2
list NVIDIA_GeForce_7900
RenderShaderLightingMaxLevel	1	2

list NVIDIA_GeForce_Go_7200
Disregard128DefaultDrawDistance	1	0
RenderShaderLightingMaxLevel	1	2
list NVIDIA_GeForce_Go_7300
Disregard128DefaultDrawDistance	1	0
RenderShaderLightingMaxLevel	1	2
list NVIDIA_GeForce_Go_7300_LE
RenderShaderLightingMaxLevel	1	2
list NVIDIA_GeForce_Go_7400
Disregard128DefaultDrawDistance	1	0
RenderShaderLightingMaxLevel	1	2
list NVIDIA_GeForce_Go_7600
RenderShaderLightingMaxLevel	1	2
list NVIDIA_GeForce_Go_7700
RenderShaderLightingMaxLevel	1	2
list NVIDIA_GeForce_Go_7800
RenderShaderLightingMaxLevel	1	2
list NVIDIA_GeForce_Go_7900
RenderShaderLightingMaxLevel	1	2