wined3d: Implement SM5 countbits instruction.

Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Józef Kucia 2017-01-28 17:14:10 +01:00 committed by Alexandre Julliard
parent 9dbfe8b5af
commit 8aed050396
5 changed files with 7 additions and 0 deletions

View File

@ -5040,6 +5040,7 @@ static const SHADER_HANDLER shader_arb_instruction_handler_table[WINED3DSIH_TABL
/* WINED3DSIH_CMP */ pshader_hw_cmp,
/* WINED3DSIH_CND */ pshader_hw_cnd,
/* WINED3DSIH_CONTINUE */ NULL,
/* WINED3DSIH_COUNTBITS */ NULL,
/* WINED3DSIH_CRS */ shader_hw_map2gl,
/* WINED3DSIH_CUT */ NULL,
/* WINED3DSIH_CUT_STREAM */ NULL,

View File

@ -3724,6 +3724,7 @@ static void shader_glsl_map2gl(const struct wined3d_shader_instruction *ins)
{
case WINED3DSIH_ABS: instruction = "abs"; break;
case WINED3DSIH_BFREV: instruction = "bitfieldReverse"; break;
case WINED3DSIH_COUNTBITS: instruction = "bitCount"; break;
case WINED3DSIH_DSX: instruction = "dFdx"; break;
case WINED3DSIH_DSX_COARSE: instruction = "dFdxCoarse"; break;
case WINED3DSIH_DSX_FINE: instruction = "dFdxFine"; break;
@ -8893,6 +8894,7 @@ static const SHADER_HANDLER shader_glsl_instruction_handler_table[WINED3DSIH_TAB
/* WINED3DSIH_CMP */ shader_glsl_conditional_move,
/* WINED3DSIH_CND */ shader_glsl_cnd,
/* WINED3DSIH_CONTINUE */ shader_glsl_continue,
/* WINED3DSIH_COUNTBITS */ shader_glsl_map2gl,
/* WINED3DSIH_CRS */ shader_glsl_cross,
/* WINED3DSIH_CUT */ shader_glsl_cut,
/* WINED3DSIH_CUT_STREAM */ shader_glsl_cut,

View File

@ -65,6 +65,7 @@ static const char * const shader_opcode_names[] =
/* WINED3DSIH_CMP */ "cmp",
/* WINED3DSIH_CND */ "cnd",
/* WINED3DSIH_CONTINUE */ "continue",
/* WINED3DSIH_COUNTBITS */ "countbits",
/* WINED3DSIH_CRS */ "crs",
/* WINED3DSIH_CUT */ "cut",
/* WINED3DSIH_CUT_STREAM */ "cut_stream",

View File

@ -233,6 +233,7 @@ enum wined3d_sm4_opcode
WINED3D_SM5_OP_RCP = 0x81,
WINED3D_SM5_OP_F32TOF16 = 0x82,
WINED3D_SM5_OP_F16TOF32 = 0x83,
WINED3D_SM5_OP_COUNTBITS = 0x86,
WINED3D_SM5_OP_UBFE = 0x8a,
WINED3D_SM5_OP_BFI = 0x8c,
WINED3D_SM5_OP_BFREV = 0x8d,
@ -926,6 +927,7 @@ static const struct wined3d_sm4_opcode_info opcode_table[] =
{WINED3D_SM5_OP_RCP, WINED3DSIH_RCP, "f", "f"},
{WINED3D_SM5_OP_F32TOF16, WINED3DSIH_F32TOF16, "u", "f"},
{WINED3D_SM5_OP_F16TOF32, WINED3DSIH_F16TOF32, "f", "u"},
{WINED3D_SM5_OP_COUNTBITS, WINED3DSIH_COUNTBITS, "u", "u"},
{WINED3D_SM5_OP_UBFE, WINED3DSIH_UBFE, "u", "iiu"},
{WINED3D_SM5_OP_BFI, WINED3DSIH_BFI, "u", "iiuu"},
{WINED3D_SM5_OP_BFREV, WINED3DSIH_BFREV, "u", "u"},

View File

@ -595,6 +595,7 @@ enum WINED3D_SHADER_INSTRUCTION_HANDLER
WINED3DSIH_CMP,
WINED3DSIH_CND,
WINED3DSIH_CONTINUE,
WINED3DSIH_COUNTBITS,
WINED3DSIH_CRS,
WINED3DSIH_CUT,
WINED3DSIH_CUT_STREAM,