diff --git a/java/tests/RsTest/src/com/android/rs/test/ctxt_default.rs b/java/tests/RsTest/src/com/android/rs/test/ctxt_default.rs
index ba86ada..d842cb0 100644
--- a/java/tests/RsTest/src/com/android/rs/test/ctxt_default.rs
+++ b/java/tests/RsTest/src/com/android/rs/test/ctxt_default.rs
@@ -9,26 +9,26 @@
     *out = 7;
 }
 
-int RS_KERNEL root(int ain, rs_kernel_context ctxt, uint32_t x) {
-    _RS_ASSERT_EQU(rsGetArray0(ctxt), 0);
-    _RS_ASSERT_EQU(rsGetArray1(ctxt), 0);
-    _RS_ASSERT_EQU(rsGetArray2(ctxt), 0);
-    _RS_ASSERT_EQU(rsGetArray3(ctxt), 0);
-    _RS_ASSERT_EQU(rsGetFace(ctxt), RS_ALLOCATION_CUBEMAP_FACE_POSITIVE_X);
-    _RS_ASSERT_EQU(rsGetLod(ctxt), 0);
+int RS_KERNEL root(int ain, rs_kernel_context context, uint32_t x) {
+    _RS_ASSERT_EQU(rsGetArray0(context), 0);
+    _RS_ASSERT_EQU(rsGetArray1(context), 0);
+    _RS_ASSERT_EQU(rsGetArray2(context), 0);
+    _RS_ASSERT_EQU(rsGetArray3(context), 0);
+    _RS_ASSERT_EQU(rsGetFace(context), RS_ALLOCATION_CUBEMAP_FACE_POSITIVE_X);
+    _RS_ASSERT_EQU(rsGetLod(context), 0);
 
-    _RS_ASSERT_EQU(rsGetDimY(ctxt), 0);
-    _RS_ASSERT_EQU(rsGetDimZ(ctxt), 0);
-    _RS_ASSERT_EQU(rsGetDimArray0(ctxt), 0);
-    _RS_ASSERT_EQU(rsGetDimArray1(ctxt), 0);
-    _RS_ASSERT_EQU(rsGetDimArray2(ctxt), 0);
-    _RS_ASSERT_EQU(rsGetDimArray3(ctxt), 0);
-    _RS_ASSERT_EQU(rsGetDimHasFaces(ctxt), false);
-    _RS_ASSERT_EQU(rsGetDimLod(ctxt), 0);
+    _RS_ASSERT_EQU(rsGetDimY(context), 0);
+    _RS_ASSERT_EQU(rsGetDimZ(context), 0);
+    _RS_ASSERT_EQU(rsGetDimArray0(context), 0);
+    _RS_ASSERT_EQU(rsGetDimArray1(context), 0);
+    _RS_ASSERT_EQU(rsGetDimArray2(context), 0);
+    _RS_ASSERT_EQU(rsGetDimArray3(context), 0);
+    _RS_ASSERT_EQU(rsGetDimHasFaces(context), false);
+    _RS_ASSERT_EQU(rsGetDimLod(context), 0);
 
     if (!_RS_ASSERT_EQU(ain, 7))
         rsDebug("root at x", x);
-    uint32_t dimX = rsGetDimX(ctxt);
+    uint32_t dimX = rsGetDimX(context);
     _RS_ASSERT_EQU(dimX, gDimX);
     return ain + x;
 }
diff --git a/java/tests/RsTest/src/com/android/rs/test/kernel2d.rs b/java/tests/RsTest/src/com/android/rs/test/kernel2d.rs
index 045d913..6c11f8b 100644
--- a/java/tests/RsTest/src/com/android/rs/test/kernel2d.rs
+++ b/java/tests/RsTest/src/com/android/rs/test/kernel2d.rs
@@ -9,11 +9,11 @@
     *out = 7;
 }
 
-int RS_KERNEL root(int ain, rs_kernel_context ctxt, uint32_t x, uint32_t y) {
+int RS_KERNEL root(int ain, rs_kernel_context context, uint32_t x, uint32_t y) {
     if (!_RS_ASSERT_EQU(ain, 7))
         rsDebug("root at x, y", x, y);
-    uint32_t dimX = rsGetDimX(ctxt);
-    uint32_t dimY = rsGetDimY(ctxt);
+    uint32_t dimX = rsGetDimX(context);
+    uint32_t dimY = rsGetDimY(context);
     _RS_ASSERT_EQU(dimX, gDimX);
     _RS_ASSERT_EQU(dimY, gDimY);
     return ain + x + dimX * y;
diff --git a/java/tests/RsTest/src/com/android/rs/test/kernel2d_oldstyle.rs b/java/tests/RsTest/src/com/android/rs/test/kernel2d_oldstyle.rs
index 61dd988..2977cdd 100644
--- a/java/tests/RsTest/src/com/android/rs/test/kernel2d_oldstyle.rs
+++ b/java/tests/RsTest/src/com/android/rs/test/kernel2d_oldstyle.rs
@@ -9,11 +9,11 @@
     *out = 7;
 }
 
-void xform(const int *in, int *out, rs_kernel_context ctxt, uint32_t x, uint32_t y) {
+void xform(const int *in, int *out, rs_kernel_context context, uint32_t x, uint32_t y) {
     if (!_RS_ASSERT_EQU(*in, 7))
         rsDebug("xform at x, y", x, y);
-    uint32_t dimX = rsGetDimX(ctxt);
-    uint32_t dimY = rsGetDimY(ctxt);
+    uint32_t dimX = rsGetDimX(context);
+    uint32_t dimY = rsGetDimY(context);
     _RS_ASSERT_EQU(dimX, gDimX);
     _RS_ASSERT_EQU(dimY, gDimY);
     *out = *in + x + dimX * y;
diff --git a/java/tests/RsTest/src/com/android/rs/test/kernel3d.rs b/java/tests/RsTest/src/com/android/rs/test/kernel3d.rs
index fba1cb9..7959bf7 100644
--- a/java/tests/RsTest/src/com/android/rs/test/kernel3d.rs
+++ b/java/tests/RsTest/src/com/android/rs/test/kernel3d.rs
@@ -9,12 +9,12 @@
     *out = 7;
 }
 
-int RS_KERNEL root(int ain, rs_kernel_context ctxt, uint32_t x, uint32_t y, uint32_t z) {
+int RS_KERNEL root(int ain, rs_kernel_context context, uint32_t x, uint32_t y, uint32_t z) {
     if (!_RS_ASSERT_EQU(ain, 7))
         rsDebug("root at x, y, z", x, y, z);
-    uint32_t dimX = rsGetDimX(ctxt);
-    uint32_t dimY = rsGetDimY(ctxt);
-    uint32_t dimZ = rsGetDimZ(ctxt);
+    uint32_t dimX = rsGetDimX(context);
+    uint32_t dimY = rsGetDimY(context);
+    uint32_t dimZ = rsGetDimZ(context);
     _RS_ASSERT_EQU(dimX, gDimX);
     _RS_ASSERT_EQU(dimY, gDimY);
     _RS_ASSERT_EQU(dimZ, gDimZ);
