vkd3d-shader/hlsl: Support resource arrays when writting SM4.

The new fixmes can be triggered in presence of object components within
structs (for SM5).

In shaders such as this one:

    struct apple
    {
        Texture2D tex : TEX;
        float4 color : COLOR;
    };

    float4 main(struct apple input) : sv_target
    {
        return input.tex.Load(int3(1, 2, 3));
    }

Or this one:

    struct
    {
        Texture2D tex;
        float4 color;
    } s;

    float4 main() : sv_target
    {
        return s.tex.Load(int3(1, 2, 3));
    }
This commit is contained in:
Francisco Casas
2023-04-25 14:03:50 -04:00
committed by Alexandre Julliard
parent a91e6d4563
commit ef7cf9b1ad
Notes: Alexandre Julliard 2023-05-08 22:34:16 +02:00
Approved-by: Giovanni Mascellani (@giomasce)
Approved-by: Zebediah Figura (@zfigura)
Approved-by: Henri Verbeet (@hverbeet)
Approved-by: Alexandre Julliard (@julliard)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/159
4 changed files with 89 additions and 58 deletions

View File

@ -92,7 +92,7 @@ size (1, 1)
size (1, 1)
3.0 3.0 3.0 1.0
[pixel shader todo]
[pixel shader]
Texture2D tex[3];
struct foo {
@ -111,8 +111,8 @@ float4 main() : sv_target
}
[test]
todo draw quad
todo probe all rgba (312, 312, 312, 111)
draw quad
probe all rgba (312, 312, 312, 111)
[pixel shader]