Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ValveSoftware/vkd3d.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJózef Kucia <jkucia@codeweavers.com>2019-04-26 13:37:04 +0300
committerAlexandre Julliard <julliard@winehq.org>2019-04-26 17:37:18 +0300
commitf510e93948a931f557597888ebd99935efa79d1c (patch)
tree0f70a3a0beeb9ad2e7d2022ebfd04a82b2cd3867 /include
parentac7b007fc770f87bb7925899516dbf081e9998f8 (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.h48
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;