Commit 1fe1676a authored by Henri Verbeet's avatar Henri Verbeet Committed by Alexandre Julliard

wined3d: SM4 immediate constants are typeless.

parent 3e45fe74
...@@ -1477,11 +1477,11 @@ static void shader_glsl_get_register_name(const struct wined3d_shader_register * ...@@ -1477,11 +1477,11 @@ static void shader_glsl_get_register_name(const struct wined3d_shader_register *
case WINED3DSPR_IMMCONST: case WINED3DSPR_IMMCONST:
switch (reg->immconst_type) switch (reg->immconst_type)
{ {
case WINED3D_IMMCONST_FLOAT: case WINED3D_IMMCONST_SCALAR:
sprintf(register_name, "%.8e", *(const float *)reg->immconst_data); sprintf(register_name, "%.8e", *(const float *)reg->immconst_data);
break; break;
case WINED3D_IMMCONST_FLOAT4: case WINED3D_IMMCONST_VEC4:
sprintf(register_name, "vec4(%.8e, %.8e, %.8e, %.8e)", sprintf(register_name, "vec4(%.8e, %.8e, %.8e, %.8e)",
*(const float *)&reg->immconst_data[0], *(const float *)&reg->immconst_data[1], *(const float *)&reg->immconst_data[0], *(const float *)&reg->immconst_data[1],
*(const float *)&reg->immconst_data[2], *(const float *)&reg->immconst_data[3]); *(const float *)&reg->immconst_data[2], *(const float *)&reg->immconst_data[3]);
......
...@@ -1033,11 +1033,11 @@ static void shader_dump_register(const struct wined3d_shader_register *reg, ...@@ -1033,11 +1033,11 @@ static void shader_dump_register(const struct wined3d_shader_register *reg,
TRACE("("); TRACE("(");
switch (reg->immconst_type) switch (reg->immconst_type)
{ {
case WINED3D_IMMCONST_FLOAT: case WINED3D_IMMCONST_SCALAR:
TRACE("%.8e", *(const float *)reg->immconst_data); TRACE("%.8e", *(const float *)reg->immconst_data);
break; break;
case WINED3D_IMMCONST_FLOAT4: case WINED3D_IMMCONST_VEC4:
TRACE("%.8e, %.8e, %.8e, %.8e", TRACE("%.8e, %.8e, %.8e, %.8e",
*(const float *)&reg->immconst_data[0], *(const float *)&reg->immconst_data[1], *(const float *)&reg->immconst_data[0], *(const float *)&reg->immconst_data[1],
*(const float *)&reg->immconst_data[2], *(const float *)&reg->immconst_data[3]); *(const float *)&reg->immconst_data[2], *(const float *)&reg->immconst_data[3]);
......
...@@ -90,8 +90,8 @@ enum wined3d_sm4_register_type ...@@ -90,8 +90,8 @@ enum wined3d_sm4_register_type
enum wined3d_sm4_immconst_type enum wined3d_sm4_immconst_type
{ {
WINED3D_SM4_IMMCONST_FLOAT = 0x1, WINED3D_SM4_IMMCONST_SCALAR = 0x1,
WINED3D_SM4_IMMCONST_FLOAT4 = 0x2, WINED3D_SM4_IMMCONST_VEC4 = 0x2,
}; };
struct wined3d_sm4_data struct wined3d_sm4_data
...@@ -354,14 +354,14 @@ static void shader_sm4_read_src_param(void *data, const DWORD **ptr, struct wine ...@@ -354,14 +354,14 @@ static void shader_sm4_read_src_param(void *data, const DWORD **ptr, struct wine
switch(immconst_type) switch(immconst_type)
{ {
case WINED3D_SM4_IMMCONST_FLOAT: case WINED3D_SM4_IMMCONST_SCALAR:
src_param->reg.immconst_type = WINED3D_IMMCONST_FLOAT; src_param->reg.immconst_type = WINED3D_IMMCONST_SCALAR;
memcpy(src_param->reg.immconst_data, *ptr, 1 * sizeof(DWORD)); memcpy(src_param->reg.immconst_data, *ptr, 1 * sizeof(DWORD));
*ptr += 1; *ptr += 1;
break; break;
case WINED3D_SM4_IMMCONST_FLOAT4: case WINED3D_SM4_IMMCONST_VEC4:
src_param->reg.immconst_type = WINED3D_IMMCONST_FLOAT4; src_param->reg.immconst_type = WINED3D_IMMCONST_VEC4;
memcpy(src_param->reg.immconst_data, *ptr, 4 * sizeof(DWORD)); memcpy(src_param->reg.immconst_data, *ptr, 4 * sizeof(DWORD));
*ptr += 4; *ptr += 4;
break; break;
......
...@@ -313,8 +313,8 @@ typedef enum _WINED3DSHADER_PARAM_REGISTER_TYPE ...@@ -313,8 +313,8 @@ typedef enum _WINED3DSHADER_PARAM_REGISTER_TYPE
enum wined3d_immconst_type enum wined3d_immconst_type
{ {
WINED3D_IMMCONST_FLOAT, WINED3D_IMMCONST_SCALAR,
WINED3D_IMMCONST_FLOAT4, WINED3D_IMMCONST_VEC4,
}; };
#define WINED3DSP_NOSWIZZLE (0 | (1 << 2) | (2 << 4) | (3 << 6)) #define WINED3DSP_NOSWIZZLE (0 | (1 << 2) | (2 << 4) | (3 << 6))
...@@ -2821,13 +2821,7 @@ static inline BOOL shader_is_scalar(const struct wined3d_shader_register *reg) ...@@ -2821,13 +2821,7 @@ static inline BOOL shader_is_scalar(const struct wined3d_shader_register *reg)
} }
case WINED3DSPR_IMMCONST: case WINED3DSPR_IMMCONST:
switch(reg->immconst_type) return reg->immconst_type == WINED3D_IMMCONST_SCALAR;
{
case WINED3D_IMMCONST_FLOAT:
return TRUE;
default:
return FALSE;
}
default: default:
return FALSE; return FALSE;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment