ES31: Implement glDispatchCompute for D3D backend
BUG=angleproject:1955
TESTCASE=angle_end2end_tests
Change-Id: I69b4df83d67017d39df67753d6d17fc15ececebf
Reviewed-on: https://chromium-review.googlesource.com/462067
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/renderer/d3d/ProgramD3D.cpp b/src/libANGLE/renderer/d3d/ProgramD3D.cpp
index 11c76f9..b8df596 100644
--- a/src/libANGLE/renderer/d3d/ProgramD3D.cpp
+++ b/src/libANGLE/renderer/d3d/ProgramD3D.cpp
@@ -1384,6 +1384,16 @@
const gl::ContextState &mContextState;
};
+gl::Error ProgramD3D::getComputeExecutable(ShaderExecutableD3D **outExecutable)
+{
+ if (outExecutable)
+ {
+ *outExecutable = mComputeExecutable.get();
+ }
+
+ return gl::NoError();
+}
+
LinkResult ProgramD3D::compileProgramExecutables(const gl::ContextState &contextState,
gl::InfoLog &infoLog)
{
@@ -1695,6 +1705,19 @@
return gl::NoError();
}
+gl::Error ProgramD3D::applyComputeUniforms()
+{
+ ASSERT(!mDirtySamplerMapping);
+ ANGLE_TRY(mRenderer->applyComputeUniforms(*this, mD3DUniforms));
+
+ for (D3DUniform *d3dUniform : mD3DUniforms)
+ {
+ d3dUniform->dirty = false;
+ }
+
+ return gl::NoError();
+}
+
gl::Error ProgramD3D::applyUniformBuffers(const gl::ContextState &data)
{
if (mState.getUniformBlocks().empty())