Signed-off-by: Zebediah Figura zfigura@codeweavers.com --- dlls/d3dcompiler_43/tests/hlsl.c | 39 ++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+)
diff --git a/dlls/d3dcompiler_43/tests/hlsl.c b/dlls/d3dcompiler_43/tests/hlsl.c index 5cb64253e88..97789d14297 100644 --- a/dlls/d3dcompiler_43/tests/hlsl.c +++ b/dlls/d3dcompiler_43/tests/hlsl.c @@ -569,6 +569,44 @@ static void test_trig(void) DestroyWindow(window); }
+static void test_comma(void) +{ + IDirect3DDevice9 *device; + ID3D10Blob *ps_code; + struct vec4 v; + HWND window; + + static const char ps_source[] = + "float4 main(float x: TEXCOORD0): COLOR\n" + "{\n" + " float4 ret;\n" + " return (ret = float4(0.1, 0.2, 0.3, 0.4)), ret + 0.5;\n" + "}"; + + window = create_window(); + ok(!!window, "Failed to create a window.\n"); + + if (!(device = create_d3d9_device(window))) + { + DestroyWindow(window); + return; + } + + todo_wine ps_code = compile_shader(ps_source, "ps_2_0"); + if (ps_code) + { + draw_quad(device, ps_code); + + v = get_readback_vec4_d3d9(device, 0, 0); + ok(compare_vec4(&v, 0.6f, 0.7f, 0.8f, 0.9f, 0), + "Got unexpected value {%.8e, %.8e, %.8e, %.8e}.\n", v.x, v.y, v.z, v.w); + + ID3D10Blob_Release(ps_code); + } + IDirect3DDevice9_Release(device); + DestroyWindow(window); +} + static void test_fail(void) { static const char *tests[] = @@ -1104,6 +1142,7 @@ START_TEST(hlsl) test_conditionals(); test_float_vectors(); test_trig(); + test_comma(); test_fail();
if (!(mod = LoadLibraryA("d3d11.dll")))