From: Nikolay Sivov nsivov@codeweavers.com
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/d3d10/effect.c | 15 +++ dlls/d3d10/tests/effect.c | 197 ++++++++++++++++++++++++-------------- 2 files changed, 139 insertions(+), 73 deletions(-)
diff --git a/dlls/d3d10/effect.c b/dlls/d3d10/effect.c index 342ad6bce53..3e61fa608f0 100644 --- a/dlls/d3d10/effect.c +++ b/dlls/d3d10/effect.c @@ -660,6 +660,20 @@ static void pres_and(float **args, unsigned int n, const struct preshader_instr } }
+static void pres_or(float **args, unsigned int n, const struct preshader_instr *instr) +{ + unsigned int *arg1 = (unsigned int *)args[0]; + unsigned int *arg2 = (unsigned int *)args[1]; + float *retval = args[2]; + unsigned int i; + + for (i = 0; i < instr->comp_count; ++i) + { + unsigned int v = arg1[0] | arg2[0]; + retval[i] = *(float *)&v; + } +} + static void pres_xor(float **args, unsigned int n, const struct preshader_instr *instr) { unsigned int *arg1 = (unsigned int *)args[0]; @@ -761,6 +775,7 @@ static const struct preshader_op_info preshader_ops[] = { 0x21f, "umin", pres_umin }, { 0x220, "umax", pres_umax }, { 0x230, "and", pres_and }, + { 0x231, "or", pres_or }, { 0x233, "xor", pres_xor }, { 0x301, "movc", pres_movc }, { 0x500, "dot", pres_dot }, diff --git a/dlls/d3d10/tests/effect.c b/dlls/d3d10/tests/effect.c index 75de5df2e0b..ceb0922dbc0 100644 --- a/dlls/d3d10/tests/effect.c +++ b/dlls/d3d10/tests/effect.c @@ -8328,13 +8328,17 @@ technique10 tech { SetBlendState( NULL, ~g_var3, 0 ); } + pass p34 + { + SetBlendState( NULL, g_var4 | g_var3, 0 ); + } } #endif static DWORD fx_test_value_expression[] = { - 0x43425844, 0x897b5956, 0x2370a252, 0x2f6531e1, 0x8be201ef, 0x00000001, 0x00004378, 0x00000001, - 0x00000024, 0x30315846, 0x0000434c, 0xfeff1001, 0x00000001, 0x00000004, 0x00000001, 0x00000000, - 0x00000000, 0x00000000, 0x00000001, 0x00003a4c, 0x00000000, 0x00000000, 0x00000001, 0x00000000, + 0x43425844, 0xedc09074, 0xd53294a2, 0x4c731a12, 0x3100c73e, 0x00000001, 0x00004518, 0x00000001, + 0x00000024, 0x30315846, 0x000044ec, 0xfeff1001, 0x00000001, 0x00000004, 0x00000001, 0x00000000, + 0x00000000, 0x00000000, 0x00000001, 0x00003bb0, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x6f6c4724, 0x736c6162, 0x6f6c6600, 0x00347461, 0x0000000d, 0x00000001, 0x00000000, 0x00000010, 0x00000010, 0x00000010, 0x0000210a, 0x61765f67, 0x5f670072, 0x32726176, 0x746e6900, 0x003d0034, 0x00010000, @@ -8802,76 +8806,89 @@ static DWORD fx_test_value_expression[] = 0x12100004, 0x00000001, 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000007, 0x00000000, 0x13000004, 0x00000001, 0x00000000, 0x00000007, 0x00000000, 0x00000000, 0x00000004, 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000001, 0x00000002, 0x00000000, 0x00000001, 0x00000002, - 0x00000000, 0x00000004, 0x00000040, 0x00000000, 0x00000004, 0xffffffff, 0x00000000, 0x00000030, - 0x00000014, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000036, 0x00000014, - 0x00000000, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x0000005e, 0x00000042, 0x00000000, - 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000087, 0x0000006b, 0x00000000, 0x00000030, - 0x00000000, 0x00000000, 0x00000000, 0x000000bc, 0x000000a0, 0x00000000, 0xffffffff, 0x00000001, - 0x00000019, 0x00000000, 0x00000006, 0x000000c5, 0x00000000, 0x000001b5, 0x00000022, 0x00000000, - 0x000001ba, 0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006, 0x000001bd, 0x0000000b, - 0x00000000, 0x00000001, 0x00000405, 0x00000002, 0x00000000, 0x00000001, 0x00000411, 0x0000041d, - 0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006, 0x00000420, 0x0000000b, 0x00000000, - 0x00000001, 0x00000574, 0x00000002, 0x00000000, 0x00000001, 0x00000580, 0x0000058c, 0x00000003, - 0x00000000, 0x0000000a, 0x00000000, 0x00000006, 0x0000058f, 0x0000000b, 0x00000000, 0x00000001, - 0x000007bf, 0x00000002, 0x00000000, 0x00000001, 0x000007cb, 0x000007d7, 0x00000003, 0x00000000, - 0x0000000a, 0x00000000, 0x00000006, 0x000007da, 0x0000000b, 0x00000000, 0x00000001, 0x00000902, - 0x00000002, 0x00000000, 0x00000001, 0x0000090e, 0x0000091a, 0x00000003, 0x00000000, 0x0000000a, - 0x00000000, 0x00000006, 0x0000091d, 0x0000000b, 0x00000000, 0x00000001, 0x00000a45, 0x00000002, - 0x00000000, 0x00000001, 0x00000a51, 0x00000a5d, 0x00000003, 0x00000000, 0x0000000a, 0x00000000, - 0x00000006, 0x00000a60, 0x0000000b, 0x00000000, 0x00000001, 0x00000b5c, 0x00000002, 0x00000000, - 0x00000001, 0x00000b68, 0x00000b74, 0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006, - 0x00000b77, 0x0000000b, 0x00000000, 0x00000001, 0x00000cc7, 0x00000002, 0x00000000, 0x00000001, - 0x00000cd3, 0x00000cdf, 0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006, 0x00000ce2, - 0x0000000b, 0x00000000, 0x00000001, 0x00000dd2, 0x00000002, 0x00000000, 0x00000001, 0x00000dde, - 0x00000dea, 0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006, 0x00000ded, 0x0000000b, - 0x00000000, 0x00000001, 0x00000fe9, 0x00000002, 0x00000000, 0x00000001, 0x00000ff5, 0x00001001, - 0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006, 0x00001004, 0x0000000b, 0x00000000, - 0x00000001, 0x00001180, 0x00000002, 0x00000000, 0x00000001, 0x0000118c, 0x00001198, 0x00000003, - 0x00000000, 0x0000000a, 0x00000000, 0x00000006, 0x0000119c, 0x0000000b, 0x00000000, 0x00000001, - 0x0000136c, 0x00000002, 0x00000000, 0x00000001, 0x00001378, 0x00001384, 0x00000003, 0x00000000, - 0x0000000a, 0x00000000, 0x00000006, 0x00001388, 0x0000000b, 0x00000000, 0x00000001, 0x00001504, - 0x00000002, 0x00000000, 0x00000001, 0x00001510, 0x0000151c, 0x00000003, 0x00000000, 0x0000000a, - 0x00000000, 0x00000006, 0x00001520, 0x0000000b, 0x00000000, 0x00000001, 0x0000169c, 0x00000002, - 0x00000000, 0x00000001, 0x000016a8, 0x000016b4, 0x00000003, 0x00000000, 0x0000000a, 0x00000000, - 0x00000006, 0x000016b8, 0x0000000b, 0x00000000, 0x00000001, 0x00001834, 0x00000002, 0x00000000, - 0x00000001, 0x00001840, 0x0000184c, 0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006, - 0x00001850, 0x0000000b, 0x00000000, 0x00000001, 0x000019cc, 0x00000002, 0x00000000, 0x00000001, - 0x000019d8, 0x000019e4, 0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006, 0x000019e8, - 0x0000000b, 0x00000000, 0x00000001, 0x00001b38, 0x00000002, 0x00000000, 0x00000001, 0x00001b44, - 0x00001b50, 0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006, 0x00001b54, 0x0000000b, - 0x00000000, 0x00000001, 0x00001ca4, 0x00000002, 0x00000000, 0x00000001, 0x00001cb0, 0x00001cbc, - 0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006, 0x00001cc0, 0x0000000b, 0x00000000, - 0x00000001, 0x00001e10, 0x00000002, 0x00000000, 0x00000001, 0x00001e1c, 0x00001e28, 0x00000003, - 0x00000000, 0x0000000a, 0x00000000, 0x00000006, 0x00001e2c, 0x0000000b, 0x00000000, 0x00000001, - 0x00001fac, 0x00000002, 0x00000000, 0x00000001, 0x00001fb8, 0x00001fc4, 0x00000003, 0x00000000, - 0x0000000a, 0x00000000, 0x00000006, 0x00001fc8, 0x0000000b, 0x00000000, 0x00000001, 0x0000229c, - 0x00000002, 0x00000000, 0x00000001, 0x000022a8, 0x000022b4, 0x00000003, 0x00000000, 0x0000000a, - 0x00000000, 0x00000006, 0x000022b8, 0x0000000b, 0x00000000, 0x00000001, 0x0000259c, 0x00000002, - 0x00000000, 0x00000001, 0x000025a8, 0x000025b4, 0x00000003, 0x00000000, 0x0000000a, 0x00000000, - 0x00000006, 0x000025b8, 0x0000000b, 0x00000000, 0x00000001, 0x00002808, 0x00000002, 0x00000000, - 0x00000001, 0x00002814, 0x00002820, 0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006, - 0x00002824, 0x0000000b, 0x00000000, 0x00000001, 0x00002914, 0x00000002, 0x00000000, 0x00000001, - 0x00002920, 0x0000292c, 0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006, 0x00002930, - 0x0000000b, 0x00000000, 0x00000001, 0x00002a20, 0x00000002, 0x00000000, 0x00000001, 0x00002a2c, - 0x00002a38, 0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006, 0x00002a3c, 0x0000000b, - 0x00000000, 0x00000001, 0x00002be4, 0x00000002, 0x00000000, 0x00000001, 0x00002bf0, 0x00002bfc, - 0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006, 0x00002c00, 0x0000000b, 0x00000000, - 0x00000001, 0x00002da8, 0x00000002, 0x00000000, 0x00000001, 0x00002db4, 0x00002dc0, 0x00000003, - 0x00000000, 0x0000000a, 0x00000000, 0x00000006, 0x00002dc4, 0x0000000b, 0x00000000, 0x00000001, - 0x00002fb4, 0x00000002, 0x00000000, 0x00000001, 0x00002fc0, 0x00002fcc, 0x00000003, 0x00000000, - 0x0000000a, 0x00000000, 0x00000006, 0x00002fd0, 0x0000000b, 0x00000000, 0x00000001, 0x000031a8, - 0x00000002, 0x00000000, 0x00000001, 0x000031b4, 0x000031c0, 0x00000003, 0x00000000, 0x0000000a, - 0x00000000, 0x00000006, 0x000031c4, 0x0000000b, 0x00000000, 0x00000001, 0x00003340, 0x00000002, - 0x00000000, 0x00000001, 0x0000334c, 0x00003358, 0x00000003, 0x00000000, 0x0000000a, 0x00000000, - 0x00000006, 0x0000335c, 0x0000000b, 0x00000000, 0x00000001, 0x0000344c, 0x00000002, 0x00000000, - 0x00000001, 0x00003458, 0x00003464, 0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006, - 0x00003468, 0x0000000b, 0x00000000, 0x00000001, 0x000035b8, 0x00000002, 0x00000000, 0x00000001, - 0x000035c4, 0x000035d0, 0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006, 0x000035d4, - 0x0000000b, 0x00000000, 0x00000001, 0x00003760, 0x00000002, 0x00000000, 0x00000001, 0x0000376c, - 0x00003778, 0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006, 0x0000377c, 0x0000000b, - 0x00000000, 0x00000001, 0x00003908, 0x00000002, 0x00000000, 0x00000001, 0x00003914, 0x00003920, - 0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006, 0x00003924, 0x0000000b, 0x00000000, - 0x00000001, 0x00003a34, 0x00000002, 0x00000000, 0x00000001, 0x00003a40, + 0x00000000, 0x00343370, 0x00000144, 0x43425844, 0x74c24633, 0x7c8b5796, 0x94f5cf48, 0x026f6022, + 0x00000001, 0x00000144, 0x00000003, 0x0000002c, 0x000000d4, 0x000000e0, 0x42415443, 0x000000a0, + 0x0000001c, 0x00000077, 0x46580400, 0x00000002, 0x0000001c, 0x00000100, 0x00000074, 0x00000044, + 0x00000002, 0x00000001, 0x0000004c, 0x00000000, 0x0000005c, 0x00010002, 0x00000001, 0x00000064, + 0x00000000, 0x61765f67, 0xab003372, 0x00020001, 0x00040001, 0x00000001, 0x00000000, 0x61765f67, + 0xab003472, 0x00020001, 0x00040001, 0x00000001, 0x00000000, 0x4d007874, 0x6f726369, 0x74666f73, + 0x29522820, 0x534c4820, 0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x30312072, 0xab00312e, + 0x34494c43, 0x00000004, 0x00000000, 0x434c5846, 0x0000005c, 0x00000002, 0x23100004, 0x00000002, + 0x00000000, 0x00000002, 0x00000000, 0x00000000, 0x00000002, 0x00000004, 0x00000000, 0x00000007, + 0x00000000, 0x13100004, 0x00000001, 0x00000000, 0x00000007, 0x00000000, 0x00000000, 0x00000004, + 0x00000000, 0xf0f0f0f0, 0x0f0f0f0f, 0x0000ffff, 0x00000001, 0x00000002, 0x00000000, 0x00000001, + 0x00000002, 0x00000000, 0x00000004, 0x00000040, 0x00000000, 0x00000004, 0xffffffff, 0x00000000, + 0x00000030, 0x00000014, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000036, + 0x00000014, 0x00000000, 0x00000010, 0x00000000, 0x00000000, 0x00000000, 0x0000005e, 0x00000042, + 0x00000000, 0x00000020, 0x00000000, 0x00000000, 0x00000000, 0x00000087, 0x0000006b, 0x00000000, + 0x00000030, 0x00000000, 0x00000000, 0x00000000, 0x000000bc, 0x000000a0, 0x00000000, 0xffffffff, + 0x00000001, 0x00000019, 0x00000000, 0x00000006, 0x000000c5, 0x00000000, 0x000001b5, 0x00000023, + 0x00000000, 0x000001ba, 0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006, 0x000001bd, + 0x0000000b, 0x00000000, 0x00000001, 0x00000405, 0x00000002, 0x00000000, 0x00000001, 0x00000411, + 0x0000041d, 0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006, 0x00000420, 0x0000000b, + 0x00000000, 0x00000001, 0x00000574, 0x00000002, 0x00000000, 0x00000001, 0x00000580, 0x0000058c, + 0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006, 0x0000058f, 0x0000000b, 0x00000000, + 0x00000001, 0x000007bf, 0x00000002, 0x00000000, 0x00000001, 0x000007cb, 0x000007d7, 0x00000003, + 0x00000000, 0x0000000a, 0x00000000, 0x00000006, 0x000007da, 0x0000000b, 0x00000000, 0x00000001, + 0x00000902, 0x00000002, 0x00000000, 0x00000001, 0x0000090e, 0x0000091a, 0x00000003, 0x00000000, + 0x0000000a, 0x00000000, 0x00000006, 0x0000091d, 0x0000000b, 0x00000000, 0x00000001, 0x00000a45, + 0x00000002, 0x00000000, 0x00000001, 0x00000a51, 0x00000a5d, 0x00000003, 0x00000000, 0x0000000a, + 0x00000000, 0x00000006, 0x00000a60, 0x0000000b, 0x00000000, 0x00000001, 0x00000b5c, 0x00000002, + 0x00000000, 0x00000001, 0x00000b68, 0x00000b74, 0x00000003, 0x00000000, 0x0000000a, 0x00000000, + 0x00000006, 0x00000b77, 0x0000000b, 0x00000000, 0x00000001, 0x00000cc7, 0x00000002, 0x00000000, + 0x00000001, 0x00000cd3, 0x00000cdf, 0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006, + 0x00000ce2, 0x0000000b, 0x00000000, 0x00000001, 0x00000dd2, 0x00000002, 0x00000000, 0x00000001, + 0x00000dde, 0x00000dea, 0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006, 0x00000ded, + 0x0000000b, 0x00000000, 0x00000001, 0x00000fe9, 0x00000002, 0x00000000, 0x00000001, 0x00000ff5, + 0x00001001, 0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006, 0x00001004, 0x0000000b, + 0x00000000, 0x00000001, 0x00001180, 0x00000002, 0x00000000, 0x00000001, 0x0000118c, 0x00001198, + 0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006, 0x0000119c, 0x0000000b, 0x00000000, + 0x00000001, 0x0000136c, 0x00000002, 0x00000000, 0x00000001, 0x00001378, 0x00001384, 0x00000003, + 0x00000000, 0x0000000a, 0x00000000, 0x00000006, 0x00001388, 0x0000000b, 0x00000000, 0x00000001, + 0x00001504, 0x00000002, 0x00000000, 0x00000001, 0x00001510, 0x0000151c, 0x00000003, 0x00000000, + 0x0000000a, 0x00000000, 0x00000006, 0x00001520, 0x0000000b, 0x00000000, 0x00000001, 0x0000169c, + 0x00000002, 0x00000000, 0x00000001, 0x000016a8, 0x000016b4, 0x00000003, 0x00000000, 0x0000000a, + 0x00000000, 0x00000006, 0x000016b8, 0x0000000b, 0x00000000, 0x00000001, 0x00001834, 0x00000002, + 0x00000000, 0x00000001, 0x00001840, 0x0000184c, 0x00000003, 0x00000000, 0x0000000a, 0x00000000, + 0x00000006, 0x00001850, 0x0000000b, 0x00000000, 0x00000001, 0x000019cc, 0x00000002, 0x00000000, + 0x00000001, 0x000019d8, 0x000019e4, 0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006, + 0x000019e8, 0x0000000b, 0x00000000, 0x00000001, 0x00001b38, 0x00000002, 0x00000000, 0x00000001, + 0x00001b44, 0x00001b50, 0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006, 0x00001b54, + 0x0000000b, 0x00000000, 0x00000001, 0x00001ca4, 0x00000002, 0x00000000, 0x00000001, 0x00001cb0, + 0x00001cbc, 0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006, 0x00001cc0, 0x0000000b, + 0x00000000, 0x00000001, 0x00001e10, 0x00000002, 0x00000000, 0x00000001, 0x00001e1c, 0x00001e28, + 0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006, 0x00001e2c, 0x0000000b, 0x00000000, + 0x00000001, 0x00001fac, 0x00000002, 0x00000000, 0x00000001, 0x00001fb8, 0x00001fc4, 0x00000003, + 0x00000000, 0x0000000a, 0x00000000, 0x00000006, 0x00001fc8, 0x0000000b, 0x00000000, 0x00000001, + 0x0000229c, 0x00000002, 0x00000000, 0x00000001, 0x000022a8, 0x000022b4, 0x00000003, 0x00000000, + 0x0000000a, 0x00000000, 0x00000006, 0x000022b8, 0x0000000b, 0x00000000, 0x00000001, 0x0000259c, + 0x00000002, 0x00000000, 0x00000001, 0x000025a8, 0x000025b4, 0x00000003, 0x00000000, 0x0000000a, + 0x00000000, 0x00000006, 0x000025b8, 0x0000000b, 0x00000000, 0x00000001, 0x00002808, 0x00000002, + 0x00000000, 0x00000001, 0x00002814, 0x00002820, 0x00000003, 0x00000000, 0x0000000a, 0x00000000, + 0x00000006, 0x00002824, 0x0000000b, 0x00000000, 0x00000001, 0x00002914, 0x00000002, 0x00000000, + 0x00000001, 0x00002920, 0x0000292c, 0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006, + 0x00002930, 0x0000000b, 0x00000000, 0x00000001, 0x00002a20, 0x00000002, 0x00000000, 0x00000001, + 0x00002a2c, 0x00002a38, 0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006, 0x00002a3c, + 0x0000000b, 0x00000000, 0x00000001, 0x00002be4, 0x00000002, 0x00000000, 0x00000001, 0x00002bf0, + 0x00002bfc, 0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006, 0x00002c00, 0x0000000b, + 0x00000000, 0x00000001, 0x00002da8, 0x00000002, 0x00000000, 0x00000001, 0x00002db4, 0x00002dc0, + 0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006, 0x00002dc4, 0x0000000b, 0x00000000, + 0x00000001, 0x00002fb4, 0x00000002, 0x00000000, 0x00000001, 0x00002fc0, 0x00002fcc, 0x00000003, + 0x00000000, 0x0000000a, 0x00000000, 0x00000006, 0x00002fd0, 0x0000000b, 0x00000000, 0x00000001, + 0x000031a8, 0x00000002, 0x00000000, 0x00000001, 0x000031b4, 0x000031c0, 0x00000003, 0x00000000, + 0x0000000a, 0x00000000, 0x00000006, 0x000031c4, 0x0000000b, 0x00000000, 0x00000001, 0x00003340, + 0x00000002, 0x00000000, 0x00000001, 0x0000334c, 0x00003358, 0x00000003, 0x00000000, 0x0000000a, + 0x00000000, 0x00000006, 0x0000335c, 0x0000000b, 0x00000000, 0x00000001, 0x0000344c, 0x00000002, + 0x00000000, 0x00000001, 0x00003458, 0x00003464, 0x00000003, 0x00000000, 0x0000000a, 0x00000000, + 0x00000006, 0x00003468, 0x0000000b, 0x00000000, 0x00000001, 0x000035b8, 0x00000002, 0x00000000, + 0x00000001, 0x000035c4, 0x000035d0, 0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006, + 0x000035d4, 0x0000000b, 0x00000000, 0x00000001, 0x00003760, 0x00000002, 0x00000000, 0x00000001, + 0x0000376c, 0x00003778, 0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006, 0x0000377c, + 0x0000000b, 0x00000000, 0x00000001, 0x00003908, 0x00000002, 0x00000000, 0x00000001, 0x00003914, + 0x00003920, 0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006, 0x00003924, 0x0000000b, + 0x00000000, 0x00000001, 0x00003a34, 0x00000002, 0x00000000, 0x00000001, 0x00003a40, 0x00003a4c, + 0x00000003, 0x00000000, 0x0000000a, 0x00000000, 0x00000006, 0x00003a50, 0x0000000b, 0x00000000, + 0x00000001, 0x00003b98, 0x00000002, 0x00000000, 0x00000001, 0x00003ba4, };
static float get_frc(float v) @@ -9633,6 +9650,40 @@ static void test_effect_value_expression(void) ok(blend_factor[idx] == -2.0f, "Got unexpected blend_factor[%u] %.8e.\n", idx, blend_factor[idx]); ok(!sample_mask, "Got unexpected sample_mask %#x.\n", sample_mask);
+ /* bitwise 'or' */ + pass = t->lpVtbl->GetPassByName(t, "p34"); + ok(pass->lpVtbl->IsValid(pass), "Expected valid pass.\n"); + + set_int4(i, 1, 2, 3, 4); + hr = g_var3->lpVtbl->SetIntVector(g_var3, i); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + + set_int4(i, 0x10, 0x20, 0x30, 0x40); + hr = g_var4->lpVtbl->SetIntVector(g_var4, i); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + + hr = pass->lpVtbl->Apply(pass, 0); + ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr); + + ID3D10Device_OMGetBlendState(device, &blend_state, blend_factor, &sample_mask); + ok(!blend_state, "Unexpected blend state %p.\n", blend_state); + for (idx = 0; idx < ARRAY_SIZE(blend_factor); ++idx) + ok(blend_factor[idx] == 17.0f, "Got unexpected blend_factor[%u] %.8e.\n", idx, blend_factor[idx]); + ok(!sample_mask, "Got unexpected sample_mask %#x.\n", sample_mask); + + set_int4(i, 0x20, 0x10, 0x30, 0x40); + hr = g_var4->lpVtbl->SetIntVector(g_var4, i); + ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); + + hr = pass->lpVtbl->Apply(pass, 0); + ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr); + + ID3D10Device_OMGetBlendState(device, &blend_state, blend_factor, &sample_mask); + ok(!blend_state, "Unexpected blend state %p.\n", blend_state); + for (idx = 0; idx < ARRAY_SIZE(blend_factor); ++idx) + ok(blend_factor[idx] == 33.0f, "Got unexpected blend_factor[%u] %.8e.\n", idx, blend_factor[idx]); + ok(!sample_mask, "Got unexpected sample_mask %#x.\n", sample_mask); + effect->lpVtbl->Release(effect);
refcount = ID3D10Device_Release(device);