vkd3d-shader/dxil: Implement the DXIL CALL instruction.

This commit is contained in:
Conor McCarthy
2023-05-17 00:09:19 +10:00
committed by Alexandre Julliard
parent 720a087c28
commit e54f770669
Notes: Alexandre Julliard 2023-08-30 23:19:25 +02:00
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/283
3 changed files with 270 additions and 4 deletions

View File

@@ -180,6 +180,7 @@ enum vkd3d_shader_error
VKD3D_SHADER_WARNING_DXIL_INVALID_BLOCK_LENGTH = 8302,
VKD3D_SHADER_WARNING_DXIL_INVALID_MODULE_LENGTH = 8303,
VKD3D_SHADER_WARNING_DXIL_IGNORING_OPERANDS = 8304,
VKD3D_SHADER_WARNING_DXIL_UNHANDLED_INTRINSIC = 8305,
VKD3D_SHADER_ERROR_VSIR_NOT_IMPLEMENTED = 9000,
};
@@ -557,6 +558,11 @@ enum vkd3d_data_type
VKD3D_DATA_UINT8,
};
static inline bool data_type_is_integer(enum vkd3d_data_type data_type)
{
return data_type == VKD3D_DATA_INT || data_type == VKD3D_DATA_UINT8 || data_type == VKD3D_DATA_UINT;
}
enum vkd3d_immconst_type
{
VKD3D_IMMCONST_SCALAR,
@@ -735,6 +741,9 @@ struct vkd3d_shader_register
} u;
};
void shader_register_init(struct vkd3d_shader_register *reg, enum vkd3d_shader_register_type reg_type,
enum vkd3d_data_type data_type, unsigned int idx_count);
struct vkd3d_shader_dst_param
{
struct vkd3d_shader_register reg;