vkd3d-shader/dxil: Support patch constant functions and signatures.

This commit is contained in:
Conor McCarthy
2023-06-15 14:31:16 +10:00
committed by Alexandre Julliard
parent d5c6e12dd3
commit 4457181b2a
Notes: Alexandre Julliard 2024-04-22 23:38:15 +02: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/768
3 changed files with 114 additions and 18 deletions

View File

@@ -636,11 +636,14 @@ static bool control_point_normaliser_is_in_control_point_phase(const struct cont
return normaliser->phase == VKD3DSIH_HS_CONTROL_POINT_PHASE;
}
static struct vkd3d_shader_src_param *instruction_array_create_outpointid_param(
struct vkd3d_shader_src_param *instruction_array_create_outpointid_param(
struct vkd3d_shader_instruction_array *instructions)
{
struct vkd3d_shader_src_param *rel_addr;
if (instructions->outpointid_param)
return instructions->outpointid_param;
if (!(rel_addr = shader_src_param_allocator_get(&instructions->src_params, 1)))
return NULL;
@@ -648,6 +651,7 @@ static struct vkd3d_shader_src_param *instruction_array_create_outpointid_param(
rel_addr->swizzle = 0;
rel_addr->modifiers = 0;
instructions->outpointid_param = rel_addr;
return rel_addr;
}
@@ -3344,6 +3348,14 @@ static enum vkd3d_result vsir_cfg_init(struct vsir_cfg *cfg, struct vsir_program
enum vkd3d_result ret;
size_t i;
if (program->shader_version.type == VKD3D_SHADER_TYPE_HULL)
{
FIXME("Hull shaders are not supported.\n");
vkd3d_shader_error(message_context, NULL, VKD3D_SHADER_ERROR_VSIR_NOT_IMPLEMENTED,
"The structurizer does not support hull shaders.");
return VKD3D_ERROR_INVALID_SHADER;
}
memset(cfg, 0, sizeof(*cfg));
cfg->message_context = message_context;
cfg->program = program;