Commit 233cc31b by Tim Van Patten Committed by Commit Bot

Vulkan: Use linkedShaderStages in GlslangGetShaderSpirvCode()

The parameter linkedShaderStages is passed to GlslangGetShaderSpirvCode(), but is unused. This CL uses the parameter, rather than gl::AllShaderTypes(). This CL also removes the unused parameter variableInfoMap from the call chain. Bug: angleproject:3570 Change-Id: Ic60084e87cb2aa2a245e3e963598851331379e89 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2412364 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: 's avatarShahbaz Youssefi <syoussefi@chromium.org>
parent a65a7f3d
...@@ -2158,7 +2158,6 @@ angle::Result GlslangGetShaderSpirvCode(const GlslangErrorCallback &callback, ...@@ -2158,7 +2158,6 @@ angle::Result GlslangGetShaderSpirvCode(const GlslangErrorCallback &callback,
const gl::ShaderBitSet &linkedShaderStages, const gl::ShaderBitSet &linkedShaderStages,
const gl::Caps &glCaps, const gl::Caps &glCaps,
const gl::ShaderMap<std::string> &shaderSources, const gl::ShaderMap<std::string> &shaderSources,
const ShaderMapInterfaceVariableInfoMap &variableInfoMap,
gl::ShaderMap<SpirvBlob> *spirvBlobsOut) gl::ShaderMap<SpirvBlob> *spirvBlobsOut)
{ {
// Enable SPIR-V and Vulkan rules when parsing GLSL // Enable SPIR-V and Vulkan rules when parsing GLSL
...@@ -2180,7 +2179,7 @@ angle::Result GlslangGetShaderSpirvCode(const GlslangErrorCallback &callback, ...@@ -2180,7 +2179,7 @@ angle::Result GlslangGetShaderSpirvCode(const GlslangErrorCallback &callback,
}; };
glslang::TProgram program; glslang::TProgram program;
for (const gl::ShaderType shaderType : gl::AllShaderTypes()) for (const gl::ShaderType shaderType : linkedShaderStages)
{ {
if (shaderSources[shaderType].empty()) if (shaderSources[shaderType].empty())
{ {
...@@ -2215,7 +2214,7 @@ angle::Result GlslangGetShaderSpirvCode(const GlslangErrorCallback &callback, ...@@ -2215,7 +2214,7 @@ angle::Result GlslangGetShaderSpirvCode(const GlslangErrorCallback &callback,
ANGLE_GLSLANG_CHECK(callback, false, GlslangError::InvalidShader); ANGLE_GLSLANG_CHECK(callback, false, GlslangError::InvalidShader);
} }
for (const gl::ShaderType shaderType : gl::AllShaderTypes()) for (const gl::ShaderType shaderType : linkedShaderStages)
{ {
if (shaderSources[shaderType].empty()) if (shaderSources[shaderType].empty())
{ {
......
...@@ -134,7 +134,6 @@ angle::Result GlslangGetShaderSpirvCode(const GlslangErrorCallback &callback, ...@@ -134,7 +134,6 @@ angle::Result GlslangGetShaderSpirvCode(const GlslangErrorCallback &callback,
const gl::ShaderBitSet &linkedShaderStages, const gl::ShaderBitSet &linkedShaderStages,
const gl::Caps &glCaps, const gl::Caps &glCaps,
const gl::ShaderMap<std::string> &shaderSources, const gl::ShaderMap<std::string> &shaderSources,
const ShaderMapInterfaceVariableInfoMap &variableInfoMap,
gl::ShaderMap<SpirvBlob> *spirvBlobsOut); gl::ShaderMap<SpirvBlob> *spirvBlobsOut);
} // namespace rx } // namespace rx
......
...@@ -261,7 +261,7 @@ angle::Result GlslangGetShaderSpirvCode(ErrorHandler *context, ...@@ -261,7 +261,7 @@ angle::Result GlslangGetShaderSpirvCode(ErrorHandler *context,
ANGLE_TRY(rx::GlslangGetShaderSpirvCode( ANGLE_TRY(rx::GlslangGetShaderSpirvCode(
[context](GlslangError error) { return HandleError(context, error); }, linkedShaderStages, [context](GlslangError error) { return HandleError(context, error); }, linkedShaderStages,
glCaps, shaderSources, variableInfoMap, &initialSpirvBlobs)); glCaps, shaderSources, &initialSpirvBlobs));
for (const gl::ShaderType shaderType : linkedShaderStages) for (const gl::ShaderType shaderType : linkedShaderStages)
{ {
......
...@@ -70,17 +70,15 @@ void GlslangWrapperVk::GetShaderSource(const angle::FeaturesVk &features, ...@@ -70,17 +70,15 @@ void GlslangWrapperVk::GetShaderSource(const angle::FeaturesVk &features,
} }
// static // static
angle::Result GlslangWrapperVk::GetShaderCode( angle::Result GlslangWrapperVk::GetShaderCode(vk::Context *context,
vk::Context *context, const gl::ShaderBitSet &linkedShaderStages,
const gl::ShaderBitSet &linkedShaderStages, const gl::Caps &glCaps,
const gl::Caps &glCaps, const gl::ShaderMap<std::string> &shaderSources,
const gl::ShaderMap<std::string> &shaderSources, gl::ShaderMap<std::vector<uint32_t>> *shaderCodeOut)
const ShaderMapInterfaceVariableInfoMap &variableInfoMap,
gl::ShaderMap<std::vector<uint32_t>> *shaderCodeOut)
{ {
return GlslangGetShaderSpirvCode( return GlslangGetShaderSpirvCode(
[context](GlslangError error) { return ErrorHandler(context, error); }, linkedShaderStages, [context](GlslangError error) { return ErrorHandler(context, error); }, linkedShaderStages,
glCaps, shaderSources, variableInfoMap, shaderCodeOut); glCaps, shaderSources, shaderCodeOut);
} }
// static // static
......
...@@ -41,7 +41,6 @@ class GlslangWrapperVk ...@@ -41,7 +41,6 @@ class GlslangWrapperVk
const gl::ShaderBitSet &linkedShaderStages, const gl::ShaderBitSet &linkedShaderStages,
const gl::Caps &glCaps, const gl::Caps &glCaps,
const gl::ShaderMap<std::string> &shaderSources, const gl::ShaderMap<std::string> &shaderSources,
const ShaderMapInterfaceVariableInfoMap &variableInfoMap,
gl::ShaderMap<std::vector<uint32_t>> *shaderCodesOut); gl::ShaderMap<std::vector<uint32_t>> *shaderCodesOut);
static angle::Result TransformSpirV(vk::Context *context, static angle::Result TransformSpirV(vk::Context *context,
......
...@@ -56,13 +56,12 @@ ShaderInfo::~ShaderInfo() = default; ...@@ -56,13 +56,12 @@ ShaderInfo::~ShaderInfo() = default;
angle::Result ShaderInfo::initShaders(ContextVk *contextVk, angle::Result ShaderInfo::initShaders(ContextVk *contextVk,
const gl::ShaderBitSet &linkedShaderStages, const gl::ShaderBitSet &linkedShaderStages,
const gl::ShaderMap<std::string> &shaderSources, const gl::ShaderMap<std::string> &shaderSources)
const ShaderMapInterfaceVariableInfoMap &variableInfoMap)
{ {
ASSERT(!valid()); ASSERT(!valid());
ANGLE_TRY(GlslangWrapperVk::GetShaderCode(contextVk, linkedShaderStages, contextVk->getCaps(), ANGLE_TRY(GlslangWrapperVk::GetShaderCode(contextVk, linkedShaderStages, contextVk->getCaps(),
shaderSources, variableInfoMap, &mSpirvBlobs)); shaderSources, &mSpirvBlobs));
mIsInitialized = true; mIsInitialized = true;
return angle::Result::Continue; return angle::Result::Continue;
......
...@@ -30,8 +30,7 @@ class ShaderInfo final : angle::NonCopyable ...@@ -30,8 +30,7 @@ class ShaderInfo final : angle::NonCopyable
angle::Result initShaders(ContextVk *contextVk, angle::Result initShaders(ContextVk *contextVk,
const gl::ShaderBitSet &linkedShaderStages, const gl::ShaderBitSet &linkedShaderStages,
const gl::ShaderMap<std::string> &shaderSources, const gl::ShaderMap<std::string> &shaderSources);
const ShaderMapInterfaceVariableInfoMap &variableInfoMap);
void release(ContextVk *contextVk); void release(ContextVk *contextVk);
ANGLE_INLINE bool valid() const { return mIsInitialized; } ANGLE_INLINE bool valid() const { return mIsInitialized; }
......
...@@ -274,9 +274,8 @@ std::unique_ptr<LinkEvent> ProgramVk::link(const gl::Context *context, ...@@ -274,9 +274,8 @@ std::unique_ptr<LinkEvent> ProgramVk::link(const gl::Context *context,
&mExecutable.mVariableInfoMap); &mExecutable.mVariableInfoMap);
// Compile the shaders. // Compile the shaders.
angle::Result status = angle::Result status = mOriginalShaderInfo.initShaders(
mOriginalShaderInfo.initShaders(contextVk, mState.getExecutable().getLinkedShaderStages(), contextVk, mState.getExecutable().getLinkedShaderStages(), shaderSources);
shaderSources, mExecutable.mVariableInfoMap);
if (status != angle::Result::Continue) if (status != angle::Result::Continue)
{ {
return std::make_unique<LinkEventDone>(status); return std::make_unique<LinkEventDone>(status);
......
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