d3d10/effect: Fix d3d object creation for arrays of state objects.

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:
Nikolay Sivov 2021-09-09 08:57:40 +03:00 committed by Alexandre Julliard
parent 0fe9cba341
commit a57fd101b8
2 changed files with 66 additions and 54 deletions

View File

@ -2233,7 +2233,7 @@ static HRESULT parse_fx10_local_variable(const char *data, size_t data_size,
return E_FAIL;
}
if (FAILED(hr = create_state_object(v)))
if (FAILED(hr = create_state_object(var)))
return hr;
}
}

View File

@ -1267,13 +1267,17 @@ TextureCube tq;
GeometryShader gs[2];
PixelShader ps;
VertexShader vs[1];
BlendState blend2[2];
DepthStencilState depthstencil2[2];
RasterizerState rast2[2];
SamplerState sam2[2];
#endif
static DWORD fx_test_evtc[] =
{
0x43425844, 0x16ff7a62, 0x6eb690dc, 0x60dd5ba4, 0x903b0ce7, 0x00000001, 0x00000668, 0x00000001,
0x00000024, 0x30315846, 0x0000063c, 0xfeff1001, 0x00000001, 0x00000004, 0x00000011, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x000003dc, 0x00000000, 0x00000008, 0x00000001, 0x00000001,
0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000004, 0x00000000, 0x00000000, 0x53006263,
0x43425844, 0x2f42ba4c, 0x2e600cca, 0x3cf98c90, 0xab9f5124, 0x00000001, 0x00000768, 0x00000001,
0x00000024, 0x30315846, 0x0000073c, 0xfeff1001, 0x00000001, 0x00000004, 0x00000015, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x0000046c, 0x00000000, 0x00000008, 0x00000003, 0x00000003,
0x00000003, 0x00000003, 0x00000001, 0x00000001, 0x00000004, 0x00000000, 0x00000000, 0x53006263,
0x6e697274, 0x00070067, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00010000,
0x00730000, 0x49525453, 0x7300474e, 0x6c660032, 0x0074616f, 0x00000036, 0x00000001, 0x00000000,
0x00000004, 0x00000010, 0x00000004, 0x00000909, 0x6e690066, 0x5a003274, 0x01000000, 0x00000000,
@ -1304,23 +1308,31 @@ static DWORD fx_test_evtc[] =
0x00020000, 0x00020000, 0x00000000, 0x00000000, 0x00000000, 0x00070000, 0x73670000, 0x78695000,
0x68536c65, 0x72656461, 0x00038500, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000500, 0x00737000, 0x74726556, 0x68537865, 0x72656461, 0x0003b000, 0x00000200, 0x00000100,
0x00000000, 0x00000000, 0x00000000, 0x00000600, 0x00737600, 0x00000004, 0x00000060, 0x00000000,
0x00000004, 0xffffffff, 0x00000002, 0x0000002a, 0x0000000e, 0x0000002c, 0x00000033, 0x0000000e,
0x0000002c, 0x00000058, 0x0000003c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x0000007b, 0x0000005f, 0x00000000, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0x000000a1,
0x00000085, 0x00000000, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x000000c7, 0x000000ab,
0x00000000, 0x00000040, 0x00000000, 0x00000000, 0x00000000, 0x000000f0, 0x000000d4, 0x00000000,
0xffffffff, 0x00000000, 0x00000000, 0x00000124, 0x00000108, 0x00000000, 0xffffffff, 0x00000000,
0x00000000, 0x0000015d, 0x00000141, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x0000018b,
0x0000016f, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x000001bc, 0x000001a0, 0x00000000,
0xffffffff, 0x00000000, 0x000001ed, 0x000001d1, 0x00000000, 0xffffffff, 0x00000000, 0x00000217,
0x000001fb, 0x00000000, 0xffffffff, 0x00000000, 0x00000245, 0x00000229, 0x00000000, 0xffffffff,
0x00000000, 0x0000026f, 0x00000253, 0x00000000, 0xffffffff, 0x00000000, 0x0000029a, 0x0000027e,
0x00000000, 0xffffffff, 0x00000000, 0x000002cb, 0x000002af, 0x00000000, 0xffffffff, 0x00000000,
0x000002fc, 0x000002e0, 0x00000000, 0xffffffff, 0x00000000, 0x00000329, 0x0000030d, 0x00000000,
0xffffffff, 0x00000000, 0x00000354, 0x00000338, 0x00000000, 0xffffffff, 0x00000000, 0x00000382,
0x00000366, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x000003ad, 0x00000391,
0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x000003d9, 0x000003bd, 0x00000000, 0xffffffff,
0x00000000, 0x00000000, 0x00000000, 0x00000600, 0x00737600, 0x000000c9, 0x00000002, 0x00000002,
0x00000000, 0x00000000, 0x00000000, 0x00000002, 0x6e656c62, 0xf6003264, 0x02000000, 0x02000000,
0x00000000, 0x00000000, 0x00000000, 0x03000000, 0x64000000, 0x68747065, 0x6e657473, 0x326c6963,
0x00013100, 0x00000200, 0x00000200, 0x00000000, 0x00000000, 0x00000000, 0x00000400, 0x73617200,
0x62003274, 0x02000001, 0x02000000, 0x00000000, 0x00000000, 0x00000000, 0x15000000, 0x73000000,
0x00326d61, 0x00000004, 0x00000060, 0x00000000, 0x00000004, 0xffffffff, 0x00000002, 0x0000002a,
0x0000000e, 0x0000002c, 0x00000033, 0x0000000e, 0x0000002c, 0x00000058, 0x0000003c, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000007b, 0x0000005f, 0x00000000, 0x00000004,
0x00000000, 0x00000000, 0x00000000, 0x000000a1, 0x00000085, 0x00000000, 0x00000010, 0x00000000,
0x00000000, 0x00000000, 0x000000c7, 0x000000ab, 0x00000000, 0x00000040, 0x00000000, 0x00000000,
0x00000000, 0x000000f0, 0x000000d4, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000124,
0x00000108, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x0000015d, 0x00000141, 0x00000000,
0xffffffff, 0x00000000, 0x00000000, 0x0000018b, 0x0000016f, 0x00000000, 0xffffffff, 0x00000000,
0x00000000, 0x000001bc, 0x000001a0, 0x00000000, 0xffffffff, 0x00000000, 0x000001ed, 0x000001d1,
0x00000000, 0xffffffff, 0x00000000, 0x00000217, 0x000001fb, 0x00000000, 0xffffffff, 0x00000000,
0x00000245, 0x00000229, 0x00000000, 0xffffffff, 0x00000000, 0x0000026f, 0x00000253, 0x00000000,
0xffffffff, 0x00000000, 0x0000029a, 0x0000027e, 0x00000000, 0xffffffff, 0x00000000, 0x000002cb,
0x000002af, 0x00000000, 0xffffffff, 0x00000000, 0x000002fc, 0x000002e0, 0x00000000, 0xffffffff,
0x00000000, 0x00000329, 0x0000030d, 0x00000000, 0xffffffff, 0x00000000, 0x00000354, 0x00000338,
0x00000000, 0xffffffff, 0x00000000, 0x00000382, 0x00000366, 0x00000000, 0xffffffff, 0x00000000,
0x00000000, 0x00000000, 0x000003ad, 0x00000391, 0x00000000, 0xffffffff, 0x00000000, 0x00000000,
0x000003d9, 0x000003bd, 0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x000003f8, 0x000003dc,
0x00000000, 0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x0000041b, 0x000003ff, 0x00000000,
0xffffffff, 0x00000000, 0x00000000, 0x00000000, 0x00000445, 0x00000429, 0x00000000, 0xffffffff,
0x00000000, 0x00000000, 0x00000000, 0x00000467, 0x0000044b, 0x00000000, 0xffffffff, 0x00000000,
0x00000000, 0x00000000,
};
@ -1445,7 +1457,7 @@ static void test_effect_variable_type_class(void)
effect_desc.ConstantBuffers);
ok(effect_desc.SharedConstantBuffers == 0, "Unexpected shared constant buffers count %u.\n",
effect_desc.SharedConstantBuffers);
ok(effect_desc.GlobalVariables == 21, "Unexpected global variables count %u.\n",
ok(effect_desc.GlobalVariables == 25, "Unexpected global variables count %u.\n",
effect_desc.GlobalVariables);
ok(effect_desc.SharedGlobalVariables == 0, "Unexpected shared global variables count %u.\n",
effect_desc.SharedGlobalVariables);