working on function calls; ci skip
This commit is contained in:
@@ -19,7 +19,7 @@ pub fn main() !void {
|
||||
try rt.callEntryPoint(allocator, try rt.getEntryPointByName("main"));
|
||||
var output: [4]f32 = undefined;
|
||||
try rt.readOutput(f32, output[0..output.len], try rt.getResultByName("color"));
|
||||
std.log.info("Output: Vec4[{d}, {d}, {d}, {d}]", .{ output[0], output[1], output[2], output[3] });
|
||||
std.log.info("Output: Vec4{any}", .{output});
|
||||
}
|
||||
std.log.info("Successfully executed", .{});
|
||||
}
|
||||
|
||||
@@ -1,24 +1,21 @@
|
||||
[nzsl_version("1.1")]
|
||||
[feature(float64)]
|
||||
module;
|
||||
|
||||
struct FragOut
|
||||
{
|
||||
[location(0)] color: vec4[f32]
|
||||
}
|
||||
[nzsl_version("1.1")]
|
||||
[feature(float64)]
|
||||
module;
|
||||
|
||||
[entry(frag)]
|
||||
fn main() -> FragOut
|
||||
{
|
||||
let op1: f64 = 0.0;
|
||||
let op2: f64 = 9.0;
|
||||
let color: f32;
|
||||
if (op1 == op2)
|
||||
color = f32(op1);
|
||||
else
|
||||
color = f32(op2);
|
||||
struct FragOut
|
||||
{
|
||||
[location(0)] color: vec4[f32]
|
||||
}
|
||||
|
||||
let output: FragOut;
|
||||
output.color = vec4[f32](color, color, color, color);
|
||||
return output;
|
||||
}
|
||||
fn computeColor() -> f32
|
||||
{
|
||||
return 1.0;
|
||||
}
|
||||
|
||||
[entry(frag)]
|
||||
fn main() -> FragOut
|
||||
{
|
||||
let output: FragOut;
|
||||
output.color = vec4[f32](computeColor(), computeColor(), computeColor(), computeColor());
|
||||
return output;
|
||||
}
|
||||
|
||||
Binary file not shown.
@@ -1,70 +1,50 @@
|
||||
Version 1.0
|
||||
Generator: 2560130
|
||||
Bound: 42
|
||||
Bound: 27
|
||||
Schema: 0
|
||||
OpCapability Capability(Shader)
|
||||
OpCapability Capability(Float64)
|
||||
OpMemoryModel AddressingModel(Logical) MemoryModel(GLSL450)
|
||||
OpEntryPoint ExecutionModel(Fragment) %17 "main" %6
|
||||
OpExecutionMode %17 ExecutionMode(OriginUpperLeft)
|
||||
OpEntryPoint ExecutionModel(Fragment) %14 "main" %8
|
||||
OpExecutionMode %14 ExecutionMode(OriginUpperLeft)
|
||||
OpSource SourceLanguage(NZSL) 4198400
|
||||
OpSourceExtension "Version: 1.1"
|
||||
OpName %7 "FragOut"
|
||||
OpMemberName %7 0 "color"
|
||||
OpName %6 "color"
|
||||
OpName %17 "main"
|
||||
OpDecorate %6 Decoration(Location) 0
|
||||
OpMemberDecorate %7 0 Decoration(Offset) 0
|
||||
%1 = OpTypeVoid
|
||||
OpName %9 "FragOut"
|
||||
OpMemberName %9 0 "color"
|
||||
OpName %8 "color"
|
||||
OpName %13 "computeColor"
|
||||
OpName %14 "main"
|
||||
OpDecorate %8 Decoration(Location) 0
|
||||
OpMemberDecorate %9 0 Decoration(Offset) 0
|
||||
%1 = OpTypeFloat 32
|
||||
%2 = OpTypeFunction %1
|
||||
%3 = OpTypeFloat 32
|
||||
%4 = OpTypeVector %3 4
|
||||
%5 = OpTypePointer StorageClass(Output) %4
|
||||
%7 = OpTypeStruct %4
|
||||
%8 = OpTypeFloat 64
|
||||
%9 = OpConstant %8 f64(0)
|
||||
%10 = OpTypePointer StorageClass(Function) %8
|
||||
%11 = OpConstant %8 f64(9)
|
||||
%12 = OpTypePointer StorageClass(Function) %3
|
||||
%13 = OpTypeBool
|
||||
%14 = OpTypePointer StorageClass(Function) %7
|
||||
%15 = OpTypeInt 32 1
|
||||
%16 = OpConstant %15 i32(0)
|
||||
%39 = OpTypePointer StorageClass(Function) %4
|
||||
%6 = OpVariable %5 StorageClass(Output)
|
||||
%17 = OpFunction %1 FunctionControl(0) %2
|
||||
%18 = OpLabel
|
||||
%19 = OpVariable %10 StorageClass(Function)
|
||||
%20 = OpVariable %10 StorageClass(Function)
|
||||
%21 = OpVariable %12 StorageClass(Function)
|
||||
%22 = OpVariable %14 StorageClass(Function)
|
||||
OpStore %19 %9
|
||||
OpStore %20 %11
|
||||
%26 = OpLoad %8 %19
|
||||
%27 = OpLoad %8 %20
|
||||
%28 = OpFOrdEqual %13 %26 %27
|
||||
OpSelectionMerge %23 SelectionControl(0)
|
||||
OpBranchConditional %28 %24 %25
|
||||
%24 = OpLabel
|
||||
%29 = OpLoad %8 %19
|
||||
%30 = OpFConvert %3 %29
|
||||
OpStore %21 %30
|
||||
OpBranch %23
|
||||
%25 = OpLabel
|
||||
%31 = OpLoad %8 %20
|
||||
%32 = OpFConvert %3 %31
|
||||
OpStore %21 %32
|
||||
OpBranch %23
|
||||
%23 = OpLabel
|
||||
%33 = OpLoad %3 %21
|
||||
%34 = OpLoad %3 %21
|
||||
%35 = OpLoad %3 %21
|
||||
%36 = OpLoad %3 %21
|
||||
%37 = OpCompositeConstruct %4 %33 %34 %35 %36
|
||||
%38 = OpAccessChain %39 %22 %16
|
||||
OpStore %38 %37
|
||||
%40 = OpLoad %7 %22
|
||||
%41 = OpCompositeExtract %4 %40 0
|
||||
OpStore %6 %41
|
||||
%3 = OpConstant %1 f32(1)
|
||||
%4 = OpTypeVoid
|
||||
%5 = OpTypeFunction %4
|
||||
%6 = OpTypeVector %1 4
|
||||
%7 = OpTypePointer StorageClass(Output) %6
|
||||
%9 = OpTypeStruct %6
|
||||
%10 = OpTypePointer StorageClass(Function) %9
|
||||
%11 = OpTypeInt 32 1
|
||||
%12 = OpConstant %11 i32(0)
|
||||
%24 = OpTypePointer StorageClass(Function) %6
|
||||
%8 = OpVariable %7 StorageClass(Output)
|
||||
%13 = OpFunction %1 FunctionControl(0) %2
|
||||
%15 = OpLabel
|
||||
OpReturnValue %3
|
||||
OpFunctionEnd
|
||||
%14 = OpFunction %4 FunctionControl(0) %5
|
||||
%16 = OpLabel
|
||||
%17 = OpVariable %10 StorageClass(Function)
|
||||
%18 = OpFunctionCall %1 %13
|
||||
%19 = OpFunctionCall %1 %13
|
||||
%20 = OpFunctionCall %1 %13
|
||||
%21 = OpFunctionCall %1 %13
|
||||
%22 = OpCompositeConstruct %6 %18 %19 %20 %21
|
||||
%23 = OpAccessChain %24 %17 %12
|
||||
OpStore %23 %22
|
||||
%25 = OpLoad %9 %17
|
||||
%26 = OpCompositeExtract %6 %25 0
|
||||
OpStore %8 %26
|
||||
OpReturn
|
||||
OpFunctionEnd
|
||||
|
||||
Reference in New Issue
Block a user