wined3d: Add support for immediate constants to shader_dump_register().
This commit is contained in:
parent
65622a052c
commit
690d666de5
|
@ -667,6 +667,7 @@ static void shader_dump_decl_usage(const struct wined3d_shader_semantic *semanti
|
||||||
}
|
}
|
||||||
|
|
||||||
static void shader_dump_register(WINED3DSHADER_PARAM_REGISTER_TYPE register_type, UINT register_idx,
|
static void shader_dump_register(WINED3DSHADER_PARAM_REGISTER_TYPE register_type, UINT register_idx,
|
||||||
|
enum wined3d_immconst_type immconst_type, const DWORD *immconst_data,
|
||||||
const struct wined3d_shader_src_param *rel_addr, const struct wined3d_shader_version *shader_version)
|
const struct wined3d_shader_src_param *rel_addr, const struct wined3d_shader_version *shader_version)
|
||||||
{
|
{
|
||||||
static const char * const rastout_reg_names[] = {"oPos", "oFog", "oPts"};
|
static const char * const rastout_reg_names[] = {"oPos", "oFog", "oPts"};
|
||||||
|
@ -747,12 +748,37 @@ static void shader_dump_register(WINED3DSHADER_PARAM_REGISTER_TYPE register_type
|
||||||
TRACE("p");
|
TRACE("p");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case WINED3DSPR_IMMCONST:
|
||||||
|
TRACE("l");
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
TRACE("unhandled_rtype(%#x)", register_type);
|
TRACE("unhandled_rtype(%#x)", register_type);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (register_type != WINED3DSPR_RASTOUT && register_type != WINED3DSPR_MISCTYPE)
|
if (register_type == WINED3DSPR_IMMCONST)
|
||||||
|
{
|
||||||
|
TRACE("(");
|
||||||
|
switch (immconst_type)
|
||||||
|
{
|
||||||
|
case WINED3D_IMMCONST_FLOAT:
|
||||||
|
TRACE("%.8e", *(float *)immconst_data);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case WINED3D_IMMCONST_FLOAT4:
|
||||||
|
TRACE("%.8e, %.8e, %.8e, %.8e",
|
||||||
|
*(float *)&immconst_data[0], *(float *)&immconst_data[1],
|
||||||
|
*(float *)&immconst_data[2], *(float *)&immconst_data[3]);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
TRACE("<unhandled immconst_type %#x>", immconst_type);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
TRACE(")");
|
||||||
|
}
|
||||||
|
else if (register_type != WINED3DSPR_RASTOUT && register_type != WINED3DSPR_MISCTYPE)
|
||||||
{
|
{
|
||||||
if (rel_addr)
|
if (rel_addr)
|
||||||
{
|
{
|
||||||
|
@ -770,7 +796,7 @@ void shader_dump_dst_param(const struct wined3d_shader_dst_param *param,
|
||||||
{
|
{
|
||||||
DWORD write_mask = param->write_mask;
|
DWORD write_mask = param->write_mask;
|
||||||
|
|
||||||
shader_dump_register(param->register_type, param->register_idx, param->rel_addr, shader_version);
|
shader_dump_register(param->register_type, param->register_idx, 0, NULL, param->rel_addr, shader_version);
|
||||||
|
|
||||||
if (write_mask != WINED3DSP_WRITEMASK_ALL)
|
if (write_mask != WINED3DSP_WRITEMASK_ALL)
|
||||||
{
|
{
|
||||||
|
@ -804,7 +830,8 @@ void shader_dump_src_param(const struct wined3d_shader_src_param *param,
|
||||||
if (src_modifier == WINED3DSPSM_ABS || src_modifier == WINED3DSPSM_ABSNEG)
|
if (src_modifier == WINED3DSPSM_ABS || src_modifier == WINED3DSPSM_ABSNEG)
|
||||||
TRACE("abs(");
|
TRACE("abs(");
|
||||||
|
|
||||||
shader_dump_register(param->register_type, param->register_idx, param->rel_addr, shader_version);
|
shader_dump_register(param->register_type, param->register_idx,
|
||||||
|
param->immconst_type, param->immconst_data, param->rel_addr, shader_version);
|
||||||
|
|
||||||
if (src_modifier)
|
if (src_modifier)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue