Skip to content

Commit 53d62b9

Browse files
jimblandykvark
authored andcommitted
Clean up handling of RayDesc builtin type, somewhat.
1 parent c34eed5 commit 53d62b9

File tree

2 files changed

+21
-19
lines changed

2 files changed

+21
-19
lines changed

src/front/wgsl/lower/mod.rs

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -641,15 +641,6 @@ impl<'source, 'temp> Lowerer<'source, 'temp> {
641641
let span = tu.decls.get_span(decl_handle);
642642
let decl = &tu.decls[decl_handle];
643643

644-
//NOTE: This is done separately from `resolve_ast_type` because `RayDesc` may be
645-
// first encountered in a local constructor invocation.
646-
//TODO: find a nicer way?
647-
if let Some(dep) = decl.dependencies.iter().find(|dep| dep.ident == "RayDesc") {
648-
let ty_handle = ctx.module.generate_ray_desc_type();
649-
ctx.globals
650-
.insert(dep.ident, LoweredGlobalDecl::Type(ty_handle));
651-
}
652-
653644
match decl.kind {
654645
ast::GlobalDeclKind::Fn(ref f) => {
655646
let lowered_decl = self.function(f, span, ctx.reborrow())?;
@@ -1930,6 +1921,17 @@ impl<'source, 'temp> Lowerer<'source, 'temp> {
19301921
committed: true,
19311922
}
19321923
}
1924+
"RayDesc" => {
1925+
let ty = ctx.module.generate_ray_desc_type();
1926+
let handle = self.construct(
1927+
span,
1928+
&ast::ConstructorType::Type(ty),
1929+
function.span,
1930+
arguments,
1931+
ctx.reborrow(),
1932+
)?;
1933+
return Ok(Some(handle));
1934+
}
19331935
_ => return Err(Error::UnknownIdent(function.span, function.name)),
19341936
}
19351937
};

tests/out/spv/ray-query.spvasm

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,12 @@ OpMemberDecorate %19 9 MatrixStride 16
2626
OpMemberDecorate %19 10 Offset 112
2727
OpMemberDecorate %19 10 ColMajor
2828
OpMemberDecorate %19 10 MatrixStride 16
29-
OpMemberDecorate %21 0 Offset 0
30-
OpMemberDecorate %21 1 Offset 4
31-
OpMemberDecorate %21 2 Offset 8
32-
OpMemberDecorate %21 3 Offset 12
33-
OpMemberDecorate %21 4 Offset 16
34-
OpMemberDecorate %21 5 Offset 32
29+
OpMemberDecorate %22 0 Offset 0
30+
OpMemberDecorate %22 1 Offset 4
31+
OpMemberDecorate %22 2 Offset 8
32+
OpMemberDecorate %22 3 Offset 12
33+
OpMemberDecorate %22 4 Offset 16
34+
OpMemberDecorate %22 5 Offset 32
3535
OpDecorate %23 DescriptorSet 0
3636
OpDecorate %23 Binding 0
3737
OpDecorate %25 DescriptorSet 0
@@ -57,15 +57,15 @@ OpMemberDecorate %26 0 Offset 0
5757
%18 = OpTypeMatrix %14 4
5858
%19 = OpTypeStruct %8 %4 %8 %8 %8 %8 %8 %16 %17 %18 %18
5959
%20 = OpTypeVector %4 4
60-
%21 = OpTypeStruct %8 %8 %4 %4 %14 %14
61-
%22 = OpTypeRayQueryKHR
60+
%21 = OpTypeRayQueryKHR
61+
%22 = OpTypeStruct %8 %8 %4 %4 %14 %14
6262
%24 = OpTypePointer UniformConstant %13
6363
%23 = OpVariable %24 UniformConstant
6464
%26 = OpTypeStruct %15
6565
%27 = OpTypePointer StorageBuffer %26
6666
%25 = OpVariable %27 StorageBuffer
6767
%32 = OpTypeFunction %14 %14 %19
68-
%46 = OpTypePointer Function %22
68+
%46 = OpTypePointer Function %21
6969
%49 = OpTypeFunction %2
7070
%51 = OpTypePointer StorageBuffer %15
7171
%72 = OpConstant %8 1
@@ -99,7 +99,7 @@ OpBranch %53
9999
%53 = OpLabel
100100
%54 = OpCompositeConstruct %14 %6 %3 %6
101101
%55 = OpCompositeConstruct %14 %6 %6 %6
102-
%56 = OpCompositeConstruct %21 %7 %9 %10 %11 %55 %54
102+
%56 = OpCompositeConstruct %22 %7 %9 %10 %11 %55 %54
103103
%57 = OpCompositeExtract %8 %56 0
104104
%58 = OpCompositeExtract %8 %56 1
105105
%59 = OpCompositeExtract %4 %56 2

0 commit comments

Comments
 (0)