mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-12-15 08:03:30 -08:00
vkd3d-shader/ir: Check that no modifier is added to a vsir program after lowering.
This commit is contained in:
committed by
Henri Verbeet
parent
b41e99c036
commit
6654b88407
Notes:
Henri Verbeet
2025-10-27 19:10:19 +01:00
Approved-by: Henri Verbeet (@hverbeet) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1798
@@ -2453,6 +2453,8 @@ static enum vkd3d_result vsir_program_lower_modifiers(struct vsir_program *progr
|
||||
}
|
||||
}
|
||||
|
||||
program->has_no_modifiers = true;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -11046,7 +11048,7 @@ static void vsir_validate_dst_param(struct validation_context *ctx,
|
||||
break;
|
||||
}
|
||||
|
||||
if (dst->modifiers & ~VKD3DSPDM_MASK)
|
||||
if (dst->modifiers & ~VKD3DSPDM_MASK || (ctx->program->has_no_modifiers && dst->modifiers))
|
||||
validator_error(ctx, VKD3D_SHADER_ERROR_VSIR_INVALID_MODIFIERS, "Destination has invalid modifiers %#x.",
|
||||
dst->modifiers);
|
||||
|
||||
@@ -11227,7 +11229,7 @@ static void vsir_validate_src_param(struct validation_context *ctx,
|
||||
validator_error(ctx, VKD3D_SHADER_ERROR_VSIR_INVALID_SWIZZLE,
|
||||
"Immediate constant source has invalid swizzle %#x.", src->swizzle);
|
||||
|
||||
if (src->modifiers >= VKD3DSPSM_COUNT)
|
||||
if (src->modifiers >= VKD3DSPSM_COUNT || (ctx->program->has_no_modifiers && src->modifiers))
|
||||
validator_error(ctx, VKD3D_SHADER_ERROR_VSIR_INVALID_MODIFIERS, "Source has invalid modifiers %#x.",
|
||||
src->modifiers);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user