Second Life shader variants are referred to as "classes." When a shader of a particular class is loaded, a lower class may be loaded if the class requested doesn't exist or fails to load for any reason. In general, shaders that require more resources or later hardware capabilities should be higher class and lower classes can be used for fallback implementations or lower detail settings. Which class is chosen will generally depend on graphics preferences. Previously, someone tried to enumerate the shaders here, but don't do that. It messes with searches and the shader hierarchy changes often.