upg bullet mesa
This commit is contained in:
parent
07ae374246
commit
2cf2d3cc04
|
@ -7,11 +7,10 @@
|
|||
|
||||
pkgbase=bullet
|
||||
pkgname=('bullet' 'bullet-dp' 'bullet-docs' 'python-pybullet')
|
||||
pkgver=3.24
|
||||
_pkgver=3.24
|
||||
pkgrel=02
|
||||
pkgver=3.25
|
||||
_pkgver=3.25
|
||||
pkgrel=01
|
||||
pkgdesc="A 3D Collision Detection and Rigid Body Dynamics Library for games and animation"
|
||||
arch=('x86_64')
|
||||
url="http://www.bulletphysics.com/Bullet/"
|
||||
makedepends=('cmake' 'doxygen' 'graphviz' 'ttf-dejavu' 'mesa' 'glu' 'python' 'python-numpy' 'python-setuptools' 'ninja')
|
||||
#source=("$pkgname-$pkgver.tar.gz::https://github.com/bulletphysics/bullet3/archive/${_commit}.tar.gz"
|
||||
|
@ -26,6 +25,7 @@ prepare() {
|
|||
build() {
|
||||
cp -r bullet3-${_pkgver} bullet3-${_pkgver}-dp
|
||||
|
||||
export CXXFLAGS+=" -ffat-lto-objects"
|
||||
cd bullet3-${_pkgver}
|
||||
cmake \
|
||||
-Bbuild \
|
||||
|
@ -129,20 +129,20 @@ package_bullet-docs() {
|
|||
cp -r html "${pkgdir}"/usr/share/doc/bullet/html
|
||||
}
|
||||
|
||||
#---- license gpg-key sha256sums ----
|
||||
#---- arch license gpg-key & sha256sums ----
|
||||
|
||||
arch=(x86_64)
|
||||
|
||||
license=('custom:zlib')
|
||||
|
||||
sha256sums=(6b1e987d6f8156fa8a6468652f4eaad17b3e11252c9870359e5bca693e35780b # bullet-3.24.tar.gz
|
||||
68ca940af489f7e9718fe9199cf0c3428c8e4d2b4ae1576847fffe56c0da50f7) # bullet3_examplebrowser.sh
|
||||
|
||||
|
||||
|
||||
|
||||
####### diffs between old and new Arch PKGBUILD
|
||||
|
||||
|
||||
|
||||
|
||||
#### systemd crap in new PKGBUILD
|
||||
scan for systemd ipv6 service & socket
|
||||
sha256sums=(c45afb6399e3f68036ddb641c6bf6f552bf332d5ab6be62f7e6c54eda05ceb77 # bullet-3.25.tar.gz
|
||||
68ca940af489f7e9718fe9199cf0c3428c8e4d2b4ae1576847fffe56c0da50f7) # bullet3_examplebrowser.sh
|
||||
|
||||
sha512sums=('7086e5fcf69635801bb311261173cb8d173b712ca1bd78be03df48fad884674e85512861190e45a1a62d5627aaad65cde08c175c44a3be9afa410d3dfd5358d4'
|
||||
'8741ad94b6c46c226d89aebc8ab06d8a11bac3c04d3f0a2bf7a7524792a3375aa7bf7d295410b16fbeb4c348a31057b4570acdebe9bbaea251f44daca8d9fe81')
|
||||
|
||||
## 9ae6e93fc73cb04c71d96f49ad87ea0f461e4f23856960a3d32d6fcfd6c72c47 bullet-3.25-01-x86_64.pkg.tar.lz
|
||||
## 1b9ef639a8bf054948544aafb649546859525f241d047f1330dd48d45a41c281 bullet-docs-3.25-01-x86_64.pkg.tar.lz
|
||||
## e76a299580309a015f130aa3e8729dc66605e3ca0d292d6491ea1b4036a10061 bullet-dp-3.25-01-x86_64.pkg.tar.lz
|
||||
## 07692749619b6fd2f9df007fac5e7cdf163689a45bbe2736ecbda3ed8fc8cb40 python-pybullet-3.25-01-x86_64.pkg.tar.lz
|
||||
|
||||
|
|
|
@ -3,9 +3,9 @@
|
|||
|
||||
pkgbase=bullet
|
||||
pkgname=('bullet' 'bullet-dp' 'bullet-docs' 'python-pybullet')
|
||||
pkgver=3.24
|
||||
_pkgver=3.24
|
||||
pkgrel=2
|
||||
pkgver=3.25
|
||||
_pkgver=3.25
|
||||
pkgrel=1
|
||||
pkgdesc="A 3D Collision Detection and Rigid Body Dynamics Library for games and animation"
|
||||
arch=('x86_64')
|
||||
url="http://www.bulletphysics.com/Bullet/"
|
||||
|
@ -13,7 +13,7 @@ license=('custom:zlib')
|
|||
makedepends=('cmake' 'doxygen' 'graphviz' 'ttf-dejavu' 'mesa' 'glu' 'python' 'python-numpy' 'python-setuptools' 'ninja')
|
||||
source=("$pkgname-$pkgver.tar.gz::https://github.com/bulletphysics/bullet3/archive/refs/tags/${_pkgver}.tar.gz"
|
||||
bullet3_examplebrowser.sh)
|
||||
sha512sums=('0f8cf009e50853b2ff461414893f09f752774dac3fb51ba158ef670865b61140a13567cadbf7b19d643d24d6207a23f825773edb86234591f83bd19e3fb3d054'
|
||||
sha512sums=('7086e5fcf69635801bb311261173cb8d173b712ca1bd78be03df48fad884674e85512861190e45a1a62d5627aaad65cde08c175c44a3be9afa410d3dfd5358d4'
|
||||
'8741ad94b6c46c226d89aebc8ab06d8a11bac3c04d3f0a2bf7a7524792a3375aa7bf7d295410b16fbeb4c348a31057b4570acdebe9bbaea251f44daca8d9fe81')
|
||||
|
||||
prepare() {
|
||||
|
@ -24,6 +24,7 @@ prepare() {
|
|||
build() {
|
||||
cp -r bullet3-${_pkgver} bullet3-${_pkgver}-dp
|
||||
|
||||
export CXXFLAGS+=" -ffat-lto-objects"
|
||||
cd bullet3-${_pkgver}
|
||||
cmake \
|
||||
-Bbuild \
|
||||
|
|
|
@ -8,3 +8,6 @@ python
|
|||
python-numpy
|
||||
python-setuptools
|
||||
ninja
|
||||
libgit2
|
||||
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
|
||||
real 33m22.070s
|
||||
user 96m7.343s
|
||||
sys 5m15.576s
|
||||
|
||||
real 30m18.479s
|
||||
user 91m42.090s
|
||||
sys 5m0.016s
|
||||
|
||||
|
|
|
@ -0,0 +1,130 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
|
||||
Date: Mon, 3 Apr 2023 14:52:59 +0300
|
||||
Subject: [PATCH] intel/fs: fix scheduling of HALT instructions
|
||||
|
||||
With the following test :
|
||||
|
||||
dEQP-VK.spirv_assembly.instruction.terminate_invocation.terminate.no_out_of_bounds_load
|
||||
|
||||
There is a :
|
||||
|
||||
shader_start:
|
||||
... <- no control flow
|
||||
g0 = some_alu
|
||||
g1 = fbl
|
||||
g2 = broadcast g3, g1
|
||||
g4 = get_buffer_size g2
|
||||
... <- no control flow
|
||||
halt <- on some lanes
|
||||
g5 = send <surface>, g4
|
||||
|
||||
eliminate_find_live_channel will remove the fbl/broadcast because it
|
||||
assumes lane0 is active at get_buffer_size :
|
||||
|
||||
shader_start:
|
||||
... <- no control flow
|
||||
g0 = some_alu
|
||||
g4 = get_buffer_size g0
|
||||
... <- no control flow
|
||||
halt <- on some lanes
|
||||
g5 = send <surface>, g4
|
||||
|
||||
But then the instruction scheduler will move the get_buffer_size after
|
||||
the halt :
|
||||
|
||||
shader_start:
|
||||
... <- no control flow
|
||||
halt <- on some lanes
|
||||
g0 = some_alu
|
||||
g4 = get_buffer_size g0
|
||||
g5 = send <surface>, g4
|
||||
|
||||
get_buffer_size pulls the surface index from lane0 in g0 which could
|
||||
have been turned off by the halt and we end up accessing an invalid
|
||||
surface handle.
|
||||
|
||||
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
|
||||
Cc: mesa-stable
|
||||
---
|
||||
.../compiler/brw_schedule_instructions.cpp | 46 +++++++++++++++++++
|
||||
1 file changed, 46 insertions(+)
|
||||
|
||||
diff --git a/src/intel/compiler/brw_schedule_instructions.cpp b/src/intel/compiler/brw_schedule_instructions.cpp
|
||||
index 3286e3f83b96..43f63784b2e8 100644
|
||||
--- a/src/intel/compiler/brw_schedule_instructions.cpp
|
||||
+++ b/src/intel/compiler/brw_schedule_instructions.cpp
|
||||
@@ -651,6 +651,7 @@ public:
|
||||
ralloc_free(this->mem_ctx);
|
||||
}
|
||||
void add_barrier_deps(schedule_node *n);
|
||||
+ void add_cross_lane_deps(schedule_node *n);
|
||||
void add_dep(schedule_node *before, schedule_node *after, int latency);
|
||||
void add_dep(schedule_node *before, schedule_node *after);
|
||||
|
||||
@@ -1098,6 +1099,28 @@ is_scheduling_barrier(const backend_instruction *inst)
|
||||
inst->has_side_effects();
|
||||
}
|
||||
|
||||
+static bool
|
||||
+has_cross_lane_access(const fs_inst *inst)
|
||||
+{
|
||||
+ if (inst->opcode == SHADER_OPCODE_BROADCAST ||
|
||||
+ inst->opcode == SHADER_OPCODE_READ_SR_REG ||
|
||||
+ inst->opcode == SHADER_OPCODE_CLUSTER_BROADCAST ||
|
||||
+ inst->opcode == SHADER_OPCODE_SHUFFLE ||
|
||||
+ inst->opcode == FS_OPCODE_LOAD_LIVE_CHANNELS ||
|
||||
+ inst->opcode == SHADER_OPCODE_FIND_LAST_LIVE_CHANNEL ||
|
||||
+ inst->opcode == SHADER_OPCODE_FIND_LIVE_CHANNEL)
|
||||
+ return true;
|
||||
+
|
||||
+ for (unsigned s = 0; s < inst->sources; s++) {
|
||||
+ if (inst->src[s].file == VGRF) {
|
||||
+ if (inst->src[s].stride == 0)
|
||||
+ return true;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ return false;
|
||||
+}
|
||||
+
|
||||
/**
|
||||
* Sometimes we really want this node to execute after everything that
|
||||
* was before it and before everything that followed it. This adds
|
||||
@@ -1128,6 +1151,25 @@ instruction_scheduler::add_barrier_deps(schedule_node *n)
|
||||
}
|
||||
}
|
||||
|
||||
+/**
|
||||
+ * Because some instructions like HALT can disable lanes, scheduling prior to
|
||||
+ * a cross lane access should not be allowed, otherwise we could end up with
|
||||
+ * later instructions accessing uninitialized data.
|
||||
+ */
|
||||
+void
|
||||
+instruction_scheduler::add_cross_lane_deps(schedule_node *n)
|
||||
+{
|
||||
+ schedule_node *prev = (schedule_node *)n->prev;
|
||||
+
|
||||
+ if (prev) {
|
||||
+ while (!prev->is_head_sentinel()) {
|
||||
+ if (has_cross_lane_access((fs_inst *)prev->inst))
|
||||
+ add_dep(prev, n, 0);
|
||||
+ prev = (schedule_node *)prev->prev;
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
/* instruction scheduling needs to be aware of when an MRF write
|
||||
* actually writes 2 MRFs.
|
||||
*/
|
||||
@@ -1165,6 +1207,10 @@ fs_instruction_scheduler::calculate_deps()
|
||||
if (is_scheduling_barrier(inst))
|
||||
add_barrier_deps(n);
|
||||
|
||||
+ if (inst->opcode == BRW_OPCODE_HALT ||
|
||||
+ inst->opcode == SHADER_OPCODE_HALT_TARGET)
|
||||
+ add_cross_lane_deps(n);
|
||||
+
|
||||
/* read-after-write deps. */
|
||||
for (int i = 0; i < inst->sources; i++) {
|
||||
if (inst->src[i].file == VGRF) {
|
|
@ -10,7 +10,7 @@ pkgname=('vulkan-mesa-layers' 'opencl-mesa' 'vulkan-intel' 'vulkan-radeon' 'vulk
|
|||
'vulkan-virtio' 'libva-mesa-driver' 'mesa-vdpau' 'mesa')
|
||||
pkgdesc="An open-source implementation of the OpenGL specification w/o systemd or zstd"
|
||||
pkgver=23.0.1
|
||||
pkgrel=01
|
||||
pkgrel=02
|
||||
#options=('debug' '!lto') # uncomment this if you want the debug package built # Arch removed debug for 22.3.3-3 version
|
||||
options=('!lto')
|
||||
makedepends=('python-mako' 'libxml2' 'libx11' 'xorgproto' 'libdrm' 'libxshmfence' 'libxxf86vm'
|
||||
|
@ -20,9 +20,9 @@ makedepends=('python-mako' 'libxml2' 'libx11' 'xorgproto' 'libdrm' 'libxshmfence
|
|||
makedepends+=('rust' 'rust-bindgen' 'spirv-tools' 'spirv-llvm-translator') # rusticl dependencies
|
||||
url="https://www.mesa3d.org/"
|
||||
source=(https://mesa.freedesktop.org/archive/mesa-${pkgver}.tar.xz{,.sig}
|
||||
# 0001-anv-force-MEDIA_INTERFACE_DESCRIPTOR_LOAD-reemit-aft.patch
|
||||
0001-iris-Retry-DRM_IOCTL_I915_GEM_EXECBUFFER2-on-ENOMEM.patch
|
||||
0002-Revert-iris-Avoid-abort-if-kernel-can-t-allocate-mem.patch
|
||||
0003-intel-fs-fix-scheduling-of-HALT-instructions.patch
|
||||
LICENSE)
|
||||
|
||||
prepare() {
|
||||
|
@ -37,6 +37,11 @@ prepare() {
|
|||
# https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20449
|
||||
patch -Np1 -i ../0001-iris-Retry-DRM_IOCTL_I915_GEM_EXECBUFFER2-on-ENOMEM.patch
|
||||
patch -Np1 -i ../0002-Revert-iris-Avoid-abort-if-kernel-can-t-allocate-mem.patch
|
||||
|
||||
# https://gitlab.freedesktop.org/mesa/mesa/-/issues/7110
|
||||
# https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20765
|
||||
patch -Np1 -i ../0003-intel-fs-fix-scheduling-of-HALT-instructions.patch
|
||||
|
||||
}
|
||||
|
||||
build() {
|
||||
|
@ -254,14 +259,17 @@ sha256sums=(e8e586856b55893abae9bdcdb98b41c081d909bb1faf372e6e7262307bf34adf #
|
|||
b6d7db7f4835a65082a3dc10abaa20ecc1b05a4c87467fb8aaa8cbd1b24d33d8 # mesa-23.0.1.tar.xz.sig
|
||||
99264c77d63d6fa810e295914808cde9f580a64e913e99fa794c1aa25a4f8fb2 # 0001-iris-Retry-DRM_IOCTL_I915_GEM_EXECBUFFER2-on-ENOMEM.patch
|
||||
d6ef8fb1809e8aeae0ec32bfe916adb770c64880bfd3d0f4472a616c9f356a9a # 0002-Revert-iris-Avoid-abort-if-kernel-can-t-allocate-mem.patch
|
||||
dc6790b5be0e80c23e74ae18ca1a2b40f57f4211cc7b645bf22b63af3b790e40 # 0003-intel-fs-fix-scheduling-of-HALT-instructions.patch
|
||||
7052ba73bb07ea78873a2431ee4e828f4e72bda7d176d07f770fa48373dec537) # LICENSE
|
||||
|
||||
## 006cf25e83b6031ea4277bdec5d8ace2d34a21a9b7d0a3feaf9123b04bf0b68e libva-mesa-driver-23.0.1-01-x86_64.pkg.tar.lz
|
||||
## c7ae665bd50aa228f02f0adbce6035836fc151bba29ff9333dca3170111fd851 mesa-23.0.1-01-x86_64.pkg.tar.lz
|
||||
## c46637bbc17e449d35a06334cf1178add96dcd632fd17374f297d7cdbf95da34 mesa-vdpau-23.0.1-01-x86_64.pkg.tar.lz
|
||||
## 937d2bfd3acc5b6c0b9acb42c181ae4c52577abb35053cb20c21697a604a6476 opencl-mesa-23.0.1-01-x86_64.pkg.tar.lz
|
||||
## af9a1b2419d675cf372b4c1d42ae0686fd589e2341e4ced9863a10158ea05aca vulkan-intel-23.0.1-01-x86_64.pkg.tar.lz
|
||||
## 732de4159346f6bb05acbc23e59e69c1d4f28ced2440921b5758e110824c233a vulkan-mesa-layers-23.0.1-01-x86_64.pkg.tar.lz
|
||||
## cdfc47d8697401e5362cd74001de88ea9d6cb5a5d9c571a7f9f482b682e5fc27 vulkan-radeon-23.0.1-01-x86_64.pkg.tar.lz
|
||||
## 40d8d6b7e79d98352715e0419b1eabd9f1931101105ae1112085c73e2e0cb5a6 vulkan-swrast-23.0.1-01-x86_64.pkg.tar.lz
|
||||
## 10bfdb02b6c375ae71f4313937adae51920d5a1abca56fe122672e9f3ff5dd2d vulkan-virtio-23.0.1-01-x86_64.pkg.tar.lz
|
||||
## 5969cc13e4ec1c4efc9807d373ef2307801ffc0eca1a281cc3feb5d3ffb9667f libva-mesa-driver-23.0.1-02-x86_64.pkg.tar.lz
|
||||
## e729f720da7e5f074130e0dc047ca9804d3b5fc9b6a47f72e9261edf11850810 mesa-23.0.1-02-x86_64.pkg.tar.lz
|
||||
## ee6b1e1dc643863c8c621f600275c5a6c98f0a22e04177036ac26021cee0031b mesa-vdpau-23.0.1-02-x86_64.pkg.tar.lz
|
||||
## a8c6df0bb4706854dca1d66046bbd2994de705e02cbfdbcb90f9743cb2eb3c6f opencl-mesa-23.0.1-02-x86_64.pkg.tar.lz
|
||||
## aa5306abad5e6e0cb3f3a6522e14877f5554aa556f89ac96702ce5a7b5bd981c vulkan-intel-23.0.1-02-x86_64.pkg.tar.lz
|
||||
## 39f4df626106244a8573cfb4e44d65ec343cdc7f7c5a9165455d5dddce89714e vulkan-mesa-layers-23.0.1-02-x86_64.pkg.tar.lz
|
||||
## 4c61c60faadf94052dc2bcfe4143ff8e0d9184505ec34ceaf82d9619fa0e47e5 vulkan-radeon-23.0.1-02-x86_64.pkg.tar.lz
|
||||
## c904cdb3f107edc805c90843557bb6c5c3138290fd2de44fde5d28b5c9132f6d vulkan-swrast-23.0.1-02-x86_64.pkg.tar.lz
|
||||
## 46d470afd9e77c5b507fedf46e08ada83110ce510f764c6574a80389447cc006 vulkan-virtio-23.0.1-02-x86_64.pkg.tar.lz
|
||||
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ pkgbase=mesa
|
|||
pkgname=('vulkan-mesa-layers' 'opencl-mesa' 'vulkan-intel' 'vulkan-radeon' 'vulkan-swrast' 'vulkan-virtio' 'libva-mesa-driver' 'mesa-vdpau' 'mesa')
|
||||
pkgdesc="An open-source implementation of the OpenGL specification"
|
||||
pkgver=23.0.1
|
||||
pkgrel=1
|
||||
pkgrel=2
|
||||
arch=('x86_64')
|
||||
makedepends=('python-mako' 'libxml2' 'libx11' 'xorgproto' 'libdrm' 'libxshmfence' 'libxxf86vm'
|
||||
'libxdamage' 'libvdpau' 'libva' 'wayland' 'wayland-protocols' 'zstd' 'elfutils' 'llvm'
|
||||
|
@ -19,16 +19,19 @@ license=('custom')
|
|||
source=(https://mesa.freedesktop.org/archive/mesa-${pkgver}.tar.xz{,.sig}
|
||||
0001-iris-Retry-DRM_IOCTL_I915_GEM_EXECBUFFER2-on-ENOMEM.patch
|
||||
0002-Revert-iris-Avoid-abort-if-kernel-can-t-allocate-mem.patch
|
||||
0003-intel-fs-fix-scheduling-of-HALT-instructions.patch
|
||||
LICENSE)
|
||||
sha256sums=('e8e586856b55893abae9bdcdb98b41c081d909bb1faf372e6e7262307bf34adf'
|
||||
'SKIP'
|
||||
'99264c77d63d6fa810e295914808cde9f580a64e913e99fa794c1aa25a4f8fb2'
|
||||
'd6ef8fb1809e8aeae0ec32bfe916adb770c64880bfd3d0f4472a616c9f356a9a'
|
||||
'dc6790b5be0e80c23e74ae18ca1a2b40f57f4211cc7b645bf22b63af3b790e40'
|
||||
'7052ba73bb07ea78873a2431ee4e828f4e72bda7d176d07f770fa48373dec537')
|
||||
b2sums=('50d358e393037381d0d848f868ac3439b0851809c3533432dc428bd77e81bc71bbfd2b598e221b6e8c4c2528ef32e5624aec4fe2e552e01ee98abbcf96a1f5b7'
|
||||
'SKIP'
|
||||
'a90bfc47fb3a46eff1ef2455c7aa18c2bb515ec217b423d0a87cc5f3b824a77c0381e1378498464418644108142022dcd3c289e157877c6ae7584beaec1d9987'
|
||||
'bd52994305fc0fa2f12c46ea3208bbb24f97495d9bad73120d83a6cdcf7e48f5ff0d14ac0055765516b70caacdf024fca4159b70b054e85f2783c78c9218aefe'
|
||||
'37d1d070c45c85bce8abe3524a3f8d9ac9ed6326a3eec653cd89fffce3630b08eb9b96b11aeb495488230449c99f9b508f73a15e53265d2b159286b0e2dda7cc'
|
||||
'1ecf007b82260710a7bf5048f47dd5d600c168824c02c595af654632326536a6527fbe0738670ee7b921dd85a70425108e0f471ba85a8e1ca47d294ad74b4adb')
|
||||
validpgpkeys=('8703B6700E7EE06D7A39B8D6EDAE37B02CEB490D' # Emil Velikov <emil.l.velikov@gmail.com>
|
||||
'946D09B5E4C9845E63075FF1D961C596A7203456' # Andres Gomez <tanty@igalia.com>
|
||||
|
@ -44,6 +47,10 @@ prepare() {
|
|||
# https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20449
|
||||
patch -Np1 -i ../0001-iris-Retry-DRM_IOCTL_I915_GEM_EXECBUFFER2-on-ENOMEM.patch
|
||||
patch -Np1 -i ../0002-Revert-iris-Avoid-abort-if-kernel-can-t-allocate-mem.patch
|
||||
|
||||
# https://gitlab.freedesktop.org/mesa/mesa/-/issues/7110
|
||||
# https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20765
|
||||
patch -Np1 -i ../0003-intel-fs-fix-scheduling-of-HALT-instructions.patch
|
||||
}
|
||||
|
||||
build() {
|
||||
|
|
Loading…
Reference in New Issue