vkd3d/libs
Francisco Casas c1ca0dafe8 vkd3d-shader/d3dbc: Avoid hlsl_type_get_regset() in d3dbc.c.
In SM1 we can expect all variables to always belong to a single regset.
structs in particular, should always be allocated to HLSL_REGSET_NUM,
since they are only allowed if all their components are numeric.

We are not covering the structs case because of the use of
hlsl_type_get_regset(), which is currently not defined for structs.

So the current shader

    struct
    {
        float4 a;
        float4 b;
    } apple;

    float4 main() : sv_target
    {
        return apple.a + apple.b;
    }

fails with

    vkd3d/libs/vkd3d-shader/hlsl.c:224: Aborting, reached unreachable code.

The solution is to iterate over all regsets to find the one where the
variable is allocated (if any), and ignore all others.
2023-06-22 22:00:14 +02:00
..
vkd3d vkd3d: Avoid redundantly initialising "descriptors" in d3d12_desc_flush_vk_heap_updates_locked(). 2023-05-26 19:11:26 +02:00
vkd3d-common vkd3d-common: Make some global string variables const. 2023-04-06 17:52:08 +02:00
vkd3d-shader vkd3d-shader/d3dbc: Avoid hlsl_type_get_regset() in d3dbc.c. 2023-06-22 22:00:14 +02:00
vkd3d-utils vkd3d-utils: Export D3D12CreateDevice() once again. 2023-04-04 22:01:04 +02:00
.gitignore libs/vkd3d: Trace build version. 2018-06-27 22:43:49 +02:00