summaryrefslogtreecommitdiffstats
path: root/source
diff options
context:
space:
mode:
authorTim Foley <tfoleyNV@users.noreply.github.com>2018-04-18 12:57:34 -0700
committerGitHub <noreply@github.com>2018-04-18 12:57:34 -0700
commit0450ca61e27dd0ee0ae744aa98426621627897a1 (patch)
tree7ada84c02543747be4739945dcda63ef9050d2e5 /source
parent00389a127af8db18a3ec8fe7ad2dd114a65ac024 (diff)
Fix some logic around legalization of sampler types (#496)
The main error here was checking for `IRSamplerType` instead of `IRSamplerTypeBase`, which means the relevant logic only triggered for the `SamplerState` type and not the `SamplerComparisonState` type. The two affected places were type legalization (so that comparison samplers in `struct` types weren't being hoisted out) and the emit logic when deciding whether to introduce local temporaries (so we were emitting temporaries for comparison samplers, leading to GLSL errors).
Diffstat (limited to 'source')
-rw-r--r--source/slang/emit.cpp2
-rw-r--r--source/slang/legalize-types.cpp2
2 files changed, 2 insertions, 2 deletions
diff --git a/source/slang/emit.cpp b/source/slang/emit.cpp
index 28fb0b551..e86a6d1e4 100644
--- a/source/slang/emit.cpp
+++ b/source/slang/emit.cpp
@@ -2076,7 +2076,7 @@ struct EmitVisitor
{
return true;
}
- else if(as<IRSamplerStateType>(type))
+ else if(as<IRSamplerStateTypeBase>(type))
{
return true;
}
diff --git a/source/slang/legalize-types.cpp b/source/slang/legalize-types.cpp
index 51a7af314..6922a5174 100644
--- a/source/slang/legalize-types.cpp
+++ b/source/slang/legalize-types.cpp
@@ -88,7 +88,7 @@ static bool isResourceType(IRType* type)
{
return true;
}
- else if (auto samplerType = as<IRSamplerStateType>(type))
+ else if (auto samplerType = as<IRSamplerStateTypeBase>(type))
{
return true;
}