mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-09-12 18:50:22 -07:00
vkd3d-shader/hlsl: Generate vsir signature entries for patch variables.
This commit is contained in:
Notes:
Henri Verbeet
2025-02-03 16:40:17 +01:00
Approved-by: Henri Verbeet (@hverbeet) Approved-by: Elizabeth Figura (@zfigura) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1362
@@ -3070,7 +3070,7 @@ static bool get_insidetessfactor_sysval_semantic(enum vkd3d_shader_sysval_semant
|
||||
|
||||
bool sm4_sysval_semantic_from_semantic_name(enum vkd3d_shader_sysval_semantic *sysval_semantic,
|
||||
const struct vkd3d_shader_version *version, bool semantic_compat_mapping, enum vkd3d_tessellator_domain domain,
|
||||
const char *semantic_name, unsigned int semantic_idx, bool output, bool is_patch_constant_func)
|
||||
const char *semantic_name, unsigned int semantic_idx, bool output, bool is_patch_constant_func, bool is_patch)
|
||||
{
|
||||
unsigned int i;
|
||||
|
||||
@@ -3133,6 +3133,20 @@ bool sm4_sysval_semantic_from_semantic_name(enum vkd3d_shader_sysval_semantic *s
|
||||
};
|
||||
bool has_sv_prefix = !ascii_strncasecmp(semantic_name, "sv_", 3);
|
||||
|
||||
if (is_patch)
|
||||
{
|
||||
VKD3D_ASSERT(!output);
|
||||
|
||||
if (!ascii_strcasecmp(semantic_name, "sv_position")
|
||||
|| (semantic_compat_mapping && !ascii_strcasecmp(semantic_name, "position")))
|
||||
*sysval_semantic = VKD3D_SHADER_SV_POSITION;
|
||||
else if (has_sv_prefix)
|
||||
return false;
|
||||
else
|
||||
*sysval_semantic = VKD3D_SHADER_SV_NONE;
|
||||
return true;
|
||||
}
|
||||
|
||||
if (is_patch_constant_func)
|
||||
{
|
||||
if (output)
|
||||
|
Reference in New Issue
Block a user