d3d10/effect: Add support for constant index and anonymous shader values in assignment parsing helper.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com> Signed-off-by: Matteo Bruni <mbruni@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
e37f781cc2
commit
99376ade2a
|
@ -1710,17 +1710,19 @@ static BOOL is_object_property_type_matching(const struct d3d10_effect_state_pro
|
|||
}
|
||||
}
|
||||
|
||||
static BOOL parse_fx10_state_group(const char *data, size_t data_size,
|
||||
static HRESULT parse_fx10_property_assignment(const char *data, size_t data_size,
|
||||
const char **ptr, enum d3d10_effect_container_type container_type,
|
||||
struct d3d10_effect *effect, void *container)
|
||||
{
|
||||
const struct d3d10_effect_state_property_info *property_info;
|
||||
UINT value_offset, sodecl_offset, operation;
|
||||
struct d3d10_effect_variable *variable;
|
||||
UINT value_offset, operation;
|
||||
unsigned int i, variable_idx;
|
||||
const char *data_ptr;
|
||||
const char *name;
|
||||
size_t name_len;
|
||||
unsigned int i;
|
||||
DWORD count;
|
||||
HRESULT hr;
|
||||
void *dst;
|
||||
UINT idx;
|
||||
UINT id;
|
||||
|
@ -1738,7 +1740,7 @@ static BOOL parse_fx10_state_group(const char *data, size_t data_size,
|
|||
if (!(property_info = get_property_info(id)))
|
||||
{
|
||||
FIXME("Failed to find property info for property %#x.\n", id);
|
||||
return FALSE;
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
TRACE("Property %s[%#x] = value list @ offset %#x.\n",
|
||||
|
@ -1747,13 +1749,13 @@ static BOOL parse_fx10_state_group(const char *data, size_t data_size,
|
|||
if (property_info->container_type != container_type)
|
||||
{
|
||||
ERR("Invalid container type %#x for property %#x.\n", container_type, id);
|
||||
return FALSE;
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
if (idx >= property_info->count)
|
||||
{
|
||||
ERR("Invalid index %#x for property %#x.\n", idx, id);
|
||||
return FALSE;
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
dst = (char *)container + property_info->offset;
|
||||
|
@ -1767,7 +1769,7 @@ static BOOL parse_fx10_state_group(const char *data, size_t data_size,
|
|||
property_info->size, dst))
|
||||
{
|
||||
ERR("Failed to read values for property %#x.\n", id);
|
||||
return FALSE;
|
||||
return E_FAIL;
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -1784,7 +1786,7 @@ static BOOL parse_fx10_state_group(const char *data, size_t data_size,
|
|||
if (!(variable = d3d10_effect_get_variable_by_name(effect, name)))
|
||||
{
|
||||
WARN("Couldn't find variable %s.\n", debugstr_a(name));
|
||||
return FALSE;
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
if (is_object_property(property_info))
|
||||
|
@ -1792,14 +1794,14 @@ static BOOL parse_fx10_state_group(const char *data, size_t data_size,
|
|||
if (variable->type->element_count)
|
||||
{
|
||||
WARN("Unexpected array variable value %s.\n", debugstr_a(name));
|
||||
return FALSE;
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
if (!is_object_property_type_matching(property_info, variable))
|
||||
{
|
||||
WARN("Object type mismatch. Variable type %#x, property type %#x.\n",
|
||||
variable->type->basetype, property_info->type);
|
||||
return FALSE;
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
*(void **)dst = variable;
|
||||
|
@ -1807,18 +1809,128 @@ static BOOL parse_fx10_state_group(const char *data, size_t data_size,
|
|||
else
|
||||
{
|
||||
FIXME("Assigning variables to numeric fields is not supported.\n");
|
||||
return FALSE;
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case D3D10_EOO_CONST_INDEX:
|
||||
|
||||
/* Array variable, constant index. */
|
||||
if (value_offset >= data_size || !require_space(value_offset, 2, sizeof(DWORD), data_size))
|
||||
{
|
||||
WARN("Invalid offset %#x (data size %#lx).\n", value_offset, (long)data_size);
|
||||
return E_FAIL;
|
||||
}
|
||||
data_ptr = data + value_offset;
|
||||
read_dword(&data_ptr, &value_offset);
|
||||
read_dword(&data_ptr, &variable_idx);
|
||||
|
||||
if (!fx10_get_string(data, data_size, value_offset, &name, &name_len))
|
||||
{
|
||||
WARN("Failed to get variable name.\n");
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
TRACE("Variable name %s[%u].\n", debugstr_a(name), variable_idx);
|
||||
|
||||
if (!(variable = d3d10_effect_get_variable_by_name(effect, name)))
|
||||
{
|
||||
WARN("Couldn't find variable %s.\n", debugstr_a(name));
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
/* Has to be an array */
|
||||
if (!variable->type->element_count || variable_idx >= variable->type->element_count)
|
||||
{
|
||||
WARN("Invalid array size %u.\n", variable->type->element_count);
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
if (is_object_property(property_info))
|
||||
{
|
||||
if (!is_object_property_type_matching(property_info, variable))
|
||||
{
|
||||
WARN("Object type mismatch. Variable type %#x, property type %#x.\n",
|
||||
variable->type->basetype, property_info->type);
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
*(void **)dst = &variable->elements[variable_idx];
|
||||
}
|
||||
else
|
||||
{
|
||||
FIXME("Assigning indexed variables to numeric fields is not supported.\n");
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case D3D10_EOO_ANONYMOUS_SHADER:
|
||||
|
||||
/* Anonymous shader */
|
||||
if (effect->anonymous_shader_current >= effect->anonymous_shader_count)
|
||||
{
|
||||
ERR("Anonymous shader count is wrong!\n");
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
if (value_offset >= data_size || !require_space(value_offset, 2, sizeof(DWORD), data_size))
|
||||
{
|
||||
WARN("Invalid offset %#x (data size %#lx).\n", value_offset, (long)data_size);
|
||||
return E_FAIL;
|
||||
}
|
||||
data_ptr = data + value_offset;
|
||||
read_dword(&data_ptr, &value_offset);
|
||||
read_dword(&data_ptr, &sodecl_offset);
|
||||
|
||||
TRACE("Effect object starts at offset %#x.\n", value_offset);
|
||||
|
||||
if (FAILED(hr = parse_fx10_anonymous_shader(effect,
|
||||
&effect->anonymous_shaders[effect->anonymous_shader_current], property_info->id)))
|
||||
return hr;
|
||||
|
||||
variable = &effect->anonymous_shaders[effect->anonymous_shader_current].shader;
|
||||
++effect->anonymous_shader_current;
|
||||
|
||||
if (sodecl_offset)
|
||||
{
|
||||
TRACE("Anonymous shader stream output declaration at offset %#x.\n", sodecl_offset);
|
||||
if (!fx10_copy_string(data, data_size, sodecl_offset,
|
||||
&variable->u.shader.stream_output_declaration))
|
||||
{
|
||||
ERR("Failed to copy stream output declaration.\n");
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
TRACE("Stream output declaration: %s.\n", debugstr_a(variable->u.shader.stream_output_declaration));
|
||||
}
|
||||
|
||||
switch (property_info->id)
|
||||
{
|
||||
case D3D10_EOT_VERTEXSHADER:
|
||||
case D3D10_EOT_PIXELSHADER:
|
||||
case D3D10_EOT_GEOMETRYSHADER:
|
||||
if (FAILED(hr = parse_fx10_shader(data, data_size, value_offset, variable)))
|
||||
return hr;
|
||||
break;
|
||||
|
||||
default:
|
||||
FIXME("Unhandled object type %#x\n", property_info->id);
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
*(void **)dst = variable;
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
FIXME("Unhandled operation %#x.\n", operation);
|
||||
return E_FAIL;
|
||||
}
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT parse_fx10_object(const char *data, size_t data_size,
|
||||
|
@ -2417,11 +2529,11 @@ static HRESULT parse_fx10_object_variable(const char *data, size_t data_size,
|
|||
var = v;
|
||||
|
||||
memcpy(&var->u.state.desc, storage_info->default_state, storage_info->size);
|
||||
if (!parse_fx10_state_group(data, data_size, ptr, get_var_container_type(var),
|
||||
var->effect, &var->u.state.desc))
|
||||
if (FAILED(hr = parse_fx10_property_assignment(data, data_size, ptr,
|
||||
get_var_container_type(var), var->effect, &var->u.state.desc)))
|
||||
{
|
||||
ERR("Failed to read property list.\n");
|
||||
return E_FAIL;
|
||||
return hr;
|
||||
}
|
||||
|
||||
if (FAILED(hr = create_state_object(var)))
|
||||
|
|
|
@ -4146,6 +4146,26 @@ SamplerState sampler4a { Texture = t2dmsa; };
|
|||
SamplerState sampler5 { Texture = t3; };
|
||||
SamplerState sampler6 { Texture = tq; };
|
||||
|
||||
Texture t0_a[3];
|
||||
Texture1D t1_a[3];
|
||||
Texture1DArray t1a_a[3];
|
||||
Texture2D t2_a[3];
|
||||
Texture2DArray t2a_a[3];
|
||||
Texture2DMS<float4, 4> t2dms_a[3];
|
||||
Texture2DMSArray <float4, 4> t2dmsa_a[3];
|
||||
Texture3D t3_a[3];
|
||||
TextureCube tq_a[3];
|
||||
|
||||
SamplerState sampler7 { Texture = t0_a[0]; };
|
||||
SamplerState sampler8 { Texture = t1_a[1]; };
|
||||
SamplerState sampler9 { Texture = t1a_a[2]; };
|
||||
SamplerState sampler10 { Texture = t2_a[0]; };
|
||||
SamplerState sampler11 { Texture = t2a_a[1]; };
|
||||
SamplerState sampler12 { Texture = t2dms_a[2]; };
|
||||
SamplerState sampler13 { Texture = t2dmsa_a[0]; };
|
||||
SamplerState sampler14 { Texture = t3_a[1]; };
|
||||
SamplerState sampler15 { Texture = tq_a[2]; };
|
||||
|
||||
technique10 tech0
|
||||
{
|
||||
pass pass0
|
||||
|
@ -4158,10 +4178,10 @@ technique10 tech0
|
|||
#endif
|
||||
static DWORD fx_test_state_groups[] =
|
||||
{
|
||||
0x43425844, 0x6465b74f, 0x34238546, 0x33c65cd8, 0xec32db01, 0x00000001, 0x00000b8c, 0x00000001,
|
||||
0x00000024, 0x30315846, 0x00000b60, 0xfeff1001, 0x00000000, 0x00000000, 0x00000016, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000001, 0x00000540, 0x00000000, 0x00000009, 0x00000001, 0x00000001,
|
||||
0x00000001, 0x0000000a, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x74736152,
|
||||
0x43425844, 0xad712d25, 0xfbcf4136, 0x61248434, 0xe6cabf4a, 0x00000001, 0x00000f79, 0x00000001,
|
||||
0x00000024, 0x30315846, 0x00000f4d, 0xfeff1001, 0x00000000, 0x00000000, 0x00000028, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000001, 0x00000711, 0x00000000, 0x00000024, 0x00000001, 0x00000001,
|
||||
0x00000001, 0x00000013, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x74736152,
|
||||
0x7a697265, 0x74537265, 0x00657461, 0x00000004, 0x00000002, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000004, 0x74736172, 0x6174735f, 0x01006574, 0x02000000, 0x02000000, 0x01000000,
|
||||
0x02000000, 0x02000000, 0x01000000, 0x04000000, 0x01000000, 0x01000000, 0x02000000, 0xfc000000,
|
||||
|
@ -4201,56 +4221,87 @@ static DWORD fx_test_state_groups[] =
|
|||
0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00001100, 0x00717400, 0x706d6173,
|
||||
0x3172656c, 0x6d617300, 0x72656c70, 0x61730032, 0x656c706d, 0x00613272, 0x706d6173, 0x3372656c,
|
||||
0x6d617300, 0x72656c70, 0x73006133, 0x6c706d61, 0x00347265, 0x706d6173, 0x3472656c, 0x61730061,
|
||||
0x656c706d, 0x73003572, 0x6c706d61, 0x00367265, 0x68636574, 0x61700030, 0x00307373, 0x00000004,
|
||||
0x00000001, 0x3f000000, 0x00000001, 0x3f19999a, 0x00000001, 0x3f333333, 0x00000001, 0x3f4ccccd,
|
||||
0x00000001, 0x00000003, 0x0000ffff, 0x00000001, 0x00000001, 0x3f800000, 0x00000030, 0x00000014,
|
||||
0x00000000, 0xffffffff, 0x0000000a, 0x0000000c, 0x00000000, 0x00000001, 0x0000003b, 0x0000000d,
|
||||
0x00000000, 0x00000001, 0x00000047, 0x0000000e, 0x00000000, 0x00000001, 0x00000053, 0x0000000f,
|
||||
0x00000000, 0x00000001, 0x0000005f, 0x00000010, 0x00000000, 0x00000001, 0x0000006b, 0x00000011,
|
||||
0x00000000, 0x00000001, 0x00000077, 0x00000012, 0x00000000, 0x00000001, 0x00000083, 0x00000013,
|
||||
0x00000000, 0x00000001, 0x0000008f, 0x00000014, 0x00000000, 0x00000001, 0x0000009b, 0x00000015,
|
||||
0x00000000, 0x00000001, 0x000000a7, 0x00000000, 0x000000e1, 0x000000c5, 0x00000000, 0xffffffff,
|
||||
0x0000000e, 0x00000016, 0x00000000, 0x00000001, 0x000000ea, 0x00000017, 0x00000000, 0x00000001,
|
||||
0x000000f6, 0x00000018, 0x00000000, 0x00000001, 0x00000102, 0x00000019, 0x00000000, 0x00000001,
|
||||
0x0000010e, 0x0000001a, 0x00000000, 0x00000001, 0x0000011a, 0x0000001b, 0x00000000, 0x00000001,
|
||||
0x00000126, 0x0000001c, 0x00000000, 0x00000001, 0x00000132, 0x0000001d, 0x00000000, 0x00000001,
|
||||
0x0000013e, 0x0000001e, 0x00000000, 0x00000001, 0x0000014a, 0x0000001f, 0x00000000, 0x00000001,
|
||||
0x00000156, 0x00000020, 0x00000000, 0x00000001, 0x00000162, 0x00000021, 0x00000000, 0x00000001,
|
||||
0x0000016e, 0x00000022, 0x00000000, 0x00000001, 0x0000017a, 0x00000023, 0x00000000, 0x00000001,
|
||||
0x00000186, 0x00000000, 0x000001b9, 0x0000019d, 0x00000000, 0xffffffff, 0x0000000b, 0x00000024,
|
||||
0x00000000, 0x00000001, 0x000001c5, 0x00000025, 0x00000000, 0x00000001, 0x000001d1, 0x00000025,
|
||||
0x00000007, 0x00000001, 0x000001dd, 0x00000026, 0x00000000, 0x00000001, 0x000001e9, 0x00000027,
|
||||
0x00000000, 0x00000001, 0x000001f5, 0x00000028, 0x00000000, 0x00000001, 0x00000201, 0x00000029,
|
||||
0x00000000, 0x00000001, 0x0000020d, 0x0000002a, 0x00000000, 0x00000001, 0x00000219, 0x0000002b,
|
||||
0x00000000, 0x00000001, 0x00000225, 0x0000002c, 0x00000000, 0x00000001, 0x00000231, 0x0000002c,
|
||||
0x00000007, 0x00000001, 0x0000023d, 0x00000000, 0x00000272, 0x00000256, 0x00000000, 0xffffffff,
|
||||
0x0000000b, 0x0000002d, 0x00000000, 0x00000001, 0x0000027b, 0x0000002e, 0x00000000, 0x00000001,
|
||||
0x00000287, 0x0000002f, 0x00000000, 0x00000001, 0x00000293, 0x00000030, 0x00000000, 0x00000001,
|
||||
0x0000029f, 0x00000031, 0x00000000, 0x00000001, 0x000002ab, 0x00000032, 0x00000000, 0x00000001,
|
||||
0x000002b7, 0x00000033, 0x00000000, 0x00000001, 0x000002c3, 0x00000034, 0x00000000, 0x00000001,
|
||||
0x000002cf, 0x00000035, 0x00000000, 0x00000001, 0x000002f3, 0x00000036, 0x00000000, 0x00000001,
|
||||
0x000002ff, 0x00000037, 0x00000000, 0x00000001, 0x0000030b, 0x00000000, 0x0000033b, 0x0000031f,
|
||||
0x00000000, 0xffffffff, 0x00000000, 0x00000364, 0x00000348, 0x00000000, 0xffffffff, 0x00000000,
|
||||
0x00000392, 0x00000376, 0x00000000, 0xffffffff, 0x00000000, 0x000003bc, 0x000003a0, 0x00000000,
|
||||
0xffffffff, 0x00000000, 0x000003ea, 0x000003ce, 0x00000000, 0xffffffff, 0x00000000, 0x00000416,
|
||||
0x000003fa, 0x00000000, 0xffffffff, 0x00000000, 0x00000449, 0x0000042d, 0x00000000, 0xffffffff,
|
||||
0x00000000, 0x00000476, 0x0000045a, 0x00000000, 0xffffffff, 0x00000000, 0x000004a1, 0x00000485,
|
||||
0x00000000, 0xffffffff, 0x00000000, 0x000004a4, 0x00000256, 0x00000000, 0xffffffff, 0x00000001,
|
||||
0x00000037, 0x00000000, 0x00000002, 0x0000033b, 0x00000000, 0x000004ad, 0x00000256, 0x00000000,
|
||||
0xffffffff, 0x00000001, 0x00000037, 0x00000000, 0x00000002, 0x00000364, 0x00000000, 0x000004b6,
|
||||
0x00000256, 0x00000000, 0xffffffff, 0x00000001, 0x00000037, 0x00000000, 0x00000002, 0x00000392,
|
||||
0x00000000, 0x000004c0, 0x00000256, 0x00000000, 0xffffffff, 0x00000001, 0x00000037, 0x00000000,
|
||||
0x00000002, 0x000003bc, 0x00000000, 0x000004c9, 0x00000256, 0x00000000, 0xffffffff, 0x00000001,
|
||||
0x00000037, 0x00000000, 0x00000002, 0x000003ea, 0x00000000, 0x000004d3, 0x00000256, 0x00000000,
|
||||
0xffffffff, 0x00000001, 0x00000037, 0x00000000, 0x00000002, 0x00000416, 0x00000000, 0x000004dc,
|
||||
0x00000256, 0x00000000, 0xffffffff, 0x00000001, 0x00000037, 0x00000000, 0x00000002, 0x00000449,
|
||||
0x00000000, 0x000004e6, 0x00000256, 0x00000000, 0xffffffff, 0x00000001, 0x00000037, 0x00000000,
|
||||
0x00000002, 0x00000476, 0x00000000, 0x000004ef, 0x00000256, 0x00000000, 0xffffffff, 0x00000001,
|
||||
0x00000037, 0x00000000, 0x00000002, 0x000004a1, 0x00000000, 0x000004f8, 0x00000001, 0x00000000,
|
||||
0x000004fe, 0x00000006, 0x00000000, 0x0000000a, 0x00000000, 0x00000001, 0x00000504, 0x0000000b,
|
||||
0x00000000, 0x00000001, 0x00000528, 0x00000002, 0x00000000, 0x00000002, 0x000001b9, 0x00000009,
|
||||
0x00000000, 0x00000001, 0x00000534, 0x00000001, 0x00000000, 0x00000002, 0x000000e1, 0x00000000,
|
||||
0x00000000, 0x00000002, 0x00000030,
|
||||
0x656c706d, 0x73003572, 0x6c706d61, 0x00367265, 0x00000317, 0x00000002, 0x00000003, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000009, 0x615f3074, 0x00033e00, 0x00000200, 0x00000300, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000a00, 0x5f317400, 0x03670061, 0x00020000, 0x00030000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x000b0000, 0x31740000, 0x00615f61, 0x00000396, 0x00000002, 0x00000003,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x0000000c, 0x615f3274, 0x0003bf00, 0x00000200, 0x00000300,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000d00, 0x61327400, 0xee00615f, 0x02000003, 0x03000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x0e000000, 0x74000000, 0x736d6432, 0x1c00615f, 0x02000004,
|
||||
0x03000000, 0x00000000, 0x00000000, 0x00000000, 0x0f000000, 0x74000000, 0x736d6432, 0x00615f61,
|
||||
0x00000450, 0x00000002, 0x00000003, 0x00000000, 0x00000000, 0x00000000, 0x00000010, 0x615f3374,
|
||||
0x00047900, 0x00000200, 0x00000300, 0x00000000, 0x00000000, 0x00000000, 0x00001100, 0x5f717400,
|
||||
0x61730061, 0x656c706d, 0x14003772, 0x00000005, 0x73000000, 0x6c706d61, 0x00387265, 0x00000535,
|
||||
0x00000001, 0x706d6173, 0x3972656c, 0x00055600, 0x00000200, 0x6d617300, 0x72656c70, 0x78003031,
|
||||
0x00000005, 0x73000000, 0x6c706d61, 0x31317265, 0x00059900, 0x00000100, 0x6d617300, 0x72656c70,
|
||||
0xbb003231, 0x02000005, 0x73000000, 0x6c706d61, 0x33317265, 0x0005df00, 0x00000000, 0x6d617300,
|
||||
0x72656c70, 0x04003431, 0x01000006, 0x73000000, 0x6c706d61, 0x35317265, 0x00062500, 0x00000200,
|
||||
0x63657400, 0x70003068, 0x30737361, 0x00000400, 0x00000100, 0x00000000, 0x0000013f, 0x19999a00,
|
||||
0x0000013f, 0x33333300, 0x0000013f, 0x4ccccd00, 0x0000013f, 0x00000300, 0x00ffff00, 0x00000100,
|
||||
0x00000100, 0x80000000, 0x0000303f, 0x00001400, 0x00000000, 0xffffff00, 0x00000aff, 0x00000c00,
|
||||
0x00000000, 0x00000100, 0x00003b00, 0x00000d00, 0x00000000, 0x00000100, 0x00004700, 0x00000e00,
|
||||
0x00000000, 0x00000100, 0x00005300, 0x00000f00, 0x00000000, 0x00000100, 0x00005f00, 0x00001000,
|
||||
0x00000000, 0x00000100, 0x00006b00, 0x00001100, 0x00000000, 0x00000100, 0x00007700, 0x00001200,
|
||||
0x00000000, 0x00000100, 0x00008300, 0x00001300, 0x00000000, 0x00000100, 0x00008f00, 0x00001400,
|
||||
0x00000000, 0x00000100, 0x00009b00, 0x00001500, 0x00000000, 0x00000100, 0x0000a700, 0x00000000,
|
||||
0x0000e100, 0x0000c500, 0x00000000, 0xffffff00, 0x00000eff, 0x00001600, 0x00000000, 0x00000100,
|
||||
0x0000ea00, 0x00001700, 0x00000000, 0x00000100, 0x0000f600, 0x00001800, 0x00000000, 0x00000100,
|
||||
0x00010200, 0x00001900, 0x00000000, 0x00000100, 0x00010e00, 0x00001a00, 0x00000000, 0x00000100,
|
||||
0x00011a00, 0x00001b00, 0x00000000, 0x00000100, 0x00012600, 0x00001c00, 0x00000000, 0x00000100,
|
||||
0x00013200, 0x00001d00, 0x00000000, 0x00000100, 0x00013e00, 0x00001e00, 0x00000000, 0x00000100,
|
||||
0x00014a00, 0x00001f00, 0x00000000, 0x00000100, 0x00015600, 0x00002000, 0x00000000, 0x00000100,
|
||||
0x00016200, 0x00002100, 0x00000000, 0x00000100, 0x00016e00, 0x00002200, 0x00000000, 0x00000100,
|
||||
0x00017a00, 0x00002300, 0x00000000, 0x00000100, 0x00018600, 0x00000000, 0x0001b900, 0x00019d00,
|
||||
0x00000000, 0xffffff00, 0x00000bff, 0x00002400, 0x00000000, 0x00000100, 0x0001c500, 0x00002500,
|
||||
0x00000000, 0x00000100, 0x0001d100, 0x00002500, 0x00000700, 0x00000100, 0x0001dd00, 0x00002600,
|
||||
0x00000000, 0x00000100, 0x0001e900, 0x00002700, 0x00000000, 0x00000100, 0x0001f500, 0x00002800,
|
||||
0x00000000, 0x00000100, 0x00020100, 0x00002900, 0x00000000, 0x00000100, 0x00020d00, 0x00002a00,
|
||||
0x00000000, 0x00000100, 0x00021900, 0x00002b00, 0x00000000, 0x00000100, 0x00022500, 0x00002c00,
|
||||
0x00000000, 0x00000100, 0x00023100, 0x00002c00, 0x00000700, 0x00000100, 0x00023d00, 0x00000000,
|
||||
0x00027200, 0x00025600, 0x00000000, 0xffffff00, 0x00000bff, 0x00002d00, 0x00000000, 0x00000100,
|
||||
0x00027b00, 0x00002e00, 0x00000000, 0x00000100, 0x00028700, 0x00002f00, 0x00000000, 0x00000100,
|
||||
0x00029300, 0x00003000, 0x00000000, 0x00000100, 0x00029f00, 0x00003100, 0x00000000, 0x00000100,
|
||||
0x0002ab00, 0x00003200, 0x00000000, 0x00000100, 0x0002b700, 0x00003300, 0x00000000, 0x00000100,
|
||||
0x0002c300, 0x00003400, 0x00000000, 0x00000100, 0x0002cf00, 0x00003500, 0x00000000, 0x00000100,
|
||||
0x0002f300, 0x00003600, 0x00000000, 0x00000100, 0x0002ff00, 0x00003700, 0x00000000, 0x00000100,
|
||||
0x00030b00, 0x00000000, 0x00033b00, 0x00031f00, 0x00000000, 0xffffff00, 0x000000ff, 0x00036400,
|
||||
0x00034800, 0x00000000, 0xffffff00, 0x000000ff, 0x00039200, 0x00037600, 0x00000000, 0xffffff00,
|
||||
0x000000ff, 0x0003bc00, 0x0003a000, 0x00000000, 0xffffff00, 0x000000ff, 0x0003ea00, 0x0003ce00,
|
||||
0x00000000, 0xffffff00, 0x000000ff, 0x00041600, 0x0003fa00, 0x00000000, 0xffffff00, 0x000000ff,
|
||||
0x00044900, 0x00042d00, 0x00000000, 0xffffff00, 0x000000ff, 0x00047600, 0x00045a00, 0x00000000,
|
||||
0xffffff00, 0x000000ff, 0x0004a100, 0x00048500, 0x00000000, 0xffffff00, 0x000000ff, 0x0004a400,
|
||||
0x00025600, 0x00000000, 0xffffff00, 0x000001ff, 0x00003700, 0x00000000, 0x00000200, 0x00033b00,
|
||||
0x00000000, 0x0004ad00, 0x00025600, 0x00000000, 0xffffff00, 0x000001ff, 0x00003700, 0x00000000,
|
||||
0x00000200, 0x00036400, 0x00000000, 0x0004b600, 0x00025600, 0x00000000, 0xffffff00, 0x000001ff,
|
||||
0x00003700, 0x00000000, 0x00000200, 0x00039200, 0x00000000, 0x0004c000, 0x00025600, 0x00000000,
|
||||
0xffffff00, 0x000001ff, 0x00003700, 0x00000000, 0x00000200, 0x0003bc00, 0x00000000, 0x0004c900,
|
||||
0x00025600, 0x00000000, 0xffffff00, 0x000001ff, 0x00003700, 0x00000000, 0x00000200, 0x0003ea00,
|
||||
0x00000000, 0x0004d300, 0x00025600, 0x00000000, 0xffffff00, 0x000001ff, 0x00003700, 0x00000000,
|
||||
0x00000200, 0x00041600, 0x00000000, 0x0004dc00, 0x00025600, 0x00000000, 0xffffff00, 0x000001ff,
|
||||
0x00003700, 0x00000000, 0x00000200, 0x00044900, 0x00000000, 0x0004e600, 0x00025600, 0x00000000,
|
||||
0xffffff00, 0x000001ff, 0x00003700, 0x00000000, 0x00000200, 0x00047600, 0x00000000, 0x0004ef00,
|
||||
0x00025600, 0x00000000, 0xffffff00, 0x000001ff, 0x00003700, 0x00000000, 0x00000200, 0x0004a100,
|
||||
0x00000000, 0x00051400, 0x0004f800, 0x00000000, 0xffffff00, 0x000000ff, 0x00053500, 0x00051900,
|
||||
0x00000000, 0xffffff00, 0x000000ff, 0x00055600, 0x00053a00, 0x00000000, 0xffffff00, 0x000000ff,
|
||||
0x00057800, 0x00055c00, 0x00000000, 0xffffff00, 0x000000ff, 0x00059900, 0x00057d00, 0x00000000,
|
||||
0xffffff00, 0x000000ff, 0x0005bb00, 0x00059f00, 0x00000000, 0xffffff00, 0x000000ff, 0x0005df00,
|
||||
0x0005c300, 0x00000000, 0xffffff00, 0x000000ff, 0x00060400, 0x0005e800, 0x00000000, 0xffffff00,
|
||||
0x000000ff, 0x00062500, 0x00060900, 0x00000000, 0xffffff00, 0x000000ff, 0x00062a00, 0x00025600,
|
||||
0x00000000, 0xffffff00, 0x000001ff, 0x00003700, 0x00000000, 0x00000300, 0x00063300, 0x00000000,
|
||||
0x00063b00, 0x00025600, 0x00000000, 0xffffff00, 0x000001ff, 0x00003700, 0x00000000, 0x00000300,
|
||||
0x00064400, 0x00000000, 0x00064c00, 0x00025600, 0x00000000, 0xffffff00, 0x000001ff, 0x00003700,
|
||||
0x00000000, 0x00000300, 0x00065500, 0x00000000, 0x00065d00, 0x00025600, 0x00000000, 0xffffff00,
|
||||
0x000001ff, 0x00003700, 0x00000000, 0x00000300, 0x00066700, 0x00000000, 0x00066f00, 0x00025600,
|
||||
0x00000000, 0xffffff00, 0x000001ff, 0x00003700, 0x00000000, 0x00000300, 0x00067900, 0x00000000,
|
||||
0x00068100, 0x00025600, 0x00000000, 0xffffff00, 0x000001ff, 0x00003700, 0x00000000, 0x00000300,
|
||||
0x00068b00, 0x00000000, 0x00069300, 0x00025600, 0x00000000, 0xffffff00, 0x000001ff, 0x00003700,
|
||||
0x00000000, 0x00000300, 0x00069d00, 0x00000000, 0x0006a500, 0x00025600, 0x00000000, 0xffffff00,
|
||||
0x000001ff, 0x00003700, 0x00000000, 0x00000300, 0x0006af00, 0x00000000, 0x0006b700, 0x00025600,
|
||||
0x00000000, 0xffffff00, 0x000001ff, 0x00003700, 0x00000000, 0x00000300, 0x0006c100, 0x00000000,
|
||||
0x0006c900, 0x00000100, 0x00000000, 0x0006cf00, 0x00000600, 0x00000000, 0x00000a00, 0x00000000,
|
||||
0x00000100, 0x0006d500, 0x00000b00, 0x00000000, 0x00000100, 0x0006f900, 0x00000200, 0x00000000,
|
||||
0x00000200, 0x0001b900, 0x00000900, 0x00000000, 0x00000100, 0x00070500, 0x00000100, 0x00000000,
|
||||
0x00000200, 0x0000e100, 0x00000000, 0x00000000, 0x00000200, 0x00003000, 0x00000000,
|
||||
};
|
||||
|
||||
static void test_effect_state_groups(void)
|
||||
|
@ -4296,7 +4347,7 @@ static void test_effect_state_groups(void)
|
|||
effect_desc.ConstantBuffers);
|
||||
ok(effect_desc.SharedConstantBuffers == 0, "Unexpected shared constant buffers count %u.\n",
|
||||
effect_desc.SharedConstantBuffers);
|
||||
ok(effect_desc.GlobalVariables == 22, "Unexpected global variables count %u.\n",
|
||||
ok(effect_desc.GlobalVariables == 40, "Unexpected global variables count %u.\n",
|
||||
effect_desc.GlobalVariables);
|
||||
ok(effect_desc.SharedGlobalVariables == 0, "Unexpected shared global variables count %u.\n",
|
||||
effect_desc.SharedGlobalVariables);
|
||||
|
|
Loading…
Reference in New Issue