Fix serious memory leak at Enter/LeaveVT
This fixes huge memory leak at each VT switch (about 600 BOs + 6MB of RSS of Xserver).
This commit is contained in:
parent
095a001f75
commit
d4c64f01b9
|
|
@ -1715,7 +1715,7 @@ gen4_render_state_cleanup(ScrnInfoPtr pScrn)
|
|||
{
|
||||
I830Ptr pI830 = I830PTR(pScrn);
|
||||
struct gen4_render_state *render_state= pI830->gen4_render_state;
|
||||
int i;
|
||||
int i, j, k, l, m;
|
||||
|
||||
if (render_state->vertex_buffer_bo) {
|
||||
dri_bo_unreference (render_state->vertex_buffer_bo);
|
||||
|
|
@ -1728,12 +1728,23 @@ gen4_render_state_cleanup(ScrnInfoPtr pScrn)
|
|||
render_state->sf_state_bo = NULL;
|
||||
drm_intel_bo_unreference(render_state->sf_mask_state_bo);
|
||||
render_state->sf_mask_state_bo = NULL;
|
||||
drm_intel_bo_unreference(render_state->cc_state_bo);
|
||||
render_state->cc_state_bo = NULL;
|
||||
|
||||
for (i = 0; i < WM_KERNEL_COUNT; i++) {
|
||||
drm_intel_bo_unreference(render_state->wm_kernel_bo[i]);
|
||||
render_state->wm_kernel_bo[i] = NULL;
|
||||
}
|
||||
|
||||
for (i = 0; i < SAMPLER_STATE_FILTER_COUNT; i++)
|
||||
for (j = 0; j < SAMPLER_STATE_EXTEND_COUNT; j++)
|
||||
for (k = 0; k < SAMPLER_STATE_FILTER_COUNT; k++)
|
||||
for (l = 0; l < SAMPLER_STATE_EXTEND_COUNT; l++)
|
||||
for (m = 0; m < WM_KERNEL_COUNT; m++) {
|
||||
drm_intel_bo_unreference(render_state->wm_state_bo[m][i][j][k][l]);
|
||||
render_state->wm_state_bo[m][i][j][k][l] = NULL;
|
||||
}
|
||||
|
||||
drm_intel_bo_unreference(render_state->cc_state_bo);
|
||||
render_state->cc_state_bo = NULL;
|
||||
drm_intel_bo_unreference(render_state->sip_kernel_bo);
|
||||
render_state->sip_kernel_bo = NULL;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue