spirv-reader: explicitly reject combined-image-sampler
This was already rejected, but with a not-very-useful message. Error out more consciously and issue a higher level, more informative error message. Fixed: tint:442 Change-Id: I3643b98d17f55b44b9dcf86aa828010bb39fcd8e Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/37242 Reviewed-by: David Neto <dneto@google.com> Reviewed-by: dan sinclair <dsinclair@chromium.org> Commit-Queue: David Neto <dneto@google.com> Auto-Submit: David Neto <dneto@google.com>
This commit is contained in:
parent
987376cd21
commit
4651a6ee8b
|
@ -1751,6 +1751,10 @@ ParserImpl::GetSpirvTypeForHandleMemoryObjectDeclaration(
|
||||||
"translate variable or function parameter: "
|
"translate variable or function parameter: "
|
||||||
<< var.PrettyPrint();
|
<< var.PrettyPrint();
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
case SpvOpTypeSampledImage:
|
||||||
|
Fail() << "WGSL does not support combined image-samplers: "
|
||||||
|
<< var.PrettyPrint();
|
||||||
|
return nullptr;
|
||||||
default:
|
default:
|
||||||
Fail() << "invalid type for image or sampler variable or function "
|
Fail() << "invalid type for image or sampler variable or function "
|
||||||
"parameter: "
|
"parameter: "
|
||||||
|
|
|
@ -4478,6 +4478,33 @@ INSTANTIATE_TEST_SUITE_P(
|
||||||
"gradient: ",
|
"gradient: ",
|
||||||
{}}}));
|
{}}}));
|
||||||
|
|
||||||
|
TEST_F(SpvParserTest, CombinedImageSampler_IsError) {
|
||||||
|
const auto assembly = Preamble() + R"(
|
||||||
|
OpEntryPoint Fragment %100 "main"
|
||||||
|
OpExecutionMode %100 OriginUpperLeft
|
||||||
|
|
||||||
|
OpDecorate %var DescriptorSet 0
|
||||||
|
OpDecorate %var Binding 0
|
||||||
|
%float = OpTypeFloat 32
|
||||||
|
%im = OpTypeImage %float 2D 0 0 0 1 Unknown
|
||||||
|
%si = OpTypeSampledImage %im
|
||||||
|
%ptr_si = OpTypePointer UniformConstant %si
|
||||||
|
%var = OpVariable %ptr_si UniformConstant
|
||||||
|
%void = OpTypeVoid
|
||||||
|
%voidfn = OpTypeFunction %void
|
||||||
|
|
||||||
|
%100 = OpFunction %void None %voidfn
|
||||||
|
%entry = OpLabel
|
||||||
|
OpReturn
|
||||||
|
OpFunctionEnd
|
||||||
|
)";
|
||||||
|
auto p = parser(test::Assemble(assembly));
|
||||||
|
std::cout << assembly;
|
||||||
|
EXPECT_FALSE(p->BuildAndParseInternalModule()) << assembly;
|
||||||
|
EXPECT_THAT(p->error(),
|
||||||
|
HasSubstr("WGSL does not support combined image-samplers: "));
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
} // namespace spirv
|
} // namespace spirv
|
||||||
} // namespace reader
|
} // namespace reader
|
||||||
|
|
Loading…
Reference in New Issue