summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLoren Huang <b02279@freescale.com>2014-07-15 15:22:50 +0800
committerLoren Huang <b02279@freescale.com>2014-08-15 11:25:04 +0800
commit79d49d738ac4c28cc8c0e57b87202204f6c21b06 (patch)
tree1e47148b716c7204410becd0b53abad5c907ea53
parenta5de4eb9102cc2e2340b220ddaefe788dba36357 (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) (cherry picked from commit c81d392b824699088f88d4552cb1935d94d89dc3)
-rw-r--r--drivers/mxc/gpu-viv/hal/kernel/gc_hal_kernel.c17
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: