mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-09-12 18:50:22 -07:00
vkd3d-shader/hlsl: Store hull and domain shader properties in vsir_program.
The alternative to adding the vsir_program->tess_output_primitive and vsir_program->tess_partitioning fields would be to emit the vsir DCL_TESSELLATOR_OUTPUT_PRIMITIVE and DCL_TESSELLATOR_PARTITIONING instructions, like DXIL does, but I think that the preference is to store these kind of data directly in the vsir_program.
This commit is contained in:
committed by
Henri Verbeet
parent
347e7a396d
commit
f22729461e
Notes:
Henri Verbeet
2024-12-10 15:58:38 +01:00
Approved-by: Elizabeth Figura (@zfigura) Approved-by: Henri Verbeet (@hverbeet) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1308
@@ -9902,6 +9902,19 @@ static void sm4_generate_vsir(struct hlsl_ctx *ctx, struct hlsl_ir_function_decl
|
||||
program->thread_group_size.y = ctx->thread_count[1];
|
||||
program->thread_group_size.z = ctx->thread_count[2];
|
||||
}
|
||||
else if (version.type == VKD3D_SHADER_TYPE_HULL)
|
||||
{
|
||||
program->input_control_point_count = 1; /* TODO: Obtain from InputPatch */
|
||||
program->output_control_point_count = ctx->output_control_point_count;
|
||||
program->tess_domain = ctx->domain;
|
||||
program->tess_partitioning = ctx->partitioning;
|
||||
program->tess_output_primitive = ctx->output_primitive;
|
||||
}
|
||||
else if (version.type == VKD3D_SHADER_TYPE_DOMAIN)
|
||||
{
|
||||
program->input_control_point_count = 0; /* TODO: Obtain from OutputPatch */
|
||||
program->tess_domain = ctx->domain;
|
||||
}
|
||||
|
||||
LIST_FOR_EACH_ENTRY(cbuffer, &ctx->buffers, struct hlsl_buffer, entry)
|
||||
{
|
||||
|
Reference in New Issue
Block a user