mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2024-09-13 09:16:14 -07:00
d3ba810c98
This is simply unnecessary and wastes time. As part of this, simply remove the "all" directive. Only for a couple of tests is it even potentially interesting to validate all pixels (e.g. nointerpolation.shader_test), and for those "all" is replaced with an explicit (0, 0, 640, 480) rect. In all other cases we just probe (0, 0).
585 lines
7.5 KiB
Plaintext
585 lines
7.5 KiB
Plaintext
[pixel shader]
|
|
struct apple
|
|
{
|
|
float3 aa;
|
|
int bb;
|
|
};
|
|
|
|
float4 main() : sv_target
|
|
{
|
|
float f[4] = {1, 2, 3, 4};
|
|
struct apple a;
|
|
|
|
a = (struct apple) f;
|
|
return a.aa.xyzx;
|
|
}
|
|
|
|
|
|
[test]
|
|
todo(glsl) draw quad
|
|
probe (0, 0) rgba (1.0, 2.0, 3.0, 1.0)
|
|
|
|
|
|
[pixel shader]
|
|
struct apple
|
|
{
|
|
float3 aa;
|
|
int bb;
|
|
float cc;
|
|
};
|
|
|
|
float4 main() : sv_target
|
|
{
|
|
struct apple a = {5, 6, 7, 8.8, 9.0};
|
|
float f[4];
|
|
|
|
f = (float[4]) a;
|
|
return float4(f);
|
|
}
|
|
|
|
|
|
[test]
|
|
todo(glsl) draw quad
|
|
probe (0, 0) rgba (5.0, 6.0, 7.0, 8.0)
|
|
|
|
|
|
[pixel shader]
|
|
float4 main() : sv_target
|
|
{
|
|
float f[6] = {1, 2, 3, 4, 5, 6};
|
|
int i[4];
|
|
|
|
i = (int[4]) f;
|
|
return float4(i[0], i[1], i[2], i[3]);
|
|
}
|
|
|
|
|
|
[test]
|
|
todo(glsl) draw quad
|
|
probe (0, 0) rgba (1.0, 2.0, 3.0, 4.0)
|
|
|
|
|
|
[pixel shader]
|
|
Texture2D tex;
|
|
|
|
struct apple
|
|
{
|
|
int2 aa;
|
|
Texture2D bb;
|
|
float cc;
|
|
};
|
|
|
|
struct banana
|
|
{
|
|
float aa[2];
|
|
Texture2D bb;
|
|
int cc;
|
|
};
|
|
|
|
float4 main() : sv_target
|
|
{
|
|
struct apple a = {1, 2, tex, 7.2};
|
|
struct banana b;
|
|
|
|
b = (struct banana) a;
|
|
return b.cc;
|
|
}
|
|
|
|
[test]
|
|
todo(glsl) draw quad
|
|
probe (0, 0) rgba (7.0, 7.0, 7.0, 7.0)
|
|
|
|
|
|
[pixel shader]
|
|
Texture2D tex;
|
|
|
|
struct apple
|
|
{
|
|
int2 aa;
|
|
Texture2D bb;
|
|
float cc;
|
|
float4 dd;
|
|
Texture2D ee;
|
|
};
|
|
|
|
struct banana
|
|
{
|
|
float aa[2];
|
|
Texture2D bb;
|
|
int cc;
|
|
};
|
|
|
|
float4 main() : sv_target
|
|
{
|
|
struct apple a = {1, 2, tex, 3, 4, 5, 6, 7, tex};
|
|
struct banana b;
|
|
|
|
b = (struct banana) a;
|
|
return b.cc;
|
|
}
|
|
|
|
[test]
|
|
todo(glsl) draw quad
|
|
probe (0, 0) rgba (3.0, 3.0, 3.0, 3.0)
|
|
|
|
|
|
[pixel shader fail]
|
|
struct apple
|
|
{
|
|
int2 aa;
|
|
float bb;
|
|
};
|
|
|
|
struct banana
|
|
{
|
|
int2 aa;
|
|
float bb;
|
|
float cc;
|
|
};
|
|
|
|
float4 main() : sv_target
|
|
{
|
|
struct apple a = {1, 2, 3};
|
|
struct banana b;
|
|
|
|
b = (struct banana) a;
|
|
return b.bb;
|
|
}
|
|
|
|
|
|
[pixel shader]
|
|
float4 main() : sv_target
|
|
{
|
|
float4 v = float4(10.1, 20.2, 30.3, 40.4);
|
|
int i[3];
|
|
|
|
i = (int[3]) v;
|
|
return float4(i[0], i[1], i[2], i[2]);
|
|
}
|
|
|
|
|
|
[test]
|
|
todo(glsl) draw quad
|
|
probe (0, 0) rgba (10.0, 20.0, 30.0, 30.0)
|
|
|
|
|
|
[pixel shader]
|
|
struct apple
|
|
{
|
|
int aa;
|
|
float bb[2];
|
|
};
|
|
|
|
float4 main() : sv_target
|
|
{
|
|
float4 f = {10.4, 11.4, 12.4, 13.4};
|
|
struct apple a;
|
|
|
|
a = (struct apple) f;
|
|
return float4(a.aa, a.aa, a.bb[0], a.bb[1]);
|
|
}
|
|
|
|
|
|
[test]
|
|
todo(glsl) draw quad
|
|
probe (0, 0) rgba (10.0, 10.0, 11.4, 12.4)
|
|
|
|
|
|
[pixel shader]
|
|
float4 main() : sv_target
|
|
{
|
|
float f[5] = {11, 12, 13, 14, 15};
|
|
int4 i;
|
|
|
|
i = (int4) f;
|
|
return i;
|
|
}
|
|
|
|
|
|
[test]
|
|
todo(glsl) draw quad
|
|
probe (0, 0) rgba (11.0, 12.0, 13.0, 14.0)
|
|
|
|
|
|
[pixel shader]
|
|
struct apple
|
|
{
|
|
int2 aa;
|
|
float bb[2];
|
|
float cc;
|
|
};
|
|
|
|
float4 main() : sv_target
|
|
{
|
|
struct apple a = {21, 22, 23.4, 24.4, 25.0};
|
|
int4 i;
|
|
|
|
i = (int4) a;
|
|
return i;
|
|
}
|
|
|
|
|
|
[test]
|
|
todo(glsl) draw quad
|
|
probe (0, 0) rgba (21.0, 22.0, 23.0, 24.0)
|
|
|
|
|
|
[pixel shader]
|
|
float4 main() : sv_target
|
|
{
|
|
float4 f = {31.4, 32.4, 33.4, 34.4};
|
|
int3 i;
|
|
|
|
i = (int3) f;
|
|
return float4(i.x, i.y, i.z, i.z);
|
|
}
|
|
|
|
|
|
[test]
|
|
todo(glsl) draw quad
|
|
probe (0, 0) rgba (31.0, 32.0, 33.0, 33.0)
|
|
|
|
|
|
[pixel shader]
|
|
struct apple
|
|
{
|
|
int2 aa;
|
|
float2 bb;
|
|
};
|
|
|
|
float4 main() : sv_target
|
|
{
|
|
struct apple a = {41, 42, 43, 44};
|
|
float2x2 mat;
|
|
|
|
mat = (float2x2) a;
|
|
return float4(mat);
|
|
}
|
|
|
|
|
|
[test]
|
|
todo(glsl) draw quad
|
|
probe (0, 0) rgba (41.0, 42.0, 43.0, 44.0)
|
|
|
|
|
|
[pixel shader fail(sm<6)]
|
|
struct apple
|
|
{
|
|
float2 aa;
|
|
float3 bb;
|
|
};
|
|
|
|
float4 main() : sv_target
|
|
{
|
|
struct apple a = {1, 2, 3, 4, 5};
|
|
float2x2 mat;
|
|
|
|
mat = (float2x2) a;
|
|
return float4(mat);
|
|
}
|
|
|
|
|
|
[pixel shader]
|
|
struct apple
|
|
{
|
|
float3 aa;
|
|
int bb;
|
|
};
|
|
|
|
float4 main() : sv_target
|
|
{
|
|
float2x2 mat = {55, 56, 57, 58};
|
|
struct apple a;
|
|
|
|
a = (struct apple) mat;
|
|
return float4(a.aa, a.bb);
|
|
}
|
|
|
|
|
|
[test]
|
|
todo(glsl) draw quad
|
|
probe (0, 0) rgba (55.0, 56.0, 57.0, 58.0)
|
|
|
|
|
|
[pixel shader fail(sm<6)]
|
|
struct apple
|
|
{
|
|
float2 aa;
|
|
float2 bb;
|
|
};
|
|
|
|
float4 main() : sv_target
|
|
{
|
|
float3x2 mat = {1, 2, 3, 4, 5, 6};
|
|
struct apple a;
|
|
|
|
a = (struct apple) mat;
|
|
return float4(a.aa, a.bb);
|
|
}
|
|
|
|
|
|
[pixel shader]
|
|
float4 main() : sv_target
|
|
{
|
|
float arr[4] = {61, 62, 63, 64};
|
|
int2x2 mat;
|
|
|
|
mat = (int2x2) arr;
|
|
return float4(mat);
|
|
}
|
|
|
|
[test]
|
|
todo(glsl) draw quad
|
|
probe (0, 0) rgba (61.0, 62.0, 63.0, 64.0)
|
|
|
|
|
|
[pixel shader fail(sm<6)]
|
|
float4 main() : sv_target
|
|
{
|
|
float arr[5] = {1, 2, 3, 4, 5};
|
|
float2x2 mat;
|
|
|
|
mat = (float2x2) arr;
|
|
return float4(mat);
|
|
}
|
|
|
|
|
|
[pixel shader]
|
|
float4 main() : sv_target
|
|
{
|
|
float2x2 mat = {71, 72, 73, 74};
|
|
int arr[4];
|
|
|
|
arr = (int[4]) mat;
|
|
return float4(arr);
|
|
}
|
|
|
|
[test]
|
|
todo(glsl) draw quad
|
|
probe (0, 0) rgba (71.0, 72.0, 73.0, 74.0)
|
|
|
|
|
|
[pixel shader fail(sm<6)]
|
|
float4 main() : sv_target
|
|
{
|
|
float2x2 mat = {1, 2, 3, 4};
|
|
int arr[3];
|
|
|
|
arr = (int[3]) mat;
|
|
return 0;
|
|
}
|
|
|
|
|
|
[pixel shader fail]
|
|
float4 main() : sv_target
|
|
{
|
|
float2x2 mat = {1, 2, 3, 4};
|
|
float3 vec;
|
|
|
|
vec = (float3) mat;
|
|
return 0;
|
|
}
|
|
|
|
|
|
[pixel shader fail(sm<6)]
|
|
float4 main() : sv_target
|
|
{
|
|
float arr[5] = {1, 2, 3, 4, 5};
|
|
float4x1 mat;
|
|
|
|
mat = (float4x1) arr;
|
|
return 0;
|
|
}
|
|
|
|
|
|
[pixel shader]
|
|
float4 main() : sv_target
|
|
{
|
|
float arr[5] = {81, 82, 83, 84, 85};
|
|
int1x4 mat;
|
|
|
|
mat = (int1x4) arr;
|
|
return float4(mat);
|
|
}
|
|
|
|
|
|
[test]
|
|
todo(glsl) draw quad
|
|
probe (0, 0) rgba (81.0, 82.0, 83.0, 84.0)
|
|
|
|
|
|
[pixel shader]
|
|
float4 main() : sv_target
|
|
{
|
|
float4x1 mat = {91, 92, 93, 94};
|
|
int arr[3];
|
|
|
|
arr = (int[3]) mat;
|
|
return float4(arr, 0);
|
|
}
|
|
|
|
|
|
[test]
|
|
todo(glsl) draw quad
|
|
probe (0, 0) rgba (91.0, 92.0, 93.0, 0.0)
|
|
|
|
|
|
[pixel shader]
|
|
float4 main() : sv_target
|
|
{
|
|
float1x4 mat = {11, 12, 13, 14};
|
|
int arr[3];
|
|
|
|
arr = (int[3]) mat;
|
|
return float4(arr, 0);
|
|
}
|
|
|
|
|
|
[test]
|
|
todo(glsl) draw quad
|
|
probe (0, 0) rgba (11.0, 12.0, 13.0, 0.0)
|
|
|
|
|
|
[pixel shader fail(sm<6)]
|
|
struct apple
|
|
{
|
|
float3 aa;
|
|
float2 bb;
|
|
};
|
|
|
|
|
|
float4 main() : sv_target
|
|
{
|
|
struct apple a = {1, 2, 3, 4, 5};
|
|
float4x1 mat;
|
|
|
|
mat = (float4x1) a;
|
|
return 0;
|
|
}
|
|
|
|
|
|
[pixel shader]
|
|
struct apple
|
|
{
|
|
float3 aa;
|
|
float2 bb;
|
|
};
|
|
|
|
|
|
float4 main() : sv_target
|
|
{
|
|
struct apple a = {21, 22, 23, 24, 25};
|
|
float1x4 mat;
|
|
|
|
mat = (float1x4) a;
|
|
return float4(mat);
|
|
}
|
|
|
|
|
|
[test]
|
|
todo(glsl) draw quad
|
|
probe (0, 0) rgba (21.0, 22.0, 23.0, 24.0)
|
|
|
|
|
|
[pixel shader]
|
|
struct apple
|
|
{
|
|
int aa;
|
|
float2 bb;
|
|
};
|
|
|
|
float4 main() : sv_target
|
|
{
|
|
float4x1 mat = {31, 32, 33, 34};
|
|
struct apple a;
|
|
|
|
a = (struct apple) mat;
|
|
return float4(a.aa, a.bb, 0);
|
|
}
|
|
|
|
|
|
[test]
|
|
todo(glsl) draw quad
|
|
probe (0, 0) rgba (31.0, 32.0, 33.0, 0.0)
|
|
|
|
|
|
[pixel shader]
|
|
struct apple
|
|
{
|
|
int aa;
|
|
float2 bb;
|
|
};
|
|
|
|
float4 main() : sv_target
|
|
{
|
|
float1x4 mat = {41, 42, 43, 44};
|
|
struct apple a;
|
|
|
|
a = (struct apple) mat;
|
|
return float4(a.aa, a.bb, 0);
|
|
}
|
|
|
|
|
|
[test]
|
|
todo(glsl) draw quad
|
|
probe (0, 0) rgba (41.0, 42.0, 43.0, 0.0)
|
|
|
|
|
|
[pixel shader]
|
|
float4 main() : sv_target
|
|
{
|
|
float4 vec = {51, 52, 53, 54};
|
|
int1x3 mat;
|
|
|
|
mat = (int1x3) vec;
|
|
return float4(mat, 0);
|
|
}
|
|
|
|
|
|
[test]
|
|
todo(glsl) draw quad
|
|
probe (0, 0) rgba (51.0, 52.0, 53.0, 0.0)
|
|
|
|
|
|
[pixel shader fail(sm<6)]
|
|
float4 main() : sv_target
|
|
{
|
|
float4 vec = {1, 2, 3, 4};
|
|
float3x1 mat;
|
|
|
|
mat = (float3x1) vec;
|
|
return 0;
|
|
}
|
|
|
|
|
|
[pixel shader]
|
|
float4 main() : sv_target
|
|
{
|
|
float1x4 mat = {61, 62, 63, 64};
|
|
int3 vec;
|
|
|
|
vec = (int1x3) mat;
|
|
return float4(vec, 0);
|
|
}
|
|
|
|
|
|
[test]
|
|
todo(glsl) draw quad
|
|
probe (0, 0) rgba (61.0, 62.0, 63.0, 0.0)
|
|
|
|
|
|
[pixel shader]
|
|
float4 main() : sv_target
|
|
{
|
|
float4x1 mat = {71, 72, 73, 74};
|
|
int3 vec;
|
|
|
|
vec = (int3) mat;
|
|
return float4(vec, 0);
|
|
}
|
|
|
|
|
|
[test]
|
|
todo(glsl) draw quad
|
|
probe (0, 0) rgba (71.0, 72.0, 73.0, 0.0)
|