Add std430 support (continue)

This patch enables that the interface block information can be correctly
collected in API side for std430 layout. So we can get right offset value when
we use glGetProgramResourceiv to query.

BUG=angleproject:1920

Change-Id: Ib936f6e25936c07c5bbc29f6b567d282a0f257c2
Reviewed-on: https://chromium-review.googlesource.com/c/1345891
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jiajia Qin <jiajia.qin@intel.com>
diff --git a/src/libANGLE/renderer/d3d/ProgramD3D.cpp b/src/libANGLE/renderer/d3d/ProgramD3D.cpp
index c9c46de..dea3cc6 100644
--- a/src/libANGLE/renderer/d3d/ProgramD3D.cpp
+++ b/src/libANGLE/renderer/d3d/ProgramD3D.cpp
@@ -195,6 +195,7 @@
 
     // define member uniforms
     sh::Std140BlockEncoder std140Encoder;
+    sh::Std430BlockEncoder std430Encoder;
     sh::HLSLBlockEncoder hlslEncoder(sh::HLSLBlockEncoder::ENCODE_PACKED, false);
     sh::BlockLayoutEncoder *encoder = nullptr;
 
@@ -202,6 +203,10 @@
     {
         encoder = &std140Encoder;
     }
+    else if (interfaceBlock.layout == sh::BLOCKLAYOUT_STD430)
+    {
+        encoder = &std430Encoder;
+    }
     else
     {
         encoder = &hlslEncoder;