[PATCH vkd3d 3/6] vkd3d-shader/spirv: Move a couple helpers from vkd3d_shader_private.h.

Giovanni Mascellani gmascellani at codeweavers.com
Thu May 12 08:54:04 CDT 2022


Signed-off-by: Giovanni Mascellani <gmascellani at codeweavers.com>

Il 10/05/22 20:21, Matteo Bruni ha scritto:
> Signed-off-by: Matteo Bruni <mbruni at codeweavers.com>
> ---
>   libs/vkd3d-shader/spirv.c                | 55 +++++++++++++++++++++++
>   libs/vkd3d-shader/vkd3d_shader_private.h | 57 ------------------------
>   2 files changed, 55 insertions(+), 57 deletions(-)
> 
> diff --git a/libs/vkd3d-shader/spirv.c b/libs/vkd3d-shader/spirv.c
> index d746a35a..89b16305 100644
> --- a/libs/vkd3d-shader/spirv.c
> +++ b/libs/vkd3d-shader/spirv.c
> @@ -168,6 +168,61 @@ static void vkd3d_spirv_validate(const struct vkd3d_shader_code *spirv,
>   
>   #endif  /* HAVE_SPIRV_TOOLS */
>   
> +static enum vkd3d_shader_component_type vkd3d_component_type_from_data_type(enum vkd3d_data_type data_type)
> +{
> +    switch (data_type)
> +    {
> +        case VKD3D_DATA_FLOAT:
> +        case VKD3D_DATA_UNORM:
> +        case VKD3D_DATA_SNORM:
> +            return VKD3D_SHADER_COMPONENT_FLOAT;
> +        case VKD3D_DATA_UINT:
> +            return VKD3D_SHADER_COMPONENT_UINT;
> +        case VKD3D_DATA_INT:
> +            return VKD3D_SHADER_COMPONENT_INT;
> +        case VKD3D_DATA_DOUBLE:
> +            return VKD3D_SHADER_COMPONENT_DOUBLE;
> +        default:
> +            FIXME("Unhandled data type %#x.\n", data_type);
> +            /* fall-through */
> +        case VKD3D_DATA_MIXED:
> +            return VKD3D_SHADER_COMPONENT_UINT;
> +    }
> +}
> +
> +static enum vkd3d_data_type vkd3d_data_type_from_component_type(enum vkd3d_shader_component_type component_type)
> +{
> +    switch (component_type)
> +    {
> +        case VKD3D_SHADER_COMPONENT_FLOAT:
> +            return VKD3D_DATA_FLOAT;
> +        case VKD3D_SHADER_COMPONENT_UINT:
> +            return VKD3D_DATA_UINT;
> +        case VKD3D_SHADER_COMPONENT_INT:
> +            return VKD3D_DATA_INT;
> +        case VKD3D_SHADER_COMPONENT_DOUBLE:
> +            return VKD3D_DATA_DOUBLE;
> +        default:
> +            FIXME("Unhandled component type %#x.\n", component_type);
> +            return VKD3D_DATA_FLOAT;
> +    }
> +}
> +
> +static unsigned int vkd3d_write_mask_get_component_idx(DWORD write_mask)
> +{
> +    unsigned int i;
> +
> +    assert(write_mask);
> +    for (i = 0; i < VKD3D_VEC4_SIZE; ++i)
> +    {
> +        if (write_mask & (VKD3DSP_WRITEMASK_0 << i))
> +            return i;
> +    }
> +
> +    FIXME("Invalid write mask %#x.\n", write_mask);
> +    return 0;
> +}
> +
>   static enum vkd3d_shader_input_sysval_semantic vkd3d_siv_from_sysval_indexed(enum vkd3d_shader_sysval_semantic sysval,
>           unsigned int index)
>   {
> diff --git a/libs/vkd3d-shader/vkd3d_shader_private.h b/libs/vkd3d-shader/vkd3d_shader_private.h
> index 29e178cc..5d3c3e49 100644
> --- a/libs/vkd3d-shader/vkd3d_shader_private.h
> +++ b/libs/vkd3d-shader/vkd3d_shader_private.h
> @@ -1102,63 +1102,6 @@ int preproc_lexer_parse(const struct vkd3d_shader_compile_info *compile_info,
>   int hlsl_compile_shader(const struct vkd3d_shader_code *hlsl, const struct vkd3d_shader_compile_info *compile_info,
>           struct vkd3d_shader_code *out, struct vkd3d_shader_message_context *message_context);
>   
> -static inline enum vkd3d_shader_component_type vkd3d_component_type_from_data_type(
> -        enum vkd3d_data_type data_type)
> -{
> -    switch (data_type)
> -    {
> -        case VKD3D_DATA_FLOAT:
> -        case VKD3D_DATA_UNORM:
> -        case VKD3D_DATA_SNORM:
> -            return VKD3D_SHADER_COMPONENT_FLOAT;
> -        case VKD3D_DATA_UINT:
> -            return VKD3D_SHADER_COMPONENT_UINT;
> -        case VKD3D_DATA_INT:
> -            return VKD3D_SHADER_COMPONENT_INT;
> -        case VKD3D_DATA_DOUBLE:
> -            return VKD3D_SHADER_COMPONENT_DOUBLE;
> -        default:
> -            FIXME("Unhandled data type %#x.\n", data_type);
> -            /* fall-through */
> -        case VKD3D_DATA_MIXED:
> -            return VKD3D_SHADER_COMPONENT_UINT;
> -    }
> -}
> -
> -static inline enum vkd3d_data_type vkd3d_data_type_from_component_type(
> -        enum vkd3d_shader_component_type component_type)
> -{
> -    switch (component_type)
> -    {
> -        case VKD3D_SHADER_COMPONENT_FLOAT:
> -            return VKD3D_DATA_FLOAT;
> -        case VKD3D_SHADER_COMPONENT_UINT:
> -            return VKD3D_DATA_UINT;
> -        case VKD3D_SHADER_COMPONENT_INT:
> -            return VKD3D_DATA_INT;
> -        case VKD3D_SHADER_COMPONENT_DOUBLE:
> -            return VKD3D_DATA_DOUBLE;
> -        default:
> -            FIXME("Unhandled component type %#x.\n", component_type);
> -            return VKD3D_DATA_FLOAT;
> -    }
> -}
> -
> -static inline unsigned int vkd3d_write_mask_get_component_idx(DWORD write_mask)
> -{
> -    unsigned int i;
> -
> -    assert(write_mask);
> -    for (i = 0; i < VKD3D_VEC4_SIZE; ++i)
> -    {
> -        if (write_mask & (VKD3DSP_WRITEMASK_0 << i))
> -            return i;
> -    }
> -
> -    FIXME("Invalid write mask %#x.\n", write_mask);
> -    return 0;
> -}
> -
>   static inline unsigned int vkd3d_write_mask_component_count(DWORD write_mask)
>   {
>       unsigned int count = vkd3d_popcount(write_mask & VKD3DSP_WRITEMASK_ALL);



More information about the wine-devel mailing list