On Fri, 30 Apr 2021 at 20:34, Zebediah Figura (she/her) zfigura@codeweavers.com wrote:
On 4/30/21 12:00 PM, Henri Verbeet wrote:
On Fri, 30 Apr 2021 at 18:09, Zebediah Figura z.figura12@gmail.com wrote:
+static void test_multisample_draw(const D3D_FEATURE_LEVEL feature_level) +{
- static const D3D11_INPUT_ELEMENT_DESC layout_desc[] =
- {
{"POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0},
- };
- static const DWORD vs_code[] =
- {
+#if 0
float4 main(float4 position : POSITION) : SV_POSITION
{
return position;
}
+#endif
0x43425844, 0x06bbe9c8, 0x927aedde, 0xb3c454df, 0xd739785a, 0x00000001, 0x00000140, 0x00000004,
0x00000030, 0x00000094, 0x000000d8, 0x0000010c, 0x396e6f41, 0x0000005c, 0x0000005c, 0xfffe0200,
0x00000034, 0x00000028, 0x00240000, 0x00240000, 0x00240000, 0x00240000, 0x00240001, 0x00000000,
0xfffe0200, 0x0200001f, 0x80000005, 0x900f0000, 0x04000004, 0xc0030000, 0x90ff0000, 0xa0e40000,
0x90e40000, 0x02000001, 0xc00c0000, 0x90e40000, 0x0000ffff, 0x52444853, 0x0000003c, 0x00010040,
0x0000000f, 0x0300005f, 0x001010f2, 0x00000000, 0x04000067, 0x001020f2, 0x00000000, 0x00000001,
0x05000036, 0x001020f2, 0x00000000, 0x00101e46, 0x00000000, 0x0100003e, 0x4e475349, 0x0000002c,
0x00000001, 0x00000008, 0x00000020, 0x00000000, 0x00000000, 0x00000003, 0x00000000, 0x00000f0f,
0x49534f50, 0x4e4f4954, 0xababab00, 0x4e47534f, 0x0000002c, 0x00000001, 0x00000008, 0x00000020,
0x00000000, 0x00000001, 0x00000003, 0x00000000, 0x0000000f, 0x505f5653, 0x5449534f, 0x004e4f49,
- };
- static const DWORD ps_code[] =
- {
+#if 0
float4 main() : sv_target
{
return float4(1.0, 1.0, 1.0, 1.0);
}
+#endif
0x43425844, 0xe8ed6039, 0xd42f2bf4, 0x38efe2fd, 0x9dc3406f, 0x00000001, 0x00000118, 0x00000004,
0x00000030, 0x00000094, 0x000000d4, 0x000000e4, 0x396e6f41, 0x0000005c, 0x0000005c, 0xffff0200,
0x00000038, 0x00000024, 0x00240000, 0x00240000, 0x00240000, 0x00240000, 0x00240000, 0xffff0200,
0x05000051, 0xa00f0000, 0x3f800000, 0x00000000, 0x00000000, 0x00000000, 0x02000001, 0x800f0000,
0xa0000000, 0x02000001, 0x800f0800, 0x80e40000, 0x0000ffff, 0x52444853, 0x00000038, 0x00000040,
0x0000000e, 0x03000065, 0x001020f2, 0x00000000, 0x08000036, 0x001020f2, 0x00000000, 0x00004002,
0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000, 0x0100003e, 0x4e475349, 0x00000008, 0x00000000,
0x00000008, 0x4e47534f, 0x0000002c, 0x00000001, 0x00000008, 0x00000020, 0x00000000, 0x00000000,
0x00000003, 0x00000000, 0x0000000f, 0x745f7673, 0x65677261, 0xabab0074,
- };
- static const struct vec3 tri[] =
- {
{ 0.9f, -0.5f, 0.0f},
{-0.8f, -0.9f, 0.0f},
{ 0.2f, 0.7f, 0.0f},
- };
Would it be possible to use draw_color_quad() in this test, perhaps in a similar way to e.g. test_stencil_separate() and test_face_culling()?
It's not a great fit, especially given the line tests, but also the different set and number of vertices. Of course it's unfortunate to duplicate the vertex shader, but it doesn't strike me as better to modify draw_color_quad().
Yes, but that's in part because of the way the test is currently written. I don't think there's an inherent reason you couldn't test the same functionality using a quad instead of a triangle. The different vertex positions aren't an issue; draw_quad_vs_() wiil create a default vertex buffer if one wasn't previously created, but it will also happily use an existing one if it exists. We use that in test_stencil_separate() and test_face_culling() mentioned above, among other tests. The line test should work fine as-is after a draw_color_quad() call, although it's true that it's perhaps not great to implicitly depend on state set by draw_color_quad().
Broadly, I'd like us to cut down on the boilerplate a bit, and move more towards the vkd3d/piglit shader runner model for tests like these, even if simply using equivalent function calls instead of .shader_test files. I was going to sign off on this regardless, but unfortunately it also fails here on Wine with the Vulkan renderer (Intel SKL):
d3d11.c:32732: Test succeeded inside todo block: Got unexpected color 0xffbfbfbf at (337, 407). d3d11.c:32732: Test succeeded inside todo block: Got unexpected color 0xff808080 at (338, 407). d3d11.c:32732: Test succeeded inside todo block: Got unexpected color 0xff404040 at (339, 407). d3d11.c:32732: Test succeeded inside todo block: Got unexpected color 0xff404040 at (340, 407). d3d11.c:32746: Test failed: Got unexpected color 0xff404040 at (333, 407). d3d11.c:32746: Test succeeded inside todo block: Got unexpected color 0xff404040 at (334, 407). d3d11.c:32746: Test succeeded inside todo block: Got unexpected color 0xffbfbfbf at (336, 407). d3d11.c:32746: Test succeeded inside todo block: Got unexpected color 0xffbfbfbf at (337, 407). d3d11.c:32746: Test succeeded inside todo block: Got unexpected color 0xffbfbfbf at (340, 407). d3d11.c:32746: Test succeeded inside todo block: Got unexpected color 0xff404040 at (342, 407). d3d11.c:32746: Test succeeded inside todo block: Got unexpected color 0xff404040 at (343, 407). d3d11.c:32732: Test succeeded inside todo block: Got unexpected color 0xffbfbfbf at (337, 407). d3d11.c:32732: Test succeeded inside todo block: Got unexpected color 0xff808080 at (338, 407). d3d11.c:32732: Test succeeded inside todo block: Got unexpected color 0xff404040 at (339, 407). d3d11.c:32732: Test succeeded inside todo block: Got unexpected color 0xff404040 at (340, 407). d3d11.c:32746: Test failed: Got unexpected color 0xff404040 at (333, 407). d3d11.c:32746: Test succeeded inside todo block: Got unexpected color 0xff404040 at (334, 407). d3d11.c:32746: Test succeeded inside todo block: Got unexpected color 0xffbfbfbf at (336, 407). d3d11.c:32746: Test succeeded inside todo block: Got unexpected color 0xffbfbfbf at (337, 407). d3d11.c:32746: Test succeeded inside todo block: Got unexpected color 0xffbfbfbf at (340, 407). d3d11.c:32746: Test succeeded inside todo block: Got unexpected color 0xff404040 at (342, 407). d3d11.c:32746: Test succeeded inside todo block: Got unexpected color 0xff404040 at (343, 407). d3d11.c:32732: Test succeeded inside todo block: Got unexpected color 0xffbfbfbf at (337, 407). d3d11.c:32732: Test succeeded inside todo block: Got unexpected color 0xff808080 at (338, 407). d3d11.c:32732: Test succeeded inside todo block: Got unexpected color 0xff404040 at (339, 407). d3d11.c:32732: Test succeeded inside todo block: Got unexpected color 0xff404040 at (340, 407). d3d11.c:32746: Test failed: Got unexpected color 0xff404040 at (333, 407). d3d11.c:32746: Test succeeded inside todo block: Got unexpected color 0xff404040 at (334, 407). d3d11.c:32746: Test succeeded inside todo block: Got unexpected color 0xffbfbfbf at (336, 407). d3d11.c:32746: Test succeeded inside todo block: Got unexpected color 0xffbfbfbf at (337, 407). d3d11.c:32746: Test succeeded inside todo block: Got unexpected color 0xffbfbfbf at (340, 407). d3d11.c:32746: Test succeeded inside todo block: Got unexpected color 0xff404040 at (342, 407). d3d11.c:32746: Test succeeded inside todo block: Got unexpected color 0xff404040 at (343, 407). d3d11.c:32732: Test succeeded inside todo block: Got unexpected color 0xffbfbfbf at (337, 407). d3d11.c:32732: Test succeeded inside todo block: Got unexpected color 0xff808080 at (338, 407). d3d11.c:32732: Test succeeded inside todo block: Got unexpected color 0xff404040 at (339, 407). d3d11.c:32732: Test succeeded inside todo block: Got unexpected color 0xff404040 at (340, 407). d3d11.c:32746: Test failed: Got unexpected color 0xff404040 at (333, 407). d3d11.c:32746: Test succeeded inside todo block: Got unexpected color 0xff404040 at (334, 407). d3d11.c:32746: Test succeeded inside todo block: Got unexpected color 0xffbfbfbf at (336, 407). d3d11.c:32746: Test succeeded inside todo block: Got unexpected color 0xffbfbfbf at (337, 407). d3d11.c:32746: Test succeeded inside todo block: Got unexpected color 0xffbfbfbf at (340, 407). d3d11.c:32746: Test succeeded inside todo block: Got unexpected color 0xff404040 at (342, 407). d3d11.c:32732: Test succeeded inside todo block: Got unexpected color 0xffbfbfbf at (337, 407). d3d11.c:32732: Test succeeded inside todo block: Got unexpected color 0xff808080 at (338, 407). d3d11.c:32732: Test succeeded inside todo block: Got unexpected color 0xff404040 at (339, 407). d3d11.c:32746: Test succeeded inside todo block: Got unexpected color 0xff404040 at (343, 407). d3d11.c:32732: Test succeeded inside todo block: Got unexpected color 0xff404040 at (340, 407). d3d11.c:32746: Test failed: Got unexpected color 0xff404040 at (333, 407). d3d11.c:32746: Test succeeded inside todo block: Got unexpected color 0xff404040 at (334, 407). d3d11.c:32746: Test succeeded inside todo block: Got unexpected color 0xffbfbfbf at (336, 407). d3d11.c:32746: Test succeeded inside todo block: Got unexpected color 0xffbfbfbf at (337, 407). d3d11.c:32746: Test succeeded inside todo block: Got unexpected color 0xffbfbfbf at (340, 407). d3d11.c:32746: Test succeeded inside todo block: Got unexpected color 0xff404040 at (342, 407). d3d11.c:32732: Test succeeded inside todo block: Got unexpected color 0xffbfbfbf at (337, 407). d3d11.c:32746: Test succeeded inside todo block: Got unexpected color 0xff404040 at (343, 407). d3d11.c:32732: Test succeeded inside todo block: Got unexpected color 0xff808080 at (338, 407). d3d11.c:32732: Test succeeded inside todo block: Got unexpected color 0xff404040 at (339, 407). d3d11.c:32732: Test succeeded inside todo block: Got unexpected color 0xff404040 at (340, 407). d3d11.c:32746: Test failed: Got unexpected color 0xff404040 at (333, 407). d3d11.c:32746: Test succeeded inside todo block: Got unexpected color 0xff404040 at (334, 407). d3d11.c:32746: Test succeeded inside todo block: Got unexpected color 0xffbfbfbf at (336, 407). d3d11.c:32732: Test succeeded inside todo block: Got unexpected color 0xffbfbfbf at (337, 407). d3d11.c:32732: Test succeeded inside todo block: Got unexpected color 0xff808080 at (338, 407). d3d11.c:32732: Test succeeded inside todo block: Got unexpected color 0xff404040 at (339, 407). d3d11.c:32746: Test succeeded inside todo block: Got unexpected color 0xffbfbfbf at (337, 407). d3d11.c:32732: Test succeeded inside todo block: Got unexpected color 0xff404040 at (340, 407). d3d11.c:32746: Test succeeded inside todo block: Got unexpected color 0xffbfbfbf at (340, 407). d3d11.c:32746: Test succeeded inside todo block: Got unexpected color 0xff404040 at (342, 407). d3d11.c:32746: Test succeeded inside todo block: Got unexpected color 0xff404040 at (343, 407). d3d11.c:32746: Test failed: Got unexpected color 0xff404040 at (333, 407). d3d11.c:32746: Test succeeded inside todo block: Got unexpected color 0xff404040 at (334, 407). d3d11.c:32746: Test succeeded inside todo block: Got unexpected color 0xffbfbfbf at (336, 407). d3d11.c:32746: Test succeeded inside todo block: Got unexpected color 0xffbfbfbf at (337, 407). d3d11.c:32746: Test succeeded inside todo block: Got unexpected color 0xffbfbfbf at (340, 407). d3d11.c:32746: Test succeeded inside todo block: Got unexpected color 0xff404040 at (342, 407). d3d11.c:32746: Test succeeded inside todo block: Got unexpected color 0xff404040 at (343, 407).