writer/spirv: Fix emission of select()

The argument order between WGSL and SPIR-V is different (condition is first in SPIR-V, last in WGSL)

Fixed: tint:560
Change-Id: I56c659c441292e05f71a24d96dbc9f93f25b71f0
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/53620
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: James Price <jrprice@google.com>
This commit is contained in:
Ben Clayton 2021-06-07 20:01:54 +00:00
parent d7255e37f6
commit dfcc7b5714
14 changed files with 443 additions and 336 deletions

View File

@ -2349,9 +2349,22 @@ uint32_t Builder::GenerateIntrinsic(ast::CallExpression* call,
case IntrinsicType::kReverseBits: case IntrinsicType::kReverseBits:
op = spv::Op::OpBitReverse; op = spv::Op::OpBitReverse;
break; break;
case IntrinsicType::kSelect: case IntrinsicType::kSelect: {
op = spv::Op::OpSelect; // Note: Argument order is different in WGSL and SPIR-V
break; auto cond_id = get_param_as_value_id(2);
auto true_id = get_param_as_value_id(0);
auto false_id = get_param_as_value_id(1);
if (!cond_id || !true_id || !false_id) {
return 0;
}
if (!push_function_inst(
spv::Op::OpSelect,
{Operand::Int(result_type_id), result, Operand::Int(cond_id),
Operand::Int(true_id), Operand::Int(false_id)})) {
return 0;
}
return result_id;
}
default: { default: {
auto set_id = GetGLSLstd450Import(); auto set_id = GetGLSLstd450Import();
auto inst_id = intrinsic_to_glsl_method(intrinsic); auto inst_id = intrinsic_to_glsl_method(intrinsic);

View File

@ -509,9 +509,9 @@ TEST_F(IntrinsicBuilderTest, Call_Select) {
%6 = OpVariable %7 Private %10 %6 = OpVariable %7 Private %10
)"); )");
EXPECT_EQ(DumpInstructions(b.functions()[0].instructions()), EXPECT_EQ(DumpInstructions(b.functions()[0].instructions()),
R"(%12 = OpLoad %3 %1 R"(%12 = OpLoad %8 %6
%13 = OpLoad %3 %1 %13 = OpLoad %3 %1
%14 = OpLoad %8 %6 %14 = OpLoad %3 %1
%11 = OpSelect %3 %12 %13 %14 %11 = OpSelect %3 %12 %13 %14
)"); )");
} }

View File

@ -1,64 +1,72 @@
SKIP: FAILED
; SPIR-V ; SPIR-V
; Version: 1.3 ; Version: 1.3
; Generator: Google Tint Compiler; 0 ; Generator: Google Tint Compiler; 0
; Bound: 28 ; Bound: 37
; Schema: 0 ; Schema: 0
OpCapability Shader OpCapability Shader
OpMemoryModel Logical GLSL450 OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main" OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main" OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1 OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize" OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %select_00b848 "select_00b848" OpName %select_00b848 "select_00b848"
OpName %res "res" OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main" OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main" OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main" OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32 %float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float %_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float %4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4 %tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%void = OpTypeVoid %void = OpTypeVoid
%5 = OpTypeFunction %void %9 = OpTypeFunction %void
%int = OpTypeInt 32 1 %int = OpTypeInt 32 1
%v2int = OpTypeVector %int 2 %v2int = OpTypeVector %int 2
%12 = OpConstantNull %v2int
%bool = OpTypeBool %bool = OpTypeBool
%v2bool = OpTypeVector %bool 2 %v2bool = OpTypeVector %bool 2
%15 = OpConstantNull %v2bool %18 = OpConstantNull %v2bool
%19 = OpConstantNull %v2int
%_ptr_Function_v2int = OpTypePointer Function %v2int %_ptr_Function_v2int = OpTypePointer Function %v2int
%22 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1 %float_1 = OpConstant %float 1
%select_00b848 = OpFunction %void None %5 %select_00b848 = OpFunction %void None %9
%8 = OpLabel %12 = OpLabel
%res = OpVariable %_ptr_Function_v2int Function %12 %res = OpVariable %_ptr_Function_v2int Function %19
%9 = OpSelect %v2int %12 %12 %15 %13 = OpSelect %v2int %18 %19 %19
OpStore %res %9 OpStore %res %13
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%vertex_main = OpFunction %void None %5 %tint_symbol_2 = OpFunction %void None %22
%19 = OpLabel %tint_symbol = OpFunctionParameter %v4float
%25 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
OpFunctionEnd
%vertex_main = OpFunction %void None %9
%27 = OpLabel
OpStore %tint_pointsize %float_1 OpStore %tint_pointsize %float_1
%21 = OpFunctionCall %void %select_00b848 %29 = OpFunctionCall %void %select_00b848
%30 = OpFunctionCall %void %tint_symbol_2 %8
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%fragment_main = OpFunction %void None %5 %fragment_main = OpFunction %void None %9
%23 = OpLabel %32 = OpLabel
%24 = OpFunctionCall %void %select_00b848 %33 = OpFunctionCall %void %select_00b848
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%compute_main = OpFunction %void None %5 %compute_main = OpFunction %void None %9
%26 = OpLabel %35 = OpLabel
%27 = OpFunctionCall %void %select_00b848 %36 = OpFunctionCall %void %select_00b848
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
Validation Failure:
1:1: Expected bool scalar or vector type as condition: Select
%9 = OpSelect %v2int %12 %12 %15

View File

@ -1,64 +1,72 @@
SKIP: FAILED
; SPIR-V ; SPIR-V
; Version: 1.3 ; Version: 1.3
; Generator: Google Tint Compiler; 0 ; Generator: Google Tint Compiler; 0
; Bound: 28 ; Bound: 37
; Schema: 0 ; Schema: 0
OpCapability Shader OpCapability Shader
OpMemoryModel Logical GLSL450 OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main" OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main" OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1 OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize" OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %select_01e2cd "select_01e2cd" OpName %select_01e2cd "select_01e2cd"
OpName %res "res" OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main" OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main" OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main" OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32 %float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float %_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float %4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4 %tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%void = OpTypeVoid %void = OpTypeVoid
%5 = OpTypeFunction %void %9 = OpTypeFunction %void
%int = OpTypeInt 32 1 %int = OpTypeInt 32 1
%v3int = OpTypeVector %int 3 %v3int = OpTypeVector %int 3
%12 = OpConstantNull %v3int
%bool = OpTypeBool %bool = OpTypeBool
%v3bool = OpTypeVector %bool 3 %v3bool = OpTypeVector %bool 3
%15 = OpConstantNull %v3bool %18 = OpConstantNull %v3bool
%19 = OpConstantNull %v3int
%_ptr_Function_v3int = OpTypePointer Function %v3int %_ptr_Function_v3int = OpTypePointer Function %v3int
%22 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1 %float_1 = OpConstant %float 1
%select_01e2cd = OpFunction %void None %5 %select_01e2cd = OpFunction %void None %9
%8 = OpLabel %12 = OpLabel
%res = OpVariable %_ptr_Function_v3int Function %12 %res = OpVariable %_ptr_Function_v3int Function %19
%9 = OpSelect %v3int %12 %12 %15 %13 = OpSelect %v3int %18 %19 %19
OpStore %res %9 OpStore %res %13
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%vertex_main = OpFunction %void None %5 %tint_symbol_2 = OpFunction %void None %22
%19 = OpLabel %tint_symbol = OpFunctionParameter %v4float
%25 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
OpFunctionEnd
%vertex_main = OpFunction %void None %9
%27 = OpLabel
OpStore %tint_pointsize %float_1 OpStore %tint_pointsize %float_1
%21 = OpFunctionCall %void %select_01e2cd %29 = OpFunctionCall %void %select_01e2cd
%30 = OpFunctionCall %void %tint_symbol_2 %8
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%fragment_main = OpFunction %void None %5 %fragment_main = OpFunction %void None %9
%23 = OpLabel %32 = OpLabel
%24 = OpFunctionCall %void %select_01e2cd %33 = OpFunctionCall %void %select_01e2cd
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%compute_main = OpFunction %void None %5 %compute_main = OpFunction %void None %9
%26 = OpLabel %35 = OpLabel
%27 = OpFunctionCall %void %select_01e2cd %36 = OpFunctionCall %void %select_01e2cd
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
Validation Failure:
1:1: Expected bool scalar or vector type as condition: Select
%9 = OpSelect %v3int %12 %12 %15

View File

@ -1,64 +1,72 @@
SKIP: FAILED
; SPIR-V ; SPIR-V
; Version: 1.3 ; Version: 1.3
; Generator: Google Tint Compiler; 0 ; Generator: Google Tint Compiler; 0
; Bound: 28 ; Bound: 37
; Schema: 0 ; Schema: 0
OpCapability Shader OpCapability Shader
OpMemoryModel Logical GLSL450 OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main" OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main" OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1 OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize" OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %select_1e960b "select_1e960b" OpName %select_1e960b "select_1e960b"
OpName %res "res" OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main" OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main" OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main" OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32 %float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float %_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float %4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4 %tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%void = OpTypeVoid %void = OpTypeVoid
%5 = OpTypeFunction %void %9 = OpTypeFunction %void
%uint = OpTypeInt 32 0 %uint = OpTypeInt 32 0
%v2uint = OpTypeVector %uint 2 %v2uint = OpTypeVector %uint 2
%12 = OpConstantNull %v2uint
%bool = OpTypeBool %bool = OpTypeBool
%v2bool = OpTypeVector %bool 2 %v2bool = OpTypeVector %bool 2
%15 = OpConstantNull %v2bool %18 = OpConstantNull %v2bool
%19 = OpConstantNull %v2uint
%_ptr_Function_v2uint = OpTypePointer Function %v2uint %_ptr_Function_v2uint = OpTypePointer Function %v2uint
%22 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1 %float_1 = OpConstant %float 1
%select_1e960b = OpFunction %void None %5 %select_1e960b = OpFunction %void None %9
%8 = OpLabel %12 = OpLabel
%res = OpVariable %_ptr_Function_v2uint Function %12 %res = OpVariable %_ptr_Function_v2uint Function %19
%9 = OpSelect %v2uint %12 %12 %15 %13 = OpSelect %v2uint %18 %19 %19
OpStore %res %9 OpStore %res %13
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%vertex_main = OpFunction %void None %5 %tint_symbol_2 = OpFunction %void None %22
%19 = OpLabel %tint_symbol = OpFunctionParameter %v4float
%25 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
OpFunctionEnd
%vertex_main = OpFunction %void None %9
%27 = OpLabel
OpStore %tint_pointsize %float_1 OpStore %tint_pointsize %float_1
%21 = OpFunctionCall %void %select_1e960b %29 = OpFunctionCall %void %select_1e960b
%30 = OpFunctionCall %void %tint_symbol_2 %8
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%fragment_main = OpFunction %void None %5 %fragment_main = OpFunction %void None %9
%23 = OpLabel %32 = OpLabel
%24 = OpFunctionCall %void %select_1e960b %33 = OpFunctionCall %void %select_1e960b
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%compute_main = OpFunction %void None %5 %compute_main = OpFunction %void None %9
%26 = OpLabel %35 = OpLabel
%27 = OpFunctionCall %void %select_1e960b %36 = OpFunctionCall %void %select_1e960b
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
Validation Failure:
1:1: Expected bool scalar or vector type as condition: Select
%9 = OpSelect %v2uint %12 %12 %15

View File

@ -1,63 +1,71 @@
SKIP: FAILED
; SPIR-V ; SPIR-V
; Version: 1.3 ; Version: 1.3
; Generator: Google Tint Compiler; 0 ; Generator: Google Tint Compiler; 0
; Bound: 27 ; Bound: 36
; Schema: 0 ; Schema: 0
OpCapability Shader OpCapability Shader
OpMemoryModel Logical GLSL450 OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main" OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main" OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1 OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize" OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %select_266aff "select_266aff" OpName %select_266aff "select_266aff"
OpName %res "res" OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main" OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main" OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main" OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32 %float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float %_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float %4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4 %tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%void = OpTypeVoid %void = OpTypeVoid
%5 = OpTypeFunction %void %9 = OpTypeFunction %void
%v2float = OpTypeVector %float 2 %v2float = OpTypeVector %float 2
%11 = OpConstantNull %v2float
%bool = OpTypeBool %bool = OpTypeBool
%v2bool = OpTypeVector %bool 2 %v2bool = OpTypeVector %bool 2
%14 = OpConstantNull %v2bool %17 = OpConstantNull %v2bool
%18 = OpConstantNull %v2float
%_ptr_Function_v2float = OpTypePointer Function %v2float %_ptr_Function_v2float = OpTypePointer Function %v2float
%21 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1 %float_1 = OpConstant %float 1
%select_266aff = OpFunction %void None %5 %select_266aff = OpFunction %void None %9
%8 = OpLabel %12 = OpLabel
%res = OpVariable %_ptr_Function_v2float Function %11 %res = OpVariable %_ptr_Function_v2float Function %18
%9 = OpSelect %v2float %11 %11 %14 %13 = OpSelect %v2float %17 %18 %18
OpStore %res %9 OpStore %res %13
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%vertex_main = OpFunction %void None %5 %tint_symbol_2 = OpFunction %void None %21
%18 = OpLabel %tint_symbol = OpFunctionParameter %v4float
%24 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
OpFunctionEnd
%vertex_main = OpFunction %void None %9
%26 = OpLabel
OpStore %tint_pointsize %float_1 OpStore %tint_pointsize %float_1
%20 = OpFunctionCall %void %select_266aff %28 = OpFunctionCall %void %select_266aff
%29 = OpFunctionCall %void %tint_symbol_2 %8
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%fragment_main = OpFunction %void None %5 %fragment_main = OpFunction %void None %9
%22 = OpLabel %31 = OpLabel
%23 = OpFunctionCall %void %select_266aff %32 = OpFunctionCall %void %select_266aff
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%compute_main = OpFunction %void None %5 %compute_main = OpFunction %void None %9
%25 = OpLabel %34 = OpLabel
%26 = OpFunctionCall %void %select_266aff %35 = OpFunctionCall %void %select_266aff
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
Validation Failure:
1:1: Expected bool scalar or vector type as condition: Select
%9 = OpSelect %v2float %11 %11 %14

View File

@ -1,64 +1,72 @@
SKIP: FAILED
; SPIR-V ; SPIR-V
; Version: 1.3 ; Version: 1.3
; Generator: Google Tint Compiler; 0 ; Generator: Google Tint Compiler; 0
; Bound: 28 ; Bound: 37
; Schema: 0 ; Schema: 0
OpCapability Shader OpCapability Shader
OpMemoryModel Logical GLSL450 OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main" OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main" OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1 OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize" OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %select_28a27e "select_28a27e" OpName %select_28a27e "select_28a27e"
OpName %res "res" OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main" OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main" OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main" OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32 %float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float %_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float %4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4 %tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%void = OpTypeVoid %void = OpTypeVoid
%5 = OpTypeFunction %void %9 = OpTypeFunction %void
%uint = OpTypeInt 32 0 %uint = OpTypeInt 32 0
%v3uint = OpTypeVector %uint 3 %v3uint = OpTypeVector %uint 3
%12 = OpConstantNull %v3uint
%bool = OpTypeBool %bool = OpTypeBool
%v3bool = OpTypeVector %bool 3 %v3bool = OpTypeVector %bool 3
%15 = OpConstantNull %v3bool %18 = OpConstantNull %v3bool
%19 = OpConstantNull %v3uint
%_ptr_Function_v3uint = OpTypePointer Function %v3uint %_ptr_Function_v3uint = OpTypePointer Function %v3uint
%22 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1 %float_1 = OpConstant %float 1
%select_28a27e = OpFunction %void None %5 %select_28a27e = OpFunction %void None %9
%8 = OpLabel %12 = OpLabel
%res = OpVariable %_ptr_Function_v3uint Function %12 %res = OpVariable %_ptr_Function_v3uint Function %19
%9 = OpSelect %v3uint %12 %12 %15 %13 = OpSelect %v3uint %18 %19 %19
OpStore %res %9 OpStore %res %13
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%vertex_main = OpFunction %void None %5 %tint_symbol_2 = OpFunction %void None %22
%19 = OpLabel %tint_symbol = OpFunctionParameter %v4float
%25 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
OpFunctionEnd
%vertex_main = OpFunction %void None %9
%27 = OpLabel
OpStore %tint_pointsize %float_1 OpStore %tint_pointsize %float_1
%21 = OpFunctionCall %void %select_28a27e %29 = OpFunctionCall %void %select_28a27e
%30 = OpFunctionCall %void %tint_symbol_2 %8
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%fragment_main = OpFunction %void None %5 %fragment_main = OpFunction %void None %9
%23 = OpLabel %32 = OpLabel
%24 = OpFunctionCall %void %select_28a27e %33 = OpFunctionCall %void %select_28a27e
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%compute_main = OpFunction %void None %5 %compute_main = OpFunction %void None %9
%26 = OpLabel %35 = OpLabel
%27 = OpFunctionCall %void %select_28a27e %36 = OpFunctionCall %void %select_28a27e
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
Validation Failure:
1:1: Expected bool scalar or vector type as condition: Select
%9 = OpSelect %v3uint %12 %12 %15

View File

@ -1,60 +1,68 @@
SKIP: FAILED
; SPIR-V ; SPIR-V
; Version: 1.3 ; Version: 1.3
; Generator: Google Tint Compiler; 0 ; Generator: Google Tint Compiler; 0
; Bound: 24 ; Bound: 33
; Schema: 0 ; Schema: 0
OpCapability Shader OpCapability Shader
OpMemoryModel Logical GLSL450 OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main" OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main" OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1 OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize" OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %select_416e14 "select_416e14" OpName %select_416e14 "select_416e14"
OpName %res "res" OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main" OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main" OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main" OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32 %float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float %_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float %4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4 %tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%void = OpTypeVoid %void = OpTypeVoid
%5 = OpTypeFunction %void %9 = OpTypeFunction %void
%float_1 = OpConstant %float 1
%bool = OpTypeBool %bool = OpTypeBool
%12 = OpConstantNull %bool %15 = OpConstantNull %bool
%float_1 = OpConstant %float 1
%_ptr_Function_float = OpTypePointer Function %float %_ptr_Function_float = OpTypePointer Function %float
%select_416e14 = OpFunction %void None %5 %19 = OpTypeFunction %void %v4float
%8 = OpLabel %select_416e14 = OpFunction %void None %9
%12 = OpLabel
%res = OpVariable %_ptr_Function_float Function %4 %res = OpVariable %_ptr_Function_float Function %4
%9 = OpSelect %float %float_1 %float_1 %12 %13 = OpSelect %float %15 %float_1 %float_1
OpStore %res %9 OpStore %res %13
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%vertex_main = OpFunction %void None %5 %tint_symbol_2 = OpFunction %void None %19
%16 = OpLabel %tint_symbol = OpFunctionParameter %v4float
OpStore %tint_pointsize %float_1
%17 = OpFunctionCall %void %select_416e14
OpReturn
OpFunctionEnd
%fragment_main = OpFunction %void None %5
%19 = OpLabel
%20 = OpFunctionCall %void %select_416e14
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %5
%22 = OpLabel %22 = OpLabel
%23 = OpFunctionCall %void %select_416e14 OpStore %tint_symbol_1 %tint_symbol
OpReturn
OpFunctionEnd
%vertex_main = OpFunction %void None %9
%24 = OpLabel
OpStore %tint_pointsize %float_1
%25 = OpFunctionCall %void %select_416e14
%26 = OpFunctionCall %void %tint_symbol_2 %8
OpReturn
OpFunctionEnd
%fragment_main = OpFunction %void None %9
%28 = OpLabel
%29 = OpFunctionCall %void %select_416e14
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %9
%31 = OpLabel
%32 = OpFunctionCall %void %select_416e14
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
Validation Failure:
1:1: Expected bool scalar or vector type as condition: Select
%9 = OpSelect %float %float_1 %float_1 %12

View File

@ -1,63 +1,71 @@
SKIP: FAILED
; SPIR-V ; SPIR-V
; Version: 1.3 ; Version: 1.3
; Generator: Google Tint Compiler; 0 ; Generator: Google Tint Compiler; 0
; Bound: 27 ; Bound: 36
; Schema: 0 ; Schema: 0
OpCapability Shader OpCapability Shader
OpMemoryModel Logical GLSL450 OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main" OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main" OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1 OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize" OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %select_99f883 "select_99f883" OpName %select_99f883 "select_99f883"
OpName %res "res" OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main" OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main" OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main" OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32 %float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float %_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float %4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4 %tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%void = OpTypeVoid %void = OpTypeVoid
%5 = OpTypeFunction %void %9 = OpTypeFunction %void
%uint = OpTypeInt 32 0 %uint = OpTypeInt 32 0
%uint_1 = OpConstant %uint 1
%bool = OpTypeBool %bool = OpTypeBool
%13 = OpConstantNull %bool %16 = OpConstantNull %bool
%uint_1 = OpConstant %uint 1
%_ptr_Function_uint = OpTypePointer Function %uint %_ptr_Function_uint = OpTypePointer Function %uint
%16 = OpConstantNull %uint %20 = OpConstantNull %uint
%21 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1 %float_1 = OpConstant %float 1
%select_99f883 = OpFunction %void None %5 %select_99f883 = OpFunction %void None %9
%8 = OpLabel %12 = OpLabel
%res = OpVariable %_ptr_Function_uint Function %16 %res = OpVariable %_ptr_Function_uint Function %20
%9 = OpSelect %uint %uint_1 %uint_1 %13 %13 = OpSelect %uint %16 %uint_1 %uint_1
OpStore %res %9 OpStore %res %13
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%vertex_main = OpFunction %void None %5 %tint_symbol_2 = OpFunction %void None %21
%18 = OpLabel %tint_symbol = OpFunctionParameter %v4float
%24 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
OpFunctionEnd
%vertex_main = OpFunction %void None %9
%26 = OpLabel
OpStore %tint_pointsize %float_1 OpStore %tint_pointsize %float_1
%20 = OpFunctionCall %void %select_99f883 %28 = OpFunctionCall %void %select_99f883
%29 = OpFunctionCall %void %tint_symbol_2 %8
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%fragment_main = OpFunction %void None %5 %fragment_main = OpFunction %void None %9
%22 = OpLabel %31 = OpLabel
%23 = OpFunctionCall %void %select_99f883 %32 = OpFunctionCall %void %select_99f883
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%compute_main = OpFunction %void None %5 %compute_main = OpFunction %void None %9
%25 = OpLabel %34 = OpLabel
%26 = OpFunctionCall %void %select_99f883 %35 = OpFunctionCall %void %select_99f883
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
Validation Failure:
1:1: Expected bool scalar or vector type as condition: Select
%9 = OpSelect %uint %uint_1 %uint_1 %13

View File

@ -1,64 +1,72 @@
SKIP: FAILED
; SPIR-V ; SPIR-V
; Version: 1.3 ; Version: 1.3
; Generator: Google Tint Compiler; 0 ; Generator: Google Tint Compiler; 0
; Bound: 28 ; Bound: 37
; Schema: 0 ; Schema: 0
OpCapability Shader OpCapability Shader
OpMemoryModel Logical GLSL450 OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main" OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main" OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1 OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize" OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %select_a2860e "select_a2860e" OpName %select_a2860e "select_a2860e"
OpName %res "res" OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main" OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main" OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main" OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32 %float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float %_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float %4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4 %tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%void = OpTypeVoid %void = OpTypeVoid
%5 = OpTypeFunction %void %9 = OpTypeFunction %void
%int = OpTypeInt 32 1 %int = OpTypeInt 32 1
%v4int = OpTypeVector %int 4 %v4int = OpTypeVector %int 4
%12 = OpConstantNull %v4int
%bool = OpTypeBool %bool = OpTypeBool
%v4bool = OpTypeVector %bool 4 %v4bool = OpTypeVector %bool 4
%15 = OpConstantNull %v4bool %18 = OpConstantNull %v4bool
%19 = OpConstantNull %v4int
%_ptr_Function_v4int = OpTypePointer Function %v4int %_ptr_Function_v4int = OpTypePointer Function %v4int
%22 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1 %float_1 = OpConstant %float 1
%select_a2860e = OpFunction %void None %5 %select_a2860e = OpFunction %void None %9
%8 = OpLabel %12 = OpLabel
%res = OpVariable %_ptr_Function_v4int Function %12 %res = OpVariable %_ptr_Function_v4int Function %19
%9 = OpSelect %v4int %12 %12 %15 %13 = OpSelect %v4int %18 %19 %19
OpStore %res %9 OpStore %res %13
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%vertex_main = OpFunction %void None %5 %tint_symbol_2 = OpFunction %void None %22
%19 = OpLabel %tint_symbol = OpFunctionParameter %v4float
%25 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
OpFunctionEnd
%vertex_main = OpFunction %void None %9
%27 = OpLabel
OpStore %tint_pointsize %float_1 OpStore %tint_pointsize %float_1
%21 = OpFunctionCall %void %select_a2860e %29 = OpFunctionCall %void %select_a2860e
%30 = OpFunctionCall %void %tint_symbol_2 %8
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%fragment_main = OpFunction %void None %5 %fragment_main = OpFunction %void None %9
%23 = OpLabel %32 = OpLabel
%24 = OpFunctionCall %void %select_a2860e %33 = OpFunctionCall %void %select_a2860e
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%compute_main = OpFunction %void None %5 %compute_main = OpFunction %void None %9
%26 = OpLabel %35 = OpLabel
%27 = OpFunctionCall %void %select_a2860e %36 = OpFunctionCall %void %select_a2860e
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
Validation Failure:
1:1: Expected bool scalar or vector type as condition: Select
%9 = OpSelect %v4int %12 %12 %15

View File

@ -1,63 +1,69 @@
SKIP: FAILED
; SPIR-V ; SPIR-V
; Version: 1.3 ; Version: 1.3
; Generator: Google Tint Compiler; 0 ; Generator: Google Tint Compiler; 0
; Bound: 27 ; Bound: 34
; Schema: 0 ; Schema: 0
OpCapability Shader OpCapability Shader
OpMemoryModel Logical GLSL450 OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main" OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main" OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1 OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize" OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %select_bb8aae "select_bb8aae" OpName %select_bb8aae "select_bb8aae"
OpName %res "res" OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main" OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main" OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main" OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32 %float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float %_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float %4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4 %tint_pointsize = OpVariable %_ptr_Output_float Output %4
%void = OpTypeVoid
%5 = OpTypeFunction %void
%v4float = OpTypeVector %float 4 %v4float = OpTypeVector %float 4
%11 = OpConstantNull %v4float %_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%void = OpTypeVoid
%9 = OpTypeFunction %void
%bool = OpTypeBool %bool = OpTypeBool
%v4bool = OpTypeVector %bool 4 %v4bool = OpTypeVector %bool 4
%14 = OpConstantNull %v4bool %16 = OpConstantNull %v4bool
%_ptr_Function_v4float = OpTypePointer Function %v4float %_ptr_Function_v4float = OpTypePointer Function %v4float
%19 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1 %float_1 = OpConstant %float 1
%select_bb8aae = OpFunction %void None %5 %select_bb8aae = OpFunction %void None %9
%8 = OpLabel %12 = OpLabel
%res = OpVariable %_ptr_Function_v4float Function %11 %res = OpVariable %_ptr_Function_v4float Function %8
%9 = OpSelect %v4float %11 %11 %14 %13 = OpSelect %v4float %16 %8 %8
OpStore %res %9 OpStore %res %13
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%vertex_main = OpFunction %void None %5 %tint_symbol_2 = OpFunction %void None %19
%18 = OpLabel %tint_symbol = OpFunctionParameter %v4float
OpStore %tint_pointsize %float_1
%20 = OpFunctionCall %void %select_bb8aae
OpReturn
OpFunctionEnd
%fragment_main = OpFunction %void None %5
%22 = OpLabel %22 = OpLabel
%23 = OpFunctionCall %void %select_bb8aae OpStore %tint_symbol_1 %tint_symbol
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%compute_main = OpFunction %void None %5 %vertex_main = OpFunction %void None %9
%25 = OpLabel %24 = OpLabel
OpStore %tint_pointsize %float_1
%26 = OpFunctionCall %void %select_bb8aae %26 = OpFunctionCall %void %select_bb8aae
%27 = OpFunctionCall %void %tint_symbol_2 %8
OpReturn
OpFunctionEnd
%fragment_main = OpFunction %void None %9
%29 = OpLabel
%30 = OpFunctionCall %void %select_bb8aae
OpReturn
OpFunctionEnd
%compute_main = OpFunction %void None %9
%32 = OpLabel
%33 = OpFunctionCall %void %select_bb8aae
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
Validation Failure:
1:1: Expected bool scalar or vector type as condition: Select
%9 = OpSelect %v4float %11 %11 %14

View File

@ -1,64 +1,72 @@
SKIP: FAILED
; SPIR-V ; SPIR-V
; Version: 1.3 ; Version: 1.3
; Generator: Google Tint Compiler; 0 ; Generator: Google Tint Compiler; 0
; Bound: 28 ; Bound: 37
; Schema: 0 ; Schema: 0
OpCapability Shader OpCapability Shader
OpMemoryModel Logical GLSL450 OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main" OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main" OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1 OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize" OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %select_c4a4ef "select_c4a4ef" OpName %select_c4a4ef "select_c4a4ef"
OpName %res "res" OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main" OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main" OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main" OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32 %float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float %_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float %4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4 %tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%void = OpTypeVoid %void = OpTypeVoid
%5 = OpTypeFunction %void %9 = OpTypeFunction %void
%uint = OpTypeInt 32 0 %uint = OpTypeInt 32 0
%v4uint = OpTypeVector %uint 4 %v4uint = OpTypeVector %uint 4
%12 = OpConstantNull %v4uint
%bool = OpTypeBool %bool = OpTypeBool
%v4bool = OpTypeVector %bool 4 %v4bool = OpTypeVector %bool 4
%15 = OpConstantNull %v4bool %18 = OpConstantNull %v4bool
%19 = OpConstantNull %v4uint
%_ptr_Function_v4uint = OpTypePointer Function %v4uint %_ptr_Function_v4uint = OpTypePointer Function %v4uint
%22 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1 %float_1 = OpConstant %float 1
%select_c4a4ef = OpFunction %void None %5 %select_c4a4ef = OpFunction %void None %9
%8 = OpLabel %12 = OpLabel
%res = OpVariable %_ptr_Function_v4uint Function %12 %res = OpVariable %_ptr_Function_v4uint Function %19
%9 = OpSelect %v4uint %12 %12 %15 %13 = OpSelect %v4uint %18 %19 %19
OpStore %res %9 OpStore %res %13
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%vertex_main = OpFunction %void None %5 %tint_symbol_2 = OpFunction %void None %22
%19 = OpLabel %tint_symbol = OpFunctionParameter %v4float
%25 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
OpFunctionEnd
%vertex_main = OpFunction %void None %9
%27 = OpLabel
OpStore %tint_pointsize %float_1 OpStore %tint_pointsize %float_1
%21 = OpFunctionCall %void %select_c4a4ef %29 = OpFunctionCall %void %select_c4a4ef
%30 = OpFunctionCall %void %tint_symbol_2 %8
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%fragment_main = OpFunction %void None %5 %fragment_main = OpFunction %void None %9
%23 = OpLabel %32 = OpLabel
%24 = OpFunctionCall %void %select_c4a4ef %33 = OpFunctionCall %void %select_c4a4ef
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%compute_main = OpFunction %void None %5 %compute_main = OpFunction %void None %9
%26 = OpLabel %35 = OpLabel
%27 = OpFunctionCall %void %select_c4a4ef %36 = OpFunctionCall %void %select_c4a4ef
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
Validation Failure:
1:1: Expected bool scalar or vector type as condition: Select
%9 = OpSelect %v4uint %12 %12 %15

View File

@ -1,63 +1,71 @@
SKIP: FAILED
; SPIR-V ; SPIR-V
; Version: 1.3 ; Version: 1.3
; Generator: Google Tint Compiler; 0 ; Generator: Google Tint Compiler; 0
; Bound: 27 ; Bound: 36
; Schema: 0 ; Schema: 0
OpCapability Shader OpCapability Shader
OpMemoryModel Logical GLSL450 OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main" OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main" OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1 OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize" OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %select_ebfea2 "select_ebfea2" OpName %select_ebfea2 "select_ebfea2"
OpName %res "res" OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main" OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main" OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main" OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32 %float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float %_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float %4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4 %tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%void = OpTypeVoid %void = OpTypeVoid
%5 = OpTypeFunction %void %9 = OpTypeFunction %void
%v3float = OpTypeVector %float 3 %v3float = OpTypeVector %float 3
%11 = OpConstantNull %v3float
%bool = OpTypeBool %bool = OpTypeBool
%v3bool = OpTypeVector %bool 3 %v3bool = OpTypeVector %bool 3
%14 = OpConstantNull %v3bool %17 = OpConstantNull %v3bool
%18 = OpConstantNull %v3float
%_ptr_Function_v3float = OpTypePointer Function %v3float %_ptr_Function_v3float = OpTypePointer Function %v3float
%21 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1 %float_1 = OpConstant %float 1
%select_ebfea2 = OpFunction %void None %5 %select_ebfea2 = OpFunction %void None %9
%8 = OpLabel %12 = OpLabel
%res = OpVariable %_ptr_Function_v3float Function %11 %res = OpVariable %_ptr_Function_v3float Function %18
%9 = OpSelect %v3float %11 %11 %14 %13 = OpSelect %v3float %17 %18 %18
OpStore %res %9 OpStore %res %13
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%vertex_main = OpFunction %void None %5 %tint_symbol_2 = OpFunction %void None %21
%18 = OpLabel %tint_symbol = OpFunctionParameter %v4float
%24 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
OpFunctionEnd
%vertex_main = OpFunction %void None %9
%26 = OpLabel
OpStore %tint_pointsize %float_1 OpStore %tint_pointsize %float_1
%20 = OpFunctionCall %void %select_ebfea2 %28 = OpFunctionCall %void %select_ebfea2
%29 = OpFunctionCall %void %tint_symbol_2 %8
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%fragment_main = OpFunction %void None %5 %fragment_main = OpFunction %void None %9
%22 = OpLabel %31 = OpLabel
%23 = OpFunctionCall %void %select_ebfea2 %32 = OpFunctionCall %void %select_ebfea2
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%compute_main = OpFunction %void None %5 %compute_main = OpFunction %void None %9
%25 = OpLabel %34 = OpLabel
%26 = OpFunctionCall %void %select_ebfea2 %35 = OpFunctionCall %void %select_ebfea2
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
Validation Failure:
1:1: Expected bool scalar or vector type as condition: Select
%9 = OpSelect %v3float %11 %11 %14

View File

@ -1,63 +1,71 @@
SKIP: FAILED
; SPIR-V ; SPIR-V
; Version: 1.3 ; Version: 1.3
; Generator: Google Tint Compiler; 0 ; Generator: Google Tint Compiler; 0
; Bound: 27 ; Bound: 36
; Schema: 0 ; Schema: 0
OpCapability Shader OpCapability Shader
OpMemoryModel Logical GLSL450 OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize OpEntryPoint Vertex %vertex_main "vertex_main" %tint_pointsize %tint_symbol_1
OpEntryPoint Fragment %fragment_main "fragment_main" OpEntryPoint Fragment %fragment_main "fragment_main"
OpEntryPoint GLCompute %compute_main "compute_main" OpEntryPoint GLCompute %compute_main "compute_main"
OpExecutionMode %fragment_main OriginUpperLeft OpExecutionMode %fragment_main OriginUpperLeft
OpExecutionMode %compute_main LocalSize 1 1 1 OpExecutionMode %compute_main LocalSize 1 1 1
OpName %tint_pointsize "tint_pointsize" OpName %tint_pointsize "tint_pointsize"
OpName %tint_symbol_1 "tint_symbol_1"
OpName %select_ed8a15 "select_ed8a15" OpName %select_ed8a15 "select_ed8a15"
OpName %res "res" OpName %res "res"
OpName %tint_symbol_2 "tint_symbol_2"
OpName %tint_symbol "tint_symbol"
OpName %vertex_main "vertex_main" OpName %vertex_main "vertex_main"
OpName %fragment_main "fragment_main" OpName %fragment_main "fragment_main"
OpName %compute_main "compute_main" OpName %compute_main "compute_main"
OpDecorate %tint_pointsize BuiltIn PointSize OpDecorate %tint_pointsize BuiltIn PointSize
OpDecorate %tint_symbol_1 BuiltIn Position
%float = OpTypeFloat 32 %float = OpTypeFloat 32
%_ptr_Output_float = OpTypePointer Output %float %_ptr_Output_float = OpTypePointer Output %float
%4 = OpConstantNull %float %4 = OpConstantNull %float
%tint_pointsize = OpVariable %_ptr_Output_float Output %4 %tint_pointsize = OpVariable %_ptr_Output_float Output %4
%v4float = OpTypeVector %float 4
%_ptr_Output_v4float = OpTypePointer Output %v4float
%8 = OpConstantNull %v4float
%tint_symbol_1 = OpVariable %_ptr_Output_v4float Output %8
%void = OpTypeVoid %void = OpTypeVoid
%5 = OpTypeFunction %void %9 = OpTypeFunction %void
%int = OpTypeInt 32 1 %int = OpTypeInt 32 1
%int_1 = OpConstant %int 1
%bool = OpTypeBool %bool = OpTypeBool
%13 = OpConstantNull %bool %16 = OpConstantNull %bool
%int_1 = OpConstant %int 1
%_ptr_Function_int = OpTypePointer Function %int %_ptr_Function_int = OpTypePointer Function %int
%16 = OpConstantNull %int %20 = OpConstantNull %int
%21 = OpTypeFunction %void %v4float
%float_1 = OpConstant %float 1 %float_1 = OpConstant %float 1
%select_ed8a15 = OpFunction %void None %5 %select_ed8a15 = OpFunction %void None %9
%8 = OpLabel %12 = OpLabel
%res = OpVariable %_ptr_Function_int Function %16 %res = OpVariable %_ptr_Function_int Function %20
%9 = OpSelect %int %int_1 %int_1 %13 %13 = OpSelect %int %16 %int_1 %int_1
OpStore %res %9 OpStore %res %13
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%vertex_main = OpFunction %void None %5 %tint_symbol_2 = OpFunction %void None %21
%18 = OpLabel %tint_symbol = OpFunctionParameter %v4float
%24 = OpLabel
OpStore %tint_symbol_1 %tint_symbol
OpReturn
OpFunctionEnd
%vertex_main = OpFunction %void None %9
%26 = OpLabel
OpStore %tint_pointsize %float_1 OpStore %tint_pointsize %float_1
%20 = OpFunctionCall %void %select_ed8a15 %28 = OpFunctionCall %void %select_ed8a15
%29 = OpFunctionCall %void %tint_symbol_2 %8
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%fragment_main = OpFunction %void None %5 %fragment_main = OpFunction %void None %9
%22 = OpLabel %31 = OpLabel
%23 = OpFunctionCall %void %select_ed8a15 %32 = OpFunctionCall %void %select_ed8a15
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
%compute_main = OpFunction %void None %5 %compute_main = OpFunction %void None %9
%25 = OpLabel %34 = OpLabel
%26 = OpFunctionCall %void %select_ed8a15 %35 = OpFunctionCall %void %select_ed8a15
OpReturn OpReturn
OpFunctionEnd OpFunctionEnd
Validation Failure:
1:1: Expected bool scalar or vector type as condition: Select
%9 = OpSelect %int %int_1 %int_1 %13