mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-12-15 08:03:30 -08:00
vkd3d-shader/ir: Require signed operands for IMAX instructions.
This commit is contained in:
Notes:
Henri Verbeet
2025-09-18 11:44:24 +02:00
Approved-by: Giovanni Mascellani (@giomasce) Approved-by: Henri Verbeet (@hverbeet) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1733
@@ -11307,6 +11307,18 @@ static void vsir_validate_integer_elementwise_operation(struct validation_contex
|
||||
vsir_validate_elementwise_operation(ctx, instruction, types);
|
||||
}
|
||||
|
||||
static void vsir_validate_signed_integer_elementwise_operation(struct validation_context *ctx,
|
||||
const struct vkd3d_shader_instruction *instruction)
|
||||
{
|
||||
static const bool types[VSIR_DATA_TYPE_COUNT] =
|
||||
{
|
||||
[VSIR_DATA_I32] = true,
|
||||
[VSIR_DATA_I64] = true,
|
||||
};
|
||||
|
||||
vsir_validate_elementwise_operation(ctx, instruction, types);
|
||||
}
|
||||
|
||||
static void vsir_validate_logic_elementwise_operation(struct validation_context *ctx,
|
||||
const struct vkd3d_shader_instruction *instruction)
|
||||
{
|
||||
@@ -12385,7 +12397,7 @@ static const struct vsir_validator_instruction_desc vsir_validator_instructions[
|
||||
[VSIR_OP_IGE] = {1, 2, vsir_validate_signed_integer_comparison_operation},
|
||||
[VSIR_OP_ILT] = {1, 2, vsir_validate_signed_integer_comparison_operation},
|
||||
[VSIR_OP_IMAD] = {1, 3, vsir_validate_integer_elementwise_operation},
|
||||
[VSIR_OP_IMAX] = {1, 2, vsir_validate_integer_elementwise_operation},
|
||||
[VSIR_OP_IMAX] = {1, 2, vsir_validate_signed_integer_elementwise_operation},
|
||||
[VSIR_OP_IMIN] = {1, 2, vsir_validate_integer_elementwise_operation},
|
||||
[VSIR_OP_INE] = {1, 2, vsir_validate_integer_comparison_operation},
|
||||
[VSIR_OP_INEG] = {1, 1, vsir_validate_integer_elementwise_operation},
|
||||
|
||||
Reference in New Issue
Block a user