Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • wine/vkd3d
  • stefan/vkd3d
  • cmccarthy/vkd3d
  • giomasce/vkd3d
  • fcasas/vkd3d
  • jactry/vkd3d
  • ReDress/vkd3d
  • mstorsjo/vkd3d
  • huw/vkd3d
  • julliard/vkd3d
  • bshanks/vkd3d
  • zfigura/vkd3d
  • hverbeet/vkd3d
  • DarkShadow44/vkd3d
  • nsivov/vkd3d
  • dhary686/vkd3d
  • Mystral/vkd3d
  • maljaf/vkd3d
  • smcv/vkd3d
  • flibitijibibo/vkd3d
  • q4a/vkd3d
  • jsikorski/vkd3d
  • alesliehughes/vkd3d-alesliehughes
  • vitorhnn/vkd3d
  • agusev/vkd3d
  • etang-cw/vkd3d
  • petrathekat/vkd3d
  • simon.mr995/vkd3d
  • sgwaki/vkd3d
  • jacek/vkd3d
  • fweimer/vkd3d
  • Clara/vkd3d
  • disini/vkd3d
  • antenabr2/vkd3d
  • gilvbp/vkd3d
  • yshui/vkd3d
  • shaunren/vkd3d
  • jennetsaryyewa96/vkd3d
  • Jamesattay/vkd3d
  • zacemmneeto77/vkd3d
  • GermanAizek/vkd3d
  • opespinach/vkd3d
  • ruslanboyka201/vkd3d
  • navi/vkd3d
  • Feifan/vkd3d
  • yashmhmdly172/vkd3d
  • Sec32fun32/vkd3d
  • ritalat/vkd3d
  • ivyl/vkd3d
  • baikaishiuc/vkd3d
  • austin987/vkd3d
  • TornadoCookie/vkd3d
52 results
Show changes
Showing
with 1047 additions and 64 deletions
......@@ -97,3 +97,22 @@ todo probe all rgba (5.0, 6.0, 7.0, 8.0)
uniform 0 float4 1 1 0 0
todo draw quad
todo probe all rgba (9.0, 10.0, 11.0, 12.0)
[pixel shader todo]
float4 a;
float4 main() : sv_target
{
float4 arr[] = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120};
float4 tmp = float4(1, 2, 3, 4);
tmp.yz = arr[a.z].wx;
return tmp;
}
[test]
uniform 0 float4 0 0 2.4 0
todo draw quad
probe all rgba (1.0, 120.0, 90.0, 4.0)
......@@ -36,7 +36,7 @@ float4 main() : sv_target
uniform 0 float4 11 12 0 0
uniform 4 float4 13 14 0 0
uniform 8 float4 20 21 22 23
todo(sm>=6) draw quad
draw quad
probe (320,240) rgba (13.0, 21.0, 0.0, 0.0)
[pixel shader fail]
......
......@@ -13,7 +13,7 @@ float4 main() : sv_target
[test]
uniform 0 float4 1.0 2.0 3.0 4.0
todo(sm>=6) draw quad
draw quad
probe all rgba (1.0, 2.0, 3.0, 4.0)
[pixel shader]
......@@ -31,7 +31,7 @@ float4 main() : sv_target
[test]
uniform 0 float4 1.0 2.0 3.0 4.0
todo(sm>=6) draw quad
draw quad
probe all rgba (1.0, 2.0, 3.0, 4.0)
% SM1 buffer offset allocation follows different rules than SM4.
......@@ -72,7 +72,7 @@ uniform 0 float4 0.0 1.0 2.0 3.0
uniform 4 float4 4.0 5.0 6.0 7.0
uniform 8 float4 8.0 9.0 10.0 11.0
uniform 12 float4 12.0 13.0 14.0 15.0
todo(sm>=6) draw quad
draw quad
probe all rgba (0.0, 2.0, 4.0, 8.0)
......@@ -93,7 +93,7 @@ float4 main() : sv_target
uniform 0 float4 0.0 1.0 2.0 3.0
uniform 4 float4 4.0 5.0 6.0 7.0
uniform 8 float4 8.0 9.0 10.0 11.0
todo(sm>=6) draw quad
draw quad
probe all rgba (0.0, 4.0, 8.0, 9.0)
......@@ -119,7 +119,7 @@ uniform 0 float4 0.0 1.0 2.0 3.0
uniform 4 float4 4.0 5.0 6.0 7.0
uniform 8 float4 8.0 9.0 10.0 11.0
uniform 12 float4 12.0 13.0 14.0 15.0
todo(sm>=6) draw quad
draw quad
probe all rgba (0.0, 4.0, 5.0, 6.0)
......@@ -142,7 +142,7 @@ uniform 0 float4 1.0 0.0 0.0 0.0
uniform 4 float4 2.0 0.0 0.0 0.0
uniform 8 float4 3.0 0.0 0.0 0.0
uniform 12 float4 4.0 0.0 0.0 0.0
todo draw quad
todo(sm<6) draw quad
probe all rgba (1.0, 3.0, 3.0, 4.0)
......@@ -221,7 +221,7 @@ float4 main() : sv_target
[test]
uniform 0 float4 1.0 2.0 3.0 4.0
todo(sm>=6) draw quad
draw quad
probe all rgba (2.0, 3.0, 2.0, 3.0)
......@@ -357,7 +357,7 @@ float4 main() : sv_target
[test]
uniform 0 float4 1.0 2.0 3.0 4.0
todo(sm>=6) draw quad
draw quad
probe all rgba (3.0, 4.0, 3.0, 4.0)
......
......@@ -40,7 +40,7 @@ float4 main() : sv_target
[test]
uniform 0 float4 1.0 2.0 3.0 4.0
todo(sm>=6) draw quad
draw quad
probe all rgba (3.0, 3.0, 3.0, 3.0)
......@@ -78,7 +78,7 @@ float4 main() : sv_target
[test]
uniform 0 float4 1.0 2.0 3.0 4.0
todo(sm>=6) draw quad
draw quad
probe all rgba (4.0, 4.0, 4.0, 4.0)
......
......@@ -19,5 +19,5 @@ float4 main() : sv_target
[test]
uniform 0 float 10.0
todo(sm>=6) draw quad
draw quad
probe all rgba (10.0, 10.0, 10.0, 10.0)
......@@ -100,3 +100,146 @@ float4 main() : sv_target
uniform 0 float 4.0
todo(sm>=6) draw quad
probe all rgba (410.1, 410.1, 410.1, 410.1)
% loop attribute by itself
[pixel shader]
float4 main() : sv_target
{
float ret = 0.0;
[loop] for (int i = 0; i < 10; ++i)
{
ret += 1.0;
}
return ret;
}
[test]
todo(sm>=6) draw quad
probe all rgba (10.0, 10.0, 10.0, 10.0)
[pixel shader]
float4 main() : sv_target
{
float ret = 0.0;
int i = 0;
[loop] while (i < 10)
{
ret += 1.0;
i++;
}
return ret;
}
[test]
todo(sm>=6) draw quad
probe all rgba (10.0, 10.0, 10.0, 10.0)
[pixel shader]
float4 main() : sv_target
{
float ret = 0.0;
int i = 0;
[loop] do
{
i++;
ret += 1.0;
} while (i < 10);
return ret;
}
[test]
todo(sm>=6) draw quad
probe all rgba (10.0, 10.0, 10.0, 10.0)
% unroll can't be used with fastopt or loop
[pixel shader fail]
float4 main() : sv_target
{
float ret = 0.0;
[loop] [unroll(1)] for (int i = 0; i < 10; ++i)
{
ret += 1.0;
}
return ret;
}
[pixel shader fail]
float4 main() : sv_target
{
float ret = 0.0;
[fastopt] [unroll(1)] for (int i = 0; i < 10; ++i)
{
ret += 1.0;
}
return ret;
}
[pixel shader fail]
float4 main() : sv_target
{
float ret = 0.0;
int i = 0;
[loop] [unroll(1)] while (i < 10)
{
ret += 1.0;
i++;
}
return ret;
}
[pixel shader fail]
float4 main() : sv_target
{
float ret = 0.0;
int i = 0;
[fastopt] [unroll(1)] while (i < 10)
{
ret += 1.0;
i++;
}
return ret;
}
[pixel shader fail]
float4 main() : sv_target
{
float ret = 0.0;
int i = 0;
[loop] [unroll(1)] do
{
ret += 1.0;
i++;
} while (i < 10)
return ret;
}
[pixel shader fail]
float4 main() : sv_target
{
float ret = 0.0;
int i = 0;
[fastopt] [unroll(1)] do
{
ret += 1.0;
i++;
} while (i < 10)
return ret;
}
......@@ -40,7 +40,7 @@ float4 main() : sv_target
[test]
uniform 0 float4 0.1 0.2 0.0 0.0
uniform 4 float4 0.3 0.4 0.0 0.0
todo(sm>=6) draw quad
draw quad
probe all rgba (0.1, 0.2, 0.3, 0.4)
......@@ -61,7 +61,7 @@ uniform 0 float4 0.0 0.0 0.0 0.0
uniform 4 float4 0.0 0.0 0.0 0.0
uniform 8 float4 0.5 0.6 0.0 0.0
uniform 12 float4 0.7 0.8 0.0 0.0
todo(sm>=6) draw quad
draw quad
probe all rgba (0.5, 0.6, 0.7, 0.8)
......@@ -111,7 +111,7 @@ float4 main() : sv_target
[test]
uniform 0 float4 0.1 0.2 0.0 0.0
uniform 4 float4 0.3 0.4 0.0 0.0
todo(sm>=6) draw quad
draw quad
probe all rgba (0.1, 0.2, 0.3, 0.4)
......@@ -149,7 +149,7 @@ uniform 0 float4 0.3 0.4 0.0 0.0
uniform 4 float4 0.0 0.0 0.0 0.0
uniform 8 float4 0.0 0.0 0.0 0.0
uniform 12 float4 0.5 0.6 0.0 0.0
todo(sm>=6) draw quad
draw quad
probe all rgba (0.3, 0.4, 0.5, 0.6)
......@@ -173,7 +173,7 @@ float4 main() : sv_target
[test]
uniform 0 float4 0.1 0.2 0.0 0.0
uniform 4 float4 0.3 0.4 0.0 0.0
todo(sm>=6) draw quad
draw quad
probe all rgba (0.1, 0.2, 0.3, 0.4)
......@@ -201,7 +201,7 @@ float4 main() : sv_target
[test]
uniform 0 float4 0.2 0.4 0.0 0.0
uniform 4 float4 0.3 0.5 0.0 0.0
todo(sm>=6) draw quad
draw quad
probe all rgba (0.2, 0.3, 0.4, 0.5)
......@@ -221,7 +221,7 @@ uniform 0 float4 0.3 0.0 0.0 0.0
uniform 4 float4 0.4 0.0 0.0 0.0
uniform 8 float4 0.0 0.5 0.0 0.0
uniform 12 float4 0.0 0.6 0.0 0.0
todo(sm>=6) draw quad
draw quad
probe all rgba (0.3, 0.4, 0.5, 0.6)
% Compiler options
......@@ -245,7 +245,7 @@ uniform 0 float4 0.1 0.5 0.9 1.3
uniform 4 float4 0.2 0.6 1.0 1.4
uniform 8 float4 0.3 0.7 1.1 1.5
uniform 12 float4 0.4 0.8 1.2 1.6
todo(sm>=6) draw quad
draw quad
probe all rgba (0.2, 0.3, 0.6, 0.7) 1
[require]
......@@ -267,7 +267,7 @@ uniform 0 float4 0.1 0.5 0.9 1.3
uniform 4 float4 0.2 0.6 1.0 1.4
uniform 8 float4 0.3 0.7 1.1 1.5
uniform 12 float4 0.4 0.8 1.2 1.6
todo(sm>=6) draw quad
draw quad
probe all rgba (0.2, 0.3, 0.6, 0.7) 1
[require]
......@@ -289,7 +289,7 @@ uniform 0 float4 0.1 0.5 0.9 1.3
uniform 4 float4 0.2 0.6 1.0 1.4
uniform 8 float4 0.3 0.7 1.1 1.5
uniform 12 float4 0.4 0.8 1.2 1.6
todo(sm>=6) draw quad
draw quad
probe all rgba (0.5, 0.9, 0.6, 1.0) 1
[require]
......@@ -317,7 +317,7 @@ uniform 16 float4 1.7 2.1 2.5 2.9
uniform 20 float4 1.8 2.2 2.6 3.0
uniform 24 float4 1.9 2.3 2.7 3.1
uniform 28 float4 2.0 2.4 2.8 3.2
todo(sm>=6) draw quad
draw quad
probe all rgba (0.3, 0.4, 2.5, 2.9) 1
[require]
......@@ -345,7 +345,7 @@ uniform 16 float4 1.7 2.1 2.5 2.9
uniform 20 float4 1.8 2.2 2.6 3.0
uniform 24 float4 1.9 2.3 2.7 3.1
uniform 28 float4 2.0 2.4 2.8 3.2
todo(sm>=6) draw quad
draw quad
probe all rgba (1.2, 1.6, 3.1, 3.2) 1
[require]
......@@ -365,5 +365,5 @@ float4 main() : sv_target
[test]
uniform 0 float4 0.1 0.2 0.0 0.0
uniform 4 float4 0.3 0.4 0.0 0.0
todo(sm>=6) draw quad
draw quad
probe all rgba (0.1, 0.3, 0.2, 0.4) 1
......@@ -11,7 +11,7 @@ float4 main() : sv_target
[test]
uniform 0 float4 0.1 0.3 0.0 0.0
uniform 4 float4 0.2 0.4 0.0 0.0
todo(sm>=6) draw quad
draw quad
probe all rgba (0.1, 0.3, 0.2, 0.4)
[pixel shader fail(sm<6)]
......
......@@ -11,7 +11,7 @@ uniform 0 float4 1.0 2.0 3.0 4.0
uniform 4 float4 5.0 6.0 7.0 8.0
uniform 8 float4 9.0 10.0 11.0 12.0
uniform 12 float4 13.0 14.0 15.0 16.0
todo(sm>=6) draw quad
draw quad
probe all rgba (1.0, 2.0, 10.0, 15.0)
[pixel shader]
......@@ -27,7 +27,7 @@ uniform 0 float4 1.0 2.0 3.0 4.0
uniform 4 float4 5.0 6.0 7.0 8.0
uniform 8 float4 9.0 10.0 11.0 12.0
uniform 12 float4 13.0 14.0 15.0 16.0
todo(sm>=6) draw quad
draw quad
probe all rgba (1.0, 2.0, 10.0, 15.0)
[pixel shader]
......@@ -43,7 +43,7 @@ uniform 0 float4 1.0 2.0 3.0 4.0
uniform 4 float4 5.0 6.0 7.0 8.0
uniform 8 float4 9.0 10.0 11.0 12.0
uniform 12 float4 13.0 14.0 15.0 16.0
todo(sm>=6) draw quad
draw quad
probe all rgba (1.0, 5.0, 7.0, 12.0)
[pixel shader]
......@@ -58,7 +58,7 @@ float4 main() : SV_TARGET
[test]
uniform 0 float4 1.0 2.0 3.0 0.0
uniform 4 float4 5.0 6.0 7.0 0.0
todo(sm>=6) draw quad
draw quad
probe all rgba (1.0, 3.0, 6.0, 7.0)
[pixel shader]
......
[pixel shader]
float4 main(float4 pos : sv_position) : sv_target
float4 main() : sv_target
{
float4x4 x = float4x4(1.0, 2.0, 3.0, 4.0,
5.0, 6.0, 7.0, 8.0,
......@@ -16,7 +15,7 @@ draw quad
probe all rgba (30.0, 70.0, 110.0, 150.0)
[pixel shader]
float4 main(float4 pos : sv_position) : sv_target
float4 main() : sv_target
{
float4 x = float4(1.0, 2.0, 3.0, 4.0);
float4x4 y = float4x4(1.0, 2.0, 3.0, 4.0,
......@@ -32,7 +31,7 @@ draw quad
probe all rgba (90.0, 100.0, 110.0, 120.0)
[pixel shader]
float4 main(float4 pos : sv_position) : sv_target
float4 main() : sv_target
{
float4x4 x = float4x4(1.0, 2.0, 3.0, 4.0,
5.0, 6.0, 7.0, 8.0,
......@@ -48,7 +47,7 @@ draw quad
probe all rgba (14.0, 38.0, 62.0, 86.0)
[pixel shader]
float4 main(float4 pos : sv_position) : sv_target
float4 main() : sv_target
{
float3 x = float3(1.0, 2.0, 3.0);
float4x4 y = float4x4(1.0, 2.0, 3.0, 4.0,
......@@ -64,7 +63,7 @@ draw quad
probe all rgba (38.0, 44.0, 50.0, 56.0)
[pixel shader]
float4 main(float4 pos : sv_position) : sv_target
float4 main() : sv_target
{
float3x3 x = float3x3(1.0, 2.0, 3.0,
4.0, 5.0, 6.0,
......@@ -79,7 +78,7 @@ draw quad
probe all rgba (14.0, 32.0, 50.0, 0.0)
[pixel shader]
float4 main(float4 pos : sv_position) : sv_target
float4 main() : sv_target
{
float4 x = float4(1.0, 2.0, 3.0, 4.0);
float3x3 y = float3x3(1.0, 2.0, 3.0,
......@@ -94,7 +93,7 @@ draw quad
probe all rgba (30.0, 36.0, 42.0, 0.0)
[pixel shader]
float4 main(float4 pos : sv_position) : sv_target
float4 main() : sv_target
{
float x = 10.0;
float4x4 y = float4x4(1.0, 2.0, 3.0, 4.0,
......@@ -110,7 +109,7 @@ draw quad
probe all rgba (50.0, 60.0, 70.0, 80.0)
[pixel shader]
float4 main(float4 pos : sv_position) : sv_target
float4 main() : sv_target
{
float4x4 x = float4x4(1.0, 2.0, 3.0, 4.0,
5.0, 6.0, 7.0, 8.0,
......@@ -126,7 +125,7 @@ draw quad
probe all rgba (50.0, 60.0, 70.0, 80.0)
[pixel shader]
float4 main(float4 pos : sv_position) : sv_target
float4 main() : sv_target
{
float1 x = float1(10.0);
float4x4 y = float4x4(1.0, 2.0, 3.0, 4.0,
......@@ -142,7 +141,7 @@ draw quad
probe all rgba (10.0, 20.0, 30.0, 40.0)
[pixel shader]
float4 main(float4 pos : sv_position) : sv_target
float4 main() : sv_target
{
float4x4 x = float4x4(1.0, 2.0, 3.0, 4.0,
5.0, 6.0, 7.0, 8.0,
......@@ -158,7 +157,7 @@ draw quad
probe all rgba (10.0, 50.0, 90.0, 130.0)
[pixel shader]
float4 main(float4 pos : sv_position) : sv_target
float4 main() : sv_target
{
float1x1 x = float1x1(10.0);
float4x4 y = float4x4(1.0, 2.0, 3.0, 4.0,
......@@ -174,7 +173,7 @@ draw quad
probe all rgba (10.0, 20.0, 30.0, 40.0)
[pixel shader]
float4 main(float4 pos : sv_position) : sv_target
float4 main() : sv_target
{
float4x4 x = float4x4(1.0, 2.0, 3.0, 4.0,
5.0, 6.0, 7.0, 8.0,
......@@ -190,7 +189,7 @@ draw quad
probe all rgba (10.0, 50.0, 90.0, 130.0)
[pixel shader]
float4 main(float4 pos : sv_position) : sv_target
float4 main() : sv_target
{
float1x4 x = float1x4(1.0, 2.0, 3.0, 4.0);
float4x4 y = float4x4(1.0, 2.0, 3.0, 4.0,
......@@ -206,7 +205,7 @@ draw quad
probe all rgba (90.0, 100.0, 110.0, 120.0)
[pixel shader]
float4 main(float4 pos : sv_position) : sv_target
float4 main() : sv_target
{
float4x4 x = float4x4(1.0, 2.0, 3.0, 4.0,
5.0, 6.0, 7.0, 8.0,
......@@ -222,7 +221,7 @@ draw quad
probe all rgba (5.0, 10.0, 15.0, 20.0)
[pixel shader]
float4 main(float4 pos : sv_position) : sv_target
float4 main() : sv_target
{
float4x1 x = float4x1(1.0, 2.0, 3.0, 4.0);
float4x4 y = float4x4(1.0, 2.0, 3.0, 4.0,
......@@ -238,7 +237,7 @@ draw quad
probe all rgba (2.0, 4.0, 6.0, 8.0)
[pixel shader]
float4 main(float4 pos : sv_position) : sv_target
float4 main() : sv_target
{
float4x4 x = float4x4(1.0, 2.0, 3.0, 4.0,
5.0, 6.0, 7.0, 8.0,
......@@ -254,7 +253,7 @@ draw quad
probe all rgba (30.0, 70.0, 110.0, 150.0)
[pixel shader]
float4 main(float4 pos : sv_position) : sv_target
float4 main() : sv_target
{
float3x3 x = float3x3(1.0, 2.0, 3.0,
4.0, 5.0, 6.0,
......@@ -272,7 +271,7 @@ draw quad
probe all rgba (83.0, 98.0, 113.0, 128.0)
[pixel shader]
float4 main(float4 pos : sv_position) : sv_target
float4 main() : sv_target
{
float4x4 x = float4x4(1.0, 2.0, 3.0, 4.0,
5.0, 6.0, 7.0, 8.0,
......
......@@ -21,5 +21,5 @@ uniform 8 float4 0.3 0.0 0.0 0.0
uniform 12 float4 0.4 0.0 0.0 0.0
uniform 16 float4 0.5 0.0 0.0 0.0
uniform 20 float4 0.6 0.0 0.0 0.0
todo(sm>=6) draw quad
draw quad
probe all rgba (0.4, 0.1, 0.6, 0.3)
......@@ -19,7 +19,7 @@ float4 main() : sv_target
[test]
uniform 0 float4 1.0 2.0 3.0 4.0
uniform 4 float4 5.0 6.0 7.0 8.0
todo(sm>=6) draw quad
draw quad
probe all rgba (1.0, 2.0, 3.0, 0.0)
......@@ -66,5 +66,5 @@ float4 main() : sv_target
[test]
uniform 0 float4 1.0 2.0 3.0 4.0
uniform 4 float4 5.0 6.0 7.0 8.0
todo(sm>=6) draw quad
draw quad
probe all rgba (1.0, 2.0, 5.0, 0.0)
......@@ -42,5 +42,5 @@ void main(out float4 o : sv_target)
[test]
uniform 0 float4 0.1 0.0 0.0 0.0
uniform 4 float4 0.2 0.0 0.0 0.0
todo(sm>=6) draw quad
draw quad
probe all rgba (0.1, 0.2, 0.3, 0.4)
......@@ -18,5 +18,5 @@ float4 main() : sv_target
uniform 0 float4 0.1 0.2 0.0 0.0
uniform 4 float4 0.3 0.4 0.0 0.0
uniform 8 float4 0.5 0.6 0.0 0.0
todo(sm>=6) draw quad
draw quad
probe all rgba (0.2, 0.3, 0.6, 0.5)
[require]
shader model >= 4.0
[pixel shader]
uint4 v;
float4 main() : sv_target
{
switch (v.x)
{
case 0:
return 3.0;
case 1:
return 4.0;
default:
return 5.0;
}
}
[test]
uniform 0 uint4 3 0 0 0
todo(sm>=6) draw quad
probe all rgba (5.0, 5.0, 5.0, 5.0)
uniform 0 uint4 1 0 0 0
todo(sm>=6) draw quad
probe all rgba (4.0, 4.0, 4.0, 4.0)
uniform 0 uint4 0 0 0 0
todo(sm>=6) draw quad
probe all rgba (3.0, 3.0, 3.0, 3.0)
% falling through is only supported for empty case statements
[pixel shader]
uint4 v;
float4 main() : sv_target
{
float4 c = {1.0, 2.0, 3.0, 4.0};
switch (v.x)
{
case 0:
case 1:
c.x += 0.1f;
break;
}
return c;
}
[test]
uniform 0 uint4 2 0 0 0
todo(sm>=6) draw quad
probe all rgba (1.0, 2.0, 3.0, 4.0)
uniform 0 uint4 1 0 0 0
todo(sm>=6) draw quad
probe all rgba (1.1, 2.0, 3.0, 4.0)
uniform 0 uint4 0 0 0 0
todo(sm>=6) draw quad
probe all rgba (1.1, 2.0, 3.0, 4.0)
% case value evaluation
[pixel shader]
uint4 v;
float4 main() : sv_target
{
float4 c = {1.0, 2.0, 3.0, 4.0};
switch (v.x)
{
case 1+1:
c += 0.1f;
break;
case 0:
c += 0.2f;
break;
}
return c;
}
[test]
uniform 0 uint4 2 0 0 0
todo(sm>=6) draw quad
probe all rgba (1.1, 2.1, 3.1, 4.1)
uniform 0 uint4 1 0 0 0
todo(sm>=6) draw quad
probe all rgba (1.0, 2.0, 3.0, 4.0)
% floats are accepted
[pixel shader fail(sm>=6)]
uint4 v;
float4 main() : sv_target
{
float4 c = {1.0, 2.0, 3.0, 4.0};
switch (v.x)
{
case 2.1f:
c += 0.1f;
break;
case 0.9f:
c += 0.2f;
break;
}
return c;
}
[test]
uniform 0 uint4 2 0 0 0
todo(sm>=6) draw quad
probe all rgba (1.1, 2.1, 3.1, 4.1)
uniform 0 uint4 1 0 0 0
todo(sm>=6) draw quad
probe all rgba (1.0, 2.0, 3.0, 4.0)
[pixel shader fail(sm>=6)]
float4 v;
float4 main() : sv_target
{
float4 c = {1.0, 2.0, 3.0, 4.0};
switch (v.x)
{
case 2.1f:
c += 0.1f;
break;
case 0.9f:
c += 0.2f;
break;
}
return c;
}
[test]
uniform 0 float4 2.0 0.0 0.0 0.0
todo(sm>=6) draw quad
probe all rgba (1.1, 2.1, 3.1, 4.1)
uniform 0 float4 1.0 0.0 0.0 0.0
todo(sm>=6) draw quad
probe all rgba (1.0, 2.0, 3.0, 4.0)
[pixel shader fail]
uint4 v;
float4 main() : sv_target
{
float4 c = {1.0, 2.0, 3.0, 4.0};
uint a = 1;
switch (v.x)
{
case 1+a:
c += 0.1f;
break;
case 0:
c += 0.2f;
break;
}
return c;
}
% duplicate cases
[pixel shader fail]
uint4 v;
float4 main() : sv_target
{
float4 c = {1.0, 2.0, 3.0, 4.0};
switch (v.x)
{
case 2:
c += 0.1f;
break;
case 1+1:
c += 0.2f;
break;
}
return c;
}
% multiple default cases
[pixel shader fail]
uint4 v;
float4 main() : sv_target
{
float4 c = {1.0, 2.0, 3.0, 4.0};
switch (v.x)
{
default:
case 2:
c += 0.1f;
break;
case 1:
c += 0.2f;
break;
default:
break;
}
return c;
}
% unterminated cases
[pixel shader fail(sm<6)]
uint4 v;
float4 main() : sv_target
{
float4 c = {1.0, 2.0, 3.0, 4.0};
switch (v.x)
{
case 0:
c += 0.1f;
case 1:
c += 0.2f;
break;
}
return c;
}
[pixel shader fail]
uint4 v;
float4 main() : sv_target
{
switch (v.x)
{
case 0:
return 3.0;
case 1:
return 4.0;
case 2:
}
return 0.0;
}
[pixel shader fail]
uint4 v;
float4 main() : sv_target
{
switch (v.x)
{
case 0:
return 3.0;
case 1:
return 4.0;
default:
}
return 0.0;
}
[pixel shader fail(sm<6)]
uint4 v;
float4 main() : sv_target
{
switch (v.x)
{
case 0:
return 3.0;
case 1:
return 4.0;
default:
discard;
}
return 0.0;
}
[pixel shader fail(sm<6)]
uint4 v;
float4 main() : sv_target
{
switch (v.x)
{
case 0:
return 3.0;
case 1:
return 4.0;
case 2:
discard;
}
return 0.0;
}
[pixel shader fail(sm<6)]
uint4 v;
float4 main() : sv_target
{
switch (v.x)
{
case 0:
discard;
case 1:
return 4.0;
}
return 0.0;
}
% more complicated breaks
[pixel shader]
uint4 v;
float4 main() : sv_target
{
float4 c = {1.0, 2.0, 3.0, 4.0};
switch (v.x)
{
case 2:
c += 0.1f;
if (true) break;
c = 9.0f;
case 1:
if (false) break;
c += 0.2f;
break;
default:
case 0:
break;
}
return c;
}
[test]
uniform 0 uint4 2 0 0 0
todo(sm>=6) draw quad
probe all rgba (1.1, 2.1, 3.1, 4.1)
uniform 0 uint4 1 0 0 0
todo(sm>=6) draw quad
probe all rgba (1.2, 2.2, 3.2, 4.2)
uniform 0 uint4 0 0 0 0
todo(sm>=6) draw quad
probe all rgba (1.0, 2.0, 3.0, 4.0)
% switch breaks within a loop
[pixel shader]
uint4 v;
float4 main() : sv_target
{
float4 c = {1.0f, 2.0f, 3.0f, 4.0f};
for (int i = 0; i < 4; ++i)
{
switch (v.x)
{
case 2:
c += 1.0f;
break;
case 1:
c -= 1.0f;
break;
default:
case 0:
break;
}
}
return c;
}
[test]
uniform 0 uint4 2 0 0 0
todo(sm>=6) draw quad
probe all rgba (5.0, 6.0, 7.0, 8.0)
% default case placement
[pixel shader]
uint4 v;
float4 main() : sv_target
{
float4 c = {1.0f, 2.0f, 3.0f, 4.0f};
switch (v.x)
{
case 2:
c += 1.0f;
break;
case 1:
c -= 1.0f;
break;
case 3:
default:
case 0:
c += 3.0f;
break;
}
return c;
}
[test]
uniform 0 uint4 0 0 0 0
todo(sm>=6) draw quad
probe all rgba (4.0, 5.0, 6.0, 7.0)
uniform 0 uint4 2 0 0 0
todo(sm>=6) draw quad
probe all rgba (2.0, 3.0, 4.0, 5.0)
uniform 0 uint4 3 0 0 0
todo(sm>=6) draw quad
probe all rgba (4.0, 5.0, 6.0, 7.0)
[pixel shader]
uint4 v;
float4 main() : sv_target
{
float4 c = {1.0f, 2.0f, 3.0f, 4.0f};
switch (v.x)
{
case 2:
c += 1.0f;
break;
case 1:
c -= 1.0f;
break;
case 3:
default:
break;
case 0:
c += 3.0f;
break;
}
return c;
}
[test]
uniform 0 uint4 3 0 0 0
todo(sm>=6) draw quad
probe all rgba (1.0, 2.0, 3.0, 4.0)
uniform 0 uint4 0 0 0 0
todo(sm>=6) draw quad
probe all rgba (4.0, 5.0, 6.0, 7.0)
uniform 0 uint4 5 0 0 0
todo(sm>=6) draw quad
probe all rgba (1.0, 2.0, 3.0, 4.0)
% 'continue' is not supported in switches
[pixel shader fail(sm<6)]
uint4 v;
float4 main() : sv_target
{
float4 c = {1.0, 2.0, 3.0, 4.0};
uint i, j;
for (i = 0; i < v.z; i++)
{
switch (v.x)
{
case 0:
c += 0.1f;
continue;
break;
case 1:
c += 0.2f;
break;
}
}
return c;
}
[pixel shader]
uint4 v;
float4 main() : sv_target
{
float4 c = {1.0, 2.0, 3.0, 4.0};
uint i, j;
for (i = 0; i < v.z; i++)
{
switch (v.x)
{
case 0:
for (j = 0; j < v.z; j++)
{
c += 1.0f;
if (v.w)
continue;
}
break;
case 1:
c += 2.0f;
break;
}
}
return c;
}
[test]
uniform 0 uint4 0 0 3 1
todo(sm>=6) draw quad
probe all rgba (10.0, 11.0, 12.0, 13.0)
uniform 0 uint4 1 0 3 1
todo(sm>=6) draw quad
probe all rgba (7.0, 8.0, 9.0, 10.0)
% return from a switch nested in a loop
[pixel shader]
uint4 v;
float4 main() : sv_target
{
float4 c = {1.0, 2.0, 3.0, 4.0};
uint i, j;
for (i = 0; i < v.z; i++)
{
switch (v.x)
{
case 0:
c += 1.0f;
break;
case 1:
c += 2.0f;
return c;
}
c += 100.0f;
}
return c;
}
[test]
uniform 0 uint4 0 0 3 1
todo(sm>=6) draw quad
probe all rgba (304.0, 305.0, 306.0, 307.0)
uniform 0 uint4 1 0 3 1
todo(sm>=6) draw quad
probe all rgba (3.0, 4.0, 5.0, 6.0)
......@@ -9,7 +9,7 @@ float4 main() : sv_target
[test]
uniform 0 float4 11 21 31 -1
uniform 4 float4 12 22 32 -1
todo(sm>=6) draw quad
draw quad
probe all rgba (21.0, 31.0, 11.0, 12.0)
......@@ -24,7 +24,7 @@ float4 main() : sv_target
[test]
uniform 0 float4 11 21 31 -1
uniform 4 float4 12 22 32 -1
todo(sm>=6) draw quad
draw quad
probe all rgba (11.0, 31.0, 12.0, 32.0)
......@@ -40,7 +40,7 @@ float4 main() : sv_target
uniform 0 float4 11 12 -1 -1
uniform 4 float4 21 22 -1 -1
uniform 8 float4 31 32 -1 -1
todo(sm>=6) draw quad
draw quad
probe all rgba (11.0, 31.0, 12.0, 32.0)
......@@ -169,8 +169,8 @@ float4 main() : sv_target
[test]
uniform 0 float4 20 30 40 -1
todo draw quad
todo probe all rgba (10.0, 20.0, 30.0, 40.0)
todo(sm<6) draw quad
todo(sm<6) probe all rgba (10.0, 20.0, 30.0, 40.0)
[pixel shader todo]
......@@ -187,8 +187,8 @@ float4 main() : sv_target
[test]
uniform 0 float4 20 30 80 -1
todo draw quad
todo probe all rgba (80.0, 30.0, 20.0, 10.0)
todo(sm<6) draw quad
todo(sm<6) probe all rgba (80.0, 30.0, 20.0, 10.0)
% Cannot repeat components when assigning to a swizzle.
......
......@@ -11,7 +11,7 @@ float4 main() : sv_target
[test]
uniform 0 float4 0.0303 0.08 0.07 0.0202
todo(sm>=6) draw quad
draw quad
probe all rgba (0.0101, 0.0303, 0.0202, 0.0404)
......@@ -149,7 +149,7 @@ float4 main() : sv_target
[test]
uniform 0 float4 1.0 2.0 3.0 4.0
todo(sm>=6) draw quad
draw quad
probe all rgba (1.0, 2.0, 3.0, 4.0)
......@@ -166,5 +166,5 @@ float4 main() : sv_target
[test]
uniform 0 float4 1.0 2.0 3.0 4.0
todo(sm>=6) draw quad
draw quad
probe all rgba (1.0, 4.0, 2.0, 3.0)
[require]
shader model < 3.0
[pixel shader fail todo]
float4 main() : sv_target
{
float4 teChnique = {0, 0, 0, 0};
return teChnique;
}
[pixel shader fail]
float4 main() : sv_target
{
float4 technique10 = {0, 0, 0, 0};
return technique10;
}
[pixel shader fail todo]
float4 main() : sv_target
{
float4 technique11 = {0, 0, 0, 0};
return technique11;
}
[pixel shader fail]
typedef float4 technique10;
float4 main() : sv_target
{
return float4(0, 0, 0, 0);
}
[pixel shader fail todo]
typedef float4 Technique;
float4 main() : sv_target
{
return float4(0, 0, 0, 0);
}
[pixel shader]
typedef float4 Technique10;
typedef float4 Technique11;
float4 main() : sv_target
{
return float4(0, 0, 0, 0);
}
[pixel shader]
float4 main() : sv_target
{
float4 teChnique10 = {0, 0, 0, 0};
float4 teChnique11 = {0, 0, 0, 0};
return teChnique10 + teChnique11;
}
[pixel shader]
float4 main() : sv_target
{
float4 teChnique11 = {0, 0, 0, 0};
return teChnique11;
}
[effect todo]
technique
{
}
technique10
{
}
% Effects without techniques are not allowed for fx_2_0
[effect fail]
float4 f;
% fx_5_0 keyword fails with fx_2_0 profile
[effect fail]
technique
{
}
technique11
{
}
[effect fail]
technique
{
}
tEchnique10
{
}
[effect fail]
technique
{
}
tEchnique11
{
}
[require]
shader model >= 4.0
shader model < 6.0
[pixel shader fail todo]
float4 main() : sv_target
{
float4 teChnique = {0, 0, 0, 0};
return teChnique;
}
[pixel shader]
float4 main() : sv_target
{
float4 teChnique10 = {0, 0, 0, 0};
return teChnique10;
}
[pixel shader]
float4 main() : sv_target
{
float4 teChnique11 = {0, 0, 0, 0};
return teChnique11;
}
[effect todo]
technique
{
}
technique10
{
}
% Effects without techniques are allowed for fx_4_0+
[effect todo]
float4 f;
% fx_2_0 keyword is allowed with fx_4_0+ profiles
[effect todo]
technique
{
}
technique11
{
}
[effect fail]
technique
{
}
tEchnique10
{
}
[effect fail]
technique
{
}
tEchnique11
{
}
[effect fail]
float4 technique;
[effect fail]
float4 technIque;
[effect fail]
float4 technique10;
[effect fail]
float4 technique11;
[effect todo]
float4 technIque10;
[effect todo]
float4 technIque11;
[require]
shader model >= 5.0
shader model < 6.0
[pixel shader fail todo]
float4 main() : sv_target
{
float4 teChnique = {0, 0, 0, 0};
return teChnique;
}
[pixel shader]
float4 main() : sv_target
{
float4 teChnique10 = {0, 0, 0, 0};
return teChnique10;
}
[pixel shader]
float4 main() : sv_target
{
float4 teChnique11 = {0, 0, 0, 0};
return teChnique11;
}
[effect todo]
technique
{
}
technique10
{
}
% Effects without techniques are allowed for fx_5_0
[effect todo]
float4 f;
% fx_2_0 keyword is allowed with fx_5_0 profiles
[effect todo]
technique
{
}
technique11
{
}
[effect fail]
technique
{
}
tEchnique10
{
}
[effect fail]
technique
{
}
tEchnique11
{
}
[effect fail]
float4 technique;
[effect fail]
float4 technIque;
[effect fail]
float4 technique10;
[effect fail]
float4 technique11;
[effect todo]
float4 technIque10;
[effect todo]
float4 technIque11;