mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-01-28 13:05:02 -08:00
vkd3d-shader: Get sysval semantic from shader signature for inputs.
In domain shaders, inputs are declared with dcl_input without semantic. Signed-off-by: Józef Kucia <jkucia@codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
ba7807b456
commit
c314b5b01c
@ -424,6 +424,7 @@ enum vkd3d_component_type
|
|||||||
|
|
||||||
enum vkd3d_sysval_semantic
|
enum vkd3d_sysval_semantic
|
||||||
{
|
{
|
||||||
|
VKD3D_SV_NONE = 0,
|
||||||
VKD3D_SV_POSITION = 1,
|
VKD3D_SV_POSITION = 1,
|
||||||
VKD3D_SV_CLIP_DISTANCE = 2,
|
VKD3D_SV_CLIP_DISTANCE = 2,
|
||||||
VKD3D_SV_CULL_DISTANCE = 3,
|
VKD3D_SV_CULL_DISTANCE = 3,
|
||||||
|
@ -129,6 +129,20 @@ static const void *vkd3d_find_struct_(const struct vkd3d_struct *chain,
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static enum vkd3d_shader_input_sysval_semantic vkd3d_siv_from_sysval(enum vkd3d_sysval_semantic sysval)
|
||||||
|
{
|
||||||
|
switch (sysval)
|
||||||
|
{
|
||||||
|
case VKD3D_SV_NONE:
|
||||||
|
return VKD3D_SIV_NONE;
|
||||||
|
case VKD3D_SV_POSITION:
|
||||||
|
return VKD3D_SIV_POSITION;
|
||||||
|
default:
|
||||||
|
FIXME("Unhandled sysval %#x.\n", sysval);
|
||||||
|
return VKD3D_SIV_NONE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#define VKD3D_SPIRV_VERSION 0x00010000
|
#define VKD3D_SPIRV_VERSION 0x00010000
|
||||||
#define VKD3D_SPIRV_GENERATOR_ID 18
|
#define VKD3D_SPIRV_GENERATOR_ID 18
|
||||||
#define VKD3D_SPIRV_GENERATOR_VERSION 1
|
#define VKD3D_SPIRV_GENERATOR_VERSION 1
|
||||||
@ -3396,6 +3410,9 @@ static uint32_t vkd3d_dxbc_compiler_emit_input(struct vkd3d_dxbc_compiler *compi
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!sysval && signature_element->sysval_semantic)
|
||||||
|
sysval = vkd3d_siv_from_sysval(signature_element->sysval_semantic);
|
||||||
|
|
||||||
builtin = get_spirv_builtin_for_sysval(compiler, sysval);
|
builtin = get_spirv_builtin_for_sysval(compiler, sysval);
|
||||||
|
|
||||||
component_idx = vkd3d_write_mask_get_component_idx(dst->write_mask);
|
component_idx = vkd3d_write_mask_get_component_idx(dst->write_mask);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user