vkd3d-shader/hlsl: Use hlsl_ir_index for array and record access.

From this point on, it is no longer true that only hlsl_ir_loads can
return objects, because an object can also come from chain of
hlsl_ir_indexes that ends in an hlsl_ir_load.

The lower_index_loads pass takes care of lowering all hlsl_ir_indexes
into hlsl_ir_loads.

For this reason, hlsl_resource_load_params now expects both the resource
as the sampler to be just an hlsl_ir_node pointer instead of a pointer
to a more specific hlsl_ir_load.
This commit is contained in:
Francisco Casas
2023-03-10 22:09:58 -03:00
committed by Alexandre Julliard
parent 741c9e5893
commit 5c285adc6b
Notes: Alexandre Julliard 2023-04-13 23:20:40 +02:00
Approved-by: Zebediah Figura (@zfigura)
Approved-by: Francisco Casas (@fcasas)
Approved-by: Giovanni Mascellani (@giomasce)
Approved-by: Henri Verbeet (@hverbeet)
Approved-by: Alexandre Julliard (@julliard)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/124
6 changed files with 205 additions and 99 deletions

View File

@@ -78,7 +78,7 @@ draw quad
probe all rgba (1.0, 5.0, 7.0, 12.0)
[pixel shader]
[pixel shader todo]
float4 main() : SV_TARGET
{
float3x2 m = {1, 2, 3, 4, 5, 6};
@@ -89,7 +89,7 @@ float4 main() : SV_TARGET
}
[test]
draw quad
todo draw quad
todo probe all rgba (30.0, 40.0, 5.0, 6.0)

View File

@@ -24,7 +24,7 @@ float4 main() : sv_target
[test]
draw quad
todo probe all rgba (11.0, 11.0, 11.0, 11.0)
probe all rgba (11.0, 11.0, 11.0, 11.0)
[pixel shader]