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,7 @@
[numthreads(1, 1, 1)]
void f() {
const float2x4 a = float2x4(float4(1.0f, 2.0f, 3.0f, 4.0f), float4(5.0f, 6.0f, 7.0f, 8.0f));
const float4x2 b = float4x2(float2(-1.0f, -2.0f), float2(-3.0f, -4.0f), float2(-5.0f, -6.0f), float2(-7.0f, -8.0f));
const float4x4 r = mul(b, a);
return;
}

View File

@@ -0,0 +1,18 @@
cbuffer cbuffer_data : register(b0, space0) {
uint4 data[3];
};
float3x2 tint_symbol_2(uint4 buffer[3], uint offset) {
const uint scalar_offset = ((offset + 0u)) / 4;
uint4 ubo_load = buffer[scalar_offset / 4];
const uint scalar_offset_1 = ((offset + 8u)) / 4;
uint4 ubo_load_1 = buffer[scalar_offset_1 / 4];
const uint scalar_offset_2 = ((offset + 16u)) / 4;
uint4 ubo_load_2 = buffer[scalar_offset_2 / 4];
return float3x2(asfloat(((scalar_offset & 2) ? ubo_load.zw : ubo_load.xy)), asfloat(((scalar_offset_1 & 2) ? ubo_load_1.zw : ubo_load_1.xy)), asfloat(((scalar_offset_2 & 2) ? ubo_load_2.zw : ubo_load_2.xy)));
}
void main() {
const float2 x = mul(asfloat(data[2].xyz), tint_symbol_2(data, 0u));
return;
}

View File

@@ -0,0 +1,7 @@
[numthreads(1, 1, 1)]
void f() {
const float3x3 a = float3x3(float3(1.0f, 2.0f, 3.0f), float3(4.0f, 5.0f, 6.0f), float3(7.0f, 8.0f, 9.0f));
const float3x3 b = float3x3(float3(-1.0f, -2.0f, -3.0f), float3(-4.0f, -5.0f, -6.0f), float3(-7.0f, -8.0f, -9.0f));
const float3x3 r = mul(b, a);
return;
}

View File

@@ -0,0 +1,15 @@
cbuffer cbuffer_data : register(b0, space0) {
uint4 data[4];
};
float3x3 tint_symbol_2(uint4 buffer[4], uint offset) {
const uint scalar_offset = ((offset + 0u)) / 4;
const uint scalar_offset_1 = ((offset + 16u)) / 4;
const uint scalar_offset_2 = ((offset + 32u)) / 4;
return float3x3(asfloat(buffer[scalar_offset / 4].xyz), asfloat(buffer[scalar_offset_1 / 4].xyz), asfloat(buffer[scalar_offset_2 / 4].xyz));
}
void main() {
const float3 x = mul(asfloat(data[3].xyz), tint_symbol_2(data, 0u));
return;
}

View File

@@ -0,0 +1,7 @@
[numthreads(1, 1, 1)]
void f() {
const float4x2 a = float4x2(float2(-1.0f, -2.0f), float2(-3.0f, -4.0f), float2(-5.0f, -6.0f), float2(-7.0f, -8.0f));
const float2x4 b = float2x4(float4(1.0f, 2.0f, 3.0f, 4.0f), float4(5.0f, 6.0f, 7.0f, 8.0f));
const float2x2 r = mul(b, a);
return;
}

View File

@@ -0,0 +1,5 @@
[numthreads(1, 1, 1)]
void f() {
const float r = (1.0f * 2.0f);
return;
}

View File

@@ -0,0 +1,5 @@
[numthreads(1, 1, 1)]
void f() {
const int r = (1 * 2);
return;
}

View File

@@ -0,0 +1,5 @@
[numthreads(1, 1, 1)]
void f() {
const uint r = (1u * 2u);
return;
}

View File

@@ -0,0 +1,7 @@
[numthreads(1, 1, 1)]
void f() {
const float a = 4.0f;
const float3 b = float3(1.0f, 2.0f, 3.0f);
const float3 r = (a * b);
return;
}

View File

@@ -0,0 +1,7 @@
[numthreads(1, 1, 1)]
void f() {
const int a = 4;
const int3 b = int3(1, 2, 3);
const int3 r = (a * b);
return;
}

View File

@@ -0,0 +1,7 @@
[numthreads(1, 1, 1)]
void f() {
const uint a = 4u;
const uint3 b = uint3(1u, 2u, 3u);
const uint3 r = (a * b);
return;
}

View File

@@ -0,0 +1,15 @@
cbuffer cbuffer_data : register(b0, space0) {
uint4 data[4];
};
float3x3 tint_symbol_3(uint4 buffer[4], uint offset) {
const uint scalar_offset = ((offset + 0u)) / 4;
const uint scalar_offset_1 = ((offset + 16u)) / 4;
const uint scalar_offset_2 = ((offset + 32u)) / 4;
return float3x3(asfloat(buffer[scalar_offset / 4].xyz), asfloat(buffer[scalar_offset_1 / 4].xyz), asfloat(buffer[scalar_offset_2 / 4].xyz));
}
void main() {
const float3 x = mul(tint_symbol_3(data, 0u), asfloat(data[3].xyz));
return;
}

View File

@@ -0,0 +1,16 @@
cbuffer cbuffer_data : register(b0, space0) {
uint4 data[5];
};
float4x3 tint_symbol_3(uint4 buffer[5], uint offset) {
const uint scalar_offset = ((offset + 0u)) / 4;
const uint scalar_offset_1 = ((offset + 16u)) / 4;
const uint scalar_offset_2 = ((offset + 32u)) / 4;
const uint scalar_offset_3 = ((offset + 48u)) / 4;
return float4x3(asfloat(buffer[scalar_offset / 4].xyz), asfloat(buffer[scalar_offset_1 / 4].xyz), asfloat(buffer[scalar_offset_2 / 4].xyz), asfloat(buffer[scalar_offset_3 / 4].xyz));
}
void main() {
const float4 x = mul(tint_symbol_3(data, 0u), asfloat(data[4].xyz));
return;
}

View File

@@ -0,0 +1,6 @@
[numthreads(1, 1, 1)]
void f() {
const float3 a = float3(1.0f, 2.0f, 3.0f);
const float3 r = (a * 4.0f);
return;
}

View File

@@ -0,0 +1,6 @@
[numthreads(1, 1, 1)]
void f() {
const int3 a = int3(1, 2, 3);
const int3 r = (a * 4);
return;
}

View File

@@ -0,0 +1,6 @@
[numthreads(1, 1, 1)]
void f() {
const uint3 a = uint3(1u, 2u, 3u);
const uint3 r = (a * 4u);
return;
}

View File

@@ -0,0 +1,7 @@
[numthreads(1, 1, 1)]
void f() {
const float3 a = float3(1.0f, 2.0f, 3.0f);
const float3 b = float3(4.0f, 5.0f, 6.0f);
const float3 r = (a * b);
return;
}

View File

@@ -0,0 +1,7 @@
[numthreads(1, 1, 1)]
void f() {
const int3 a = int3(1, 2, 3);
const int3 b = int3(4, 5, 6);
const int3 r = (a * b);
return;
}

View File

@@ -0,0 +1,7 @@
[numthreads(1, 1, 1)]
void f() {
const uint3 a = uint3(1u, 2u, 3u);
const uint3 b = uint3(4u, 5u, 6u);
const uint3 r = (a * b);
return;
}