mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-06-03 05:01:27 +00:00
Accept any type in the intrinsics definition, and then manually validate that there are no atomics in the type. Add manual E2E tests for composite types. Use the BuiltinPolyfill transform to implement it for all backends. Update the uniformity analysis with special-case tags for the builtin. Fixed: tint:1780 Change-Id: I95786dff4df70a0b16ed1c53b853b5d0ec6bc501 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/114862 Reviewed-by: Ben Clayton <bclayton@google.com> Commit-Queue: James Price <jrprice@google.com> Kokoro: James Price <jrprice@google.com>
65 lines
2.8 KiB
Plaintext
65 lines
2.8 KiB
Plaintext
; SPIR-V
|
|
; Version: 1.3
|
|
; Generator: Google Tint Compiler; 0
|
|
; Bound: 33
|
|
; Schema: 0
|
|
OpCapability Shader
|
|
OpCapability Float16
|
|
OpCapability UniformAndStorageBuffer16BitAccess
|
|
OpCapability StorageBuffer16BitAccess
|
|
OpCapability StorageInputOutput16
|
|
OpMemoryModel Logical GLSL450
|
|
OpEntryPoint GLCompute %compute_main "compute_main" %local_invocation_index_1
|
|
OpExecutionMode %compute_main LocalSize 1 1 1
|
|
OpName %local_invocation_index_1 "local_invocation_index_1"
|
|
OpName %arg_0 "arg_0"
|
|
OpName %tint_workgroupUniformLoad_arg_0 "tint_workgroupUniformLoad_arg_0"
|
|
OpName %workgroupUniformLoad_e07d08 "workgroupUniformLoad_e07d08"
|
|
OpName %res "res"
|
|
OpName %compute_main_inner "compute_main_inner"
|
|
OpName %local_invocation_index "local_invocation_index"
|
|
OpName %compute_main "compute_main"
|
|
OpDecorate %local_invocation_index_1 BuiltIn LocalInvocationIndex
|
|
%uint = OpTypeInt 32 0
|
|
%_ptr_Input_uint = OpTypePointer Input %uint
|
|
%local_invocation_index_1 = OpVariable %_ptr_Input_uint Input
|
|
%half = OpTypeFloat 16
|
|
%_ptr_Workgroup_half = OpTypePointer Workgroup %half
|
|
%arg_0 = OpVariable %_ptr_Workgroup_half Workgroup
|
|
%7 = OpTypeFunction %half
|
|
%void = OpTypeVoid
|
|
%uint_2 = OpConstant %uint 2
|
|
%uint_264 = OpConstant %uint 264
|
|
%16 = OpTypeFunction %void
|
|
%_ptr_Function_half = OpTypePointer Function %half
|
|
%22 = OpConstantNull %half
|
|
%23 = OpTypeFunction %void %uint
|
|
%tint_workgroupUniformLoad_arg_0 = OpFunction %half None %7
|
|
%9 = OpLabel
|
|
OpControlBarrier %uint_2 %uint_2 %uint_264
|
|
%14 = OpLoad %half %arg_0
|
|
OpControlBarrier %uint_2 %uint_2 %uint_264
|
|
OpReturnValue %14
|
|
OpFunctionEnd
|
|
%workgroupUniformLoad_e07d08 = OpFunction %void None %16
|
|
%18 = OpLabel
|
|
%res = OpVariable %_ptr_Function_half Function %22
|
|
%19 = OpFunctionCall %half %tint_workgroupUniformLoad_arg_0
|
|
OpStore %res %19
|
|
OpReturn
|
|
OpFunctionEnd
|
|
%compute_main_inner = OpFunction %void None %23
|
|
%local_invocation_index = OpFunctionParameter %uint
|
|
%26 = OpLabel
|
|
OpStore %arg_0 %22
|
|
OpControlBarrier %uint_2 %uint_2 %uint_264
|
|
%28 = OpFunctionCall %void %workgroupUniformLoad_e07d08
|
|
OpReturn
|
|
OpFunctionEnd
|
|
%compute_main = OpFunction %void None %16
|
|
%30 = OpLabel
|
|
%32 = OpLoad %uint %local_invocation_index_1
|
|
%31 = OpFunctionCall %void %compute_main_inner %32
|
|
OpReturn
|
|
OpFunctionEnd
|