Commit 81f03cc0 by Shahbaz Youssefi Committed by Commit Bot

Allow translator to use headers from common/spirv

Bug: angleproject:4889 Change-Id: Ia297888a97c0ba9cec1283db7f94f2e5b362c27e Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2815179 Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: 's avatarTim Van Patten <timvp@google.com> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
parent 08805e35
...@@ -567,6 +567,7 @@ template("translator_lib") { ...@@ -567,6 +567,7 @@ template("translator_lib") {
deps = [ deps = [
":includes", ":includes",
":preprocessor", ":preprocessor",
"$angle_root/src/common/spirv:angle_spirv_headers",
] ]
if (_uses_spirv) { if (_uses_spirv) {
...@@ -764,6 +765,7 @@ if (angle_enable_vulkan || angle_enable_metal) { ...@@ -764,6 +765,7 @@ if (angle_enable_vulkan || angle_enable_metal) {
":libANGLE_headers", ":libANGLE_headers",
"$angle_root/src/common/spirv:angle_spirv_base", "$angle_root/src/common/spirv:angle_spirv_base",
"$angle_root/src/common/spirv:angle_spirv_builder", "$angle_root/src/common/spirv:angle_spirv_builder",
"$angle_root/src/common/spirv:angle_spirv_headers",
"$angle_root/src/common/spirv:angle_spirv_parser", "$angle_root/src/common/spirv:angle_spirv_parser",
"${angle_spirv_headers_dir}:spv_headers", "${angle_spirv_headers_dir}:spv_headers",
] ]
......
...@@ -4,12 +4,16 @@ ...@@ -4,12 +4,16 @@
import("../../../gni/angle.gni") import("../../../gni/angle.gni")
angle_source_set("angle_spirv_headers") {
sources = [ "spirv_types.h" ]
deps = [ "$angle_root:angle_common" ]
}
angle_source_set("angle_spirv_base") { angle_source_set("angle_spirv_base") {
sources = [ sources = [ "angle_spirv_utils.cpp" ]
"angle_spirv_utils.cpp",
"spirv_types.h",
]
deps = [ deps = [
":angle_spirv_headers",
"$angle_root:angle_common", "$angle_root:angle_common",
"${angle_spirv_headers_dir}:spv_headers", "${angle_spirv_headers_dir}:spv_headers",
"${angle_spirv_tools_dir}:spvtools_headers", "${angle_spirv_tools_dir}:spvtools_headers",
...@@ -27,6 +31,7 @@ angle_source_set("angle_spirv_builder") { ...@@ -27,6 +31,7 @@ angle_source_set("angle_spirv_builder") {
] ]
deps = [ deps = [
":angle_spirv_base", ":angle_spirv_base",
":angle_spirv_headers",
"$angle_root:angle_common", "$angle_root:angle_common",
"${angle_spirv_headers_dir}:spv_headers", "${angle_spirv_headers_dir}:spv_headers",
] ]
...@@ -39,6 +44,7 @@ angle_source_set("angle_spirv_parser") { ...@@ -39,6 +44,7 @@ angle_source_set("angle_spirv_parser") {
] ]
deps = [ deps = [
":angle_spirv_base", ":angle_spirv_base",
":angle_spirv_headers",
"$angle_root:angle_common", "$angle_root:angle_common",
"${angle_spirv_headers_dir}:spv_headers", "${angle_spirv_headers_dir}:spv_headers",
] ]
......
...@@ -1356,7 +1356,7 @@ bool TranslatorVulkan::shouldFlattenPragmaStdglInvariantAll() ...@@ -1356,7 +1356,7 @@ bool TranslatorVulkan::shouldFlattenPragmaStdglInvariantAll()
bool TranslatorVulkan::compileToSpirv(const TInfoSinkBase &glsl) bool TranslatorVulkan::compileToSpirv(const TInfoSinkBase &glsl)
{ {
std::vector<uint32_t> spirvBlob; angle::spirv::Blob spirvBlob;
if (!GlslangCompileToSpirv(getResources(), getShaderType(), glsl.str(), &spirvBlob)) if (!GlslangCompileToSpirv(getResources(), getShaderType(), glsl.str(), &spirvBlob))
{ {
return false; return false;
......
...@@ -108,7 +108,7 @@ void GlslangFinalize() ...@@ -108,7 +108,7 @@ void GlslangFinalize()
ANGLE_NO_DISCARD bool GlslangCompileToSpirv(const ShBuiltInResources &resources, ANGLE_NO_DISCARD bool GlslangCompileToSpirv(const ShBuiltInResources &resources,
sh::GLenum shaderType, sh::GLenum shaderType,
const std::string &shaderSource, const std::string &shaderSource,
std::vector<uint32_t> *spirvBlobOut) angle::spirv::Blob *spirvBlobOut)
{ {
TBuiltInResource builtInResources(glslang::DefaultTBuiltInResource); TBuiltInResource builtInResources(glslang::DefaultTBuiltInResource);
GetBuiltInResources(resources, &builtInResources); GetBuiltInResources(resources, &builtInResources);
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
#include "GLSLANG/ShaderLang.h" #include "GLSLANG/ShaderLang.h"
#include "common/PackedEnums.h" #include "common/PackedEnums.h"
#include "common/spirv/spirv_types.h"
#include <string> #include <string>
#include <vector> #include <vector>
...@@ -27,7 +28,7 @@ void GlslangFinalize(); ...@@ -27,7 +28,7 @@ void GlslangFinalize();
ANGLE_NO_DISCARD bool GlslangCompileToSpirv(const ShBuiltInResources &resources, ANGLE_NO_DISCARD bool GlslangCompileToSpirv(const ShBuiltInResources &resources,
sh::GLenum shaderType, sh::GLenum shaderType,
const std::string &shaderSource, const std::string &shaderSource,
std::vector<uint32_t> *spirvBlobOut); angle::spirv::Blob *spirvBlobOut);
#else #else
ANGLE_INLINE void GlslangInitialize() ANGLE_INLINE void GlslangInitialize()
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment