diff options
author | Loren Huang <b02279@freescale.com> | 2014-07-15 15:22:50 +0800 |
---|---|---|
committer | Loren Huang <b02279@freescale.com> | 2014-08-27 12:09:01 +0800 |
commit | 4cc465429628bf02b8b363e1ec6f8f97492ab1e3 (patch) | |
tree | 95c33b2261fd34a75d682ea806528390359af3f6 /drivers | |
parent | 3fa0d011628af1cd4e93889d294c469e963cc0a1 (diff) |
ENGR00315583 [#1209] fix random data corruption in GPU memory
GPU memory node should not be used after node structure is destoryed,
that will cause random GPU memory data corruption issue in Android platform.
the issue can be reproduced when run cts -p android.opengl repeatly(more than 100 times)
Date: May 28, 2014
Signed-off-by: Xianzhong <b07117@freescale.com>
Acked-by: Jason Liu
(cherry picked from commit 36dbe12f0dbd01dd7ef10b52a9c508fa5d7d19d0)
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c index ccf0277c2bc5..d565800e13bf 100644 --- a/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c +++ b/drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c @@ -1260,14 +1260,6 @@ gckKERNEL_Dispatch( node->VidMem.logical = gcvNULL; } #endif - /* Free video memory. */ - gcmkONERROR( - gckVIDMEM_Free(Kernel, node)); - - gcmkONERROR( - gckKERNEL_RemoveProcessDB(Kernel, - processID, gcvDB_VIDEO_MEMORY, - node)); if (node->VidMem.memory->object.type == gcvOBJ_VIDMEM) { @@ -1291,6 +1283,15 @@ gckKERNEL_Dispatch( node)); } + /* Free video memory. */ + gcmkONERROR( + gckVIDMEM_Free(Kernel, node)); + + gcmkONERROR( + gckKERNEL_RemoveProcessDB(Kernel, + processID, gcvDB_VIDEO_MEMORY, + node)); + break; case gcvHAL_LOCK_VIDEO_MEMORY: |