mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 11:00:11 +01:00
v3dv: increase BO allocation size when growing CLs
This can significantly reduce the number of allocations required to record large command buffers with thousands of draw calls and it improves significantly vkoverhead's results. fps_avg helped: serious_sam_trace01_1280x720.gfxr: 17.96 -> 18.50 (3.01%) fps_avg helped: vehicle-game-2.gfxr: 9.09 -> 9.33 (2.67%) fps_avg helped: ue4_shooter_game_high_quality.gfxr: 17.40 -> 17.66 (1.48%) fps_avg helped: ue4_shooter_game_low_quality.gfxr: 25.25 -> 25.61 (1.44%) fps_avg helped: ue4_sun_temple.gfxr: 24.93 -> 25.15 (0.86%) fps_avg helped: vkQuake_capture_frames_1_through_1200.gfxr: 52.54 -> 52.95 (0.78%) fps_avg helped: rbdoom-3-bfg_capture.gfxr: 13.87 -> 13.96 (0.69%) fps_avg helped: sponza_demo02_800x600.gfxr: 19.59 -> 19.63 (0.21%) fps_avg HURT: ue4_shooter_game_shooting_high_quality.gfxr: 19.14 -> 18.95 (-0.98%) fps_avg HURT: sponza_demo01_800x600.gfxr: 20.03 -> 20 (-0.09%) fps_avg HURT: quake3e_capture_frames_1_through_1800.gfxr: 57.34 -> 57.34 (-0.01%) fps_avg HURT: serious_sam_trace02_1280x720.gfxr: 38.27 -> 38.27 (-0.01%) total fps_min in shared programs: 311.74 -> 313.91 (0.69%) fps_min in affected programs: 311.74 -> 313.91 (0.69%) helped: 10 HURT: 2 total fps_max in shared programs: 319.54 -> 320.24 (0.22%) fps_max in affected programs: 319.54 -> 320.24 (0.22%) helped: 6 HURT: 6 total fps_avg in shared programs: 315.41 -> 317.36 (0.62%) fps_avg in affected programs: 315.41 -> 317.36 (0.62%) helped: 8 HURT: 4 Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20787>
This commit is contained in:
parent
01c6eeeba5
commit
3325950648
1 changed files with 5 additions and 0 deletions
|
|
@ -58,6 +58,11 @@ v3dv_cl_destroy(struct v3dv_cl *cl)
|
|||
static bool
|
||||
cl_alloc_bo(struct v3dv_cl *cl, uint32_t space, bool use_branch)
|
||||
{
|
||||
/* If we are growing, double the BO allocation size to reduce the number
|
||||
* of allocations with large command buffers. This has a very significant
|
||||
* impact on the number of draw calls per second reported by vkoverhead.
|
||||
*/
|
||||
space = cl->bo ? cl->bo->size * 2 : align(space, 4096);
|
||||
struct v3dv_bo *bo = v3dv_bo_alloc(cl->job->device, space, "CL", true);
|
||||
if (!bo) {
|
||||
fprintf(stderr, "failed to allocate memory for command list\n");
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue