diff options
author | Józef Kucia <jkucia@codeweavers.com> | 2019-04-26 13:37:04 +0300 |
---|---|---|
committer | Alexandre Julliard <julliard@winehq.org> | 2019-04-26 17:37:18 +0300 |
commit | f510e93948a931f557597888ebd99935efa79d1c (patch) | |
tree | 0f70a3a0beeb9ad2e7d2022ebfd04a82b2cd3867 /include | |
parent | ac7b007fc770f87bb7925899516dbf081e9998f8 (diff) |
vkd3d-shader: Implement sampleinfo for rasterizer.
Also adds initial infrastructure for more flexible shader parameters.
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>
Diffstat (limited to 'include')
-rw-r--r-- | include/vkd3d_shader.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/include/vkd3d_shader.h b/include/vkd3d_shader.h index cfb02634..28c32746 100644 --- a/include/vkd3d_shader.h +++ b/include/vkd3d_shader.h @@ -90,6 +90,50 @@ enum vkd3d_shader_binding_flag VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_BINDING_FLAG), }; +enum vkd3d_shader_parameter_type +{ + VKD3D_SHADER_PARAMETER_TYPE_UNKNOWN, + VKD3D_SHADER_PARAMETER_TYPE_IMMEDIATE_CONSTANT, + VKD3D_SHADER_PARAMETER_TYPE_SPECIALIZATION_CONSTANT, +}; + +enum vkd3d_shader_parameter_data_type +{ + VKD3D_SHADER_PARAMETER_DATA_TYPE_UNKNOWN, + VKD3D_SHADER_PARAMETER_DATA_TYPE_UINT32, +}; + +enum vkd3d_shader_parameter_name +{ + VKD3D_SHADER_PARAMETER_NAME_UNKNOWN, + VKD3D_SHADER_PARAMETER_NAME_RASTERIZER_SAMPLE_COUNT, +}; + +struct vkd3d_shader_parameter_immediate_constant +{ + union + { + uint32_t u32; + } u; +}; + +struct vkd3d_shader_parameter_specialization_constant +{ + uint32_t id; +}; + +struct vkd3d_shader_parameter +{ + enum vkd3d_shader_parameter_name name; + enum vkd3d_shader_parameter_type type; + enum vkd3d_shader_parameter_data_type data_type; + union + { + struct vkd3d_shader_parameter_immediate_constant immediate_constant; + struct vkd3d_shader_parameter_specialization_constant specialization_constant; + } u; +}; + struct vkd3d_shader_resource_binding { enum vkd3d_shader_descriptor_type type; @@ -185,6 +229,10 @@ struct vkd3d_shader_compile_arguments const void *next; enum vkd3d_shader_target target; + + unsigned int parameter_count; + struct vkd3d_shader_parameter *parameters; + bool dual_source_blending; const unsigned int *output_swizzles; unsigned int output_swizzle_count; |