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