spirv-reader: simplify tests

Change-Id: I69b4893d8693310f445bbf9667358d7b09f35728
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/34100
Reviewed-by: David Neto <dneto@google.com>
Commit-Queue: David Neto <dneto@google.com>
Auto-Submit: David Neto <dneto@google.com>
This commit is contained in:
David Neto 2020-11-27 16:43:13 +00:00 committed by Commit Bot service account
parent 3f305ac294
commit 76e5f17313
1 changed files with 74 additions and 123 deletions

View File

@ -79,7 +79,6 @@ std::string CommonBasicTypes() {
%vf1234 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
%depth = OpConstant %float 0.2
%offsets2d = OpConstantComposite %v2int %int_3 %int_4
)";
}
@ -1207,6 +1206,11 @@ using SpvParserTest_DeclHandle_SampledImage =
TEST_P(SpvParserTest_DeclHandle_SampledImage, Variable) {
const auto assembly = Preamble() + R"(
OpName %coords1 "coords1"
OpName %coords12 "coords12"
OpName %coords123 "coords123"
OpName %coords1234 "coords1234"
OpName %offsets2d "offsets2d"
OpDecorate %10 DescriptorSet 0
OpDecorate %10 Binding 0
OpDecorate %20 DescriptorSet 2
@ -1217,7 +1221,6 @@ TEST_P(SpvParserTest_DeclHandle_SampledImage, Variable) {
; Vulkan ignores the "depth" parameter on OpTypeImage.
; So this image type can serve for both regular sampling and depth-compare.
%si_ty = OpTypeSampledImage %f_texture_2d
%coords = OpConstantNull %v2float
%10 = OpVariable %ptr_sampler UniformConstant
%20 = OpVariable %ptr_f_texture_2d UniformConstant
@ -1226,6 +1229,20 @@ TEST_P(SpvParserTest_DeclHandle_SampledImage, Variable) {
%main = OpFunction %void None %voidfn
%entry = OpLabel
; create some names that will become WGSL variables x_1, x_12, and so on.
%1 = OpCopyObject %float %float_1
%12 = OpCopyObject %v2float %vf12
%123 = OpCopyObject %v3float %vf123
%1234 = OpCopyObject %v4float %vf1234
%coords1 = OpCopyObject %float %float_1
%coords12 = OpCopyObject %v2float %vf12
%coords123 = OpCopyObject %v3float %vf123
%coords1234 = OpCopyObject %v4float %vf1234
%value_offset = OpCompositeConstruct %v2int %int_3 %int_4
%offsets2d = OpCopyObject %v2int %value_offset
%sam = OpLoad %sampler %10
%im = OpLoad %f_texture_2d %20
%sampled_image = OpSampledImage %si_ty %im %sam
@ -1315,7 +1332,7 @@ INSTANTIATE_TEST_SUITE_P(
// OpImageSampleImplicitLod
DeclSampledImageCase{"%result = OpImageSampleImplicitLod "
"%v4float %sampled_image %coords",
"%v4float %sampled_image %coords12",
R"(
DecoratedVariable{
Decorations{
@ -1341,18 +1358,14 @@ INSTANTIATE_TEST_SUITE_P(
(
Identifier[not set]{x_20}
Identifier[not set]{x_10}
TypeConstructor[not set]{
__vec_2__f32
ScalarConstructor[not set]{0.000000}
ScalarConstructor[not set]{0.000000}
}
Identifier[not set]{coords12}
)
})"},
// OpImageSampleImplicitLod with ConstOffset
DeclSampledImageCase{
"%result = OpImageSampleImplicitLod "
"%v4float %sampled_image %coords ConstOffset %offsets2d",
"%v4float %sampled_image %coords12 ConstOffset %offsets2d",
R"(
DecoratedVariable{
Decorations{
@ -1378,22 +1391,14 @@ INSTANTIATE_TEST_SUITE_P(
(
Identifier[not set]{x_20}
Identifier[not set]{x_10}
TypeConstructor[not set]{
__vec_2__f32
ScalarConstructor[not set]{0.000000}
ScalarConstructor[not set]{0.000000}
}
TypeConstructor[not set]{
__vec_2__i32
ScalarConstructor[not set]{3}
ScalarConstructor[not set]{4}
}
Identifier[not set]{coords12}
Identifier[not set]{offsets2d}
)
})"},
// OpImageSampleImplicitLod with Bias
DeclSampledImageCase{"%result = OpImageSampleImplicitLod "
"%v4float %sampled_image %coords Bias %float_7",
"%v4float %sampled_image %coords12 Bias %float_7",
R"(
DecoratedVariable{
Decorations{
@ -1419,11 +1424,7 @@ INSTANTIATE_TEST_SUITE_P(
(
Identifier[not set]{x_20}
Identifier[not set]{x_10}
TypeConstructor[not set]{
__vec_2__f32
ScalarConstructor[not set]{0.000000}
ScalarConstructor[not set]{0.000000}
}
Identifier[not set]{coords12}
ScalarConstructor[not set]{7.000000}
)
})"},
@ -1431,10 +1432,11 @@ INSTANTIATE_TEST_SUITE_P(
// OpImageSampleImplicitLod with Bias and ConstOffset
// TODO(dneto): OpImageSampleImplicitLod with Bias and unsigned
// ConstOffset
DeclSampledImageCase{"%result = OpImageSampleImplicitLod "
"%v4float %sampled_image %coords Bias|ConstOffset "
"%float_7 %offsets2d",
R"(
DeclSampledImageCase{
"%result = OpImageSampleImplicitLod "
"%v4float %sampled_image %coords12 Bias|ConstOffset "
"%float_7 %offsets2d",
R"(
DecoratedVariable{
Decorations{
SetDecoration{0}
@ -1453,23 +1455,15 @@ INSTANTIATE_TEST_SUITE_P(
uniform_constant
__sampled_texture_2d__f32
})",
R"(
R"(
Call[not set]{
Identifier[not set]{textureSampleBias}
(
Identifier[not set]{x_20}
Identifier[not set]{x_10}
TypeConstructor[not set]{
__vec_2__f32
ScalarConstructor[not set]{0.000000}
ScalarConstructor[not set]{0.000000}
}
Identifier[not set]{coords12}
ScalarConstructor[not set]{7.000000}
TypeConstructor[not set]{
__vec_2__i32
ScalarConstructor[not set]{3}
ScalarConstructor[not set]{4}
}
Identifier[not set]{offsets2d}
)
})"}));
@ -1486,8 +1480,8 @@ INSTANTIATE_TEST_SUITE_P(
%sam_dref = OpLoad %sampler %30
%sampled_dref_image = OpSampledImage %si_ty %im %sam_dref
%200 = OpImageSampleImplicitLod %v4float %sampled_image %coords
%210 = OpImageSampleDrefImplicitLod %v4float %sampled_dref_image %coords %depth
%200 = OpImageSampleImplicitLod %v4float %sampled_image %coords12
%210 = OpImageSampleDrefImplicitLod %v4float %sampled_dref_image %coords12 %depth
)",
R"(
DecoratedVariable{
@ -1529,11 +1523,7 @@ INSTANTIATE_TEST_SUITE_P(
(
Identifier[not set]{x_20}
Identifier[not set]{x_10}
TypeConstructor[not set]{
__vec_2__f32
ScalarConstructor[not set]{0.000000}
ScalarConstructor[not set]{0.000000}
}
Identifier[not set]{coords12}
)
}
}
@ -1550,11 +1540,7 @@ INSTANTIATE_TEST_SUITE_P(
(
Identifier[not set]{x_20}
Identifier[not set]{x_30}
TypeConstructor[not set]{
__vec_2__f32
ScalarConstructor[not set]{0.000000}
ScalarConstructor[not set]{0.000000}
}
Identifier[not set]{coords12}
ScalarConstructor[not set]{0.200000}
)
}
@ -1568,7 +1554,7 @@ INSTANTIATE_TEST_SUITE_P(
::testing::Values(
// ImageSampleDrefImplicitLod
DeclSampledImageCase{"%result = OpImageSampleDrefImplicitLod "
"%v4float %sampled_image %coords %depth",
"%v4float %sampled_image %coords12 %depth",
R"(
DecoratedVariable{
Decorations{
@ -1594,11 +1580,7 @@ INSTANTIATE_TEST_SUITE_P(
(
Identifier[not set]{x_20}
Identifier[not set]{x_10}
TypeConstructor[not set]{
__vec_2__f32
ScalarConstructor[not set]{0.000000}
ScalarConstructor[not set]{0.000000}
}
Identifier[not set]{coords12}
ScalarConstructor[not set]{0.200000}
)
})"},
@ -1606,7 +1588,7 @@ INSTANTIATE_TEST_SUITE_P(
// ImageSampleDrefImplicitLod with ConstOffset
DeclSampledImageCase{
"%result = OpImageSampleDrefImplicitLod %v4float "
"%sampled_image %coords %depth ConstOffset %offsets2d",
"%sampled_image %coords12 %depth ConstOffset %offsets2d",
R"(
DecoratedVariable{
Decorations{
@ -1632,17 +1614,9 @@ INSTANTIATE_TEST_SUITE_P(
(
Identifier[not set]{x_20}
Identifier[not set]{x_10}
TypeConstructor[not set]{
__vec_2__f32
ScalarConstructor[not set]{0.000000}
ScalarConstructor[not set]{0.000000}
}
Identifier[not set]{coords12}
ScalarConstructor[not set]{0.200000}
TypeConstructor[not set]{
__vec_2__i32
ScalarConstructor[not set]{3}
ScalarConstructor[not set]{4}
}
Identifier[not set]{offsets2d}
)
})"}
@ -1654,9 +1628,10 @@ INSTANTIATE_TEST_SUITE_P(
::testing::Values(
// OpImageSampleExplicitLod - using Lod
DeclSampledImageCase{"%result = OpImageSampleExplicitLod "
"%v4float %sampled_image %coords Lod %float_null",
R"(
DeclSampledImageCase{
"%result = OpImageSampleExplicitLod "
"%v4float %sampled_image %coords12 Lod %float_null",
R"(
DecoratedVariable{
Decorations{
SetDecoration{0}
@ -1675,17 +1650,13 @@ INSTANTIATE_TEST_SUITE_P(
uniform_constant
__sampled_texture_2d__f32
})",
R"(
R"(
Call[not set]{
Identifier[not set]{textureSampleLevel}
(
Identifier[not set]{x_20}
Identifier[not set]{x_10}
TypeConstructor[not set]{
__vec_2__f32
ScalarConstructor[not set]{0.000000}
ScalarConstructor[not set]{0.000000}
}
Identifier[not set]{coords12}
ScalarConstructor[not set]{0.000000}
)
})"},
@ -1693,10 +1664,11 @@ INSTANTIATE_TEST_SUITE_P(
// OpImageSampleExplicitLod - using Lod and ConstOffset
// TODO(dneto) OpImageSampleExplicitLod - using Lod and unsigned
// ConstOffset
DeclSampledImageCase{"%result = OpImageSampleExplicitLod "
"%v4float %sampled_image %coords Lod|ConstOffset "
"%float_null %offsets2d",
R"(
DeclSampledImageCase{
"%result = OpImageSampleExplicitLod "
"%v4float %sampled_image %coords12 Lod|ConstOffset "
"%float_null %offsets2d",
R"(
DecoratedVariable{
Decorations{
SetDecoration{0}
@ -1715,30 +1687,22 @@ INSTANTIATE_TEST_SUITE_P(
uniform_constant
__sampled_texture_2d__f32
})",
R"(
R"(
Call[not set]{
Identifier[not set]{textureSampleLevel}
(
Identifier[not set]{x_20}
Identifier[not set]{x_10}
TypeConstructor[not set]{
__vec_2__f32
ScalarConstructor[not set]{0.000000}
ScalarConstructor[not set]{0.000000}
}
Identifier[not set]{coords12}
ScalarConstructor[not set]{0.000000}
TypeConstructor[not set]{
__vec_2__i32
ScalarConstructor[not set]{3}
ScalarConstructor[not set]{4}
}
Identifier[not set]{offsets2d}
)
})"},
// OpImageSampleExplicitLod - using Grad
DeclSampledImageCase{
"%result = OpImageSampleExplicitLod "
"%v4float %sampled_image %coords Grad %float_7 %float_null",
"%v4float %sampled_image %coords12 Grad %float_7 %float_null",
R"(
DecoratedVariable{
Decorations{
@ -1764,11 +1728,7 @@ INSTANTIATE_TEST_SUITE_P(
(
Identifier[not set]{x_20}
Identifier[not set]{x_10}
TypeConstructor[not set]{
__vec_2__f32
ScalarConstructor[not set]{0.000000}
ScalarConstructor[not set]{0.000000}
}
Identifier[not set]{coords12}
ScalarConstructor[not set]{7.000000}
ScalarConstructor[not set]{0.000000}
)
@ -1777,10 +1737,11 @@ INSTANTIATE_TEST_SUITE_P(
// OpImageSampleExplicitLod - using Grad and ConstOffset
// TODO(dneto): OpImageSampleExplicitLod - using Grad and unsigned
// ConstOffset
DeclSampledImageCase{"%result = OpImageSampleExplicitLod "
"%v4float %sampled_image %coords Grad|ConstOffset "
"%float_7 %float_null %offsets2d",
R"(
DeclSampledImageCase{
"%result = OpImageSampleExplicitLod "
"%v4float %sampled_image %coords12 Grad|ConstOffset "
"%float_7 %float_null %offsets2d",
R"(
DecoratedVariable{
Decorations{
SetDecoration{0}
@ -1799,24 +1760,16 @@ INSTANTIATE_TEST_SUITE_P(
uniform_constant
__sampled_texture_2d__f32
})",
R"(
R"(
Call[not set]{
Identifier[not set]{textureSampleGrad}
(
Identifier[not set]{x_20}
Identifier[not set]{x_10}
TypeConstructor[not set]{
__vec_2__f32
ScalarConstructor[not set]{0.000000}
ScalarConstructor[not set]{0.000000}
}
Identifier[not set]{coords12}
ScalarConstructor[not set]{7.000000}
ScalarConstructor[not set]{0.000000}
TypeConstructor[not set]{
__vec_2__i32
ScalarConstructor[not set]{3}
ScalarConstructor[not set]{4}
}
Identifier[not set]{offsets2d}
)
})"}));
@ -1863,7 +1816,6 @@ TEST_P(SpvParserTest_ImageCoordsTest, MakeCoordinateOperandsForImageAccess) {
%ptr_im_ty = OpTypePointer UniformConstant %im_ty
%si_ty = OpTypeSampledImage %im_ty
%coords = OpConstantNull %v2float
%ptr_float = OpTypePointer Function %float
@ -1882,7 +1834,6 @@ TEST_P(SpvParserTest_ImageCoordsTest, MakeCoordinateOperandsForImageAccess) {
%123 = OpCopyObject %v3float %vf123
%1234 = OpCopyObject %v4float %vf1234
%sam = OpLoad %sampler %10
%im = OpLoad %im_ty %20
%sampled_image = OpSampledImage %si_ty %im %sam
@ -2163,7 +2114,7 @@ INSTANTIATE_TEST_SUITE_P(BadInstructions,
"instruction: OpNop",
{}},
{"%float 1D 0 0 0 1 Unknown",
"%foo = OpCopyObject %float %float_1",
"%50 = OpCopyObject %float %float_1",
"internal error: couldn't find image for "
"%50 = OpCopyObject %6 %26",
{}},
@ -2184,36 +2135,36 @@ INSTANTIATE_TEST_SUITE_P(
"%result = OpImageSampleImplicitLod "
// bad type for coordinate: not a number
"%v4float %sampled_image %float_var",
"bad or unsupported coordinate type for image access: %50 = "
"OpImageSampleImplicitLod %24 %49 %2",
"bad or unsupported coordinate type for image access: %48 = "
"OpImageSampleImplicitLod %24 %47 %2",
{}},
{"%float 1D 0 1 0 1 Unknown", // 1DArray
"%result = OpImageSampleImplicitLod "
// 1 component, but need 2
"%v4float %sampled_image %1",
"image access required 2 coordinate components, but only 1 provided, "
"in: %50 = OpImageSampleImplicitLod %24 %49 %1",
"in: %48 = OpImageSampleImplicitLod %24 %47 %1",
{}},
{"%float 2D 0 0 0 1 Unknown", // 2D
"%result = OpImageSampleImplicitLod "
// 1 component, but need 2
"%v4float %sampled_image %1",
"image access required 2 coordinate components, but only 1 provided, "
"in: %50 = OpImageSampleImplicitLod %24 %49 %1",
"in: %48 = OpImageSampleImplicitLod %24 %47 %1",
{}},
{"%float 2D 0 1 0 1 Unknown", // 2DArray
"%result = OpImageSampleImplicitLod "
// 2 component, but need 3
"%v4float %sampled_image %12",
"image access required 3 coordinate components, but only 2 provided, "
"in: %50 = OpImageSampleImplicitLod %24 %49 %12",
"in: %48 = OpImageSampleImplicitLod %24 %47 %12",
{}},
{"%float 3D 0 0 0 1 Unknown", // 3D
"%result = OpImageSampleImplicitLod "
// 2 components, but need 3
"%v4float %sampled_image %12",
"image access required 3 coordinate components, but only 2 provided, "
"in: %50 = OpImageSampleImplicitLod %24 %49 %12",
"in: %48 = OpImageSampleImplicitLod %24 %47 %12",
{}},
}));