}
float texmemsize(float s3tc)
{
- if(cvar("menu_picmip_bypass"))
- return 0;
- else
- return
- (
- 2500 * pow(0.5, max(0, cvar("gl_picmip") + cvar("gl_picmip_other")))
- + 1500 * pow(0.5, max(0, cvar("gl_picmip") + cvar("gl_picmip_world")))
- ) * (s3tc && ((cvar("r_texture_dds_load") || cvar("gl_texturecompression")) ? 0.2 : 1.0)); // TC: normalmaps 50%, other 25%, few incompressible, guessing 40% as conservative average
+ return
+ (
+ 2500 * pow(0.25, max(0, cvar("gl_picmip") + cvar("gl_picmip_other")))
+ + 1500 * pow(0.25, max(0, cvar("gl_picmip") + cvar("gl_picmip_world")))
+ ) * ((s3tc && (cvar("r_texture_dds_load") || cvar("gl_texturecompression"))) ? 0.2 : 1.0); // TC: normalmaps 50%, other 25%, few incompressible, guessing 40% as conservative average
}
void XonoticPicmipSlider_autofix(entity me)
{
float max_hard, max_soft;
+ if(cvar("menu_picmip_bypass"))
+ return;
max_hard = cvar("sys_memsize_virtual");
max_soft = cvar("sys_memsize_physical");
if(max_hard > 0)