Add OpImageSampeProj* unit tests to end-to-end list

Fixed: tint:1143
Change-Id: Ib812b9c1c55e48ee78280c32b465afca1b707b82
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/65040
Auto-Submit: David Neto <dneto@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
This commit is contained in:
David Neto 2021-09-27 19:21:43 +00:00 committed by Tint LUCI CQ
parent 40ef4a8269
commit e6f5730aef
17 changed files with 1918 additions and 10 deletions

View File

@ -934,11 +934,6 @@ TEST_P(SpvParserHandleTest_RegisterHandleUsage_SampledImage, Variable) {
// So don't emit them as part of a "passing" corpus. // So don't emit them as part of a "passing" corpus.
p->DeliberatelyInvalidSpirv(); p->DeliberatelyInvalidSpirv();
} }
if (inst.find("Proj") != std::string::npos) {
// WGSL does not support Projection variants of image sampling.
// So don't emit them as part of a "passing" corpus.
p->DeliberatelyInvalidSpirv();
}
if (inst.find("ImageQueryLod") != std::string::npos) { if (inst.find("ImageQueryLod") != std::string::npos) {
// WGSL does not support querying image level of detail. // WGSL does not support querying image level of detail.
// So don't emit them as part of a "passing" corpus. // So don't emit them as part of a "passing" corpus.
@ -996,11 +991,6 @@ TEST_P(SpvParserHandleTest_RegisterHandleUsage_SampledImage, FunctionParam) {
// So don't emit them as part of a "passing" corpus. // So don't emit them as part of a "passing" corpus.
p->DeliberatelyInvalidSpirv(); p->DeliberatelyInvalidSpirv();
} }
if (inst.find("Proj") != std::string::npos) {
// WGSL does not support Projection variants of image sampling.
// So don't emit them as part of a "passing" corpus.
p->DeliberatelyInvalidSpirv();
}
if (inst.find("ImageQueryLod") != std::string::npos) { if (inst.find("ImageQueryLod") != std::string::npos) {
// WGSL does not support querying image level of detail. // WGSL does not support querying image level of detail.
// So don't emit them as part of a "passing" corpus. // So don't emit them as part of a "passing" corpus.

View File

@ -0,0 +1,112 @@
; Test: ImageSampleProjDrefExplicitLod_CheckForLod0_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_0.spvasm
; SPIR-V
; Version: 1.0
; Generator: Khronos SPIR-V Tools Assembler; 0
; Bound: 1001
; Schema: 0
OpCapability Shader
OpCapability Sampled1D
OpCapability Image1D
OpCapability StorageImageExtendedFormats
OpCapability ImageQuery
OpMemoryModel Logical Simple
OpEntryPoint Fragment %100 "main"
OpExecutionMode %100 OriginUpperLeft
OpName %float_var "float_var"
OpName %ptr_float "ptr_float"
OpName %i1 "i1"
OpName %vi12 "vi12"
OpName %vi123 "vi123"
OpName %vi1234 "vi1234"
OpName %u1 "u1"
OpName %vu12 "vu12"
OpName %vu123 "vu123"
OpName %vu1234 "vu1234"
OpName %f1 "f1"
OpName %vf12 "vf12"
OpName %vf123 "vf123"
OpName %vf1234 "vf1234"
OpDecorate %10 DescriptorSet 0
OpDecorate %10 Binding 0
OpDecorate %20 DescriptorSet 2
OpDecorate %20 Binding 1
OpDecorate %30 DescriptorSet 0
OpDecorate %30 Binding 1
%void = OpTypeVoid
%17 = OpTypeFunction %void
%float = OpTypeFloat 32
%uint = OpTypeInt 32 0
%int = OpTypeInt 32 1
%int_0 = OpConstant %int 0
%int_1 = OpConstant %int 1
%int_2 = OpConstant %int 2
%int_3 = OpConstant %int 3
%int_4 = OpConstant %int 4
%uint_0 = OpConstant %uint 0
%uint_1 = OpConstant %uint 1
%uint_2 = OpConstant %uint 2
%uint_3 = OpConstant %uint 3
%uint_4 = OpConstant %uint 4
%uint_100 = OpConstant %uint 100
%v2int = OpTypeVector %int 2
%v3int = OpTypeVector %int 3
%v4int = OpTypeVector %int 4
%v2uint = OpTypeVector %uint 2
%v3uint = OpTypeVector %uint 3
%v4uint = OpTypeVector %uint 4
%v2float = OpTypeVector %float 2
%v3float = OpTypeVector %float 3
%v4float = OpTypeVector %float 4
%43 = OpConstantNull %float
%float_0 = OpConstant %float 0
%float_1 = OpConstant %float 1
%float_2 = OpConstant %float 2
%float_3 = OpConstant %float 3
%float_4 = OpConstant %float 4
%float_7 = OpConstant %float 7
%50 = OpConstantNull %v2float
%51 = OpConstantNull %v3float
%52 = OpConstantNull %v4float
%53 = OpConstantComposite %v2int %int_1 %int_2
%54 = OpConstantComposite %v3int %int_1 %int_2 %int_3
%55 = OpConstantComposite %v4int %int_1 %int_2 %int_3 %int_4
%56 = OpConstantComposite %v2uint %uint_1 %uint_2
%57 = OpConstantComposite %v3uint %uint_1 %uint_2 %uint_3
%58 = OpConstantComposite %v4uint %uint_1 %uint_2 %uint_3 %uint_4
%59 = OpConstantComposite %v2float %float_1 %float_2
%60 = OpConstantComposite %v2float %float_2 %float_1
%61 = OpConstantComposite %v3float %float_1 %float_2 %float_3
%62 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
%float_0_200000003 = OpConstant %float 0.200000003
%64 = OpTypeSampler
%_ptr_UniformConstant_64 = OpTypePointer UniformConstant %64
%66 = OpTypeImage %float 2D 1 0 0 1 Unknown
%_ptr_UniformConstant_66 = OpTypePointer UniformConstant %66
%68 = OpTypeSampledImage %66
%ptr_float = OpTypePointer Function %float
%10 = OpVariable %_ptr_UniformConstant_64 UniformConstant
%20 = OpVariable %_ptr_UniformConstant_66 UniformConstant
%30 = OpVariable %_ptr_UniformConstant_64 UniformConstant
%100 = OpFunction %void None %17
%69 = OpLabel
%float_var = OpVariable %ptr_float Function
%i1 = OpCopyObject %int %int_1
%vi12 = OpCopyObject %v2int %53
%vi123 = OpCopyObject %v3int %54
%vi1234 = OpCopyObject %v4int %55
%u1 = OpCopyObject %uint %uint_1
%vu12 = OpCopyObject %v2uint %56
%vu123 = OpCopyObject %v3uint %57
%vu1234 = OpCopyObject %v4uint %58
%f1 = OpCopyObject %float %float_1
%vf12 = OpCopyObject %v2float %59
%vf123 = OpCopyObject %v3float %61
%vf1234 = OpCopyObject %v4float %62
%70 = OpLoad %64 %10
%71 = OpLoad %66 %20
%72 = OpSampledImage %68 %71 %70
%73 = OpImageSampleProjDrefExplicitLod %float %72 %vf1234 %float_0_200000003 Lod %float_0
%1000 = OpCopyObject %uint %uint_0
OpReturn
OpFunctionEnd

View File

@ -0,0 +1,112 @@
; Test: ImageSampleProjDrefExplicitLod_CheckForLod0_SpvParserHandleTest_ImageCoordsTest_MakeCoordinateOperandsForImageAccess_1.spvasm
; SPIR-V
; Version: 1.0
; Generator: Khronos SPIR-V Tools Assembler; 0
; Bound: 1001
; Schema: 0
OpCapability Shader
OpCapability Sampled1D
OpCapability Image1D
OpCapability StorageImageExtendedFormats
OpCapability ImageQuery
OpMemoryModel Logical Simple
OpEntryPoint Fragment %100 "main"
OpExecutionMode %100 OriginUpperLeft
OpName %float_var "float_var"
OpName %ptr_float "ptr_float"
OpName %i1 "i1"
OpName %vi12 "vi12"
OpName %vi123 "vi123"
OpName %vi1234 "vi1234"
OpName %u1 "u1"
OpName %vu12 "vu12"
OpName %vu123 "vu123"
OpName %vu1234 "vu1234"
OpName %f1 "f1"
OpName %vf12 "vf12"
OpName %vf123 "vf123"
OpName %vf1234 "vf1234"
OpDecorate %10 DescriptorSet 0
OpDecorate %10 Binding 0
OpDecorate %20 DescriptorSet 2
OpDecorate %20 Binding 1
OpDecorate %30 DescriptorSet 0
OpDecorate %30 Binding 1
%void = OpTypeVoid
%17 = OpTypeFunction %void
%float = OpTypeFloat 32
%uint = OpTypeInt 32 0
%int = OpTypeInt 32 1
%int_0 = OpConstant %int 0
%int_1 = OpConstant %int 1
%int_2 = OpConstant %int 2
%int_3 = OpConstant %int 3
%int_4 = OpConstant %int 4
%uint_0 = OpConstant %uint 0
%uint_1 = OpConstant %uint 1
%uint_2 = OpConstant %uint 2
%uint_3 = OpConstant %uint 3
%uint_4 = OpConstant %uint 4
%uint_100 = OpConstant %uint 100
%v2int = OpTypeVector %int 2
%v3int = OpTypeVector %int 3
%v4int = OpTypeVector %int 4
%v2uint = OpTypeVector %uint 2
%v3uint = OpTypeVector %uint 3
%v4uint = OpTypeVector %uint 4
%v2float = OpTypeVector %float 2
%v3float = OpTypeVector %float 3
%v4float = OpTypeVector %float 4
%43 = OpConstantNull %float
%float_0 = OpConstant %float 0
%float_1 = OpConstant %float 1
%float_2 = OpConstant %float 2
%float_3 = OpConstant %float 3
%float_4 = OpConstant %float 4
%float_7 = OpConstant %float 7
%50 = OpConstantNull %v2float
%51 = OpConstantNull %v3float
%52 = OpConstantNull %v4float
%53 = OpConstantComposite %v2int %int_1 %int_2
%54 = OpConstantComposite %v3int %int_1 %int_2 %int_3
%55 = OpConstantComposite %v4int %int_1 %int_2 %int_3 %int_4
%56 = OpConstantComposite %v2uint %uint_1 %uint_2
%57 = OpConstantComposite %v3uint %uint_1 %uint_2 %uint_3
%58 = OpConstantComposite %v4uint %uint_1 %uint_2 %uint_3 %uint_4
%59 = OpConstantComposite %v2float %float_1 %float_2
%60 = OpConstantComposite %v2float %float_2 %float_1
%61 = OpConstantComposite %v3float %float_1 %float_2 %float_3
%62 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
%float_0_200000003 = OpConstant %float 0.200000003
%64 = OpTypeSampler
%_ptr_UniformConstant_64 = OpTypePointer UniformConstant %64
%66 = OpTypeImage %float 2D 1 0 0 1 Unknown
%_ptr_UniformConstant_66 = OpTypePointer UniformConstant %66
%68 = OpTypeSampledImage %66
%ptr_float = OpTypePointer Function %float
%10 = OpVariable %_ptr_UniformConstant_64 UniformConstant
%20 = OpVariable %_ptr_UniformConstant_66 UniformConstant
%30 = OpVariable %_ptr_UniformConstant_64 UniformConstant
%100 = OpFunction %void None %17
%69 = OpLabel
%float_var = OpVariable %ptr_float Function
%i1 = OpCopyObject %int %int_1
%vi12 = OpCopyObject %v2int %53
%vi123 = OpCopyObject %v3int %54
%vi1234 = OpCopyObject %v4int %55
%u1 = OpCopyObject %uint %uint_1
%vu12 = OpCopyObject %v2uint %56
%vu123 = OpCopyObject %v3uint %57
%vu1234 = OpCopyObject %v4uint %58
%f1 = OpCopyObject %float %float_1
%vf12 = OpCopyObject %v2float %59
%vf123 = OpCopyObject %v3float %61
%vf1234 = OpCopyObject %v4float %62
%70 = OpLoad %64 %10
%71 = OpLoad %66 %20
%72 = OpSampledImage %68 %71 %70
%73 = OpImageSampleProjDrefExplicitLod %float %72 %vf1234 %float_0_200000003 Lod %float_0
%1000 = OpCopyObject %uint %uint_0
OpReturn
OpFunctionEnd

View File

@ -0,0 +1,121 @@
; Test: ImageSampleProjDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm
; SPIR-V
; Version: 1.0
; Generator: Khronos SPIR-V Tools Assembler; 0
; Bound: 80
; Schema: 0
OpCapability Shader
OpCapability Sampled1D
OpCapability Image1D
OpCapability StorageImageExtendedFormats
OpCapability ImageQuery
OpMemoryModel Logical Simple
OpEntryPoint Fragment %1 "main"
OpExecutionMode %1 OriginUpperLeft
OpName %f1 "f1"
OpName %vf12 "vf12"
OpName %vf21 "vf21"
OpName %vf123 "vf123"
OpName %vf1234 "vf1234"
OpName %u1 "u1"
OpName %vu12 "vu12"
OpName %vu123 "vu123"
OpName %vu1234 "vu1234"
OpName %i1 "i1"
OpName %vi12 "vi12"
OpName %vi123 "vi123"
OpName %vi1234 "vi1234"
OpName %coords1 "coords1"
OpName %coords12 "coords12"
OpName %coords123 "coords123"
OpName %coords1234 "coords1234"
OpName %offsets2d "offsets2d"
OpName %u_offsets2d "u_offsets2d"
OpDecorate %10 DescriptorSet 0
OpDecorate %10 Binding 0
OpDecorate %20 DescriptorSet 2
OpDecorate %20 Binding 1
OpDecorate %30 DescriptorSet 0
OpDecorate %30 Binding 1
%void = OpTypeVoid
%24 = OpTypeFunction %void
%float = OpTypeFloat 32
%uint = OpTypeInt 32 0
%int = OpTypeInt 32 1
%int_0 = OpConstant %int 0
%int_1 = OpConstant %int 1
%int_2 = OpConstant %int 2
%int_3 = OpConstant %int 3
%int_4 = OpConstant %int 4
%uint_0 = OpConstant %uint 0
%uint_1 = OpConstant %uint 1
%uint_2 = OpConstant %uint 2
%uint_3 = OpConstant %uint 3
%uint_4 = OpConstant %uint 4
%uint_100 = OpConstant %uint 100
%v2int = OpTypeVector %int 2
%v3int = OpTypeVector %int 3
%v4int = OpTypeVector %int 4
%v2uint = OpTypeVector %uint 2
%v3uint = OpTypeVector %uint 3
%v4uint = OpTypeVector %uint 4
%v2float = OpTypeVector %float 2
%v3float = OpTypeVector %float 3
%v4float = OpTypeVector %float 4
%49 = OpConstantNull %float
%float_0 = OpConstant %float 0
%float_1 = OpConstant %float 1
%float_2 = OpConstant %float 2
%float_3 = OpConstant %float 3
%float_4 = OpConstant %float 4
%float_7 = OpConstant %float 7
%56 = OpConstantNull %v2float
%57 = OpConstantNull %v3float
%58 = OpConstantNull %v4float
%59 = OpConstantComposite %v2int %int_1 %int_2
%60 = OpConstantComposite %v3int %int_1 %int_2 %int_3
%61 = OpConstantComposite %v4int %int_1 %int_2 %int_3 %int_4
%62 = OpConstantComposite %v2uint %uint_1 %uint_2
%63 = OpConstantComposite %v3uint %uint_1 %uint_2 %uint_3
%64 = OpConstantComposite %v4uint %uint_1 %uint_2 %uint_3 %uint_4
%65 = OpConstantComposite %v2float %float_1 %float_2
%66 = OpConstantComposite %v2float %float_2 %float_1
%67 = OpConstantComposite %v3float %float_1 %float_2 %float_3
%68 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
%float_0_200000003 = OpConstant %float 0.200000003
%70 = OpTypeSampler
%_ptr_UniformConstant_70 = OpTypePointer UniformConstant %70
%72 = OpTypeImage %float 2D 1 0 0 1 Unknown
%_ptr_UniformConstant_72 = OpTypePointer UniformConstant %72
%74 = OpTypeSampledImage %72
%10 = OpVariable %_ptr_UniformConstant_70 UniformConstant
%20 = OpVariable %_ptr_UniformConstant_72 UniformConstant
%30 = OpVariable %_ptr_UniformConstant_70 UniformConstant
%offsets2d = OpConstantComposite %v2int %int_3 %int_4
%u_offsets2d = OpConstantComposite %v2uint %uint_3 %uint_4
%1 = OpFunction %void None %24
%75 = OpLabel
%f1 = OpCopyObject %float %float_1
%vf12 = OpCopyObject %v2float %65
%vf21 = OpCopyObject %v2float %66
%vf123 = OpCopyObject %v3float %67
%vf1234 = OpCopyObject %v4float %68
%i1 = OpCopyObject %int %int_1
%vi12 = OpCopyObject %v2int %59
%vi123 = OpCopyObject %v3int %60
%vi1234 = OpCopyObject %v4int %61
%u1 = OpCopyObject %uint %uint_1
%vu12 = OpCopyObject %v2uint %62
%vu123 = OpCopyObject %v3uint %63
%vu1234 = OpCopyObject %v4uint %64
%coords1 = OpCopyObject %float %float_1
%coords12 = OpCopyObject %v2float %vf12
%coords123 = OpCopyObject %v3float %vf123
%coords1234 = OpCopyObject %v4float %vf1234
%76 = OpLoad %70 %10
%77 = OpLoad %72 %20
%78 = OpSampledImage %74 %77 %76
%79 = OpImageSampleProjDrefImplicitLod %float %78 %coords123 %f1
OpReturn
OpFunctionEnd

View File

@ -0,0 +1,121 @@
; Test: ImageSampleProjDrefImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm
; SPIR-V
; Version: 1.0
; Generator: Khronos SPIR-V Tools Assembler; 0
; Bound: 80
; Schema: 0
OpCapability Shader
OpCapability Sampled1D
OpCapability Image1D
OpCapability StorageImageExtendedFormats
OpCapability ImageQuery
OpMemoryModel Logical Simple
OpEntryPoint Fragment %1 "main"
OpExecutionMode %1 OriginUpperLeft
OpName %f1 "f1"
OpName %vf12 "vf12"
OpName %vf21 "vf21"
OpName %vf123 "vf123"
OpName %vf1234 "vf1234"
OpName %u1 "u1"
OpName %vu12 "vu12"
OpName %vu123 "vu123"
OpName %vu1234 "vu1234"
OpName %i1 "i1"
OpName %vi12 "vi12"
OpName %vi123 "vi123"
OpName %vi1234 "vi1234"
OpName %coords1 "coords1"
OpName %coords12 "coords12"
OpName %coords123 "coords123"
OpName %coords1234 "coords1234"
OpName %offsets2d "offsets2d"
OpName %u_offsets2d "u_offsets2d"
OpDecorate %10 DescriptorSet 0
OpDecorate %10 Binding 0
OpDecorate %20 DescriptorSet 2
OpDecorate %20 Binding 1
OpDecorate %30 DescriptorSet 0
OpDecorate %30 Binding 1
%void = OpTypeVoid
%24 = OpTypeFunction %void
%float = OpTypeFloat 32
%uint = OpTypeInt 32 0
%int = OpTypeInt 32 1
%int_0 = OpConstant %int 0
%int_1 = OpConstant %int 1
%int_2 = OpConstant %int 2
%int_3 = OpConstant %int 3
%int_4 = OpConstant %int 4
%uint_0 = OpConstant %uint 0
%uint_1 = OpConstant %uint 1
%uint_2 = OpConstant %uint 2
%uint_3 = OpConstant %uint 3
%uint_4 = OpConstant %uint 4
%uint_100 = OpConstant %uint 100
%v2int = OpTypeVector %int 2
%v3int = OpTypeVector %int 3
%v4int = OpTypeVector %int 4
%v2uint = OpTypeVector %uint 2
%v3uint = OpTypeVector %uint 3
%v4uint = OpTypeVector %uint 4
%v2float = OpTypeVector %float 2
%v3float = OpTypeVector %float 3
%v4float = OpTypeVector %float 4
%49 = OpConstantNull %float
%float_0 = OpConstant %float 0
%float_1 = OpConstant %float 1
%float_2 = OpConstant %float 2
%float_3 = OpConstant %float 3
%float_4 = OpConstant %float 4
%float_7 = OpConstant %float 7
%56 = OpConstantNull %v2float
%57 = OpConstantNull %v3float
%58 = OpConstantNull %v4float
%59 = OpConstantComposite %v2int %int_1 %int_2
%60 = OpConstantComposite %v3int %int_1 %int_2 %int_3
%61 = OpConstantComposite %v4int %int_1 %int_2 %int_3 %int_4
%62 = OpConstantComposite %v2uint %uint_1 %uint_2
%63 = OpConstantComposite %v3uint %uint_1 %uint_2 %uint_3
%64 = OpConstantComposite %v4uint %uint_1 %uint_2 %uint_3 %uint_4
%65 = OpConstantComposite %v2float %float_1 %float_2
%66 = OpConstantComposite %v2float %float_2 %float_1
%67 = OpConstantComposite %v3float %float_1 %float_2 %float_3
%68 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
%float_0_200000003 = OpConstant %float 0.200000003
%70 = OpTypeSampler
%_ptr_UniformConstant_70 = OpTypePointer UniformConstant %70
%72 = OpTypeImage %float 2D 1 0 0 1 Unknown
%_ptr_UniformConstant_72 = OpTypePointer UniformConstant %72
%74 = OpTypeSampledImage %72
%10 = OpVariable %_ptr_UniformConstant_70 UniformConstant
%20 = OpVariable %_ptr_UniformConstant_72 UniformConstant
%30 = OpVariable %_ptr_UniformConstant_70 UniformConstant
%offsets2d = OpConstantComposite %v2int %int_3 %int_4
%u_offsets2d = OpConstantComposite %v2uint %uint_3 %uint_4
%1 = OpFunction %void None %24
%75 = OpLabel
%f1 = OpCopyObject %float %float_1
%vf12 = OpCopyObject %v2float %65
%vf21 = OpCopyObject %v2float %66
%vf123 = OpCopyObject %v3float %67
%vf1234 = OpCopyObject %v4float %68
%i1 = OpCopyObject %int %int_1
%vi12 = OpCopyObject %v2int %59
%vi123 = OpCopyObject %v3int %60
%vi1234 = OpCopyObject %v4int %61
%u1 = OpCopyObject %uint %uint_1
%vu12 = OpCopyObject %v2uint %62
%vu123 = OpCopyObject %v3uint %63
%vu1234 = OpCopyObject %v4uint %64
%coords1 = OpCopyObject %float %float_1
%coords12 = OpCopyObject %v2float %vf12
%coords123 = OpCopyObject %v3float %vf123
%coords1234 = OpCopyObject %v4float %vf1234
%76 = OpLoad %70 %10
%77 = OpLoad %72 %20
%78 = OpSampledImage %74 %77 %76
%79 = OpImageSampleProjDrefImplicitLod %float %78 %coords123 %f1 ConstOffset %offsets2d
OpReturn
OpFunctionEnd

View File

@ -0,0 +1,121 @@
; Test: ImageSampleProjExplicitLod_Grad_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm
; SPIR-V
; Version: 1.0
; Generator: Khronos SPIR-V Tools Assembler; 0
; Bound: 80
; Schema: 0
OpCapability Shader
OpCapability Sampled1D
OpCapability Image1D
OpCapability StorageImageExtendedFormats
OpCapability ImageQuery
OpMemoryModel Logical Simple
OpEntryPoint Fragment %1 "main"
OpExecutionMode %1 OriginUpperLeft
OpName %f1 "f1"
OpName %vf12 "vf12"
OpName %vf21 "vf21"
OpName %vf123 "vf123"
OpName %vf1234 "vf1234"
OpName %u1 "u1"
OpName %vu12 "vu12"
OpName %vu123 "vu123"
OpName %vu1234 "vu1234"
OpName %i1 "i1"
OpName %vi12 "vi12"
OpName %vi123 "vi123"
OpName %vi1234 "vi1234"
OpName %coords1 "coords1"
OpName %coords12 "coords12"
OpName %coords123 "coords123"
OpName %coords1234 "coords1234"
OpName %offsets2d "offsets2d"
OpName %u_offsets2d "u_offsets2d"
OpDecorate %10 DescriptorSet 0
OpDecorate %10 Binding 0
OpDecorate %20 DescriptorSet 2
OpDecorate %20 Binding 1
OpDecorate %30 DescriptorSet 0
OpDecorate %30 Binding 1
%void = OpTypeVoid
%24 = OpTypeFunction %void
%float = OpTypeFloat 32
%uint = OpTypeInt 32 0
%int = OpTypeInt 32 1
%int_0 = OpConstant %int 0
%int_1 = OpConstant %int 1
%int_2 = OpConstant %int 2
%int_3 = OpConstant %int 3
%int_4 = OpConstant %int 4
%uint_0 = OpConstant %uint 0
%uint_1 = OpConstant %uint 1
%uint_2 = OpConstant %uint 2
%uint_3 = OpConstant %uint 3
%uint_4 = OpConstant %uint 4
%uint_100 = OpConstant %uint 100
%v2int = OpTypeVector %int 2
%v3int = OpTypeVector %int 3
%v4int = OpTypeVector %int 4
%v2uint = OpTypeVector %uint 2
%v3uint = OpTypeVector %uint 3
%v4uint = OpTypeVector %uint 4
%v2float = OpTypeVector %float 2
%v3float = OpTypeVector %float 3
%v4float = OpTypeVector %float 4
%49 = OpConstantNull %float
%float_0 = OpConstant %float 0
%float_1 = OpConstant %float 1
%float_2 = OpConstant %float 2
%float_3 = OpConstant %float 3
%float_4 = OpConstant %float 4
%float_7 = OpConstant %float 7
%56 = OpConstantNull %v2float
%57 = OpConstantNull %v3float
%58 = OpConstantNull %v4float
%59 = OpConstantComposite %v2int %int_1 %int_2
%60 = OpConstantComposite %v3int %int_1 %int_2 %int_3
%61 = OpConstantComposite %v4int %int_1 %int_2 %int_3 %int_4
%62 = OpConstantComposite %v2uint %uint_1 %uint_2
%63 = OpConstantComposite %v3uint %uint_1 %uint_2 %uint_3
%64 = OpConstantComposite %v4uint %uint_1 %uint_2 %uint_3 %uint_4
%65 = OpConstantComposite %v2float %float_1 %float_2
%66 = OpConstantComposite %v2float %float_2 %float_1
%67 = OpConstantComposite %v3float %float_1 %float_2 %float_3
%68 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
%float_0_200000003 = OpConstant %float 0.200000003
%70 = OpTypeSampler
%_ptr_UniformConstant_70 = OpTypePointer UniformConstant %70
%72 = OpTypeImage %float 2D 0 0 0 1 Unknown
%_ptr_UniformConstant_72 = OpTypePointer UniformConstant %72
%74 = OpTypeSampledImage %72
%10 = OpVariable %_ptr_UniformConstant_70 UniformConstant
%20 = OpVariable %_ptr_UniformConstant_72 UniformConstant
%30 = OpVariable %_ptr_UniformConstant_70 UniformConstant
%offsets2d = OpConstantComposite %v2int %int_3 %int_4
%u_offsets2d = OpConstantComposite %v2uint %uint_3 %uint_4
%1 = OpFunction %void None %24
%75 = OpLabel
%f1 = OpCopyObject %float %float_1
%vf12 = OpCopyObject %v2float %65
%vf21 = OpCopyObject %v2float %66
%vf123 = OpCopyObject %v3float %67
%vf1234 = OpCopyObject %v4float %68
%i1 = OpCopyObject %int %int_1
%vi12 = OpCopyObject %v2int %59
%vi123 = OpCopyObject %v3int %60
%vi1234 = OpCopyObject %v4int %61
%u1 = OpCopyObject %uint %uint_1
%vu12 = OpCopyObject %v2uint %62
%vu123 = OpCopyObject %v3uint %63
%vu1234 = OpCopyObject %v4uint %64
%coords1 = OpCopyObject %float %float_1
%coords12 = OpCopyObject %v2float %vf12
%coords123 = OpCopyObject %v3float %vf123
%coords1234 = OpCopyObject %v4float %vf1234
%76 = OpLoad %70 %10
%77 = OpLoad %72 %20
%78 = OpSampledImage %74 %77 %76
%79 = OpImageSampleProjExplicitLod %v4float %78 %coords123 Grad %vf12 %vf21
OpReturn
OpFunctionEnd

View File

@ -0,0 +1,121 @@
; Test: ImageSampleProjExplicitLod_Grad_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm
; SPIR-V
; Version: 1.0
; Generator: Khronos SPIR-V Tools Assembler; 0
; Bound: 80
; Schema: 0
OpCapability Shader
OpCapability Sampled1D
OpCapability Image1D
OpCapability StorageImageExtendedFormats
OpCapability ImageQuery
OpMemoryModel Logical Simple
OpEntryPoint Fragment %1 "main"
OpExecutionMode %1 OriginUpperLeft
OpName %f1 "f1"
OpName %vf12 "vf12"
OpName %vf21 "vf21"
OpName %vf123 "vf123"
OpName %vf1234 "vf1234"
OpName %u1 "u1"
OpName %vu12 "vu12"
OpName %vu123 "vu123"
OpName %vu1234 "vu1234"
OpName %i1 "i1"
OpName %vi12 "vi12"
OpName %vi123 "vi123"
OpName %vi1234 "vi1234"
OpName %coords1 "coords1"
OpName %coords12 "coords12"
OpName %coords123 "coords123"
OpName %coords1234 "coords1234"
OpName %offsets2d "offsets2d"
OpName %u_offsets2d "u_offsets2d"
OpDecorate %10 DescriptorSet 0
OpDecorate %10 Binding 0
OpDecorate %20 DescriptorSet 2
OpDecorate %20 Binding 1
OpDecorate %30 DescriptorSet 0
OpDecorate %30 Binding 1
%void = OpTypeVoid
%24 = OpTypeFunction %void
%float = OpTypeFloat 32
%uint = OpTypeInt 32 0
%int = OpTypeInt 32 1
%int_0 = OpConstant %int 0
%int_1 = OpConstant %int 1
%int_2 = OpConstant %int 2
%int_3 = OpConstant %int 3
%int_4 = OpConstant %int 4
%uint_0 = OpConstant %uint 0
%uint_1 = OpConstant %uint 1
%uint_2 = OpConstant %uint 2
%uint_3 = OpConstant %uint 3
%uint_4 = OpConstant %uint 4
%uint_100 = OpConstant %uint 100
%v2int = OpTypeVector %int 2
%v3int = OpTypeVector %int 3
%v4int = OpTypeVector %int 4
%v2uint = OpTypeVector %uint 2
%v3uint = OpTypeVector %uint 3
%v4uint = OpTypeVector %uint 4
%v2float = OpTypeVector %float 2
%v3float = OpTypeVector %float 3
%v4float = OpTypeVector %float 4
%49 = OpConstantNull %float
%float_0 = OpConstant %float 0
%float_1 = OpConstant %float 1
%float_2 = OpConstant %float 2
%float_3 = OpConstant %float 3
%float_4 = OpConstant %float 4
%float_7 = OpConstant %float 7
%56 = OpConstantNull %v2float
%57 = OpConstantNull %v3float
%58 = OpConstantNull %v4float
%59 = OpConstantComposite %v2int %int_1 %int_2
%60 = OpConstantComposite %v3int %int_1 %int_2 %int_3
%61 = OpConstantComposite %v4int %int_1 %int_2 %int_3 %int_4
%62 = OpConstantComposite %v2uint %uint_1 %uint_2
%63 = OpConstantComposite %v3uint %uint_1 %uint_2 %uint_3
%64 = OpConstantComposite %v4uint %uint_1 %uint_2 %uint_3 %uint_4
%65 = OpConstantComposite %v2float %float_1 %float_2
%66 = OpConstantComposite %v2float %float_2 %float_1
%67 = OpConstantComposite %v3float %float_1 %float_2 %float_3
%68 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
%float_0_200000003 = OpConstant %float 0.200000003
%70 = OpTypeSampler
%_ptr_UniformConstant_70 = OpTypePointer UniformConstant %70
%72 = OpTypeImage %float 2D 0 0 0 1 Unknown
%_ptr_UniformConstant_72 = OpTypePointer UniformConstant %72
%74 = OpTypeSampledImage %72
%10 = OpVariable %_ptr_UniformConstant_70 UniformConstant
%20 = OpVariable %_ptr_UniformConstant_72 UniformConstant
%30 = OpVariable %_ptr_UniformConstant_70 UniformConstant
%offsets2d = OpConstantComposite %v2int %int_3 %int_4
%u_offsets2d = OpConstantComposite %v2uint %uint_3 %uint_4
%1 = OpFunction %void None %24
%75 = OpLabel
%f1 = OpCopyObject %float %float_1
%vf12 = OpCopyObject %v2float %65
%vf21 = OpCopyObject %v2float %66
%vf123 = OpCopyObject %v3float %67
%vf1234 = OpCopyObject %v4float %68
%i1 = OpCopyObject %int %int_1
%vi12 = OpCopyObject %v2int %59
%vi123 = OpCopyObject %v3int %60
%vi1234 = OpCopyObject %v4int %61
%u1 = OpCopyObject %uint %uint_1
%vu12 = OpCopyObject %v2uint %62
%vu123 = OpCopyObject %v3uint %63
%vu1234 = OpCopyObject %v4uint %64
%coords1 = OpCopyObject %float %float_1
%coords12 = OpCopyObject %v2float %vf12
%coords123 = OpCopyObject %v3float %vf123
%coords1234 = OpCopyObject %v4float %vf1234
%76 = OpLoad %70 %10
%77 = OpLoad %72 %20
%78 = OpSampledImage %74 %77 %76
%79 = OpImageSampleProjExplicitLod %v4float %78 %coords123 Grad|ConstOffset %vf12 %vf21 %offsets2d
OpReturn
OpFunctionEnd

View File

@ -0,0 +1,121 @@
; Test: ImageSampleProjExplicitLod_Lod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm
; SPIR-V
; Version: 1.0
; Generator: Khronos SPIR-V Tools Assembler; 0
; Bound: 80
; Schema: 0
OpCapability Shader
OpCapability Sampled1D
OpCapability Image1D
OpCapability StorageImageExtendedFormats
OpCapability ImageQuery
OpMemoryModel Logical Simple
OpEntryPoint Fragment %1 "main"
OpExecutionMode %1 OriginUpperLeft
OpName %f1 "f1"
OpName %vf12 "vf12"
OpName %vf21 "vf21"
OpName %vf123 "vf123"
OpName %vf1234 "vf1234"
OpName %u1 "u1"
OpName %vu12 "vu12"
OpName %vu123 "vu123"
OpName %vu1234 "vu1234"
OpName %i1 "i1"
OpName %vi12 "vi12"
OpName %vi123 "vi123"
OpName %vi1234 "vi1234"
OpName %coords1 "coords1"
OpName %coords12 "coords12"
OpName %coords123 "coords123"
OpName %coords1234 "coords1234"
OpName %offsets2d "offsets2d"
OpName %u_offsets2d "u_offsets2d"
OpDecorate %10 DescriptorSet 0
OpDecorate %10 Binding 0
OpDecorate %20 DescriptorSet 2
OpDecorate %20 Binding 1
OpDecorate %30 DescriptorSet 0
OpDecorate %30 Binding 1
%void = OpTypeVoid
%24 = OpTypeFunction %void
%float = OpTypeFloat 32
%uint = OpTypeInt 32 0
%int = OpTypeInt 32 1
%int_0 = OpConstant %int 0
%int_1 = OpConstant %int 1
%int_2 = OpConstant %int 2
%int_3 = OpConstant %int 3
%int_4 = OpConstant %int 4
%uint_0 = OpConstant %uint 0
%uint_1 = OpConstant %uint 1
%uint_2 = OpConstant %uint 2
%uint_3 = OpConstant %uint 3
%uint_4 = OpConstant %uint 4
%uint_100 = OpConstant %uint 100
%v2int = OpTypeVector %int 2
%v3int = OpTypeVector %int 3
%v4int = OpTypeVector %int 4
%v2uint = OpTypeVector %uint 2
%v3uint = OpTypeVector %uint 3
%v4uint = OpTypeVector %uint 4
%v2float = OpTypeVector %float 2
%v3float = OpTypeVector %float 3
%v4float = OpTypeVector %float 4
%49 = OpConstantNull %float
%float_0 = OpConstant %float 0
%float_1 = OpConstant %float 1
%float_2 = OpConstant %float 2
%float_3 = OpConstant %float 3
%float_4 = OpConstant %float 4
%float_7 = OpConstant %float 7
%56 = OpConstantNull %v2float
%57 = OpConstantNull %v3float
%58 = OpConstantNull %v4float
%59 = OpConstantComposite %v2int %int_1 %int_2
%60 = OpConstantComposite %v3int %int_1 %int_2 %int_3
%61 = OpConstantComposite %v4int %int_1 %int_2 %int_3 %int_4
%62 = OpConstantComposite %v2uint %uint_1 %uint_2
%63 = OpConstantComposite %v3uint %uint_1 %uint_2 %uint_3
%64 = OpConstantComposite %v4uint %uint_1 %uint_2 %uint_3 %uint_4
%65 = OpConstantComposite %v2float %float_1 %float_2
%66 = OpConstantComposite %v2float %float_2 %float_1
%67 = OpConstantComposite %v3float %float_1 %float_2 %float_3
%68 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
%float_0_200000003 = OpConstant %float 0.200000003
%70 = OpTypeSampler
%_ptr_UniformConstant_70 = OpTypePointer UniformConstant %70
%72 = OpTypeImage %float 2D 0 0 0 1 Unknown
%_ptr_UniformConstant_72 = OpTypePointer UniformConstant %72
%74 = OpTypeSampledImage %72
%10 = OpVariable %_ptr_UniformConstant_70 UniformConstant
%20 = OpVariable %_ptr_UniformConstant_72 UniformConstant
%30 = OpVariable %_ptr_UniformConstant_70 UniformConstant
%offsets2d = OpConstantComposite %v2int %int_3 %int_4
%u_offsets2d = OpConstantComposite %v2uint %uint_3 %uint_4
%1 = OpFunction %void None %24
%75 = OpLabel
%f1 = OpCopyObject %float %float_1
%vf12 = OpCopyObject %v2float %65
%vf21 = OpCopyObject %v2float %66
%vf123 = OpCopyObject %v3float %67
%vf1234 = OpCopyObject %v4float %68
%i1 = OpCopyObject %int %int_1
%vi12 = OpCopyObject %v2int %59
%vi123 = OpCopyObject %v3int %60
%vi1234 = OpCopyObject %v4int %61
%u1 = OpCopyObject %uint %uint_1
%vu12 = OpCopyObject %v2uint %62
%vu123 = OpCopyObject %v3uint %63
%vu1234 = OpCopyObject %v4uint %64
%coords1 = OpCopyObject %float %float_1
%coords12 = OpCopyObject %v2float %vf12
%coords123 = OpCopyObject %v3float %vf123
%coords1234 = OpCopyObject %v4float %vf1234
%76 = OpLoad %70 %10
%77 = OpLoad %72 %20
%78 = OpSampledImage %74 %77 %76
%79 = OpImageSampleProjExplicitLod %v4float %78 %coords123 Lod %f1
OpReturn
OpFunctionEnd

View File

@ -0,0 +1,121 @@
; Test: ImageSampleProjExplicitLod_Lod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm
; SPIR-V
; Version: 1.0
; Generator: Khronos SPIR-V Tools Assembler; 0
; Bound: 80
; Schema: 0
OpCapability Shader
OpCapability Sampled1D
OpCapability Image1D
OpCapability StorageImageExtendedFormats
OpCapability ImageQuery
OpMemoryModel Logical Simple
OpEntryPoint Fragment %1 "main"
OpExecutionMode %1 OriginUpperLeft
OpName %f1 "f1"
OpName %vf12 "vf12"
OpName %vf21 "vf21"
OpName %vf123 "vf123"
OpName %vf1234 "vf1234"
OpName %u1 "u1"
OpName %vu12 "vu12"
OpName %vu123 "vu123"
OpName %vu1234 "vu1234"
OpName %i1 "i1"
OpName %vi12 "vi12"
OpName %vi123 "vi123"
OpName %vi1234 "vi1234"
OpName %coords1 "coords1"
OpName %coords12 "coords12"
OpName %coords123 "coords123"
OpName %coords1234 "coords1234"
OpName %offsets2d "offsets2d"
OpName %u_offsets2d "u_offsets2d"
OpDecorate %10 DescriptorSet 0
OpDecorate %10 Binding 0
OpDecorate %20 DescriptorSet 2
OpDecorate %20 Binding 1
OpDecorate %30 DescriptorSet 0
OpDecorate %30 Binding 1
%void = OpTypeVoid
%24 = OpTypeFunction %void
%float = OpTypeFloat 32
%uint = OpTypeInt 32 0
%int = OpTypeInt 32 1
%int_0 = OpConstant %int 0
%int_1 = OpConstant %int 1
%int_2 = OpConstant %int 2
%int_3 = OpConstant %int 3
%int_4 = OpConstant %int 4
%uint_0 = OpConstant %uint 0
%uint_1 = OpConstant %uint 1
%uint_2 = OpConstant %uint 2
%uint_3 = OpConstant %uint 3
%uint_4 = OpConstant %uint 4
%uint_100 = OpConstant %uint 100
%v2int = OpTypeVector %int 2
%v3int = OpTypeVector %int 3
%v4int = OpTypeVector %int 4
%v2uint = OpTypeVector %uint 2
%v3uint = OpTypeVector %uint 3
%v4uint = OpTypeVector %uint 4
%v2float = OpTypeVector %float 2
%v3float = OpTypeVector %float 3
%v4float = OpTypeVector %float 4
%49 = OpConstantNull %float
%float_0 = OpConstant %float 0
%float_1 = OpConstant %float 1
%float_2 = OpConstant %float 2
%float_3 = OpConstant %float 3
%float_4 = OpConstant %float 4
%float_7 = OpConstant %float 7
%56 = OpConstantNull %v2float
%57 = OpConstantNull %v3float
%58 = OpConstantNull %v4float
%59 = OpConstantComposite %v2int %int_1 %int_2
%60 = OpConstantComposite %v3int %int_1 %int_2 %int_3
%61 = OpConstantComposite %v4int %int_1 %int_2 %int_3 %int_4
%62 = OpConstantComposite %v2uint %uint_1 %uint_2
%63 = OpConstantComposite %v3uint %uint_1 %uint_2 %uint_3
%64 = OpConstantComposite %v4uint %uint_1 %uint_2 %uint_3 %uint_4
%65 = OpConstantComposite %v2float %float_1 %float_2
%66 = OpConstantComposite %v2float %float_2 %float_1
%67 = OpConstantComposite %v3float %float_1 %float_2 %float_3
%68 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
%float_0_200000003 = OpConstant %float 0.200000003
%70 = OpTypeSampler
%_ptr_UniformConstant_70 = OpTypePointer UniformConstant %70
%72 = OpTypeImage %float 2D 0 0 0 1 Unknown
%_ptr_UniformConstant_72 = OpTypePointer UniformConstant %72
%74 = OpTypeSampledImage %72
%10 = OpVariable %_ptr_UniformConstant_70 UniformConstant
%20 = OpVariable %_ptr_UniformConstant_72 UniformConstant
%30 = OpVariable %_ptr_UniformConstant_70 UniformConstant
%offsets2d = OpConstantComposite %v2int %int_3 %int_4
%u_offsets2d = OpConstantComposite %v2uint %uint_3 %uint_4
%1 = OpFunction %void None %24
%75 = OpLabel
%f1 = OpCopyObject %float %float_1
%vf12 = OpCopyObject %v2float %65
%vf21 = OpCopyObject %v2float %66
%vf123 = OpCopyObject %v3float %67
%vf1234 = OpCopyObject %v4float %68
%i1 = OpCopyObject %int %int_1
%vi12 = OpCopyObject %v2int %59
%vi123 = OpCopyObject %v3int %60
%vi1234 = OpCopyObject %v4int %61
%u1 = OpCopyObject %uint %uint_1
%vu12 = OpCopyObject %v2uint %62
%vu123 = OpCopyObject %v3uint %63
%vu1234 = OpCopyObject %v4uint %64
%coords1 = OpCopyObject %float %float_1
%coords12 = OpCopyObject %v2float %vf12
%coords123 = OpCopyObject %v3float %vf123
%coords1234 = OpCopyObject %v4float %vf1234
%76 = OpLoad %70 %10
%77 = OpLoad %72 %20
%78 = OpSampledImage %74 %77 %76
%79 = OpImageSampleProjExplicitLod %v4float %78 %coords123 Lod|ConstOffset %f1 %offsets2d
OpReturn
OpFunctionEnd

View File

@ -0,0 +1,121 @@
; Test: ImageSampleProjImplicitLod_Bias_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm
; SPIR-V
; Version: 1.0
; Generator: Khronos SPIR-V Tools Assembler; 0
; Bound: 80
; Schema: 0
OpCapability Shader
OpCapability Sampled1D
OpCapability Image1D
OpCapability StorageImageExtendedFormats
OpCapability ImageQuery
OpMemoryModel Logical Simple
OpEntryPoint Fragment %1 "main"
OpExecutionMode %1 OriginUpperLeft
OpName %f1 "f1"
OpName %vf12 "vf12"
OpName %vf21 "vf21"
OpName %vf123 "vf123"
OpName %vf1234 "vf1234"
OpName %u1 "u1"
OpName %vu12 "vu12"
OpName %vu123 "vu123"
OpName %vu1234 "vu1234"
OpName %i1 "i1"
OpName %vi12 "vi12"
OpName %vi123 "vi123"
OpName %vi1234 "vi1234"
OpName %coords1 "coords1"
OpName %coords12 "coords12"
OpName %coords123 "coords123"
OpName %coords1234 "coords1234"
OpName %offsets2d "offsets2d"
OpName %u_offsets2d "u_offsets2d"
OpDecorate %10 DescriptorSet 0
OpDecorate %10 Binding 0
OpDecorate %20 DescriptorSet 2
OpDecorate %20 Binding 1
OpDecorate %30 DescriptorSet 0
OpDecorate %30 Binding 1
%void = OpTypeVoid
%24 = OpTypeFunction %void
%float = OpTypeFloat 32
%uint = OpTypeInt 32 0
%int = OpTypeInt 32 1
%int_0 = OpConstant %int 0
%int_1 = OpConstant %int 1
%int_2 = OpConstant %int 2
%int_3 = OpConstant %int 3
%int_4 = OpConstant %int 4
%uint_0 = OpConstant %uint 0
%uint_1 = OpConstant %uint 1
%uint_2 = OpConstant %uint 2
%uint_3 = OpConstant %uint 3
%uint_4 = OpConstant %uint 4
%uint_100 = OpConstant %uint 100
%v2int = OpTypeVector %int 2
%v3int = OpTypeVector %int 3
%v4int = OpTypeVector %int 4
%v2uint = OpTypeVector %uint 2
%v3uint = OpTypeVector %uint 3
%v4uint = OpTypeVector %uint 4
%v2float = OpTypeVector %float 2
%v3float = OpTypeVector %float 3
%v4float = OpTypeVector %float 4
%49 = OpConstantNull %float
%float_0 = OpConstant %float 0
%float_1 = OpConstant %float 1
%float_2 = OpConstant %float 2
%float_3 = OpConstant %float 3
%float_4 = OpConstant %float 4
%float_7 = OpConstant %float 7
%56 = OpConstantNull %v2float
%57 = OpConstantNull %v3float
%58 = OpConstantNull %v4float
%59 = OpConstantComposite %v2int %int_1 %int_2
%60 = OpConstantComposite %v3int %int_1 %int_2 %int_3
%61 = OpConstantComposite %v4int %int_1 %int_2 %int_3 %int_4
%62 = OpConstantComposite %v2uint %uint_1 %uint_2
%63 = OpConstantComposite %v3uint %uint_1 %uint_2 %uint_3
%64 = OpConstantComposite %v4uint %uint_1 %uint_2 %uint_3 %uint_4
%65 = OpConstantComposite %v2float %float_1 %float_2
%66 = OpConstantComposite %v2float %float_2 %float_1
%67 = OpConstantComposite %v3float %float_1 %float_2 %float_3
%68 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
%float_0_200000003 = OpConstant %float 0.200000003
%70 = OpTypeSampler
%_ptr_UniformConstant_70 = OpTypePointer UniformConstant %70
%72 = OpTypeImage %float 2D 0 0 0 1 Unknown
%_ptr_UniformConstant_72 = OpTypePointer UniformConstant %72
%74 = OpTypeSampledImage %72
%10 = OpVariable %_ptr_UniformConstant_70 UniformConstant
%20 = OpVariable %_ptr_UniformConstant_72 UniformConstant
%30 = OpVariable %_ptr_UniformConstant_70 UniformConstant
%offsets2d = OpConstantComposite %v2int %int_3 %int_4
%u_offsets2d = OpConstantComposite %v2uint %uint_3 %uint_4
%1 = OpFunction %void None %24
%75 = OpLabel
%f1 = OpCopyObject %float %float_1
%vf12 = OpCopyObject %v2float %65
%vf21 = OpCopyObject %v2float %66
%vf123 = OpCopyObject %v3float %67
%vf1234 = OpCopyObject %v4float %68
%i1 = OpCopyObject %int %int_1
%vi12 = OpCopyObject %v2int %59
%vi123 = OpCopyObject %v3int %60
%vi1234 = OpCopyObject %v4int %61
%u1 = OpCopyObject %uint %uint_1
%vu12 = OpCopyObject %v2uint %62
%vu123 = OpCopyObject %v3uint %63
%vu1234 = OpCopyObject %v4uint %64
%coords1 = OpCopyObject %float %float_1
%coords12 = OpCopyObject %v2float %vf12
%coords123 = OpCopyObject %v3float %vf123
%coords1234 = OpCopyObject %v4float %vf1234
%76 = OpLoad %70 %10
%77 = OpLoad %72 %20
%78 = OpSampledImage %74 %77 %76
%79 = OpImageSampleProjImplicitLod %v4float %78 %coords123 Bias %float_7
OpReturn
OpFunctionEnd

View File

@ -0,0 +1,121 @@
; Test: ImageSampleProjImplicitLod_Bias_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm
; SPIR-V
; Version: 1.0
; Generator: Khronos SPIR-V Tools Assembler; 0
; Bound: 80
; Schema: 0
OpCapability Shader
OpCapability Sampled1D
OpCapability Image1D
OpCapability StorageImageExtendedFormats
OpCapability ImageQuery
OpMemoryModel Logical Simple
OpEntryPoint Fragment %1 "main"
OpExecutionMode %1 OriginUpperLeft
OpName %f1 "f1"
OpName %vf12 "vf12"
OpName %vf21 "vf21"
OpName %vf123 "vf123"
OpName %vf1234 "vf1234"
OpName %u1 "u1"
OpName %vu12 "vu12"
OpName %vu123 "vu123"
OpName %vu1234 "vu1234"
OpName %i1 "i1"
OpName %vi12 "vi12"
OpName %vi123 "vi123"
OpName %vi1234 "vi1234"
OpName %coords1 "coords1"
OpName %coords12 "coords12"
OpName %coords123 "coords123"
OpName %coords1234 "coords1234"
OpName %offsets2d "offsets2d"
OpName %u_offsets2d "u_offsets2d"
OpDecorate %10 DescriptorSet 0
OpDecorate %10 Binding 0
OpDecorate %20 DescriptorSet 2
OpDecorate %20 Binding 1
OpDecorate %30 DescriptorSet 0
OpDecorate %30 Binding 1
%void = OpTypeVoid
%24 = OpTypeFunction %void
%float = OpTypeFloat 32
%uint = OpTypeInt 32 0
%int = OpTypeInt 32 1
%int_0 = OpConstant %int 0
%int_1 = OpConstant %int 1
%int_2 = OpConstant %int 2
%int_3 = OpConstant %int 3
%int_4 = OpConstant %int 4
%uint_0 = OpConstant %uint 0
%uint_1 = OpConstant %uint 1
%uint_2 = OpConstant %uint 2
%uint_3 = OpConstant %uint 3
%uint_4 = OpConstant %uint 4
%uint_100 = OpConstant %uint 100
%v2int = OpTypeVector %int 2
%v3int = OpTypeVector %int 3
%v4int = OpTypeVector %int 4
%v2uint = OpTypeVector %uint 2
%v3uint = OpTypeVector %uint 3
%v4uint = OpTypeVector %uint 4
%v2float = OpTypeVector %float 2
%v3float = OpTypeVector %float 3
%v4float = OpTypeVector %float 4
%49 = OpConstantNull %float
%float_0 = OpConstant %float 0
%float_1 = OpConstant %float 1
%float_2 = OpConstant %float 2
%float_3 = OpConstant %float 3
%float_4 = OpConstant %float 4
%float_7 = OpConstant %float 7
%56 = OpConstantNull %v2float
%57 = OpConstantNull %v3float
%58 = OpConstantNull %v4float
%59 = OpConstantComposite %v2int %int_1 %int_2
%60 = OpConstantComposite %v3int %int_1 %int_2 %int_3
%61 = OpConstantComposite %v4int %int_1 %int_2 %int_3 %int_4
%62 = OpConstantComposite %v2uint %uint_1 %uint_2
%63 = OpConstantComposite %v3uint %uint_1 %uint_2 %uint_3
%64 = OpConstantComposite %v4uint %uint_1 %uint_2 %uint_3 %uint_4
%65 = OpConstantComposite %v2float %float_1 %float_2
%66 = OpConstantComposite %v2float %float_2 %float_1
%67 = OpConstantComposite %v3float %float_1 %float_2 %float_3
%68 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
%float_0_200000003 = OpConstant %float 0.200000003
%70 = OpTypeSampler
%_ptr_UniformConstant_70 = OpTypePointer UniformConstant %70
%72 = OpTypeImage %float 2D 0 0 0 1 Unknown
%_ptr_UniformConstant_72 = OpTypePointer UniformConstant %72
%74 = OpTypeSampledImage %72
%10 = OpVariable %_ptr_UniformConstant_70 UniformConstant
%20 = OpVariable %_ptr_UniformConstant_72 UniformConstant
%30 = OpVariable %_ptr_UniformConstant_70 UniformConstant
%offsets2d = OpConstantComposite %v2int %int_3 %int_4
%u_offsets2d = OpConstantComposite %v2uint %uint_3 %uint_4
%1 = OpFunction %void None %24
%75 = OpLabel
%f1 = OpCopyObject %float %float_1
%vf12 = OpCopyObject %v2float %65
%vf21 = OpCopyObject %v2float %66
%vf123 = OpCopyObject %v3float %67
%vf1234 = OpCopyObject %v4float %68
%i1 = OpCopyObject %int %int_1
%vi12 = OpCopyObject %v2int %59
%vi123 = OpCopyObject %v3int %60
%vi1234 = OpCopyObject %v4int %61
%u1 = OpCopyObject %uint %uint_1
%vu12 = OpCopyObject %v2uint %62
%vu123 = OpCopyObject %v3uint %63
%vu1234 = OpCopyObject %v4uint %64
%coords1 = OpCopyObject %float %float_1
%coords12 = OpCopyObject %v2float %vf12
%coords123 = OpCopyObject %v3float %vf123
%coords1234 = OpCopyObject %v4float %vf1234
%76 = OpLoad %70 %10
%77 = OpLoad %72 %20
%78 = OpSampledImage %74 %77 %76
%79 = OpImageSampleProjImplicitLod %v4float %78 %coords123 Bias|ConstOffset %float_7 %offsets2d
OpReturn
OpFunctionEnd

View File

@ -0,0 +1,121 @@
; Test: ImageSampleProjImplicitLod_Bias_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm
; SPIR-V
; Version: 1.0
; Generator: Khronos SPIR-V Tools Assembler; 0
; Bound: 80
; Schema: 0
OpCapability Shader
OpCapability Sampled1D
OpCapability Image1D
OpCapability StorageImageExtendedFormats
OpCapability ImageQuery
OpMemoryModel Logical Simple
OpEntryPoint Fragment %1 "main"
OpExecutionMode %1 OriginUpperLeft
OpName %f1 "f1"
OpName %vf12 "vf12"
OpName %vf21 "vf21"
OpName %vf123 "vf123"
OpName %vf1234 "vf1234"
OpName %u1 "u1"
OpName %vu12 "vu12"
OpName %vu123 "vu123"
OpName %vu1234 "vu1234"
OpName %i1 "i1"
OpName %vi12 "vi12"
OpName %vi123 "vi123"
OpName %vi1234 "vi1234"
OpName %coords1 "coords1"
OpName %coords12 "coords12"
OpName %coords123 "coords123"
OpName %coords1234 "coords1234"
OpName %offsets2d "offsets2d"
OpName %u_offsets2d "u_offsets2d"
OpDecorate %10 DescriptorSet 0
OpDecorate %10 Binding 0
OpDecorate %20 DescriptorSet 2
OpDecorate %20 Binding 1
OpDecorate %30 DescriptorSet 0
OpDecorate %30 Binding 1
%void = OpTypeVoid
%24 = OpTypeFunction %void
%float = OpTypeFloat 32
%uint = OpTypeInt 32 0
%int = OpTypeInt 32 1
%int_0 = OpConstant %int 0
%int_1 = OpConstant %int 1
%int_2 = OpConstant %int 2
%int_3 = OpConstant %int 3
%int_4 = OpConstant %int 4
%uint_0 = OpConstant %uint 0
%uint_1 = OpConstant %uint 1
%uint_2 = OpConstant %uint 2
%uint_3 = OpConstant %uint 3
%uint_4 = OpConstant %uint 4
%uint_100 = OpConstant %uint 100
%v2int = OpTypeVector %int 2
%v3int = OpTypeVector %int 3
%v4int = OpTypeVector %int 4
%v2uint = OpTypeVector %uint 2
%v3uint = OpTypeVector %uint 3
%v4uint = OpTypeVector %uint 4
%v2float = OpTypeVector %float 2
%v3float = OpTypeVector %float 3
%v4float = OpTypeVector %float 4
%49 = OpConstantNull %float
%float_0 = OpConstant %float 0
%float_1 = OpConstant %float 1
%float_2 = OpConstant %float 2
%float_3 = OpConstant %float 3
%float_4 = OpConstant %float 4
%float_7 = OpConstant %float 7
%56 = OpConstantNull %v2float
%57 = OpConstantNull %v3float
%58 = OpConstantNull %v4float
%59 = OpConstantComposite %v2int %int_1 %int_2
%60 = OpConstantComposite %v3int %int_1 %int_2 %int_3
%61 = OpConstantComposite %v4int %int_1 %int_2 %int_3 %int_4
%62 = OpConstantComposite %v2uint %uint_1 %uint_2
%63 = OpConstantComposite %v3uint %uint_1 %uint_2 %uint_3
%64 = OpConstantComposite %v4uint %uint_1 %uint_2 %uint_3 %uint_4
%65 = OpConstantComposite %v2float %float_1 %float_2
%66 = OpConstantComposite %v2float %float_2 %float_1
%67 = OpConstantComposite %v3float %float_1 %float_2 %float_3
%68 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
%float_0_200000003 = OpConstant %float 0.200000003
%70 = OpTypeSampler
%_ptr_UniformConstant_70 = OpTypePointer UniformConstant %70
%72 = OpTypeImage %float 2D 0 0 0 1 Unknown
%_ptr_UniformConstant_72 = OpTypePointer UniformConstant %72
%74 = OpTypeSampledImage %72
%10 = OpVariable %_ptr_UniformConstant_70 UniformConstant
%20 = OpVariable %_ptr_UniformConstant_72 UniformConstant
%30 = OpVariable %_ptr_UniformConstant_70 UniformConstant
%offsets2d = OpConstantComposite %v2int %int_3 %int_4
%u_offsets2d = OpConstantComposite %v2uint %uint_3 %uint_4
%1 = OpFunction %void None %24
%75 = OpLabel
%f1 = OpCopyObject %float %float_1
%vf12 = OpCopyObject %v2float %65
%vf21 = OpCopyObject %v2float %66
%vf123 = OpCopyObject %v3float %67
%vf1234 = OpCopyObject %v4float %68
%i1 = OpCopyObject %int %int_1
%vi12 = OpCopyObject %v2int %59
%vi123 = OpCopyObject %v3int %60
%vi1234 = OpCopyObject %v4int %61
%u1 = OpCopyObject %uint %uint_1
%vu12 = OpCopyObject %v2uint %62
%vu123 = OpCopyObject %v3uint %63
%vu1234 = OpCopyObject %v4uint %64
%coords1 = OpCopyObject %float %float_1
%coords12 = OpCopyObject %v2float %vf12
%coords123 = OpCopyObject %v3float %vf123
%coords1234 = OpCopyObject %v4float %vf1234
%76 = OpLoad %70 %10
%77 = OpLoad %72 %20
%78 = OpSampledImage %74 %77 %76
%79 = OpImageSampleProjImplicitLod %v4float %78 %coords123 Bias|ConstOffset %float_7 %u_offsets2d
OpReturn
OpFunctionEnd

View File

@ -0,0 +1,121 @@
; Test: ImageSampleProjImplicitLod_DepthTexture_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm
; SPIR-V
; Version: 1.0
; Generator: Khronos SPIR-V Tools Assembler; 0
; Bound: 80
; Schema: 0
OpCapability Shader
OpCapability Sampled1D
OpCapability Image1D
OpCapability StorageImageExtendedFormats
OpCapability ImageQuery
OpMemoryModel Logical Simple
OpEntryPoint Fragment %1 "main"
OpExecutionMode %1 OriginUpperLeft
OpName %f1 "f1"
OpName %vf12 "vf12"
OpName %vf21 "vf21"
OpName %vf123 "vf123"
OpName %vf1234 "vf1234"
OpName %u1 "u1"
OpName %vu12 "vu12"
OpName %vu123 "vu123"
OpName %vu1234 "vu1234"
OpName %i1 "i1"
OpName %vi12 "vi12"
OpName %vi123 "vi123"
OpName %vi1234 "vi1234"
OpName %coords1 "coords1"
OpName %coords12 "coords12"
OpName %coords123 "coords123"
OpName %coords1234 "coords1234"
OpName %offsets2d "offsets2d"
OpName %u_offsets2d "u_offsets2d"
OpDecorate %10 DescriptorSet 0
OpDecorate %10 Binding 0
OpDecorate %20 DescriptorSet 2
OpDecorate %20 Binding 1
OpDecorate %30 DescriptorSet 0
OpDecorate %30 Binding 1
%void = OpTypeVoid
%24 = OpTypeFunction %void
%float = OpTypeFloat 32
%uint = OpTypeInt 32 0
%int = OpTypeInt 32 1
%int_0 = OpConstant %int 0
%int_1 = OpConstant %int 1
%int_2 = OpConstant %int 2
%int_3 = OpConstant %int 3
%int_4 = OpConstant %int 4
%uint_0 = OpConstant %uint 0
%uint_1 = OpConstant %uint 1
%uint_2 = OpConstant %uint 2
%uint_3 = OpConstant %uint 3
%uint_4 = OpConstant %uint 4
%uint_100 = OpConstant %uint 100
%v2int = OpTypeVector %int 2
%v3int = OpTypeVector %int 3
%v4int = OpTypeVector %int 4
%v2uint = OpTypeVector %uint 2
%v3uint = OpTypeVector %uint 3
%v4uint = OpTypeVector %uint 4
%v2float = OpTypeVector %float 2
%v3float = OpTypeVector %float 3
%v4float = OpTypeVector %float 4
%49 = OpConstantNull %float
%float_0 = OpConstant %float 0
%float_1 = OpConstant %float 1
%float_2 = OpConstant %float 2
%float_3 = OpConstant %float 3
%float_4 = OpConstant %float 4
%float_7 = OpConstant %float 7
%56 = OpConstantNull %v2float
%57 = OpConstantNull %v3float
%58 = OpConstantNull %v4float
%59 = OpConstantComposite %v2int %int_1 %int_2
%60 = OpConstantComposite %v3int %int_1 %int_2 %int_3
%61 = OpConstantComposite %v4int %int_1 %int_2 %int_3 %int_4
%62 = OpConstantComposite %v2uint %uint_1 %uint_2
%63 = OpConstantComposite %v3uint %uint_1 %uint_2 %uint_3
%64 = OpConstantComposite %v4uint %uint_1 %uint_2 %uint_3 %uint_4
%65 = OpConstantComposite %v2float %float_1 %float_2
%66 = OpConstantComposite %v2float %float_2 %float_1
%67 = OpConstantComposite %v3float %float_1 %float_2 %float_3
%68 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
%float_0_200000003 = OpConstant %float 0.200000003
%70 = OpTypeSampler
%_ptr_UniformConstant_70 = OpTypePointer UniformConstant %70
%72 = OpTypeImage %float 2D 1 0 0 1 Unknown
%_ptr_UniformConstant_72 = OpTypePointer UniformConstant %72
%74 = OpTypeSampledImage %72
%10 = OpVariable %_ptr_UniformConstant_70 UniformConstant
%20 = OpVariable %_ptr_UniformConstant_72 UniformConstant
%30 = OpVariable %_ptr_UniformConstant_70 UniformConstant
%offsets2d = OpConstantComposite %v2int %int_3 %int_4
%u_offsets2d = OpConstantComposite %v2uint %uint_3 %uint_4
%1 = OpFunction %void None %24
%75 = OpLabel
%f1 = OpCopyObject %float %float_1
%vf12 = OpCopyObject %v2float %65
%vf21 = OpCopyObject %v2float %66
%vf123 = OpCopyObject %v3float %67
%vf1234 = OpCopyObject %v4float %68
%i1 = OpCopyObject %int %int_1
%vi12 = OpCopyObject %v2int %59
%vi123 = OpCopyObject %v3int %60
%vi1234 = OpCopyObject %v4int %61
%u1 = OpCopyObject %uint %uint_1
%vu12 = OpCopyObject %v2uint %62
%vu123 = OpCopyObject %v3uint %63
%vu1234 = OpCopyObject %v4uint %64
%coords1 = OpCopyObject %float %float_1
%coords12 = OpCopyObject %v2float %vf12
%coords123 = OpCopyObject %v3float %vf123
%coords1234 = OpCopyObject %v4float %vf1234
%76 = OpLoad %70 %10
%77 = OpLoad %72 %20
%78 = OpSampledImage %74 %77 %76
%79 = OpImageSampleProjImplicitLod %v4float %78 %coords123
OpReturn
OpFunctionEnd

View File

@ -0,0 +1,121 @@
; Test: ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_0.spvasm
; SPIR-V
; Version: 1.0
; Generator: Khronos SPIR-V Tools Assembler; 0
; Bound: 80
; Schema: 0
OpCapability Shader
OpCapability Sampled1D
OpCapability Image1D
OpCapability StorageImageExtendedFormats
OpCapability ImageQuery
OpMemoryModel Logical Simple
OpEntryPoint Fragment %1 "main"
OpExecutionMode %1 OriginUpperLeft
OpName %f1 "f1"
OpName %vf12 "vf12"
OpName %vf21 "vf21"
OpName %vf123 "vf123"
OpName %vf1234 "vf1234"
OpName %u1 "u1"
OpName %vu12 "vu12"
OpName %vu123 "vu123"
OpName %vu1234 "vu1234"
OpName %i1 "i1"
OpName %vi12 "vi12"
OpName %vi123 "vi123"
OpName %vi1234 "vi1234"
OpName %coords1 "coords1"
OpName %coords12 "coords12"
OpName %coords123 "coords123"
OpName %coords1234 "coords1234"
OpName %offsets2d "offsets2d"
OpName %u_offsets2d "u_offsets2d"
OpDecorate %10 DescriptorSet 0
OpDecorate %10 Binding 0
OpDecorate %20 DescriptorSet 2
OpDecorate %20 Binding 1
OpDecorate %30 DescriptorSet 0
OpDecorate %30 Binding 1
%void = OpTypeVoid
%24 = OpTypeFunction %void
%float = OpTypeFloat 32
%uint = OpTypeInt 32 0
%int = OpTypeInt 32 1
%int_0 = OpConstant %int 0
%int_1 = OpConstant %int 1
%int_2 = OpConstant %int 2
%int_3 = OpConstant %int 3
%int_4 = OpConstant %int 4
%uint_0 = OpConstant %uint 0
%uint_1 = OpConstant %uint 1
%uint_2 = OpConstant %uint 2
%uint_3 = OpConstant %uint 3
%uint_4 = OpConstant %uint 4
%uint_100 = OpConstant %uint 100
%v2int = OpTypeVector %int 2
%v3int = OpTypeVector %int 3
%v4int = OpTypeVector %int 4
%v2uint = OpTypeVector %uint 2
%v3uint = OpTypeVector %uint 3
%v4uint = OpTypeVector %uint 4
%v2float = OpTypeVector %float 2
%v3float = OpTypeVector %float 3
%v4float = OpTypeVector %float 4
%49 = OpConstantNull %float
%float_0 = OpConstant %float 0
%float_1 = OpConstant %float 1
%float_2 = OpConstant %float 2
%float_3 = OpConstant %float 3
%float_4 = OpConstant %float 4
%float_7 = OpConstant %float 7
%56 = OpConstantNull %v2float
%57 = OpConstantNull %v3float
%58 = OpConstantNull %v4float
%59 = OpConstantComposite %v2int %int_1 %int_2
%60 = OpConstantComposite %v3int %int_1 %int_2 %int_3
%61 = OpConstantComposite %v4int %int_1 %int_2 %int_3 %int_4
%62 = OpConstantComposite %v2uint %uint_1 %uint_2
%63 = OpConstantComposite %v3uint %uint_1 %uint_2 %uint_3
%64 = OpConstantComposite %v4uint %uint_1 %uint_2 %uint_3 %uint_4
%65 = OpConstantComposite %v2float %float_1 %float_2
%66 = OpConstantComposite %v2float %float_2 %float_1
%67 = OpConstantComposite %v3float %float_1 %float_2 %float_3
%68 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
%float_0_200000003 = OpConstant %float 0.200000003
%70 = OpTypeSampler
%_ptr_UniformConstant_70 = OpTypePointer UniformConstant %70
%72 = OpTypeImage %float 1D 0 0 0 1 Unknown
%_ptr_UniformConstant_72 = OpTypePointer UniformConstant %72
%74 = OpTypeSampledImage %72
%10 = OpVariable %_ptr_UniformConstant_70 UniformConstant
%20 = OpVariable %_ptr_UniformConstant_72 UniformConstant
%30 = OpVariable %_ptr_UniformConstant_70 UniformConstant
%offsets2d = OpConstantComposite %v2int %int_3 %int_4
%u_offsets2d = OpConstantComposite %v2uint %uint_3 %uint_4
%1 = OpFunction %void None %24
%75 = OpLabel
%f1 = OpCopyObject %float %float_1
%vf12 = OpCopyObject %v2float %65
%vf21 = OpCopyObject %v2float %66
%vf123 = OpCopyObject %v3float %67
%vf1234 = OpCopyObject %v4float %68
%i1 = OpCopyObject %int %int_1
%vi12 = OpCopyObject %v2int %59
%vi123 = OpCopyObject %v3int %60
%vi1234 = OpCopyObject %v4int %61
%u1 = OpCopyObject %uint %uint_1
%vu12 = OpCopyObject %v2uint %62
%vu123 = OpCopyObject %v3uint %63
%vu1234 = OpCopyObject %v4uint %64
%coords1 = OpCopyObject %float %float_1
%coords12 = OpCopyObject %v2float %vf12
%coords123 = OpCopyObject %v3float %vf123
%coords1234 = OpCopyObject %v4float %vf1234
%76 = OpLoad %70 %10
%77 = OpLoad %72 %20
%78 = OpSampledImage %74 %77 %76
%79 = OpImageSampleProjImplicitLod %v4float %78 %coords12
OpReturn
OpFunctionEnd

View File

@ -0,0 +1,121 @@
; Test: ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_1.spvasm
; SPIR-V
; Version: 1.0
; Generator: Khronos SPIR-V Tools Assembler; 0
; Bound: 80
; Schema: 0
OpCapability Shader
OpCapability Sampled1D
OpCapability Image1D
OpCapability StorageImageExtendedFormats
OpCapability ImageQuery
OpMemoryModel Logical Simple
OpEntryPoint Fragment %1 "main"
OpExecutionMode %1 OriginUpperLeft
OpName %f1 "f1"
OpName %vf12 "vf12"
OpName %vf21 "vf21"
OpName %vf123 "vf123"
OpName %vf1234 "vf1234"
OpName %u1 "u1"
OpName %vu12 "vu12"
OpName %vu123 "vu123"
OpName %vu1234 "vu1234"
OpName %i1 "i1"
OpName %vi12 "vi12"
OpName %vi123 "vi123"
OpName %vi1234 "vi1234"
OpName %coords1 "coords1"
OpName %coords12 "coords12"
OpName %coords123 "coords123"
OpName %coords1234 "coords1234"
OpName %offsets2d "offsets2d"
OpName %u_offsets2d "u_offsets2d"
OpDecorate %10 DescriptorSet 0
OpDecorate %10 Binding 0
OpDecorate %20 DescriptorSet 2
OpDecorate %20 Binding 1
OpDecorate %30 DescriptorSet 0
OpDecorate %30 Binding 1
%void = OpTypeVoid
%24 = OpTypeFunction %void
%float = OpTypeFloat 32
%uint = OpTypeInt 32 0
%int = OpTypeInt 32 1
%int_0 = OpConstant %int 0
%int_1 = OpConstant %int 1
%int_2 = OpConstant %int 2
%int_3 = OpConstant %int 3
%int_4 = OpConstant %int 4
%uint_0 = OpConstant %uint 0
%uint_1 = OpConstant %uint 1
%uint_2 = OpConstant %uint 2
%uint_3 = OpConstant %uint 3
%uint_4 = OpConstant %uint 4
%uint_100 = OpConstant %uint 100
%v2int = OpTypeVector %int 2
%v3int = OpTypeVector %int 3
%v4int = OpTypeVector %int 4
%v2uint = OpTypeVector %uint 2
%v3uint = OpTypeVector %uint 3
%v4uint = OpTypeVector %uint 4
%v2float = OpTypeVector %float 2
%v3float = OpTypeVector %float 3
%v4float = OpTypeVector %float 4
%49 = OpConstantNull %float
%float_0 = OpConstant %float 0
%float_1 = OpConstant %float 1
%float_2 = OpConstant %float 2
%float_3 = OpConstant %float 3
%float_4 = OpConstant %float 4
%float_7 = OpConstant %float 7
%56 = OpConstantNull %v2float
%57 = OpConstantNull %v3float
%58 = OpConstantNull %v4float
%59 = OpConstantComposite %v2int %int_1 %int_2
%60 = OpConstantComposite %v3int %int_1 %int_2 %int_3
%61 = OpConstantComposite %v4int %int_1 %int_2 %int_3 %int_4
%62 = OpConstantComposite %v2uint %uint_1 %uint_2
%63 = OpConstantComposite %v3uint %uint_1 %uint_2 %uint_3
%64 = OpConstantComposite %v4uint %uint_1 %uint_2 %uint_3 %uint_4
%65 = OpConstantComposite %v2float %float_1 %float_2
%66 = OpConstantComposite %v2float %float_2 %float_1
%67 = OpConstantComposite %v3float %float_1 %float_2 %float_3
%68 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
%float_0_200000003 = OpConstant %float 0.200000003
%70 = OpTypeSampler
%_ptr_UniformConstant_70 = OpTypePointer UniformConstant %70
%72 = OpTypeImage %float 2D 0 0 0 1 Unknown
%_ptr_UniformConstant_72 = OpTypePointer UniformConstant %72
%74 = OpTypeSampledImage %72
%10 = OpVariable %_ptr_UniformConstant_70 UniformConstant
%20 = OpVariable %_ptr_UniformConstant_72 UniformConstant
%30 = OpVariable %_ptr_UniformConstant_70 UniformConstant
%offsets2d = OpConstantComposite %v2int %int_3 %int_4
%u_offsets2d = OpConstantComposite %v2uint %uint_3 %uint_4
%1 = OpFunction %void None %24
%75 = OpLabel
%f1 = OpCopyObject %float %float_1
%vf12 = OpCopyObject %v2float %65
%vf21 = OpCopyObject %v2float %66
%vf123 = OpCopyObject %v3float %67
%vf1234 = OpCopyObject %v4float %68
%i1 = OpCopyObject %int %int_1
%vi12 = OpCopyObject %v2int %59
%vi123 = OpCopyObject %v3int %60
%vi1234 = OpCopyObject %v4int %61
%u1 = OpCopyObject %uint %uint_1
%vu12 = OpCopyObject %v2uint %62
%vu123 = OpCopyObject %v3uint %63
%vu1234 = OpCopyObject %v4uint %64
%coords1 = OpCopyObject %float %float_1
%coords12 = OpCopyObject %v2float %vf12
%coords123 = OpCopyObject %v3float %vf123
%coords1234 = OpCopyObject %v4float %vf1234
%76 = OpLoad %70 %10
%77 = OpLoad %72 %20
%78 = OpSampledImage %74 %77 %76
%79 = OpImageSampleProjImplicitLod %v4float %78 %coords123
OpReturn
OpFunctionEnd

View File

@ -0,0 +1,121 @@
; Test: ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_2.spvasm
; SPIR-V
; Version: 1.0
; Generator: Khronos SPIR-V Tools Assembler; 0
; Bound: 80
; Schema: 0
OpCapability Shader
OpCapability Sampled1D
OpCapability Image1D
OpCapability StorageImageExtendedFormats
OpCapability ImageQuery
OpMemoryModel Logical Simple
OpEntryPoint Fragment %1 "main"
OpExecutionMode %1 OriginUpperLeft
OpName %f1 "f1"
OpName %vf12 "vf12"
OpName %vf21 "vf21"
OpName %vf123 "vf123"
OpName %vf1234 "vf1234"
OpName %u1 "u1"
OpName %vu12 "vu12"
OpName %vu123 "vu123"
OpName %vu1234 "vu1234"
OpName %i1 "i1"
OpName %vi12 "vi12"
OpName %vi123 "vi123"
OpName %vi1234 "vi1234"
OpName %coords1 "coords1"
OpName %coords12 "coords12"
OpName %coords123 "coords123"
OpName %coords1234 "coords1234"
OpName %offsets2d "offsets2d"
OpName %u_offsets2d "u_offsets2d"
OpDecorate %10 DescriptorSet 0
OpDecorate %10 Binding 0
OpDecorate %20 DescriptorSet 2
OpDecorate %20 Binding 1
OpDecorate %30 DescriptorSet 0
OpDecorate %30 Binding 1
%void = OpTypeVoid
%24 = OpTypeFunction %void
%float = OpTypeFloat 32
%uint = OpTypeInt 32 0
%int = OpTypeInt 32 1
%int_0 = OpConstant %int 0
%int_1 = OpConstant %int 1
%int_2 = OpConstant %int 2
%int_3 = OpConstant %int 3
%int_4 = OpConstant %int 4
%uint_0 = OpConstant %uint 0
%uint_1 = OpConstant %uint 1
%uint_2 = OpConstant %uint 2
%uint_3 = OpConstant %uint 3
%uint_4 = OpConstant %uint 4
%uint_100 = OpConstant %uint 100
%v2int = OpTypeVector %int 2
%v3int = OpTypeVector %int 3
%v4int = OpTypeVector %int 4
%v2uint = OpTypeVector %uint 2
%v3uint = OpTypeVector %uint 3
%v4uint = OpTypeVector %uint 4
%v2float = OpTypeVector %float 2
%v3float = OpTypeVector %float 3
%v4float = OpTypeVector %float 4
%49 = OpConstantNull %float
%float_0 = OpConstant %float 0
%float_1 = OpConstant %float 1
%float_2 = OpConstant %float 2
%float_3 = OpConstant %float 3
%float_4 = OpConstant %float 4
%float_7 = OpConstant %float 7
%56 = OpConstantNull %v2float
%57 = OpConstantNull %v3float
%58 = OpConstantNull %v4float
%59 = OpConstantComposite %v2int %int_1 %int_2
%60 = OpConstantComposite %v3int %int_1 %int_2 %int_3
%61 = OpConstantComposite %v4int %int_1 %int_2 %int_3 %int_4
%62 = OpConstantComposite %v2uint %uint_1 %uint_2
%63 = OpConstantComposite %v3uint %uint_1 %uint_2 %uint_3
%64 = OpConstantComposite %v4uint %uint_1 %uint_2 %uint_3 %uint_4
%65 = OpConstantComposite %v2float %float_1 %float_2
%66 = OpConstantComposite %v2float %float_2 %float_1
%67 = OpConstantComposite %v3float %float_1 %float_2 %float_3
%68 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
%float_0_200000003 = OpConstant %float 0.200000003
%70 = OpTypeSampler
%_ptr_UniformConstant_70 = OpTypePointer UniformConstant %70
%72 = OpTypeImage %float 3D 0 0 0 1 Unknown
%_ptr_UniformConstant_72 = OpTypePointer UniformConstant %72
%74 = OpTypeSampledImage %72
%10 = OpVariable %_ptr_UniformConstant_70 UniformConstant
%20 = OpVariable %_ptr_UniformConstant_72 UniformConstant
%30 = OpVariable %_ptr_UniformConstant_70 UniformConstant
%offsets2d = OpConstantComposite %v2int %int_3 %int_4
%u_offsets2d = OpConstantComposite %v2uint %uint_3 %uint_4
%1 = OpFunction %void None %24
%75 = OpLabel
%f1 = OpCopyObject %float %float_1
%vf12 = OpCopyObject %v2float %65
%vf21 = OpCopyObject %v2float %66
%vf123 = OpCopyObject %v3float %67
%vf1234 = OpCopyObject %v4float %68
%i1 = OpCopyObject %int %int_1
%vi12 = OpCopyObject %v2int %59
%vi123 = OpCopyObject %v3int %60
%vi1234 = OpCopyObject %v4int %61
%u1 = OpCopyObject %uint %uint_1
%vu12 = OpCopyObject %v2uint %62
%vu123 = OpCopyObject %v3uint %63
%vu1234 = OpCopyObject %v4uint %64
%coords1 = OpCopyObject %float %float_1
%coords12 = OpCopyObject %v2float %vf12
%coords123 = OpCopyObject %v3float %vf123
%coords1234 = OpCopyObject %v4float %vf1234
%76 = OpLoad %70 %10
%77 = OpLoad %72 %20
%78 = OpSampledImage %74 %77 %76
%79 = OpImageSampleProjImplicitLod %v4float %78 %coords1234
OpReturn
OpFunctionEnd

View File

@ -0,0 +1,121 @@
; Test: ImageSampleProjImplicitLod_SpvParserHandleTest_SampledImageAccessTest_Variable_3.spvasm
; SPIR-V
; Version: 1.0
; Generator: Khronos SPIR-V Tools Assembler; 0
; Bound: 80
; Schema: 0
OpCapability Shader
OpCapability Sampled1D
OpCapability Image1D
OpCapability StorageImageExtendedFormats
OpCapability ImageQuery
OpMemoryModel Logical Simple
OpEntryPoint Fragment %1 "main"
OpExecutionMode %1 OriginUpperLeft
OpName %f1 "f1"
OpName %vf12 "vf12"
OpName %vf21 "vf21"
OpName %vf123 "vf123"
OpName %vf1234 "vf1234"
OpName %u1 "u1"
OpName %vu12 "vu12"
OpName %vu123 "vu123"
OpName %vu1234 "vu1234"
OpName %i1 "i1"
OpName %vi12 "vi12"
OpName %vi123 "vi123"
OpName %vi1234 "vi1234"
OpName %coords1 "coords1"
OpName %coords12 "coords12"
OpName %coords123 "coords123"
OpName %coords1234 "coords1234"
OpName %offsets2d "offsets2d"
OpName %u_offsets2d "u_offsets2d"
OpDecorate %10 DescriptorSet 0
OpDecorate %10 Binding 0
OpDecorate %20 DescriptorSet 2
OpDecorate %20 Binding 1
OpDecorate %30 DescriptorSet 0
OpDecorate %30 Binding 1
%void = OpTypeVoid
%24 = OpTypeFunction %void
%float = OpTypeFloat 32
%uint = OpTypeInt 32 0
%int = OpTypeInt 32 1
%int_0 = OpConstant %int 0
%int_1 = OpConstant %int 1
%int_2 = OpConstant %int 2
%int_3 = OpConstant %int 3
%int_4 = OpConstant %int 4
%uint_0 = OpConstant %uint 0
%uint_1 = OpConstant %uint 1
%uint_2 = OpConstant %uint 2
%uint_3 = OpConstant %uint 3
%uint_4 = OpConstant %uint 4
%uint_100 = OpConstant %uint 100
%v2int = OpTypeVector %int 2
%v3int = OpTypeVector %int 3
%v4int = OpTypeVector %int 4
%v2uint = OpTypeVector %uint 2
%v3uint = OpTypeVector %uint 3
%v4uint = OpTypeVector %uint 4
%v2float = OpTypeVector %float 2
%v3float = OpTypeVector %float 3
%v4float = OpTypeVector %float 4
%49 = OpConstantNull %float
%float_0 = OpConstant %float 0
%float_1 = OpConstant %float 1
%float_2 = OpConstant %float 2
%float_3 = OpConstant %float 3
%float_4 = OpConstant %float 4
%float_7 = OpConstant %float 7
%56 = OpConstantNull %v2float
%57 = OpConstantNull %v3float
%58 = OpConstantNull %v4float
%59 = OpConstantComposite %v2int %int_1 %int_2
%60 = OpConstantComposite %v3int %int_1 %int_2 %int_3
%61 = OpConstantComposite %v4int %int_1 %int_2 %int_3 %int_4
%62 = OpConstantComposite %v2uint %uint_1 %uint_2
%63 = OpConstantComposite %v3uint %uint_1 %uint_2 %uint_3
%64 = OpConstantComposite %v4uint %uint_1 %uint_2 %uint_3 %uint_4
%65 = OpConstantComposite %v2float %float_1 %float_2
%66 = OpConstantComposite %v2float %float_2 %float_1
%67 = OpConstantComposite %v3float %float_1 %float_2 %float_3
%68 = OpConstantComposite %v4float %float_1 %float_2 %float_3 %float_4
%float_0_200000003 = OpConstant %float 0.200000003
%70 = OpTypeSampler
%_ptr_UniformConstant_70 = OpTypePointer UniformConstant %70
%72 = OpTypeImage %float 2D 0 0 0 1 Unknown
%_ptr_UniformConstant_72 = OpTypePointer UniformConstant %72
%74 = OpTypeSampledImage %72
%10 = OpVariable %_ptr_UniformConstant_70 UniformConstant
%20 = OpVariable %_ptr_UniformConstant_72 UniformConstant
%30 = OpVariable %_ptr_UniformConstant_70 UniformConstant
%offsets2d = OpConstantComposite %v2int %int_3 %int_4
%u_offsets2d = OpConstantComposite %v2uint %uint_3 %uint_4
%1 = OpFunction %void None %24
%75 = OpLabel
%f1 = OpCopyObject %float %float_1
%vf12 = OpCopyObject %v2float %65
%vf21 = OpCopyObject %v2float %66
%vf123 = OpCopyObject %v3float %67
%vf1234 = OpCopyObject %v4float %68
%i1 = OpCopyObject %int %int_1
%vi12 = OpCopyObject %v2int %59
%vi123 = OpCopyObject %v3int %60
%vi1234 = OpCopyObject %v4int %61
%u1 = OpCopyObject %uint %uint_1
%vu12 = OpCopyObject %v2uint %62
%vu123 = OpCopyObject %v3uint %63
%vu1234 = OpCopyObject %v4uint %64
%coords1 = OpCopyObject %float %float_1
%coords12 = OpCopyObject %v2float %vf12
%coords123 = OpCopyObject %v3float %vf123
%coords1234 = OpCopyObject %v4float %vf1234
%76 = OpLoad %70 %10
%77 = OpLoad %72 %20
%78 = OpSampledImage %74 %77 %76
%79 = OpImageSampleProjImplicitLod %v4float %78 %coords123 ConstOffset %offsets2d
OpReturn
OpFunctionEnd