mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2024-11-21 16:46:41 -08:00
vkd3d-shader/ir: Validate control point counts correctly.
Allow zero input control points for domain shaders, and zero output control points for hull shaders.
This commit is contained in:
parent
976fe27836
commit
768b19d410
Notes:
Henri Verbeet
2024-10-21 18:41:50 +02:00
Approved-by: Elizabeth Figura (@zfigura) Approved-by: Henri Verbeet (@hverbeet) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1194
@ -7700,8 +7700,10 @@ enum vkd3d_result vsir_program_validate(struct vsir_program *program, uint64_t c
|
|||||||
|
|
||||||
switch (program->shader_version.type)
|
switch (program->shader_version.type)
|
||||||
{
|
{
|
||||||
case VKD3D_SHADER_TYPE_HULL:
|
|
||||||
case VKD3D_SHADER_TYPE_DOMAIN:
|
case VKD3D_SHADER_TYPE_DOMAIN:
|
||||||
|
break;
|
||||||
|
|
||||||
|
case VKD3D_SHADER_TYPE_HULL:
|
||||||
case VKD3D_SHADER_TYPE_GEOMETRY:
|
case VKD3D_SHADER_TYPE_GEOMETRY:
|
||||||
if (program->input_control_point_count == 0)
|
if (program->input_control_point_count == 0)
|
||||||
validator_error(&ctx, VKD3D_SHADER_ERROR_VSIR_INVALID_SIGNATURE,
|
validator_error(&ctx, VKD3D_SHADER_ERROR_VSIR_INVALID_SIGNATURE,
|
||||||
@ -7718,9 +7720,6 @@ enum vkd3d_result vsir_program_validate(struct vsir_program *program, uint64_t c
|
|||||||
switch (program->shader_version.type)
|
switch (program->shader_version.type)
|
||||||
{
|
{
|
||||||
case VKD3D_SHADER_TYPE_HULL:
|
case VKD3D_SHADER_TYPE_HULL:
|
||||||
if (program->output_control_point_count == 0)
|
|
||||||
validator_error(&ctx, VKD3D_SHADER_ERROR_VSIR_INVALID_SIGNATURE,
|
|
||||||
"Invalid zero output control point count.");
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
Loading…
Reference in New Issue
Block a user