From 68f325b256d96dca923f6c7d84bc6faf43911245 Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Wed, 1 Apr 2020 12:40:34 -0500 Subject: [PATCH] Revert "spirv: Implement OpCopyObject and OpCopyLogical as blind copies" This reverts commit 7a53e67816ed9baf7d825ed60ee59f0c05f9df48. --- src/compiler/spirv/spirv_to_nir.c | 26 +++----------------------- 1 file changed, 3 insertions(+), 23 deletions(-) diff --git a/src/compiler/spirv/spirv_to_nir.c b/src/compiler/spirv/spirv_to_nir.c index a60b1cba1bd..61abc727278 100644 --- a/src/compiler/spirv/spirv_to_nir.c +++ b/src/compiler/spirv/spirv_to_nir.c @@ -3553,30 +3553,10 @@ vtn_handle_composite(struct vtn_builder *b, SpvOp opcode, w + 5, count - 5); break; + case SpvOpCopyLogical: case SpvOpCopyObject: - case SpvOpCopyLogical: { - struct vtn_value *src = vtn_untyped_value(b, w[3]); - struct vtn_value *dst = vtn_push_value(b, w[2], src->value_type); - if (opcode == SpvOpCopyObject) { - vtn_fail_if(dst->type->id != src->type->id, - "Result Type of OpCopyObject must equal Operand type"); - } else { - assert(opcode == SpvOpCopyLogical); - /* The logical type matching rules should guarantee we have exactly - * the same GLSL type which means that, if it's an SSA value, we - * don't actually need to clone it; we can just copy it blind. - */ - vtn_fail_if(dst->type->type != src->type->type, - "Result Type of OpCopyLogical must logically match " - "the Operand type"); - } - struct vtn_value src_copy = *src; - src_copy.name = dst->name; - src_copy.decoration = dst->decoration; - src_copy.type = dst->type; - *dst = src_copy; - return; - } + ssa = vtn_composite_copy(b, vtn_ssa_value(b, w[3])); + break; default: vtn_fail_with_opcode("unknown composite operation", opcode); -- 2.16.4