mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-04-13 05:43:18 -07:00
vkd3d-shader: Add support for OpenGL tessellation shaders.
In DXBC tessellator parameters are specified in hull shaders. In OpenGL, even in SPIR-V, tessellator parameters must be specified in the tessellation evaluation shader. 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:
committed by
Alexandre Julliard
parent
22330b5414
commit
c333fddaf9
@@ -33,6 +33,7 @@ enum vkd3d_shader_structure_type
|
||||
VKD3D_SHADER_STRUCTURE_TYPE_COMPILE_ARGUMENTS,
|
||||
VKD3D_SHADER_STRUCTURE_TYPE_SCAN_INFO,
|
||||
VKD3D_SHADER_STRUCTURE_TYPE_TRANSFORM_FEEDBACK_INFO,
|
||||
VKD3D_SHADER_STRUCTURE_TYPE_DOMAIN_SHADER_COMPILE_ARGUMENTS,
|
||||
|
||||
VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_STRUCTURE_TYPE),
|
||||
};
|
||||
@@ -195,6 +196,32 @@ struct vkd3d_shader_compile_arguments
|
||||
unsigned int output_swizzle_count;
|
||||
};
|
||||
|
||||
enum vkd3d_tessellator_output_primitive
|
||||
{
|
||||
VKD3D_TESSELLATOR_OUTPUT_POINT = 1,
|
||||
VKD3D_TESSELLATOR_OUTPUT_LINE = 2,
|
||||
VKD3D_TESSELLATOR_OUTPUT_TRIANGLE_CW = 3,
|
||||
VKD3D_TESSELLATOR_OUTPUT_TRIANGLE_CCW = 4,
|
||||
};
|
||||
|
||||
enum vkd3d_tessellator_partitioning
|
||||
{
|
||||
VKD3D_TESSELLATOR_PARTITIONING_INTEGER = 1,
|
||||
VKD3D_TESSELLATOR_PARTITIONING_POW2 = 2,
|
||||
VKD3D_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD = 3,
|
||||
VKD3D_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN = 4,
|
||||
};
|
||||
|
||||
/* Extends vkd3d_shader_compile_arguments. */
|
||||
struct vkd3d_shader_domain_shader_compile_arguments
|
||||
{
|
||||
enum vkd3d_shader_structure_type type;
|
||||
const void *next;
|
||||
|
||||
enum vkd3d_tessellator_output_primitive output_primitive;
|
||||
enum vkd3d_tessellator_output_primitive partitioning;
|
||||
};
|
||||
|
||||
int vkd3d_shader_compile_dxbc(const struct vkd3d_shader_code *dxbc,
|
||||
struct vkd3d_shader_code *spirv, unsigned int compiler_options,
|
||||
const struct vkd3d_shader_interface_info *shader_interface_info,
|
||||
|
Reference in New Issue
Block a user