+ // put the location name in the r_speeds display as it greatly helps
+ // when creating loc files
+ loc = CL_Locs_FindNearest(cl.movement_origin);
+ dpsnprintf(string, sizeof(string),
+"%s%s\n"
+"%3i renders org:'%+8.2f %+8.2f %+8.2f' dir:'%+2.3f %+2.3f %+2.3f'\n"
+"%7i surfaces%7i triangles %5i entities (%7i surfaces%7i triangles)\n"
+"%5i leafs%5i portals%6i/%6i particles%6i/%6i decals %3i%% quality\n"
+"%7i lightmap updates (%7i pixels)\n"
+"%4i lights%4i clears%4i scissored%7i light%7i shadow%7i dynamic\n"
+"rendered%6i meshes%8i triangles bloompixels%8i copied%8i drawn\n"
+"%s"
+, loc ? "Location: " : "", loc ? loc->name : ""
+, r_refdef.stats.renders, r_refdef.view.origin[0], r_refdef.view.origin[1], r_refdef.view.origin[2], r_refdef.view.forward[0], r_refdef.view.forward[1], r_refdef.view.forward[2]
+, r_refdef.stats.world_surfaces, r_refdef.stats.world_triangles, r_refdef.stats.entities, r_refdef.stats.entities_surfaces, r_refdef.stats.entities_triangles
+, r_refdef.stats.world_leafs, r_refdef.stats.world_portals, r_refdef.stats.particles, cl.num_particles, r_refdef.stats.decals, cl.num_decals, (int)(100 * r_refdef.view.quality)
+, r_refdef.stats.lightmapupdates, r_refdef.stats.lightmapupdatepixels
+, r_refdef.stats.lights, r_refdef.stats.lights_clears, r_refdef.stats.lights_scissored, r_refdef.stats.lights_lighttriangles, r_refdef.stats.lights_shadowtriangles, r_refdef.stats.lights_dynamicshadowtriangles
+, r_refdef.stats.meshes, r_refdef.stats.meshes_elements / 3, r_refdef.stats.bloom_copypixels, r_refdef.stats.bloom_drawpixels
+, r_speeds_timestring);
+
+ memset(&r_refdef.stats, 0, sizeof(r_refdef.stats));
+
+ speedstringcount = 0;
+ r_speeds_timestring[0] = 0;
+ r_timereport_active = false;
+
+ if (r_speeds.integer >= 2)