vkd3d-shader/dxil: Generate INVALID values in sm6_parser_constants_init().

This commit is contained in:
Giovanni Mascellani
2025-05-02 11:01:49 +02:00
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

View File

@@ -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;
} }