Remove the sh::InterfaceBlock::dataSize member.

We can replace this by doing the same calculation in the HLSL-side
code.

BUG=angle:466

Change-Id: Iecae4a92e9037e851419ce73e6267094ee8071a2
Reviewed-on: https://chromium-review.googlesource.com/207251
Tested-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
diff --git a/src/common/blocklayout.cpp b/src/common/blocklayout.cpp
index cdb7d7f..9bf14cb 100644
--- a/src/common/blocklayout.cpp
+++ b/src/common/blocklayout.cpp
@@ -245,6 +245,33 @@
     mCurrentOffset += (numRegisters * ComponentsPerRegister);
 }
 
+size_t HLSLInterfaceBlockDataSize(const sh::InterfaceBlock &interfaceBlock)
+{
+    switch (interfaceBlock.layout)
+    {
+      case BLOCKLAYOUT_SHARED:
+      case BLOCKLAYOUT_PACKED:
+        {
+            HLSLBlockEncoder hlslEncoder(NULL, HLSLBlockEncoder::ENCODE_PACKED);
+            hlslEncoder.encodeInterfaceBlockFields(interfaceBlock.fields);
+            return hlslEncoder.getBlockSize();
+        }
+        break;
+
+      case BLOCKLAYOUT_STANDARD:
+        {
+            Std140BlockEncoder stdEncoder(NULL);
+            stdEncoder.encodeInterfaceBlockFields(interfaceBlock.fields);
+            return stdEncoder.getBlockSize();
+        }
+        break;
+
+      default:
+        UNREACHABLE();
+        return 0;
+    }
+}
+
 void HLSLVariableGetRegisterInfo(unsigned int baseRegisterIndex, Uniform *variable, HLSLBlockEncoder *encoder,
                                  const std::vector<BlockMemberInfo> &blockInfo, ShShaderOutput outputType)
 {