diff a/src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/EncoderManager.m b/src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/EncoderManager.m
--- a/src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/EncoderManager.m
+++ b/src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/EncoderManager.m
@@ -38,12 +38,10 @@
 
     // Persistent encoder properties
     id<MTLTexture> _destination;
     SurfaceRasterFlags _dstFlags;
 
-    jboolean _isAA;
-
     //
     // Cached 'mutable' states of encoder
     //
 
     // Composite rule and source raster flags (it affects the CAD-multipliers (of pipelineState))
@@ -53,11 +51,11 @@
     // Paint mode (it affects shaders (of pipelineState) and corresponding buffers)
     MTLPaint * _paint;
 
     // If true, indicates that encoder is used for texture drawing (user must do [encoder setFragmentTexture:] before drawing)
     jboolean _isTexture;
-    int _interpolationMode;
+    jboolean _isAA;
 
     // Clip rect or stencil
     MTLClip * _clip;
 
     // Transform (affects transformation inside vertex shader)
@@ -102,11 +100,10 @@
 
 - (void)updateEncoder:(id<MTLRenderCommandEncoder>)encoder
                 paint:(MTLPaint *)paint
             composite:(MTLComposite *)composite
             isTexture:(jboolean)isTexture
-        interpolation:(int)interpolation
                  isAA:(jboolean)isAA
              srcFlags:(const SurfaceRasterFlags * _Nullable)srcFlags
                  clip:(MTLClip *)clip
             transform:(MTLTransform *)transform
           forceUpdate:(jboolean)forceUpdate
@@ -130,11 +127,10 @@
     [self updatePipelineState:encoder
                         paint:paint
                     composite:composite
                 isStencilUsed:[clip isShape]
                     isTexture:isTexture
-                interpolation:interpolation
                          isAA:isAA
                      srcFlags:srcFlags
                   forceUpdate:forceUpdate];
     [self updateTransform:encoder transform:transform forceUpdate:forceUpdate];
     [self updateClip:encoder clip:clip forceUpdate:forceUpdate];
@@ -148,48 +144,44 @@
 - (void)updatePipelineState:(id<MTLRenderCommandEncoder>)encoder
                       paint:(MTLPaint *)paint
                   composite:(MTLComposite *)composite
               isStencilUsed:(jboolean)isStencilUsed
                   isTexture:(jboolean)isTexture
-              interpolation:(int)interpolation
                        isAA:(jboolean)isAA
                    srcFlags:(const SurfaceRasterFlags * _Nullable)srcFlags
                 forceUpdate:(jboolean)forceUpdate
 {
     if (srcFlags == NULL)
         srcFlags = &defaultRasterFlags;
 
     if (!forceUpdate
         && [_paint isEqual:paint]
         && [_composite isEqual:composite]
-        && (_isTexture == isTexture && (!isTexture || _interpolationMode == interpolation)) // interpolation is used only in texture mode
+        && _isTexture == isTexture
         && _isAA == isAA
         && _srcFlags.isOpaque == srcFlags->isOpaque && _srcFlags.isPremultiplied == srcFlags->isPremultiplied)
         return;
 
     [_paint copyFrom:paint];
     [_composite copyFrom:composite];
     _isTexture = isTexture;
-    _interpolationMode = interpolation;
     _isAA = isAA;
     _srcFlags = *srcFlags;
 
     if ((jint)[composite getCompositeState] == sun_java2d_SunGraphics2D_COMP_XOR) {
         [paint setXorModePipelineState:encoder
                       composite:_composite
                   isStencilUsed:isStencilUsed
                       isTexture:_isTexture
-                  interpolation:interpolation
                        srcFlags:&_srcFlags
                        dstFlags:&_dstFlags
            pipelineStateStorage:_pipelineStateStorage];
     } else {
         [paint setPipelineState:encoder
                       composite:_composite
                   isStencilUsed:isStencilUsed
                       isTexture:_isTexture
-                  interpolation:interpolation
                            isAA:isAA
                        srcFlags:&_srcFlags
                        dstFlags:&_dstFlags
            pipelineStateStorage:_pipelineStateStorage];
     }
@@ -273,74 +265,54 @@
 - (id<MTLRenderCommandEncoder> _Nonnull)getAARenderEncoder:(const BMTLSDOps * _Nonnull)dstOps {
   id<MTLTexture> dstTxt = dstOps->pTexture;
   return [self getEncoder:dstTxt
                  isOpaque:dstOps->isOpaque
                 isTexture:JNI_FALSE
-           interpolation:INTERPOLATION_NEAREST_NEIGHBOR
                      isAA:JNI_TRUE
                  srcFlags:NULL];
 }
 
 - (id<MTLRenderCommandEncoder> _Nonnull)getRenderEncoder:(id<MTLTexture> _Nonnull)dest
                                              isDstOpaque:(bool)isOpaque
 {
     return [self getEncoder:dest
                  isOpaque:isOpaque
                 isTexture:JNI_FALSE
-            interpolation:INTERPOLATION_NEAREST_NEIGHBOR
                      isAA:JNI_FALSE
                  srcFlags:NULL];
 }
 
 - (id<MTLRenderCommandEncoder> _Nonnull) getTextureEncoder:(const BMTLSDOps * _Nonnull)dstOps
                                       isSrcOpaque:(bool)isSrcOpaque
 {
-    return [self getTextureEncoder:dstOps->pTexture
-                       isSrcOpaque:isSrcOpaque
-                       isDstOpaque:dstOps->isOpaque
-                     interpolation:INTERPOLATION_NEAREST_NEIGHBOR];
-}
-
-- (id<MTLRenderCommandEncoder> _Nonnull) getTextureEncoder:(id<MTLTexture> _Nonnull)dest
-                                               isSrcOpaque:(bool)isSrcOpaque
-                                               isDstOpaque:(bool)isDstOpaque
-{
-    return [self getTextureEncoder:dest
-                       isSrcOpaque:isSrcOpaque
-                       isDstOpaque:isDstOpaque
-                     interpolation:INTERPOLATION_NEAREST_NEIGHBOR
-                              isAA:JNI_FALSE];
+    return [self getTextureEncoder:dstOps->pTexture isSrcOpaque:isSrcOpaque isDstOpaque:dstOps->isOpaque];
 }
 
 - (id<MTLRenderCommandEncoder> _Nonnull) getTextureEncoder:(id<MTLTexture> _Nonnull)dest
                                       isSrcOpaque:(bool)isSrcOpaque
                                       isDstOpaque:(bool)isDstOpaque
-                                    interpolation:(int)interpolation
                                              isAA:(jboolean)isAA
 {
     SurfaceRasterFlags srcFlags = { isSrcOpaque, JNI_TRUE };
     return [self getEncoder:dest
                    isOpaque:isDstOpaque
                   isTexture:JNI_TRUE
-              interpolation:interpolation
                        isAA:isAA
                    srcFlags:&srcFlags];
 }
 
 - (id<MTLRenderCommandEncoder> _Nonnull) getTextureEncoder:(id<MTLTexture> _Nonnull)dest
                                                isSrcOpaque:(bool)isSrcOpaque
                                                isDstOpaque:(bool)isDstOpaque
-                                             interpolation:(int)interpolation
 {
-    return [self getTextureEncoder:dest isSrcOpaque:isSrcOpaque isDstOpaque:isDstOpaque interpolation:interpolation isAA:JNI_FALSE];
+    return [self getTextureEncoder:dest isSrcOpaque:isSrcOpaque isDstOpaque:isDstOpaque isAA:JNI_FALSE];
 }
 
 - (id<MTLRenderCommandEncoder> _Nonnull)
     getEncoder:(id<MTLTexture> _Nonnull)dest
       isOpaque:(jboolean)isOpaque
      isTexture:(jboolean)isTexture
- interpolation:(int)interpolation
           isAA:(jboolean)isAA
       srcFlags:(const SurfaceRasterFlags *_Nullable)srcFlags {
   //
   // 1. check whether it's necessary to call endEncoder
   //
@@ -435,11 +407,10 @@
   //
   [_encoderStates updateEncoder:_encoder
                           paint:_mtlc.paint
                       composite:_mtlc.composite
                       isTexture:isTexture
-                  interpolation:interpolation
                            isAA:isAA
                        srcFlags:srcFlags
                            clip:_mtlc.clip
                       transform:_mtlc.transform
                     forceUpdate:forceUpdate];
@@ -463,11 +434,10 @@
           NSUInteger _w = _destination.width;
           NSUInteger _h = _destination.height;
           _encoder = [self getTextureEncoder:_destination
                                  isSrcOpaque:JNI_FALSE
                                  isDstOpaque:JNI_TRUE
-                               interpolation:INTERPOLATION_NEAREST_NEIGHBOR
                                         isAA:JNI_TRUE];
 
           struct TxtVertex quadTxVerticesBuffer[] = {
               {{0, 0}, {0, 0}},
               {{0,_h}, {0, 1}},
