[PATCH 3/5] d3dcompiler: Unconditionally report special (pixel shader output) sysvals based on the semantic name.

Matteo Bruni matteo.mystral at gmail.com
Tue Sep 1 09:52:00 CDT 2020


On Thu, Aug 13, 2020 at 2:34 AM Zebediah Figura <z.figura12 at gmail.com> wrote:
>
> That is, do not check that the shader is a pixel shader and that the signature
> is an output signature. These semantic names can only be generated in such
> conditions; using the name for any other stage is invalid.
>
> The motivation for this patch is that the correct sysval should be reported
> even if the RDEF chunk is missing. Accordingly I have replaced each test
> shader with a stripped version.
>
> Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
> ---
> diff --git a/dlls/d3dcompiler_43/tests/reflection.c b/dlls/d3dcompiler_43/tests/reflection.c
> index 617003a97b7..b51a0a20f4d 100644
> --- a/dlls/d3dcompiler_43/tests/reflection.c
> +++ b/dlls/d3dcompiler_43/tests/reflection.c
> @@ -794,9 +794,6 @@ static void test_reflection_desc_ps(void)
>      ok(count == 0, "Release failed %u\n", count);
>  }
>
> -/*
> - * fxc.exe /E PS /Tps_5_0 /Fx
> - */
>  #if 0
>  float4 PS() : SV_Target3
>  {
> @@ -804,25 +801,16 @@ float4 PS() : SV_Target3
>      return a;
>  }
>  #endif
> -static const DWORD test_reflection_desc_ps_output_blob_0[] = {
> -0x43425844, 0x3e7b77e6, 0xe4e920b7, 0x9cad0533, 0x240117cc, 0x00000001, 0x0000018c, 0x00000005,
> -0x00000034, 0x0000008c, 0x0000009c, 0x000000d0, 0x00000110, 0x46454452, 0x00000050, 0x00000000,
> -0x00000000, 0x00000000, 0x0000001c, 0xffff0400, 0x00000100, 0x0000001c, 0x7263694d, 0x666f736f,
> -0x52282074, 0x4c482029, 0x53204c53, 0x65646168, 0x6f432072, 0x6c69706d, 0x39207265, 0x2e39322e,
> -0x2e323539, 0x31313133, 0xababab00, 0x4e475349, 0x00000008, 0x00000000, 0x00000008, 0x4e47534f,
> -0x0000002c, 0x00000001, 0x00000008, 0x00000020, 0x00000003, 0x00000000, 0x00000003, 0x00000003,
> -0x0000000f, 0x545f5653, 0x65677261, 0xabab0074, 0x52444853, 0x00000038, 0x00000040, 0x0000000e,
> -0x03000065, 0x001020f2, 0x00000003, 0x08000036, 0x001020f2, 0x00000003, 0x00004002, 0x3f99999a,
> -0x3f800000, 0x3e4ccccd, 0x00000000, 0x0100003e, 0x54415453, 0x00000074, 0x00000002, 0x00000000,
> -0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000,
> -0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
> -0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
> -0x00000000, 0x00000000, 0x00000000
> +static const DWORD test_reflection_desc_ps_output_blob_0[] =
> +{
> +    0x43425844, 0xc3773602, 0x04f86bdc, 0x715f33b2, 0x9c063cae, 0x00000001, 0x000000b4, 0x00000003,
> +    0x0000002c, 0x0000003c, 0x00000070, 0x4e475349, 0x00000008, 0x00000000, 0x00000008, 0x4e47534f,
> +    0x0000002c, 0x00000001, 0x00000008, 0x00000020, 0x00000003, 0x00000000, 0x00000003, 0x00000003,
> +    0x0000000f, 0x545f5653, 0x65677261, 0xabab0074, 0x58454853, 0x0000003c, 0x00000050, 0x0000000f,
> +    0x0100086a, 0x03000065, 0x001020f2, 0x00000003, 0x08000036, 0x001020f2, 0x00000003, 0x00004002,
> +    0x3f99999a, 0x3f800000, 0x3e4ccccd, 0x00000000, 0x0100003e,
>  };

I guess the "fxc command line" comments aren't very significant. Fine
with me to get rid of those in general.
I think it would be nice to mention that these particular shaders are
stripped, though. It doesn't need to be anything crazy, simply
bringing some of the commit message into a comment around here would
be more than enough.



More information about the wine-devel mailing list