vkd3d-shader: Add a 64-bit immediate constant register type.

Based in part on a vkd3d-proton patch by Joshua Ashton.

Signed-off-by: Conor McCarthy <cmccarthy@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Conor McCarthy
2021-07-30 23:27:20 +10:00
committed by Alexandre Julliard
parent 341f9745fd
commit a9eadaa06a
3 changed files with 52 additions and 7 deletions

View File

@@ -58,6 +58,7 @@
#include <string.h>
#define VKD3D_VEC4_SIZE 4
#define VKD3D_DVEC2_SIZE 2
enum vkd3d_shader_error
{
@@ -387,6 +388,7 @@ enum vkd3d_shader_register_type
VKD3DSPR_LABEL = 18,
VKD3DSPR_PREDICATE = 19,
VKD3DSPR_IMMCONST,
VKD3DSPR_IMMCONST64,
VKD3DSPR_CONSTBUFFER,
VKD3DSPR_IMMCONSTBUFFER,
VKD3DSPR_PRIMID,
@@ -619,6 +621,7 @@ struct vkd3d_shader_register
{
DWORD immconst_uint[VKD3D_VEC4_SIZE];
float immconst_float[VKD3D_VEC4_SIZE];
double immconst_double[VKD3D_DVEC2_SIZE];
unsigned fp_body_idx;
} u;
};