Revert "GL: Update StateManagerGL binding funcs to use ANGLE_GL_TRY"

This reverts commit 4b5a774e855af2493d64b0635f56053bd795c5c5.

Reason for revert: broken on iOS and Skia

Original change's description:
> GL: Update StateManagerGL binding funcs to use ANGLE_GL_TRY
>
> Bug: angleproject:3020
> Change-Id: Iff460a1012d06e1c5feff84d91117de87e7c870a
> Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3123167
> Reviewed-by: Jamie Madill <jmadill@chromium.org>
> Commit-Queue: Geoff Lang <geofflang@chromium.org>

Bug: angleproject:3020
Change-Id: I54d81a7b734d007f65ff97990008f5e6eb8536f6
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3140453
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/Error.cpp b/src/libANGLE/Error.cpp
index 62c7096..977e8d6 100644
--- a/src/libANGLE/Error.cpp
+++ b/src/libANGLE/Error.cpp
@@ -64,25 +64,4 @@
 
     return egl::Error(EGL_BAD_ACCESS);
 }
-
-std::ostream &operator<<(std::ostream &os, Result result)
-{
-    switch (result)
-    {
-        case Result::Continue:
-            os << "Continue";
-            break;
-        case Result::Stop:
-            os << "Stop";
-            break;
-        case Result::Incomplete:
-            os << "Incomplete";
-            break;
-        default:
-            UNREACHABLE();
-            break;
-    }
-
-    return os;
-}
 }  // namespace angle
diff --git a/src/libANGLE/Error.h b/src/libANGLE/Error.h
index b0d779b..2b09aec 100644
--- a/src/libANGLE/Error.h
+++ b/src/libANGLE/Error.h
@@ -172,9 +172,6 @@
 
 // TODO(jmadill): Remove this when refactor is complete. http://anglebug.com/3041
 egl::Error ResultToEGL(Result result);
-
-std::ostream &operator<<(std::ostream &os, Result result);
-
 }  // namespace angle
 
 // TODO(jmadill): Remove this when refactor is complete. http://anglebug.com/3041
diff --git a/src/libANGLE/renderer/gl/BlitGL.cpp b/src/libANGLE/renderer/gl/BlitGL.cpp
index 1bb42a3..2405c00 100644
--- a/src/libANGLE/renderer/gl/BlitGL.cpp
+++ b/src/libANGLE/renderer/gl/BlitGL.cpp
@@ -95,7 +95,7 @@
         stateManager->setPolygonOffsetFillEnabled(false);
         stateManager->setRasterizerDiscardEnabled(false);
 
-        ANGLE_TRY(stateManager->pauseTransformFeedback(context));
+        stateManager->pauseTransformFeedback();
         return stateManager->pauseAllQueries(context);
     }
 
@@ -110,16 +110,14 @@
         return stateManager->resumeAllQueries(context);
     }
 
-    angle::Result willUseTextureUnit(const gl::Context *context, int unit)
+    void willUseTextureUnit(const gl::Context *context, int unit)
     {
         ContextGL *contextGL = GetImplAs<ContextGL>(context);
 
         if (contextGL->getFunctions()->bindSampler)
         {
-            ANGLE_TRY(contextGL->getStateManager()->bindSampler(context, unit, 0));
+            contextGL->getStateManager()->bindSampler(unit, 0);
         }
-
-        return angle::Result::Continue;
     }
 
   private:
@@ -239,7 +237,7 @@
 {
     for (const auto &blitProgram : mBlitPrograms)
     {
-        (void)mStateManager->deleteProgram(nullptr, blitProgram.second.program);
+        mStateManager->deleteProgram(blitProgram.second.program);
     }
     mBlitPrograms.clear();
 
@@ -247,20 +245,20 @@
     {
         if (mScratchTextures[i] != 0)
         {
-            (void)mStateManager->deleteTexture(nullptr, mScratchTextures[i]);
+            mStateManager->deleteTexture(mScratchTextures[i]);
             mScratchTextures[i] = 0;
         }
     }
 
     if (mScratchFBO != 0)
     {
-        (void)mStateManager->deleteFramebuffer(nullptr, mScratchFBO);
+        mStateManager->deleteFramebuffer(mScratchFBO);
         mScratchFBO = 0;
     }
 
     if (mOwnsVAOState)
     {
-        (void)mStateManager->deleteVertexArray(nullptr, mVAO);
+        mStateManager->deleteVertexArray(mVAO);
         SafeDelete(mVAOState);
         mVAO = 0;
     }
@@ -276,7 +274,7 @@
                                                        GLenum internalFormat,
                                                        gl::Framebuffer *source)
 {
-    ANGLE_TRY(mStateManager->bindTexture(context, textureType, texture));
+    mStateManager->bindTexture(textureType, texture);
 
     // Allocate the texture memory
     GLenum format   = gl::GetUnsizedFormat(internalFormat);
@@ -312,8 +310,7 @@
 
     // Blit the framebuffer to the first scratch texture
     const FramebufferGL *sourceFramebufferGL = GetImplAs<FramebufferGL>(source);
-    ANGLE_TRY(mStateManager->bindFramebuffer(context, GL_FRAMEBUFFER,
-                                             sourceFramebufferGL->getFramebufferID()));
+    mStateManager->bindFramebuffer(GL_FRAMEBUFFER, sourceFramebufferGL->getFramebufferID());
 
     GLenum readFormat = source->getImplementationColorReadFormat(context);
     GLenum readType   = source->getImplementationColorReadType(context);
@@ -321,7 +318,7 @@
     nativegl::CopyTexImageImageFormat copyTexImageFormat =
         nativegl::GetCopyTexImageImageFormat(mFunctions, mFeatures, readFormat, readType);
 
-    ANGLE_TRY(mStateManager->bindTexture(context, gl::TextureType::_2D, mScratchTextures[0]));
+    mStateManager->bindTexture(gl::TextureType::_2D, mScratchTextures[0]);
     ANGLE_GL_TRY_ALWAYS_CHECK(
         context, mFunctions->copyTexImage2D(GL_TEXTURE_2D, 0, copyTexImageFormat.internalFormat,
                                             sourceArea.x, sourceArea.y, sourceArea.width,
@@ -340,29 +337,29 @@
 
     // Make a temporary framebuffer using the second scratch texture to render the swizzled result
     // to.
-    ANGLE_TRY(mStateManager->bindTexture(context, gl::TextureType::_2D, mScratchTextures[1]));
+    mStateManager->bindTexture(gl::TextureType::_2D, mScratchTextures[1]);
     ANGLE_GL_TRY_ALWAYS_CHECK(
         context, mFunctions->texImage2D(GL_TEXTURE_2D, 0, copyTexImageFormat.internalFormat,
                                         sourceArea.width, sourceArea.height, 0,
                                         gl::GetUnsizedFormat(copyTexImageFormat.internalFormat),
                                         readType, nullptr));
 
-    ANGLE_TRY(mStateManager->bindFramebuffer(context, GL_FRAMEBUFFER, mScratchFBO));
+    mStateManager->bindFramebuffer(GL_FRAMEBUFFER, mScratchFBO);
     ANGLE_GL_TRY(context, mFunctions->framebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
                                                            GL_TEXTURE_2D, mScratchTextures[1], 0));
 
     // Render to the destination texture, sampling from the scratch texture
     ScopedGLState scopedState;
     ANGLE_TRY(scopedState.enter(context, gl::Rectangle(0, 0, sourceArea.width, sourceArea.height)));
-    ANGLE_TRY(scopedState.willUseTextureUnit(context, 0));
+    scopedState.willUseTextureUnit(context, 0);
 
     ANGLE_TRY(setScratchTextureParameter(context, GL_TEXTURE_MIN_FILTER, GL_NEAREST));
     ANGLE_TRY(setScratchTextureParameter(context, GL_TEXTURE_MAG_FILTER, GL_NEAREST));
 
-    ANGLE_TRY(mStateManager->activeTexture(context, 0));
-    ANGLE_TRY(mStateManager->bindTexture(context, gl::TextureType::_2D, mScratchTextures[0]));
+    mStateManager->activeTexture(0);
+    mStateManager->bindTexture(gl::TextureType::_2D, mScratchTextures[0]);
 
-    ANGLE_TRY(mStateManager->useProgram(context, blitProgram->program));
+    mStateManager->useProgram(blitProgram->program);
     ANGLE_GL_TRY(context, mFunctions->uniform1i(blitProgram->sourceTextureLocation, 0));
     ANGLE_GL_TRY(context, mFunctions->uniform2f(blitProgram->scaleLocation, 1.0, 1.0));
     ANGLE_GL_TRY(context, mFunctions->uniform2f(blitProgram->offsetLocation, 0.0, 0.0));
@@ -373,7 +370,7 @@
     ANGLE_GL_TRY(context, mFunctions->drawArrays(GL_TRIANGLES, 0, 3));
 
     // Copy the swizzled texture to the destination texture
-    ANGLE_TRY(mStateManager->bindTexture(context, textureType, texture));
+    mStateManager->bindTexture(textureType, texture);
 
     if (nativegl::UseTexImage3D(textureType))
     {
@@ -408,7 +405,7 @@
                                                 bool writeAlpha)
 {
     ANGLE_TRY(initializeResources(context));
-    ANGLE_TRY(mStateManager->bindFramebuffer(context, GL_FRAMEBUFFER, mScratchFBO));
+    mStateManager->bindFramebuffer(GL_FRAMEBUFFER, mScratchFBO);
     ANGLE_GL_TRY(context, mFunctions->framebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
                                                            ToGLenum(destTarget), destTexture,
                                                            static_cast<GLint>(destLevel)));
@@ -489,9 +486,8 @@
         nativegl::CopyTexImageImageFormat copyTexImageFormat = nativegl::GetCopyTexImageImageFormat(
             mFunctions, mFeatures, sourceInternalFormat.internalFormat, sourceInternalFormat.type);
         const FramebufferGL *sourceGL = GetImplAs<FramebufferGL>(source);
-        ANGLE_TRY(mStateManager->bindFramebuffer(context, GL_READ_FRAMEBUFFER,
-                                                 sourceGL->getFramebufferID()));
-        ANGLE_TRY(mStateManager->bindTexture(context, gl::TextureType::_2D, textureId));
+        mStateManager->bindFramebuffer(GL_READ_FRAMEBUFFER, sourceGL->getFramebufferID());
+        mStateManager->bindTexture(gl::TextureType::_2D, textureId);
 
         ANGLE_GL_TRY_ALWAYS_CHECK(
             context, mFunctions->copyTexImage2D(GL_TEXTURE_2D, 0, copyTexImageFormat.internalFormat,
@@ -533,16 +529,16 @@
     // rectangle
     ScopedGLState scopedState;
     ANGLE_TRY(scopedState.enter(context, destArea, ScopedGLState::KEEP_SCISSOR));
-    ANGLE_TRY(scopedState.willUseTextureUnit(context, 0));
+    scopedState.willUseTextureUnit(context, 0);
 
     // Set the write color mask to potentially not write alpha
     mStateManager->setColorMask(true, true, true, writeAlpha);
 
     // Set uniforms
-    ANGLE_TRY(mStateManager->activeTexture(context, 0));
-    ANGLE_TRY(mStateManager->bindTexture(context, gl::TextureType::_2D, textureId));
+    mStateManager->activeTexture(0);
+    mStateManager->bindTexture(gl::TextureType::_2D, textureId);
 
-    ANGLE_TRY(mStateManager->useProgram(context, blitProgram->program));
+    mStateManager->useProgram(blitProgram->program);
     ANGLE_GL_TRY(context, mFunctions->uniform1i(blitProgram->sourceTextureLocation, 0));
     ANGLE_GL_TRY(context, mFunctions->uniform2f(blitProgram->scaleLocation, texCoordScale.x(),
                                                 texCoordScale.y()));
@@ -551,7 +547,7 @@
     ANGLE_GL_TRY(context, mFunctions->uniform1i(blitProgram->multiplyAlphaLocation, 0));
     ANGLE_GL_TRY(context, mFunctions->uniform1i(blitProgram->unMultiplyAlphaLocation, 0));
 
-    ANGLE_TRY(mStateManager->bindFramebuffer(context, GL_DRAW_FRAMEBUFFER, destFramebuffer));
+    mStateManager->bindFramebuffer(GL_DRAW_FRAMEBUFFER, destFramebuffer);
 
     ANGLE_TRY(setVAOState(context));
     ANGLE_GL_TRY(context, mFunctions->drawArrays(GL_TRIANGLES, 0, 3));
@@ -585,7 +581,7 @@
 
     // Make sure the destination texture can be rendered to before setting anything else up.  Some
     // cube maps may not be renderable until all faces have been filled.
-    ANGLE_TRY(mStateManager->bindFramebuffer(context, GL_FRAMEBUFFER, mScratchFBO));
+    mStateManager->bindFramebuffer(GL_FRAMEBUFFER, mScratchFBO);
     ANGLE_GL_TRY(context, mFunctions->framebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
                                                            ToGLenum(destTarget), destID,
                                                            static_cast<GLint>(destLevel)));
@@ -630,10 +626,10 @@
     ScopedGLState scopedState;
     ANGLE_TRY(scopedState.enter(
         context, gl::Rectangle(destOffset.x, destOffset.y, sourceArea.width, sourceArea.height)));
-    ANGLE_TRY(scopedState.willUseTextureUnit(context, 0));
+    scopedState.willUseTextureUnit(context, 0);
 
-    ANGLE_TRY(mStateManager->activeTexture(context, 0));
-    ANGLE_TRY(mStateManager->bindTexture(context, source->getType(), source->getTextureID()));
+    mStateManager->activeTexture(0);
+    mStateManager->bindTexture(source->getType(), source->getTextureID());
 
     Vector2 scale(sourceArea.width, sourceArea.height);
     Vector2 offset(sourceArea.x, sourceArea.y);
@@ -650,7 +646,7 @@
         scale.y() = -scale.y();
     }
 
-    ANGLE_TRY(mStateManager->useProgram(context, blitProgram->program));
+    mStateManager->useProgram(blitProgram->program);
     ANGLE_GL_TRY(context, mFunctions->uniform1i(blitProgram->sourceTextureLocation, 0));
     ANGLE_GL_TRY(context, mFunctions->uniform2f(blitProgram->scaleLocation, scale.x(), scale.y()));
     ANGLE_GL_TRY(context,
@@ -707,7 +703,7 @@
 
     gl::Rectangle readPixelsArea = sourceArea;
 
-    ANGLE_TRY(mStateManager->bindFramebuffer(context, GL_FRAMEBUFFER, mScratchFBO));
+    mStateManager->bindFramebuffer(GL_FRAMEBUFFER, mScratchFBO);
     bool supportExternalTarget =
         source->getType() == gl::TextureType::External && context->getExtensions().yuvTargetEXT;
     GLenum status = GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT;
@@ -727,7 +723,7 @@
             sourceInternalFormatInfo.format, sourceInternalFormatInfo.type);
 
         gl::TextureType scratchTextureType = gl::TextureType::_2D;
-        ANGLE_TRY(mStateManager->bindTexture(context, scratchTextureType, mScratchTextures[0]));
+        mStateManager->bindTexture(scratchTextureType, mScratchTextures[0]);
         ANGLE_GL_TRY_ALWAYS_CHECK(
             context,
             mFunctions->texImage2D(ToGLenum(scratchTextureType), 0, texImageFormat.internalFormat,
@@ -747,7 +743,7 @@
         }
 
         // Bind the scratch texture as the readback texture
-        ANGLE_TRY(mStateManager->bindFramebuffer(context, GL_FRAMEBUFFER, mScratchFBO));
+        mStateManager->bindFramebuffer(GL_FRAMEBUFFER, mScratchFBO);
         ANGLE_GL_TRY(context, mFunctions->framebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
                                                                ToGLenum(scratchTextureType),
                                                                mScratchTextures[0], 0));
@@ -814,7 +810,7 @@
     nativegl::TexSubImageFormat texSubImageFormat =
         nativegl::GetTexSubImageFormat(mFunctions, mFeatures, destFormat, destType);
 
-    ANGLE_TRY(mStateManager->bindTexture(context, dest->getType(), dest->getTextureID()));
+    mStateManager->bindTexture(dest->getType(), dest->getTextureID());
     ANGLE_GL_TRY(context, mFunctions->texSubImage2D(
                               ToGLenum(destTarget), static_cast<GLint>(destLevel), destOffset.x,
                               destOffset.y, readPixelsArea.width, readPixelsArea.height,
@@ -836,7 +832,7 @@
     ANGLE_TRY(initializeResources(context));
 
     // Make sure the source texture can create a complete framebuffer before continuing.
-    ANGLE_TRY(mStateManager->bindFramebuffer(context, GL_FRAMEBUFFER, mScratchFBO));
+    mStateManager->bindFramebuffer(GL_FRAMEBUFFER, mScratchFBO);
     ANGLE_GL_TRY(context, mFunctions->framebufferTexture2D(
                               GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, ToGLenum(source->getType()),
                               source->getTextureID(), static_cast<GLint>(sourceLevel)));
@@ -847,7 +843,7 @@
         return angle::Result::Continue;
     }
 
-    ANGLE_TRY(mStateManager->bindTexture(context, dest->getType(), dest->getTextureID()));
+    mStateManager->bindTexture(dest->getType(), dest->getTextureID());
 
     ANGLE_GL_TRY(context,
                  mFunctions->copyTexSubImage2D(ToGLenum(destTarget), static_cast<GLint>(destLevel),
@@ -873,7 +869,7 @@
     ANGLE_TRY(PrepareForClear(mStateManager, sizedInternalFormat, &bindTargets, &unbindTargets,
                               &clearMask));
 
-    ANGLE_TRY(mStateManager->bindFramebuffer(context, GL_FRAMEBUFFER, mScratchFBO));
+    mStateManager->bindFramebuffer(GL_FRAMEBUFFER, mScratchFBO);
     ANGLE_TRY(UnbindAttachments(context, mFunctions, GL_FRAMEBUFFER, unbindTargets));
 
     if (nativegl::UseTexImage2D(source->getType()))
@@ -977,7 +973,7 @@
     ANGLE_TRY(PrepareForClear(mStateManager, sizedInternalFormat, &bindTargets, &unbindTargets,
                               &clearMask));
 
-    ANGLE_TRY(mStateManager->bindFramebuffer(context, GL_FRAMEBUFFER, mScratchFBO));
+    mStateManager->bindFramebuffer(GL_FRAMEBUFFER, mScratchFBO);
     ANGLE_TRY(UnbindAttachments(context, mFunctions, GL_FRAMEBUFFER, unbindTargets));
 
     for (GLenum bindTarget : bindTargets)
@@ -1006,7 +1002,7 @@
     GLbitfield clearMask = 0;
     ANGLE_TRY(SetClearState(mStateManager, true, true, true, &clearMask));
 
-    ANGLE_TRY(mStateManager->bindFramebuffer(context, GL_FRAMEBUFFER, source->getFramebufferID()));
+    mStateManager->bindFramebuffer(GL_FRAMEBUFFER, source->getFramebufferID());
     ANGLE_GL_TRY(context, mFunctions->clear(clearMask));
 
     return angle::Result::Continue;
@@ -1026,7 +1022,7 @@
     mStateManager->setColorMask(false, false, false, true);
     mStateManager->setScissorTestEnabled(false);
 
-    ANGLE_TRY(mStateManager->bindFramebuffer(context, GL_FRAMEBUFFER, mScratchFBO));
+    mStateManager->bindFramebuffer(GL_FRAMEBUFFER, mScratchFBO);
     ANGLE_GL_TRY(context, mFunctions->framebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
                                                            ToGLenum(target), texture,
                                                            static_cast<GLint>(level)));
@@ -1053,19 +1049,19 @@
     ScopedGLState scopedState;
     ANGLE_TRY(scopedState.enter(
         context, gl::Rectangle(0, 0, sourceBaseLevelSize.width, sourceBaseLevelSize.height)));
-    ANGLE_TRY(scopedState.willUseTextureUnit(context, 0));
-    ANGLE_TRY(mStateManager->activeTexture(context, 0));
+    scopedState.willUseTextureUnit(context, 0);
+    mStateManager->activeTexture(0);
 
     // Copy source to a linear intermediate texture.
     GLuint linearTexture = mScratchTextures[0];
-    ANGLE_TRY(mStateManager->bindTexture(context, sourceType, linearTexture));
+    mStateManager->bindTexture(sourceType, linearTexture);
     ANGLE_GL_TRY(context, mFunctions->texImage2D(
                               ToGLenum(sourceTarget), 0, mSRGBMipmapGenerationFormat.internalFormat,
                               sourceBaseLevelSize.width, sourceBaseLevelSize.height, 0,
                               mSRGBMipmapGenerationFormat.format, mSRGBMipmapGenerationFormat.type,
                               nullptr));
 
-    ANGLE_TRY(mStateManager->bindFramebuffer(context, GL_FRAMEBUFFER, mScratchFBO));
+    mStateManager->bindFramebuffer(GL_FRAMEBUFFER, mScratchFBO);
     ANGLE_GL_TRY(context,
                  mFunctions->framebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
                                                   ToGLenum(sourceTarget), linearTexture, 0));
@@ -1076,21 +1072,21 @@
     BlitProgram *blitProgram = nullptr;
     ANGLE_TRY(getBlitProgram(context, sourceType, GL_FLOAT, GL_FLOAT, &blitProgram));
 
-    ANGLE_TRY(mStateManager->useProgram(context, blitProgram->program));
+    mStateManager->useProgram(blitProgram->program);
     ANGLE_GL_TRY(context, mFunctions->uniform1i(blitProgram->sourceTextureLocation, 0));
     ANGLE_GL_TRY(context, mFunctions->uniform2f(blitProgram->scaleLocation, 1.0f, 1.0f));
     ANGLE_GL_TRY(context, mFunctions->uniform2f(blitProgram->offsetLocation, 0.0f, 0.0f));
     ANGLE_GL_TRY(context, mFunctions->uniform1i(blitProgram->multiplyAlphaLocation, 0));
     ANGLE_GL_TRY(context, mFunctions->uniform1i(blitProgram->unMultiplyAlphaLocation, 0));
 
-    ANGLE_TRY(mStateManager->bindTexture(context, sourceType, source->getTextureID()));
+    mStateManager->bindTexture(sourceType, source->getTextureID());
     ANGLE_TRY(source->setMinFilter(context, GL_NEAREST));
 
     ANGLE_TRY(setVAOState(context));
     ANGLE_GL_TRY(context, mFunctions->drawArrays(GL_TRIANGLES, 0, 3));
 
     // Generate mipmaps on the linear texture
-    ANGLE_TRY(mStateManager->bindTexture(context, sourceType, linearTexture));
+    mStateManager->bindTexture(sourceType, linearTexture);
     ANGLE_GL_TRY_ALWAYS_CHECK(context, mFunctions->generateMipmap(ToGLenum(sourceTarget)));
     ANGLE_GL_TRY(context, mFunctions->texParameteri(ToGLenum(sourceTarget), GL_TEXTURE_MIN_FILTER,
                                                     GL_NEAREST));
@@ -1133,7 +1129,7 @@
     ANGLE_GL_TRY(context, mFunctions->genFramebuffers(1, &mScratchFBO));
 
     ANGLE_GL_TRY(context, mFunctions->genBuffers(1, &mVertexBuffer));
-    ANGLE_TRY(mStateManager->bindBuffer(context, gl::BufferBinding::Array, mVertexBuffer));
+    mStateManager->bindBuffer(gl::BufferBinding::Array, mVertexBuffer);
 
     // Use a single, large triangle, to avoid arithmetic precision issues where fragments
     // with the same Y coordinate don't get exactly the same interpolated texcoord Y.
@@ -1190,7 +1186,7 @@
 {
     for (auto texture : mScratchTextures)
     {
-        ANGLE_TRY(mStateManager->bindTexture(context, gl::TextureType::_2D, texture));
+        mStateManager->bindTexture(gl::TextureType::_2D, texture);
         gl::PixelUnpackState unpack;
         ANGLE_TRY(mStateManager->setPixelUnpackState(context, unpack));
         ANGLE_TRY(mStateManager->setPixelUnpackBuffer(context, nullptr));
@@ -1231,7 +1227,7 @@
 {
     for (auto texture : mScratchTextures)
     {
-        ANGLE_TRY(mStateManager->bindTexture(context, gl::TextureType::_2D, texture));
+        mStateManager->bindTexture(gl::TextureType::_2D, texture);
         ANGLE_GL_TRY(context, mFunctions->texParameteri(GL_TEXTURE_2D, param, value));
         ANGLE_GL_TRY(context, mFunctions->texParameteri(GL_TEXTURE_2D, param, value));
     }
@@ -1240,7 +1236,7 @@
 
 angle::Result BlitGL::setVAOState(const gl::Context *context)
 {
-    ANGLE_TRY(mStateManager->bindVertexArray(context, mVAO, mVAOState));
+    mStateManager->bindVertexArray(mVAO, mVAOState);
     if (mFeatures.syncVertexArraysToDefault.enabled)
     {
         ANGLE_TRY(initializeVAOState(context));
@@ -1251,7 +1247,7 @@
 
 angle::Result BlitGL::initializeVAOState(const gl::Context *context)
 {
-    ANGLE_TRY(mStateManager->bindBuffer(context, gl::BufferBinding::Array, mVertexBuffer));
+    mStateManager->bindBuffer(gl::BufferBinding::Array, mVertexBuffer);
 
     ANGLE_GL_TRY(context, mFunctions->enableVertexAttribArray(mTexcoordAttribLocation));
     ANGLE_GL_TRY(context, mFunctions->vertexAttribPointer(mTexcoordAttribLocation, 2, GL_FLOAT,
diff --git a/src/libANGLE/renderer/gl/BufferGL.cpp b/src/libANGLE/renderer/gl/BufferGL.cpp
index e54e44b..adfed7a 100644
--- a/src/libANGLE/renderer/gl/BufferGL.cpp
+++ b/src/libANGLE/renderer/gl/BufferGL.cpp
@@ -49,7 +49,7 @@
 void BufferGL::destroy(const gl::Context *context)
 {
     StateManagerGL *stateManager = GetStateManagerGL(context);
-    (void)stateManager->deleteBuffer(context, mBufferID);
+    stateManager->deleteBuffer(mBufferID);
     mBufferID = 0;
 }
 
@@ -64,7 +64,7 @@
     StateManagerGL *stateManager      = GetStateManagerGL(context);
     const angle::FeaturesGL &features = GetFeaturesGL(context);
 
-    ANGLE_TRY(stateManager->bindBuffer(context, DestBufferOperationTarget, mBufferID));
+    stateManager->bindBuffer(DestBufferOperationTarget, mBufferID);
     ANGLE_GL_TRY(context, functions->bufferData(gl::ToGLenum(DestBufferOperationTarget), size, data,
                                                 ToGLenum(usage)));
 
@@ -96,7 +96,7 @@
     StateManagerGL *stateManager      = GetStateManagerGL(context);
     const angle::FeaturesGL &features = GetFeaturesGL(context);
 
-    ANGLE_TRY(stateManager->bindBuffer(context, DestBufferOperationTarget, mBufferID));
+    stateManager->bindBuffer(DestBufferOperationTarget, mBufferID);
     ANGLE_GL_TRY(context, functions->bufferSubData(gl::ToGLenum(DestBufferOperationTarget), offset,
                                                    size, data));
 
@@ -123,9 +123,8 @@
 
     BufferGL *sourceGL = GetAs<BufferGL>(source);
 
-    ANGLE_TRY(stateManager->bindBuffer(context, DestBufferOperationTarget, mBufferID));
-    ANGLE_TRY(
-        stateManager->bindBuffer(context, SourceBufferOperationTarget, sourceGL->getBufferID()));
+    stateManager->bindBuffer(DestBufferOperationTarget, mBufferID);
+    stateManager->bindBuffer(SourceBufferOperationTarget, sourceGL->getBufferID());
 
     ANGLE_GL_TRY(context, functions->copyBufferSubData(gl::ToGLenum(SourceBufferOperationTarget),
                                                        gl::ToGLenum(DestBufferOperationTarget),
@@ -155,14 +154,14 @@
     }
     else if (functions->mapBuffer)
     {
-        ANGLE_TRY(stateManager->bindBuffer(context, DestBufferOperationTarget, mBufferID));
+        stateManager->bindBuffer(DestBufferOperationTarget, mBufferID);
         *mapPtr = ANGLE_GL_TRY(
             context, functions->mapBuffer(gl::ToGLenum(DestBufferOperationTarget), access));
     }
     else
     {
         ASSERT(functions->mapBufferRange && access == GL_WRITE_ONLY_OES);
-        ANGLE_TRY(stateManager->bindBuffer(context, DestBufferOperationTarget, mBufferID));
+        stateManager->bindBuffer(DestBufferOperationTarget, mBufferID);
         *mapPtr =
             ANGLE_GL_TRY(context, functions->mapBufferRange(gl::ToGLenum(DestBufferOperationTarget),
                                                             0, mBufferSize, GL_MAP_WRITE_BIT));
@@ -194,7 +193,7 @@
     }
     else
     {
-        ANGLE_TRY(stateManager->bindBuffer(context, DestBufferOperationTarget, mBufferID));
+        stateManager->bindBuffer(DestBufferOperationTarget, mBufferID);
         *mapPtr =
             ANGLE_GL_TRY(context, functions->mapBufferRange(gl::ToGLenum(DestBufferOperationTarget),
                                                             offset, length, access));
@@ -221,7 +220,7 @@
 
     if (features.keepBufferShadowCopy.enabled)
     {
-        ANGLE_TRY(stateManager->bindBuffer(context, DestBufferOperationTarget, mBufferID));
+        stateManager->bindBuffer(DestBufferOperationTarget, mBufferID);
         ANGLE_GL_TRY(context,
                      functions->bufferSubData(gl::ToGLenum(DestBufferOperationTarget), mMapOffset,
                                               mMapSize, mShadowCopy.data() + mMapOffset));
@@ -229,7 +228,7 @@
     }
     else
     {
-        ANGLE_TRY(stateManager->bindBuffer(context, DestBufferOperationTarget, mBufferID));
+        stateManager->bindBuffer(DestBufferOperationTarget, mBufferID);
         *result =
             ANGLE_GL_TRY(context, functions->unmapBuffer(gl::ToGLenum(DestBufferOperationTarget)));
     }
@@ -262,7 +261,7 @@
     }
     else
     {
-        ANGLE_TRY(stateManager->bindBuffer(context, DestBufferOperationTarget, mBufferID));
+        stateManager->bindBuffer(DestBufferOperationTarget, mBufferID);
 
         const GLuint typeBytes = gl::GetDrawElementsTypeSize(type);
         const uint8_t *bufferData =
diff --git a/src/libANGLE/renderer/gl/ClearMultiviewGL.cpp b/src/libANGLE/renderer/gl/ClearMultiviewGL.cpp
index 82e5f58..9af41d8 100644
--- a/src/libANGLE/renderer/gl/ClearMultiviewGL.cpp
+++ b/src/libANGLE/renderer/gl/ClearMultiviewGL.cpp
@@ -11,7 +11,6 @@
 #include "libANGLE/renderer/gl/FunctionsGL.h"
 #include "libANGLE/renderer/gl/StateManagerGL.h"
 #include "libANGLE/renderer/gl/TextureGL.h"
-#include "libANGLE/renderer/gl/renderergl_utils.h"
 
 #include "libANGLE/Framebuffer.h"
 
@@ -30,104 +29,87 @@
     }
 }
 
-angle::Result ClearMultiviewGL::clearMultiviewFBO(const gl::Context *context,
-                                                  const gl::FramebufferState &state,
-                                                  const gl::Rectangle &scissorBase,
-                                                  ClearCommandType clearCommandType,
-                                                  GLbitfield mask,
-                                                  GLenum buffer,
-                                                  GLint drawbuffer,
-                                                  const uint8_t *values,
-                                                  GLfloat depth,
-                                                  GLint stencil)
+void ClearMultiviewGL::clearMultiviewFBO(const gl::FramebufferState &state,
+                                         const gl::Rectangle &scissorBase,
+                                         ClearCommandType clearCommandType,
+                                         GLbitfield mask,
+                                         GLenum buffer,
+                                         GLint drawbuffer,
+                                         const uint8_t *values,
+                                         GLfloat depth,
+                                         GLint stencil)
 {
     const gl::FramebufferAttachment *firstAttachment = state.getFirstNonNullAttachment();
     if (firstAttachment->isMultiview())
     {
-        ANGLE_TRY(clearLayeredFBO(context, state, clearCommandType, mask, buffer, drawbuffer,
-                                  values, depth, stencil));
+        clearLayeredFBO(state, clearCommandType, mask, buffer, drawbuffer, values, depth, stencil);
     }
-
-    return angle::Result::Continue;
 }
 
-angle::Result ClearMultiviewGL::clearLayeredFBO(const gl::Context *context,
-                                                const gl::FramebufferState &state,
-                                                ClearCommandType clearCommandType,
-                                                GLbitfield mask,
-                                                GLenum buffer,
-                                                GLint drawbuffer,
-                                                const uint8_t *values,
-                                                GLfloat depth,
-                                                GLint stencil)
+void ClearMultiviewGL::clearLayeredFBO(const gl::FramebufferState &state,
+                                       ClearCommandType clearCommandType,
+                                       GLbitfield mask,
+                                       GLenum buffer,
+                                       GLint drawbuffer,
+                                       const uint8_t *values,
+                                       GLfloat depth,
+                                       GLint stencil)
 {
-    ANGLE_TRY(initializeResources(context));
+    initializeResources();
 
-    ANGLE_TRY(mStateManager->bindFramebuffer(context, GL_DRAW_FRAMEBUFFER, mFramebuffer));
+    mStateManager->bindFramebuffer(GL_DRAW_FRAMEBUFFER, mFramebuffer);
 
     const gl::FramebufferAttachment *firstAttachment = state.getFirstNonNullAttachment();
     ASSERT(firstAttachment->isMultiview());
 
     const auto &drawBuffers = state.getDrawBufferStates();
-    ANGLE_GL_TRY(context, mFunctions->drawBuffers(static_cast<GLsizei>(drawBuffers.size()),
-                                                  drawBuffers.data()));
+    mFunctions->drawBuffers(static_cast<GLsizei>(drawBuffers.size()), drawBuffers.data());
 
     // Attach the new attachments and clear.
     int numViews      = firstAttachment->getNumViews();
     int baseViewIndex = firstAttachment->getBaseViewIndex();
     for (int i = 0; i < numViews; ++i)
     {
-        ANGLE_TRY(attachTextures(context, state, baseViewIndex + i));
-        ANGLE_TRY(genericClear(context, clearCommandType, mask, buffer, drawbuffer, values, depth,
-                               stencil));
+        attachTextures(state, baseViewIndex + i);
+        genericClear(clearCommandType, mask, buffer, drawbuffer, values, depth, stencil);
     }
 
-    ANGLE_TRY(detachTextures(context, state));
-
-    return angle::Result::Continue;
+    detachTextures(state);
 }
 
-angle::Result ClearMultiviewGL::genericClear(const gl::Context *context,
-                                             ClearCommandType clearCommandType,
-                                             GLbitfield mask,
-                                             GLenum buffer,
-                                             GLint drawbuffer,
-                                             const uint8_t *values,
-                                             GLfloat depth,
-                                             GLint stencil)
+void ClearMultiviewGL::genericClear(ClearCommandType clearCommandType,
+                                    GLbitfield mask,
+                                    GLenum buffer,
+                                    GLint drawbuffer,
+                                    const uint8_t *values,
+                                    GLfloat depth,
+                                    GLint stencil)
 {
     switch (clearCommandType)
     {
         case ClearCommandType::Clear:
-            ANGLE_GL_TRY(context, mFunctions->clear(mask));
+            mFunctions->clear(mask);
             break;
         case ClearCommandType::ClearBufferfv:
-            ANGLE_GL_TRY(context,
-                         mFunctions->clearBufferfv(buffer, drawbuffer,
-                                                   reinterpret_cast<const GLfloat *>(values)));
+            mFunctions->clearBufferfv(buffer, drawbuffer,
+                                      reinterpret_cast<const GLfloat *>(values));
             break;
         case ClearCommandType::ClearBufferuiv:
-            ANGLE_GL_TRY(context,
-                         mFunctions->clearBufferuiv(buffer, drawbuffer,
-                                                    reinterpret_cast<const GLuint *>(values)));
+            mFunctions->clearBufferuiv(buffer, drawbuffer,
+                                       reinterpret_cast<const GLuint *>(values));
             break;
         case ClearCommandType::ClearBufferiv:
-            ANGLE_GL_TRY(context, mFunctions->clearBufferiv(
-                                      buffer, drawbuffer, reinterpret_cast<const GLint *>(values)));
+            mFunctions->clearBufferiv(buffer, drawbuffer, reinterpret_cast<const GLint *>(values));
             break;
         case ClearCommandType::ClearBufferfi:
-            ANGLE_GL_TRY(context, mFunctions->clearBufferfi(buffer, drawbuffer, depth, stencil));
+            mFunctions->clearBufferfi(buffer, drawbuffer, depth, stencil);
             break;
         default:
             UNREACHABLE();
     }
-
-    return angle::Result::Continue;
 }
 
-angle::Result ClearMultiviewGL::attachTextures(const gl::Context *context,
-                                               const gl::FramebufferState &state,
-                                               int layer)
+void ClearMultiviewGL::attachTextures(const gl::FramebufferState &state, int layer)
 {
     for (auto drawBufferId : state.getEnabledDrawBuffers())
     {
@@ -143,9 +125,9 @@
         GLenum colorAttachment =
             static_cast<GLenum>(GL_COLOR_ATTACHMENT0 + static_cast<int>(drawBufferId));
         const TextureGL *textureGL = GetImplAs<TextureGL>(attachment->getTexture());
-        ANGLE_GL_TRY(context, mFunctions->framebufferTextureLayer(
-                                  GL_DRAW_FRAMEBUFFER, colorAttachment, textureGL->getTextureID(),
-                                  imageIndex.getLevelIndex(), layer));
+        mFunctions->framebufferTextureLayer(GL_DRAW_FRAMEBUFFER, colorAttachment,
+                                            textureGL->getTextureID(), imageIndex.getLevelIndex(),
+                                            layer);
     }
 
     const gl::FramebufferAttachment *depthStencilAttachment = state.getDepthStencilAttachment();
@@ -157,9 +139,9 @@
         ASSERT(imageIndex.getType() == gl::TextureType::_2DArray);
 
         const TextureGL *textureGL = GetImplAs<TextureGL>(depthStencilAttachment->getTexture());
-        ANGLE_GL_TRY(context, mFunctions->framebufferTextureLayer(
-                                  GL_DRAW_FRAMEBUFFER, GL_DEPTH_STENCIL_ATTACHMENT,
-                                  textureGL->getTextureID(), imageIndex.getLevelIndex(), layer));
+        mFunctions->framebufferTextureLayer(GL_DRAW_FRAMEBUFFER, GL_DEPTH_STENCIL_ATTACHMENT,
+                                            textureGL->getTextureID(), imageIndex.getLevelIndex(),
+                                            layer);
     }
     else if (depthAttachment != nullptr)
     {
@@ -167,9 +149,9 @@
         ASSERT(imageIndex.getType() == gl::TextureType::_2DArray);
 
         const TextureGL *textureGL = GetImplAs<TextureGL>(depthAttachment->getTexture());
-        ANGLE_GL_TRY(context, mFunctions->framebufferTextureLayer(
-                                  GL_DRAW_FRAMEBUFFER, GL_DEPTH_ATTACHMENT,
-                                  textureGL->getTextureID(), imageIndex.getLevelIndex(), layer));
+        mFunctions->framebufferTextureLayer(GL_DRAW_FRAMEBUFFER, GL_DEPTH_ATTACHMENT,
+                                            textureGL->getTextureID(), imageIndex.getLevelIndex(),
+                                            layer);
     }
     else if (stencilAttachment != nullptr)
     {
@@ -177,16 +159,13 @@
         ASSERT(imageIndex.getType() == gl::TextureType::_2DArray);
 
         const TextureGL *textureGL = GetImplAs<TextureGL>(stencilAttachment->getTexture());
-        ANGLE_GL_TRY(context, mFunctions->framebufferTextureLayer(
-                                  GL_DRAW_FRAMEBUFFER, GL_STENCIL_ATTACHMENT,
-                                  textureGL->getTextureID(), imageIndex.getLevelIndex(), layer));
+        mFunctions->framebufferTextureLayer(GL_DRAW_FRAMEBUFFER, GL_STENCIL_ATTACHMENT,
+                                            textureGL->getTextureID(), imageIndex.getLevelIndex(),
+                                            layer);
     }
-
-    return angle::Result::Continue;
 }
 
-angle::Result ClearMultiviewGL::detachTextures(const gl::Context *context,
-                                               const gl::FramebufferState &state)
+void ClearMultiviewGL::detachTextures(const gl::FramebufferState &state)
 {
     for (auto drawBufferId : state.getEnabledDrawBuffers())
     {
@@ -198,8 +177,7 @@
 
         GLenum colorAttachment =
             static_cast<GLenum>(GL_COLOR_ATTACHMENT0 + static_cast<int>(drawBufferId));
-        ANGLE_GL_TRY(context, mFunctions->framebufferTextureLayer(GL_DRAW_FRAMEBUFFER,
-                                                                  colorAttachment, 0, 0, 0));
+        mFunctions->framebufferTextureLayer(GL_DRAW_FRAMEBUFFER, colorAttachment, 0, 0, 0);
     }
 
     const gl::FramebufferAttachment *depthStencilAttachment = state.getDepthStencilAttachment();
@@ -207,32 +185,26 @@
     const gl::FramebufferAttachment *stencilAttachment      = state.getStencilAttachment();
     if (depthStencilAttachment != nullptr)
     {
-        ANGLE_GL_TRY(context, mFunctions->framebufferTextureLayer(
-                                  GL_DRAW_FRAMEBUFFER, GL_DEPTH_STENCIL_ATTACHMENT, 0, 0, 0));
+        mFunctions->framebufferTextureLayer(GL_DRAW_FRAMEBUFFER, GL_DEPTH_STENCIL_ATTACHMENT, 0, 0,
+                                            0);
     }
     else if (depthAttachment != nullptr)
     {
-        ANGLE_GL_TRY(context, mFunctions->framebufferTextureLayer(GL_DRAW_FRAMEBUFFER,
-                                                                  GL_DEPTH_ATTACHMENT, 0, 0, 0));
+        mFunctions->framebufferTextureLayer(GL_DRAW_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, 0, 0, 0);
     }
     else if (stencilAttachment != nullptr)
     {
-        ANGLE_GL_TRY(context, mFunctions->framebufferTextureLayer(GL_DRAW_FRAMEBUFFER,
-                                                                  GL_STENCIL_ATTACHMENT, 0, 0, 0));
+        mFunctions->framebufferTextureLayer(GL_DRAW_FRAMEBUFFER, GL_STENCIL_ATTACHMENT, 0, 0, 0);
     }
-
-    return angle::Result::Continue;
 }
 
-angle::Result ClearMultiviewGL::initializeResources(const gl::Context *context)
+void ClearMultiviewGL::initializeResources()
 {
     if (mFramebuffer == 0u)
     {
-        ANGLE_GL_TRY(context, mFunctions->genFramebuffers(1, &mFramebuffer));
+        mFunctions->genFramebuffers(1, &mFramebuffer);
     }
     ASSERT(mFramebuffer != 0u);
-
-    return angle::Result::Continue;
 }
 
 }  // namespace rx
diff --git a/src/libANGLE/renderer/gl/ClearMultiviewGL.h b/src/libANGLE/renderer/gl/ClearMultiviewGL.h
index 0afa84d..89e507c 100644
--- a/src/libANGLE/renderer/gl/ClearMultiviewGL.h
+++ b/src/libANGLE/renderer/gl/ClearMultiviewGL.h
@@ -46,40 +46,35 @@
     ClearMultiviewGL(ClearMultiviewGL &&rht)                 = delete;
     ClearMultiviewGL &operator=(ClearMultiviewGL &&rht) = delete;
 
-    angle::Result clearMultiviewFBO(const gl::Context *context,
-                                    const gl::FramebufferState &state,
-                                    const gl::Rectangle &scissorBase,
-                                    ClearCommandType clearCommandType,
-                                    GLbitfield mask,
-                                    GLenum buffer,
-                                    GLint drawbuffer,
-                                    const uint8_t *values,
-                                    GLfloat depth,
-                                    GLint stencil);
-    angle::Result initializeResources(const gl::Context *context);
+    void clearMultiviewFBO(const gl::FramebufferState &state,
+                           const gl::Rectangle &scissorBase,
+                           ClearCommandType clearCommandType,
+                           GLbitfield mask,
+                           GLenum buffer,
+                           GLint drawbuffer,
+                           const uint8_t *values,
+                           GLfloat depth,
+                           GLint stencil);
+    void initializeResources();
 
   private:
-    angle::Result attachTextures(const gl::Context *context,
-                                 const gl::FramebufferState &state,
-                                 int layer);
-    angle::Result detachTextures(const gl::Context *context, const gl::FramebufferState &state);
-    angle::Result clearLayeredFBO(const gl::Context *context,
-                                  const gl::FramebufferState &state,
-                                  ClearCommandType clearCommandType,
-                                  GLbitfield mask,
-                                  GLenum buffer,
-                                  GLint drawbuffer,
-                                  const uint8_t *values,
-                                  GLfloat depth,
-                                  GLint stencil);
-    angle::Result genericClear(const gl::Context *context,
-                               ClearCommandType clearCommandType,
-                               GLbitfield mask,
-                               GLenum buffer,
-                               GLint drawbuffer,
-                               const uint8_t *values,
-                               GLfloat depth,
-                               GLint stencil);
+    void attachTextures(const gl::FramebufferState &state, int layer);
+    void detachTextures(const gl::FramebufferState &state);
+    void clearLayeredFBO(const gl::FramebufferState &state,
+                         ClearCommandType clearCommandType,
+                         GLbitfield mask,
+                         GLenum buffer,
+                         GLint drawbuffer,
+                         const uint8_t *values,
+                         GLfloat depth,
+                         GLint stencil);
+    void genericClear(ClearCommandType clearCommandType,
+                      GLbitfield mask,
+                      GLenum buffer,
+                      GLint drawbuffer,
+                      const uint8_t *values,
+                      GLfloat depth,
+                      GLint stencil);
 
     const FunctionsGL *mFunctions;
     StateManagerGL *mStateManager;
diff --git a/src/libANGLE/renderer/gl/ContextGL.cpp b/src/libANGLE/renderer/gl/ContextGL.cpp
index 99dfb1a..c0d8b9b 100644
--- a/src/libANGLE/renderer/gl/ContextGL.cpp
+++ b/src/libANGLE/renderer/gl/ContextGL.cpp
@@ -86,7 +86,7 @@
 
     GLuint texture = 0;
     functions->genTextures(1, &texture);
-    (void)stateManager->bindTexture(nullptr, state.getType(), texture);
+    stateManager->bindTexture(state.getType(), texture);
 
     return new TextureGL(state, texture);
 }
@@ -98,7 +98,7 @@
 
     GLuint renderbuffer = 0;
     functions->genRenderbuffers(1, &renderbuffer);
-    (void)stateManager->bindRenderbuffer(nullptr, GL_RENDERBUFFER, renderbuffer);
+    stateManager->bindRenderbuffer(GL_RENDERBUFFER, renderbuffer);
 
     return new RenderbufferGL(state, renderbuffer);
 }
@@ -355,14 +355,11 @@
     return angle::Result::Continue;
 }
 
-angle::Result ContextGL::updateAttributesForBaseInstance(const gl::Context *context,
-                                                         const gl::Program *program,
-                                                         GLuint baseInstance,
-                                                         gl::AttributesMask *outAttribUpdateMask)
+gl::AttributesMask ContextGL::updateAttributesForBaseInstance(const gl::Program *program,
+                                                              GLuint baseInstance)
 {
-    outAttribUpdateMask->reset();
-
     const gl::ProgramExecutable *executable = getState().getProgramExecutable();
+    gl::AttributesMask attribToUpdateMask;
 
     if (baseInstance != 0)
     {
@@ -375,7 +372,7 @@
             const gl::VertexBinding &binding  = bindings[attrib.bindingIndex];
             if (executable->isAttribLocationActive(attribIndex) && binding.getDivisor() != 0)
             {
-                outAttribUpdateMask->set(attribIndex);
+                attribToUpdateMask.set(attribIndex);
                 const char *p             = static_cast<const char *>(attrib.pointer);
                 const size_t sourceStride = gl::ComputeVertexAttributeStride(attrib, binding);
                 const void *newPointer    = p + sourceStride * baseInstance;
@@ -385,32 +382,28 @@
                 // and that information is in VertexArrayGL.
                 // Assert that the buffer is non-null because this case isn't handled.
                 ASSERT(buffer);
-                ANGLE_TRY(getStateManager()->bindBuffer(context, gl::BufferBinding::Array,
-                                                        buffer->getBufferID()));
+                getStateManager()->bindBuffer(gl::BufferBinding::Array, buffer->getBufferID());
                 if (attrib.format->isPureInt())
                 {
-                    ANGLE_GL_TRY(context, functions->vertexAttribIPointer(
-                                              attribIndex, attrib.format->channelCount,
-                                              gl::ToGLenum(attrib.format->vertexAttribType),
-                                              attrib.vertexAttribArrayStride, newPointer));
+                    functions->vertexAttribIPointer(attribIndex, attrib.format->channelCount,
+                                                    gl::ToGLenum(attrib.format->vertexAttribType),
+                                                    attrib.vertexAttribArrayStride, newPointer);
                 }
                 else
                 {
-                    ANGLE_GL_TRY(context, functions->vertexAttribPointer(
-                                              attribIndex, attrib.format->channelCount,
-                                              gl::ToGLenum(attrib.format->vertexAttribType),
-                                              attrib.format->isNorm(),
-                                              attrib.vertexAttribArrayStride, newPointer));
+                    functions->vertexAttribPointer(attribIndex, attrib.format->channelCount,
+                                                   gl::ToGLenum(attrib.format->vertexAttribType),
+                                                   attrib.format->isNorm(),
+                                                   attrib.vertexAttribArrayStride, newPointer);
                 }
             }
         }
     }
 
-    return angle::Result::Continue;
+    return attribToUpdateMask;
 }
 
-angle::Result ContextGL::resetUpdatedAttributes(const gl::Context *context,
-                                                gl::AttributesMask attribMask)
+void ContextGL::resetUpdatedAttributes(gl::AttributesMask attribMask)
 {
     const FunctionsGL *functions = getFunctions();
     for (size_t attribIndex : attribMask)
@@ -419,27 +412,24 @@
             mState.getVertexArray()->getVertexAttributes()[attribIndex];
         const gl::VertexBinding &binding =
             (mState.getVertexArray()->getVertexBindings())[attrib.bindingIndex];
-        ANGLE_TRY(getStateManager()->bindBuffer(
-            context, gl::BufferBinding::Array,
-            GetImplAs<BufferGL>(binding.getBuffer().get())->getBufferID()));
+        getStateManager()->bindBuffer(
+            gl::BufferBinding::Array,
+            GetImplAs<BufferGL>(binding.getBuffer().get())->getBufferID());
         if (attrib.format->isPureInt())
         {
-            ANGLE_GL_TRY(context, functions->vertexAttribIPointer(
-                                      static_cast<GLuint>(attribIndex), attrib.format->channelCount,
-                                      gl::ToGLenum(attrib.format->vertexAttribType),
-                                      attrib.vertexAttribArrayStride, attrib.pointer));
+            functions->vertexAttribIPointer(static_cast<GLuint>(attribIndex),
+                                            attrib.format->channelCount,
+                                            gl::ToGLenum(attrib.format->vertexAttribType),
+                                            attrib.vertexAttribArrayStride, attrib.pointer);
         }
         else
         {
-            ANGLE_GL_TRY(context,
-                         functions->vertexAttribPointer(
-                             static_cast<GLuint>(attribIndex), attrib.format->channelCount,
-                             gl::ToGLenum(attrib.format->vertexAttribType), attrib.format->isNorm(),
-                             attrib.vertexAttribArrayStride, attrib.pointer));
+            functions->vertexAttribPointer(
+                static_cast<GLuint>(attribIndex), attrib.format->channelCount,
+                gl::ToGLenum(attrib.format->vertexAttribType), attrib.format->isNorm(),
+                attrib.vertexAttribArrayStride, attrib.pointer);
         }
     }
-
-    return angle::Result::Continue;
 }
 
 angle::Result ContextGL::drawArraysInstancedBaseInstance(const gl::Context *context,
@@ -474,14 +464,13 @@
         // pointer offset calling vertexAttribPointer Will refactor stateCache and pass baseInstance
         // to setDrawArraysState to set pointer offset
 
-        gl::AttributesMask attribToResetMask;
-        ANGLE_TRY(
-            updateAttributesForBaseInstance(context, program, baseInstance, &attribToResetMask));
+        gl::AttributesMask attribToResetMask =
+            updateAttributesForBaseInstance(program, baseInstance);
 
         ANGLE_GL_TRY(context, functions->drawArraysInstanced(ToGLenum(mode), first, count,
                                                              adjustedInstanceCount));
 
-        ANGLE_TRY(resetUpdatedAttributes(context, attribToResetMask));
+        resetUpdatedAttributes(attribToResetMask);
     }
 
     mRenderer->markWorkSubmitted();
@@ -638,15 +627,14 @@
     {
         // GL 3.3+ or GLES 3.2+
         // TODO(http://anglebug.com/3910): same as above
-        gl::AttributesMask attribToResetMask;
-        ANGLE_TRY(
-            updateAttributesForBaseInstance(context, program, baseInstance, &attribToResetMask));
+        gl::AttributesMask attribToResetMask =
+            updateAttributesForBaseInstance(program, baseInstance);
 
         ANGLE_GL_TRY(context, functions->drawElementsInstancedBaseVertex(
                                   ToGLenum(mode), count, ToGLenum(type), drawIndexPointer,
                                   adjustedInstanceCount, baseVertex));
 
-        ANGLE_TRY(resetUpdatedAttributes(context, attribToResetMask));
+        resetUpdatedAttributes(attribToResetMask);
     }
 
     mRenderer->markWorkSubmitted();
@@ -893,7 +881,7 @@
 {
     if (getFeaturesGL().unbindFBOOnContextSwitch.enabled)
     {
-        ANGLE_TRY(mRenderer->getStateManager()->bindFramebuffer(context, GL_FRAMEBUFFER, 0));
+        mRenderer->getStateManager()->bindFramebuffer(GL_FRAMEBUFFER, 0);
     }
     return ContextImpl::onUnMakeCurrent(context);
 }
@@ -967,8 +955,7 @@
 
 void ContextGL::invalidateTexture(gl::TextureType target)
 {
-    // TODO(geofflang): Pass in a gl::Context* and return angle::Result.  anglebug.com/3020
-    (void)mRenderer->getStateManager()->invalidateTexture(nullptr, target);
+    mRenderer->getStateManager()->invalidateTexture(target);
 }
 
 void ContextGL::validateState() const
diff --git a/src/libANGLE/renderer/gl/ContextGL.h b/src/libANGLE/renderer/gl/ContextGL.h
index 5129d59..8f65bd2 100644
--- a/src/libANGLE/renderer/gl/ContextGL.h
+++ b/src/libANGLE/renderer/gl/ContextGL.h
@@ -286,11 +286,9 @@
                                        GLsizei instanceCount,
                                        const void **outIndices);
 
-    angle::Result updateAttributesForBaseInstance(const gl::Context *context,
-                                                  const gl::Program *program,
-                                                  GLuint baseInstance,
-                                                  gl::AttributesMask *outAttribUpdateMask);
-    angle::Result resetUpdatedAttributes(const gl::Context *context, gl::AttributesMask attribMask);
+    gl::AttributesMask updateAttributesForBaseInstance(const gl::Program *program,
+                                                       GLuint baseInstance);
+    void resetUpdatedAttributes(gl::AttributesMask attribMask);
 
   protected:
     std::shared_ptr<RendererGL> mRenderer;
diff --git a/src/libANGLE/renderer/gl/DisplayGL.cpp b/src/libANGLE/renderer/gl/DisplayGL.cpp
index d895920..0a7af39 100644
--- a/src/libANGLE/renderer/gl/DisplayGL.cpp
+++ b/src/libANGLE/renderer/gl/DisplayGL.cpp
@@ -116,7 +116,7 @@
 
     // Pause transform feedback before making a new surface current, to workaround anglebug.com/1426
     ContextGL *glContext = GetImplAs<ContextGL>(context);
-    ANGLE_TRY(ResultToEGL(glContext->getStateManager()->pauseTransformFeedback(context)));
+    glContext->getStateManager()->pauseTransformFeedback();
 
     if (drawSurface == nullptr)
     {
diff --git a/src/libANGLE/renderer/gl/FramebufferGL.cpp b/src/libANGLE/renderer/gl/FramebufferGL.cpp
index 2b16f20..ce91e28 100644
--- a/src/libANGLE/renderer/gl/FramebufferGL.cpp
+++ b/src/libANGLE/renderer/gl/FramebufferGL.cpp
@@ -426,7 +426,7 @@
 void FramebufferGL::destroy(const gl::Context *context)
 {
     StateManagerGL *stateManager = GetStateManagerGL(context);
-    (void)stateManager->deleteFramebuffer(context, mFramebufferID);
+    stateManager->deleteFramebuffer(mFramebufferID);
     mFramebufferID = 0;
 }
 
@@ -456,13 +456,13 @@
     // Since this function is just a hint, only call a native function if it exists.
     if (functions->invalidateFramebuffer)
     {
-        ANGLE_TRY(stateManager->bindFramebuffer(context, GL_FRAMEBUFFER, mFramebufferID));
+        stateManager->bindFramebuffer(GL_FRAMEBUFFER, mFramebufferID);
         functions->invalidateFramebuffer(GL_FRAMEBUFFER, static_cast<GLsizei>(count),
                                          finalAttachmentsPtr);
     }
     else if (functions->discardFramebufferEXT)
     {
-        ANGLE_TRY(stateManager->bindFramebuffer(context, GL_FRAMEBUFFER, mFramebufferID));
+        stateManager->bindFramebuffer(GL_FRAMEBUFFER, mFramebufferID);
         functions->discardFramebufferEXT(GL_FRAMEBUFFER, static_cast<GLsizei>(count),
                                          finalAttachmentsPtr);
     }
@@ -491,7 +491,7 @@
     // available.
     if (functions->invalidateSubFramebuffer)
     {
-        ANGLE_TRY(stateManager->bindFramebuffer(context, GL_FRAMEBUFFER, mFramebufferID));
+        stateManager->bindFramebuffer(GL_FRAMEBUFFER, mFramebufferID);
         functions->invalidateSubFramebuffer(GL_FRAMEBUFFER, static_cast<GLsizei>(count),
                                             finalAttachmentsPtr, area.x, area.y, area.width,
                                             area.height);
@@ -507,18 +507,18 @@
     StateManagerGL *stateManager = GetStateManagerGL(context);
 
     syncClearState(context, mask);
-    ANGLE_TRY(stateManager->bindFramebuffer(context, GL_FRAMEBUFFER, mFramebufferID));
+    stateManager->bindFramebuffer(GL_FRAMEBUFFER, mFramebufferID);
 
     if (!RequiresMultiviewClear(mState, context->getState().isScissorTestEnabled()))
     {
-        ANGLE_GL_TRY(context, functions->clear(mask));
+        functions->clear(mask);
     }
     else
     {
         ClearMultiviewGL *multiviewClearer = GetMultiviewClearer(context);
-        ANGLE_TRY(multiviewClearer->clearMultiviewFBO(
-            context, mState, context->getState().getScissor(),
-            ClearMultiviewGL::ClearCommandType::Clear, mask, GL_NONE, 0, nullptr, 0.0f, 0));
+        multiviewClearer->clearMultiviewFBO(mState, context->getState().getScissor(),
+                                            ClearMultiviewGL::ClearCommandType::Clear, mask,
+                                            GL_NONE, 0, nullptr, 0.0f, 0);
     }
 
     contextGL->markWorkSubmitted();
@@ -535,19 +535,19 @@
     StateManagerGL *stateManager = GetStateManagerGL(context);
 
     syncClearBufferState(context, buffer, drawbuffer);
-    ANGLE_TRY(stateManager->bindFramebuffer(context, GL_FRAMEBUFFER, mFramebufferID));
+    stateManager->bindFramebuffer(GL_FRAMEBUFFER, mFramebufferID);
 
     if (!RequiresMultiviewClear(mState, context->getState().isScissorTestEnabled()))
     {
-        ANGLE_GL_TRY(context, functions->clearBufferfv(buffer, drawbuffer, values));
+        functions->clearBufferfv(buffer, drawbuffer, values);
     }
     else
     {
         ClearMultiviewGL *multiviewClearer = GetMultiviewClearer(context);
-        ANGLE_TRY(multiviewClearer->clearMultiviewFBO(
-            context, mState, context->getState().getScissor(),
-            ClearMultiviewGL::ClearCommandType::ClearBufferfv, static_cast<GLbitfield>(0u), buffer,
-            drawbuffer, reinterpret_cast<const uint8_t *>(values), 0.0f, 0));
+        multiviewClearer->clearMultiviewFBO(mState, context->getState().getScissor(),
+                                            ClearMultiviewGL::ClearCommandType::ClearBufferfv,
+                                            static_cast<GLbitfield>(0u), buffer, drawbuffer,
+                                            reinterpret_cast<const uint8_t *>(values), 0.0f, 0);
     }
 
     contextGL->markWorkSubmitted();
@@ -564,19 +564,19 @@
     StateManagerGL *stateManager = GetStateManagerGL(context);
 
     syncClearBufferState(context, buffer, drawbuffer);
-    ANGLE_TRY(stateManager->bindFramebuffer(context, GL_FRAMEBUFFER, mFramebufferID));
+    stateManager->bindFramebuffer(GL_FRAMEBUFFER, mFramebufferID);
 
     if (!RequiresMultiviewClear(mState, context->getState().isScissorTestEnabled()))
     {
-        ANGLE_GL_TRY(context, functions->clearBufferuiv(buffer, drawbuffer, values));
+        functions->clearBufferuiv(buffer, drawbuffer, values);
     }
     else
     {
         ClearMultiviewGL *multiviewClearer = GetMultiviewClearer(context);
-        ANGLE_TRY(multiviewClearer->clearMultiviewFBO(
-            context, mState, context->getState().getScissor(),
-            ClearMultiviewGL::ClearCommandType::ClearBufferuiv, static_cast<GLbitfield>(0u), buffer,
-            drawbuffer, reinterpret_cast<const uint8_t *>(values), 0.0f, 0));
+        multiviewClearer->clearMultiviewFBO(mState, context->getState().getScissor(),
+                                            ClearMultiviewGL::ClearCommandType::ClearBufferuiv,
+                                            static_cast<GLbitfield>(0u), buffer, drawbuffer,
+                                            reinterpret_cast<const uint8_t *>(values), 0.0f, 0);
     }
 
     contextGL->markWorkSubmitted();
@@ -593,19 +593,19 @@
     StateManagerGL *stateManager = GetStateManagerGL(context);
 
     syncClearBufferState(context, buffer, drawbuffer);
-    ANGLE_TRY(stateManager->bindFramebuffer(context, GL_FRAMEBUFFER, mFramebufferID));
+    stateManager->bindFramebuffer(GL_FRAMEBUFFER, mFramebufferID);
 
     if (!RequiresMultiviewClear(mState, context->getState().isScissorTestEnabled()))
     {
-        ANGLE_GL_TRY(context, functions->clearBufferiv(buffer, drawbuffer, values));
+        functions->clearBufferiv(buffer, drawbuffer, values);
     }
     else
     {
         ClearMultiviewGL *multiviewClearer = GetMultiviewClearer(context);
-        ANGLE_TRY(multiviewClearer->clearMultiviewFBO(
-            context, mState, context->getState().getScissor(),
-            ClearMultiviewGL::ClearCommandType::ClearBufferiv, static_cast<GLbitfield>(0u), buffer,
-            drawbuffer, reinterpret_cast<const uint8_t *>(values), 0.0f, 0));
+        multiviewClearer->clearMultiviewFBO(mState, context->getState().getScissor(),
+                                            ClearMultiviewGL::ClearCommandType::ClearBufferiv,
+                                            static_cast<GLbitfield>(0u), buffer, drawbuffer,
+                                            reinterpret_cast<const uint8_t *>(values), 0.0f, 0);
     }
 
     contextGL->markWorkSubmitted();
@@ -623,19 +623,19 @@
     StateManagerGL *stateManager = GetStateManagerGL(context);
 
     syncClearBufferState(context, buffer, drawbuffer);
-    ANGLE_TRY(stateManager->bindFramebuffer(context, GL_FRAMEBUFFER, mFramebufferID));
+    stateManager->bindFramebuffer(GL_FRAMEBUFFER, mFramebufferID);
 
     if (!RequiresMultiviewClear(mState, context->getState().isScissorTestEnabled()))
     {
-        ANGLE_GL_TRY(context, functions->clearBufferfi(buffer, drawbuffer, depth, stencil));
+        functions->clearBufferfi(buffer, drawbuffer, depth, stencil);
     }
     else
     {
         ClearMultiviewGL *multiviewClearer = GetMultiviewClearer(context);
-        ANGLE_TRY(multiviewClearer->clearMultiviewFBO(
-            context, mState, context->getState().getScissor(),
-            ClearMultiviewGL::ClearCommandType::ClearBufferfi, static_cast<GLbitfield>(0u), buffer,
-            drawbuffer, nullptr, depth, stencil));
+        multiviewClearer->clearMultiviewFBO(mState, context->getState().getScissor(),
+                                            ClearMultiviewGL::ClearCommandType::ClearBufferfi,
+                                            static_cast<GLbitfield>(0u), buffer, drawbuffer,
+                                            nullptr, depth, stencil);
     }
 
     contextGL->markWorkSubmitted();
@@ -684,7 +684,7 @@
 
     GLenum framebufferTarget =
         stateManager->getHasSeparateFramebufferBindings() ? GL_READ_FRAMEBUFFER : GL_FRAMEBUFFER;
-    ANGLE_TRY(stateManager->bindFramebuffer(context, framebufferTarget, mFramebufferID));
+    stateManager->bindFramebuffer(framebufferTarget, mFramebufferID);
 
     bool useOverlappingRowsWorkaround = features.packOverlappingRowsSeparatelyPackBuffer.enabled &&
                                         packBuffer && packState.rowLength != 0 &&
@@ -833,9 +833,8 @@
     }
 
     const FramebufferGL *sourceFramebufferGL = GetImplAs<FramebufferGL>(sourceFramebuffer);
-    ANGLE_TRY(stateManager->bindFramebuffer(context, GL_READ_FRAMEBUFFER,
-                                            sourceFramebufferGL->getFramebufferID()));
-    ANGLE_TRY(stateManager->bindFramebuffer(context, GL_DRAW_FRAMEBUFFER, mFramebufferID));
+    stateManager->bindFramebuffer(GL_READ_FRAMEBUFFER, sourceFramebufferGL->getFramebufferID());
+    stateManager->bindFramebuffer(GL_DRAW_FRAMEBUFFER, mFramebufferID);
 
     gl::Rectangle finalSourceArea(sourceArea);
     gl::Rectangle finalDestArea(destArea);
@@ -1213,7 +1212,7 @@
     const FunctionsGL *functions = GetFunctionsGL(context);
     StateManagerGL *stateManager = GetStateManagerGL(context);
 
-    ANGLE_TRY(stateManager->bindFramebuffer(context, GL_FRAMEBUFFER, mFramebufferID));
+    stateManager->bindFramebuffer(GL_FRAMEBUFFER, mFramebufferID);
     functions->getMultisamplefv(GL_SAMPLE_POSITION, static_cast<GLuint>(index), xy);
     return angle::Result::Continue;
 }
@@ -1228,7 +1227,7 @@
     const FunctionsGL *functions = GetFunctionsGL(context);
     StateManagerGL *stateManager = GetStateManagerGL(context);
 
-    (void)stateManager->bindFramebuffer(context, GL_FRAMEBUFFER, mFramebufferID);
+    stateManager->bindFramebuffer(GL_FRAMEBUFFER, mFramebufferID);
     GLenum status = functions->checkFramebufferStatus(GL_FRAMEBUFFER);
     if (status != GL_FRAMEBUFFER_COMPLETE)
     {
@@ -1254,7 +1253,7 @@
     const FunctionsGL *functions = GetFunctionsGL(context);
     StateManagerGL *stateManager = GetStateManagerGL(context);
 
-    ANGLE_TRY(stateManager->bindFramebuffer(context, GL_FRAMEBUFFER, mFramebufferID));
+    stateManager->bindFramebuffer(GL_FRAMEBUFFER, mFramebufferID);
 
     // A pointer to one of the attachments for which the texture or the render buffer is not zero.
     const FramebufferAttachment *attachment = nullptr;
diff --git a/src/libANGLE/renderer/gl/ProgramGL.cpp b/src/libANGLE/renderer/gl/ProgramGL.cpp
index 3a5d838..481e4ca 100644
--- a/src/libANGLE/renderer/gl/ProgramGL.cpp
+++ b/src/libANGLE/renderer/gl/ProgramGL.cpp
@@ -152,8 +152,7 @@
     std::string mInfoLog;
 };
 
-using PostLinkImplFunctor =
-    std::function<angle::Result(const gl::Context *, bool, const std::string &)>;
+using PostLinkImplFunctor = std::function<angle::Result(bool, const std::string &)>;
 
 // The event for a parallelized linking using the native driver extension.
 class ProgramGL::LinkEventNativeParallel final : public LinkEvent
@@ -173,7 +172,7 @@
         mFunctions->getProgramiv(mProgramID, GL_LINK_STATUS, &linkStatus);
         if (linkStatus == GL_TRUE)
         {
-            return mPostLinkImplFunctor(context, false, std::string());
+            return mPostLinkImplFunctor(false, std::string());
         }
         return angle::Result::Incomplete;
     }
@@ -209,8 +208,7 @@
         ANGLE_TRACE_EVENT0("gpu.angle", "ProgramGL::LinkEventGL::wait");
 
         mWaitableEvent->wait();
-        return mPostLinkImplFunctor(context, mLinkTask->fallbackToMainContext(),
-                                    mLinkTask->getInfoLog());
+        return mPostLinkImplFunctor(mLinkTask->fallbackToMainContext(), mLinkTask->getInfoLog());
     }
 
     bool isLinking() override { return !mWaitableEvent->isReady(); }
@@ -431,8 +429,7 @@
         return false;
     });
 
-    auto postLinkImplTask = [this, &infoLog, &resources](const gl::Context *context,
-                                                         bool fallbackToMainContext,
+    auto postLinkImplTask = [this, &infoLog, &resources](bool fallbackToMainContext,
                                                          const std::string &workerInfoLog) {
         infoLog << workerInfoLog;
         if (fallbackToMainContext)
@@ -467,7 +464,7 @@
 
         if (mFeatures.alwaysCallUseProgramAfterLink.enabled)
         {
-            ANGLE_TRY(mStateManager->forceUseProgram(context, mProgramID));
+            mStateManager->forceUseProgram(mProgramID);
         }
 
         linkResources(resources);
@@ -490,7 +487,7 @@
     }
     else
     {
-        return std::make_unique<LinkEventDone>(postLinkImplTask(context, true, std::string()));
+        return std::make_unique<LinkEventDone>(postLinkImplTask(true, std::string()));
     }
 }
 
@@ -508,8 +505,7 @@
     }
     else
     {
-        // TODO(geofflang): Pass in a gl::Context* and return angle::Result.  anglebug.com/3020
-        (void)mStateManager->useProgram(nullptr, mProgramID);
+        mStateManager->useProgram(mProgramID);
         mFunctions->uniform1fv(uniLoc(location), count, v);
     }
 }
@@ -522,8 +518,7 @@
     }
     else
     {
-        // TODO(geofflang): Pass in a gl::Context* and return angle::Result.  anglebug.com/3020
-        (void)mStateManager->useProgram(nullptr, mProgramID);
+        mStateManager->useProgram(mProgramID);
         mFunctions->uniform2fv(uniLoc(location), count, v);
     }
 }
@@ -536,8 +531,7 @@
     }
     else
     {
-        // TODO(geofflang): Pass in a gl::Context* and return angle::Result.  anglebug.com/3020
-        (void)mStateManager->useProgram(nullptr, mProgramID);
+        mStateManager->useProgram(mProgramID);
         mFunctions->uniform3fv(uniLoc(location), count, v);
     }
 }
@@ -550,8 +544,7 @@
     }
     else
     {
-        // TODO(geofflang): Pass in a gl::Context* and return angle::Result.  anglebug.com/3020
-        (void)mStateManager->useProgram(nullptr, mProgramID);
+        mStateManager->useProgram(mProgramID);
         mFunctions->uniform4fv(uniLoc(location), count, v);
     }
 }
@@ -564,8 +557,7 @@
     }
     else
     {
-        // TODO(geofflang): Pass in a gl::Context* and return angle::Result.  anglebug.com/3020
-        (void)mStateManager->useProgram(nullptr, mProgramID);
+        mStateManager->useProgram(mProgramID);
         mFunctions->uniform1iv(uniLoc(location), count, v);
     }
 }
@@ -578,8 +570,7 @@
     }
     else
     {
-        // TODO(geofflang): Pass in a gl::Context* and return angle::Result.  anglebug.com/3020
-        (void)mStateManager->useProgram(nullptr, mProgramID);
+        mStateManager->useProgram(mProgramID);
         mFunctions->uniform2iv(uniLoc(location), count, v);
     }
 }
@@ -592,8 +583,7 @@
     }
     else
     {
-        // TODO(geofflang): Pass in a gl::Context* and return angle::Result.  anglebug.com/3020
-        (void)mStateManager->useProgram(nullptr, mProgramID);
+        mStateManager->useProgram(mProgramID);
         mFunctions->uniform3iv(uniLoc(location), count, v);
     }
 }
@@ -606,8 +596,7 @@
     }
     else
     {
-        // TODO(geofflang): Pass in a gl::Context* and return angle::Result.  anglebug.com/3020
-        (void)mStateManager->useProgram(nullptr, mProgramID);
+        mStateManager->useProgram(mProgramID);
         mFunctions->uniform4iv(uniLoc(location), count, v);
     }
 }
@@ -620,8 +609,7 @@
     }
     else
     {
-        // TODO(geofflang): Pass in a gl::Context* and return angle::Result.  anglebug.com/3020
-        (void)mStateManager->useProgram(nullptr, mProgramID);
+        mStateManager->useProgram(mProgramID);
         mFunctions->uniform1uiv(uniLoc(location), count, v);
     }
 }
@@ -634,8 +622,7 @@
     }
     else
     {
-        // TODO(geofflang): Pass in a gl::Context* and return angle::Result.  anglebug.com/3020
-        (void)mStateManager->useProgram(nullptr, mProgramID);
+        mStateManager->useProgram(mProgramID);
         mFunctions->uniform2uiv(uniLoc(location), count, v);
     }
 }
@@ -648,8 +635,7 @@
     }
     else
     {
-        // TODO(geofflang): Pass in a gl::Context* and return angle::Result.  anglebug.com/3020
-        (void)mStateManager->useProgram(nullptr, mProgramID);
+        mStateManager->useProgram(mProgramID);
         mFunctions->uniform3uiv(uniLoc(location), count, v);
     }
 }
@@ -662,8 +648,7 @@
     }
     else
     {
-        // TODO(geofflang): Pass in a gl::Context* and return angle::Result.  anglebug.com/3020
-        (void)mStateManager->useProgram(nullptr, mProgramID);
+        mStateManager->useProgram(mProgramID);
         mFunctions->uniform4uiv(uniLoc(location), count, v);
     }
 }
@@ -679,8 +664,7 @@
     }
     else
     {
-        // TODO(geofflang): Pass in a gl::Context* and return angle::Result.  anglebug.com/3020
-        (void)mStateManager->useProgram(nullptr, mProgramID);
+        mStateManager->useProgram(mProgramID);
         mFunctions->uniformMatrix2fv(uniLoc(location), count, transpose, value);
     }
 }
@@ -696,8 +680,7 @@
     }
     else
     {
-        // TODO(geofflang): Pass in a gl::Context* and return angle::Result.  anglebug.com/3020
-        (void)mStateManager->useProgram(nullptr, mProgramID);
+        mStateManager->useProgram(mProgramID);
         mFunctions->uniformMatrix3fv(uniLoc(location), count, transpose, value);
     }
 }
@@ -713,8 +696,7 @@
     }
     else
     {
-        // TODO(geofflang): Pass in a gl::Context* and return angle::Result.  anglebug.com/3020
-        (void)mStateManager->useProgram(nullptr, mProgramID);
+        mStateManager->useProgram(mProgramID);
         mFunctions->uniformMatrix4fv(uniLoc(location), count, transpose, value);
     }
 }
@@ -731,8 +713,7 @@
     }
     else
     {
-        // TODO(geofflang): Pass in a gl::Context* and return angle::Result.  anglebug.com/3020
-        (void)mStateManager->useProgram(nullptr, mProgramID);
+        mStateManager->useProgram(mProgramID);
         mFunctions->uniformMatrix2x3fv(uniLoc(location), count, transpose, value);
     }
 }
@@ -749,8 +730,7 @@
     }
     else
     {
-        // TODO(geofflang): Pass in a gl::Context* and return angle::Result.  anglebug.com/3020
-        (void)mStateManager->useProgram(nullptr, mProgramID);
+        mStateManager->useProgram(mProgramID);
         mFunctions->uniformMatrix3x2fv(uniLoc(location), count, transpose, value);
     }
 }
@@ -767,8 +747,7 @@
     }
     else
     {
-        // TODO(geofflang): Pass in a gl::Context* and return angle::Result.  anglebug.com/3020
-        (void)mStateManager->useProgram(nullptr, mProgramID);
+        mStateManager->useProgram(mProgramID);
         mFunctions->uniformMatrix2x4fv(uniLoc(location), count, transpose, value);
     }
 }
@@ -785,8 +764,7 @@
     }
     else
     {
-        // TODO(geofflang): Pass in a gl::Context* and return angle::Result.  anglebug.com/3020
-        (void)mStateManager->useProgram(nullptr, mProgramID);
+        mStateManager->useProgram(mProgramID);
         mFunctions->uniformMatrix4x2fv(uniLoc(location), count, transpose, value);
     }
 }
@@ -803,8 +781,7 @@
     }
     else
     {
-        // TODO(geofflang): Pass in a gl::Context* and return angle::Result.  anglebug.com/3020
-        (void)mStateManager->useProgram(nullptr, mProgramID);
+        mStateManager->useProgram(mProgramID);
         mFunctions->uniformMatrix3x4fv(uniLoc(location), count, transpose, value);
     }
 }
@@ -821,8 +798,7 @@
     }
     else
     {
-        // TODO(geofflang): Pass in a gl::Context* and return angle::Result.  anglebug.com/3020
-        (void)mStateManager->useProgram(nullptr, mProgramID);
+        mStateManager->useProgram(mProgramID);
         mFunctions->uniformMatrix4x3fv(uniLoc(location), count, transpose, value);
     }
 }
diff --git a/src/libANGLE/renderer/gl/QueryGL.cpp b/src/libANGLE/renderer/gl/QueryGL.cpp
index e67e0fc..376fb4a 100644
--- a/src/libANGLE/renderer/gl/QueryGL.cpp
+++ b/src/libANGLE/renderer/gl/QueryGL.cpp
@@ -69,22 +69,17 @@
 
 StandardQueryGL::~StandardQueryGL()
 {
-    ASSERT(mPendingQueries.empty());
-}
-
-void StandardQueryGL::onDestroy(const gl::Context *context)
-{
     if (mActiveQuery != 0)
     {
-        (void)mStateManager->endQuery(context, mType, this, mActiveQuery);
-        ANGLE_GL_CALL(context, mFunctions->deleteQueries(1, &mActiveQuery));
+        mStateManager->endQuery(mType, this, mActiveQuery);
+        mFunctions->deleteQueries(1, &mActiveQuery);
         mActiveQuery = 0;
     }
 
     while (!mPendingQueries.empty())
     {
         GLuint id = mPendingQueries.front();
-        ANGLE_GL_CALL(context, mFunctions->deleteQueries(1, &id));
+        mFunctions->deleteQueries(1, &id);
         mPendingQueries.pop_front();
     }
 }
@@ -159,7 +154,7 @@
 {
     if (mActiveQuery != 0)
     {
-        ANGLE_TRY(mStateManager->endQuery(context, mType, this, mActiveQuery));
+        mStateManager->endQuery(mType, this, mActiveQuery);
 
         mPendingQueries.push_back(mActiveQuery);
         mActiveQuery = 0;
@@ -184,8 +179,8 @@
             ANGLE_TRY(flush(context, false));
         }
 
-        ANGLE_GL_TRY(context, mFunctions->genQueries(1, &mActiveQuery));
-        ANGLE_TRY(mStateManager->beginQuery(context, mType, this, mActiveQuery));
+        mFunctions->genQueries(1, &mActiveQuery);
+        mStateManager->beginQuery(mType, this, mActiveQuery);
 
         ContextGL *contextGL = GetImplAs<ContextGL>(context);
         contextGL->markWorkSubmitted();
diff --git a/src/libANGLE/renderer/gl/QueryGL.h b/src/libANGLE/renderer/gl/QueryGL.h
index b2aba37..a73d051 100644
--- a/src/libANGLE/renderer/gl/QueryGL.h
+++ b/src/libANGLE/renderer/gl/QueryGL.h
@@ -41,8 +41,6 @@
     StandardQueryGL(gl::QueryType type, const FunctionsGL *functions, StateManagerGL *stateManager);
     ~StandardQueryGL() override;
 
-    void onDestroy(const gl::Context *context) override;
-
     angle::Result begin(const gl::Context *context) override;
     angle::Result end(const gl::Context *context) override;
     angle::Result queryCounter(const gl::Context *context) override;
diff --git a/src/libANGLE/renderer/gl/RenderbufferGL.cpp b/src/libANGLE/renderer/gl/RenderbufferGL.cpp
index bc56268..bafac99 100644
--- a/src/libANGLE/renderer/gl/RenderbufferGL.cpp
+++ b/src/libANGLE/renderer/gl/RenderbufferGL.cpp
@@ -35,7 +35,7 @@
 void RenderbufferGL::onDestroy(const gl::Context *context)
 {
     StateManagerGL *stateManager = GetStateManagerGL(context);
-    (void)stateManager->deleteRenderbuffer(context, mRenderbufferID);
+    stateManager->deleteRenderbuffer(mRenderbufferID);
     mRenderbufferID = 0;
 }
 
@@ -48,7 +48,7 @@
     StateManagerGL *stateManager      = GetStateManagerGL(context);
     const angle::FeaturesGL &features = GetFeaturesGL(context);
 
-    ANGLE_TRY(stateManager->bindRenderbuffer(context, GL_RENDERBUFFER, mRenderbufferID));
+    stateManager->bindRenderbuffer(GL_RENDERBUFFER, mRenderbufferID);
 
     nativegl::RenderbufferFormat renderbufferFormat =
         nativegl::GetRenderbufferFormat(functions, features, internalformat);
@@ -72,7 +72,7 @@
     StateManagerGL *stateManager      = GetStateManagerGL(context);
     const angle::FeaturesGL &features = GetFeaturesGL(context);
 
-    ANGLE_TRY(stateManager->bindRenderbuffer(context, GL_RENDERBUFFER, mRenderbufferID));
+    stateManager->bindRenderbuffer(GL_RENDERBUFFER, mRenderbufferID);
 
     nativegl::RenderbufferFormat renderbufferFormat =
         nativegl::GetRenderbufferFormat(functions, features, internalformat);
diff --git a/src/libANGLE/renderer/gl/SamplerGL.cpp b/src/libANGLE/renderer/gl/SamplerGL.cpp
index 586eeb2..01cfeb4 100644
--- a/src/libANGLE/renderer/gl/SamplerGL.cpp
+++ b/src/libANGLE/renderer/gl/SamplerGL.cpp
@@ -79,7 +79,7 @@
 
 SamplerGL::~SamplerGL()
 {
-    (void)mStateManager->deleteSampler(nullptr, mSamplerID);
+    mStateManager->deleteSampler(mSamplerID);
     mSamplerID = 0;
 }
 
diff --git a/src/libANGLE/renderer/gl/StateManagerGL.cpp b/src/libANGLE/renderer/gl/StateManagerGL.cpp
index b7b30c1..9c19540 100644
--- a/src/libANGLE/renderer/gl/StateManagerGL.cpp
+++ b/src/libANGLE/renderer/gl/StateManagerGL.cpp
@@ -216,36 +216,32 @@
     }
 }
 
-angle::Result StateManagerGL::deleteProgram(const gl::Context *context, GLuint program)
+void StateManagerGL::deleteProgram(GLuint program)
 {
     if (program != 0)
     {
         if (mProgram == program)
         {
-            ANGLE_TRY(useProgram(context, 0));
+            useProgram(0);
         }
 
-        ANGLE_GL_TRY(context, mFunctions->deleteProgram(program));
+        mFunctions->deleteProgram(program);
     }
-
-    return angle::Result::Continue;
 }
 
-angle::Result StateManagerGL::deleteVertexArray(const gl::Context *context, GLuint vao)
+void StateManagerGL::deleteVertexArray(GLuint vao)
 {
     if (vao != 0)
     {
         if (mVAO == vao)
         {
-            ANGLE_TRY(bindVertexArray(context, 0, &mDefaultVAOState));
+            bindVertexArray(0, &mDefaultVAOState);
         }
-        ANGLE_GL_TRY(context, mFunctions->deleteVertexArrays(1, &vao));
+        mFunctions->deleteVertexArrays(1, &vao);
     }
-
-    return angle::Result::Continue;
 }
 
-angle::Result StateManagerGL::deleteTexture(const gl::Context *context, GLuint texture)
+void StateManagerGL::deleteTexture(GLuint texture)
 {
     if (texture != 0)
     {
@@ -257,8 +253,8 @@
             {
                 if (textureVector[textureUnitIndex] == texture)
                 {
-                    ANGLE_TRY(activeTexture(context, textureUnitIndex));
-                    ANGLE_TRY(bindTexture(context, type, 0));
+                    activeTexture(textureUnitIndex);
+                    bindTexture(type, 0);
                 }
             }
         }
@@ -267,18 +263,15 @@
         {
             if (mImages[imageUnitIndex].texture == texture)
             {
-                ANGLE_TRY(bindImageTexture(context, imageUnitIndex, 0, 0, false, 0, GL_READ_ONLY,
-                                           GL_R32UI));
+                bindImageTexture(imageUnitIndex, 0, 0, false, 0, GL_READ_ONLY, GL_R32UI);
             }
         }
 
-        ANGLE_GL_TRY(context, mFunctions->deleteTextures(1, &texture));
+        mFunctions->deleteTextures(1, &texture);
     }
-
-    return angle::Result::Continue;
 }
 
-angle::Result StateManagerGL::deleteSampler(const gl::Context *context, GLuint sampler)
+void StateManagerGL::deleteSampler(GLuint sampler)
 {
     if (sampler != 0)
     {
@@ -286,28 +279,26 @@
         {
             if (mSamplers[unit] == sampler)
             {
-                ANGLE_TRY(bindSampler(context, unit, 0));
+                bindSampler(unit, 0);
             }
         }
 
-        ANGLE_GL_TRY(context, mFunctions->deleteSamplers(1, &sampler));
+        mFunctions->deleteSamplers(1, &sampler);
     }
-
-    return angle::Result::Continue;
 }
 
-angle::Result StateManagerGL::deleteBuffer(const gl::Context *context, GLuint buffer)
+void StateManagerGL::deleteBuffer(GLuint buffer)
 {
     if (buffer == 0)
     {
-        return angle::Result::Continue;
+        return;
     }
 
     for (auto target : angle::AllEnums<gl::BufferBinding>())
     {
         if (mBuffers[target] == buffer)
         {
-            ANGLE_TRY(bindBuffer(context, target, 0));
+            bindBuffer(target, 0);
         }
 
         auto &indexedTarget = mIndexedBuffers[target];
@@ -315,7 +306,7 @@
         {
             if (indexedTarget[bindIndex].buffer == buffer)
             {
-                ANGLE_TRY(bindBufferBase(context, target, bindIndex, 0));
+                bindBufferBase(target, bindIndex, 0);
             }
         }
     }
@@ -336,12 +327,10 @@
         }
     }
 
-    ANGLE_GL_TRY(context, mFunctions->deleteBuffers(1, &buffer));
-
-    return angle::Result::Continue;
+    mFunctions->deleteBuffers(1, &buffer);
 }
 
-angle::Result StateManagerGL::deleteFramebuffer(const gl::Context *context, GLuint fbo)
+void StateManagerGL::deleteFramebuffer(GLuint fbo)
 {
     if (fbo != 0)
     {
@@ -353,7 +342,7 @@
                 {
                     GLenum enumValue = angle::FramebufferBindingToEnum(
                         static_cast<angle::FramebufferBinding>(binding));
-                    ANGLE_TRY(bindFramebuffer(context, enumValue, 0));
+                    bindFramebuffer(enumValue, 0);
                 }
             }
         }
@@ -363,38 +352,33 @@
                    mFramebuffers[angle::FramebufferBindingDraw]);
             if (mFramebuffers[angle::FramebufferBindingRead] == fbo)
             {
-                ANGLE_TRY(bindFramebuffer(context, GL_FRAMEBUFFER, 0));
+                bindFramebuffer(GL_FRAMEBUFFER, 0);
             }
         }
-        ANGLE_GL_TRY(context, mFunctions->deleteFramebuffers(1, &fbo));
+        mFunctions->deleteFramebuffers(1, &fbo);
     }
-
-    return angle::Result::Continue;
 }
 
-angle::Result StateManagerGL::deleteRenderbuffer(const gl::Context *context, GLuint rbo)
+void StateManagerGL::deleteRenderbuffer(GLuint rbo)
 {
     if (rbo != 0)
     {
         if (mRenderbuffer == rbo)
         {
-            ANGLE_TRY(bindRenderbuffer(context, GL_RENDERBUFFER, 0));
+            bindRenderbuffer(GL_RENDERBUFFER, 0);
         }
 
-        ANGLE_GL_TRY(context, mFunctions->deleteRenderbuffers(1, &rbo));
+        mFunctions->deleteRenderbuffers(1, &rbo);
     }
-
-    return angle::Result::Continue;
 }
 
-angle::Result StateManagerGL::deleteTransformFeedback(const gl::Context *context,
-                                                      GLuint transformFeedback)
+void StateManagerGL::deleteTransformFeedback(GLuint transformFeedback)
 {
     if (transformFeedback != 0)
     {
         if (mTransformFeedback == transformFeedback)
         {
-            ANGLE_TRY(bindTransformFeedback(context, GL_TRANSFORM_FEEDBACK, 0));
+            bindTransformFeedback(GL_TRANSFORM_FEEDBACK, 0);
         }
 
         if (mCurrentTransformFeedback != nullptr &&
@@ -403,34 +387,26 @@
             mCurrentTransformFeedback = nullptr;
         }
 
-        ANGLE_GL_TRY(context, mFunctions->deleteTransformFeedbacks(1, &transformFeedback));
+        mFunctions->deleteTransformFeedbacks(1, &transformFeedback);
     }
-
-    return angle::Result::Continue;
 }
 
-angle::Result StateManagerGL::useProgram(const gl::Context *context, GLuint program)
+void StateManagerGL::useProgram(GLuint program)
 {
     if (mProgram != program)
     {
-        ANGLE_TRY(forceUseProgram(context, program));
+        forceUseProgram(program);
     }
-
-    return angle::Result::Continue;
 }
 
-angle::Result StateManagerGL::forceUseProgram(const gl::Context *context, GLuint program)
+void StateManagerGL::forceUseProgram(GLuint program)
 {
-    ANGLE_GL_TRY(context, mFunctions->useProgram(program));
     mProgram = program;
+    mFunctions->useProgram(mProgram);
     mLocalDirtyBits.set(gl::State::DIRTY_BIT_PROGRAM_BINDING);
-
-    return angle::Result::Continue;
 }
 
-angle::Result StateManagerGL::bindVertexArray(const gl::Context *context,
-                                              GLuint vao,
-                                              VertexArrayStateGL *vaoState)
+void StateManagerGL::bindVertexArray(GLuint vao, VertexArrayStateGL *vaoState)
 {
     ASSERT(vaoState);
     if (mVAO != vao)
@@ -441,17 +417,13 @@
         mVAOState                                 = vaoState;
         mBuffers[gl::BufferBinding::ElementArray] = vaoState ? vaoState->elementArrayBuffer : 0;
 
-        ANGLE_GL_TRY(context, mFunctions->bindVertexArray(vao));
+        mFunctions->bindVertexArray(vao);
 
         mLocalDirtyBits.set(gl::State::DIRTY_BIT_VERTEX_ARRAY_BINDING);
     }
-
-    return angle::Result::Continue;
 }
 
-angle::Result StateManagerGL::bindBuffer(const gl::Context *context,
-                                         gl::BufferBinding target,
-                                         GLuint buffer)
+void StateManagerGL::bindBuffer(gl::BufferBinding target, GLuint buffer)
 {
     // GL drivers differ in whether the transform feedback bind point is modified when
     // glBindTransformFeedback is called. To avoid these behavior differences we shouldn't try to
@@ -459,17 +431,12 @@
     ASSERT(target != gl::BufferBinding::TransformFeedback);
     if (mBuffers[target] != buffer)
     {
-        ANGLE_GL_TRY(context, mFunctions->bindBuffer(gl::ToGLenum(target), buffer));
         mBuffers[target] = buffer;
+        mFunctions->bindBuffer(gl::ToGLenum(target), buffer);
     }
-
-    return angle::Result::Continue;
 }
 
-angle::Result StateManagerGL::bindBufferBase(const gl::Context *context,
-                                             gl::BufferBinding target,
-                                             size_t index,
-                                             GLuint buffer)
+void StateManagerGL::bindBufferBase(gl::BufferBinding target, size_t index, GLuint buffer)
 {
     // Transform feedback buffer bindings are tracked in TransformFeedbackGL
     ASSERT(target != gl::BufferBinding::TransformFeedback);
@@ -479,23 +446,19 @@
     if (binding.buffer != buffer || binding.offset != static_cast<size_t>(-1) ||
         binding.size != static_cast<size_t>(-1))
     {
-        ANGLE_GL_TRY(context, mFunctions->bindBufferBase(gl::ToGLenum(target),
-                                                         static_cast<GLuint>(index), buffer));
         binding.buffer   = buffer;
         binding.offset   = static_cast<size_t>(-1);
         binding.size     = static_cast<size_t>(-1);
         mBuffers[target] = buffer;
+        mFunctions->bindBufferBase(gl::ToGLenum(target), static_cast<GLuint>(index), buffer);
     }
-
-    return angle::Result::Continue;
 }
 
-angle::Result StateManagerGL::bindBufferRange(const gl::Context *context,
-                                              gl::BufferBinding target,
-                                              size_t index,
-                                              GLuint buffer,
-                                              size_t offset,
-                                              size_t size)
+void StateManagerGL::bindBufferRange(gl::BufferBinding target,
+                                     size_t index,
+                                     GLuint buffer,
+                                     size_t offset,
+                                     size_t size)
 {
     // Transform feedback buffer bindings are tracked in TransformFeedbackGL
     ASSERT(target != gl::BufferBinding::TransformFeedback);
@@ -503,94 +466,75 @@
     auto &binding = mIndexedBuffers[target][index];
     if (binding.buffer != buffer || binding.offset != offset || binding.size != size)
     {
-        ANGLE_GL_TRY(context,
-                     mFunctions->bindBufferRange(gl::ToGLenum(target), static_cast<GLuint>(index),
-                                                 buffer, offset, size));
         binding.buffer   = buffer;
         binding.offset   = offset;
         binding.size     = size;
         mBuffers[target] = buffer;
+        mFunctions->bindBufferRange(gl::ToGLenum(target), static_cast<GLuint>(index), buffer,
+                                    offset, size);
     }
-
-    return angle::Result::Continue;
 }
 
-angle::Result StateManagerGL::activeTexture(const gl::Context *context, size_t unit)
+void StateManagerGL::activeTexture(size_t unit)
 {
     if (mTextureUnitIndex != unit)
     {
-        ANGLE_GL_TRY(context, mFunctions->activeTexture(GL_TEXTURE0 + static_cast<GLenum>(unit)));
         mTextureUnitIndex = unit;
+        mFunctions->activeTexture(GL_TEXTURE0 + static_cast<GLenum>(mTextureUnitIndex));
     }
-
-    return angle::Result::Continue;
 }
 
-angle::Result StateManagerGL::bindTexture(const gl::Context *context,
-                                          gl::TextureType type,
-                                          GLuint texture)
+void StateManagerGL::bindTexture(gl::TextureType type, GLuint texture)
 {
     gl::TextureType nativeType = nativegl::GetNativeTextureType(type);
     if (mTextures[nativeType][mTextureUnitIndex] != texture)
     {
-        ANGLE_GL_TRY(context,
-                     mFunctions->bindTexture(nativegl::GetTextureBindingTarget(type), texture));
         mTextures[nativeType][mTextureUnitIndex] = texture;
+        mFunctions->bindTexture(nativegl::GetTextureBindingTarget(type), texture);
         mLocalDirtyBits.set(gl::State::DIRTY_BIT_TEXTURE_BINDINGS);
     }
-
-    return angle::Result::Continue;
 }
 
-angle::Result StateManagerGL::invalidateTexture(const gl::Context *context, gl::TextureType type)
+void StateManagerGL::invalidateTexture(gl::TextureType type)
 {
     // Assume the tracked texture binding is incorrect, query the real bound texture from GL.
     GLint boundTexture = 0;
-    ANGLE_GL_TRY(context,
-                 mFunctions->getIntegerv(nativegl::GetTextureBindingQuery(type), &boundTexture));
+    mFunctions->getIntegerv(nativegl::GetTextureBindingQuery(type), &boundTexture);
     mTextures[type][mTextureUnitIndex] = static_cast<GLuint>(boundTexture);
     mLocalDirtyBits.set(gl::State::DIRTY_BIT_TEXTURE_BINDINGS);
-
-    return angle::Result::Continue;
 }
 
-angle::Result StateManagerGL::bindSampler(const gl::Context *context, size_t unit, GLuint sampler)
+void StateManagerGL::bindSampler(size_t unit, GLuint sampler)
 {
     if (mSamplers[unit] != sampler)
     {
-        ANGLE_GL_TRY(context, mFunctions->bindSampler(static_cast<GLuint>(unit), sampler));
         mSamplers[unit] = sampler;
+        mFunctions->bindSampler(static_cast<GLuint>(unit), sampler);
         mLocalDirtyBits.set(gl::State::DIRTY_BIT_SAMPLER_BINDINGS);
     }
-
-    return angle::Result::Continue;
 }
 
-angle::Result StateManagerGL::bindImageTexture(const gl::Context *context,
-                                               size_t unit,
-                                               GLuint texture,
-                                               GLint level,
-                                               GLboolean layered,
-                                               GLint layer,
-                                               GLenum access,
-                                               GLenum format)
+void StateManagerGL::bindImageTexture(size_t unit,
+                                      GLuint texture,
+                                      GLint level,
+                                      GLboolean layered,
+                                      GLint layer,
+                                      GLenum access,
+                                      GLenum format)
 {
     auto &binding = mImages[unit];
     if (binding.texture != texture || binding.level != level || binding.layered != layered ||
         binding.layer != layer || binding.access != access || binding.format != format)
     {
-        ANGLE_GL_TRY(context,
-                     mFunctions->bindImageTexture(angle::base::checked_cast<GLuint>(unit), texture,
-                                                  level, layered, layer, access, format));
         binding.texture = texture;
         binding.level   = level;
         binding.layered = layered;
         binding.layer   = layer;
         binding.access  = access;
         binding.format  = format;
+        mFunctions->bindImageTexture(angle::base::checked_cast<GLuint>(unit), texture, level,
+                                     layered, layer, access, format);
     }
-
-    return angle::Result::Continue;
 }
 
 angle::Result StateManagerGL::setPixelUnpackState(const gl::Context *context,
@@ -655,7 +599,7 @@
     {
         bufferID = GetImplAs<BufferGL>(pixelBuffer)->getBufferID();
     }
-    ANGLE_TRY(bindBuffer(context, gl::BufferBinding::PixelUnpack, bufferID));
+    bindBuffer(gl::BufferBinding::PixelUnpack, bufferID);
 
     return angle::Result::Continue;
 }
@@ -706,14 +650,12 @@
     {
         bufferID = GetImplAs<BufferGL>(pixelBuffer)->getBufferID();
     }
-    ANGLE_TRY(bindBuffer(context, gl::BufferBinding::PixelPack, bufferID));
+    bindBuffer(gl::BufferBinding::PixelPack, bufferID);
 
     return angle::Result::Continue;
 }
 
-angle::Result StateManagerGL::bindFramebuffer(const gl::Context *context,
-                                              GLenum type,
-                                              GLuint framebuffer)
+void StateManagerGL::bindFramebuffer(GLenum type, GLuint framebuffer)
 {
     bool framebufferChanged = false;
     switch (type)
@@ -722,9 +664,9 @@
             if (mFramebuffers[angle::FramebufferBindingRead] != framebuffer ||
                 mFramebuffers[angle::FramebufferBindingDraw] != framebuffer)
             {
-                ANGLE_GL_TRY(context, mFunctions->bindFramebuffer(GL_FRAMEBUFFER, framebuffer));
                 mFramebuffers[angle::FramebufferBindingRead] = framebuffer;
                 mFramebuffers[angle::FramebufferBindingDraw] = framebuffer;
+                mFunctions->bindFramebuffer(GL_FRAMEBUFFER, framebuffer);
 
                 mLocalDirtyBits.set(gl::State::DIRTY_BIT_READ_FRAMEBUFFER_BINDING);
                 mLocalDirtyBits.set(gl::State::DIRTY_BIT_DRAW_FRAMEBUFFER_BINDING);
@@ -737,9 +679,8 @@
             ASSERT(mHasSeparateFramebufferBindings);
             if (mFramebuffers[angle::FramebufferBindingRead] != framebuffer)
             {
-                ANGLE_GL_TRY(context,
-                             mFunctions->bindFramebuffer(GL_READ_FRAMEBUFFER, framebuffer));
                 mFramebuffers[angle::FramebufferBindingRead] = framebuffer;
+                mFunctions->bindFramebuffer(GL_READ_FRAMEBUFFER, framebuffer);
 
                 mLocalDirtyBits.set(gl::State::DIRTY_BIT_READ_FRAMEBUFFER_BINDING);
 
@@ -751,9 +692,8 @@
             ASSERT(mHasSeparateFramebufferBindings);
             if (mFramebuffers[angle::FramebufferBindingDraw] != framebuffer)
             {
-                ANGLE_GL_TRY(context,
-                             mFunctions->bindFramebuffer(GL_DRAW_FRAMEBUFFER, framebuffer));
                 mFramebuffers[angle::FramebufferBindingDraw] = framebuffer;
+                mFunctions->bindFramebuffer(GL_DRAW_FRAMEBUFFER, framebuffer);
 
                 mLocalDirtyBits.set(gl::State::DIRTY_BIT_DRAW_FRAMEBUFFER_BINDING);
 
@@ -768,29 +708,21 @@
 
     if (framebufferChanged && mFeatures.flushOnFramebufferChange.enabled)
     {
-        ANGLE_GL_TRY(context, mFunctions->flush());
+        mFunctions->flush();
     }
-
-    return angle::Result::Continue;
 }
 
-angle::Result StateManagerGL::bindRenderbuffer(const gl::Context *context,
-                                               GLenum type,
-                                               GLuint renderbuffer)
+void StateManagerGL::bindRenderbuffer(GLenum type, GLuint renderbuffer)
 {
     ASSERT(type == GL_RENDERBUFFER);
     if (mRenderbuffer != renderbuffer)
     {
-        ANGLE_GL_TRY(context, mFunctions->bindRenderbuffer(type, renderbuffer));
         mRenderbuffer = renderbuffer;
+        mFunctions->bindRenderbuffer(type, mRenderbuffer);
     }
-
-    return angle::Result::Continue;
 }
 
-angle::Result StateManagerGL::bindTransformFeedback(const gl::Context *context,
-                                                    GLenum type,
-                                                    GLuint transformFeedback)
+void StateManagerGL::bindTransformFeedback(GLenum type, GLuint transformFeedback)
 {
     ASSERT(type == GL_TRANSFORM_FEEDBACK);
     if (mTransformFeedback != transformFeedback)
@@ -801,16 +733,14 @@
         if (mCurrentTransformFeedback != nullptr &&
             mCurrentTransformFeedback->getTransformFeedbackID() != transformFeedback)
         {
-            ANGLE_TRY(mCurrentTransformFeedback->syncPausedState(context, true));
+            mCurrentTransformFeedback->syncPausedState(true);
             mCurrentTransformFeedback = nullptr;
         }
 
-        ANGLE_GL_TRY(context, mFunctions->bindTransformFeedback(type, transformFeedback));
         mTransformFeedback = transformFeedback;
+        mFunctions->bindTransformFeedback(type, mTransformFeedback);
         onTransformFeedbackStateChange();
     }
-
-    return angle::Result::Continue;
 }
 
 void StateManagerGL::onTransformFeedbackStateChange()
@@ -818,70 +748,53 @@
     mLocalDirtyBits.set(gl::State::DIRTY_BIT_TRANSFORM_FEEDBACK_BINDING);
 }
 
-angle::Result StateManagerGL::beginQuery(const gl::Context *context,
-                                         gl::QueryType type,
-                                         QueryGL *queryObject,
-                                         GLuint queryId)
+void StateManagerGL::beginQuery(gl::QueryType type, QueryGL *queryObject, GLuint queryId)
 {
     // Make sure this is a valid query type and there is no current active query of this type
     ASSERT(mQueries[type] == nullptr);
     ASSERT(queryId != 0);
 
-    ANGLE_GL_TRY(context, mFunctions->beginQuery(ToGLenum(type), queryId));
     mQueries[type] = queryObject;
-
-    return angle::Result::Continue;
+    mFunctions->beginQuery(ToGLenum(type), queryId);
 }
 
-angle::Result StateManagerGL::endQuery(const gl::Context *context,
-                                       gl::QueryType type,
-                                       QueryGL *queryObject,
-                                       GLuint queryId)
+void StateManagerGL::endQuery(gl::QueryType type, QueryGL *queryObject, GLuint queryId)
 {
     ASSERT(queryObject != nullptr);
     ASSERT(mQueries[type] == queryObject);
-
-    ANGLE_GL_TRY(context, mFunctions->endQuery(ToGLenum(type)));
     mQueries[type] = nullptr;
-
-    return angle::Result::Continue;
+    mFunctions->endQuery(ToGLenum(type));
 }
 
-angle::Result StateManagerGL::updateDrawIndirectBufferBinding(const gl::Context *context)
+void StateManagerGL::updateDrawIndirectBufferBinding(const gl::Context *context)
 {
     gl::Buffer *drawIndirectBuffer =
         context->getState().getTargetBuffer(gl::BufferBinding::DrawIndirect);
     if (drawIndirectBuffer != nullptr)
     {
         const BufferGL *bufferGL = GetImplAs<BufferGL>(drawIndirectBuffer);
-        ANGLE_TRY(bindBuffer(context, gl::BufferBinding::DrawIndirect, bufferGL->getBufferID()));
+        bindBuffer(gl::BufferBinding::DrawIndirect, bufferGL->getBufferID());
     }
-
-    return angle::Result::Continue;
 }
 
-angle::Result StateManagerGL::updateDispatchIndirectBufferBinding(const gl::Context *context)
+void StateManagerGL::updateDispatchIndirectBufferBinding(const gl::Context *context)
 {
     gl::Buffer *dispatchIndirectBuffer =
         context->getState().getTargetBuffer(gl::BufferBinding::DispatchIndirect);
     if (dispatchIndirectBuffer != nullptr)
     {
         const BufferGL *bufferGL = GetImplAs<BufferGL>(dispatchIndirectBuffer);
-        ANGLE_TRY(
-            bindBuffer(context, gl::BufferBinding::DispatchIndirect, bufferGL->getBufferID()));
+        bindBuffer(gl::BufferBinding::DispatchIndirect, bufferGL->getBufferID());
     }
-
-    return angle::Result::Continue;
 }
 
-angle::Result StateManagerGL::pauseTransformFeedback(const gl::Context *context)
+void StateManagerGL::pauseTransformFeedback()
 {
     if (mCurrentTransformFeedback != nullptr)
     {
-        ANGLE_TRY(mCurrentTransformFeedback->syncPausedState(context, true));
+        mCurrentTransformFeedback->syncPausedState(true);
         onTransformFeedbackStateChange();
     }
-    return angle::Result::Continue;
 }
 
 angle::Result StateManagerGL::pauseAllQueries(const gl::Context *context)
@@ -990,16 +903,14 @@
     return angle::Result::Continue;
 }
 
-angle::Result StateManagerGL::updateProgramTextureBindings(const gl::Context *context)
+void StateManagerGL::updateProgramTextureBindings(const gl::Context *context)
 {
     const gl::State &glState                = context->getState();
     const gl::ProgramExecutable *executable = glState.getProgramExecutable();
 
     // It is possible there is no active program during a path operation.
     if (!executable)
-    {
-        return angle::Result::Continue;
-    }
+        return;
 
     const gl::ActiveTexturesCache &textures        = glState.getActiveTexturesCache();
     const gl::ActiveTextureMask &activeTextures    = executable->getActiveSamplersMask();
@@ -1017,20 +928,18 @@
             ASSERT(!texture->hasAnyDirtyBit());
             ASSERT(!textureGL->hasAnyDirtyBit());
 
-            ANGLE_TRY(activeTexture(context, textureUnitIndex));
-            ANGLE_TRY(bindTexture(context, textureType, textureGL->getTextureID()));
+            activeTexture(textureUnitIndex);
+            bindTexture(textureType, textureGL->getTextureID());
         }
         else
         {
-            ANGLE_TRY(activeTexture(context, textureUnitIndex));
-            ANGLE_TRY(bindTexture(context, textureType, 0));
+            activeTexture(textureUnitIndex);
+            bindTexture(textureType, 0);
         }
     }
-
-    return angle::Result::Continue;
 }
 
-angle::Result StateManagerGL::updateProgramStorageBufferBindings(const gl::Context *context)
+void StateManagerGL::updateProgramStorageBufferBindings(const gl::Context *context)
 {
     const gl::State &glState   = context->getState();
     const gl::Program *program = glState.getProgram();
@@ -1047,22 +956,18 @@
 
             if (shaderStorageBuffer.getSize() == 0)
             {
-                ANGLE_TRY(bindBufferBase(context, gl::BufferBinding::ShaderStorage, binding,
-                                         bufferGL->getBufferID()));
+                bindBufferBase(gl::BufferBinding::ShaderStorage, binding, bufferGL->getBufferID());
             }
             else
             {
-                ANGLE_TRY(bindBufferRange(context, gl::BufferBinding::ShaderStorage, binding,
-                                          bufferGL->getBufferID(), shaderStorageBuffer.getOffset(),
-                                          shaderStorageBuffer.getSize()));
+                bindBufferRange(gl::BufferBinding::ShaderStorage, binding, bufferGL->getBufferID(),
+                                shaderStorageBuffer.getOffset(), shaderStorageBuffer.getSize());
             }
         }
     }
-
-    return angle::Result::Continue;
 }
 
-angle::Result StateManagerGL::updateProgramUniformBufferBindings(const gl::Context *context)
+void StateManagerGL::updateProgramUniformBufferBindings(const gl::Context *context)
 {
     // Sync the current program state
     const gl::State &glState   = context->getState();
@@ -1080,22 +985,18 @@
 
             if (uniformBuffer.getSize() == 0)
             {
-                ANGLE_TRY(bindBufferBase(context, gl::BufferBinding::Uniform, binding,
-                                         bufferGL->getBufferID()));
+                bindBufferBase(gl::BufferBinding::Uniform, binding, bufferGL->getBufferID());
             }
             else
             {
-                ANGLE_TRY(bindBufferRange(context, gl::BufferBinding::Uniform, binding,
-                                          bufferGL->getBufferID(), uniformBuffer.getOffset(),
-                                          uniformBuffer.getSize()));
+                bindBufferRange(gl::BufferBinding::Uniform, binding, bufferGL->getBufferID(),
+                                uniformBuffer.getOffset(), uniformBuffer.getSize());
             }
         }
     }
-
-    return angle::Result::Continue;
 }
 
-angle::Result StateManagerGL::updateProgramAtomicCounterBufferBindings(const gl::Context *context)
+void StateManagerGL::updateProgramAtomicCounterBufferBindings(const gl::Context *context)
 {
     const gl::State &glState   = context->getState();
     const gl::Program *program = glState.getProgram();
@@ -1111,22 +1012,18 @@
 
             if (buffer.getSize() == 0)
             {
-                ANGLE_TRY(bindBufferBase(context, gl::BufferBinding::AtomicCounter, binding,
-                                         bufferGL->getBufferID()));
+                bindBufferBase(gl::BufferBinding::AtomicCounter, binding, bufferGL->getBufferID());
             }
             else
             {
-                ANGLE_TRY(bindBufferRange(context, gl::BufferBinding::AtomicCounter, binding,
-                                          bufferGL->getBufferID(), buffer.getOffset(),
-                                          buffer.getSize()));
+                bindBufferRange(gl::BufferBinding::AtomicCounter, binding, bufferGL->getBufferID(),
+                                buffer.getOffset(), buffer.getSize());
             }
         }
     }
-
-    return angle::Result::Continue;
 }
 
-angle::Result StateManagerGL::updateProgramImageBindings(const gl::Context *context)
+void StateManagerGL::updateProgramImageBindings(const gl::Context *context)
 {
     const gl::State &glState                = context->getState();
     const gl::ProgramExecutable *executable = glState.getProgramExecutable();
@@ -1134,9 +1031,7 @@
 
     // It is possible there is no active program during a path operation.
     if (!executable || !program)
-    {
-        return angle::Result::Continue;
-    }
+        return;
 
     ASSERT(context->getClientVersion() >= gl::ES_3_1 || program->getImageBindings().empty());
     for (size_t imageUnitIndex : executable->getActiveImagesMask())
@@ -1145,19 +1040,16 @@
         const TextureGL *textureGL     = SafeGetImplAs<TextureGL>(imageUnit.texture.get());
         if (textureGL)
         {
-            ANGLE_TRY(bindImageTexture(context, imageUnitIndex, textureGL->getTextureID(),
-                                       imageUnit.level, imageUnit.layered, imageUnit.layer,
-                                       imageUnit.access, imageUnit.format));
+            bindImageTexture(imageUnitIndex, textureGL->getTextureID(), imageUnit.level,
+                             imageUnit.layered, imageUnit.layer, imageUnit.access,
+                             imageUnit.format);
         }
         else
         {
-            ANGLE_TRY(bindImageTexture(context, imageUnitIndex, 0, imageUnit.level,
-                                       imageUnit.layered, imageUnit.layer, imageUnit.access,
-                                       imageUnit.format));
+            bindImageTexture(imageUnitIndex, 0, imageUnit.level, imageUnit.layered, imageUnit.layer,
+                             imageUnit.access, imageUnit.format);
         }
     }
-
-    return angle::Result::Continue;
 }
 
 void StateManagerGL::setAttributeCurrentData(size_t index,
@@ -2088,9 +1980,9 @@
                     continue;
 
                 FramebufferGL *framebufferGL = GetImplAs<FramebufferGL>(framebuffer);
-                ANGLE_TRY(bindFramebuffer(
-                    context, mHasSeparateFramebufferBindings ? GL_READ_FRAMEBUFFER : GL_FRAMEBUFFER,
-                    framebufferGL->getFramebufferID()));
+                bindFramebuffer(
+                    mHasSeparateFramebufferBindings ? GL_READ_FRAMEBUFFER : GL_FRAMEBUFFER,
+                    framebufferGL->getFramebufferID());
                 break;
             }
             case gl::State::DIRTY_BIT_DRAW_FRAMEBUFFER_BINDING:
@@ -2102,9 +1994,9 @@
                     continue;
 
                 FramebufferGL *framebufferGL = GetImplAs<FramebufferGL>(framebuffer);
-                ANGLE_TRY(bindFramebuffer(
-                    context, mHasSeparateFramebufferBindings ? GL_DRAW_FRAMEBUFFER : GL_FRAMEBUFFER,
-                    framebufferGL->getFramebufferID()));
+                bindFramebuffer(
+                    mHasSeparateFramebufferBindings ? GL_DRAW_FRAMEBUFFER : GL_FRAMEBUFFER,
+                    framebufferGL->getFramebufferID());
 
                 const gl::Program *program = state.getProgram();
                 if (program)
@@ -2126,8 +2018,7 @@
             case gl::State::DIRTY_BIT_VERTEX_ARRAY_BINDING:
             {
                 VertexArrayGL *vaoGL = GetImplAs<VertexArrayGL>(state.getVertexArray());
-                ANGLE_TRY(
-                    bindVertexArray(context, vaoGL->getVertexArrayID(), vaoGL->getNativeState()));
+                bindVertexArray(vaoGL->getVertexArrayID(), vaoGL->getNativeState());
 
                 ANGLE_TRY(propagateProgramToVAO(context, state.getProgram(),
                                                 GetImplAs<VertexArrayGL>(state.getVertexArray())));
@@ -2160,17 +2051,17 @@
                 break;
             }
             case gl::State::DIRTY_BIT_DRAW_INDIRECT_BUFFER_BINDING:
-                ANGLE_TRY(updateDrawIndirectBufferBinding(context));
+                updateDrawIndirectBufferBinding(context);
                 break;
             case gl::State::DIRTY_BIT_DISPATCH_INDIRECT_BUFFER_BINDING:
-                ANGLE_TRY(updateDispatchIndirectBufferBinding(context));
+                updateDispatchIndirectBufferBinding(context);
                 break;
             case gl::State::DIRTY_BIT_PROGRAM_BINDING:
             {
                 gl::Program *program = state.getProgram();
                 if (program != nullptr)
                 {
-                    ANGLE_TRY(useProgram(context, GetImplAs<ProgramGL>(program)->getProgramID()));
+                    useProgram(GetImplAs<ProgramGL>(program)->getProgramID());
                 }
                 break;
             }
@@ -2219,25 +2110,25 @@
                 break;
             }
             case gl::State::DIRTY_BIT_TEXTURE_BINDINGS:
-                ANGLE_TRY(updateProgramTextureBindings(context));
+                updateProgramTextureBindings(context);
                 break;
             case gl::State::DIRTY_BIT_SAMPLER_BINDINGS:
-                ANGLE_TRY(syncSamplersState(context));
+                syncSamplersState(context);
                 break;
             case gl::State::DIRTY_BIT_IMAGE_BINDINGS:
-                ANGLE_TRY(updateProgramImageBindings(context));
+                updateProgramImageBindings(context);
                 break;
             case gl::State::DIRTY_BIT_TRANSFORM_FEEDBACK_BINDING:
-                ANGLE_TRY(syncTransformFeedbackState(context));
+                syncTransformFeedbackState(context);
                 break;
             case gl::State::DIRTY_BIT_SHADER_STORAGE_BUFFER_BINDING:
-                ANGLE_TRY(updateProgramStorageBufferBindings(context));
+                updateProgramStorageBufferBindings(context);
                 break;
             case gl::State::DIRTY_BIT_UNIFORM_BUFFER_BINDINGS:
-                ANGLE_TRY(updateProgramUniformBufferBindings(context));
+                updateProgramUniformBufferBindings(context);
                 break;
             case gl::State::DIRTY_BIT_ATOMIC_COUNTER_BUFFER_BINDING:
-                ANGLE_TRY(updateProgramAtomicCounterBufferBindings(context));
+                updateProgramAtomicCounterBufferBindings(context);
                 break;
             case gl::State::DIRTY_BIT_MULTISAMPLING:
                 setMultisamplingStateEnabled(state.isMultisamplingEnabled());
@@ -2578,7 +2469,7 @@
     }
 }
 
-angle::Result StateManagerGL::syncSamplersState(const gl::Context *context)
+void StateManagerGL::syncSamplersState(const gl::Context *context)
 {
     const gl::SamplerBindingVector &samplers = context->getState().getSamplers();
 
@@ -2589,18 +2480,16 @@
         if (sampler != nullptr)
         {
             SamplerGL *samplerGL = GetImplAs<SamplerGL>(sampler);
-            ANGLE_TRY(bindSampler(context, samplerIndex, samplerGL->getSamplerID()));
+            bindSampler(samplerIndex, samplerGL->getSamplerID());
         }
         else
         {
-            ANGLE_TRY(bindSampler(context, samplerIndex, 0));
+            bindSampler(samplerIndex, 0);
         }
     }
-
-    return angle::Result::Continue;
 }
 
-angle::Result StateManagerGL::syncTransformFeedbackState(const gl::Context *context)
+void StateManagerGL::syncTransformFeedbackState(const gl::Context *context)
 {
     // Set the current transform feedback state
     gl::TransformFeedback *transformFeedback = context->getState().getCurrentTransformFeedback();
@@ -2608,20 +2497,17 @@
     {
         TransformFeedbackGL *transformFeedbackGL =
             GetImplAs<TransformFeedbackGL>(transformFeedback);
-        ANGLE_TRY(bindTransformFeedback(context, GL_TRANSFORM_FEEDBACK,
-                                        transformFeedbackGL->getTransformFeedbackID()));
-        ANGLE_TRY(transformFeedbackGL->syncActiveState(context, transformFeedback->isActive(),
-                                                       transformFeedback->getPrimitiveMode()));
-        ANGLE_TRY(transformFeedbackGL->syncPausedState(context, transformFeedback->isPaused()));
+        bindTransformFeedback(GL_TRANSFORM_FEEDBACK, transformFeedbackGL->getTransformFeedbackID());
+        transformFeedbackGL->syncActiveState(context, transformFeedback->isActive(),
+                                             transformFeedback->getPrimitiveMode());
+        transformFeedbackGL->syncPausedState(transformFeedback->isPaused());
         mCurrentTransformFeedback = transformFeedbackGL;
     }
     else
     {
-        ANGLE_TRY(bindTransformFeedback(context, GL_TRANSFORM_FEEDBACK, 0));
+        bindTransformFeedback(GL_TRANSFORM_FEEDBACK, 0);
         mCurrentTransformFeedback = nullptr;
     }
-
-    return angle::Result::Continue;
 }
 
 GLuint StateManagerGL::getDefaultVAO() const
@@ -2731,9 +2617,8 @@
     *color = gl::ColorF(v[0], v[1], v[2], v[3]);
 }
 
-angle::Result StateManagerGL::syncFromNativeContext(const gl::Context *context,
-                                                    const gl::Extensions &extensions,
-                                                    ExternalContextState *state)
+void StateManagerGL::syncFromNativeContext(const gl::Extensions &extensions,
+                                           ExternalContextState *state)
 {
     ASSERT(mFunctions->getError() == GL_NO_ERROR);
 
@@ -2909,15 +2794,13 @@
     syncStencilFromNativeContext(extensions, state);
     syncVertexArraysFromNativeContext(extensions, state);
     syncBufferBindingsFromNativeContext(extensions, state);
-    ANGLE_TRY(syncTextureUnitsFromNativeContext(context, extensions, state));
+    syncTextureUnitsFromNativeContext(extensions, state);
 
     ASSERT(mFunctions->getError() == GL_NO_ERROR);
-    return angle::Result::Continue;
 }
 
-angle::Result StateManagerGL::restoreNativeContext(const gl::Context *context,
-                                                   const gl::Extensions &extensions,
-                                                   const ExternalContextState *state)
+void StateManagerGL::restoreNativeContext(const gl::Extensions &extensions,
+                                          const ExternalContextState *state)
 {
     ASSERT(mFunctions->getError() == GL_NO_ERROR);
 
@@ -2934,7 +2817,7 @@
     setColorMask(state->colorMask[0], state->colorMask[1], state->colorMask[2],
                  state->colorMask[3]);
 
-    ANGLE_TRY(forceUseProgram(context, state->currentProgram));
+    forceUseProgram(state->currentProgram);
 
     setClearColor(state->colorClear);
 
@@ -2963,18 +2846,17 @@
         setMultisamplingStateEnabled(state->multisampleEnabled);
 
     restoreBlendNativeContext(extensions, state);
-    ANGLE_TRY(restoreFramebufferNativeContext(context, extensions, state));
+    restoreFramebufferNativeContext(extensions, state);
     restorePixelPackUnpackNativeContext(extensions, state);
     restoreStencilNativeContext(extensions, state);
-    ANGLE_TRY(restoreVertexArraysNativeContext(context, extensions, state));
-    ANGLE_TRY(restoreBufferBindingsNativeContext(context, extensions, state));
-    ANGLE_TRY(restoreTextureUnitsNativeContext(context, extensions, state));
+    restoreVertexArraysNativeContext(extensions, state);
+    restoreBufferBindingsNativeContext(extensions, state);
+    restoreTextureUnitsNativeContext(extensions, state);
 
     // if (mFunctions->coverageModulationNV) ?
     setCoverageModulation(GL_NONE);
 
     ASSERT(mFunctions->getError() == GL_NO_ERROR);
-    return angle::Result::Continue;
 }
 
 void StateManagerGL::syncBlendFromNativeContext(const gl::Extensions &extensions,
@@ -3058,11 +2940,10 @@
     }
 }
 
-angle::Result StateManagerGL::restoreFramebufferNativeContext(const gl::Context *context,
-                                                              const gl::Extensions &extensions,
-                                                              const ExternalContextState *state)
+void StateManagerGL::restoreFramebufferNativeContext(const gl::Extensions &extensions,
+                                                     const ExternalContextState *state)
 {
-    return bindFramebuffer(context, GL_FRAMEBUFFER, state->framebufferBinding);
+    bindFramebuffer(GL_FRAMEBUFFER, state->framebufferBinding);
 }
 
 void StateManagerGL::syncPixelPackUnpackFromNativeContext(const gl::Extensions &extensions,
@@ -3221,27 +3102,22 @@
     mBuffers[gl::BufferBinding::ElementArray] = state->elementArrayBufferBinding;
 }
 
-angle::Result StateManagerGL::restoreBufferBindingsNativeContext(const gl::Context *context,
-                                                                 const gl::Extensions &extensions,
-                                                                 const ExternalContextState *state)
+void StateManagerGL::restoreBufferBindingsNativeContext(const gl::Extensions &extensions,
+                                                        const ExternalContextState *state)
 {
-    ANGLE_TRY(bindBuffer(context, gl::BufferBinding::Array, state->vertexArrayBufferBinding));
-    ANGLE_TRY(
-        bindBuffer(context, gl::BufferBinding::ElementArray, state->elementArrayBufferBinding));
-
-    return angle::Result::Continue;
+    bindBuffer(gl::BufferBinding::Array, state->vertexArrayBufferBinding);
+    bindBuffer(gl::BufferBinding::ElementArray, state->elementArrayBufferBinding);
 }
 
-angle::Result StateManagerGL::syncTextureUnitsFromNativeContext(const gl::Context *context,
-                                                                const gl::Extensions &extensions,
-                                                                ExternalContextState *state)
+void StateManagerGL::syncTextureUnitsFromNativeContext(const gl::Extensions &extensions,
+                                                       ExternalContextState *state)
 {
     get(GL_ACTIVE_TEXTURE, &state->activeTexture);
 
     for (size_t i = 0; i < state->textureBindings.size(); ++i)
     {
         auto &bindings = state->textureBindings[i];
-        ANGLE_TRY(activeTexture(context, i));
+        activeTexture(i);
         get(GL_TEXTURE_BINDING_2D, &bindings.texture2d);
         get(GL_TEXTURE_BINDING_CUBE_MAP, &bindings.textureCubeMap);
         get(GL_TEXTURE_BINDING_EXTERNAL_OES, &bindings.textureExternalOES);
@@ -3257,26 +3133,21 @@
             mLocalDirtyBits.set(gl::State::DIRTY_BIT_TEXTURE_BINDINGS);
         }
     }
-
-    return angle::Result::Continue;
 }
 
-angle::Result StateManagerGL::restoreTextureUnitsNativeContext(const gl::Context *context,
-                                                               const gl::Extensions &extensions,
-                                                               const ExternalContextState *state)
+void StateManagerGL::restoreTextureUnitsNativeContext(const gl::Extensions &extensions,
+                                                      const ExternalContextState *state)
 {
     for (size_t i = 0; i < state->textureBindings.size(); ++i)
     {
         const auto &bindings = state->textureBindings[i];
-        ANGLE_TRY(activeTexture(context, i));
-        ANGLE_TRY(bindTexture(context, gl::TextureType::_2D, bindings.texture2d));
-        ANGLE_TRY(bindTexture(context, gl::TextureType::CubeMap, bindings.textureCubeMap));
-        ANGLE_TRY(bindTexture(context, gl::TextureType::External, bindings.textureExternalOES));
-        ANGLE_TRY(bindSampler(context, i, 0));
+        activeTexture(i);
+        bindTexture(gl::TextureType::_2D, bindings.texture2d);
+        bindTexture(gl::TextureType::CubeMap, bindings.textureCubeMap);
+        bindTexture(gl::TextureType::External, bindings.textureExternalOES);
+        bindSampler(i, 0);
     }
-    ANGLE_TRY(activeTexture(context, state->activeTexture - GL_TEXTURE0));
-
-    return angle::Result::Continue;
+    activeTexture(state->activeTexture - GL_TEXTURE0);
 }
 
 void StateManagerGL::syncVertexArraysFromNativeContext(const gl::Extensions &extensions,
@@ -3291,11 +3162,10 @@
     }
 }
 
-angle::Result StateManagerGL::restoreVertexArraysNativeContext(const gl::Context *context,
-                                                               const gl::Extensions &extensions,
-                                                               const ExternalContextState *state)
+void StateManagerGL::restoreVertexArraysNativeContext(const gl::Extensions &extensions,
+                                                      const ExternalContextState *state)
 {
-    return bindVertexArray(context, state->vertexArrayBinding, nullptr);
+    bindVertexArray(state->vertexArrayBinding, 0);
 }
 
 void StateManagerGL::setDefaultVAOStateDirty()
diff --git a/src/libANGLE/renderer/gl/StateManagerGL.h b/src/libANGLE/renderer/gl/StateManagerGL.h
index 384ee2a..a1cb786 100644
--- a/src/libANGLE/renderer/gl/StateManagerGL.h
+++ b/src/libANGLE/renderer/gl/StateManagerGL.h
@@ -154,57 +154,42 @@
                    const angle::FeaturesGL &features);
     ~StateManagerGL();
 
-    angle::Result deleteProgram(const gl::Context *context, GLuint program);
-    angle::Result deleteVertexArray(const gl::Context *context, GLuint vao);
-    angle::Result deleteTexture(const gl::Context *context, GLuint texture);
-    angle::Result deleteSampler(const gl::Context *context, GLuint sampler);
-    angle::Result deleteBuffer(const gl::Context *context, GLuint buffer);
-    angle::Result deleteFramebuffer(const gl::Context *context, GLuint fbo);
-    angle::Result deleteRenderbuffer(const gl::Context *context, GLuint rbo);
-    angle::Result deleteTransformFeedback(const gl::Context *context, GLuint transformFeedback);
+    void deleteProgram(GLuint program);
+    void deleteVertexArray(GLuint vao);
+    void deleteTexture(GLuint texture);
+    void deleteSampler(GLuint sampler);
+    void deleteBuffer(GLuint buffer);
+    void deleteFramebuffer(GLuint fbo);
+    void deleteRenderbuffer(GLuint rbo);
+    void deleteTransformFeedback(GLuint transformFeedback);
 
-    angle::Result useProgram(const gl::Context *context, GLuint program);
-    angle::Result forceUseProgram(const gl::Context *context, GLuint program);
-    angle::Result bindVertexArray(const gl::Context *context,
-                                  GLuint vao,
-                                  VertexArrayStateGL *vaoState);
-    angle::Result bindBuffer(const gl::Context *context, gl::BufferBinding target, GLuint buffer);
-    angle::Result bindBufferBase(const gl::Context *context,
-                                 gl::BufferBinding target,
-                                 size_t index,
-                                 GLuint buffer);
-    angle::Result bindBufferRange(const gl::Context *context,
-                                  gl::BufferBinding target,
-                                  size_t index,
-                                  GLuint buffer,
-                                  size_t offset,
-                                  size_t size);
-    angle::Result activeTexture(const gl::Context *context, size_t unit);
-    angle::Result bindTexture(const gl::Context *context, gl::TextureType type, GLuint texture);
-    angle::Result invalidateTexture(const gl::Context *context, gl::TextureType type);
-    angle::Result bindSampler(const gl::Context *context, size_t unit, GLuint sampler);
-    angle::Result bindImageTexture(const gl::Context *context,
-                                   size_t unit,
-                                   GLuint texture,
-                                   GLint level,
-                                   GLboolean layered,
-                                   GLint layer,
-                                   GLenum access,
-                                   GLenum format);
-    angle::Result bindFramebuffer(const gl::Context *context, GLenum type, GLuint framebuffer);
-    angle::Result bindRenderbuffer(const gl::Context *context, GLenum type, GLuint renderbuffer);
-    angle::Result bindTransformFeedback(const gl::Context *context,
-                                        GLenum type,
-                                        GLuint transformFeedback);
+    void useProgram(GLuint program);
+    void forceUseProgram(GLuint program);
+    void bindVertexArray(GLuint vao, VertexArrayStateGL *vaoState);
+    void bindBuffer(gl::BufferBinding target, GLuint buffer);
+    void bindBufferBase(gl::BufferBinding target, size_t index, GLuint buffer);
+    void bindBufferRange(gl::BufferBinding target,
+                         size_t index,
+                         GLuint buffer,
+                         size_t offset,
+                         size_t size);
+    void activeTexture(size_t unit);
+    void bindTexture(gl::TextureType type, GLuint texture);
+    void invalidateTexture(gl::TextureType type);
+    void bindSampler(size_t unit, GLuint sampler);
+    void bindImageTexture(size_t unit,
+                          GLuint texture,
+                          GLint level,
+                          GLboolean layered,
+                          GLint layer,
+                          GLenum access,
+                          GLenum format);
+    void bindFramebuffer(GLenum type, GLuint framebuffer);
+    void bindRenderbuffer(GLenum type, GLuint renderbuffer);
+    void bindTransformFeedback(GLenum type, GLuint transformFeedback);
     void onTransformFeedbackStateChange();
-    angle::Result beginQuery(const gl::Context *context,
-                             gl::QueryType type,
-                             QueryGL *queryObject,
-                             GLuint queryId);
-    angle::Result endQuery(const gl::Context *context,
-                           gl::QueryType type,
-                           QueryGL *queryObject,
-                           GLuint queryId);
+    void beginQuery(gl::QueryType type, QueryGL *queryObject, GLuint queryId);
+    void endQuery(gl::QueryType type, QueryGL *queryObject, GLuint queryId);
 
     void setAttributeCurrentData(size_t index, const gl::VertexAttribCurrentValueData &data);
 
@@ -276,7 +261,7 @@
 
     void setClipDistancesEnable(const gl::State::ClipDistanceEnableBits &enables);
 
-    angle::Result pauseTransformFeedback(const gl::Context *context);
+    void pauseTransformFeedback();
     angle::Result pauseAllQueries(const gl::Context *context);
     angle::Result pauseQuery(const gl::Context *context, gl::QueryType type);
     angle::Result resumeAllQueries(const gl::Context *context);
@@ -313,12 +298,8 @@
 
     void validateState() const;
 
-    angle::Result syncFromNativeContext(const gl::Context *context,
-                                        const gl::Extensions &extensions,
-                                        ExternalContextState *state);
-    angle::Result restoreNativeContext(const gl::Context *context,
-                                       const gl::Extensions &extensions,
-                                       const ExternalContextState *state);
+    void syncFromNativeContext(const gl::Extensions &extensions, ExternalContextState *state);
+    void restoreNativeContext(const gl::Extensions &extensions, const ExternalContextState *state);
 
   private:
     void setTextureCubemapSeamlessEnabled(bool enabled);
@@ -327,14 +308,14 @@
                                         const gl::Program *program,
                                         VertexArrayGL *vao);
 
-    angle::Result updateProgramTextureBindings(const gl::Context *context);
-    angle::Result updateProgramStorageBufferBindings(const gl::Context *context);
-    angle::Result updateProgramUniformBufferBindings(const gl::Context *context);
-    angle::Result updateProgramAtomicCounterBufferBindings(const gl::Context *context);
-    angle::Result updateProgramImageBindings(const gl::Context *context);
+    void updateProgramTextureBindings(const gl::Context *context);
+    void updateProgramStorageBufferBindings(const gl::Context *context);
+    void updateProgramUniformBufferBindings(const gl::Context *context);
+    void updateProgramAtomicCounterBufferBindings(const gl::Context *context);
+    void updateProgramImageBindings(const gl::Context *context);
 
-    angle::Result updateDispatchIndirectBufferBinding(const gl::Context *context);
-    angle::Result updateDrawIndirectBufferBinding(const gl::Context *context);
+    void updateDispatchIndirectBufferBinding(const gl::Context *context);
+    void updateDrawIndirectBufferBinding(const gl::Context *context);
 
     template <typename T>
     void get(GLenum name, T *value);
@@ -342,8 +323,8 @@
     template <size_t n, typename T>
     void get(GLenum name, std::array<T, n> *values);
 
-    angle::Result syncSamplersState(const gl::Context *context);
-    angle::Result syncTransformFeedbackState(const gl::Context *context);
+    void syncSamplersState(const gl::Context *context);
+    void syncTransformFeedbackState(const gl::Context *context);
 
     void updateMultiviewBaseViewLayerIndexUniformImpl(
         const gl::Program *program,
@@ -355,9 +336,8 @@
 
     void syncFramebufferFromNativeContext(const gl::Extensions &extensions,
                                           ExternalContextState *state);
-    angle::Result restoreFramebufferNativeContext(const gl::Context *context,
-                                                  const gl::Extensions &extensions,
-                                                  const ExternalContextState *state);
+    void restoreFramebufferNativeContext(const gl::Extensions &extensions,
+                                         const ExternalContextState *state);
 
     void syncPixelPackUnpackFromNativeContext(const gl::Extensions &extensions,
                                               ExternalContextState *state);
@@ -371,22 +351,18 @@
 
     void syncBufferBindingsFromNativeContext(const gl::Extensions &extensions,
                                              ExternalContextState *state);
-    angle::Result restoreBufferBindingsNativeContext(const gl::Context *context,
-                                                     const gl::Extensions &extensions,
-                                                     const ExternalContextState *state);
+    void restoreBufferBindingsNativeContext(const gl::Extensions &extensions,
+                                            const ExternalContextState *state);
 
-    angle::Result syncTextureUnitsFromNativeContext(const gl::Context *context,
-                                                    const gl::Extensions &extensions,
-                                                    ExternalContextState *state);
-    angle::Result restoreTextureUnitsNativeContext(const gl::Context *context,
-                                                   const gl::Extensions &extensions,
-                                                   const ExternalContextState *state);
+    void syncTextureUnitsFromNativeContext(const gl::Extensions &extensions,
+                                           ExternalContextState *state);
+    void restoreTextureUnitsNativeContext(const gl::Extensions &extensions,
+                                          const ExternalContextState *state);
 
     void syncVertexArraysFromNativeContext(const gl::Extensions &extensions,
                                            ExternalContextState *state);
-    angle::Result restoreVertexArraysNativeContext(const gl::Context *context,
-                                                   const gl::Extensions &extensions,
-                                                   const ExternalContextState *state);
+    void restoreVertexArraysNativeContext(const gl::Extensions &extensions,
+                                          const ExternalContextState *state);
 
     const FunctionsGL *mFunctions;
     const angle::FeaturesGL &mFeatures;
diff --git a/src/libANGLE/renderer/gl/TextureGL.cpp b/src/libANGLE/renderer/gl/TextureGL.cpp
index ee73d3c..f871edf 100644
--- a/src/libANGLE/renderer/gl/TextureGL.cpp
+++ b/src/libANGLE/renderer/gl/TextureGL.cpp
@@ -153,7 +153,7 @@
 {
     GetImplAs<ContextGL>(context)->flushIfNecessaryBeforeDeleteTextures();
     StateManagerGL *stateManager = GetStateManagerGL(context);
-    (void)stateManager->deleteTexture(context, mTextureID);
+    stateManager->deleteTexture(mTextureID);
     mTextureID = 0;
 }
 
@@ -238,7 +238,7 @@
     nativegl::TexImageFormat texImageFormat =
         nativegl::GetTexImageFormat(functions, features, internalFormat, format, type);
 
-    ANGLE_TRY(stateManager->bindTexture(context, getType(), mTextureID));
+    stateManager->bindTexture(getType(), mTextureID);
 
     if (features.resetTexImage2DBaseLevel.enabled)
     {
@@ -330,7 +330,7 @@
     ASSERT(getLevelInfo(target, level).lumaWorkaround.enabled ==
            GetLevelInfo(features, format, texSubImageFormat.format).lumaWorkaround.enabled);
 
-    ANGLE_TRY(stateManager->bindTexture(context, getType(), mTextureID));
+    stateManager->bindTexture(getType(), mTextureID);
     if (features.unpackOverlappingRowsSeparatelyUnpackBuffer.enabled && unpackBuffer &&
         unpack.rowLength != 0 && unpack.rowLength < area.width)
     {
@@ -578,7 +578,7 @@
     nativegl::CompressedTexImageFormat compressedTexImageFormat =
         nativegl::GetCompressedTexImageFormat(functions, features, internalFormat);
 
-    ANGLE_TRY(stateManager->bindTexture(context, getType(), mTextureID));
+    stateManager->bindTexture(getType(), mTextureID);
     if (nativegl::UseTexImage2D(getType()))
     {
         ASSERT(size.depth == 1);
@@ -625,7 +625,7 @@
     nativegl::CompressedTexSubImageFormat compressedTexSubImageFormat =
         nativegl::GetCompressedSubTexImageFormat(functions, features, format);
 
-    ANGLE_TRY(stateManager->bindTexture(context, getType(), mTextureID));
+    stateManager->bindTexture(getType(), mTextureID);
     if (nativegl::UseTexImage2D(getType()))
     {
         ASSERT(area.z == 0 && area.depth == 1);
@@ -668,7 +668,7 @@
     nativegl::CopyTexImageImageFormat copyTexImageFormat =
         nativegl::GetCopyTexImageImageFormat(functions, features, internalFormat, type);
 
-    ANGLE_TRY(stateManager->bindTexture(context, getType(), mTextureID));
+    stateManager->bindTexture(getType(), mTextureID);
 
     const FramebufferGL *sourceFramebufferGL = GetImplAs<FramebufferGL>(source);
     gl::Extents fbSize = sourceFramebufferGL->getState().getReadAttachment()->getSize();
@@ -758,8 +758,8 @@
         else
         {
             ASSERT(nativegl::UseTexImage2D(getType()));
-            ANGLE_TRY(stateManager->bindFramebuffer(context, GL_READ_FRAMEBUFFER,
-                                                    sourceFramebufferGL->getFramebufferID()));
+            stateManager->bindFramebuffer(GL_READ_FRAMEBUFFER,
+                                          sourceFramebufferGL->getFramebufferID());
             if (features.emulateCopyTexImage2DFromRenderbuffers.enabled && readBuffer &&
                 readBuffer->type() == GL_RENDERBUFFER)
             {
@@ -822,11 +822,10 @@
     gl::Offset clippedOffset(destOffset.x + clippedArea.x - sourceArea.x,
                              destOffset.y + clippedArea.y - sourceArea.y, destOffset.z);
 
-    ANGLE_TRY(stateManager->bindTexture(context, getType(), mTextureID));
+    stateManager->bindTexture(getType(), mTextureID);
     GLenum framebufferTarget =
         stateManager->getHasSeparateFramebufferBindings() ? GL_READ_FRAMEBUFFER : GL_FRAMEBUFFER;
-    ANGLE_TRY(stateManager->bindFramebuffer(context, framebufferTarget,
-                                            sourceFramebufferGL->getFramebufferID()));
+    stateManager->bindFramebuffer(framebufferTarget, sourceFramebufferGL->getFramebufferID());
 
     const LevelInfoGL &levelInfo = getLevelInfo(target, level);
     if (levelInfo.lumaWorkaround.enabled)
@@ -1025,7 +1024,7 @@
     nativegl::TexStorageFormat texStorageFormat =
         nativegl::GetTexStorageFormat(functions, features, internalFormat);
 
-    ANGLE_TRY(stateManager->bindTexture(context, getType(), mTextureID));
+    stateManager->bindTexture(getType(), mTextureID);
     if (nativegl::UseTexImage2D(getType()))
     {
         ASSERT(size.depth == 1);
@@ -1039,7 +1038,7 @@
         else
         {
             // Make sure no pixel unpack buffer is bound
-            ANGLE_TRY(stateManager->bindBuffer(context, gl::BufferBinding::PixelUnpack, 0));
+            stateManager->bindBuffer(gl::BufferBinding::PixelUnpack, 0);
 
             const gl::InternalFormat &internalFormatInfo =
                 gl::GetSizedInternalFormatInfo(internalFormat);
@@ -1143,7 +1142,7 @@
         else
         {
             // Make sure no pixel unpack buffer is bound
-            ANGLE_TRY(stateManager->bindBuffer(context, gl::BufferBinding::PixelUnpack, 0));
+            stateManager->bindBuffer(gl::BufferBinding::PixelUnpack, 0);
 
             // Internal format must be sized
             ASSERT(internalFormatInfo.sized);
@@ -1225,7 +1224,7 @@
     nativegl::TexStorageFormat texStorageFormat =
         nativegl::GetTexStorageFormat(functions, features, internalformat);
 
-    ANGLE_TRY(stateManager->bindTexture(context, getType(), mTextureID));
+    stateManager->bindTexture(getType(), mTextureID);
 
     if (nativegl::UseTexImage2D(getType()))
     {
@@ -1286,7 +1285,7 @@
     nativegl::TexStorageFormat texStorageFormat =
         nativegl::GetTexStorageFormat(functions, features, internalFormat);
 
-    ANGLE_TRY(stateManager->bindTexture(context, getType(), mTextureID));
+    stateManager->bindTexture(getType(), mTextureID);
     if (nativegl::UseTexImage2D(getType()))
     {
         ANGLE_GL_TRY_ALWAYS_CHECK(
@@ -1332,7 +1331,7 @@
     const gl::ImageDesc &baseLevelDesc                = mState.getBaseLevelDesc();
     const gl::InternalFormat &baseLevelInternalFormat = *baseLevelDesc.format.info;
 
-    ANGLE_TRY(stateManager->bindTexture(context, getType(), mTextureID));
+    stateManager->bindTexture(getType(), mTextureID);
     if (baseLevelInternalFormat.colorEncoding == GL_SRGB &&
         features.encodeAndDecodeSRGBForGenerateMipmap.enabled && getType() == gl::TextureType::_2D)
     {
@@ -1351,7 +1350,7 @@
                 mState.getImageDesc(gl::TextureTarget::_2D, effectiveBaseLevel + levelIdx);
 
             // Make sure no pixel unpack buffer is bound
-            ANGLE_TRY(stateManager->bindBuffer(context, gl::BufferBinding::PixelUnpack, 0));
+            stateManager->bindBuffer(gl::BufferBinding::PixelUnpack, 0);
 
             if (levelDesc.size != levelSize || *levelDesc.format.info != baseLevelInternalFormat)
             {
@@ -1386,7 +1385,7 @@
     StateManagerGL *stateManager = GetStateManagerGL(context);
 
     // Make sure this texture is bound
-    ANGLE_TRY(stateManager->bindTexture(context, getType(), mTextureID));
+    stateManager->bindTexture(getType(), mTextureID);
 
     SurfaceGL *surfaceGL = GetImplAs<SurfaceGL>(surface);
 
@@ -1438,7 +1437,7 @@
     const FunctionsGL *functions = GetFunctionsGL(context);
     StateManagerGL *stateManager = GetStateManagerGL(context);
 
-    ANGLE_TRY(stateManager->bindTexture(context, getType(), mTextureID));
+    stateManager->bindTexture(getType(), mTextureID);
 
     gl::Texture::DirtyBits syncDirtyBits = dirtyBits | mLocalDirtyBits;
     if (dirtyBits[gl::Texture::DIRTY_BIT_BASE_LEVEL] || dirtyBits[gl::Texture::DIRTY_BIT_MAX_LEVEL])
@@ -1633,7 +1632,7 @@
         // Signal to the GL layer that the Impl has dirty bits.
         onStateChange(angle::SubjectMessage::DirtyBitsFlagged);
 
-        ANGLE_TRY(stateManager->bindTexture(context, getType(), mTextureID));
+        stateManager->bindTexture(getType(), mTextureID);
         ANGLE_GL_TRY(context, functions->texParameteri(ToGLenum(getType()), GL_TEXTURE_BASE_LEVEL,
                                                        baseLevel));
     }
@@ -1653,7 +1652,7 @@
         // Signal to the GL layer that the Impl has dirty bits.
         onStateChange(angle::SubjectMessage::DirtyBitsFlagged);
 
-        ANGLE_TRY(stateManager->bindTexture(context, getType(), mTextureID));
+        stateManager->bindTexture(getType(), mTextureID);
         ANGLE_GL_TRY(context,
                      functions->texParameteri(ToGLenum(getType()), GL_TEXTURE_MAX_LEVEL, maxLevel));
     }
@@ -1672,7 +1671,7 @@
         // Signal to the GL layer that the Impl has dirty bits.
         onStateChange(angle::SubjectMessage::DirtyBitsFlagged);
 
-        ANGLE_TRY(stateManager->bindTexture(context, getType(), mTextureID));
+        stateManager->bindTexture(getType(), mTextureID);
         ANGLE_GL_TRY(context,
                      functions->texParameteri(ToGLenum(getType()), GL_TEXTURE_MIN_FILTER, filter));
     }
@@ -1690,7 +1689,7 @@
         // Signal to the GL layer that the Impl has dirty bits.
         onStateChange(angle::SubjectMessage::DirtyBitsFlagged);
 
-        ANGLE_TRY(stateManager->bindTexture(context, getType(), mTextureID));
+        stateManager->bindTexture(getType(), mTextureID);
         ANGLE_GL_TRY(context,
                      functions->texParameteri(ToGLenum(getType()), GL_TEXTURE_MAG_FILTER, filter));
     }
@@ -1716,7 +1715,7 @@
         // Signal to the GL layer that the Impl has dirty bits.
         onStateChange(angle::SubjectMessage::DirtyBitsFlagged);
 
-        ANGLE_TRY(stateManager->bindTexture(context, getType(), mTextureID));
+        stateManager->bindTexture(getType(), mTextureID);
         if (functions->standard == STANDARD_GL_ES)
         {
             ANGLE_GL_TRY(context, functions->texParameteri(ToGLenum(getType()),
@@ -1779,11 +1778,11 @@
     const FunctionsGL *functions = GetFunctionsGL(context);
     StateManagerGL *stateManager = GetStateManagerGL(context);
 
-    ANGLE_TRY(stateManager->bindTexture(context, getType(), mTextureID));
-    ANGLE_TRY(stateManager->deleteTexture(context, mTextureID));
+    stateManager->bindTexture(getType(), mTextureID);
+    stateManager->deleteTexture(mTextureID);
 
-    ANGLE_GL_TRY(context, functions->genTextures(1, &mTextureID));
-    ANGLE_TRY(stateManager->bindTexture(context, getType(), mTextureID));
+    functions->genTextures(1, &mTextureID);
+    stateManager->bindTexture(getType(), mTextureID);
 
     mLevelInfo.clear();
     mLevelInfo.resize(GetMaxLevelInfoCountForTextureType(getType()));
@@ -2029,9 +2028,9 @@
     ANGLE_TRY(stateManager->setPixelUnpackState(context, unpackState));
 
     GLuint prevUnpackBuffer = stateManager->getBufferID(gl::BufferBinding::PixelUnpack);
-    ANGLE_TRY(stateManager->bindBuffer(context, gl::BufferBinding::PixelUnpack, 0));
+    stateManager->bindBuffer(gl::BufferBinding::PixelUnpack, 0);
 
-    ANGLE_TRY(stateManager->bindTexture(context, getType(), mTextureID));
+    stateManager->bindTexture(getType(), mTextureID);
     if (internalFormatInfo.compressed)
     {
         nativegl::CompressedTexSubImageFormat nativeSubImageFormat =
@@ -2110,7 +2109,7 @@
     // glTexImage call, we need to make sure that the texture data to be uploaded later has the
     // expected unpack state.
     ANGLE_TRY(stateManager->setPixelUnpackState(context, context->getState().getUnpackState()));
-    ANGLE_TRY(stateManager->bindBuffer(context, gl::BufferBinding::PixelUnpack, prevUnpackBuffer));
+    stateManager->bindBuffer(gl::BufferBinding::PixelUnpack, prevUnpackBuffer);
 
     return angle::Result::Continue;
 }
@@ -2121,7 +2120,7 @@
     StateManagerGL *stateManager = GetStateManagerGL(context);
 
     ASSERT(getType() == gl::TextureType::External);
-    (void)stateManager->bindTexture(context, getType(), mTextureID);
+    stateManager->bindTexture(getType(), mTextureID);
 
     GLint result = 0;
     functions->getTexParameteriv(ToGLenum(gl::NonCubeTextureTypeToTarget(getType())),
diff --git a/src/libANGLE/renderer/gl/TransformFeedbackGL.cpp b/src/libANGLE/renderer/gl/TransformFeedbackGL.cpp
index 26ca39c..2557311 100644
--- a/src/libANGLE/renderer/gl/TransformFeedbackGL.cpp
+++ b/src/libANGLE/renderer/gl/TransformFeedbackGL.cpp
@@ -36,7 +36,7 @@
 
 TransformFeedbackGL::~TransformFeedbackGL()
 {
-    (void)mStateManager->deleteTransformFeedback(nullptr, mTransformFeedbackID);
+    mStateManager->deleteTransformFeedback(mTransformFeedbackID);
     mTransformFeedbackID = 0;
 }
 
@@ -52,7 +52,7 @@
     mStateManager->onTransformFeedbackStateChange();
 
     // Immediately end the transform feedback so that the results are visible.
-    ANGLE_TRY(syncActiveState(context, false, gl::PrimitiveMode::InvalidEnum));
+    syncActiveState(context, false, gl::PrimitiveMode::InvalidEnum);
     return angle::Result::Continue;
 }
 
@@ -60,7 +60,7 @@
 {
     mStateManager->onTransformFeedbackStateChange();
 
-    ANGLE_TRY(syncPausedState(context, true));
+    syncPausedState(true);
     return angle::Result::Continue;
 }
 
@@ -79,8 +79,7 @@
 
     // Directly bind buffer (not through the StateManager methods) because the buffer bindings are
     // tracked per transform feedback object
-    ANGLE_TRY(
-        mStateManager->bindTransformFeedback(context, GL_TRANSFORM_FEEDBACK, mTransformFeedbackID));
+    mStateManager->bindTransformFeedback(GL_TRANSFORM_FEEDBACK, mTransformFeedbackID);
     if (binding.get() != nullptr)
     {
         const BufferGL *bufferGL = GetImplAs<BufferGL>(binding.get());
@@ -119,22 +118,21 @@
     return mTransformFeedbackID;
 }
 
-angle::Result TransformFeedbackGL::syncActiveState(const gl::Context *context,
-                                                   bool active,
-                                                   gl::PrimitiveMode primitiveMode) const
+void TransformFeedbackGL::syncActiveState(const gl::Context *context,
+                                          bool active,
+                                          gl::PrimitiveMode primitiveMode) const
 {
     if (mIsActive != active)
     {
         mIsActive = active;
         mIsPaused = false;
 
-        ANGLE_TRY(mStateManager->bindTransformFeedback(context, GL_TRANSFORM_FEEDBACK,
-                                                       mTransformFeedbackID));
+        mStateManager->bindTransformFeedback(GL_TRANSFORM_FEEDBACK, mTransformFeedbackID);
         if (mIsActive)
         {
             ASSERT(primitiveMode != gl::PrimitiveMode::InvalidEnum);
             mActiveProgram = GetImplAs<ProgramGL>(mState.getBoundProgram())->getProgramID();
-            ANGLE_TRY(mStateManager->useProgram(context, mActiveProgram));
+            mStateManager->useProgram(mActiveProgram);
             mFunctions->beginTransformFeedback(gl::ToGLenum(primitiveMode));
         }
         else
@@ -143,23 +141,21 @@
             // when calling EndTransformFeedback. We avoid the ambiguity by always re-binding the
             // program associated with this transform feedback.
             GLuint previousProgram = mStateManager->getProgramID();
-            ANGLE_TRY(mStateManager->useProgram(context, mActiveProgram));
+            mStateManager->useProgram(mActiveProgram);
             mFunctions->endTransformFeedback();
             // Restore the current program if we changed it.
-            ANGLE_TRY(mStateManager->useProgram(context, previousProgram));
+            mStateManager->useProgram(previousProgram);
         }
     }
-    return angle::Result::Continue;
 }
 
-angle::Result TransformFeedbackGL::syncPausedState(const gl::Context *context, bool paused) const
+void TransformFeedbackGL::syncPausedState(bool paused) const
 {
     if (mIsActive && mIsPaused != paused)
     {
         mIsPaused = paused;
 
-        ANGLE_TRY(mStateManager->bindTransformFeedback(context, GL_TRANSFORM_FEEDBACK,
-                                                       mTransformFeedbackID));
+        mStateManager->bindTransformFeedback(GL_TRANSFORM_FEEDBACK, mTransformFeedbackID);
         if (mIsPaused)
         {
             mFunctions->pauseTransformFeedback();
@@ -169,6 +165,5 @@
             mFunctions->resumeTransformFeedback();
         }
     }
-    return angle::Result::Continue;
 }
 }  // namespace rx
diff --git a/src/libANGLE/renderer/gl/TransformFeedbackGL.h b/src/libANGLE/renderer/gl/TransformFeedbackGL.h
index 29bdf58..f723662 100644
--- a/src/libANGLE/renderer/gl/TransformFeedbackGL.h
+++ b/src/libANGLE/renderer/gl/TransformFeedbackGL.h
@@ -36,10 +36,10 @@
 
     GLuint getTransformFeedbackID() const;
 
-    angle::Result syncActiveState(const gl::Context *context,
-                                  bool active,
-                                  gl::PrimitiveMode primitiveMode) const;
-    angle::Result syncPausedState(const gl::Context *context, bool paused) const;
+    void syncActiveState(const gl::Context *context,
+                         bool active,
+                         gl::PrimitiveMode primitiveMode) const;
+    void syncPausedState(bool paused) const;
 
   private:
     const FunctionsGL *mFunctions;
diff --git a/src/libANGLE/renderer/gl/VertexArrayGL.cpp b/src/libANGLE/renderer/gl/VertexArrayGL.cpp
index 742035f..459bf08 100644
--- a/src/libANGLE/renderer/gl/VertexArrayGL.cpp
+++ b/src/libANGLE/renderer/gl/VertexArrayGL.cpp
@@ -130,7 +130,7 @@
 
     if (mOwnsNativeState)
     {
-        (void)stateManager->deleteVertexArray(context, mVertexArrayID);
+        stateManager->deleteVertexArray(mVertexArrayID);
     }
     mVertexArrayID   = 0;
     mAppliedNumViews = 1;
@@ -141,11 +141,11 @@
         binding.set(context, nullptr);
     }
 
-    (void)stateManager->deleteBuffer(context, mStreamingElementArrayBuffer);
+    stateManager->deleteBuffer(mStreamingElementArrayBuffer);
     mStreamingElementArrayBufferSize = 0;
     mStreamingElementArrayBuffer     = 0;
 
-    (void)stateManager->deleteBuffer(context, mStreamingArrayBuffer);
+    stateManager->deleteBuffer(mStreamingArrayBuffer);
     mStreamingArrayBufferSize = 0;
     mStreamingArrayBuffer     = 0;
 
@@ -174,8 +174,7 @@
         GLuint elementArrayBufferId = GetNativeBufferID(elementArrayBuffer);
 
         StateManagerGL *stateManager = GetStateManagerGL(context);
-        ANGLE_TRY(stateManager->bindBuffer(context, gl::BufferBinding::ElementArray,
-                                           elementArrayBufferId));
+        stateManager->bindBuffer(gl::BufferBinding::ElementArray, elementArrayBufferId);
         mElementArrayBuffer.set(context, elementArrayBuffer);
         mNativeState->elementArrayBuffer = elementArrayBufferId;
     }
@@ -309,10 +308,9 @@
             mStreamingElementArrayBufferSize = 0;
         }
 
-        ANGLE_TRY(stateManager->bindVertexArray(context, mVertexArrayID, mNativeState));
+        stateManager->bindVertexArray(mVertexArrayID, mNativeState);
 
-        ANGLE_TRY(stateManager->bindBuffer(context, gl::BufferBinding::ElementArray,
-                                           mStreamingElementArrayBuffer));
+        stateManager->bindBuffer(gl::BufferBinding::ElementArray, mStreamingElementArrayBuffer);
         mElementArrayBuffer.set(context, nullptr);
         mNativeState->elementArrayBuffer = mStreamingElementArrayBuffer;
 
@@ -407,7 +405,7 @@
         attribsToStream.count() * maxAttributeDataSize * indexRange.start;
     const size_t requiredBufferSize = streamingDataSize + bufferEmptySpace;
 
-    ANGLE_TRY(stateManager->bindBuffer(context, gl::BufferBinding::Array, mStreamingArrayBuffer));
+    stateManager->bindBuffer(gl::BufferBinding::Array, mStreamingArrayBuffer);
     if (requiredBufferSize > mStreamingArrayBufferSize)
     {
         ANGLE_GL_TRY(context, functions->bufferData(GL_ARRAY_BUFFER, requiredBufferSize, nullptr,
@@ -415,7 +413,7 @@
         mStreamingArrayBufferSize = requiredBufferSize;
     }
 
-    ANGLE_TRY(stateManager->bindVertexArray(context, mVertexArrayID, mNativeState));
+    stateManager->bindVertexArray(mVertexArrayID, mNativeState);
 
     // Unmapping a buffer can return GL_FALSE to indicate that the system has corrupted the data
     // somehow (such as by a screen change), retry writing the data a few times and return
@@ -487,8 +485,7 @@
                 {
                     needsUnmapAndRebindStreamingAttributeBuffer = true;
                     const auto buffer = GetImplAs<BufferGL>(bindingBufferPointer);
-                    ANGLE_TRY(stateManager->bindBuffer(context, gl::BufferBinding::Array,
-                                                       buffer->getBufferID()));
+                    stateManager->bindBuffer(gl::BufferBinding::Array, buffer->getBufferID());
                     // The workaround is only for latest Mac Intel so glMapBufferRange should be
                     // supported
                     ASSERT(CanMapBufferForRead(functions));
@@ -524,8 +521,7 @@
             if (needsUnmapAndRebindStreamingAttributeBuffer)
             {
                 ANGLE_GL_TRY(context, functions->unmapBuffer(GL_ARRAY_BUFFER));
-                ANGLE_TRY(stateManager->bindBuffer(context, gl::BufferBinding::Array,
-                                                   mStreamingArrayBuffer));
+                stateManager->bindBuffer(gl::BufferBinding::Array, mStreamingArrayBuffer);
             }
 
             // Compute where the 0-index vertex would be.
@@ -578,7 +574,7 @@
 
     StateManagerGL *stateManager = GetStateManagerGL(context);
 
-    ANGLE_TRY(stateManager->bindVertexArray(context, mVertexArrayID, mNativeState));
+    stateManager->bindVertexArray(mVertexArrayID, mNativeState);
 
     const auto &attribs  = mState.getVertexAttributes();
     const auto &bindings = mState.getVertexBindings();
@@ -589,8 +585,7 @@
 
         const auto &binding = bindings[attrib.bindingIndex];
         const auto buffer   = GetImplAs<BufferGL>(binding.getBuffer().get());
-        ANGLE_TRY(
-            stateManager->bindBuffer(context, gl::BufferBinding::Array, buffer->getBufferID()));
+        stateManager->bindBuffer(gl::BufferBinding::Array, buffer->getBufferID());
 
         ANGLE_TRY(callVertexAttribPointer(context, static_cast<GLuint>(idx), attrib,
                                           static_cast<GLsizei>(binding.getStride()),
@@ -693,7 +688,7 @@
 
     StateManagerGL *stateManager = GetStateManagerGL(context);
     GLuint bufferId              = GetNativeBufferID(arrayBuffer);
-    ANGLE_TRY(stateManager->bindBuffer(context, gl::BufferBinding::Array, bufferId));
+    stateManager->bindBuffer(gl::BufferBinding::Array, bufferId);
     ANGLE_TRY(callVertexAttribPointer(context, static_cast<GLuint>(attribIndex), attrib,
                                       binding.getStride(), binding.getOffset()));
 
@@ -954,7 +949,7 @@
                                        gl::VertexArray::DirtyBindingBitsArray *bindingBits)
 {
     StateManagerGL *stateManager = GetStateManagerGL(context);
-    ANGLE_TRY(stateManager->bindVertexArray(context, mVertexArrayID, mNativeState));
+    stateManager->bindVertexArray(mVertexArrayID, mNativeState);
 
     for (size_t dirtyBit : dirtyBits)
     {
@@ -985,7 +980,7 @@
     if (numViews != mAppliedNumViews)
     {
         StateManagerGL *stateManager = GetStateManagerGL(context);
-        ANGLE_TRY(stateManager->bindVertexArray(context, mVertexArrayID, mNativeState));
+        stateManager->bindVertexArray(mVertexArrayID, mNativeState);
         mAppliedNumViews = numViews;
         for (size_t index = 0u; index < mNativeState->bindings.size(); ++index)
         {
diff --git a/src/libANGLE/renderer/gl/cgl/IOSurfaceSurfaceCGL.cpp b/src/libANGLE/renderer/gl/cgl/IOSurfaceSurfaceCGL.cpp
index 5020e11..a2b44d2 100644
--- a/src/libANGLE/renderer/gl/cgl/IOSurfaceSurfaceCGL.cpp
+++ b/src/libANGLE/renderer/gl/cgl/IOSurfaceSurfaceCGL.cpp
@@ -160,8 +160,7 @@
 
     const TextureGL *textureGL = GetImplAs<TextureGL>(texture);
     GLuint textureID           = textureGL->getTextureID();
-    ANGLE_TRY(angle::ResultToEGL(
-        stateManager->bindTexture(context, gl::TextureType::Rectangle, textureID)));
+    stateManager->bindTexture(gl::TextureType::Rectangle, textureID);
 
     const auto &format = kIOSurfaceFormats[mFormatIndex];
     CGLError error     = CGLTexImageIOSurface2D(
@@ -292,7 +291,7 @@
     GLuint texture = 0;
     functions->genTextures(1, &texture);
     const auto &format = kIOSurfaceFormats[mFormatIndex];
-    ANGLE_SWALLOW_ERR(stateManager->bindTexture(context, gl::TextureType::Rectangle, texture));
+    stateManager->bindTexture(gl::TextureType::Rectangle, texture);
     CGLError error = CGLTexImageIOSurface2D(
         mCGLContext, GL_TEXTURE_RECTANGLE, format.nativeInternalFormat, mWidth, mHeight,
         format.nativeFormat, format.nativeType, mIOSurface, mPlane);
@@ -309,8 +308,8 @@
 
     GLuint framebuffer = 0;
     functions->genFramebuffers(1, &framebuffer);
-    ANGLE_SWALLOW_ERR(stateManager->bindFramebuffer(context, GL_FRAMEBUFFER, framebuffer));
-    ANGLE_SWALLOW_ERR(stateManager->bindTexture(context, gl::TextureType::Rectangle, texture));
+    stateManager->bindFramebuffer(GL_FRAMEBUFFER, framebuffer);
+    stateManager->bindTexture(gl::TextureType::Rectangle, texture);
     functions->framebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_RECTANGLE,
                                     texture, 0);
 
diff --git a/src/libANGLE/renderer/gl/cgl/PbufferSurfaceCGL.cpp b/src/libANGLE/renderer/gl/cgl/PbufferSurfaceCGL.cpp
index 3ab75c4..bd72954 100644
--- a/src/libANGLE/renderer/gl/cgl/PbufferSurfaceCGL.cpp
+++ b/src/libANGLE/renderer/gl/cgl/PbufferSurfaceCGL.cpp
@@ -50,13 +50,11 @@
 egl::Error PbufferSurfaceCGL::initialize(const egl::Display *display)
 {
     mFunctions->genRenderbuffers(1, &mColorRenderbuffer);
-    ANGLE_TRY(angle::ResultToEGL(
-        mStateManager->bindRenderbuffer(nullptr, GL_RENDERBUFFER, mColorRenderbuffer)));
+    mStateManager->bindRenderbuffer(GL_RENDERBUFFER, mColorRenderbuffer);
     mFunctions->renderbufferStorage(GL_RENDERBUFFER, GL_RGBA8, mWidth, mHeight);
 
     mFunctions->genRenderbuffers(1, &mDSRenderbuffer);
-    ANGLE_TRY(angle::ResultToEGL(
-        mStateManager->bindRenderbuffer(nullptr, GL_RENDERBUFFER, mDSRenderbuffer)));
+    mStateManager->bindRenderbuffer(GL_RENDERBUFFER, mDSRenderbuffer);
     mFunctions->renderbufferStorage(GL_RENDERBUFFER, GL_DEPTH24_STENCIL8, mWidth, mHeight);
 
     return egl::NoError();
@@ -132,7 +130,7 @@
 
     GLuint framebuffer = 0;
     functions->genFramebuffers(1, &framebuffer);
-    ANGLE_SWALLOW_ERR(stateManager->bindFramebuffer(context, GL_FRAMEBUFFER, framebuffer));
+    stateManager->bindFramebuffer(GL_FRAMEBUFFER, framebuffer);
     functions->framebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER,
                                        mColorRenderbuffer);
     functions->framebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_STENCIL_ATTACHMENT, GL_RENDERBUFFER,
diff --git a/src/libANGLE/renderer/gl/cgl/WindowSurfaceCGL.mm b/src/libANGLE/renderer/gl/cgl/WindowSurfaceCGL.mm
index b69d762..2189468 100644
--- a/src/libANGLE/renderer/gl/cgl/WindowSurfaceCGL.mm
+++ b/src/libANGLE/renderer/gl/cgl/WindowSurfaceCGL.mm
@@ -171,7 +171,7 @@
 
     if (mDSRenderbuffer != 0)
     {
-        ANGLE_SWALLOW_ERR(mStateManager->deleteRenderbuffer(nullptr, mDSRenderbuffer));
+        mStateManager->deleteRenderbuffer(mDSRenderbuffer);
         mDSRenderbuffer = 0;
     }
 
@@ -186,8 +186,7 @@
     {
         if (mSwapState.textures[i].texture != 0)
         {
-            ANGLE_SWALLOW_ERR(
-                mStateManager->deleteTexture(nullptr, mSwapState.textures[i].texture));
+            mStateManager->deleteTexture(mSwapState.textures[i].texture);
             mSwapState.textures[i].texture = 0;
         }
     }
@@ -203,8 +202,7 @@
     for (size_t i = 0; i < ArraySize(mSwapState.textures); ++i)
     {
         mFunctions->genTextures(1, &mSwapState.textures[i].texture);
-        ANGLE_SWALLOW_ERR(mStateManager->bindTexture(nullptr, gl::TextureType::_2D,
-                                                     mSwapState.textures[i].texture));
+        mStateManager->bindTexture(gl::TextureType::_2D, mSwapState.textures[i].texture);
         mFunctions->texImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA,
                                GL_UNSIGNED_BYTE, nullptr);
         mSwapState.textures[i].width  = width;
@@ -222,7 +220,7 @@
     [mSwapLayer setContentsScale:[mLayer contentsScale]];
 
     mFunctions->genRenderbuffers(1, &mDSRenderbuffer);
-    ANGLE_SWALLOW_ERR(mStateManager->bindRenderbuffer(nullptr, GL_RENDERBUFFER, mDSRenderbuffer));
+    mStateManager->bindRenderbuffer(GL_RENDERBUFFER, mDSRenderbuffer);
     mFunctions->renderbufferStorage(GL_RENDERBUFFER, GL_DEPTH24_STENCIL8, width, height);
 
     return egl::Error(EGL_SUCCESS);
@@ -253,13 +251,11 @@
 
     if (texture.width != width || texture.height != height)
     {
-        ANGLE_TRY(angle::ResultToEGL(
-            stateManager->bindTexture(context, gl::TextureType::_2D, texture.texture)));
+        stateManager->bindTexture(gl::TextureType::_2D, texture.texture);
         functions->texImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA,
                               GL_UNSIGNED_BYTE, nullptr);
 
-        ANGLE_TRY(angle::ResultToEGL(
-            stateManager->bindRenderbuffer(context, GL_RENDERBUFFER, mDSRenderbuffer)));
+        stateManager->bindRenderbuffer(GL_RENDERBUFFER, mDSRenderbuffer);
         functions->renderbufferStorage(GL_RENDERBUFFER, GL_DEPTH24_STENCIL8, width, height);
 
         texture.width  = width;
@@ -267,8 +263,7 @@
     }
 
     FramebufferGL *framebufferGL = GetImplAs<FramebufferGL>(context->getFramebuffer({0}));
-    ANGLE_TRY(angle::ResultToEGL(
-        stateManager->bindFramebuffer(context, GL_FRAMEBUFFER, framebufferGL->getFramebufferID())));
+    stateManager->bindFramebuffer(GL_FRAMEBUFFER, framebufferGL->getFramebufferID());
     functions->framebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D,
                                     mSwapState.beingRendered->texture, 0);
 
@@ -339,7 +334,7 @@
 
     GLuint framebuffer = 0;
     functions->genFramebuffers(1, &framebuffer);
-    ANGLE_SWALLOW_ERR(stateManager->bindFramebuffer(context, GL_FRAMEBUFFER, framebuffer));
+    stateManager->bindFramebuffer(GL_FRAMEBUFFER, framebuffer);
     functions->framebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D,
                                     mSwapState.beingRendered->texture, 0);
     functions->framebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_STENCIL_ATTACHMENT, GL_RENDERBUFFER,
diff --git a/src/libANGLE/renderer/gl/egl/ContextEGL.cpp b/src/libANGLE/renderer/gl/egl/ContextEGL.cpp
index 1a869b5..1e6b01d 100644
--- a/src/libANGLE/renderer/gl/egl/ContextEGL.cpp
+++ b/src/libANGLE/renderer/gl/egl/ContextEGL.cpp
@@ -32,8 +32,7 @@
             mExtState->textureBindings.resize(
                 static_cast<size_t>(caps.maxCombinedTextureImageUnits));
         }
-        ANGLE_TRY(getStateManager()->syncFromNativeContext(context, getNativeExtensions(),
-                                                           mExtState.get()));
+        getStateManager()->syncFromNativeContext(getNativeExtensions(), mExtState.get());
 
         // Use current FBO as the default framebuffer when the external context is current.
         gl::Framebuffer *framebuffer = mState.getDefaultFramebuffer();
@@ -49,8 +48,7 @@
     {
         ASSERT(context->isExternal());
         ASSERT(mExtState);
-        ANGLE_TRY(getStateManager()->restoreNativeContext(context, getNativeExtensions(),
-                                                          mExtState.get()));
+        getStateManager()->restoreNativeContext(getNativeExtensions(), mExtState.get());
     }
 
     return ContextGL::onUnMakeCurrent(context);
diff --git a/src/libANGLE/renderer/gl/egl/ImageEGL.cpp b/src/libANGLE/renderer/gl/egl/ImageEGL.cpp
index 5a4a12c..d4c2df0 100644
--- a/src/libANGLE/renderer/gl/egl/ImageEGL.cpp
+++ b/src/libANGLE/renderer/gl/egl/ImageEGL.cpp
@@ -116,10 +116,10 @@
     StateManagerGL *stateManager   = GetStateManagerGL(context);
 
     // Make sure this texture is bound
-    ANGLE_TRY(stateManager->bindTexture(context, type, texture->getTextureID()));
+    stateManager->bindTexture(type, texture->getTextureID());
 
     // Bind the image to the texture
-    ANGLE_GL_TRY(context, functionsGL->eGLImageTargetTexture2DOES(ToGLenum(type), mImage));
+    functionsGL->eGLImageTargetTexture2DOES(ToGLenum(type), mImage);
     *outInternalFormat = mNativeInternalFormat;
 
     return angle::Result::Continue;
@@ -133,12 +133,10 @@
     StateManagerGL *stateManager   = GetStateManagerGL(context);
 
     // Make sure this renderbuffer is bound
-    ANGLE_TRY(stateManager->bindRenderbuffer(context, GL_RENDERBUFFER,
-                                             renderbuffer->getRenderbufferID()));
+    stateManager->bindRenderbuffer(GL_RENDERBUFFER, renderbuffer->getRenderbufferID());
 
     // Bind the image to the renderbuffer
-    ANGLE_GL_TRY(context,
-                 functionsGL->eGLImageTargetRenderbufferStorageOES(GL_RENDERBUFFER, mImage));
+    functionsGL->eGLImageTargetRenderbufferStorageOES(GL_RENDERBUFFER, mImage);
     *outInternalFormat = mNativeInternalFormat;
 
     return angle::Result::Continue;
diff --git a/src/libANGLE/renderer/gl/egl/gbm/DisplayGbm.cpp b/src/libANGLE/renderer/gl/egl/gbm/DisplayGbm.cpp
index c89cb73..98e4912 100644
--- a/src/libANGLE/renderer/gl/egl/gbm/DisplayGbm.cpp
+++ b/src/libANGLE/renderer/gl/egl/gbm/DisplayGbm.cpp
@@ -212,12 +212,12 @@
 
     // Update the storage of the renderbuffers but don't generate new IDs. This will update all
     // framebuffers they are bound to.
-    ANGLE_SWALLOW_ERR(sm->bindRenderbuffer(nullptr, GL_RENDERBUFFER, mColorBuffer));
+    sm->bindRenderbuffer(GL_RENDERBUFFER, mColorBuffer);
     gl->eGLImageTargetRenderbufferStorageOES(GL_RENDERBUFFER, mImage);
 
     if (mDepthBits || mStencilBits)
     {
-        ANGLE_SWALLOW_ERR(sm->bindRenderbuffer(nullptr, GL_RENDERBUFFER, mDSBuffer));
+        sm->bindRenderbuffer(GL_RENDERBUFFER, mDSBuffer);
         gl->renderbufferStorage(GL_RENDERBUFFER, GL_DEPTH24_STENCIL8_OES, width, height);
     }
 
@@ -251,7 +251,7 @@
     StateManagerGL *sm    = mDisplay->mRenderer->getStateManager();
 
     gl->genTextures(1, &mTexture);
-    ANGLE_SWALLOW_ERR(sm->bindTexture(nullptr, gl::TextureType::_2D, mTexture));
+    sm->bindTexture(gl::TextureType::_2D, mTexture);
     gl->texParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
     gl->texParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
     gl->texParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
@@ -289,7 +289,7 @@
 
     GLuint framebuffer = 0;
     functions->genFramebuffers(1, &framebuffer);
-    ANGLE_SWALLOW_ERR(stateManager->bindFramebuffer(nullptr, GL_FRAMEBUFFER, framebuffer));
+    stateManager->bindFramebuffer(GL_FRAMEBUFFER, framebuffer);
 
     functions->framebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0_EXT, GL_RENDERBUFFER,
                                        mColorBuffer);
@@ -333,12 +333,12 @@
     StateManagerGL *sm    = mDisplay->mRenderer->getStateManager();
 
     gl->genRenderbuffers(1, &mColorBuffer);
-    ANGLE_SWALLOW_ERR(sm->bindRenderbuffer(nullptr, GL_RENDERBUFFER, mColorBuffer));
+    sm->bindRenderbuffer(GL_RENDERBUFFER, mColorBuffer);
 
     if (mDepthBits || mStencilBits)
     {
         gl->genRenderbuffers(1, &mDSBuffer);
-        ANGLE_SWALLOW_ERR(sm->bindRenderbuffer(nullptr, GL_RENDERBUFFER, mDSBuffer));
+        sm->bindRenderbuffer(GL_RENDERBUFFER, mDSBuffer);
     }
 
     return true;
@@ -689,7 +689,7 @@
         mBorderSizeUniform = gl->getUniformLocation(mProgram, "borderSize");
         mDepthUniform      = gl->getUniformLocation(mProgram, "depth");
         GLint texUniform   = gl->getUniformLocation(mProgram, "tex");
-        ANGLE_SWALLOW_ERR(sm->useProgram(context, mProgram));
+        sm->useProgram(mProgram);
         gl->uniform1i(texUniform, 0);
 
         // clang-format off
@@ -708,21 +708,21 @@
         };
         // clang-format on
         gl->genBuffers(1, &mVertexBuffer);
-        ANGLE_SWALLOW_ERR(sm->bindBuffer(context, gl::BufferBinding::Array, mVertexBuffer));
+        sm->bindBuffer(gl::BufferBinding::Array, mVertexBuffer);
         gl->bufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
 
         // window border triangle strip
         const GLuint borderStrip[] = {5, 0, 4, 2, 6, 3, 7, 1, 5, 0};
 
         gl->genBuffers(1, &mIndexBuffer);
-        ANGLE_SWALLOW_ERR(sm->bindBuffer(context, gl::BufferBinding::ElementArray, mIndexBuffer));
+        sm->bindBuffer(gl::BufferBinding::ElementArray, mIndexBuffer);
         gl->bufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(borderStrip), borderStrip, GL_STATIC_DRAW);
     }
     else
     {
-        ANGLE_SWALLOW_ERR(sm->useProgram(context, mProgram));
-        ANGLE_SWALLOW_ERR(sm->bindBuffer(context, gl::BufferBinding::Array, mVertexBuffer));
-        ANGLE_SWALLOW_ERR(sm->bindBuffer(context, gl::BufferBinding::ElementArray, mIndexBuffer));
+        sm->useProgram(mProgram);
+        sm->bindBuffer(gl::BufferBinding::Array, mVertexBuffer);
+        sm->bindBuffer(gl::BufferBinding::ElementArray, mIndexBuffer);
     }
 
     // convert from pixels to "-1 to 1" space
@@ -749,17 +749,17 @@
     sm->setDepthRange(0, 1);
     sm->setDepthFunc(GL_LESS);
     sm->setViewport(gl::Rectangle(0, 0, mWidth, mHeight));
-    ANGLE_SWALLOW_ERR(sm->activeTexture(context, 0));
+    sm->activeTexture(0);
     GLuint tex = buffer->getTexture();
-    ANGLE_SWALLOW_ERR(sm->bindTexture(context, gl::TextureType::_2D, tex));
+    sm->bindTexture(gl::TextureType::_2D, tex);
     gl->vertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, 0);
     gl->enableVertexAttribArray(0);
     GLuint fbo = mDrawing->createGLFB(context);
-    ANGLE_SWALLOW_ERR(sm->bindFramebuffer(context, GL_DRAW_FRAMEBUFFER, fbo));
+    sm->bindFramebuffer(GL_DRAW_FRAMEBUFFER, fbo);
     gl->drawArrays(GL_TRIANGLE_STRIP, 0, 4);
     gl->drawElements(GL_TRIANGLE_STRIP, 10, GL_UNSIGNED_INT, 0);
-    ANGLE_SWALLOW_ERR(sm->deleteTexture(context, tex));
-    ANGLE_SWALLOW_ERR(sm->deleteFramebuffer(context, fbo));
+    sm->deleteTexture(tex);
+    sm->deleteFramebuffer(fbo);
 }
 
 void DisplayGbm::drawBuffer(const gl::Context *context, Buffer *buffer)
@@ -787,14 +787,14 @@
         StateManagerGL *sm    = mRenderer->getStateManager();
 
         GLuint fbo = mDrawing->createGLFB(context);
-        ANGLE_SWALLOW_ERR(sm->bindFramebuffer(context, GL_DRAW_FRAMEBUFFER, fbo));
+        sm->bindFramebuffer(GL_DRAW_FRAMEBUFFER, fbo);
         sm->setClearColor(gl::ColorF(0, 0, 0, 1));
         sm->setClearDepth(1);
         sm->setScissorTestEnabled(false);
         sm->setColorMask(true, true, true, true);
         sm->setDepthMask(true);
         gl->clear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
-        ANGLE_SWALLOW_ERR(sm->deleteFramebuffer(context, fbo));
+        sm->deleteFramebuffer(fbo);
     }
 
     drawWithTexture(context, buffer);
diff --git a/src/libANGLE/renderer/gl/renderergl_utils.cpp b/src/libANGLE/renderer/gl/renderergl_utils.cpp
index f7c3e4a..ce2bb30 100644
--- a/src/libANGLE/renderer/gl/renderergl_utils.cpp
+++ b/src/libANGLE/renderer/gl/renderergl_utils.cpp
@@ -2489,11 +2489,6 @@
                  const char *function,
                  unsigned int line)
 {
-    if (!context)
-    {
-        return;
-    }
-
     const FunctionsGL *functions = GetFunctionsGL(context);
     ClearErrors(functions, file, function, line);
 }
@@ -2504,11 +2499,6 @@
                          const char *function,
                          unsigned int line)
 {
-    if (!context)
-    {
-        return angle::Result::Continue;
-    }
-
     const FunctionsGL *functions = GetFunctionsGL(context);
 
     GLenum error = functions->getError();
diff --git a/src/libANGLE/renderer/gl/renderergl_utils.h b/src/libANGLE/renderer/gl/renderergl_utils.h
index ac35246..3e5ac06 100644
--- a/src/libANGLE/renderer/gl/renderergl_utils.h
+++ b/src/libANGLE/renderer/gl/renderergl_utils.h
@@ -84,19 +84,13 @@
                          const char *function,
                          unsigned int line);
 
-#define ANGLE_GL_CALL_ALWAYS_CHECK(context, call)                     \
-    (ClearErrors(context, __FILE__, __FUNCTION__, __LINE__), (call)); \
-    ((void)CheckError(context, #call, __FILE__, __FUNCTION__, __LINE__))
-
 #define ANGLE_GL_TRY_ALWAYS_CHECK(context, call)                      \
     (ClearErrors(context, __FILE__, __FUNCTION__, __LINE__), (call)); \
     ANGLE_TRY(CheckError(context, #call, __FILE__, __FUNCTION__, __LINE__))
 
 #if defined(ANGLE_ENABLE_ASSERTS)
-#    define ANGLE_GL_CALL(context, call) ANGLE_GL_CALL_ALWAYS_CHECK(context, call)
 #    define ANGLE_GL_TRY(context, call) ANGLE_GL_TRY_ALWAYS_CHECK(context, call)
 #else
-#    define ANGLE_GL_CALL(context, call) call
 #    define ANGLE_GL_TRY(context, call) call
 #endif
 
diff --git a/src/libANGLE/renderer/gl/wgl/D3DTextureSurfaceWGL.cpp b/src/libANGLE/renderer/gl/wgl/D3DTextureSurfaceWGL.cpp
index 0b0da7b..2f2e724 100644
--- a/src/libANGLE/renderer/gl/wgl/D3DTextureSurfaceWGL.cpp
+++ b/src/libANGLE/renderer/gl/wgl/D3DTextureSurfaceWGL.cpp
@@ -273,8 +273,8 @@
             mFunctionsWGL->dxUnregisterObjectNV(mDeviceHandle, mBoundObjectRenderbufferHandle);
             mBoundObjectRenderbufferHandle = nullptr;
         }
-        (void)mStateManager->deleteRenderbuffer(nullptr, mColorRenderbufferID);
-        (void)mStateManager->deleteRenderbuffer(nullptr, mDepthStencilRenderbufferID);
+        mStateManager->deleteRenderbuffer(mColorRenderbufferID);
+        mStateManager->deleteRenderbuffer(mDepthStencilRenderbufferID);
 
         if (mBoundObjectTextureHandle)
         {
@@ -326,7 +326,7 @@
     }
 
     mFunctionsGL->genRenderbuffers(1, &mColorRenderbufferID);
-    (void)mStateManager->bindRenderbuffer(nullptr, GL_RENDERBUFFER, mColorRenderbufferID);
+    mStateManager->bindRenderbuffer(GL_RENDERBUFFER, mColorRenderbufferID);
     mBoundObjectRenderbufferHandle = mFunctionsWGL->dxRegisterObjectNV(
         mDeviceHandle, mObject, mColorRenderbufferID, GL_RENDERBUFFER, WGL_ACCESS_READ_WRITE_NV);
     if (mBoundObjectRenderbufferHandle == nullptr)
@@ -339,8 +339,7 @@
     if (config->depthStencilFormat != GL_NONE)
     {
         mFunctionsGL->genRenderbuffers(1, &mDepthStencilRenderbufferID);
-        (void)mStateManager->bindRenderbuffer(nullptr, GL_RENDERBUFFER,
-                                              mDepthStencilRenderbufferID);
+        mStateManager->bindRenderbuffer(GL_RENDERBUFFER, mDepthStencilRenderbufferID);
         mFunctionsGL->renderbufferStorage(GL_RENDERBUFFER, config->depthStencilFormat,
                                           static_cast<GLsizei>(mWidth),
                                           static_cast<GLsizei>(mHeight));
@@ -485,7 +484,7 @@
 
     GLuint framebufferID = 0;
     functions->genFramebuffers(1, &framebufferID);
-    (void)stateManager->bindFramebuffer(context, GL_FRAMEBUFFER, framebufferID);
+    stateManager->bindFramebuffer(GL_FRAMEBUFFER, framebufferID);
     functions->framebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER,
                                        mColorRenderbufferID);
     if (mState.config->depthSize > 0)
diff --git a/src/libANGLE/renderer/gl/wgl/DXGISwapChainWindowSurfaceWGL.cpp b/src/libANGLE/renderer/gl/wgl/DXGISwapChainWindowSurfaceWGL.cpp
index c8ba6a2..01b6fed 100644
--- a/src/libANGLE/renderer/gl/wgl/DXGISwapChainWindowSurfaceWGL.cpp
+++ b/src/libANGLE/renderer/gl/wgl/DXGISwapChainWindowSurfaceWGL.cpp
@@ -66,13 +66,13 @@
 
     if (mColorRenderbufferID != 0)
     {
-        ANGLE_SWALLOW_ERR(mStateManager->deleteRenderbuffer(nullptr, mColorRenderbufferID));
+        mStateManager->deleteRenderbuffer(mColorRenderbufferID);
         mColorRenderbufferID = 0;
     }
 
     if (mDepthRenderbufferID != 0)
     {
-        ANGLE_SWALLOW_ERR(mStateManager->deleteRenderbuffer(nullptr, mDepthRenderbufferID));
+        mStateManager->deleteRenderbuffer(mDepthRenderbufferID);
         mDepthRenderbufferID = 0;
     }
 
@@ -104,12 +104,10 @@
     mDepthBufferFormat = GL_DEPTH24_STENCIL8;
 
     mFunctionsGL->genRenderbuffers(1, &mColorRenderbufferID);
-    ANGLE_SWALLOW_ERR(
-        mStateManager->bindRenderbuffer(nullptr, GL_RENDERBUFFER, mColorRenderbufferID));
+    mStateManager->bindRenderbuffer(GL_RENDERBUFFER, mColorRenderbufferID);
 
     mFunctionsGL->genRenderbuffers(1, &mDepthRenderbufferID);
-    ANGLE_SWALLOW_ERR(
-        mStateManager->bindRenderbuffer(nullptr, GL_RENDERBUFFER, mDepthRenderbufferID));
+    mStateManager->bindRenderbuffer(GL_RENDERBUFFER, mDepthRenderbufferID);
 
     return createSwapChain();
 }
@@ -278,7 +276,7 @@
 
     GLuint framebufferID = 0;
     functions->genFramebuffers(1, &framebufferID);
-    ANGLE_SWALLOW_ERR(stateManager->bindFramebuffer(context, GL_FRAMEBUFFER, framebufferID));
+    stateManager->bindFramebuffer(GL_FRAMEBUFFER, framebufferID);
     functions->framebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER,
                                        mColorRenderbufferID);
 
@@ -499,8 +497,7 @@
                                   << gl::FmtHR(result);
     }
 
-    ANGLE_SWALLOW_ERR(
-        mStateManager->bindRenderbuffer(nullptr, GL_RENDERBUFFER, mColorRenderbufferID));
+    mStateManager->bindRenderbuffer(GL_RENDERBUFFER, mColorRenderbufferID);
     mRenderbufferBufferHandle =
         mFunctionsWGL->dxRegisterObjectNV(mDeviceHandle, colorBuffer, mColorRenderbufferID,
                                           GL_RENDERBUFFER, WGL_ACCESS_READ_WRITE_NV);
@@ -532,8 +529,7 @@
     if (mDepthBufferFormat != GL_NONE)
     {
         ASSERT(mDepthRenderbufferID != 0);
-        ANGLE_SWALLOW_ERR(
-            mStateManager->bindRenderbuffer(nullptr, GL_RENDERBUFFER, mDepthRenderbufferID));
+        mStateManager->bindRenderbuffer(GL_RENDERBUFFER, mDepthRenderbufferID);
         mFunctionsGL->renderbufferStorage(GL_RENDERBUFFER, mDepthBufferFormat,
                                           static_cast<GLsizei>(mWidth),
                                           static_cast<GLsizei>(mHeight));