d3dx9: Add test for preshader in effect.

Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Paul Gofman 2016-03-21 16:55:52 +03:00 committed by Alexandre Julliard
parent 8d8b4d9c66
commit ad7ec2ec14
1 changed files with 879 additions and 0 deletions

View File

@ -22,6 +22,8 @@
#include "wine/test.h"
#include "d3dx9.h"
#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof(*arr))
/* helper functions */
static BOOL compare_float(FLOAT f, FLOAT g, UINT ulps)
{
@ -3008,6 +3010,882 @@ static void test_effect_states(IDirect3DDevice9 *device)
ok(value == 3, "Got result %u, expected %u.\n", value, 1);
}
/*
* fxc.exe /Tfx_2_0
*/
#if 0
float4 g_Pos1;
float4 g_Pos2;
float4 g_Selector[2] = {{0, 0, 0, 0}, {10, 10, 10, 10}};
float4 opvect1 = {0.0, -0.0, -2.2, 3.402823466e+38F};
float4 opvect2 = {1.0, 2.0, -3.0, 4.0};
float4 opvect3 = {0.0, -0.0, -2.2, 3.402823466e+38F};
int4 g_iVect = {4, 3, 2, 1};
vertexshader vs_arr[3] =
{
asm
{
vs_1_0
def c0, 1, 1, 1, 1
mov oPos, c0
},
asm
{
vs_1_1
def c0, 2, 2, 2, 2
mov oPos, c0
},
asm
{
vs_2_0
def c0, 3, 3, 3, 3
mov oPos, c0
}
};
row_major float4x3 m4x3row = {{11, 12, 13}, {21, 22, 23}, {31, 32, 33}, {41, 42, 43}};
row_major float3x4 m3x4row = {{11, 12, 13, 14}, {21, 22, 23, 24}, {31, 32, 33, 34}};
column_major float4x3 m4x3column = {{11, 12, 13},{21, 22, 23},{31, 32, 33},{41, 42, 43}};
column_major float3x4 m3x4column = {{11, 12, 13, 14}, {21, 22, 23, 24}, {31, 32, 33, 34}};
row_major float2x2 m2x2row = {{11, 12}, {21, 22}};
column_major float2x2 m2x2column = {{11, 12}, {21, 22}};
row_major float2x3 m2x3row = {{11, 12, 13}, {21, 22, 23}};
column_major float2x3 m2x3column = {{11, 12, 13}, {21, 22, 23}};
row_major float3x2 m3x2row = {{11, 12}, {21, 22}, {31, 32}};
column_major float3x2 m3x2column = {{11, 12}, {21, 22}, {31, 32}};
row_major bool2x3 mb2x3row = {{true, false, true}, {false, true, true}};
column_major bool2x3 mb2x3column = {{true, false, true}, {false, true, true}};
struct test_struct
{
float3 v1;
float fv;
float4 v2;
};
test_struct ts1[1] = {{{9, 10, 11}, 12, {13, 14, 15, 16}}};
test_struct ts2[2] = {{{0, 0, 0}, 0, {0, 0, 0, 0}}, {{1, 2, 3}, 4, {5, 6, 7, 8}}};
float arr1[1] = {91};
float arr2[2] = {92, 93};
struct VS_OUTPUT
{
float4 Position : POSITION;
float2 TextureUV : TEXCOORD0;
float4 Diffuse : COLOR0;
};
VS_OUTPUT RenderSceneVS(float4 vPos : POSITION,
float3 vNormal : NORMAL,
float2 vTexCoord0 : TEXCOORD0,
uniform int nNumLights,
uniform bool bTexture)
{
VS_OUTPUT Output;
if (g_Selector[1].y > float4(0.5, 0.5, 0.5, 0.5).y)
Output.Position = -g_Pos1 * 2 - float4(-4, -5, -6, -7);
else
Output.Position = -g_Pos2 * 3 - float4(-4, -5, -6, -7);
Output.TextureUV = float2(0, 0);
Output.Diffuse = 0;
Output.Diffuse.xyz = mul(vPos, m4x3column);
Output.Diffuse += mul(vPos, m3x4column);
Output.Diffuse += mul(vPos, m3x4row);
Output.Diffuse.xyz += mul(vPos, m4x3row);
Output.Diffuse += mul(vPos, ts1[0].fv);
Output.Diffuse += mul(vPos, ts1[0].v2);
Output.Diffuse += mul(vPos, ts2[1].fv);
Output.Diffuse += mul(vPos, ts2[1].v2);
Output.Diffuse += mul(vPos, arr1[0]);
Output.Diffuse += mul(vPos, arr2[1]);
return Output;
}
struct PS_OUTPUT
{
float4 RGBColor : COLOR0; /* Pixel color */
};
PS_OUTPUT RenderScenePS( VS_OUTPUT In, uniform bool2x3 mb)
{
PS_OUTPUT Output;
Output.RGBColor = In.Diffuse;
Output.RGBColor.xy += mul(In.Diffuse, m2x2row);
Output.RGBColor.xy += mul(In.Diffuse, m2x2column);
Output.RGBColor.xy += mul(In.Diffuse, m3x2row);
Output.RGBColor.xy += mul(In.Diffuse, m3x2column);
Output.RGBColor.xyz += mul(In.Diffuse, m2x3row);
Output.RGBColor.xyz += mul(In.Diffuse, m2x3column);
if (mb[1][1])
{
Output.RGBColor += sin(Output.RGBColor);
Output.RGBColor += cos(Output.RGBColor);
Output.RGBColor.xyz += mul(Output.RGBColor, m2x3column);
Output.RGBColor.xyz += mul(Output.RGBColor, m2x3row);
Output.RGBColor.xy += mul(Output.RGBColor, m3x2column);
Output.RGBColor.xy += mul(Output.RGBColor, m3x2row);
}
return Output;
}
technique tech0
{
pass p0
{
VertexShader = compile vs_3_0 RenderSceneVS(1, true);
PixelShader = compile ps_3_0 RenderScenePS(mb2x3row);
LightEnable[0] = TRUE;
LightEnable[1] = TRUE;
LightEnable[2] = TRUE;
LightEnable[3] = TRUE;
LightEnable[4] = TRUE;
LightEnable[5] = TRUE;
LightEnable[6] = TRUE;
LightEnable[7] = TRUE;
LightType[0] = POINT;
LightType[1] = POINT;
LightType[2] = POINT;
LightType[3] = POINT;
LightType[4] = POINT;
LightType[5] = POINT;
LightType[6] = POINT;
LightType[7] = POINT;
LightDiffuse[0] = 1 / opvect1;
LightDiffuse[1] = rsqrt(opvect1);
LightDiffuse[2] = opvect1 * opvect2;
LightDiffuse[3] = opvect1 + opvect2;
LightDiffuse[4] = float4(opvect1 < opvect2);
LightDiffuse[5] = float4(opvect1 >= opvect2);
LightDiffuse[6] = -opvect1;
LightDiffuse[7] = rcp(opvect1);
LightAmbient[0] = frac(opvect1);
LightAmbient[1] = min(opvect1, opvect2);
LightAmbient[2] = max(opvect1, opvect2);
LightAmbient[3] = sin(opvect1);
LightAmbient[4] = cos(opvect1);
LightAmbient[5] = 1e-2 / opvect1;
LightAmbient[6] = float4(0, dot(opvect1, opvect2), dot(opvect2, opvect2), 0);
LightAmbient[7] = opvect1 + 1e-12 * opvect2 - opvect3;
}
pass p1
{
VertexShader = vs_arr[g_iVect.z];
}
}
#endif
static const DWORD test_effect_preshader_effect_blob[] =
{
0xfeff0901, 0x00000c30, 0x00000000, 0x00000003, 0x00000001, 0x00000030, 0x00000000, 0x00000000,
0x00000004, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000007, 0x6f505f67,
0x00003173, 0x00000003, 0x00000001, 0x00000068, 0x00000000, 0x00000000, 0x00000004, 0x00000001,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000007, 0x6f505f67, 0x00003273, 0x00000003,
0x00000001, 0x000000b0, 0x00000000, 0x00000002, 0x00000004, 0x00000001, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x41200000, 0x41200000, 0x41200000, 0x41200000, 0x0000000b, 0x65535f67,
0x7463656c, 0x0000726f, 0x00000003, 0x00000001, 0x000000ec, 0x00000000, 0x00000000, 0x00000004,
0x00000001, 0x00000000, 0x80000000, 0xc00ccccd, 0x7f7fffff, 0x00000008, 0x6576706f, 0x00317463,
0x00000003, 0x00000001, 0x00000124, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x3f800000,
0x40000000, 0xc0400000, 0x40800000, 0x00000008, 0x6576706f, 0x00327463, 0x00000003, 0x00000001,
0x0000015c, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000000, 0x80000000, 0xc00ccccd,
0x7f7fffff, 0x00000008, 0x6576706f, 0x00337463, 0x00000002, 0x00000001, 0x00000194, 0x00000000,
0x00000000, 0x00000004, 0x00000001, 0x00000004, 0x00000003, 0x00000002, 0x00000001, 0x00000008,
0x56695f67, 0x00746365, 0x00000010, 0x00000004, 0x000001c0, 0x00000000, 0x00000003, 0x00000001,
0x00000002, 0x00000003, 0x00000007, 0x615f7376, 0x00007272, 0x00000003, 0x00000002, 0x00000218,
0x00000000, 0x00000000, 0x00000004, 0x00000003, 0x41300000, 0x41400000, 0x41500000, 0x41a80000,
0x41b00000, 0x41b80000, 0x41f80000, 0x42000000, 0x42040000, 0x42240000, 0x42280000, 0x422c0000,
0x00000008, 0x3378346d, 0x00776f72, 0x00000003, 0x00000002, 0x00000270, 0x00000000, 0x00000000,
0x00000003, 0x00000004, 0x41300000, 0x41400000, 0x41500000, 0x41600000, 0x41a80000, 0x41b00000,
0x41b80000, 0x41c00000, 0x41f80000, 0x42000000, 0x42040000, 0x42080000, 0x00000008, 0x3478336d,
0x00776f72, 0x00000003, 0x00000002, 0x000002c8, 0x00000000, 0x00000000, 0x00000004, 0x00000003,
0x41300000, 0x41400000, 0x41500000, 0x41a80000, 0x41b00000, 0x41b80000, 0x41f80000, 0x42000000,
0x42040000, 0x42240000, 0x42280000, 0x422c0000, 0x0000000b, 0x3378346d, 0x756c6f63, 0x00006e6d,
0x00000003, 0x00000002, 0x00000324, 0x00000000, 0x00000000, 0x00000003, 0x00000004, 0x41300000,
0x41400000, 0x41500000, 0x41600000, 0x41a80000, 0x41b00000, 0x41b80000, 0x41c00000, 0x41f80000,
0x42000000, 0x42040000, 0x42080000, 0x0000000b, 0x3478336d, 0x756c6f63, 0x00006e6d, 0x00000003,
0x00000002, 0x00000360, 0x00000000, 0x00000000, 0x00000002, 0x00000002, 0x41300000, 0x41400000,
0x41a80000, 0x41b00000, 0x00000008, 0x3278326d, 0x00776f72, 0x00000003, 0x00000002, 0x00000398,
0x00000000, 0x00000000, 0x00000002, 0x00000002, 0x41300000, 0x41400000, 0x41a80000, 0x41b00000,
0x0000000b, 0x3278326d, 0x756c6f63, 0x00006e6d, 0x00000003, 0x00000002, 0x000003dc, 0x00000000,
0x00000000, 0x00000002, 0x00000003, 0x41300000, 0x41400000, 0x41500000, 0x41a80000, 0x41b00000,
0x41b80000, 0x00000008, 0x3378326d, 0x00776f72, 0x00000003, 0x00000002, 0x0000041c, 0x00000000,
0x00000000, 0x00000002, 0x00000003, 0x41300000, 0x41400000, 0x41500000, 0x41a80000, 0x41b00000,
0x41b80000, 0x0000000b, 0x3378326d, 0x756c6f63, 0x00006e6d, 0x00000003, 0x00000002, 0x00000460,
0x00000000, 0x00000000, 0x00000003, 0x00000002, 0x41300000, 0x41400000, 0x41a80000, 0x41b00000,
0x41f80000, 0x42000000, 0x00000008, 0x3278336d, 0x00776f72, 0x00000003, 0x00000002, 0x000004a0,
0x00000000, 0x00000000, 0x00000003, 0x00000002, 0x41300000, 0x41400000, 0x41a80000, 0x41b00000,
0x41f80000, 0x42000000, 0x0000000b, 0x3278336d, 0x756c6f63, 0x00006e6d, 0x00000001, 0x00000002,
0x000004e4, 0x00000000, 0x00000000, 0x00000002, 0x00000003, 0x00000001, 0x00000000, 0x00000001,
0x00000000, 0x00000001, 0x00000001, 0x00000009, 0x7832626d, 0x776f7233, 0x00000000, 0x00000001,
0x00000002, 0x00000528, 0x00000000, 0x00000000, 0x00000002, 0x00000003, 0x00000001, 0x00000000,
0x00000001, 0x00000000, 0x00000001, 0x00000001, 0x0000000c, 0x7832626d, 0x6c6f6333, 0x006e6d75,
0x00000000, 0x00000005, 0x000005c4, 0x00000000, 0x00000001, 0x00000003, 0x00000003, 0x00000001,
0x000005cc, 0x00000000, 0x00000000, 0x00000003, 0x00000001, 0x00000003, 0x00000000, 0x000005d4,
0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000003, 0x00000001, 0x000005dc, 0x00000000,
0x00000000, 0x00000004, 0x00000001, 0x41100000, 0x41200000, 0x41300000, 0x41400000, 0x41500000,
0x41600000, 0x41700000, 0x41800000, 0x00000004, 0x00317374, 0x00000003, 0x00003176, 0x00000003,
0x00007666, 0x00000003, 0x00003276, 0x00000000, 0x00000005, 0x00000690, 0x00000000, 0x00000002,
0x00000003, 0x00000003, 0x00000001, 0x00000698, 0x00000000, 0x00000000, 0x00000003, 0x00000001,
0x00000003, 0x00000000, 0x000006a0, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000003,
0x00000001, 0x000006a8, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x3f800000, 0x40000000,
0x40400000, 0x40800000, 0x40a00000, 0x40c00000, 0x40e00000, 0x41000000, 0x00000004, 0x00327374,
0x00000003, 0x00003176, 0x00000003, 0x00007666, 0x00000003, 0x00003276, 0x00000003, 0x00000000,
0x000006d0, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x42b60000, 0x00000005, 0x31727261,
0x00000000, 0x00000003, 0x00000000, 0x00000700, 0x00000000, 0x00000002, 0x00000001, 0x00000001,
0x42b80000, 0x42ba0000, 0x00000005, 0x32727261, 0x00000000, 0x00000004, 0x00000010, 0x00000004,
0x00000000, 0x00000000, 0x00000000, 0x00000005, 0x0000000f, 0x00000004, 0x00000000, 0x00000000,
0x00000000, 0x00000001, 0x00000002, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001,
0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001,
0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001,
0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001,
0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001,
0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001,
0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001,
0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001,
0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001,
0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001,
0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001,
0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001,
0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001,
0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001,
0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001,
0x00000001, 0x00000001, 0x00000002, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000001,
0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00000002, 0x00000000,
0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000,
0x00000004, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00000002,
0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000001,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00000002, 0x00000000, 0x00000000,
0x00000000, 0x00000004, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000003,
0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000004,
0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00000002, 0x00000000,
0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000,
0x00000004, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00000002,
0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000001,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0x00000002, 0x00000000, 0x00000000,
0x00000000, 0x00000004, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000003,
0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000001, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000003, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000004,
0x00000001, 0x00000003, 0x00003070, 0x00000006, 0x00000010, 0x00000004, 0x00000000, 0x00000000,
0x00000000, 0x00000003, 0x00003170, 0x00000006, 0x68636574, 0x00000030, 0x00000018, 0x00000001,
0x00000008, 0x00000007, 0x00000004, 0x00000020, 0x00000000, 0x00000000, 0x0000003c, 0x00000058,
0x00000000, 0x00000000, 0x00000074, 0x00000090, 0x00000000, 0x00000000, 0x000000c0, 0x000000dc,
0x00000000, 0x00000000, 0x000000f8, 0x00000114, 0x00000000, 0x00000000, 0x00000130, 0x0000014c,
0x00000000, 0x00000000, 0x00000168, 0x00000184, 0x00000000, 0x00000000, 0x000001a0, 0x000001b4,
0x00000000, 0x00000000, 0x000001cc, 0x000001e8, 0x00000000, 0x00000000, 0x00000224, 0x00000240,
0x00000000, 0x00000000, 0x0000027c, 0x00000298, 0x00000000, 0x00000000, 0x000002d8, 0x000002f4,
0x00000000, 0x00000000, 0x00000334, 0x00000350, 0x00000000, 0x00000000, 0x0000036c, 0x00000388,
0x00000000, 0x00000000, 0x000003a8, 0x000003c4, 0x00000000, 0x00000000, 0x000003e8, 0x00000404,
0x00000000, 0x00000000, 0x0000042c, 0x00000448, 0x00000000, 0x00000000, 0x0000046c, 0x00000488,
0x00000000, 0x00000000, 0x000004b0, 0x000004cc, 0x00000000, 0x00000000, 0x000004f4, 0x00000510,
0x00000000, 0x00000000, 0x00000538, 0x000005a4, 0x00000000, 0x00000000, 0x000005e4, 0x00000650,
0x00000000, 0x00000000, 0x000006b0, 0x000006cc, 0x00000000, 0x00000000, 0x000006dc, 0x000006f8,
0x00000000, 0x00000000, 0x00000c24, 0x00000000, 0x00000002, 0x00000bfc, 0x00000000, 0x00000022,
0x00000092, 0x00000000, 0x00000710, 0x0000070c, 0x00000093, 0x00000000, 0x00000728, 0x00000724,
0x00000091, 0x00000000, 0x00000740, 0x0000073c, 0x00000091, 0x00000001, 0x00000760, 0x0000075c,
0x00000091, 0x00000002, 0x00000780, 0x0000077c, 0x00000091, 0x00000003, 0x000007a0, 0x0000079c,
0x00000091, 0x00000004, 0x000007c0, 0x000007bc, 0x00000091, 0x00000005, 0x000007e0, 0x000007dc,
0x00000091, 0x00000006, 0x00000800, 0x000007fc, 0x00000091, 0x00000007, 0x00000820, 0x0000081c,
0x00000084, 0x00000000, 0x00000840, 0x0000083c, 0x00000084, 0x00000001, 0x00000860, 0x0000085c,
0x00000084, 0x00000002, 0x00000880, 0x0000087c, 0x00000084, 0x00000003, 0x000008a0, 0x0000089c,
0x00000084, 0x00000004, 0x000008c0, 0x000008bc, 0x00000084, 0x00000005, 0x000008e0, 0x000008dc,
0x00000084, 0x00000006, 0x00000900, 0x000008fc, 0x00000084, 0x00000007, 0x00000920, 0x0000091c,
0x00000085, 0x00000000, 0x0000094c, 0x0000093c, 0x00000085, 0x00000001, 0x00000978, 0x00000968,
0x00000085, 0x00000002, 0x000009a4, 0x00000994, 0x00000085, 0x00000003, 0x000009d0, 0x000009c0,
0x00000085, 0x00000004, 0x000009fc, 0x000009ec, 0x00000085, 0x00000005, 0x00000a28, 0x00000a18,
0x00000085, 0x00000006, 0x00000a54, 0x00000a44, 0x00000085, 0x00000007, 0x00000a80, 0x00000a70,
0x00000087, 0x00000000, 0x00000aac, 0x00000a9c, 0x00000087, 0x00000001, 0x00000ad8, 0x00000ac8,
0x00000087, 0x00000002, 0x00000b04, 0x00000af4, 0x00000087, 0x00000003, 0x00000b30, 0x00000b20,
0x00000087, 0x00000004, 0x00000b5c, 0x00000b4c, 0x00000087, 0x00000005, 0x00000b88, 0x00000b78,
0x00000087, 0x00000006, 0x00000bb4, 0x00000ba4, 0x00000087, 0x00000007, 0x00000be0, 0x00000bd0,
0x00000c1c, 0x00000000, 0x00000001, 0x00000092, 0x00000000, 0x00000c08, 0x00000c04, 0x00000003,
0x00000013, 0x00000001, 0x0000002c, 0xfffe0101, 0x00000051, 0xa00f0000, 0x3f800000, 0x3f800000,
0x3f800000, 0x3f800000, 0x00000001, 0xc00f0000, 0xa0e40000, 0x0000ffff, 0x00000002, 0x0000002c,
0xfffe0101, 0x00000051, 0xa00f0000, 0x40000000, 0x40000000, 0x40000000, 0x40000000, 0x00000001,
0xc00f0000, 0xa0e40000, 0x0000ffff, 0x00000003, 0x0000002c, 0xfffe0200, 0x05000051, 0xa00f0000,
0x40400000, 0x40400000, 0x40400000, 0x40400000, 0x02000001, 0xc00f0000, 0xa0e40000, 0x0000ffff,
0x00000000, 0x00000001, 0xffffffff, 0x00000000, 0x00000002, 0x000000e8, 0x00000008, 0x615f7376,
0x00007272, 0x46580200, 0x0024fffe, 0x42415443, 0x0000001c, 0x0000005b, 0x46580200, 0x00000001,
0x0000001c, 0x00000100, 0x00000058, 0x00000030, 0x00000002, 0x00000001, 0x00000038, 0x00000048,
0x56695f67, 0x00746365, 0x00020001, 0x00040001, 0x00000001, 0x00000000, 0x40800000, 0x40400000,
0x40000000, 0x3f800000, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c,
0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe,
0x54494c43, 0x00000000, 0x000cfffe, 0x434c5846, 0x00000001, 0x10000001, 0x00000001, 0x00000000,
0x00000002, 0x00000002, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff,
0x00000000, 0x00000000, 0xffffffff, 0x00000021, 0x00000000, 0x00000248, 0x46580200, 0x003efffe,
0x42415443, 0x0000001c, 0x000000c3, 0x46580200, 0x00000003, 0x0000001c, 0x20000100, 0x000000c0,
0x00000058, 0x00000002, 0x00000001, 0x00000060, 0x00000070, 0x00000080, 0x00010002, 0x00000001,
0x00000088, 0x00000098, 0x000000a8, 0x00020002, 0x00000001, 0x000000b0, 0x00000070, 0x6576706f,
0x00317463, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x00000000, 0x80000000, 0xc00ccccd,
0x7f7fffff, 0x6576706f, 0x00327463, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x3f800000,
0x40000000, 0xc0400000, 0x40800000, 0x6576706f, 0x00337463, 0x00030001, 0x00040001, 0x00000001,
0x00000000, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461,
0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0022fffe, 0x54494c43,
0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x812dea11, 0x3d719799, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x002dfffe, 0x434c5846, 0x00000004, 0xa0500004, 0x00000002, 0x00000000, 0x00000001,
0x0000000c, 0x00000000, 0x00000002, 0x00000004, 0x00000000, 0x00000007, 0x00000000, 0x20400004,
0x00000002, 0x00000000, 0x00000007, 0x00000000, 0x00000000, 0x00000002, 0x00000000, 0x00000000,
0x00000007, 0x00000004, 0x10100004, 0x00000001, 0x00000000, 0x00000002, 0x00000008, 0x00000000,
0x00000007, 0x00000000, 0x20400004, 0x00000002, 0x00000000, 0x00000007, 0x00000000, 0x00000000,
0x00000007, 0x00000004, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff,
0x00000000, 0x00000000, 0xffffffff, 0x00000020, 0x00000000, 0x000001f0, 0x46580200, 0x0033fffe,
0x42415443, 0x0000001c, 0x00000097, 0x46580200, 0x00000002, 0x0000001c, 0x20000100, 0x00000094,
0x00000044, 0x00000002, 0x00000001, 0x0000004c, 0x0000005c, 0x0000006c, 0x00010002, 0x00000001,
0x00000074, 0x00000084, 0x6576706f, 0x00317463, 0x00030001, 0x00040001, 0x00000001, 0x00000000,
0x00000000, 0x80000000, 0xc00ccccd, 0x7f7fffff, 0x6576706f, 0x00327463, 0x00030001, 0x00040001,
0x00000001, 0x00000000, 0x3f800000, 0x40000000, 0xc0400000, 0x40800000, 0x4d007874, 0x6f726369,
0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072,
0x392e3932, 0x332e3235, 0x00313131, 0x001afffe, 0x54494c43, 0x0000000c, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x002afffe, 0x434c5846,
0x00000004, 0x50000004, 0x00000002, 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000002,
0x00000004, 0x00000000, 0x00000004, 0x00000001, 0x50000004, 0x00000002, 0x00000000, 0x00000002,
0x00000004, 0x00000000, 0x00000002, 0x00000004, 0x00000000, 0x00000004, 0x00000002, 0x10000001,
0x00000001, 0x00000000, 0x00000001, 0x00000008, 0x00000000, 0x00000004, 0x00000000, 0x10000001,
0x00000001, 0x00000000, 0x00000001, 0x00000008, 0x00000000, 0x00000004, 0x00000003, 0xf0f0f0f0,
0x0f0f0f0f, 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x0000001f, 0x00000000, 0x000001a8,
0x46580200, 0x0024fffe, 0x42415443, 0x0000001c, 0x0000005b, 0x46580200, 0x00000001, 0x0000001c,
0x20000100, 0x00000058, 0x00000030, 0x00000002, 0x00000001, 0x00000038, 0x00000048, 0x6576706f,
0x00317463, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x00000000, 0x80000000, 0xc00ccccd,
0x7f7fffff, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461,
0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0012fffe, 0x54494c43,
0x00000008, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x47ae147b, 0x3f847ae1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x002ffffe, 0x434c5846, 0x00000005, 0x10300001, 0x00000001, 0x00000000, 0x00000002,
0x00000000, 0x00000000, 0x00000007, 0x00000000, 0x10300001, 0x00000001, 0x00000000, 0x00000002,
0x00000001, 0x00000000, 0x00000007, 0x00000001, 0x10300001, 0x00000001, 0x00000000, 0x00000002,
0x00000002, 0x00000000, 0x00000007, 0x00000002, 0x10300001, 0x00000001, 0x00000000, 0x00000002,
0x00000003, 0x00000000, 0x00000007, 0x00000003, 0xa0500004, 0x00000002, 0x00000000, 0x00000001,
0x00000004, 0x00000000, 0x00000007, 0x00000000, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0,
0x0f0f0f0f, 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x0000001e, 0x00000000, 0x000000dc,
0x46580200, 0x0024fffe, 0x42415443, 0x0000001c, 0x0000005b, 0x46580200, 0x00000001, 0x0000001c,
0x20000100, 0x00000058, 0x00000030, 0x00000002, 0x00000001, 0x00000038, 0x00000048, 0x6576706f,
0x00317463, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x00000000, 0x80000000, 0xc00ccccd,
0x7f7fffff, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461,
0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43,
0x00000000, 0x000cfffe, 0x434c5846, 0x00000001, 0x10900004, 0x00000001, 0x00000000, 0x00000002,
0x00000000, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000000,
0x00000000, 0xffffffff, 0x0000001d, 0x00000000, 0x000000dc, 0x46580200, 0x0024fffe, 0x42415443,
0x0000001c, 0x0000005b, 0x46580200, 0x00000001, 0x0000001c, 0x20000100, 0x00000058, 0x00000030,
0x00000002, 0x00000001, 0x00000038, 0x00000048, 0x6576706f, 0x00317463, 0x00030001, 0x00040001,
0x00000001, 0x00000000, 0x00000000, 0x80000000, 0xc00ccccd, 0x7f7fffff, 0x4d007874, 0x6f726369,
0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072,
0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000, 0x000cfffe, 0x434c5846,
0x00000001, 0x10800004, 0x00000001, 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000004,
0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x0000001c,
0x00000000, 0x00000124, 0x46580200, 0x0033fffe, 0x42415443, 0x0000001c, 0x00000097, 0x46580200,
0x00000002, 0x0000001c, 0x20000100, 0x00000094, 0x00000044, 0x00000002, 0x00000001, 0x0000004c,
0x0000005c, 0x0000006c, 0x00010002, 0x00000001, 0x00000074, 0x00000084, 0x6576706f, 0x00317463,
0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x00000000, 0x80000000, 0xc00ccccd, 0x7f7fffff,
0x6576706f, 0x00327463, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x3f800000, 0x40000000,
0xc0400000, 0x40800000, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c,
0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe,
0x54494c43, 0x00000000, 0x000ffffe, 0x434c5846, 0x00000001, 0x20100004, 0x00000002, 0x00000000,
0x00000002, 0x00000000, 0x00000000, 0x00000002, 0x00000004, 0x00000000, 0x00000004, 0x00000000,
0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x0000001b, 0x00000000,
0x00000124, 0x46580200, 0x0033fffe, 0x42415443, 0x0000001c, 0x00000097, 0x46580200, 0x00000002,
0x0000001c, 0x20000100, 0x00000094, 0x00000044, 0x00000002, 0x00000001, 0x0000004c, 0x0000005c,
0x0000006c, 0x00010002, 0x00000001, 0x00000074, 0x00000084, 0x6576706f, 0x00317463, 0x00030001,
0x00040001, 0x00000001, 0x00000000, 0x00000000, 0x80000000, 0xc00ccccd, 0x7f7fffff, 0x6576706f,
0x00327463, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x3f800000, 0x40000000, 0xc0400000,
0x40800000, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461,
0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43,
0x00000000, 0x000ffffe, 0x434c5846, 0x00000001, 0x20000004, 0x00000002, 0x00000000, 0x00000002,
0x00000000, 0x00000000, 0x00000002, 0x00000004, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0,
0x0f0f0f0f, 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x0000001a, 0x00000000, 0x000000dc,
0x46580200, 0x0024fffe, 0x42415443, 0x0000001c, 0x0000005b, 0x46580200, 0x00000001, 0x0000001c,
0x20000100, 0x00000058, 0x00000030, 0x00000002, 0x00000001, 0x00000038, 0x00000048, 0x6576706f,
0x00317463, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x00000000, 0x80000000, 0xc00ccccd,
0x7f7fffff, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461,
0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43,
0x00000000, 0x000cfffe, 0x434c5846, 0x00000001, 0x10400004, 0x00000001, 0x00000000, 0x00000002,
0x00000000, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000000,
0x00000000, 0xffffffff, 0x00000019, 0x00000000, 0x0000013c, 0x46580200, 0x0024fffe, 0x42415443,
0x0000001c, 0x0000005b, 0x46580200, 0x00000001, 0x0000001c, 0x20000100, 0x00000058, 0x00000030,
0x00000002, 0x00000001, 0x00000038, 0x00000048, 0x6576706f, 0x00317463, 0x00030001, 0x00040001,
0x00000001, 0x00000000, 0x00000000, 0x80000000, 0xc00ccccd, 0x7f7fffff, 0x4d007874, 0x6f726369,
0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072,
0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000, 0x0024fffe, 0x434c5846,
0x00000004, 0x10300001, 0x00000001, 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000004,
0x00000000, 0x10300001, 0x00000001, 0x00000000, 0x00000002, 0x00000001, 0x00000000, 0x00000004,
0x00000001, 0x10300001, 0x00000001, 0x00000000, 0x00000002, 0x00000002, 0x00000000, 0x00000004,
0x00000002, 0x10300001, 0x00000001, 0x00000000, 0x00000002, 0x00000003, 0x00000000, 0x00000004,
0x00000003, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x00000018,
0x00000000, 0x000000dc, 0x46580200, 0x0024fffe, 0x42415443, 0x0000001c, 0x0000005b, 0x46580200,
0x00000001, 0x0000001c, 0x20000100, 0x00000058, 0x00000030, 0x00000002, 0x00000001, 0x00000038,
0x00000048, 0x6576706f, 0x00317463, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x00000000,
0x80000000, 0xc00ccccd, 0x7f7fffff, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820,
0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131,
0x0002fffe, 0x54494c43, 0x00000000, 0x000cfffe, 0x434c5846, 0x00000001, 0x10100004, 0x00000001,
0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f,
0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x00000017, 0x00000000, 0x00000124, 0x46580200,
0x0033fffe, 0x42415443, 0x0000001c, 0x00000097, 0x46580200, 0x00000002, 0x0000001c, 0x20000100,
0x00000094, 0x00000044, 0x00000002, 0x00000001, 0x0000004c, 0x0000005c, 0x0000006c, 0x00010002,
0x00000001, 0x00000074, 0x00000084, 0x6576706f, 0x00317463, 0x00030001, 0x00040001, 0x00000001,
0x00000000, 0x00000000, 0x80000000, 0xc00ccccd, 0x7f7fffff, 0x6576706f, 0x00327463, 0x00030001,
0x00040001, 0x00000001, 0x00000000, 0x3f800000, 0x40000000, 0xc0400000, 0x40800000, 0x4d007874,
0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970,
0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000, 0x000ffffe,
0x434c5846, 0x00000001, 0x20300004, 0x00000002, 0x00000000, 0x00000002, 0x00000000, 0x00000000,
0x00000002, 0x00000004, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff,
0x00000000, 0x00000000, 0xffffffff, 0x00000016, 0x00000000, 0x00000124, 0x46580200, 0x0033fffe,
0x42415443, 0x0000001c, 0x00000097, 0x46580200, 0x00000002, 0x0000001c, 0x20000100, 0x00000094,
0x00000044, 0x00000002, 0x00000001, 0x0000004c, 0x0000005c, 0x0000006c, 0x00010002, 0x00000001,
0x00000074, 0x00000084, 0x6576706f, 0x00317463, 0x00030001, 0x00040001, 0x00000001, 0x00000000,
0x00000000, 0x80000000, 0xc00ccccd, 0x7f7fffff, 0x6576706f, 0x00327463, 0x00030001, 0x00040001,
0x00000001, 0x00000000, 0x3f800000, 0x40000000, 0xc0400000, 0x40800000, 0x4d007874, 0x6f726369,
0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072,
0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000, 0x000ffffe, 0x434c5846,
0x00000001, 0x20200004, 0x00000002, 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000002,
0x00000004, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000000,
0x00000000, 0xffffffff, 0x00000015, 0x00000000, 0x00000124, 0x46580200, 0x0033fffe, 0x42415443,
0x0000001c, 0x00000097, 0x46580200, 0x00000002, 0x0000001c, 0x20000100, 0x00000094, 0x00000044,
0x00000002, 0x00000001, 0x0000004c, 0x0000005c, 0x0000006c, 0x00010002, 0x00000001, 0x00000074,
0x00000084, 0x6576706f, 0x00317463, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x00000000,
0x80000000, 0xc00ccccd, 0x7f7fffff, 0x6576706f, 0x00327463, 0x00030001, 0x00040001, 0x00000001,
0x00000000, 0x3f800000, 0x40000000, 0xc0400000, 0x40800000, 0x4d007874, 0x6f726369, 0x74666f73,
0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932,
0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43, 0x00000000, 0x000ffffe, 0x434c5846, 0x00000001,
0x20400004, 0x00000002, 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000002, 0x00000004,
0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000000, 0x00000000,
0xffffffff, 0x00000014, 0x00000000, 0x00000124, 0x46580200, 0x0033fffe, 0x42415443, 0x0000001c,
0x00000097, 0x46580200, 0x00000002, 0x0000001c, 0x20000100, 0x00000094, 0x00000044, 0x00000002,
0x00000001, 0x0000004c, 0x0000005c, 0x0000006c, 0x00010002, 0x00000001, 0x00000074, 0x00000084,
0x6576706f, 0x00317463, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x00000000, 0x80000000,
0xc00ccccd, 0x7f7fffff, 0x6576706f, 0x00327463, 0x00030001, 0x00040001, 0x00000001, 0x00000000,
0x3f800000, 0x40000000, 0xc0400000, 0x40800000, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820,
0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235,
0x00313131, 0x0002fffe, 0x54494c43, 0x00000000, 0x000ffffe, 0x434c5846, 0x00000001, 0x20500004,
0x00000002, 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000002, 0x00000004, 0x00000000,
0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff,
0x00000013, 0x00000000, 0x0000013c, 0x46580200, 0x0024fffe, 0x42415443, 0x0000001c, 0x0000005b,
0x46580200, 0x00000001, 0x0000001c, 0x20000100, 0x00000058, 0x00000030, 0x00000002, 0x00000001,
0x00000038, 0x00000048, 0x6576706f, 0x00317463, 0x00030001, 0x00040001, 0x00000001, 0x00000000,
0x00000000, 0x80000000, 0xc00ccccd, 0x7f7fffff, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820,
0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235,
0x00313131, 0x0002fffe, 0x54494c43, 0x00000000, 0x0024fffe, 0x434c5846, 0x00000004, 0x10700001,
0x00000001, 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000004, 0x00000000, 0x10700001,
0x00000001, 0x00000000, 0x00000002, 0x00000001, 0x00000000, 0x00000004, 0x00000001, 0x10700001,
0x00000001, 0x00000000, 0x00000002, 0x00000002, 0x00000000, 0x00000004, 0x00000002, 0x10700001,
0x00000001, 0x00000000, 0x00000002, 0x00000003, 0x00000000, 0x00000004, 0x00000003, 0xf0f0f0f0,
0x0f0f0f0f, 0x0000ffff, 0x00000000, 0x00000000, 0xffffffff, 0x00000012, 0x00000000, 0x0000013c,
0x46580200, 0x0024fffe, 0x42415443, 0x0000001c, 0x0000005b, 0x46580200, 0x00000001, 0x0000001c,
0x20000100, 0x00000058, 0x00000030, 0x00000002, 0x00000001, 0x00000038, 0x00000048, 0x6576706f,
0x00317463, 0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x00000000, 0x80000000, 0xc00ccccd,
0x7f7fffff, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461,
0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x0002fffe, 0x54494c43,
0x00000000, 0x0024fffe, 0x434c5846, 0x00000004, 0x10300001, 0x00000001, 0x00000000, 0x00000002,
0x00000000, 0x00000000, 0x00000004, 0x00000000, 0x10300001, 0x00000001, 0x00000000, 0x00000002,
0x00000001, 0x00000000, 0x00000004, 0x00000001, 0x10300001, 0x00000001, 0x00000000, 0x00000002,
0x00000002, 0x00000000, 0x00000004, 0x00000002, 0x10300001, 0x00000001, 0x00000000, 0x00000002,
0x00000003, 0x00000000, 0x00000004, 0x00000003, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000000,
0x00000000, 0xffffffff, 0x00000001, 0x00000000, 0x00000724, 0xffff0300, 0x00a5fffe, 0x42415443,
0x0000001c, 0x0000025f, 0xffff0300, 0x00000007, 0x0000001c, 0x20000000, 0x00000258, 0x000000a8,
0x00080002, 0x00000002, 0x000000b4, 0x000000c4, 0x000000e4, 0x00060002, 0x00000002, 0x000000ec,
0x000000fc, 0x0000011c, 0x00000002, 0x00000003, 0x00000128, 0x00000138, 0x00000168, 0x000a0002,
0x00000002, 0x00000170, 0x00000180, 0x000001a0, 0x000c0002, 0x00000002, 0x000001ac, 0x000001bc,
0x000001dc, 0x00030002, 0x00000003, 0x000001e4, 0x000001f4, 0x00000224, 0x00000000, 0x00000005,
0x00000230, 0x00000240, 0x3278326d, 0x756c6f63, 0xab006e6d, 0x00030003, 0x00020002, 0x00000001,
0x00000000, 0x41300000, 0x41a80000, 0x00000000, 0x00000000, 0x41400000, 0x41b00000, 0x00000000,
0x00000000, 0x3278326d, 0x00776f72, 0x00030002, 0x00020002, 0x00000001, 0x00000000, 0x41300000,
0x41400000, 0x00000000, 0x00000000, 0x41a80000, 0x41b00000, 0x00000000, 0x00000000, 0x3378326d,
0x756c6f63, 0xab006e6d, 0x00030003, 0x00030002, 0x00000001, 0x00000000, 0x41300000, 0x41a80000,
0x00000000, 0x00000000, 0x41400000, 0x41b00000, 0x00000000, 0x00000000, 0x41500000, 0x41b80000,
0x00000000, 0x00000000, 0x3378326d, 0x00776f72, 0x00030002, 0x00030002, 0x00000001, 0x00000000,
0x41300000, 0x41400000, 0x41500000, 0x00000000, 0x41a80000, 0x41b00000, 0x41b80000, 0x00000000,
0x3278336d, 0x756c6f63, 0xab006e6d, 0x00030003, 0x00020003, 0x00000001, 0x00000000, 0x41300000,
0x41a80000, 0x41f80000, 0x00000000, 0x41400000, 0x41b00000, 0x42000000, 0x00000000, 0x3278336d,
0x00776f72, 0x00030002, 0x00020003, 0x00000001, 0x00000000, 0x41300000, 0x41400000, 0x00000000,
0x00000000, 0x41a80000, 0x41b00000, 0x00000000, 0x00000000, 0x41f80000, 0x42000000, 0x00000000,
0x00000000, 0x7832626d, 0x776f7233, 0xababab00, 0x00010002, 0x00030002, 0x00000001, 0x00000000,
0xffffffff, 0x00000000, 0xffffffff, 0x00000000, 0xffffffff, 0xffffffff, 0x335f7370, 0x4d00305f,
0x6f726369, 0x74666f73, 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970,
0x2e392072, 0x392e3932, 0x332e3235, 0x00313131, 0x05000051, 0xa00f000e, 0x3d2aaaa4, 0xbf000000,
0x3f800000, 0xbe22f983, 0x05000051, 0xa00f000f, 0x00000000, 0x3e22f983, 0x3e800000, 0xbab609ba,
0x05000051, 0xa00f0010, 0x40c90fdb, 0xc0490fdb, 0xb4878163, 0x37cfb5a1, 0x0200001f, 0x8000000a,
0x900f0000, 0x03000005, 0x80030000, 0xa0e40007, 0x90550000, 0x04000004, 0x80030000, 0x90000000,
0xa0e40006, 0x80e40000, 0x03000002, 0x80030000, 0x80e40000, 0x90e40000, 0x02000001, 0x80010001,
0xa000000f, 0x0400005a, 0x80010002, 0x90e40000, 0xa0e40008, 0x80000001, 0x0400005a, 0x80020002,
0x90e40000, 0xa0e40009, 0x80000001, 0x03000002, 0x80030000, 0x80e40000, 0x80e40002, 0x03000005,
0x800c0000, 0xa0440004, 0x90550000, 0x04000004, 0x800c0000, 0x90000000, 0xa0440003, 0x80e40000,
0x04000004, 0x800c0000, 0x90aa0000, 0xa0440005, 0x80e40000, 0x03000002, 0x80030000, 0x80ee0000,
0x80e40000, 0x03000008, 0x80010002, 0x90e40000, 0xa0e4000c, 0x03000008, 0x80020002, 0x90e40000,
0xa0e4000d, 0x03000002, 0x80030000, 0x80e40000, 0x80e40002, 0x03000005, 0x800e0001, 0xa090000b,
0x90550000, 0x04000004, 0x800e0001, 0x90000000, 0xa090000a, 0x80e40001, 0x02000001, 0x80040000,
0x90aa0000, 0x03000002, 0x80070000, 0x80e40000, 0x80f90001, 0x0400005a, 0x80010002, 0x90e40000,
0xa0e40000, 0x80000001, 0x0400005a, 0x80020002, 0x90e40000, 0xa0e40001, 0x80000001, 0x0400005a,
0x80040002, 0x90e40000, 0xa0e40002, 0x80000001, 0x03000002, 0x80070000, 0x80e40000, 0x80e40002,
0x01000028, 0xe0e40804, 0x02000001, 0x80080000, 0x90ff0000, 0x04000004, 0x800f0002, 0x80e40000,
0xa055000f, 0xa0aa000f, 0x02000013, 0x800f0002, 0x80e40002, 0x04000004, 0x800f0002, 0x80e40002,
0xa0000010, 0xa0550010, 0x03000005, 0x800f0002, 0x80e40002, 0x80e40002, 0x04000004, 0x800f0003,
0x80e40002, 0xa0aa0010, 0xa0ff0010, 0x04000004, 0x800f0003, 0x80e40002, 0x80e40003, 0xa0ff000f,
0x04000004, 0x800f0003, 0x80e40002, 0x80e40003, 0xa000000e, 0x04000004, 0x800f0003, 0x80e40002,
0x80e40003, 0xa055000e, 0x04000004, 0x800f0002, 0x80e40002, 0x80e40003, 0x80e40000, 0x03000002,
0x800f0002, 0x80e40002, 0xa0aa000e, 0x04000004, 0x800f0003, 0x80e40002, 0xa1ff000e, 0xa155000e,
0x02000013, 0x800f0003, 0x80e40003, 0x04000004, 0x800f0003, 0x80e40003, 0xa0000010, 0xa0550010,
0x03000005, 0x800f0003, 0x80e40003, 0x80e40003, 0x04000004, 0x800f0004, 0x80e40003, 0xa0aa0010,
0xa0ff0010, 0x04000004, 0x800f0004, 0x80e40003, 0x80e40004, 0xa0ff000f, 0x04000004, 0x800f0004,
0x80e40003, 0x80e40004, 0xa000000e, 0x04000004, 0x800f0004, 0x80e40003, 0x80e40004, 0xa055000e,
0x04000004, 0x800f0002, 0x80e40003, 0x80e40004, 0x80e40002, 0x03000002, 0x800f0002, 0x80e40002,
0xa0aa000e, 0x0400005a, 0x80010003, 0x80e40002, 0xa0e40000, 0x80000001, 0x0400005a, 0x80020003,
0x80e40002, 0xa0e40001, 0x80000001, 0x0400005a, 0x80040003, 0x80e40002, 0xa0e40002, 0x80000001,
0x03000002, 0x80070001, 0x80e40002, 0x80e40003, 0x03000005, 0x80070002, 0x80550001, 0xa0e4000b,
0x04000004, 0x80070002, 0x80000001, 0xa0e4000a, 0x80e40002, 0x03000002, 0x80070001, 0x80e40001,
0x80e40002, 0x03000008, 0x80010002, 0x80e40001, 0xa0e4000c, 0x03000008, 0x80020002, 0x80e40001,
0xa0e4000d, 0x03000002, 0x80030001, 0x80e40001, 0x80e40002, 0x03000005, 0x80030002, 0x80550001,
0xa0e40004, 0x04000004, 0x80030002, 0x80000001, 0xa0e40003, 0x80e40002, 0x04000004, 0x80030002,
0x80aa0001, 0xa0e40005, 0x80e40002, 0x03000002, 0x80030800, 0x80e40001, 0x80e40002, 0x02000001,
0x80040800, 0x80aa0001, 0x02000001, 0x80080800, 0x80ff0002, 0x0000002a, 0x02000001, 0x80070800,
0x80e40000, 0x02000001, 0x80080800, 0x90ff0000, 0x0000002b, 0x0000ffff, 0x00000000, 0x00000000,
0xffffffff, 0x00000000, 0x00000000, 0x0000098c, 0xfffe0300, 0x00ebfffe, 0x42415443, 0x0000001c,
0x00000377, 0xfffe0300, 0x00000008, 0x0000001c, 0x20000000, 0x00000370, 0x000000bc, 0x00190002,
0x00000001, 0x000000c4, 0x000000d4, 0x000000e4, 0x00170002, 0x00000002, 0x000000ec, 0x000000fc,
0x0000011c, 0x000a0002, 0x00000004, 0x00000128, 0x00000138, 0x00000178, 0x000e0002, 0x00000003,
0x00000180, 0x00000190, 0x000001c0, 0x00110002, 0x00000003, 0x000001cc, 0x000001dc, 0x0000020c,
0x00060002, 0x00000004, 0x00000214, 0x00000224, 0x00000264, 0x00140002, 0x00000003, 0x000002bc,
0x000002cc, 0x000002fc, 0x00000002, 0x00000006, 0x00000300, 0x00000310, 0x31727261, 0xababab00,
0x00030000, 0x00010001, 0x00000001, 0x00000000, 0x42b60000, 0x00000000, 0x00000000, 0x00000000,
0x32727261, 0xababab00, 0x00030000, 0x00010001, 0x00000002, 0x00000000, 0x42b80000, 0x00000000,
0x00000000, 0x00000000, 0x42ba0000, 0x00000000, 0x00000000, 0x00000000, 0x3478336d, 0x756c6f63,
0xab006e6d, 0x00030003, 0x00040003, 0x00000001, 0x00000000, 0x41300000, 0x41a80000, 0x41f80000,
0x00000000, 0x41400000, 0x41b00000, 0x42000000, 0x00000000, 0x41500000, 0x41b80000, 0x42040000,
0x00000000, 0x41600000, 0x41c00000, 0x42080000, 0x00000000, 0x3478336d, 0x00776f72, 0x00030002,
0x00040003, 0x00000001, 0x00000000, 0x41300000, 0x41400000, 0x41500000, 0x41600000, 0x41a80000,
0x41b00000, 0x41b80000, 0x41c00000, 0x41f80000, 0x42000000, 0x42040000, 0x42080000, 0x3378346d,
0x756c6f63, 0xab006e6d, 0x00030003, 0x00030004, 0x00000001, 0x00000000, 0x41300000, 0x41a80000,
0x41f80000, 0x42240000, 0x41400000, 0x41b00000, 0x42000000, 0x42280000, 0x41500000, 0x41b80000,
0x42040000, 0x422c0000, 0x3378346d, 0x00776f72, 0x00030002, 0x00030004, 0x00000001, 0x00000000,
0x41300000, 0x41400000, 0x41500000, 0x00000000, 0x41a80000, 0x41b00000, 0x41b80000, 0x00000000,
0x41f80000, 0x42000000, 0x42040000, 0x00000000, 0x42240000, 0x42280000, 0x422c0000, 0x00000000,
0x00317374, 0xab003176, 0x00030001, 0x00030001, 0x00000001, 0x00000000, 0xab007666, 0x00030000,
0x00010001, 0x00000001, 0x00000000, 0xab003276, 0x00030001, 0x00040001, 0x00000001, 0x00000000,
0x00000268, 0x0000026c, 0x0000027c, 0x00000280, 0x00000290, 0x00000294, 0x00000005, 0x00080001,
0x00030001, 0x000002a4, 0x41100000, 0x41200000, 0x41300000, 0x00000000, 0x41400000, 0x00000000,
0x00000000, 0x00000000, 0x41500000, 0x41600000, 0x41700000, 0x41800000, 0x00327374, 0x00000005,
0x00080001, 0x00030002, 0x000002a4, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x3f800000,
0x40000000, 0x40400000, 0x00000000, 0x40800000, 0x00000000, 0x00000000, 0x00000000, 0x40a00000,
0x40c00000, 0x40e00000, 0x41000000, 0x335f7376, 0x4d00305f, 0x6f726369, 0x74666f73, 0x29522820,
0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235,
0x00313131, 0x00ecfffe, 0x53455250, 0x46580201, 0x0043fffe, 0x42415443, 0x0000001c, 0x000000d7,
0x46580201, 0x00000003, 0x0000001c, 0x20000100, 0x000000d4, 0x00000058, 0x00020002, 0x00000001,
0x00000060, 0x00000070, 0x00000080, 0x00030002, 0x00000001, 0x00000088, 0x00000070, 0x00000098,
0x00000002, 0x00000002, 0x000000a4, 0x000000b4, 0x6f505f67, 0xab003173, 0x00030001, 0x00040001,
0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6f505f67, 0xab003273,
0x00030001, 0x00040001, 0x00000001, 0x00000000, 0x65535f67, 0x7463656c, 0xab00726f, 0x00030001,
0x00040001, 0x00000002, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x41200000,
0x41200000, 0x41200000, 0x41200000, 0x4d007874, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820,
0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131,
0x000cfffe, 0x49535250, 0x0000001a, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000,
0x00000001, 0x0000001a, 0x00000001, 0x00000000, 0x00000000, 0x0032fffe, 0x54494c43, 0x00000018,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x3fe00000, 0x00000000, 0xc0000000, 0x00000000, 0xc0080000, 0x00000000, 0x00000000,
0x00000000, 0x40100000, 0x00000000, 0x40140000, 0x00000000, 0x40180000, 0x00000000, 0x401c0000,
0x0064fffe, 0x434c5846, 0x00000009, 0xa0500004, 0x00000002, 0x00000000, 0x00000001, 0x00000011,
0x00000000, 0x00000002, 0x00000008, 0x00000000, 0x00000007, 0x00000000, 0x20400004, 0x00000002,
0x00000000, 0x00000007, 0x00000000, 0x00000000, 0x00000001, 0x00000014, 0x00000000, 0x00000007,
0x00000004, 0xa0500004, 0x00000002, 0x00000000, 0x00000001, 0x00000012, 0x00000000, 0x00000002,
0x0000000c, 0x00000000, 0x00000007, 0x00000000, 0x20400004, 0x00000002, 0x00000000, 0x00000007,
0x00000000, 0x00000000, 0x00000001, 0x00000014, 0x00000000, 0x00000007, 0x00000008, 0x10100004,
0x00000001, 0x00000000, 0x00000007, 0x00000008, 0x00000000, 0x00000007, 0x00000000, 0x20400004,
0x00000002, 0x00000000, 0x00000007, 0x00000000, 0x00000000, 0x00000007, 0x00000004, 0x00000000,
0x00000007, 0x0000000c, 0xa0200001, 0x00000002, 0x00000000, 0x00000001, 0x00000010, 0x00000000,
0x00000002, 0x00000005, 0x00000000, 0x00000007, 0x00000000, 0xa0500004, 0x00000002, 0x00000000,
0x00000007, 0x00000000, 0x00000000, 0x00000007, 0x0000000c, 0x00000000, 0x00000007, 0x00000004,
0x20400004, 0x00000002, 0x00000000, 0x00000007, 0x00000004, 0x00000000, 0x00000007, 0x00000008,
0x00000000, 0x00000004, 0x00000068, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x05000051, 0xa00f001b,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0200001f, 0x80000000, 0x900f0000, 0x0200001f,
0x80000000, 0xe00f0000, 0x0200001f, 0x80000005, 0xe0030001, 0x0200001f, 0x8000000a, 0xe00f0002,
0x03000009, 0x80010000, 0x90e40000, 0xa0e40011, 0x03000009, 0x80020000, 0x90e40000, 0xa0e40012,
0x03000009, 0x80040000, 0x90e40000, 0xa0e40013, 0x03000008, 0x80010001, 0x90e40000, 0xa0e4000a,
0x03000008, 0x80020001, 0x90e40000, 0xa0e4000b, 0x03000008, 0x80040001, 0x90e40000, 0xa0e4000c,
0x03000008, 0x80080001, 0x90e40000, 0xa0e4000d, 0x02000001, 0x80080000, 0xa000001b, 0x03000002,
0x800f0000, 0x80e40000, 0x80e40001, 0x03000005, 0x800f0001, 0xa0e4000f, 0x90550000, 0x04000004,
0x800f0001, 0x90000000, 0xa0e4000e, 0x80e40001, 0x04000004, 0x800f0001, 0x90aa0000, 0xa0e40010,
0x80e40001, 0x03000002, 0x800f0000, 0x80e40000, 0x80e40001, 0x03000005, 0x80070001, 0xa0e40007,
0x90550000, 0x04000004, 0x80070001, 0x90000000, 0xa0e40006, 0x80e40001, 0x04000004, 0x80070001,
0x90aa0000, 0xa0e40008, 0x80e40001, 0x04000004, 0x80070001, 0x90ff0000, 0xa0e40009, 0x80e40001,
0x03000002, 0x80070000, 0x80e40000, 0x80e40001, 0x04000004, 0x800f0000, 0x90e40000, 0xa0000015,
0x80e40000, 0x03000009, 0x80010001, 0x90e40000, 0xa0e40016, 0x03000002, 0x800f0000, 0x80e40000,
0x80000001, 0x04000004, 0x800f0000, 0x90e40000, 0xa0000004, 0x80e40000, 0x03000009, 0x80010001,
0x90e40000, 0xa0e40005, 0x03000002, 0x800f0000, 0x80e40000, 0x80000001, 0x04000004, 0x800f0000,
0x90e40000, 0xa0000019, 0x80e40000, 0x04000004, 0xe00f0002, 0x90e40000, 0xa0000018, 0x80e40000,
0x02000001, 0xe00f0000, 0xa0e4001a, 0x02000001, 0xe0030001, 0xa000001b, 0x0000ffff,
};
#define TEST_EFFECT_PRESHADER_VSHADER_POS 1035
#define TEST_EFFECT_PRESHADER_VSHADER_LEN 13
static void test_effect_preshader(IDirect3DDevice9 *device)
{
static const D3DXVECTOR4 test_effect_preshader_fconstsv[] =
{
{0.0f, 0.0f, 0.0f, 0.0f},
{0.0f, 0.0f, 0.0f, 0.0f},
{0.0f, 0.0f, 0.0f, 0.0f},
{1.0f, 2.0f, 3.0f, 0.0f},
{4.0f, 0.0f, 0.0f, 0.0f},
{5.0f, 6.0f, 7.0f, 8.0f},
{11.0f, 12.0f, 13.0f, 0.0f},
{21.0f, 22.0f, 23.0f, 0.0f},
{31.0f, 32.0f, 33.0f, 0.0f},
{41.0f, 42.0f, 43.0f, 0.0f},
{11.0f, 21.0f, 31.0f, 0.0f},
{12.0f, 22.0f, 32.0f, 0.0f},
{13.0f, 23.0f, 33.0f, 0.0f},
{14.0f, 24.0f, 34.0f, 0.0f},
{11.0f, 12.0f, 13.0f, 14.0f},
{21.0f, 22.0f, 23.0f, 24.0f},
{31.0f, 32.0f, 33.0f, 34.0f},
{11.0f, 21.0f, 31.0f, 41.0f},
{12.0f, 22.0f, 32.0f, 42.0f},
{13.0f, 23.0f, 33.0f, 43.0f},
{9.0f, 10.0f, 11.0f, 0.0f},
{12.0f, 0.0f, 0.0f, 0.0f},
{13.0f, 14.0f, 15.0f, 16.0f},
{92.0f, 0.0f, 0.0f, 0.0f},
{93.0f, 0.0f, 0.0f, 0.0f},
{91.0f, 0.0f, 0.0f, 0.0f},
{4.0f, 5.0f, 6.0f, 7.0f}
};
static const D3DXVECTOR4 test_effect_preshader_fconstsp[] =
{
{11.0f, 21.0f, 0.0f, 0.0f},
{12.0f, 22.0f, 0.0f, 0.0f},
{13.0f, 23.0f, 0.0f, 0.0f},
{11.0f, 12.0f, 0.0f, 0.0f},
{21.0f, 22.0f, 0.0f, 0.0f},
{31.0f, 32.0f, 0.0f, 0.0f},
{11.0f, 12.0f, 0.0f, 0.0f},
{21.0f, 22.0f, 0.0f, 0.0f},
{11.0f, 21.0f, 0.0f, 0.0f},
{12.0f, 22.0f, 0.0f, 0.0f},
{11.0f, 12.0f, 13.0f, 0.0f},
{21.0f, 22.0f, 23.0f, 0.0f},
{11.0f, 21.0f, 31.0f, 0.0f},
{12.0f, 22.0f, 32.0f, 0.0f}
};
static const BOOL test_effect_preshader_bconsts[] =
{
TRUE, FALSE, TRUE, FALSE, TRUE, FALSE
};
static const struct
{
const char *comment;
BOOL todo[4];
unsigned int result[4];
}
test_effect_preshader_op_results[] =
{
{"1 / op", { TRUE, TRUE, TRUE, TRUE}, {0x7f800000, 0xff800000, 0xbee8ba2e, 0x00200000}},
#if __x86_64__
{"rsq", { TRUE, TRUE, TRUE, TRUE}, {0x7f800000, 0x7f800000, 0x3f2c985d, 0x1f800000}},
#else
{"rsq", { TRUE, TRUE, TRUE, TRUE}, {0x7f800000, 0x7f800000, 0x3f2c985c, 0x1f800001}},
#endif
{"mul", { TRUE, TRUE, TRUE, TRUE}, {0x00000000, 0x80000000, 0x40d33334, 0x7f800000}},
{"add", {FALSE, TRUE, TRUE, TRUE}, {0x3f800000, 0x40000000, 0xc0a66666, 0x7f7fffff}},
{"lt", {FALSE, FALSE, TRUE, FALSE}, {0x3f800000, 0x3f800000, 0x00000000, 0x00000000}},
{"ge", { TRUE, TRUE, FALSE, TRUE}, {0x00000000, 0x00000000, 0x3f800000, 0x3f800000}},
{"neg", { TRUE, TRUE, TRUE, TRUE}, {0x80000000, 0x00000000, 0x400ccccd, 0xff7fffff}},
{"rcp", { TRUE, TRUE, TRUE, TRUE}, {0x7f800000, 0xff800000, 0xbee8ba2e, 0x00200000}},
{"frac", {FALSE, FALSE, TRUE, FALSE}, {0x00000000, 0x00000000, 0x3f4ccccc, 0x00000000}},
{"min", {FALSE, TRUE, TRUE, TRUE}, {0x00000000, 0x80000000, 0xc0400000, 0x40800000}},
{"max", { TRUE, TRUE, TRUE, TRUE}, {0x3f800000, 0x40000000, 0xc00ccccd, 0x7f7fffff}},
#if __x86_64__
{"sin", {FALSE, TRUE, TRUE, TRUE}, {0x00000000, 0x80000000, 0xbf4ef99e, 0xbf0599b3}},
{"cos", { TRUE, TRUE, TRUE, TRUE}, {0x3f800000, 0x3f800000, 0xbf16a803, 0x3f5a5f96}},
#else
{"sin", {FALSE, TRUE, TRUE, TRUE}, {0x00000000, 0x80000000, 0xbf4ef99e, 0x3f792dc4}},
{"cos", { TRUE, TRUE, TRUE, TRUE}, {0x3f800000, 0x3f800000, 0xbf16a803, 0xbe6acefc}},
#endif
{"den mul",{ TRUE, TRUE, TRUE, TRUE}, {0x7f800000, 0xff800000, 0xbb94f209, 0x000051ec}},
{"dot", {FALSE, TRUE, TRUE, FALSE}, {0x00000000, 0x7f800000, 0x41f00000, 0x00000000}},
#if __x86_64__
{"prec", { TRUE, TRUE, TRUE, FALSE}, {0x2b8cbccc, 0x2c0cbccc, 0xac531800, 0x00000000}}
#else
{"prec", { TRUE, TRUE, FALSE, FALSE}, {0x2b8cbccc, 0x2c0cbccc, 0x00000000, 0x00000000}}
#endif
};
#define TEST_EFFECT_PRES_NFLOATV ARRAY_SIZE(test_effect_preshader_fconstsv)
#define TEST_EFFECT_PRES_NFLOATP ARRAY_SIZE(test_effect_preshader_fconstsp)
#define TEST_EFFECT_PRES_NFLOATMAX (TEST_EFFECT_PRES_NFLOATV > TEST_EFFECT_PRES_NFLOATP ? \
TEST_EFFECT_PRES_NFLOATV : TEST_EFFECT_PRES_NFLOATP)
#define TEST_EFFECT_PRES_NBOOL ARRAY_SIZE(test_effect_preshader_bconsts)
#define TEST_EFFECT_PRES_NOPTESTS ARRAY_SIZE(test_effect_preshader_op_results)
static const D3DXVECTOR4 fvect1 = {28.0f, 29.0f, 30.0f, 31.0f};
static const D3DXVECTOR4 fvect2 = {0.0f, 0.0f, 1.0f, 0.0f};
static const D3DXVECTOR4 fvect_empty = {-9999.0f, -9999.0f, -9999.0f, -9999.0f};
HRESULT hr;
ID3DXEffect *effect;
D3DXHANDLE par;
unsigned int npasses;
BOOL bval;
D3DLIGHT9 light;
D3DXVECTOR4 fdata[TEST_EFFECT_PRES_NFLOATMAX];
BOOL bdata[TEST_EFFECT_PRES_NBOOL];
IDirect3DVertexShader9 *vshader;
void *byte_code;
unsigned int byte_code_size;
unsigned int i, j;
D3DCAPS9 caps;
hr = IDirect3DDevice9_GetDeviceCaps(device, &caps);
ok(SUCCEEDED(hr), "Failed to get device caps, hr %#x.\n", hr);
if (caps.VertexShaderVersion < D3DVS_VERSION(3, 0)
|| caps.PixelShaderVersion < D3DPS_VERSION(3, 0))
{
skip("Test requires VS >= 3 and PS >= 3, skipping.\n");
return;
}
hr = D3DXCreateEffect(device, test_effect_preshader_effect_blob, sizeof(test_effect_preshader_effect_blob),
NULL, NULL, 0, NULL, &effect, NULL);
ok(hr == D3D_OK, "Got result %#x.\n", hr);
for (i = 0; i < 256; ++i)
{
hr = IDirect3DDevice9_SetVertexShaderConstantF(device, i, &fvect_empty.x, 1);
ok(hr == D3D_OK, "Got result %#x.\n", hr);
}
for (i = 0; i < 224; ++i)
{
hr = IDirect3DDevice9_SetPixelShaderConstantF(device, i, &fvect_empty.x, 1);
ok(hr == D3D_OK, "Got result %#x.\n", hr);
}
bval = FALSE;
for (i = 0; i < 16; ++i)
{
hr = IDirect3DDevice9_SetPixelShaderConstantB(device, i, &bval, 1);
ok(hr == D3D_OK, "Got result %#x.\n", hr);
}
hr = effect->lpVtbl->Begin(effect, &npasses, 0);
ok(hr == D3D_OK, "Got result %#x.\n", hr);
par = effect->lpVtbl->GetParameterByName(effect, NULL, "g_Pos2");
ok(par != NULL, "GetParameterByName failed.\n");
hr = effect->lpVtbl->SetVector(effect, par, &fvect1);
ok(hr == D3D_OK, "SetVector failed, hr %#x.\n", hr);
hr = effect->lpVtbl->BeginPass(effect, 0);
todo_wine ok(hr == D3D_OK, "Got result %#x.\n", hr);
hr = IDirect3DDevice9_GetVertexShaderConstantF(device, 0, &fdata[0].x, TEST_EFFECT_PRES_NFLOATV);
ok(hr == D3D_OK, "Got result %#x.\n", hr);
todo_wine ok(!memcmp(fdata, test_effect_preshader_fconstsv, sizeof(test_effect_preshader_fconstsv)),
"Vertex shader float constants do not match.\n");
for (i = TEST_EFFECT_PRES_NFLOATV; i < 256; ++i)
{
hr = IDirect3DDevice9_GetVertexShaderConstantF(device, i, &fdata[0].x, 1);
ok(hr == D3D_OK, "Got result %#x.\n", hr);
ok(!memcmp(fdata, &fvect_empty, sizeof(fvect_empty)),
"Vertex shader float constants do not match.\n");
}
hr = IDirect3DDevice9_GetPixelShaderConstantF(device, 0, &fdata[0].x, TEST_EFFECT_PRES_NFLOATP);
ok(hr == D3D_OK, "Got result %#x.\n", hr);
todo_wine ok(!memcmp(fdata, test_effect_preshader_fconstsp, sizeof(test_effect_preshader_fconstsp)),
"Pixel shader float constants do not match.\n");
for (i = TEST_EFFECT_PRES_NFLOATP; i < 224; ++i)
{
hr = IDirect3DDevice9_GetPixelShaderConstantF(device, i, &fdata[0].x, 1);
ok(hr == D3D_OK, "Got result %#x.\n", hr);
ok(!memcmp(fdata, &fvect_empty, sizeof(fvect_empty)),
"Vertex shader float constants do not match.\n");
}
hr = IDirect3DDevice9_GetPixelShaderConstantB(device, 0, bdata, TEST_EFFECT_PRES_NBOOL);
ok(hr == D3D_OK, "Got result %#x.\n", hr);
for (i = 0; i < TEST_EFFECT_PRES_NBOOL; ++i)
todo_wine_if(!bdata[i] != !test_effect_preshader_bconsts[i])
ok(!bdata[i] == !test_effect_preshader_bconsts[i],
"Pixel shader boolean constants do not match.\n");
for (; i < 16; ++i)
{
hr = IDirect3DDevice9_GetPixelShaderConstantB(device, i, &bval, 1);
ok(hr == D3D_OK && !bval, "Got result %#x, boolean register value %u.\n", hr, bval);
}
for (i = 0; i < TEST_EFFECT_PRES_NOPTESTS; ++i)
{
unsigned int *v;
hr = IDirect3DDevice9_GetLight(device, i % 8, &light);
v = i < 8 ? (unsigned int *)&light.Diffuse : (unsigned int *)&light.Ambient;
ok(hr == D3D_OK, "Got result %#x.\n", hr);
for (j = 0; j < 4; ++j)
todo_wine_if(test_effect_preshader_op_results[i].todo[j])
ok(v[j] == test_effect_preshader_op_results[i].result[j],
"Operation %s, component %u, expected %#x, got %#x (%g).\n",
test_effect_preshader_op_results[i].comment, j,
test_effect_preshader_op_results[i].result[j], v[j], ((float *)v)[j]);
}
hr = effect->lpVtbl->EndPass(effect);
par = effect->lpVtbl->GetParameterByName(effect, NULL, "g_iVect");
ok(par != NULL, "GetParameterByName failed.\n");
hr = effect->lpVtbl->SetVector(effect, par, &fvect2);
ok(hr == D3D_OK, "SetVector failed, hr %#x.\n", hr);
hr = effect->lpVtbl->BeginPass(effect, 1);
todo_wine ok(hr == D3D_OK, "Got result %#x.\n", hr);
hr = IDirect3DDevice9_GetVertexShader(device, &vshader);
ok(hr == D3D_OK, "Got result %#x.\n", hr);
ok(!!vshader, "Got NULL vshader.\n");
hr = IDirect3DVertexShader9_GetFunction(vshader, NULL, &byte_code_size);
ok(hr == D3D_OK, "Got result %#x.\n", hr);
byte_code = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, byte_code_size);
hr = IDirect3DVertexShader9_GetFunction(vshader, byte_code, &byte_code_size);
ok(hr == D3D_OK, "Got result %#x.\n", hr);
ok(byte_code_size > 1, "Got unexpected byte code size %u.\n", byte_code_size);
todo_wine ok(!memcmp(byte_code,
&test_effect_preshader_effect_blob[TEST_EFFECT_PRESHADER_VSHADER_POS +
TEST_EFFECT_PRESHADER_VSHADER_LEN], byte_code_size),
"Incorrect shader selected.\n");
HeapFree(GetProcessHeap(), 0, byte_code);
IDirect3DVertexShader9_Release(vshader);
hr = IDirect3DDevice9_SetVertexShader(device, NULL);
ok(hr == D3D_OK, "Got result %#x.\n", hr);
hr = effect->lpVtbl->SetVector(effect, par, &fvect1);
ok(hr == D3D_OK, "SetVector failed, hr %#x.\n", hr);
hr = effect->lpVtbl->CommitChanges(effect);
todo_wine ok(hr == D3D_OK, "Got result %#x.\n", hr);
hr = IDirect3DDevice9_GetVertexShader(device, &vshader);
ok(hr == D3D_OK, "Got result %#x.\n", hr);
ok(!vshader, "Incorrect shader selected.\n");
hr = effect->lpVtbl->EndPass(effect);
ok(hr == D3D_OK, "Got result %#x.\n", hr);
hr = effect->lpVtbl->End(effect);
ok(hr == D3D_OK, "Got result %#x.\n", hr);
effect->lpVtbl->Release(effect);
}
START_TEST(effect)
{
HWND wnd;
@ -3048,6 +3926,7 @@ START_TEST(effect)
test_effect_variable_names(device);
test_effect_compilation_errors(device);
test_effect_states(device);
test_effect_preshader(device);
count = IDirect3DDevice9_Release(device);
ok(count == 0, "The device was not properly freed: refcount %u\n", count);