When emitting a MSL struct initializer emit the struct name.
This CL changes the MSL emission for struct initializers to emit the struct name first. `const a = {.f=float3(1)}` becomes `const a = Normals{.f=float3(1)}`. This fixes an issues where the initialization happens inside an array which the downstream compiler rejected without the explicit struct naming. Bug: tint:1641 Change-Id: I948b9ca94f4b89eac6d5bbbaa615b3d71d50c737 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/98760 Commit-Queue: Dan Sinclair <dsinclair@chromium.org> Reviewed-by: Ben Clayton <bclayton@google.com>
This commit is contained in:
parent
7126ed9111
commit
3abad2c125
|
@ -1698,7 +1698,7 @@ bool GeneratorImpl::EmitConstant(std::ostream& out, const sem::Constant* constan
|
|||
return true;
|
||||
},
|
||||
[&](const sem::Struct* s) {
|
||||
out << "{";
|
||||
out << program_->Symbols().NameFor(s->Name()) << "{";
|
||||
TINT_DEFER(out << "}");
|
||||
|
||||
if (constant->AllZero()) {
|
||||
|
|
|
@ -224,7 +224,7 @@ struct tint_symbol {
|
|||
};
|
||||
|
||||
Interface vert_main_inner() {
|
||||
Interface const tint_symbol_3 = {.col1=0.5f, .col2=0.25f, .pos=float4(0.0f)};
|
||||
Interface const tint_symbol_3 = Interface{.col1=0.5f, .col2=0.25f, .pos=float4(0.0f)};
|
||||
return tint_symbol_3;
|
||||
}
|
||||
|
||||
|
|
|
@ -117,7 +117,7 @@ struct Out {
|
|||
};
|
||||
|
||||
vertex Out vert_main() {
|
||||
return {};
|
||||
return Out{};
|
||||
}
|
||||
|
||||
)");
|
||||
|
@ -147,7 +147,7 @@ struct Out {
|
|||
};
|
||||
|
||||
vertex Out vert_main() {
|
||||
return {};
|
||||
return Out{};
|
||||
}
|
||||
|
||||
)");
|
||||
|
@ -283,7 +283,7 @@ struct tint_symbol_4 {
|
|||
|
||||
void comp_main_inner(uint local_invocation_index, threadgroup S2* const tint_symbol_1) {
|
||||
{
|
||||
S2 const tint_symbol = {};
|
||||
S2 const tint_symbol = S2{};
|
||||
*(tint_symbol_1) = tint_symbol;
|
||||
}
|
||||
threadgroup_barrier(mem_flags::mem_threadgroup);
|
||||
|
|
|
@ -24,7 +24,7 @@ tint_array<int4, 4> ret_arr() {
|
|||
}
|
||||
|
||||
S ret_struct_arr() {
|
||||
S const tint_symbol_2 = {};
|
||||
S const tint_symbol_2 = S{};
|
||||
return tint_symbol_2;
|
||||
}
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@ tint_array<int4, 4> ret_arr() {
|
|||
}
|
||||
|
||||
S ret_struct_arr() {
|
||||
S const tint_symbol_2 = {};
|
||||
S const tint_symbol_2 = S{};
|
||||
return tint_symbol_2;
|
||||
}
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@ tint_array<int4, 4> ret_arr() {
|
|||
}
|
||||
|
||||
S ret_struct_arr() {
|
||||
S const tint_symbol_3 = {};
|
||||
S const tint_symbol_3 = S{};
|
||||
return tint_symbol_3;
|
||||
}
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@ tint_array<int4, 4> ret_arr() {
|
|||
}
|
||||
|
||||
S ret_struct_arr() {
|
||||
S const tint_symbol_2 = {};
|
||||
S const tint_symbol_2 = S{};
|
||||
return tint_symbol_2;
|
||||
}
|
||||
|
||||
|
|
|
@ -51,7 +51,7 @@ kernel void tint_symbol(device S* tint_symbol_3 [[buffer(0)]]) {
|
|||
(*(tint_symbol_3)).f = 0.0f;
|
||||
(*(tint_symbol_3)).g = float2x3(float3(0.0f), float3(0.0f));
|
||||
(*(tint_symbol_3)).h = float3x2(float2(0.0f), float2(0.0f), float2(0.0f));
|
||||
Inner const tint_symbol_1 = {};
|
||||
Inner const tint_symbol_1 = Inner{};
|
||||
(*(tint_symbol_3)).i = tint_symbol_1;
|
||||
tint_array<Inner, 4> const tint_symbol_2 = tint_array<Inner, 4>{};
|
||||
(*(tint_symbol_3)).j = tint_symbol_2;
|
||||
|
|
|
@ -10,7 +10,7 @@ struct B {
|
|||
};
|
||||
|
||||
B f(A a) {
|
||||
B const tint_symbol = {};
|
||||
B const tint_symbol = B{};
|
||||
return tint_symbol;
|
||||
}
|
||||
|
||||
|
|
|
@ -89,7 +89,7 @@ fragment tint_symbol_3 fs_main(texture2d<float, access::sample> tint_symbol_11 [
|
|||
float4 const inner_result_1 = fs_main_inner(tint_symbol_1.texcoord, &(tint_symbol_10), tint_symbol_11, tint_symbol_12);
|
||||
if (tint_symbol_10) {
|
||||
tint_discard_func();
|
||||
tint_symbol_3 const tint_symbol_4 = {};
|
||||
tint_symbol_3 const tint_symbol_4 = tint_symbol_3{};
|
||||
return tint_symbol_4;
|
||||
}
|
||||
tint_symbol_3 wrapper_result_1 = {};
|
||||
|
|
|
@ -40,7 +40,7 @@ fragment tint_symbol_3 tint_symbol(tint_symbol_2 tint_symbol_1 [[stage_in]]) {
|
|||
int const inner_result = tint_symbol_inner(tint_symbol_1.x, &(tint_symbol_7));
|
||||
if (tint_symbol_7) {
|
||||
tint_discard_func();
|
||||
tint_symbol_3 const tint_symbol_4 = {};
|
||||
tint_symbol_3 const tint_symbol_4 = tint_symbol_3{};
|
||||
return tint_symbol_4;
|
||||
}
|
||||
tint_symbol_3 wrapper_result = {};
|
||||
|
|
|
@ -137,7 +137,7 @@ main_out tint_symbol_inner(float fClipDistance3_param, float fClipDistance4_para
|
|||
*(tint_symbol_15) = fClipDistance4_param;
|
||||
main_1(tint_symbol_14, tint_symbol_16, tint_symbol_15, tint_symbol_17, tint_symbol_18, tint_symbol_19, tint_symbol_20);
|
||||
if (*(tint_symbol_16)) {
|
||||
main_out const tint_symbol_4 = {};
|
||||
main_out const tint_symbol_4 = main_out{};
|
||||
return tint_symbol_4;
|
||||
}
|
||||
main_out const tint_symbol_5 = {.glFragColor_1=*(tint_symbol_20)};
|
||||
|
@ -156,7 +156,7 @@ fragment tint_symbol_3 tint_symbol(const constant Scene* tint_symbol_24 [[buffer
|
|||
main_out const inner_result = tint_symbol_inner(tint_symbol_1.fClipDistance3_param, tint_symbol_1.fClipDistance4_param, &(tint_symbol_21), &(tint_symbol_22), &(tint_symbol_23), tint_symbol_24, tint_symbol_25, tint_symbol_26, &(tint_symbol_27));
|
||||
if (tint_symbol_23) {
|
||||
tint_discard_func();
|
||||
tint_symbol_3 const tint_symbol_6 = {};
|
||||
tint_symbol_3 const tint_symbol_6 = tint_symbol_3{};
|
||||
return tint_symbol_6;
|
||||
}
|
||||
tint_symbol_3 wrapper_result = {};
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
struct Normals {
|
||||
f : vec3<f32>,
|
||||
}
|
||||
const faceNormals = array<Normals, 1>(
|
||||
Normals(vec3(0, 0, 1)),
|
||||
);
|
||||
|
||||
@vertex
|
||||
fn main() -> @builtin(position) vec4<f32> {
|
||||
return vec4(faceNormals[0].f, 1.);
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
struct Normals {
|
||||
float3 f;
|
||||
};
|
||||
|
||||
struct tint_symbol {
|
||||
float4 value : SV_Position;
|
||||
};
|
||||
|
||||
float4 main_inner() {
|
||||
const Normals tint_symbol_1[1] = {{float3(0.0f, 0.0f, 1.0f)}};
|
||||
return float4(tint_symbol_1[0].f, 1.0f);
|
||||
}
|
||||
|
||||
tint_symbol main() {
|
||||
const float4 inner_result = main_inner();
|
||||
tint_symbol wrapper_result = (tint_symbol)0;
|
||||
wrapper_result.value = inner_result;
|
||||
return wrapper_result;
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
struct Normals {
|
||||
float3 f;
|
||||
};
|
||||
|
||||
struct tint_symbol {
|
||||
float4 value : SV_Position;
|
||||
};
|
||||
|
||||
float4 main_inner() {
|
||||
const Normals tint_symbol_1[1] = {{float3(0.0f, 0.0f, 1.0f)}};
|
||||
return float4(tint_symbol_1[0].f, 1.0f);
|
||||
}
|
||||
|
||||
tint_symbol main() {
|
||||
const float4 inner_result = main_inner();
|
||||
tint_symbol wrapper_result = (tint_symbol)0;
|
||||
wrapper_result.value = inner_result;
|
||||
return wrapper_result;
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
#version 310 es
|
||||
|
||||
struct Normals {
|
||||
vec3 f;
|
||||
};
|
||||
|
||||
vec4 tint_symbol() {
|
||||
Normals tint_symbol_1[1] = Normals[1](Normals(vec3(0.0f, 0.0f, 1.0f)));
|
||||
return vec4(tint_symbol_1[0].f, 1.0f);
|
||||
}
|
||||
|
||||
void main() {
|
||||
gl_PointSize = 1.0;
|
||||
vec4 inner_result = tint_symbol();
|
||||
gl_Position = inner_result;
|
||||
gl_Position.y = -(gl_Position.y);
|
||||
gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
|
||||
return;
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
#include <metal_stdlib>
|
||||
|
||||
using namespace metal;
|
||||
|
||||
template<typename T, size_t N>
|
||||
struct tint_array {
|
||||
const constant T& operator[](size_t i) const constant { return elements[i]; }
|
||||
device T& operator[](size_t i) device { return elements[i]; }
|
||||
const device T& operator[](size_t i) const device { return elements[i]; }
|
||||
thread T& operator[](size_t i) thread { return elements[i]; }
|
||||
const thread T& operator[](size_t i) const thread { return elements[i]; }
|
||||
threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
|
||||
const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
|
||||
T elements[N];
|
||||
};
|
||||
|
||||
struct Normals {
|
||||
float3 f;
|
||||
};
|
||||
|
||||
struct tint_symbol_1 {
|
||||
float4 value [[position]];
|
||||
};
|
||||
|
||||
float4 tint_symbol_inner() {
|
||||
tint_array<Normals, 1> const tint_symbol_2 = tint_array<Normals, 1>{Normals{.f=float3(0.0f, 0.0f, 1.0f)}};
|
||||
return float4(tint_symbol_2[0].f, 1.0f);
|
||||
}
|
||||
|
||||
vertex tint_symbol_1 tint_symbol() {
|
||||
float4 const inner_result = tint_symbol_inner();
|
||||
tint_symbol_1 wrapper_result = {};
|
||||
wrapper_result.value = inner_result;
|
||||
return wrapper_result;
|
||||
}
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
; SPIR-V
|
||||
; Version: 1.3
|
||||
; Generator: Google Tint Compiler; 0
|
||||
; Bound: 19
|
||||
; Schema: 0
|
||||
OpCapability Shader
|
||||
OpMemoryModel Logical GLSL450
|
||||
OpEntryPoint Vertex %main "main" %value %vertex_point_size
|
||||
OpName %value "value"
|
||||
OpName %vertex_point_size "vertex_point_size"
|
||||
OpName %main_inner "main_inner"
|
||||
OpName %main "main"
|
||||
OpDecorate %value BuiltIn Position
|
||||
OpDecorate %vertex_point_size BuiltIn PointSize
|
||||
%float = OpTypeFloat 32
|
||||
%v4float = OpTypeVector %float 4
|
||||
%_ptr_Output_v4float = OpTypePointer Output %v4float
|
||||
%5 = OpConstantNull %v4float
|
||||
%value = OpVariable %_ptr_Output_v4float Output %5
|
||||
%_ptr_Output_float = OpTypePointer Output %float
|
||||
%8 = OpConstantNull %float
|
||||
%vertex_point_size = OpVariable %_ptr_Output_float Output %8
|
||||
%9 = OpTypeFunction %v4float
|
||||
%float_1 = OpConstant %float 1
|
||||
%13 = OpConstantComposite %v4float %8 %8 %float_1 %float_1
|
||||
%void = OpTypeVoid
|
||||
%14 = OpTypeFunction %void
|
||||
%main_inner = OpFunction %v4float None %9
|
||||
%11 = OpLabel
|
||||
OpReturnValue %13
|
||||
OpFunctionEnd
|
||||
%main = OpFunction %void None %14
|
||||
%17 = OpLabel
|
||||
%18 = OpFunctionCall %v4float %main_inner
|
||||
OpStore %value %18
|
||||
OpStore %vertex_point_size %float_1
|
||||
OpReturn
|
||||
OpFunctionEnd
|
|
@ -0,0 +1,10 @@
|
|||
struct Normals {
|
||||
f : vec3<f32>,
|
||||
}
|
||||
|
||||
const faceNormals = array<Normals, 1>(Normals(vec3(0, 0, 1)));
|
||||
|
||||
@vertex
|
||||
fn main() -> @builtin(position) vec4<f32> {
|
||||
return vec4(faceNormals[0].f, 1.0);
|
||||
}
|
|
@ -26,7 +26,7 @@ struct x__atomic_compare_exchange_resulti32 {
|
|||
};
|
||||
|
||||
void atomicCompareExchangeWeak_1bd40a(device SB_RW_atomic* const tint_symbol_2) {
|
||||
x__atomic_compare_exchange_resulti32 res = {};
|
||||
x__atomic_compare_exchange_resulti32 res = x__atomic_compare_exchange_resulti32{};
|
||||
atomic_compare_exchange_resulti32 const tint_symbol = atomicCompareExchangeWeak_1(&((*(tint_symbol_2)).arg_0), 1, 1);
|
||||
int const old_value_1 = tint_symbol.old_value;
|
||||
int const x_19 = old_value_1;
|
||||
|
|
|
@ -26,7 +26,7 @@ struct x__atomic_compare_exchange_resultu32 {
|
|||
};
|
||||
|
||||
void atomicCompareExchangeWeak_63d8e6(device SB_RW_atomic* const tint_symbol_2) {
|
||||
x__atomic_compare_exchange_resultu32 res = {};
|
||||
x__atomic_compare_exchange_resultu32 res = x__atomic_compare_exchange_resultu32{};
|
||||
atomic_compare_exchange_resultu32 const tint_symbol = atomicCompareExchangeWeak_1(&((*(tint_symbol_2)).arg_0), 1u, 1u);
|
||||
uint const old_value_1 = tint_symbol.old_value;
|
||||
uint const x_17 = old_value_1;
|
||||
|
|
|
@ -18,7 +18,7 @@ struct x__atomic_compare_exchange_resulti32 {
|
|||
};
|
||||
|
||||
void atomicCompareExchangeWeak_e88938(threadgroup atomic_int* const tint_symbol_2) {
|
||||
x__atomic_compare_exchange_resulti32 res = {};
|
||||
x__atomic_compare_exchange_resulti32 res = x__atomic_compare_exchange_resulti32{};
|
||||
atomic_compare_exchange_resulti32 const tint_symbol = atomicCompareExchangeWeak_1(tint_symbol_2, 1, 1);
|
||||
int const old_value_1 = tint_symbol.old_value;
|
||||
int const x_18 = old_value_1;
|
||||
|
|
|
@ -18,7 +18,7 @@ struct x__atomic_compare_exchange_resultu32 {
|
|||
};
|
||||
|
||||
void atomicCompareExchangeWeak_83580d(threadgroup atomic_uint* const tint_symbol_2) {
|
||||
x__atomic_compare_exchange_resultu32 res = {};
|
||||
x__atomic_compare_exchange_resultu32 res = x__atomic_compare_exchange_resultu32{};
|
||||
atomic_compare_exchange_resultu32 const tint_symbol = atomicCompareExchangeWeak_1(tint_symbol_2, 1u, 1u);
|
||||
uint const old_value_1 = tint_symbol.old_value;
|
||||
uint const x_17 = old_value_1;
|
||||
|
|
|
@ -28,7 +28,7 @@ struct x__atomic_compare_exchange_resulti32 {
|
|||
void atomicCompareExchangeWeak_1bd40a(device SB_RW_atomic* const tint_symbol_2) {
|
||||
int arg_1 = 0;
|
||||
int arg_2 = 0;
|
||||
x__atomic_compare_exchange_resulti32 res = {};
|
||||
x__atomic_compare_exchange_resulti32 res = x__atomic_compare_exchange_resulti32{};
|
||||
arg_1 = 1;
|
||||
arg_2 = 1;
|
||||
int const x_23 = arg_2;
|
||||
|
|
|
@ -28,7 +28,7 @@ struct x__atomic_compare_exchange_resultu32 {
|
|||
void atomicCompareExchangeWeak_63d8e6(device SB_RW_atomic* const tint_symbol_2) {
|
||||
uint arg_1 = 0u;
|
||||
uint arg_2 = 0u;
|
||||
x__atomic_compare_exchange_resultu32 res = {};
|
||||
x__atomic_compare_exchange_resultu32 res = x__atomic_compare_exchange_resultu32{};
|
||||
arg_1 = 1u;
|
||||
arg_2 = 1u;
|
||||
uint const x_21 = arg_2;
|
||||
|
|
|
@ -20,7 +20,7 @@ struct x__atomic_compare_exchange_resulti32 {
|
|||
void atomicCompareExchangeWeak_e88938(threadgroup atomic_int* const tint_symbol_2) {
|
||||
int arg_1 = 0;
|
||||
int arg_2 = 0;
|
||||
x__atomic_compare_exchange_resulti32 res = {};
|
||||
x__atomic_compare_exchange_resulti32 res = x__atomic_compare_exchange_resulti32{};
|
||||
arg_1 = 1;
|
||||
arg_2 = 1;
|
||||
int const x_22 = arg_2;
|
||||
|
|
|
@ -20,7 +20,7 @@ struct x__atomic_compare_exchange_resultu32 {
|
|||
void atomicCompareExchangeWeak_83580d(threadgroup atomic_uint* const tint_symbol_2) {
|
||||
uint arg_1 = 0u;
|
||||
uint arg_2 = 0u;
|
||||
x__atomic_compare_exchange_resultu32 res = {};
|
||||
x__atomic_compare_exchange_resultu32 res = x__atomic_compare_exchange_resultu32{};
|
||||
arg_1 = 1u;
|
||||
arg_2 = 1u;
|
||||
uint const x_21 = arg_2;
|
||||
|
|
|
@ -19,6 +19,6 @@ struct S {
|
|||
};
|
||||
|
||||
void f() {
|
||||
S v = {};
|
||||
S v = S{};
|
||||
}
|
||||
|
||||
|
|
|
@ -9,6 +9,6 @@ struct S {
|
|||
};
|
||||
|
||||
void f() {
|
||||
S v = {};
|
||||
S v = S{};
|
||||
}
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ struct a__ {
|
|||
};
|
||||
|
||||
void f() {
|
||||
a__ const c = {};
|
||||
a__ const c = a__{};
|
||||
int const d = c.b__;
|
||||
}
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ struct _a {
|
|||
};
|
||||
|
||||
void f() {
|
||||
_a const c = {};
|
||||
_a const c = _a{};
|
||||
int const d = c._b;
|
||||
}
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ struct _A {
|
|||
};
|
||||
|
||||
void f() {
|
||||
_A const c = {};
|
||||
_A const c = _A{};
|
||||
int const d = c._B;
|
||||
}
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@ float ret_f32() {
|
|||
}
|
||||
|
||||
MyStruct ret_MyStruct() {
|
||||
MyStruct const tint_symbol_2 = {};
|
||||
MyStruct const tint_symbol_2 = MyStruct{};
|
||||
return tint_symbol_2;
|
||||
}
|
||||
|
||||
|
@ -48,7 +48,7 @@ void let_decls() {
|
|||
uint3 const v5 = uint3(1u);
|
||||
float3 const v6 = float3(1.0f);
|
||||
float3x3 const v7 = float3x3(v6, v6, v6);
|
||||
MyStruct const v8 = {.f1=1.0f};
|
||||
MyStruct const v8 = MyStruct{.f1=1.0f};
|
||||
tint_array<float, 10> const v9 = tint_array<float, 10>{};
|
||||
int const v10 = ret_i32();
|
||||
uint const v11 = ret_u32();
|
||||
|
|
|
@ -20,7 +20,7 @@ struct S {
|
|||
|
||||
fragment void f() {
|
||||
thread tint_array<S, 4> tint_symbol_1 = {};
|
||||
S const tint_symbol = {.m=1};
|
||||
S const tint_symbol = S{.m=1};
|
||||
tint_symbol_1[0] = tint_symbol;
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -12,7 +12,7 @@ struct tint_symbol_1 {
|
|||
};
|
||||
|
||||
FragmentOutputs tint_symbol_inner() {
|
||||
FragmentOutputs const tint_symbol_2 = {.frag_depth=1.0f, .sample_mask=1u};
|
||||
FragmentOutputs const tint_symbol_2 = FragmentOutputs{.frag_depth=1.0f, .sample_mask=1u};
|
||||
return tint_symbol_2;
|
||||
}
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ struct tint_symbol_1 {
|
|||
};
|
||||
|
||||
FragmentOutputs tint_symbol_inner() {
|
||||
FragmentOutputs const tint_symbol_2 = {.loc0=1, .loc1=1u, .loc2=1.0f, .loc3=float4(1.0f, 2.0f, 3.0f, 4.0f)};
|
||||
FragmentOutputs const tint_symbol_2 = FragmentOutputs{.loc0=1, .loc1=1u, .loc2=1.0f, .loc3=float4(1.0f, 2.0f, 3.0f, 4.0f)};
|
||||
return tint_symbol_2;
|
||||
}
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ struct tint_symbol_1 {
|
|||
};
|
||||
|
||||
FragmentOutputs tint_symbol_inner() {
|
||||
FragmentOutputs const tint_symbol_2 = {.loc0=1, .frag_depth=2.0f, .loc1=1u, .loc2=1.0f, .sample_mask=2u, .loc3=float4(1.0f, 2.0f, 3.0f, 4.0f)};
|
||||
FragmentOutputs const tint_symbol_2 = FragmentOutputs{.loc0=1, .frag_depth=2.0f, .loc1=1u, .loc2=1.0f, .sample_mask=2u, .loc3=float4(1.0f, 2.0f, 3.0f, 4.0f)};
|
||||
return tint_symbol_2;
|
||||
}
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@ struct tint_symbol {
|
|||
};
|
||||
|
||||
Interface vert_main_inner() {
|
||||
Interface const tint_symbol_4 = {};
|
||||
Interface const tint_symbol_4 = Interface{};
|
||||
return tint_symbol_4;
|
||||
}
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@ struct tint_symbol_1 {
|
|||
};
|
||||
|
||||
Out tint_symbol_inner() {
|
||||
Out const tint_symbol_2 = {};
|
||||
Out const tint_symbol_2 = Out{};
|
||||
return tint_symbol_2;
|
||||
}
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@ struct tint_symbol_1 {
|
|||
};
|
||||
|
||||
Out tint_symbol_inner() {
|
||||
Out const tint_symbol_2 = {};
|
||||
Out const tint_symbol_2 = Out{};
|
||||
return tint_symbol_2;
|
||||
}
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ struct tint_symbol {
|
|||
};
|
||||
|
||||
Interface vert_main_inner() {
|
||||
Interface const tint_symbol_3 = {.col1=0.400000006f, .col2=0.600000024f, .pos=float4(0.0f)};
|
||||
Interface const tint_symbol_3 = Interface{.col1=0.400000006f, .col2=0.600000024f, .pos=float4(0.0f)};
|
||||
return tint_symbol_3;
|
||||
}
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ struct tint_symbol_1 {
|
|||
};
|
||||
|
||||
VertexOutputs tint_symbol_inner() {
|
||||
VertexOutputs const tint_symbol_2 = {.position=float4(1.0f, 2.0f, 3.0f, 4.0f)};
|
||||
VertexOutputs const tint_symbol_2 = VertexOutputs{.position=float4(1.0f, 2.0f, 3.0f, 4.0f)};
|
||||
return tint_symbol_2;
|
||||
}
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@ struct tint_symbol_1 {
|
|||
};
|
||||
|
||||
VertexOutputs tint_symbol_inner() {
|
||||
VertexOutputs const tint_symbol_2 = {.loc0=1, .loc1=1u, .loc2=1.0f, .loc3=float4(1.0f, 2.0f, 3.0f, 4.0f), .position=float4(0.0f)};
|
||||
VertexOutputs const tint_symbol_2 = VertexOutputs{.loc0=1, .loc1=1u, .loc2=1.0f, .loc3=float4(1.0f, 2.0f, 3.0f, 4.0f), .position=float4(0.0f)};
|
||||
return tint_symbol_2;
|
||||
}
|
||||
|
||||
|
|
|
@ -7,10 +7,10 @@ struct a {
|
|||
|
||||
void f() {
|
||||
{
|
||||
a a_1 = {};
|
||||
a a_1 = a{};
|
||||
a b = a_1;
|
||||
}
|
||||
a a_2 = {};
|
||||
a a_2 = a{};
|
||||
a b = a_2;
|
||||
}
|
||||
|
||||
|
|
|
@ -7,10 +7,10 @@ struct a {
|
|||
|
||||
void f() {
|
||||
{
|
||||
a const a_1 = {};
|
||||
a const a_1 = a{};
|
||||
a const b = a_1;
|
||||
}
|
||||
a const a_2 = {};
|
||||
a const a_2 = a{};
|
||||
a const b = a_2;
|
||||
}
|
||||
|
||||
|
|
|
@ -7,10 +7,10 @@ struct a {
|
|||
|
||||
void f() {
|
||||
{
|
||||
a a_1 = {};
|
||||
a a_1 = a{};
|
||||
a b = a_1;
|
||||
}
|
||||
a a_2 = {};
|
||||
a a_2 = a{};
|
||||
a b = a_2;
|
||||
}
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@ int bar(thread int* const tint_symbol_5) {
|
|||
}
|
||||
|
||||
void tint_symbol(thread int* const tint_symbol_6) {
|
||||
S x = {};
|
||||
S x = S{};
|
||||
int const tint_symbol_3 = foo(tint_symbol_6);
|
||||
int const tint_symbol_1_save = tint_symbol_3;
|
||||
int const tint_symbol_2 = bar(tint_symbol_6);
|
||||
|
|
|
@ -8,7 +8,7 @@ struct S {
|
|||
void f() {
|
||||
int i = 0;
|
||||
while (true) {
|
||||
S const tint_symbol = {.i=1};
|
||||
S const tint_symbol = S{.i=1};
|
||||
if (!((i < tint_symbol.i))) {
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -15,7 +15,7 @@ void f() {
|
|||
{
|
||||
}
|
||||
{
|
||||
S const tint_symbol = {.i=1};
|
||||
S const tint_symbol = S{.i=1};
|
||||
i = as_type<int>((as_type<uint>(i) + as_type<uint>(tint_symbol.i)));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,7 +6,7 @@ struct S {
|
|||
};
|
||||
|
||||
void f() {
|
||||
S const tint_symbol = {.i=1};
|
||||
S const tint_symbol = S{.i=1};
|
||||
for(int i = tint_symbol.i; false; ) {
|
||||
}
|
||||
}
|
||||
|
|
|
@ -38,26 +38,26 @@ struct T {
|
|||
|
||||
kernel void tint_symbol() {
|
||||
int const x = 42;
|
||||
S1 const empty = {};
|
||||
S1 const nonempty = {.a=1, .b=2, .c=3, .d=4};
|
||||
S1 const empty = S1{};
|
||||
S1 const nonempty = S1{.a=1, .b=2, .c=3, .d=4};
|
||||
S1 const nonempty_with_expr = {.a=1, .b=x, .c=as_type<int>((as_type<uint>(x) + as_type<uint>(1))), .d=nonempty.d};
|
||||
S3 const nested_empty = {};
|
||||
S1 const tint_symbol_1 = {.a=2, .b=3, .c=4, .d=5};
|
||||
S1 const tint_symbol_2 = {.a=7, .b=8, .c=9, .d=10};
|
||||
S3 const nested_empty = S3{};
|
||||
S1 const tint_symbol_1 = S1{.a=2, .b=3, .c=4, .d=5};
|
||||
S1 const tint_symbol_2 = S1{.a=7, .b=8, .c=9, .d=10};
|
||||
S2 const tint_symbol_3 = {.e=6, .f=tint_symbol_2};
|
||||
S3 const nested_nonempty = {.g=1, .h=tint_symbol_1, .i=tint_symbol_3};
|
||||
S1 const tint_symbol_4 = {.a=2, .b=x, .c=as_type<int>((as_type<uint>(x) + as_type<uint>(1))), .d=nested_nonempty.i.f.d};
|
||||
S2 const tint_symbol_5 = {.e=6, .f=nonempty};
|
||||
S3 const nested_nonempty_with_expr = {.g=1, .h=tint_symbol_4, .i=tint_symbol_5};
|
||||
S1 const tint_symbol_6 = {};
|
||||
S1 const tint_symbol_6 = S1{};
|
||||
int const subexpr_empty = tint_symbol_6.a;
|
||||
S1 const tint_symbol_7 = {.a=1, .b=2, .c=3, .d=4};
|
||||
S1 const tint_symbol_7 = S1{.a=1, .b=2, .c=3, .d=4};
|
||||
int const subexpr_nonempty = tint_symbol_7.b;
|
||||
S1 const tint_symbol_8 = {.a=1, .b=x, .c=as_type<int>((as_type<uint>(x) + as_type<uint>(1))), .d=nonempty.d};
|
||||
int const subexpr_nonempty_with_expr = tint_symbol_8.c;
|
||||
S2 const tint_symbol_9 = {};
|
||||
S2 const tint_symbol_9 = S2{};
|
||||
S1 const subexpr_nested_empty = tint_symbol_9.f;
|
||||
S1 const tint_symbol_10 = {.a=2, .b=3, .c=4, .d=5};
|
||||
S1 const tint_symbol_10 = S1{.a=2, .b=3, .c=4, .d=5};
|
||||
S2 const tint_symbol_11 = {.e=1, .f=tint_symbol_10};
|
||||
S1 const subexpr_nested_nonempty = tint_symbol_11.f;
|
||||
S1 const tint_symbol_12 = {.a=2, .b=x, .c=as_type<int>((as_type<uint>(x) + as_type<uint>(1))), .d=nested_nonempty.i.f.d};
|
||||
|
|
|
@ -37,8 +37,8 @@ kernel void tint_symbol() {
|
|||
float3x4 const m3x4_let = float3x4(float4(0.0f), float4(0.0f), float4(0.0f));
|
||||
tint_array<float, 4> arr_var = tint_array<float, 4>{};
|
||||
tint_array<float, 4> const arr_let = tint_array<float, 4>{};
|
||||
S struct_var = {};
|
||||
S const struct_let = {};
|
||||
S struct_var = S{};
|
||||
S const struct_let = S{};
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ kernel void tint_symbol() {
|
|||
tint_symbol_10 = float2x3(float3(0.0f), float3(0.0f));
|
||||
tint_array<float, 4> const tint_symbol_1 = tint_array<float, 4>{};
|
||||
tint_symbol_11 = tint_symbol_1;
|
||||
S const tint_symbol_2 = {};
|
||||
S const tint_symbol_2 = S{};
|
||||
tint_symbol_12 = tint_symbol_2;
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -28,7 +28,7 @@ kernel void tint_symbol() {
|
|||
thread float4 tint_symbol_9 = float4(0.0f);
|
||||
thread float2x3 tint_symbol_10 = float2x3(float3(0.0f), float3(0.0f));
|
||||
thread tint_array<float, 4> tint_symbol_11 = tint_array<float, 4>{};
|
||||
thread S tint_symbol_12 = {};
|
||||
thread S tint_symbol_12 = S{};
|
||||
tint_symbol_3 = false;
|
||||
tint_symbol_4 = 0;
|
||||
tint_symbol_5 = 0u;
|
||||
|
@ -39,7 +39,7 @@ kernel void tint_symbol() {
|
|||
tint_symbol_10 = float2x3(float3(0.0f), float3(0.0f));
|
||||
tint_array<float, 4> const tint_symbol_1 = tint_array<float, 4>{};
|
||||
tint_symbol_11 = tint_symbol_1;
|
||||
S const tint_symbol_2 = {};
|
||||
S const tint_symbol_2 = S{};
|
||||
tint_symbol_12 = tint_symbol_2;
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -56,7 +56,7 @@ tint_array<float, 4> ret_arr() {
|
|||
}
|
||||
|
||||
S ret_struct() {
|
||||
S const tint_symbol_2 = {};
|
||||
S const tint_symbol_2 = S{};
|
||||
return tint_symbol_2;
|
||||
}
|
||||
|
||||
|
|
|
@ -32,7 +32,7 @@ struct S {
|
|||
};
|
||||
|
||||
kernel void tint_symbol() {
|
||||
S const s = {};
|
||||
S const s = S{};
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@ float ret_f32() {
|
|||
}
|
||||
|
||||
MyStruct ret_MyStruct() {
|
||||
MyStruct const tint_symbol_2 = {};
|
||||
MyStruct const tint_symbol_2 = MyStruct{};
|
||||
return tint_symbol_2;
|
||||
}
|
||||
|
||||
|
@ -48,7 +48,7 @@ void var_decls() {
|
|||
uint3 v5 = uint3(1u);
|
||||
float3 v6 = float3(1.0f);
|
||||
float3x3 v7 = float3x3(v6, v6, v6);
|
||||
MyStruct v8 = {.f1=1.0f};
|
||||
MyStruct v8 = MyStruct{.f1=1.0f};
|
||||
tint_array<float, 10> v9 = tint_array<float, 10>{};
|
||||
int v10 = ret_i32();
|
||||
uint v11 = ret_u32();
|
||||
|
|
|
@ -25,13 +25,13 @@ kernel void f() {
|
|||
thread int3 tint_symbol_3 = int3(1);
|
||||
thread uint3 tint_symbol_4 = uint3(1u, 2u, 3u);
|
||||
thread float3 tint_symbol_5 = float3(1.0f, 2.0f, 3.0f);
|
||||
thread MyStruct tint_symbol_6 = {.f1=1.0f};
|
||||
thread MyStruct tint_symbol_6 = MyStruct{.f1=1.0f};
|
||||
thread tint_array<float, 10> tint_symbol_7 = tint_array<float, 10>{};
|
||||
thread int tint_symbol_8 = 0;
|
||||
thread uint tint_symbol_9 = 0u;
|
||||
thread float tint_symbol_10 = 0.0f;
|
||||
thread MyStruct tint_symbol_11 = {};
|
||||
thread MyStruct tint_symbol_12 = {};
|
||||
thread MyStruct tint_symbol_11 = MyStruct{};
|
||||
thread MyStruct tint_symbol_12 = MyStruct{};
|
||||
thread tint_array<float, 10> tint_symbol_13 = tint_array<float, 10>{};
|
||||
thread int3 tint_symbol_14 = int3(1, 2, 3);
|
||||
thread float3 tint_symbol_15 = float3(1.0f, 2.0f, 3.0f);
|
||||
|
|
|
@ -8,7 +8,7 @@ struct S {
|
|||
|
||||
void tint_symbol_inner(uint local_invocation_index, threadgroup S* const tint_symbol_2) {
|
||||
{
|
||||
S const tint_symbol_1 = {};
|
||||
S const tint_symbol_1 = S{};
|
||||
*(tint_symbol_2) = tint_symbol_1;
|
||||
}
|
||||
threadgroup_barrier(mem_flags::mem_threadgroup);
|
||||
|
|
Loading…
Reference in New Issue