-
Notifications
You must be signed in to change notification settings - Fork 820
[SM6.10] VEC9 TriangleObjectPositions / CHECK-pass validation tests #7831
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
simoll
wants to merge
1
commit into
microsoft:main
Choose a base branch
from
simoll:sm610_dxil_opcodes
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+182
−9
Open
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Some comments aren't visible on the classic Files Changed page.
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,74 @@ | ||||||||||||||||||||||
| ; RUN: %dxv %s | FileCheck %s | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| ; CHECK: Validation succeeded. | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| target datalayout = "e-m:e-p:32:32-i1:32-i8:32-i16:32-i32:32-i64:64-f16:32-f32:32-f64:64-n8:16:32:64" | ||||||||||||||||||||||
| target triple = "dxil-ms-dx" | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| %dx.types.Handle = type { i8* } | ||||||||||||||||||||||
| %struct.Payload = type { <4 x float> } | ||||||||||||||||||||||
| %struct.BuiltInTriangleIntersectionAttributes = type { <2 x float> } | ||||||||||||||||||||||
| %dx.types.ResourceProperties = type { i32, i32 } | ||||||||||||||||||||||
| %dx.types.HitObject = type { i8* } | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| ; Function Attrs: nounwind | ||||||||||||||||||||||
| define void @"\01?test_closesthit@@YAXUPayload@@UBuiltInTriangleIntersectionAttributes@@@Z"(%struct.Payload* noalias nocapture %payload, %struct.BuiltInTriangleIntersectionAttributes* nocapture readnone %attr) #0 { | ||||||||||||||||||||||
| %1 = call i32 @dx.op.clusterID(i32 2147483651) ; ClusterID() | ||||||||||||||||||||||
| ret void | ||||||||||||||||||||||
| } | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| ; Function Attrs: nounwind | ||||||||||||||||||||||
| define void @"\01?test_raygeneration@@YAXXZ"() #0 { | ||||||||||||||||||||||
| %1 = call %dx.types.HitObject @dx.op.hitObject_MakeNop(i32 266) ; HitObject_MakeNop() | ||||||||||||||||||||||
| %2 = call i32 @dx.op.hitObject_StateScalar.i32(i32 2147483654, %dx.types.HitObject %1) ; HitObject_ClusterID(hitObject) | ||||||||||||||||||||||
| %3 = call i32 @dx.op.allocateRayQuery(i32 178, i32 0) ; AllocateRayQuery(constRayFlags) | ||||||||||||||||||||||
| %4 = call i32 @dx.op.rayQuery_StateScalar.i32(i32 2147483652, i32 %3) ; RayQuery_CandidateClusterID(rayQueryHandle) | ||||||||||||||||||||||
| %5 = call i32 @dx.op.rayQuery_StateScalar.i32(i32 2147483653, i32 %3) ; RayQuery_CommittedClusterID(rayQueryHandle) | ||||||||||||||||||||||
|
Comment on lines
+22
to
+26
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||
| ret void | ||||||||||||||||||||||
| } | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| ; Function Attrs: nounwind readnone | ||||||||||||||||||||||
| declare i32 @dx.op.clusterID(i32) #1 | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| ; Function Attrs: nounwind readnone | ||||||||||||||||||||||
| declare %dx.types.HitObject @dx.op.hitObject_MakeNop(i32) #1 | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| ; Function Attrs: nounwind readnone | ||||||||||||||||||||||
| declare i32 @dx.op.hitObject_StateScalar.i32(i32, %dx.types.HitObject) #1 | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| ; Function Attrs: nounwind | ||||||||||||||||||||||
| declare i32 @dx.op.allocateRayQuery(i32, i32) #0 | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| ; Function Attrs: nounwind readonly | ||||||||||||||||||||||
| declare i32 @dx.op.rayQuery_StateScalar.i32(i32, i32) #2 | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| attributes #0 = { nounwind } | ||||||||||||||||||||||
| attributes #1 = { nounwind readnone } | ||||||||||||||||||||||
| attributes #2 = { nounwind readonly } | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| !dx.version = !{!0} | ||||||||||||||||||||||
| !dx.valver = !{!0} | ||||||||||||||||||||||
| !dx.shaderModel = !{!1} | ||||||||||||||||||||||
| !dx.typeAnnotations = !{!2} | ||||||||||||||||||||||
| !dx.dxrPayloadAnnotations = !{!9} | ||||||||||||||||||||||
| !dx.entryPoints = !{!12, !14, !17} | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| !0 = !{i32 1, i32 10} | ||||||||||||||||||||||
| !1 = !{!"lib", i32 6, i32 10} | ||||||||||||||||||||||
| !2 = !{i32 1, void (%struct.Payload*, %struct.BuiltInTriangleIntersectionAttributes*)* @"\01?test_closesthit@@YAXUPayload@@UBuiltInTriangleIntersectionAttributes@@@Z", !3, void ()* @"\01?test_raygeneration@@YAXXZ", !8} | ||||||||||||||||||||||
| !3 = !{!4, !6, !7} | ||||||||||||||||||||||
| !4 = !{i32 1, !5, !5} | ||||||||||||||||||||||
| !5 = !{} | ||||||||||||||||||||||
| !6 = !{i32 2, !5, !5} | ||||||||||||||||||||||
| !7 = !{i32 0, !5, !5} | ||||||||||||||||||||||
| !8 = !{!4} | ||||||||||||||||||||||
| !9 = !{i32 0, %struct.Payload undef, !10} | ||||||||||||||||||||||
| !10 = !{!11} | ||||||||||||||||||||||
| !11 = !{i32 0, i32 33} | ||||||||||||||||||||||
| !12 = !{null, !"", null, null, !13} | ||||||||||||||||||||||
| !13 = !{i32 0, i64 33554432} | ||||||||||||||||||||||
| !14 = !{void (%struct.Payload*, %struct.BuiltInTriangleIntersectionAttributes*)* @"\01?test_closesthit@@YAXUPayload@@UBuiltInTriangleIntersectionAttributes@@@Z", !"\01?test_closesthit@@YAXUPayload@@UBuiltInTriangleIntersectionAttributes@@@Z", null, null, !15} | ||||||||||||||||||||||
| !15 = !{i32 8, i32 10, i32 6, i32 16, i32 7, i32 8, i32 5, !16} | ||||||||||||||||||||||
| !16 = !{i32 0} | ||||||||||||||||||||||
| !17 = !{void ()* @"\01?test_raygeneration@@YAXXZ", !"\01?test_raygeneration@@YAXXZ", null, null, !18} | ||||||||||||||||||||||
| !18 = !{i32 8, i32 7, i32 5, !16} | ||||||||||||||||||||||
77 changes: 77 additions & 0 deletions
77
tools/clang/test/DXILValidation/triangle_position_passing.ll
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,77 @@ | ||||||||||||||||||||||
| ; RUN: %dxv %s | FileCheck %s | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| ; CHECK: Validation succeeded. | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| target datalayout = "e-m:e-p:32:32-i1:32-i8:32-i16:32-i32:32-i64:64-f16:32-f32:32-f64:64-n8:16:32:64" | ||||||||||||||||||||||
| target triple = "dxil-ms-dx" | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| %dx.types.Handle = type { i8* } | ||||||||||||||||||||||
| %struct.Payload = type { <4 x float> } | ||||||||||||||||||||||
| %struct.BuiltInTriangleIntersectionAttributes = type { <2 x float> } | ||||||||||||||||||||||
| %dx.types.ResourceProperties = type { i32, i32 } | ||||||||||||||||||||||
| %dx.types.HitObject = type { i8* } | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| ; Function Attrs: nounwind | ||||||||||||||||||||||
| define void @"\01?test_closesthit@@YAXUPayload@@UBuiltInTriangleIntersectionAttributes@@@Z"(%struct.Payload* noalias nocapture %payload, %struct.BuiltInTriangleIntersectionAttributes* nocapture readnone %attr) #0 { | ||||||||||||||||||||||
| %1 = call <9 x float> @dx.op.triangleObjectPosition.f32(i32 2147483655) ; TriangleObjectPosition() | ||||||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||
| ret void | ||||||||||||||||||||||
| } | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| ; Function Attrs: nounwind | ||||||||||||||||||||||
| define void @"\01?test_raygeneration@@YAXXZ"() #0 { | ||||||||||||||||||||||
| %1 = call %dx.types.HitObject @dx.op.hitObject_MakeNop(i32 266) ; HitObject_MakeNop() | ||||||||||||||||||||||
| %2 = call <9 x float> @dx.op.hitObject_TriangleObjectPosition.f32(i32 2147483658, %dx.types.HitObject %1) ; HitObject_TriangleObjectPosition(hitObject) | ||||||||||||||||||||||
| %3 = call i32 @dx.op.allocateRayQuery(i32 178, i32 0) ; AllocateRayQuery(constRayFlags) | ||||||||||||||||||||||
| %4 = call <9 x float> @dx.op.rayQuery_CandidateTriangleObjectPosition.f32(i32 2147483656, i32 %3) ; RayQuery_CandidateTriangleObjectPosition(rayQueryHandle) | ||||||||||||||||||||||
| %5 = call <9 x float> @dx.op.rayQuery_CommittedTriangleObjectPosition.f32(i32 2147483657, i32 %3) ; RayQuery_CommittedTriangleObjectPosition(rayQueryHandle) | ||||||||||||||||||||||
|
Comment on lines
+22
to
+26
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||||||||||||
| ret void | ||||||||||||||||||||||
| } | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| ; Function Attrs: nounwind readnone | ||||||||||||||||||||||
| declare <9 x float> @dx.op.triangleObjectPosition.f32(i32) #1 | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| ; Function Attrs: nounwind readnone | ||||||||||||||||||||||
| declare <9 x float> @dx.op.hitObject_TriangleObjectPosition.f32(i32, %dx.types.HitObject) #1 | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| ; Function Attrs: nounwind readnone | ||||||||||||||||||||||
| declare %dx.types.HitObject @dx.op.hitObject_MakeNop(i32) #1 | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| ; Function Attrs: nounwind | ||||||||||||||||||||||
| declare i32 @dx.op.allocateRayQuery(i32, i32) #0 | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| ; Function Attrs: nounwind readonly | ||||||||||||||||||||||
| declare <9 x float> @dx.op.rayQuery_CandidateTriangleObjectPosition.f32(i32, i32) #2 | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| ; Function Attrs: nounwind readonly | ||||||||||||||||||||||
| declare <9 x float> @dx.op.rayQuery_CommittedTriangleObjectPosition.f32(i32, i32) #2 | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| attributes #0 = { nounwind } | ||||||||||||||||||||||
| attributes #1 = { nounwind readnone } | ||||||||||||||||||||||
| attributes #2 = { nounwind readonly } | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| !dx.version = !{!0} | ||||||||||||||||||||||
| !dx.valver = !{!0} | ||||||||||||||||||||||
| !dx.shaderModel = !{!1} | ||||||||||||||||||||||
| !dx.typeAnnotations = !{!2} | ||||||||||||||||||||||
| !dx.dxrPayloadAnnotations = !{!9} | ||||||||||||||||||||||
| !dx.entryPoints = !{!12, !14, !17} | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
| !0 = !{i32 1, i32 10} | ||||||||||||||||||||||
| !1 = !{!"lib", i32 6, i32 10} | ||||||||||||||||||||||
| !2 = !{i32 1, void (%struct.Payload*, %struct.BuiltInTriangleIntersectionAttributes*)* @"\01?test_closesthit@@YAXUPayload@@UBuiltInTriangleIntersectionAttributes@@@Z", !3, void ()* @"\01?test_raygeneration@@YAXXZ", !8} | ||||||||||||||||||||||
| !3 = !{!4, !6, !7} | ||||||||||||||||||||||
| !4 = !{i32 1, !5, !5} | ||||||||||||||||||||||
| !5 = !{} | ||||||||||||||||||||||
| !6 = !{i32 2, !5, !5} | ||||||||||||||||||||||
| !7 = !{i32 0, !5, !5} | ||||||||||||||||||||||
| !8 = !{!4} | ||||||||||||||||||||||
| !9 = !{i32 0, %struct.Payload undef, !10} | ||||||||||||||||||||||
| !10 = !{!11} | ||||||||||||||||||||||
| !11 = !{i32 0, i32 33} | ||||||||||||||||||||||
| !12 = !{null, !"", null, null, !13} | ||||||||||||||||||||||
| !13 = !{i32 0, i64 33554432} | ||||||||||||||||||||||
| !14 = !{void (%struct.Payload*, %struct.BuiltInTriangleIntersectionAttributes*)* @"\01?test_closesthit@@YAXUPayload@@UBuiltInTriangleIntersectionAttributes@@@Z", !"\01?test_closesthit@@YAXUPayload@@UBuiltInTriangleIntersectionAttributes@@@Z", null, null, !15} | ||||||||||||||||||||||
| !15 = !{i32 8, i32 10, i32 6, i32 16, i32 7, i32 8, i32 5, !16} | ||||||||||||||||||||||
| !16 = !{i32 0} | ||||||||||||||||||||||
| !17 = !{void ()* @"\01?test_raygeneration@@YAXXZ", !"\01?test_raygeneration@@YAXXZ", null, null, !18} | ||||||||||||||||||||||
| !18 = !{i32 8, i32 7, i32 5, !16} | ||||||||||||||||||||||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When this is round-tripped through llvm,
i32 2147483651will becomei32 -2147483645. In lowering tests, for example, CHECK lines will need to usei32 -2147483645instead of the unsigned value.Using the unsigned value here could create confusion and additional difficulty for updating tests when moving ops to final DXIL because one will need to use two search/replace expressions to update each opcode, in case the unsigned form is used somewhere.
For this reason, I recommend considering the signed i32 form the canonical one to use in all cases for consistency.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.