vkd3d-shader: Implement UMAD
Signed-off-by: Joshua Ashton <joshua@froggi.es>
This commit is contained in:
parent
a64a34eb9d
commit
650375bf6a
|
@ -1110,6 +1110,7 @@ static const struct vkd3d_sm4_opcode_info opcode_table[] =
|
|||
{VKD3D_SM4_OP_ULT, VKD3DSIH_ULT, "u", "uu"},
|
||||
{VKD3D_SM4_OP_UGE, VKD3DSIH_UGE, "u", "uu"},
|
||||
{VKD3D_SM4_OP_UMUL, VKD3DSIH_UMUL, "uu", "uu"},
|
||||
{VKD3D_SM4_OP_UMAD, VKD3DSIH_UMAD, "u", "uuu"},
|
||||
{VKD3D_SM4_OP_UMAX, VKD3DSIH_UMAX, "u", "uu"},
|
||||
{VKD3D_SM4_OP_UMIN, VKD3DSIH_UMIN, "u", "uu"},
|
||||
{VKD3D_SM4_OP_USHR, VKD3DSIH_USHR, "u", "uu"},
|
||||
|
|
|
@ -6972,7 +6972,10 @@ static void vkd3d_dxbc_compiler_emit_imad(struct vkd3d_dxbc_compiler *compiler,
|
|||
unsigned int i, component_count;
|
||||
|
||||
component_count = vkd3d_write_mask_component_count(dst->write_mask);
|
||||
type_id = vkd3d_spirv_get_type_id(builder, VKD3D_TYPE_INT, component_count);
|
||||
if (instruction->handler_idx == VKD3DSIH_UMAD)
|
||||
type_id = vkd3d_spirv_get_type_id(builder, VKD3D_TYPE_UINT, component_count);
|
||||
else
|
||||
type_id = vkd3d_spirv_get_type_id(builder, VKD3D_TYPE_INT, component_count);
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(src_ids); ++i)
|
||||
src_ids[i] = vkd3d_dxbc_compiler_emit_load_src(compiler, &src[i], dst->write_mask);
|
||||
|
@ -9483,6 +9486,7 @@ int vkd3d_dxbc_compiler_handle_instruction(struct vkd3d_dxbc_compiler *compiler,
|
|||
case VKD3DSIH_IMUL:
|
||||
vkd3d_dxbc_compiler_emit_imul(compiler, instruction);
|
||||
break;
|
||||
case VKD3DSIH_UMAD:
|
||||
case VKD3DSIH_IMAD:
|
||||
vkd3d_dxbc_compiler_emit_imad(compiler, instruction);
|
||||
break;
|
||||
|
|
|
@ -230,6 +230,7 @@ static const char * const shader_opcode_names[] =
|
|||
/* VKD3DSIH_UMAX */ "umax",
|
||||
/* VKD3DSIH_UMIN */ "umin",
|
||||
/* VKD3DSIH_UMUL */ "umul",
|
||||
/* VKD3DSIH_UMAD */ "umad",
|
||||
/* VKD3DSIH_USHR */ "ushr",
|
||||
/* VKD3DSIH_UTOF */ "utof",
|
||||
/* VKD3DSIH_XOR */ "xor",
|
||||
|
|
|
@ -268,6 +268,7 @@ enum VKD3D_SHADER_INSTRUCTION_HANDLER
|
|||
VKD3DSIH_UMAX,
|
||||
VKD3DSIH_UMIN,
|
||||
VKD3DSIH_UMUL,
|
||||
VKD3DSIH_UMAD,
|
||||
VKD3DSIH_USHR,
|
||||
VKD3DSIH_UTOF,
|
||||
VKD3DSIH_XOR,
|
||||
|
|
Loading…
Reference in New Issue