mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-09-12 18:50:22 -07:00
vkd3d-shader/dxil: Generate INVALID values in sm6_parser_constants_init().
This commit is contained in:
committed by
Henri Verbeet
parent
7381598310
commit
44e0b17606
Notes:
Henri Verbeet
2025-05-06 19:05:57 +02:00
Approved-by: Henri Verbeet (@hverbeet) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1483
@@ -649,6 +649,7 @@ enum sm6_value_type
|
|||||||
VALUE_TYPE_HANDLE,
|
VALUE_TYPE_HANDLE,
|
||||||
VALUE_TYPE_SSA,
|
VALUE_TYPE_SSA,
|
||||||
VALUE_TYPE_UNDEFINED,
|
VALUE_TYPE_UNDEFINED,
|
||||||
|
VALUE_TYPE_INVALID,
|
||||||
};
|
};
|
||||||
|
|
||||||
struct sm6_function_data
|
struct sm6_function_data
|
||||||
@@ -2244,6 +2245,7 @@ static inline bool sm6_value_is_register(const struct sm6_value *value)
|
|||||||
case VALUE_TYPE_REG:
|
case VALUE_TYPE_REG:
|
||||||
case VALUE_TYPE_SSA:
|
case VALUE_TYPE_SSA:
|
||||||
case VALUE_TYPE_UNDEFINED:
|
case VALUE_TYPE_UNDEFINED:
|
||||||
|
case VALUE_TYPE_INVALID:
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@@ -2424,6 +2426,7 @@ static void sm6_register_from_value(struct vkd3d_shader_register *reg, const str
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case VALUE_TYPE_UNDEFINED:
|
case VALUE_TYPE_UNDEFINED:
|
||||||
|
case VALUE_TYPE_INVALID:
|
||||||
vsir_register_init(reg, VKD3DSPR_UNDEF, data_type, 0);
|
vsir_register_init(reg, VKD3DSPR_UNDEF, data_type, 0);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -3396,7 +3399,8 @@ static enum vkd3d_result sm6_parser_constants_init(struct sm6_parser *sm6, const
|
|||||||
FIXME("Unhandled constant code %u.\n", record->code);
|
FIXME("Unhandled constant code %u.\n", record->code);
|
||||||
vkd3d_shader_parser_error(&sm6->p, VKD3D_SHADER_ERROR_DXIL_INVALID_OPERAND,
|
vkd3d_shader_parser_error(&sm6->p, VKD3D_SHADER_ERROR_DXIL_INVALID_OPERAND,
|
||||||
"Constant code %u is unhandled.", record->code);
|
"Constant code %u is unhandled.", record->code);
|
||||||
dst->reg.type = VKD3DSPR_UNDEF;
|
dst->value_type = VALUE_TYPE_INVALID;
|
||||||
|
sm6_register_from_value(&dst->reg, dst);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user