Revert "Revert "Implement DoFlushDriverCachesCHROMIUM in the passthrough cmd decoder.""

This reverts commit 05847d23a181fa16b77dc921dcf955a1f2af540c.

Reason for revert: It was unnecessary to revert this.

Original change's description:
> Revert "Implement DoFlushDriverCachesCHROMIUM in the passthrough cmd decoder."
> 
> This reverts commit c631bac13c7a546353f59b361ce758bfffa8cb93.
> 
> Reason for revert: Speculative revert for WebglConformance_deqp_functional_gles3_texturefiltering failure on Win. See crbug.com/736537.
> 
> Original change's description:
> > Implement DoFlushDriverCachesCHROMIUM in the passthrough cmd decoder.
> > 
> > This was the last source of NOTIMPLEMENTED spam when running tests.
> > 
> > BUG=602688
> > 
> > Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
> > Change-Id: Iaffc7761baa341ff1585974367b7185b3d41bd81
> > Reviewed-on: https://chromium-review.googlesource.com/538082
> > Reviewed-by: Zhenyao Mo <zmo@chromium.org>
> > Commit-Queue: Geoff Lang <geofflang@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#480825}
> 
> TBR=zmo@chromium.org,geofflang@chromium.org
> 
> # Not skipping CQ checks because original CL landed > 1 day ago.
> 
> Bug: 602688
> Change-Id: Ieb420651cd67c3fb564d2e2ed8131a04c5f7e97e
> Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
> Reviewed-on: https://chromium-review.googlesource.com/546846
> Reviewed-by: Khushal <khushalsagar@chromium.org>
> Commit-Queue: Khushal <khushalsagar@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#482098}

TBR=zmo@chromium.org,geofflang@chromium.org,khushalsagar@chromium.org

Change-Id: I0ce7b94607f4d03d2a023016c73677321a8b0f6e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 602688
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Reviewed-on: https://chromium-review.googlesource.com/547197
Reviewed-by: Khushal <khushalsagar@chromium.org>
Commit-Queue: Khushal <khushalsagar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#482137}
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc b/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc
index b256a8f6..005a523 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc
@@ -3768,7 +3768,12 @@
 }
 
 error::Error GLES2DecoderPassthroughImpl::DoFlushDriverCachesCHROMIUM() {
-  NOTIMPLEMENTED();
+  // On Adreno Android devices we need to use a workaround to force caches to
+  // clear.
+  if (feature_info_->workarounds().unbind_egl_context_to_flush_driver_caches) {
+    context_->ReleaseCurrent(nullptr);
+    context_->MakeCurrent(surface_.get());
+  }
   return error::kNoError;
 }