diff --git a/src/com/android/musicvis/GenericWaveRS.java b/src/com/android/musicvis/GenericWaveRS.java
index e8a54a3..0494cc9 100644
--- a/src/com/android/musicvis/GenericWaveRS.java
+++ b/src/com/android/musicvis/GenericWaveRS.java
@@ -150,7 +150,9 @@
         mPointAlloc.copyFromUnchecked(mPointData);
 
         // load the texture
-        mTexture = Allocation.createFromBitmapResource(mRS, mResources, mTexId);
+        mTexture = Allocation.createFromBitmapResource(mRS, mResources, mTexId,
+                                           Allocation.MipmapControl.MIPMAP_NONE,
+                                           Allocation.USAGE_GRAPHICS_TEXTURE);
 
         mScript.set_gTlinetexture(mTexture);
 
diff --git a/src/com/android/musicvis/vis4/Visualization4RS.java b/src/com/android/musicvis/vis4/Visualization4RS.java
index 94c794c..c113446 100644
--- a/src/com/android/musicvis/vis4/Visualization4RS.java
+++ b/src/com/android/musicvis/vis4/Visualization4RS.java
@@ -108,17 +108,29 @@
         updateWave();
 
         mTextures = new Allocation[6];
-        mTextures[0] = Allocation.createFromBitmapResource(mRS, mResources, R.drawable.background);
+        mTextures[0] = Allocation.createFromBitmapResource(mRS, mResources, R.drawable.background,
+                                           Allocation.MipmapControl.MIPMAP_NONE,
+                                           Allocation.USAGE_GRAPHICS_TEXTURE);
         mScript.set_gTvumeter_background(mTextures[0]);
-        mTextures[1] = Allocation.createFromBitmapResource(mRS, mResources, R.drawable.frame);
+        mTextures[1] = Allocation.createFromBitmapResource(mRS, mResources, R.drawable.frame,
+                                           Allocation.MipmapControl.MIPMAP_NONE,
+                                           Allocation.USAGE_GRAPHICS_TEXTURE);
         mScript.set_gTvumeter_frame(mTextures[1]);
-        mTextures[2] = Allocation.createFromBitmapResource(mRS, mResources, R.drawable.peak_on);
+        mTextures[2] = Allocation.createFromBitmapResource(mRS, mResources, R.drawable.peak_on,
+                                           Allocation.MipmapControl.MIPMAP_NONE,
+                                           Allocation.USAGE_GRAPHICS_TEXTURE);
         mScript.set_gTvumeter_peak_on(mTextures[2]);
-        mTextures[3] = Allocation.createFromBitmapResource(mRS, mResources, R.drawable.peak_off);
+        mTextures[3] = Allocation.createFromBitmapResource(mRS, mResources, R.drawable.peak_off,
+                                           Allocation.MipmapControl.MIPMAP_NONE,
+                                           Allocation.USAGE_GRAPHICS_TEXTURE);
         mScript.set_gTvumeter_peak_off(mTextures[3]);
-        mTextures[4] = Allocation.createFromBitmapResource(mRS, mResources, R.drawable.needle);
+        mTextures[4] = Allocation.createFromBitmapResource(mRS, mResources, R.drawable.needle,
+                                           Allocation.MipmapControl.MIPMAP_NONE,
+                                           Allocation.USAGE_GRAPHICS_TEXTURE);
         mScript.set_gTvumeter_needle(mTextures[4]);
-        mTextures[5] = Allocation.createFromBitmapResource(mRS, mResources, R.drawable.black);
+        mTextures[5] = Allocation.createFromBitmapResource(mRS, mResources, R.drawable.black,
+                                           Allocation.MipmapControl.MIPMAP_NONE,
+                                           Allocation.USAGE_GRAPHICS_TEXTURE);
         mScript.set_gTvumeter_black(mTextures[5]);
 
         Sampler.Builder samplerBuilder = new Sampler.Builder(mRS);
