Henri Verbeet : vkd3d-shader: Handle double-precision floating-point data in vkd3d_shader_scan_typed_resource_declaration().
Alexandre Julliard
julliard at winehq.org
Mon Feb 28 15:48:38 CST 2022
Module: vkd3d
Branch: master
Commit: 850badd38ca3ab786fe2d11328ac6f9e023f93b4
URL: https://source.winehq.org/git/vkd3d.git/?a=commit;h=850badd38ca3ab786fe2d11328ac6f9e023f93b4
Author: Henri Verbeet <hverbeet at codeweavers.com>
Date: Mon Feb 28 12:23:47 2022 +0100
vkd3d-shader: Handle double-precision floating-point data in vkd3d_shader_scan_typed_resource_declaration().
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
include/vkd3d_shader.h | 8 ++++++++
libs/vkd3d-shader/vkd3d_shader_main.c | 6 ++++++
2 files changed, 14 insertions(+)
diff --git a/include/vkd3d_shader.h b/include/vkd3d_shader.h
index 1576411..df15047 100644
--- a/include/vkd3d_shader.h
+++ b/include/vkd3d_shader.h
@@ -1208,6 +1208,14 @@ enum vkd3d_shader_resource_data_type
VKD3D_SHADER_RESOURCE_DATA_FLOAT = 0x5,
/** Undefined/type-less. \since 1.3 */
VKD3D_SHADER_RESOURCE_DATA_MIXED = 0x6,
+ /** IEEE double-precision floating-point. \since 1.3 */
+ VKD3D_SHADER_RESOURCE_DATA_DOUBLE = 0x7,
+ /** Continuation of the previous component. For example, 64-bit
+ * double-precision floating-point data may be returned as two 32-bit
+ * components, with the first component (containing the LSB) specified as
+ * VKD3D_SHADER_RESOURCE_DATA_DOUBLE, and the second component specified
+ * as VKD3D_SHADER_RESOURCE_DATA_CONTINUED. \since 1.3 */
+ VKD3D_SHADER_RESOURCE_DATA_CONTINUED = 0x8,
VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_RESOURCE_DATA_TYPE),
};
diff --git a/libs/vkd3d-shader/vkd3d_shader_main.c b/libs/vkd3d-shader/vkd3d_shader_main.c
index 298289c..b5b66e1 100644
--- a/libs/vkd3d-shader/vkd3d_shader_main.c
+++ b/libs/vkd3d-shader/vkd3d_shader_main.c
@@ -757,6 +757,12 @@ static void vkd3d_shader_scan_typed_resource_declaration(struct vkd3d_shader_sca
case VKD3D_DATA_MIXED:
resource_data_type = VKD3D_SHADER_RESOURCE_DATA_MIXED;
break;
+ case VKD3D_DATA_DOUBLE:
+ resource_data_type = VKD3D_SHADER_RESOURCE_DATA_DOUBLE;
+ break;
+ case VKD3D_DATA_CONTINUED:
+ resource_data_type = VKD3D_SHADER_RESOURCE_DATA_CONTINUED;
+ break;
default:
ERR("Invalid resource data type %#x.\n", semantic->resource_data_type[0]);
resource_data_type = VKD3D_SHADER_RESOURCE_DATA_FLOAT;
More information about the wine-cvs
mailing list