mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-05-17 12:51:28 +00:00
This patch add DXC compile flag "-enable-16bit-types" and change profile to SM6.2 when validating generated HLSL using DXC if f16 extension is enabled in the WGSL program. The patch add Tint end-to-end test cases for expressions using f16 type, including constructor, binary operator, splat, zero-init, and others. Testcases that use f16 types in uniform or storage buffer are SKIPped, because such usage is not implemented yet. Bug: tint:1473, tint:1502 Change-Id: I481ab3d12cbb822f11ef85ba807bca3f9770089b Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/96252 Kokoro: Kokoro <noreply+kokoro@google.com> Reviewed-by: Ben Clayton <bclayton@chromium.org> Commit-Queue: Zhaoming Jiang <zhaoming.jiang@intel.com>
54 lines
2.1 KiB
Plaintext
54 lines
2.1 KiB
Plaintext
; SPIR-V
|
|
; Version: 1.3
|
|
; Generator: Google Tint Compiler; 0
|
|
; Bound: 27
|
|
; Schema: 0
|
|
OpCapability Shader
|
|
OpCapability Float16
|
|
OpCapability UniformAndStorageBuffer16BitAccess
|
|
OpCapability StorageBuffer16BitAccess
|
|
OpCapability StorageInputOutput16
|
|
OpMemoryModel Logical GLSL450
|
|
OpEntryPoint GLCompute %unused_entry_point "unused_entry_point"
|
|
OpExecutionMode %unused_entry_point LocalSize 1 1 1
|
|
OpName %S "S"
|
|
OpMemberName %S 0 "v"
|
|
OpName %P "P"
|
|
OpName %unused_entry_point "unused_entry_point"
|
|
OpName %f "f"
|
|
OpMemberDecorate %S 0 Offset 0
|
|
%half = OpTypeFloat 16
|
|
%v3half = OpTypeVector %half 3
|
|
%S = OpTypeStruct %v3half
|
|
%_ptr_Private_S = OpTypePointer Private %S
|
|
%6 = OpConstantNull %S
|
|
%P = OpVariable %_ptr_Private_S Private %6
|
|
%void = OpTypeVoid
|
|
%7 = OpTypeFunction %void
|
|
%uint = OpTypeInt 32 0
|
|
%uint_0 = OpConstant %uint 0
|
|
%_ptr_Private_v3half = OpTypePointer Private %v3half
|
|
%half_0x1p_0 = OpConstant %half 0x1p+0
|
|
%half_0x1p_1 = OpConstant %half 0x1p+1
|
|
%half_0x1_8p_1 = OpConstant %half 0x1.8p+1
|
|
%20 = OpConstantComposite %v3half %half_0x1p_0 %half_0x1p_1 %half_0x1_8p_1
|
|
%_ptr_Private_half = OpTypePointer Private %half
|
|
%uint_1 = OpConstant %uint 1
|
|
%uint_2 = OpConstant %uint 2
|
|
%unused_entry_point = OpFunction %void None %7
|
|
%10 = OpLabel
|
|
OpReturn
|
|
OpFunctionEnd
|
|
%f = OpFunction %void None %7
|
|
%12 = OpLabel
|
|
%16 = OpAccessChain %_ptr_Private_v3half %P %uint_0
|
|
OpStore %16 %20
|
|
%22 = OpAccessChain %_ptr_Private_half %P %uint_0 %uint_0
|
|
OpStore %22 %half_0x1p_0
|
|
%24 = OpAccessChain %_ptr_Private_half %P %uint_0 %uint_1
|
|
OpStore %24 %half_0x1p_1
|
|
%26 = OpAccessChain %_ptr_Private_half %P %uint_0 %uint_2
|
|
OpStore %26 %half_0x1_8p_1
|
|
OpReturn
|
|
OpFunctionEnd
|