=?UTF-8?Q?J=C3=B3zef=20Kucia=20?=: vkd3d-shader: Add enum for minimum-precision data types.
Alexandre Julliard
julliard at winehq.org
Tue May 21 16:43:32 CDT 2019
Module: vkd3d
Branch: master
Commit: faeb03c1a36da8ccaddf26bb1c0e745b1edad000
URL: https://source.winehq.org/git/vkd3d.git/?a=commit;h=faeb03c1a36da8ccaddf26bb1c0e745b1edad000
Author: Józef Kucia <jkucia at codeweavers.com>
Date: Tue May 21 10:57:19 2019 +0200
vkd3d-shader: Add enum for minimum-precision data types.
Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
include/vkd3d_shader.h | 11 ++++++++++-
libs/vkd3d-shader/dxbc.c | 5 +++--
2 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/include/vkd3d_shader.h b/include/vkd3d_shader.h
index 318a438..e6cccd8 100644
--- a/include/vkd3d_shader.h
+++ b/include/vkd3d_shader.h
@@ -571,6 +571,15 @@ enum vkd3d_sysval_semantic
VKD3D_FORCE_32_BIT_ENUM(VKD3D_SYSVAL_SEMANTIC),
};
+enum vkd3d_shader_minimum_precision
+{
+ VKD3D_SHADER_MINIMUM_PRECISION_NONE = 0,
+ VKD3D_SHADER_MINIMUM_PRECISION_FLOAT_16 = 1,
+ VKD3D_SHADER_MINIMUM_PRECISION_FLOAT_8_2 = 2,
+ VKD3D_SHADER_MINIMUM_PRECISION_INT_16 = 4,
+ VKD3D_SHADER_MINIMUM_PRECISION_UINT_16 = 5,
+};
+
struct vkd3d_shader_signature_element
{
const char *semantic_name;
@@ -580,7 +589,7 @@ struct vkd3d_shader_signature_element
enum vkd3d_component_type component_type;
unsigned int register_index;
unsigned int mask;
- unsigned int min_precision;
+ enum vkd3d_shader_minimum_precision min_precision;
};
struct vkd3d_shader_signature
diff --git a/libs/vkd3d-shader/dxbc.c b/libs/vkd3d-shader/dxbc.c
index 92ea174..a9cda49 100644
--- a/libs/vkd3d-shader/dxbc.c
+++ b/libs/vkd3d-shader/dxbc.c
@@ -1992,11 +1992,11 @@ static int parse_dxbc(const char *data, size_t data_size,
static int shader_parse_signature(DWORD tag, const char *data, DWORD data_size,
struct vkd3d_shader_signature *s)
{
+ bool has_stream_index, has_min_precision;
struct vkd3d_shader_signature_element *e;
const char *ptr = data;
unsigned int i;
DWORD count;
- bool has_stream_index, has_min_precision;
if (!require_space(0, 2, sizeof(DWORD), data_size))
{
@@ -2032,6 +2032,7 @@ static int shader_parse_signature(DWORD tag, const char *data, DWORD data_size,
read_dword(&ptr, &e[i].stream_index);
else
e[i].stream_index = 0;
+
read_dword(&ptr, &name_offset);
if (!(e[i].semantic_name = shader_get_string(data, data_size, name_offset)))
{
@@ -2048,7 +2049,7 @@ static int shader_parse_signature(DWORD tag, const char *data, DWORD data_size,
if (has_min_precision)
read_dword(&ptr, &e[i].min_precision);
else
- e[i].min_precision = 0;
+ e[i].min_precision = VKD3D_SHADER_MINIMUM_PRECISION_NONE;
TRACE("Stream: %u, semantic: %s, semantic idx: %u, sysval_semantic %#x, "
"type %u, register idx: %u, use_mask %#x, input_mask %#x, precision %u.\n",
More information about the wine-cvs
mailing list