vkd3d-shader/hlsl: Emit fixme on non-direct resource stores.

Co-authored-by: Giovanni Mascellani <gmascellani@codeweavers.com>

These may happen when storing to structured buffers, and we are not
handling them properly yet. The included test reaches unreacheable code
before this patch.

Storing to buffers is complicated since we need to split the index
chain in two paths:
- The path within the variable where the resource is.
- The subpath to the part of the resource element that is being stored
  to.

For now, we will emit a fixme when the index chain in the lhs is not a
direct resource access.
This commit is contained in:
Francisco Casas
2024-02-16 17:05:49 -03:00
committed by Alexandre Julliard
parent 315b7c5a42
commit 8df34fce62
Notes: Alexandre Julliard 2024-02-19 22:59:52 +01: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/655
4 changed files with 32 additions and 1 deletions

View File

@ -108,3 +108,18 @@ float4 main() : sv_target1
{
return 0;
}
[pixel shader todo]
struct apple
{
float3 a, x;
};
RWStructuredBuffer<apple> u;
float4 main() : sv_target
{
u[0].x = float3(30.0, 40.0, 50.0);
return 0;
}