ES31: Add DispatchComputeIndirect suport for OpenGL backend

BUG=angleproject:2270
TEST=dEQP-GLES31.functional.compute.indirect_dispatch.*

Change-Id: Id062a80188b2a37f28833aaae8e6d31bac382276
Reviewed-on: https://chromium-review.googlesource.com/802763
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/Context.cpp b/src/libANGLE/Context.cpp
index bcccfc6..b102bb5 100644
--- a/src/libANGLE/Context.cpp
+++ b/src/libANGLE/Context.cpp
@@ -417,6 +417,7 @@
     mComputeDirtyBits.set(State::DIRTY_BIT_PROGRAM_EXECUTABLE);
     mComputeDirtyBits.set(State::DIRTY_BIT_TEXTURE_BINDINGS);
     mComputeDirtyBits.set(State::DIRTY_BIT_SAMPLER_BINDINGS);
+    mComputeDirtyBits.set(State::DIRTY_BIT_DISPATCH_INDIRECT_BUFFER_BINDING);
 
     handleError(mImplementation->initialize());
 }
@@ -4249,7 +4250,8 @@
 
 void Context::dispatchComputeIndirect(GLintptr indirect)
 {
-    UNIMPLEMENTED();
+    ANGLE_CONTEXT_TRY(prepareForDispatch());
+    handleError(mImplementation->dispatchComputeIndirect(this, indirect));
 }
 
 void Context::texStorage2D(GLenum target,