From: Conor McCarthy cmccarthy@codeweavers.com
The linux build of DXC writes a zero checksum. --- libs/vkd3d-shader/dxbc.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/libs/vkd3d-shader/dxbc.c b/libs/vkd3d-shader/dxbc.c index 716b7bdb..6dbefe2e 100644 --- a/libs/vkd3d-shader/dxbc.c +++ b/libs/vkd3d-shader/dxbc.c @@ -179,7 +179,12 @@ static int parse_dxbc(const struct vkd3d_shader_code *dxbc, struct vkd3d_shader_ read_dword(&ptr, &checksum[2]); read_dword(&ptr, &checksum[3]); vkd3d_compute_dxbc_checksum(data, data_size, calculated_checksum); - if (memcmp(checksum, calculated_checksum, sizeof(checksum))) + if (!checksum[0] && !checksum[1] && !checksum[2] && !checksum[3]) + { + WARN("Checksum is zero; calculated checksum {0x%08x, 0x%08x, 0x%08x, 0x%08x}.\n", + calculated_checksum[0], calculated_checksum[1], calculated_checksum[2], calculated_checksum[3]); + } + else if (memcmp(checksum, calculated_checksum, sizeof(checksum))) { WARN("Checksum {0x%08x, 0x%08x, 0x%08x, 0x%08x} does not match " "calculated checksum {0x%08x, 0x%08x, 0x%08x, 0x%08x}.\n",