[PATCH v2 5/7] d3d11/tests: Test drawing to a multisampled texture.

Henri Verbeet hverbeet at gmail.com
Mon May 3 11:00:56 CDT 2021


On Fri, 30 Apr 2021 at 20:34, Zebediah Figura (she/her)
<zfigura at 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 at 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).



More information about the wine-devel mailing list