From bc7cb5bd77be154ff8cd631c45017d139801d192072c5e8c2b2be80113193b78 Mon Sep 17 00:00:00 2001 From: Stefan Dirsch Date: Fri, 3 Apr 2020 08:47:54 +0000 Subject: [PATCH] - U_Revert-spirv-Implement-OpCopyObject-and-OpCopyLogica.patch * revert severe spirv regression; emergency release will be available soon ... OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/Mesa?expand=0&rev=939 --- Mesa-drivers.changes | 7 +++ Mesa-drivers.spec | 2 + Mesa.changes | 7 +++ Mesa.spec | 2 + ...lement-OpCopyObject-and-OpCopyLogica.patch | 52 +++++++++++++++++++ 5 files changed, 70 insertions(+) create mode 100644 U_Revert-spirv-Implement-OpCopyObject-and-OpCopyLogica.patch diff --git a/Mesa-drivers.changes b/Mesa-drivers.changes index 180f76c..8b12fd4 100644 --- a/Mesa-drivers.changes +++ b/Mesa-drivers.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Fri Apr 3 08:38:51 UTC 2020 - Stefan Dirsch + +- U_Revert-spirv-Implement-OpCopyObject-and-OpCopyLogica.patch + * revert severe spirv regression; emergency release will be + available soon ... + ------------------------------------------------------------------- Thu Apr 2 09:27:46 UTC 2020 - Stefan Dirsch diff --git a/Mesa-drivers.spec b/Mesa-drivers.spec index 4109f0b..90aba64 100644 --- a/Mesa-drivers.spec +++ b/Mesa-drivers.spec @@ -126,6 +126,7 @@ Source6: %{name}-rpmlintrc Source7: Mesa.keyring Patch1: n_opencl_dep_libclang.patch Patch2: n_add-Mesa-headers-again.patch +Patch3: U_Revert-spirv-Implement-OpCopyObject-and-OpCopyLogica.patch # never to be upstreamed Patch54: n_drirc-disable-rgb10-for-chromium-on-amd.patch Patch58: u_dep_xcb.patch @@ -744,6 +745,7 @@ rm -rf docs/README.{VMS,WIN32,OS2} %endif %endif %patch2 -p1 +%patch3 -p1 %patch54 -p1 %patch58 -p1 diff --git a/Mesa.changes b/Mesa.changes index 180f76c..8b12fd4 100644 --- a/Mesa.changes +++ b/Mesa.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Fri Apr 3 08:38:51 UTC 2020 - Stefan Dirsch + +- U_Revert-spirv-Implement-OpCopyObject-and-OpCopyLogica.patch + * revert severe spirv regression; emergency release will be + available soon ... + ------------------------------------------------------------------- Thu Apr 2 09:27:46 UTC 2020 - Stefan Dirsch diff --git a/Mesa.spec b/Mesa.spec index eed9614..bb6338c 100644 --- a/Mesa.spec +++ b/Mesa.spec @@ -125,6 +125,7 @@ Source6: %{name}-rpmlintrc Source7: Mesa.keyring Patch1: n_opencl_dep_libclang.patch Patch2: n_add-Mesa-headers-again.patch +Patch3: U_Revert-spirv-Implement-OpCopyObject-and-OpCopyLogica.patch # never to be upstreamed Patch54: n_drirc-disable-rgb10-for-chromium-on-amd.patch Patch58: u_dep_xcb.patch @@ -743,6 +744,7 @@ rm -rf docs/README.{VMS,WIN32,OS2} %endif %endif %patch2 -p1 +%patch3 -p1 %patch54 -p1 %patch58 -p1 diff --git a/U_Revert-spirv-Implement-OpCopyObject-and-OpCopyLogica.patch b/U_Revert-spirv-Implement-OpCopyObject-and-OpCopyLogica.patch new file mode 100644 index 0000000..020d5dd --- /dev/null +++ b/U_Revert-spirv-Implement-OpCopyObject-and-OpCopyLogica.patch @@ -0,0 +1,52 @@ +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 +