Make compile optimization level hidden outside D3D.

BUG=angle:773

Change-Id: Ia6f16d2e4644c02d94cf99b73f70d05486886925
Reviewed-on: https://chromium-review.googlesource.com/232696
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
diff --git a/src/libANGLE/renderer/d3d/ProgramD3D.cpp b/src/libANGLE/renderer/d3d/ProgramD3D.cpp
index e7317e6..6b94b7a 100644
--- a/src/libANGLE/renderer/d3d/ProgramD3D.cpp
+++ b/src/libANGLE/renderer/d3d/ProgramD3D.cpp
@@ -402,6 +402,13 @@
 
 LinkResult ProgramD3D::load(gl::InfoLog &infoLog, gl::BinaryInputStream *stream)
 {
+    int compileFlags = stream->readInt<int>();
+    if (compileFlags != ANGLE_COMPILE_OPTIMIZATION_LEVEL)
+    {
+        infoLog.append("Mismatched compilation flags.");
+        return LinkResult(false, gl::Error(GL_NO_ERROR));
+    }
+
     stream->readInt(&mShaderVersion);
 
     const unsigned int psSamplerCount = stream->readInt<unsigned int>();
@@ -654,6 +661,8 @@
 
 gl::Error ProgramD3D::save(gl::BinaryOutputStream *stream)
 {
+    stream->writeInt(ANGLE_COMPILE_OPTIMIZATION_LEVEL);
+
     stream->writeInt(mShaderVersion);
 
     stream->writeInt(mSamplersPS.size());