mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-01-28 13:05:02 -08:00
vkd3d-shader/ir: Do not enfore DCL_TEMPS count for hull shaders.
Hull shaders have a different temps count for each phase, and the parser only reports the count for the patch constant phase. In order to properly check for temps count on hull shaders, we first need to decode its phases.
This commit is contained in:
parent
ca3f594ae3
commit
0a7e200f89
Notes:
Alexandre Julliard
2023-11-07 22:40:09 +01:00
Approved-by: Giovanni Mascellani (@giomasce) Approved-by: Henri Verbeet (@hverbeet) Approved-by: Alexandre Julliard (@julliard) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/444
@ -1631,7 +1631,8 @@ static void vsir_validate_instruction(struct validation_context *ctx)
|
||||
if (ctx->dcl_temps_found && ctx->parser->shader_version.type != VKD3D_SHADER_TYPE_HULL)
|
||||
validator_error(ctx, VKD3D_SHADER_ERROR_VSIR_DUPLICATE_DCL_TEMPS, "Duplicate DCL_TEMPS instruction.");
|
||||
ctx->dcl_temps_found = true;
|
||||
if (instruction->declaration.count != ctx->parser->shader_desc.temp_count)
|
||||
if (instruction->declaration.count != ctx->parser->shader_desc.temp_count &&
|
||||
ctx->parser->shader_version.type != VKD3D_SHADER_TYPE_HULL)
|
||||
validator_error(ctx, VKD3D_SHADER_ERROR_VSIR_INVALID_DCL_TEMPS, "Invalid DCL_TEMPS count %u, expected %u.",
|
||||
instruction->declaration.count, ctx->parser->shader_desc.temp_count);
|
||||
break;
|
||||
|
Loading…
x
Reference in New Issue
Block a user