Vulkan: Implement shader compilation.
This hooks up the Vulkan GLSL, decorated with locations, to glslang,
and then pipes the SPIRV back to the Program implementation for later
use when making pipelines to run draw calls.
The program compilation tests work now, but don't really test
anything other than not generating Vulkan validation layer errors
during compilation and shader object generation.
BUG=angleproject:1576
Change-Id: I625e42219f4b4d1433dd3109b94e1a2f666ba4bd
Reviewed-on: https://chromium-review.googlesource.com/408519
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
diff --git a/src/libANGLE/renderer/vulkan/ProgramVk.h b/src/libANGLE/renderer/vulkan/ProgramVk.h
index 2f8424d..aeebd41 100644
--- a/src/libANGLE/renderer/vulkan/ProgramVk.h
+++ b/src/libANGLE/renderer/vulkan/ProgramVk.h
@@ -11,6 +11,7 @@
#define LIBANGLE_RENDERER_VULKAN_PROGRAMVK_H_
#include "libANGLE/renderer/ProgramImpl.h"
+#include "libANGLE/renderer/vulkan/renderervk_utils.h"
namespace rx
{
@@ -27,7 +28,7 @@
gl::Error save(gl::BinaryOutputStream *stream) override;
void setBinaryRetrievableHint(bool retrievable) override;
- LinkResult link(const gl::ContextState &data,
+ LinkResult link(ContextImpl *contextImpl,
const gl::VaryingPacking &packing,
gl::InfoLog &infoLog) override;
GLboolean validate(const gl::Caps &caps, gl::InfoLog *infoLog) override;
@@ -97,6 +98,13 @@
GLenum genMode,
GLint components,
const GLfloat *coeffs) override;
+
+ const vk::ShaderModule &getLinkedVertexModule() const;
+ const vk::ShaderModule &getLinkedFragmentModule() const;
+
+ private:
+ vk::ShaderModule mLinkedVertexModule;
+ vk::ShaderModule mLinkedFragmentModule;
};
} // namespace rx