Module: vkd3d Branch: master Commit: 850badd38ca3ab786fe2d11328ac6f9e023f93b4 URL: https://source.winehq.org/git/vkd3d.git/?a=commit;h=850badd38ca3ab786fe2d113...
Author: Henri Verbeet hverbeet@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@codeweavers.com Signed-off-by: Alexandre Julliard julliard@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;