Vulkan: Use ShaderType enum.
This re-uses the same machinery as the GL front-end. It saves a lot of
custom casting and array sizing. Currently we only support vertex and
fragment shaders in Vulkan. Because of the Pipeline cache sizing, it's
easier to stick with just VS/FS and introduce the full set of shaders
when we move to packing the cache better.
Bug: angleproject:2522
Bug: angleproject:2455
Change-Id: I21432a335c741885af87970d8ee52b4a36338304
Reviewed-on: https://chromium-review.googlesource.com/1036927
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/renderer/vulkan/ProgramVk.h b/src/libANGLE/renderer/vulkan/ProgramVk.h
index 0c03710..66e0784 100644
--- a/src/libANGLE/renderer/vulkan/ProgramVk.h
+++ b/src/libANGLE/renderer/vulkan/ProgramVk.h
@@ -19,11 +19,6 @@
namespace rx
{
-namespace
-{
-constexpr uint32_t kShaderTypeCount = 2;
-} // anonymous namespace.
-
class ProgramVk : public ProgramImpl
{
public:
@@ -163,8 +158,8 @@
std::vector<sh::BlockMemberInfo> uniformLayout;
};
- std::array<DefaultUniformBlock, kShaderTypeCount> mDefaultUniformBlocks;
- std::array<uint32_t, kShaderTypeCount> mUniformBlocksOffsets;
+ vk::ShaderMap<DefaultUniformBlock> mDefaultUniformBlocks;
+ vk::ShaderMap<uint32_t> mUniformBlocksOffsets;
// This is a special "empty" placeholder buffer for when a shader has no uniforms.
// It is necessary because we want to keep a compatible pipeline layout in all cases,