tint/test-runner: Split expectations for FXC and DXC

Change tint's `--fxc` flag to take the path of the FXC compiler DLL.
Have tint attempt to validate with both FXC and DXC if `--validate` is
passed.

Fix the 'dirsWithNoPassExpectations' logic which looks like it got
broken with the tint -> dawn merge. It also incorrectly applied
filepath.FromSlash() on windows.

Change-Id: I0f46aa5c21bc48a2abc48402c41f846aff4a8633
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/96800
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Commit-Queue: Ben Clayton <bclayton@chromium.org>
This commit is contained in:
Ben Clayton
2022-07-22 17:43:27 +00:00
committed by Dawn LUCI CQ
parent 0778d9a48f
commit 7d34de88f1
5122 changed files with 73624 additions and 206 deletions

View File

@@ -0,0 +1,28 @@
struct S {
float a;
};
[numthreads(1, 1, 1)]
void main() {
bool bool_var = false;
const bool bool_let = false;
int i32_var = 0;
const int i32_let = 0;
uint u32_var = 0u;
const uint u32_let = 0u;
float f32_var = 0.0f;
const float f32_let = 0.0f;
int2 v2i32_var = (0).xx;
const int2 v2i32_let = (0).xx;
uint3 v3u32_var = (0u).xxx;
const uint3 v3u32_let = (0u).xxx;
float4 v4f32_var = (0.0f).xxxx;
const float4 v4f32_let = (0.0f).xxxx;
float2x3 m2x3_var = float2x3((0.0f).xxx, (0.0f).xxx);
const float3x4 m3x4_let = float3x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx);
float arr_var[4] = (float[4])0;
const float arr_let[4] = (float[4])0;
S struct_var = (S)0;
const S struct_let = (S)0;
return;
}

View File

@@ -0,0 +1,30 @@
void constant_with_non_constant() {
float a = 0.0f;
float2 b = float2(1.0f, a);
}
[numthreads(1, 1, 1)]
void main() {
bool bool_var1 = true;
bool bool_var2 = true;
bool bool_var3 = true;
int i32_var1 = 123;
int i32_var2 = 123;
int i32_var3 = 1;
uint u32_var1 = 123u;
uint u32_var2 = 123u;
uint u32_var3 = 1u;
bool3 v3bool_var1 = (true).xxx;
bool3 v3bool_var11 = (true).xxx;
bool3 v3bool_var2 = (true).xxx;
bool3 v3bool_var3 = (true).xxx;
int3 v3i32_var1 = (123).xxx;
int3 v3i32_var2 = (123).xxx;
int3 v3i32_var3 = (1).xxx;
uint3 v3u32_var1 = (123u).xxx;
uint3 v3u32_var2 = (123u).xxx;
uint3 v3u32_var3 = (1u).xxx;
bool3 v3bool_var4 = (true).xxx;
bool4 v4bool_var5 = bool4(true, false, true, false);
return;
}

View File

@@ -0,0 +1,4 @@
[numthreads(1, 1, 1)]
void main() {
return;
}

View File

@@ -0,0 +1,31 @@
struct S {
float a;
};
static bool bool_var = false;
static int i32_var = 0;
static uint u32_var = 0u;
static float f32_var = 0.0f;
static int2 v2i32_var = int2(0, 0);
static uint3 v3u32_var = uint3(0u, 0u, 0u);
static float4 v4f32_var = float4(0.0f, 0.0f, 0.0f, 0.0f);
static float2x3 m2x3_var = float2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
static float arr_var[4] = (float[4])0;
static S struct_var = (S)0;
[numthreads(1, 1, 1)]
void main() {
bool_var = false;
i32_var = 0;
u32_var = 0u;
f32_var = 0.0f;
v2i32_var = (0).xx;
v3u32_var = (0u).xxx;
v4f32_var = (0.0f).xxxx;
m2x3_var = float2x3((0.0f).xxx, (0.0f).xxx);
const float tint_symbol[4] = (float[4])0;
arr_var = tint_symbol;
const S tint_symbol_1 = (S)0;
struct_var = tint_symbol_1;
return;
}

View File

@@ -0,0 +1,45 @@
static bool bool_var1 = true;
static bool bool_var2 = true;
static bool bool_var3 = true;
static int i32_var1 = 1;
static int i32_var2 = 1;
static int i32_var3 = 1;
static uint u32_var1 = 1u;
static uint u32_var2 = 1u;
static uint u32_var3 = 1u;
static bool3 v3bool_var1 = (true).xxx;
static bool3 v3bool_var2 = (true).xxx;
static bool3 v3bool_var3 = (true).xxx;
static int3 v3i32_var1 = (1).xxx;
static int3 v3i32_var2 = (1).xxx;
static int3 v3i32_var3 = (1).xxx;
static uint3 v3u32_var1 = (1u).xxx;
static uint3 v3u32_var2 = (1u).xxx;
static uint3 v3u32_var3 = (1u).xxx;
static bool3 v3bool_var4 = (true).xxx;
static bool4 v4bool_var5 = bool4(true, false, true, false);
[numthreads(1, 1, 1)]
void main() {
bool_var1 = false;
bool_var2 = false;
bool_var3 = false;
i32_var1 = 0;
i32_var2 = 0;
i32_var3 = 0;
u32_var1 = 0u;
u32_var2 = 0u;
u32_var3 = 0u;
v3bool_var1 = (false).xxx;
v3bool_var2 = (false).xxx;
v3bool_var3 = (false).xxx;
v3bool_var4 = (false).xxx;
v4bool_var5 = (false).xxxx;
v3i32_var1 = (0).xxx;
v3i32_var2 = (0).xxx;
v3i32_var3 = (0).xxx;
v3u32_var1 = (0u).xxx;
v3u32_var2 = (0u).xxx;
v3u32_var3 = (0u).xxx;
return;
}

View File

@@ -0,0 +1,31 @@
struct S {
float a;
};
static bool bool_var = false;
static int i32_var = 0;
static uint u32_var = 0u;
static float f32_var = 0.0f;
static int2 v2i32_var = (0).xx;
static uint3 v3u32_var = (0u).xxx;
static float4 v4f32_var = (0.0f).xxxx;
static float2x3 m2x3_var = float2x3((0.0f).xxx, (0.0f).xxx);
static float arr_var[4] = (float[4])0;
static S struct_var = (S)0;
[numthreads(1, 1, 1)]
void main() {
bool_var = false;
i32_var = 0;
u32_var = 0u;
f32_var = 0.0f;
v2i32_var = (0).xx;
v3u32_var = (0u).xxx;
v4f32_var = (0.0f).xxxx;
m2x3_var = float2x3((0.0f).xxx, (0.0f).xxx);
const float tint_symbol[4] = (float[4])0;
arr_var = tint_symbol;
const S tint_symbol_1 = (S)0;
struct_var = tint_symbol_1;
return;
}

View File

@@ -0,0 +1,11 @@
struct S {
float a;
};
void foo(bool param_bool, int param_i32, uint param_u32, float param_f32, int2 param_v2i32, uint3 param_v3u32, float4 param_v4f32, float2x3 param_m2x3, float param_arr[4], S param_struct, inout float param_ptr_f32, inout float4 param_ptr_vec, inout float param_ptr_arr[4]) {
}
[numthreads(1, 1, 1)]
void main() {
return;
}

View File

@@ -0,0 +1,51 @@
struct S {
float a;
};
bool ret_bool() {
return false;
}
int ret_i32() {
return 0;
}
uint ret_u32() {
return 0u;
}
float ret_f32() {
return 0.0f;
}
int2 ret_v2i32() {
return (0).xx;
}
uint3 ret_v3u32() {
return (0u).xxx;
}
float4 ret_v4f32() {
return (0.0f).xxxx;
}
float2x3 ret_m2x3() {
return float2x3((0.0f).xxx, (0.0f).xxx);
}
typedef float ret_arr_ret[4];
ret_arr_ret ret_arr() {
const float tint_symbol[4] = (float[4])0;
return tint_symbol;
}
S ret_struct() {
const S tint_symbol_1 = (S)0;
return tint_symbol_1;
}
[numthreads(1, 1, 1)]
void main() {
return;
}

View File

@@ -0,0 +1,7 @@
SamplerState s : register(s0, space0);
SamplerComparisonState sc : register(s1, space0);
[numthreads(1, 1, 1)]
void main() {
return;
}

View File

@@ -0,0 +1,21 @@
struct S_inner {
float a;
};
struct S {
bool member_bool;
int member_i32;
uint member_u32;
float member_f32;
int2 member_v2i32;
uint3 member_v3u32;
float4 member_v4f32;
float2x3 member_m2x3;
float member_arr[4];
S_inner member_struct;
};
[numthreads(1, 1, 1)]
void main() {
const S s = (S)0;
return;
}

View File

@@ -0,0 +1,6 @@
Texture2D t_f : register(t0, space0);
[numthreads(1, 1, 1)]
void main() {
return;
}

View File

@@ -0,0 +1,6 @@
Texture2DArray t_f : register(t0, space0);
[numthreads(1, 1, 1)]
void main() {
return;
}

View File

@@ -0,0 +1,6 @@
TextureCube t_f : register(t0, space0);
[numthreads(1, 1, 1)]
void main() {
return;
}

View File

@@ -0,0 +1,6 @@
TextureCubeArray t_f : register(t0, space0);
[numthreads(1, 1, 1)]
void main() {
return;
}

View File

@@ -0,0 +1,8 @@
Texture2DMS<float4> t_f : register(t0, space0);
Texture2DMS<int4> t_i : register(t1, space0);
Texture2DMS<uint4> t_u : register(t2, space0);
[numthreads(1, 1, 1)]
void main() {
return;
}

View File

@@ -0,0 +1,8 @@
Texture1D<float4> t_f : register(t0, space0);
Texture1D<int4> t_i : register(t1, space0);
Texture1D<uint4> t_u : register(t2, space0);
[numthreads(1, 1, 1)]
void main() {
return;
}

View File

@@ -0,0 +1,8 @@
Texture2D<float4> t_f : register(t0, space0);
Texture2D<int4> t_i : register(t1, space0);
Texture2D<uint4> t_u : register(t2, space0);
[numthreads(1, 1, 1)]
void main() {
return;
}

View File

@@ -0,0 +1,8 @@
Texture2DArray<float4> t_f : register(t0, space0);
Texture2DArray<int4> t_i : register(t1, space0);
Texture2DArray<uint4> t_u : register(t2, space0);
[numthreads(1, 1, 1)]
void main() {
return;
}

View File

@@ -0,0 +1,8 @@
Texture3D<float4> t_f : register(t0, space0);
Texture3D<int4> t_i : register(t1, space0);
Texture3D<uint4> t_u : register(t2, space0);
[numthreads(1, 1, 1)]
void main() {
return;
}

View File

@@ -0,0 +1,8 @@
TextureCube<float4> t_f : register(t0, space0);
TextureCube<int4> t_i : register(t1, space0);
TextureCube<uint4> t_u : register(t2, space0);
[numthreads(1, 1, 1)]
void main() {
return;
}

View File

@@ -0,0 +1,8 @@
TextureCubeArray<float4> t_f : register(t0, space0);
TextureCubeArray<int4> t_i : register(t1, space0);
TextureCubeArray<uint4> t_u : register(t2, space0);
[numthreads(1, 1, 1)]
void main() {
return;
}

View File

@@ -0,0 +1,21 @@
RWTexture1D<float4> t_rgba8unorm : register(u0, space0);
RWTexture1D<float4> t_rgba8snorm : register(u1, space0);
RWTexture1D<uint4> t_rgba8uint : register(u2, space0);
RWTexture1D<int4> t_rgba8sint : register(u3, space0);
RWTexture1D<uint4> t_rgba16uint : register(u4, space0);
RWTexture1D<int4> t_rgba16sint : register(u5, space0);
RWTexture1D<float4> t_rgba16float : register(u6, space0);
RWTexture1D<uint4> t_r32uint : register(u7, space0);
RWTexture1D<int4> t_r32sint : register(u8, space0);
RWTexture1D<float4> t_r32float : register(u9, space0);
RWTexture1D<uint4> t_rg32uint : register(u10, space0);
RWTexture1D<int4> t_rg32sint : register(u11, space0);
RWTexture1D<float4> t_rg32float : register(u12, space0);
RWTexture1D<uint4> t_rgba32uint : register(u13, space0);
RWTexture1D<int4> t_rgba32sint : register(u14, space0);
RWTexture1D<float4> t_rgba32float : register(u15, space0);
[numthreads(1, 1, 1)]
void main() {
return;
}

View File

@@ -0,0 +1,21 @@
RWTexture2D<float4> t_rgba8unorm : register(u0, space0);
RWTexture2D<float4> t_rgba8snorm : register(u1, space0);
RWTexture2D<uint4> t_rgba8uint : register(u2, space0);
RWTexture2D<int4> t_rgba8sint : register(u3, space0);
RWTexture2D<uint4> t_rgba16uint : register(u4, space0);
RWTexture2D<int4> t_rgba16sint : register(u5, space0);
RWTexture2D<float4> t_rgba16float : register(u6, space0);
RWTexture2D<uint4> t_r32uint : register(u7, space0);
RWTexture2D<int4> t_r32sint : register(u8, space0);
RWTexture2D<float4> t_r32float : register(u9, space0);
RWTexture2D<uint4> t_rg32uint : register(u10, space0);
RWTexture2D<int4> t_rg32sint : register(u11, space0);
RWTexture2D<float4> t_rg32float : register(u12, space0);
RWTexture2D<uint4> t_rgba32uint : register(u13, space0);
RWTexture2D<int4> t_rgba32sint : register(u14, space0);
RWTexture2D<float4> t_rgba32float : register(u15, space0);
[numthreads(1, 1, 1)]
void main() {
return;
}

View File

@@ -0,0 +1,21 @@
RWTexture2DArray<float4> t_rgba8unorm : register(u0, space0);
RWTexture2DArray<float4> t_rgba8snorm : register(u1, space0);
RWTexture2DArray<uint4> t_rgba8uint : register(u2, space0);
RWTexture2DArray<int4> t_rgba8sint : register(u3, space0);
RWTexture2DArray<uint4> t_rgba16uint : register(u4, space0);
RWTexture2DArray<int4> t_rgba16sint : register(u5, space0);
RWTexture2DArray<float4> t_rgba16float : register(u6, space0);
RWTexture2DArray<uint4> t_r32uint : register(u7, space0);
RWTexture2DArray<int4> t_r32sint : register(u8, space0);
RWTexture2DArray<float4> t_r32float : register(u9, space0);
RWTexture2DArray<uint4> t_rg32uint : register(u10, space0);
RWTexture2DArray<int4> t_rg32sint : register(u11, space0);
RWTexture2DArray<float4> t_rg32float : register(u12, space0);
RWTexture2DArray<uint4> t_rgba32uint : register(u13, space0);
RWTexture2DArray<int4> t_rgba32sint : register(u14, space0);
RWTexture2DArray<float4> t_rgba32float : register(u15, space0);
[numthreads(1, 1, 1)]
void main() {
return;
}

View File

@@ -0,0 +1,21 @@
RWTexture3D<float4> t_rgba8unorm : register(u0, space0);
RWTexture3D<float4> t_rgba8snorm : register(u1, space0);
RWTexture3D<uint4> t_rgba8uint : register(u2, space0);
RWTexture3D<int4> t_rgba8sint : register(u3, space0);
RWTexture3D<uint4> t_rgba16uint : register(u4, space0);
RWTexture3D<int4> t_rgba16sint : register(u5, space0);
RWTexture3D<float4> t_rgba16float : register(u6, space0);
RWTexture3D<uint4> t_r32uint : register(u7, space0);
RWTexture3D<int4> t_r32sint : register(u8, space0);
RWTexture3D<float4> t_r32float : register(u9, space0);
RWTexture3D<uint4> t_rg32uint : register(u10, space0);
RWTexture3D<int4> t_rg32sint : register(u11, space0);
RWTexture3D<float4> t_rg32float : register(u12, space0);
RWTexture3D<uint4> t_rgba32uint : register(u13, space0);
RWTexture3D<int4> t_rgba32sint : register(u14, space0);
RWTexture3D<float4> t_rgba32float : register(u15, space0);
[numthreads(1, 1, 1)]
void main() {
return;
}