mirror of
https://github.com/PCSX2/pcsx2.git
synced 2026-08-26 07:34:35 +02:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
41a47f99f7 | ||
|
|
31fa1ea21e | ||
|
|
fb49c71118 | ||
|
|
0b87cfc7d4 | ||
|
|
76fa37019e | ||
|
|
d94e861a78 | ||
|
|
d9b537d334 | ||
|
|
93c2081d3f | ||
|
|
5ad8ed43fd | ||
|
|
1f4416a77a | ||
|
|
e9d4dba64b | ||
|
|
3a2307a5c6 | ||
|
|
d6c1af1a0c | ||
|
|
f6cb7ca01d | ||
|
|
bc0fdc49e0 | ||
|
|
43ccb63eb5 | ||
|
|
a0000a8547 | ||
|
|
a37ff0c4f2 | ||
|
|
e449ad7472 | ||
|
|
a718a785b3 | ||
|
|
ea7cc08832 | ||
|
|
a342f4c7e9 | ||
|
|
0af2657bbc | ||
|
|
451c2a244f | ||
|
|
a603aed7db | ||
|
|
f6bbf410f1 | ||
|
|
018692edd0 | ||
|
|
2740785df5 | ||
|
|
613a9964a1 | ||
|
|
2ef2f5db1d | ||
|
|
577e15a949 | ||
|
|
58ff3e6c0d | ||
|
|
80c471a939 | ||
|
|
b78fca7b91 | ||
|
|
be76092195 | ||
|
|
771d3c3c9d | ||
|
|
8c21765c0f | ||
|
|
a2e3522862 | ||
|
|
e20c2210f5 | ||
|
|
11f3fecd11 | ||
|
|
1a5d7c1c5d | ||
|
|
0bca1aab74 | ||
|
|
95fa15f902 | ||
|
|
d586582489 | ||
|
|
7ef46eaa29 | ||
|
|
38957625ad | ||
|
|
d30e076dbd | ||
|
|
0619555232 | ||
|
|
3ffa5eb613 | ||
|
|
c60583c6bb | ||
|
|
4cf7a1086d | ||
|
|
fa75006ca9 | ||
|
|
d28b2fa057 | ||
|
|
0a90765ed0 | ||
|
|
2892f629f0 | ||
|
|
5be05853c6 | ||
|
|
0f569ac5cb | ||
|
|
b725c1e8e0 | ||
|
|
4d418d1bb5 | ||
|
|
752594f69a | ||
|
|
b6125e97e9 | ||
|
|
c00caa886e | ||
|
|
37540d1c68 | ||
|
|
8fca67f0d6 | ||
|
|
13f891c34f | ||
|
|
f924ab721a | ||
|
|
ae3708edc6 | ||
|
|
4ef2574ae3 | ||
|
|
154171e01e | ||
|
|
17732a0b8a | ||
|
|
b6906d1edc | ||
|
|
26329765d1 | ||
|
|
fab7424ebb | ||
|
|
e4c9416c4a | ||
|
|
72c661e8f5 | ||
|
|
d5acd98eb3 | ||
|
|
849c754ca2 | ||
|
|
e6f6385173 | ||
|
|
d3ca2bf58f | ||
|
|
82f1dbca89 | ||
|
|
c85b826978 | ||
|
|
f28c40aa8e | ||
|
|
3fa3bc1719 | ||
|
|
93bd95f4bd | ||
|
|
7d572ff794 | ||
|
|
693278a87b | ||
|
|
b6bcbcac96 | ||
|
|
4cfea01aa8 | ||
|
|
9e301e1aec | ||
|
|
8502acffb7 | ||
|
|
580b7c94fb | ||
|
|
fe1e432f9e | ||
|
|
904ccc7a91 | ||
|
|
069196704e | ||
|
|
2db6bf399e | ||
|
|
a5bc49ee4a | ||
|
|
949d455d2f | ||
|
|
3254d27fc2 | ||
|
|
4921afdb51 | ||
|
|
54b653cc00 | ||
|
|
3066ab0d06 | ||
|
|
17c5acda3c | ||
|
|
ee3cacffd7 | ||
|
|
0cd5b9072c | ||
|
|
987fdd32fb | ||
|
|
314143db7a | ||
|
|
10f468dd3f | ||
|
|
c66881d4a6 | ||
|
|
45d42da528 | ||
|
|
c50e1800ec | ||
|
|
06aa051162 | ||
|
|
33e7bcbdb8 | ||
|
|
c44266eb82 | ||
|
|
dcbb1483b9 | ||
|
|
4620b566b9 | ||
|
|
076b11a735 | ||
|
|
246f783a64 | ||
|
|
ac3e7fbf44 | ||
|
|
dda1665b9c | ||
|
|
db4d721b93 | ||
|
|
f48824dec0 | ||
|
|
eac90c6b42 | ||
|
|
ec5a91b89a | ||
|
|
a9a3342519 | ||
|
|
51f3e1b684 | ||
|
|
2459145dbf | ||
|
|
d48abe03b0 | ||
|
|
1e4e54eca0 | ||
|
|
9d23da226f | ||
|
|
c911738b5c | ||
|
|
574e0a10e2 | ||
|
|
f240660a6e | ||
|
|
b2416c6466 | ||
|
|
3ed489f35c | ||
|
|
f96ad8ff6e | ||
|
|
2d7289a248 | ||
|
|
2de6a5029f | ||
|
|
bed3cae6df | ||
|
|
b3bf3e46be | ||
|
|
336ef58f61 | ||
|
|
f3e7491c3a | ||
|
|
48b9d2f53e | ||
|
|
1dff9897c9 | ||
|
|
b5a61d2915 | ||
|
|
0c5b43bcdd | ||
|
|
fe8ebe3f79 | ||
|
|
265afcec7e | ||
|
|
26d5ee0c93 | ||
|
|
6e1011f18a | ||
|
|
9bca1946ed | ||
|
|
0c8beedb94 | ||
|
|
c274e447dd | ||
|
|
2bc2891c73 | ||
|
|
fe1bebc12d | ||
|
|
339c483a4b | ||
|
|
73f1f0e1d6 | ||
|
|
f83fc9ba27 | ||
|
|
4e5692e935 | ||
|
|
2bb707299a | ||
|
|
9aa46e8543 | ||
|
|
4831e51cb4 | ||
|
|
4ea331ecf2 | ||
|
|
79764430d8 | ||
|
|
51107ee9dd | ||
|
|
d359e8420b | ||
|
|
ea11bb61e3 | ||
|
|
4a90a3e1c9 | ||
|
|
8f73e93205 | ||
|
|
1a7263cb9f | ||
|
|
d6332e796e | ||
|
|
ebcb3b413c | ||
|
|
2a92edd7ed | ||
|
|
9584672051 | ||
|
|
6018936dc2 | ||
|
|
d00da31e60 | ||
|
|
afd8ff1435 | ||
|
|
4f65ef4d33 | ||
|
|
cdadad5689 | ||
|
|
00d768a6bf | ||
|
|
08faba5455 | ||
|
|
c1e92b594e | ||
|
|
d38147bcf2 | ||
|
|
8681eb0251 | ||
|
|
72ecb0fce3 | ||
|
|
17b052430b | ||
|
|
94d52d9ddb | ||
|
|
9ecaa46eb8 | ||
|
|
a10b0c5dc5 | ||
|
|
4242201777 | ||
|
|
ff82232e27 | ||
|
|
5ee0565342 | ||
|
|
483e2236ca | ||
|
|
7ee62b8222 | ||
|
|
74c14fdf66 | ||
|
|
8a34c4b2e2 | ||
|
|
b1dcd53212 | ||
|
|
4d1671f147 | ||
|
|
deedc5d79f | ||
|
|
02dc164611 | ||
|
|
de7bbd6c37 | ||
|
|
ddf66056ec | ||
|
|
f0a7c41b81 | ||
|
|
cb200f6e9e | ||
|
|
78a66147f1 | ||
|
|
5999a1a62e | ||
|
|
ab56cfe762 | ||
|
|
654c501fb8 | ||
|
|
227c2563c5 | ||
|
|
4b270e703e | ||
|
|
5bc3b4bf7d | ||
|
|
353124d82d | ||
|
|
15a82e2324 | ||
|
|
2b85f96406 | ||
|
|
8d408eaadb | ||
|
|
51f29f40ee | ||
|
|
72d6ff625c | ||
|
|
b1766779ee | ||
|
|
a42143690c | ||
|
|
c21df3b7f0 | ||
|
|
a8faf2eb6e | ||
|
|
8abe5b42e5 | ||
|
|
3cfc4cd5be | ||
|
|
661d22f46c | ||
|
|
1f40302b36 | ||
|
|
dff6d1843a | ||
|
|
07b7420ba5 | ||
|
|
43afeb205f | ||
|
|
6aeca2c1e3 | ||
|
|
30b1129d60 | ||
|
|
8e0e4cf25d | ||
|
|
7aa3322a04 | ||
|
|
07789f5dad | ||
|
|
a1ffe4deff | ||
|
|
f407bc12df | ||
|
|
4df5c9e1e1 | ||
|
|
a2abe49d3f | ||
|
|
b0e911ad7f | ||
|
|
3bb6eb16de | ||
|
|
a978abb523 | ||
|
|
c4345f9a85 | ||
|
|
ca92d4ea3d | ||
|
|
5c95a6f4fa | ||
|
|
dfb0246826 | ||
|
|
791bf2c52e | ||
|
|
18bdf4a8d0 | ||
|
|
af789a4f8d | ||
|
|
30a2675972 | ||
|
|
5539fe0b73 | ||
|
|
30504660fa | ||
|
|
00d06db90e | ||
|
|
108a0d0ce6 | ||
|
|
1bff48cbf9 | ||
|
|
c91cbebc9f | ||
|
|
305df89438 | ||
|
|
42eb289d97 | ||
|
|
b8596c6f2a |
@@ -61,12 +61,12 @@ body:
|
||||
options:
|
||||
- Windows 11
|
||||
- Windows 10 (64bit)
|
||||
- Windows 8.1 (64bit)
|
||||
- Linux (64bit) - Specify Distro Below
|
||||
- macOS (Monteray)
|
||||
- macOS (BigSur)
|
||||
- macOS (Catalina)
|
||||
- macOS (Mojave)
|
||||
- Linux (64bit) - Specify distro below
|
||||
- macOS 13 (Ventura)
|
||||
- macOS 12 (Monterey)
|
||||
- macOS 11 (Big Sur)
|
||||
- macOS 10.15 (Catalina)
|
||||
- macOS 10.14 (Mojave)
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
|
||||
@@ -76,12 +76,12 @@ body:
|
||||
options:
|
||||
- Windows 11
|
||||
- Windows 10 (64bit)
|
||||
- Windows 8.1 (64bit)
|
||||
- Linux (64bit) - Specify Distro Below
|
||||
- macOS (Monteray)
|
||||
- macOS (BigSur)
|
||||
- macOS (Catalina)
|
||||
- macOS (Mojave)
|
||||
- Linux (64bit) - Specify distro below
|
||||
- macOS 13 (Ventura)
|
||||
- macOS 12 (Monterey)
|
||||
- macOS 11 (Big Sur)
|
||||
- macOS 10.15 (Catalina)
|
||||
- macOS 10.14 (Mojave)
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
|
||||
@@ -23,14 +23,6 @@
|
||||
- '**/*.md'
|
||||
- '*.pdf'
|
||||
- '**/*.pdf'
|
||||
'GUI/WX':
|
||||
- 'pcsx2/gui/*'
|
||||
- 'pcsx2/gui/**/*'
|
||||
- 'pcsx2/SPU2/wx/*'
|
||||
- 'pcsx2/SPU2/wx/**/*'
|
||||
- 'pcsx2/PAD/Linux/wx_dialog/*'
|
||||
- 'pcsx2/PAD/Linux/wx_dialog/**/*'
|
||||
- 'pcsx2/GS/Window/GSwxDialog.h'
|
||||
'GUI/Qt':
|
||||
- 'pcsx2-qt/*'
|
||||
- 'pcsx2-qt/**/*'
|
||||
|
||||
@@ -122,8 +122,7 @@ jobs:
|
||||
env:
|
||||
NAME: ${{ steps.artifact-metadata.outputs.artifact-name }}
|
||||
run: |
|
||||
ninja -C build install
|
||||
.github/workflows/scripts/linux/appimage-qt.sh "$(realpath .)" "$HOME/deps" "$NAME"
|
||||
.github/workflows/scripts/linux/appimage-qt.sh "$(realpath .)" "$(realpath ./build)" "$HOME/deps" "$NAME"
|
||||
mkdir -p "$GITHUB_WORKSPACE"/ci-artifacts/
|
||||
mv "${NAME}.AppImage" "$GITHUB_WORKSPACE"/ci-artifacts/
|
||||
|
||||
|
||||
@@ -131,6 +131,7 @@ jobs:
|
||||
done
|
||||
|
||||
- name: Run Tests
|
||||
if: inputs.gui == 'Qt'
|
||||
working-directory: build
|
||||
run: make -j$(getconf _NPROCESSORS_ONLN) unittests
|
||||
|
||||
|
||||
@@ -25,16 +25,18 @@
|
||||
#
|
||||
# For more information, please refer to <http://unlicense.org/>
|
||||
|
||||
if [ "$#" -ne 3 ]; then
|
||||
echo "Syntax: $0 <path to PCSX2 directory> <deps prefix> <output name>"
|
||||
SCRIPTDIR=$(dirname "${BASH_SOURCE[0]}")
|
||||
source "$SCRIPTDIR/functions.sh"
|
||||
|
||||
if [ "$#" -ne 4 ]; then
|
||||
echo "Syntax: $0 <path to pcsx2 directory> <path to build directory> <deps prefix> <output name>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
PCSX2DIR=$1
|
||||
DEPSDIR=$2
|
||||
NAME=$3
|
||||
|
||||
BINDIR="$PCSX2DIR/bin"
|
||||
BUILDDIR=$2
|
||||
DEPSDIR=$3
|
||||
NAME=$4
|
||||
|
||||
BINARY=pcsx2-qt
|
||||
APPDIRNAME=PCSX2.AppDir
|
||||
@@ -191,7 +193,7 @@ declare -a QTPLUGINS=(
|
||||
set -e
|
||||
|
||||
if [ ! -f appimagetool-x86_64.AppImage ]; then
|
||||
wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage
|
||||
retry_command wget -O appimagetool-x86_64.AppImage https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage
|
||||
chmod +x appimagetool-x86_64.AppImage
|
||||
fi
|
||||
|
||||
@@ -199,11 +201,10 @@ OUTDIR=$(realpath "./$APPDIRNAME")
|
||||
SCRIPTDIR=$(dirname "${BASH_SOURCE[0]}")
|
||||
rm -fr "$OUTDIR"
|
||||
mkdir "$OUTDIR"
|
||||
|
||||
mkdir -p "$OUTDIR/usr/bin" "$OUTDIR/usr/lib" "$OUTDIR/usr/lib/pulseaudio"
|
||||
mkdir "$OUTDIR/usr"
|
||||
|
||||
echo "Copying binary and resources..."
|
||||
cp -a "$BINDIR/$BINARY" "$BINDIR/resources" "$OUTDIR/usr/bin"
|
||||
cp -a "$BUILDDIR/bin" "$OUTDIR/usr"
|
||||
|
||||
# Patch RPATH so the binary goes hunting for shared libraries in the AppDir instead of system.
|
||||
echo "Patching RPATH in ${BINARY}..."
|
||||
@@ -214,6 +215,7 @@ patchelf --set-rpath '$ORIGIN/../lib' "$OUTDIR/usr/bin/$BINARY"
|
||||
|
||||
# Libraries we pull in from the system.
|
||||
echo "Copying system libraries..."
|
||||
mkdir -p "$OUTDIR/usr/lib" "$OUTDIR/usr/lib/pulseaudio"
|
||||
for lib in "${SYSLIBS[@]}"; do
|
||||
blib=$(basename "$lib")
|
||||
if [ -f "/lib/x86_64-linux-gnu/$lib" ]; then
|
||||
|
||||
Executable
+16
@@ -0,0 +1,16 @@
|
||||
#!/bin/bash
|
||||
|
||||
function retry_command {
|
||||
# Package servers tend to be unreliable at times..
|
||||
# Retry a bunch of times.
|
||||
local RETRIES=10
|
||||
|
||||
for i in $(seq 1 "$RETRIES"); do
|
||||
"$@" && break
|
||||
if [ "$i" == "$RETRIES" ]; then
|
||||
echo "Command \"$@\" failed after ${RETRIES} retries."
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
@@ -27,10 +27,10 @@ cmake \
|
||||
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DQT_BUILD=ON \
|
||||
-DCUBEB_API=ON \
|
||||
-DX11_API=ON \
|
||||
-DWAYLAND_API=ON \
|
||||
-DXDG_STD=TRUE \
|
||||
-DDISABLE_PCSX2_WRAPPER=ON \
|
||||
-DDISABLE_SETCAP=ON \
|
||||
-DENABLE_SETCAP=OFF \
|
||||
-DCMAKE_PREFIX_PATH="$HOME/deps" \
|
||||
-DUSE_SYSTEM_SDL2=ON \
|
||||
-DUSE_SYSTEM_ZSTD=OFF \
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
SCRIPTDIR=$(dirname "${BASH_SOURCE[0]}")
|
||||
source "$SCRIPTDIR/functions.sh"
|
||||
|
||||
set -e
|
||||
|
||||
# Packages - Build and Qt
|
||||
@@ -57,18 +60,18 @@ declare -a PCSX2_PACKAGES=(
|
||||
)
|
||||
|
||||
if [ "${COMPILER}" = "gcc" ]; then
|
||||
BUILD_PACKAGES+=("g++-10")
|
||||
BUILD_PACKAGES+=("g++-10")
|
||||
else
|
||||
BUILD_PACKAGES+=("llvm-12" "lld-12" "clang-12")
|
||||
BUILD_PACKAGES+=("llvm-12" "lld-12" "clang-12")
|
||||
fi
|
||||
|
||||
sudo apt-get -qq update
|
||||
retry_command sudo apt-get -qq update && break
|
||||
|
||||
# Install packages needed for building
|
||||
echo "Will install the following packages for building - ${BUILD_PACKAGES[*]}"
|
||||
sudo apt-get -y install "${BUILD_PACKAGES[@]}"
|
||||
retry_command sudo apt-get -y install "${BUILD_PACKAGES[@]}"
|
||||
|
||||
# Install packages needed by pcsx2
|
||||
PCSX2_PACKAGES=("${PCSX2_PACKAGES[@]}")
|
||||
echo "Will install the following packages for pcsx2 - ${PCSX2_PACKAGES[*]}"
|
||||
sudo apt-get -y install "${PCSX2_PACKAGES[@]}"
|
||||
retry_command sudo apt-get -y install "${PCSX2_PACKAGES[@]}"
|
||||
|
||||
@@ -2,18 +2,14 @@
|
||||
|
||||
set -e
|
||||
|
||||
if [ "$GUI" == "Qt" ]; then
|
||||
export MACOSX_DEPLOYMENT_TARGET=10.14
|
||||
else
|
||||
export MACOSX_DEPLOYMENT_TARGET=10.13
|
||||
fi
|
||||
export MACOSX_DEPLOYMENT_TARGET=10.14
|
||||
|
||||
INSTALLDIR="$HOME/deps"
|
||||
NPROCS="$(getconf _NPROCESSORS_ONLN)"
|
||||
SDL=SDL2-2.26.0
|
||||
PNG=1.6.37
|
||||
JPG=9e
|
||||
SOUNDTOUCH=soundtouch-2.3.1
|
||||
WXWIDGETS=3.1.6
|
||||
QT=6.3.1
|
||||
|
||||
mkdir deps-build
|
||||
@@ -29,7 +25,6 @@ cat > SHASUMS <<EOF
|
||||
505e70834d35383537b6491e7ae8641f1a4bed1876dbfe361201fc80868d88ca libpng-$PNG.tar.xz
|
||||
4077d6a6a75aeb01884f708919d25934c93305e49f7e3f36db9129320e6f4f3d jpegsrc.v$JPG.tar.gz
|
||||
6900996607258496ce126924a19fe9d598af9d892cf3f33d1e4daaa9b42ae0b1 $SOUNDTOUCH.tar.gz
|
||||
4980e86c6494adcd527a41fc0a4e436777ba41d1893717d7b7176c59c2061c25 wxWidgets-$WXWIDGETS.tar.bz2
|
||||
0a64421d9c2469c2c48490a032ab91d547017c9cc171f3f8070bc31888f24e03 qtbase-everywhere-src-$QT.tar.xz
|
||||
7b19f418e6f7b8e23344082dd04440aacf5da23c5a73980ba22ae4eba4f87df7 qtsvg-everywhere-src-$QT.tar.xz
|
||||
c412750f2aa3beb93fce5f30517c607f55daaeb7d0407af206a8adf917e126c1 qttools-everywhere-src-$QT.tar.xz
|
||||
@@ -41,7 +36,6 @@ curl -L \
|
||||
-O "https://downloads.sourceforge.net/project/libpng/libpng16/$PNG/libpng-$PNG.tar.xz" \
|
||||
-O "https://www.ijg.org/files/jpegsrc.v$JPG.tar.gz" \
|
||||
-O "https://www.surina.net/soundtouch/$SOUNDTOUCH.tar.gz" \
|
||||
-O "https://github.com/wxWidgets/wxWidgets/releases/download/v$WXWIDGETS/wxWidgets-$WXWIDGETS.tar.bz2" \
|
||||
-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qtbase-everywhere-src-$QT.tar.xz" \
|
||||
-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qtsvg-everywhere-src-$QT.tar.xz" \
|
||||
-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qttools-everywhere-src-$QT.tar.xz" \
|
||||
@@ -81,37 +75,27 @@ make -C build "-j$NPROCS"
|
||||
make -C build install
|
||||
cd ..
|
||||
|
||||
if [ "$GUI" == "wxWidgets" ]; then
|
||||
echo "Installing wx..."
|
||||
tar xf "wxWidgets-$WXWIDGETS.tar.bz2"
|
||||
cd "wxWidgets-$WXWIDGETS"
|
||||
./configure --prefix "$INSTALLDIR" --with-macosx-version-min="$MACOSX_DEPLOYMENT_TARGET" --enable-clipboard --enable-dnd --enable-std_string --with-cocoa --with-libiconv --with-libjpeg --with-libpng --with-zlib --without-libtiff --without-regex
|
||||
make "-j$NPROCS"
|
||||
make install
|
||||
cd ..
|
||||
fi
|
||||
|
||||
if [ "$GUI" == "Qt" ]; then
|
||||
echo "Installing Qt Base..."
|
||||
tar xf "qtbase-everywhere-src-$QT.tar.xz"
|
||||
cd "qtbase-everywhere-src-$QT"
|
||||
cmake -B build -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DCMAKE_BUILD_TYPE=Release -DFEATURE_optimize_size=ON -DFEATURE_dbus=OFF -DFEATURE_framework=OFF -DFEATURE_icu=OFF -DFEATURE_opengl=OFF -DFEATURE_printsupport=OFF -DFEATURE_sql=OFF -DFEATURE_gssapi=OFF
|
||||
make -C build "-j$NPROCS"
|
||||
make -C build install
|
||||
cd ..
|
||||
echo "Installing Qt SVG..."
|
||||
tar xf "qtsvg-everywhere-src-$QT.tar.xz"
|
||||
cd "qtsvg-everywhere-src-$QT"
|
||||
cmake -B build -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DCMAKE_BUILD_TYPE=MinSizeRel
|
||||
make -C build "-j$NPROCS"
|
||||
make -C build install
|
||||
cd ..
|
||||
echo "Installing Qt Tools..."
|
||||
tar xf "qttools-everywhere-src-$QT.tar.xz"
|
||||
cd "qttools-everywhere-src-$QT"
|
||||
# Linguist relies on a library in the Designer target, which takes 5-7 minutes to build on the CI
|
||||
# Avoid it by not building Linguist, since we only need the tools that come with it
|
||||
patch -u src/linguist/CMakeLists.txt <<EOF
|
||||
echo "Installing Qt Base..."
|
||||
tar xf "qtbase-everywhere-src-$QT.tar.xz"
|
||||
cd "qtbase-everywhere-src-$QT"
|
||||
cmake -B build -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DCMAKE_BUILD_TYPE=Release -DFEATURE_optimize_size=ON -DFEATURE_dbus=OFF -DFEATURE_framework=OFF -DFEATURE_icu=OFF -DFEATURE_opengl=OFF -DFEATURE_printsupport=OFF -DFEATURE_sql=OFF -DFEATURE_gssapi=OFF
|
||||
make -C build "-j$NPROCS"
|
||||
make -C build install
|
||||
cd ..
|
||||
echo "Installing Qt SVG..."
|
||||
tar xf "qtsvg-everywhere-src-$QT.tar.xz"
|
||||
cd "qtsvg-everywhere-src-$QT"
|
||||
cmake -B build -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DCMAKE_BUILD_TYPE=MinSizeRel
|
||||
make -C build "-j$NPROCS"
|
||||
make -C build install
|
||||
cd ..
|
||||
echo "Installing Qt Tools..."
|
||||
tar xf "qttools-everywhere-src-$QT.tar.xz"
|
||||
cd "qttools-everywhere-src-$QT"
|
||||
# Linguist relies on a library in the Designer target, which takes 5-7 minutes to build on the CI
|
||||
# Avoid it by not building Linguist, since we only need the tools that come with it
|
||||
patch -u src/linguist/CMakeLists.txt <<EOF
|
||||
--- src/linguist/CMakeLists.txt
|
||||
+++ src/linguist/CMakeLists.txt
|
||||
@@ -14,7 +14,7 @@
|
||||
@@ -123,18 +107,17 @@ if [ "$GUI" == "Qt" ]; then
|
||||
add_subdirectory(linguist)
|
||||
endif()
|
||||
EOF
|
||||
cmake -B build -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DCMAKE_BUILD_TYPE=Release -DFEATURE_assistant=OFF -DFEATURE_clang=OFF -DFEATURE_designer=OFF -DFEATURE_kmap2qmap=OFF -DFEATURE_pixeltool=OFF -DFEATURE_pkg_config=OFF -DFEATURE_qev=OFF -DFEATURE_qtattributionsscanner=OFF -DFEATURE_qtdiag=OFF -DFEATURE_qtplugininfo=OFF
|
||||
make -C build "-j$NPROCS"
|
||||
make -C build install
|
||||
cd ..
|
||||
echo "Installing Qt Translations..."
|
||||
tar xf "qttranslations-everywhere-src-$QT.tar.xz"
|
||||
cd "qttranslations-everywhere-src-$QT"
|
||||
cmake -B build -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DCMAKE_BUILD_TYPE=Release
|
||||
make -C build "-j$NPROCS"
|
||||
make -C build install
|
||||
cd ..
|
||||
fi
|
||||
cmake -B build -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DCMAKE_BUILD_TYPE=Release -DFEATURE_assistant=OFF -DFEATURE_clang=OFF -DFEATURE_designer=OFF -DFEATURE_kmap2qmap=OFF -DFEATURE_pixeltool=OFF -DFEATURE_pkg_config=OFF -DFEATURE_qev=OFF -DFEATURE_qtattributionsscanner=OFF -DFEATURE_qtdiag=OFF -DFEATURE_qtplugininfo=OFF
|
||||
make -C build "-j$NPROCS"
|
||||
make -C build install
|
||||
cd ..
|
||||
echo "Installing Qt Translations..."
|
||||
tar xf "qttranslations-everywhere-src-$QT.tar.xz"
|
||||
cd "qttranslations-everywhere-src-$QT"
|
||||
cmake -B build -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DCMAKE_BUILD_TYPE=Release
|
||||
make -C build "-j$NPROCS"
|
||||
make -C build install
|
||||
cd ..
|
||||
|
||||
echo "Cleaning up..."
|
||||
cd ..
|
||||
|
||||
@@ -46,3 +46,22 @@ jobs:
|
||||
configuration: CMake
|
||||
buildSystem: cmake
|
||||
secrets: inherit
|
||||
|
||||
build_qt_clang_sse4:
|
||||
needs: lint_vs_proj_files
|
||||
name: "SSE4"
|
||||
uses: ./.github/workflows/windows_build_qt.yml
|
||||
with:
|
||||
jobName: Qt Clang
|
||||
configuration: Release Clang
|
||||
simd: "SSE4"
|
||||
secrets: inherit
|
||||
|
||||
build_qt_clang_avx2:
|
||||
needs: lint_vs_proj_files
|
||||
name: "AVX2"
|
||||
uses: ./.github/workflows/windows_build_qt.yml
|
||||
with:
|
||||
jobName: Qt Clang
|
||||
configuration: Release Clang AVX2
|
||||
secrets: inherit
|
||||
|
||||
@@ -105,6 +105,13 @@ jobs:
|
||||
msbuild "PCSX2_qt.sln" /m /v:m /p:Configuration="${{ inputs.configuration }}" /p:Platform="${{ inputs.platform }}"
|
||||
)
|
||||
|
||||
- name: Run Tests
|
||||
if: inputs.configuration == 'CMake'
|
||||
shell: cmd
|
||||
run: |
|
||||
call "%ProgramFiles%\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
|
||||
cmake --build build --config Release --target unittests
|
||||
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
|
||||
+2
-13
@@ -30,15 +30,11 @@
|
||||
**/x64/Debug*
|
||||
**/x64/Devel*
|
||||
|
||||
**/bin/PCSX2-linux.sh
|
||||
|
||||
_ReSharper.*
|
||||
pcsx2.snapshot_*
|
||||
svnrev.h
|
||||
|
||||
/build
|
||||
/build_dev
|
||||
/build_dbg
|
||||
/build*
|
||||
/obj-*
|
||||
*.obj
|
||||
|
||||
@@ -47,8 +43,6 @@ Thumbs.db
|
||||
|
||||
Debug.txt
|
||||
install_log.txt
|
||||
padLog.txt
|
||||
GS_opengl_debug.txt
|
||||
bad_shader_*
|
||||
|
||||
Debug
|
||||
@@ -74,10 +68,7 @@ oprofile_data/
|
||||
/bin/**/*.ilk
|
||||
/bin/**/*.lib
|
||||
/bin/**/*.pdb
|
||||
/bin/pcsx2
|
||||
/bin/PCSX2-linux.sh
|
||||
/bin/*ReplayLoader
|
||||
/bin/GS*.txt
|
||||
/bin/pcsx2*
|
||||
/bin/qt.conf
|
||||
/bin/bios
|
||||
/bin/cache
|
||||
@@ -99,8 +90,6 @@ oprofile_data/
|
||||
/ipch
|
||||
|
||||
!/3rdparty/libjpeg/change.log
|
||||
/3rdparty/**/include/wx/setup.h
|
||||
/3rdparty/**/wx/msw/rcdefs.h
|
||||
/pcsx2/gui/Resources/*.h
|
||||
!/pcsx2/gui/Resources/EmbeddedImage.h
|
||||
/tools/bin
|
||||
|
||||
Vendored
-1
@@ -10,7 +10,6 @@
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>__WIN32__;WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<StructMemberAlignment>16Bytes</StructMemberAlignment>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
||||
<WarningLevel>TurnOffAllWarnings</WarningLevel>
|
||||
|
||||
Vendored
+2
-1
@@ -8,7 +8,8 @@
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="!$(Configuration.Contains(Clang))">$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="$(Configuration.Contains(Clang))">ClangCL</PlatformToolset>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<WholeProgramOptimization Condition="$(Configuration.Contains(Release))">true</WholeProgramOptimization>
|
||||
<UseDebugLibraries Condition="$(Configuration.Contains(Debug))">true</UseDebugLibraries>
|
||||
|
||||
Vendored
+2
-1
@@ -9,7 +9,8 @@
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="!$(Configuration.Contains(Clang))">$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="$(Configuration.Contains(Clang))">ClangCL</PlatformToolset>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<WholeProgramOptimization Condition="$(Configuration.Contains(Release))">true</WholeProgramOptimization>
|
||||
<UseDebugLibraries Condition="$(Configuration.Contains(Debug))">true</UseDebugLibraries>
|
||||
|
||||
+2
-1
@@ -8,7 +8,8 @@
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="!$(Configuration.Contains(Clang))">$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="$(Configuration.Contains(Clang))">ClangCL</PlatformToolset>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<WholeProgramOptimization Condition="$(Configuration.Contains(Release))">true</WholeProgramOptimization>
|
||||
<UseDebugLibraries Condition="$(Configuration.Contains(Debug))">true</UseDebugLibraries>
|
||||
|
||||
+1
-1
@@ -144,7 +144,7 @@ public:
|
||||
protected:
|
||||
virtual void ReleaseThis() { delete this; }
|
||||
private:
|
||||
D3D12MA_ATOMIC_UINT32 m_RefCount = 1;
|
||||
D3D12MA_ATOMIC_UINT32 m_RefCount{1};
|
||||
};
|
||||
} // namespace D3D12MA
|
||||
|
||||
|
||||
+2
-2
@@ -6082,7 +6082,7 @@ private:
|
||||
D3D12MA_ATOMIC_UINT64 m_BlockBytes[DXGI_MEMORY_SEGMENT_GROUP_COUNT] = {};
|
||||
D3D12MA_ATOMIC_UINT64 m_AllocationBytes[DXGI_MEMORY_SEGMENT_GROUP_COUNT] = {};
|
||||
|
||||
D3D12MA_ATOMIC_UINT32 m_OperationsSinceBudgetFetch = 0;
|
||||
D3D12MA_ATOMIC_UINT32 m_OperationsSinceBudgetFetch{0};
|
||||
D3D12MA_RW_MUTEX m_BudgetMutex;
|
||||
UINT64 m_D3D12Usage[DXGI_MEMORY_SEGMENT_GROUP_COUNT] = {};
|
||||
UINT64 m_D3D12Budget[DXGI_MEMORY_SEGMENT_GROUP_COUNT] = {};
|
||||
@@ -6317,7 +6317,7 @@ class AllocatorPimpl
|
||||
friend class Allocator;
|
||||
friend class Pool;
|
||||
public:
|
||||
std::atomic_uint32_t m_RefCount = 1;
|
||||
std::atomic_uint32_t m_RefCount{1};
|
||||
CurrentBudgetData m_Budget;
|
||||
|
||||
AllocatorPimpl(const ALLOCATION_CALLBACKS& allocationCallbacks, const ALLOCATOR_DESC& desc);
|
||||
|
||||
Vendored
+2
-1
@@ -8,7 +8,8 @@
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="!$(Configuration.Contains(Clang))">$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="$(Configuration.Contains(Clang))">ClangCL</PlatformToolset>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<WholeProgramOptimization Condition="$(Configuration.Contains(Release))">true</WholeProgramOptimization>
|
||||
<UseDebugLibraries Condition="$(Configuration.Contains(Debug))">true</UseDebugLibraries>
|
||||
|
||||
+2
-1
@@ -8,7 +8,8 @@
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="!$(Configuration.Contains(Clang))">$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="$(Configuration.Contains(Clang))">ClangCL</PlatformToolset>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<WholeProgramOptimization Condition="$(Configuration.Contains(Release))">true</WholeProgramOptimization>
|
||||
<UseDebugLibraries Condition="$(Configuration.Contains(Debug))">true</UseDebugLibraries>
|
||||
|
||||
Vendored
+2
-1
@@ -9,7 +9,8 @@
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="!$(Configuration.Contains(Clang))">$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="$(Configuration.Contains(Clang))">ClangCL</PlatformToolset>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<WholeProgramOptimization Condition="$(Configuration.Contains(Release))">true</WholeProgramOptimization>
|
||||
<UseDebugLibraries Condition="$(Configuration.Contains(Debug))">true</UseDebugLibraries>
|
||||
|
||||
Vendored
+2
-1
@@ -8,7 +8,8 @@
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="!$(Configuration.Contains(Clang))">$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="$(Configuration.Contains(Clang))">ClangCL</PlatformToolset>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<WholeProgramOptimization Condition="$(Configuration.Contains(Release))">true</WholeProgramOptimization>
|
||||
<UseDebugLibraries Condition="$(Configuration.Contains(Debug))">true</UseDebugLibraries>
|
||||
|
||||
Vendored
+2
-1
@@ -9,7 +9,8 @@
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="!$(Configuration.Contains(Clang))">$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="$(Configuration.Contains(Clang))">ClangCL</PlatformToolset>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<WholeProgramOptimization Condition="$(Configuration.Contains(Release))">true</WholeProgramOptimization>
|
||||
<UseDebugLibraries Condition="$(Configuration.Contains(Debug))">true</UseDebugLibraries>
|
||||
|
||||
Vendored
+1
-1
Submodule 3rdparty/gtest updated: e2239ee604...58d77fa807
Vendored
+2
-1
@@ -8,7 +8,8 @@
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="!$(Configuration.Contains(Clang))">$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="$(Configuration.Contains(Clang))">ClangCL</PlatformToolset>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<WholeProgramOptimization Condition="$(Configuration.Contains(Release))">true</WholeProgramOptimization>
|
||||
<UseDebugLibraries Condition="$(Configuration.Contains(Debug))">true</UseDebugLibraries>
|
||||
|
||||
Vendored
+2
-1
@@ -8,7 +8,8 @@
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="!$(Configuration.Contains(Clang))">$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="$(Configuration.Contains(Clang))">ClangCL</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<WholeProgramOptimization Condition="$(Configuration.Contains(Release))">true</WholeProgramOptimization>
|
||||
<UseDebugLibraries Condition="$(Configuration.Contains(Debug))">true</UseDebugLibraries>
|
||||
|
||||
Vendored
+2
-1
@@ -9,7 +9,8 @@
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="!$(Configuration.Contains(Clang))">$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="$(Configuration.Contains(Clang))">ClangCL</PlatformToolset>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<WholeProgramOptimization Condition="$(Configuration.Contains(Release))">true</WholeProgramOptimization>
|
||||
<UseDebugLibraries Condition="$(Configuration.Contains(Debug))">true</UseDebugLibraries>
|
||||
|
||||
Vendored
+2
-1
@@ -8,7 +8,8 @@
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="!$(Configuration.Contains(Clang))">$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="$(Configuration.Contains(Clang))">ClangCL</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<WholeProgramOptimization Condition="$(Configuration.Contains(Release))">true</WholeProgramOptimization>
|
||||
<UseDebugLibraries Condition="$(Configuration.Contains(Debug))">true</UseDebugLibraries>
|
||||
|
||||
+3
-2
@@ -8,7 +8,8 @@
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="!$(Configuration.Contains(Clang))">$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="$(Configuration.Contains(Clang))">ClangCL</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<WholeProgramOptimization Condition="$(Configuration.Contains(Release))">true</WholeProgramOptimization>
|
||||
<UseDebugLibraries Condition="$(Configuration.Contains(Debug))">true</UseDebugLibraries>
|
||||
@@ -29,7 +30,7 @@
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<PrecompiledHeader>Use</PrecompiledHeader>
|
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
||||
<PrecompiledHeaderFile>pngpriv.h</PrecompiledHeaderFile>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<CompileAs>CompileAsC</CompileAs>
|
||||
|
||||
Vendored
+2
-1
@@ -8,7 +8,8 @@
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="!$(Configuration.Contains(Clang))">$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="$(Configuration.Contains(Clang))">ClangCL</PlatformToolset>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<WholeProgramOptimization Condition="$(Configuration.Contains(Release))">true</WholeProgramOptimization>
|
||||
<UseDebugLibraries Condition="$(Configuration.Contains(Debug))">true</UseDebugLibraries>
|
||||
|
||||
Vendored
+2
-1
@@ -8,7 +8,8 @@
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="!$(Configuration.Contains(Clang))">$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="$(Configuration.Contains(Clang))">ClangCL</PlatformToolset>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<WholeProgramOptimization Condition="$(Configuration.Contains(Release))">true</WholeProgramOptimization>
|
||||
<UseDebugLibraries Condition="$(Configuration.Contains(Debug))">true</UseDebugLibraries>
|
||||
|
||||
Vendored
+1
-1
@@ -506,7 +506,7 @@ void MatchFinder_Init(CMatchFinder *p)
|
||||
|
||||
|
||||
|
||||
#ifdef MY_CPU_X86_OR_AMD64
|
||||
#if defined(MY_CPU_X86_OR_AMD64) && (!defined(_MSC_VER) || !defined(__clang__))
|
||||
#if defined(__clang__) && (__clang_major__ >= 8) \
|
||||
|| defined(__GNUC__) && (__GNUC__ >= 8) \
|
||||
|| defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1900)
|
||||
|
||||
+2
-1
@@ -8,7 +8,8 @@
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="!$(Configuration.Contains(Clang))">$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="$(Configuration.Contains(Clang))">ClangCL</PlatformToolset>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<WholeProgramOptimization Condition="$(Configuration.Contains(Release))">true</WholeProgramOptimization>
|
||||
<UseDebugLibraries Condition="$(Configuration.Contains(Debug))">true</UseDebugLibraries>
|
||||
|
||||
Vendored
+2
-1
@@ -9,7 +9,8 @@
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="!$(Configuration.Contains(Clang))">$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="$(Configuration.Contains(Clang))">ClangCL</PlatformToolset>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<WholeProgramOptimization Condition="$(Configuration.Contains(Release))">true</WholeProgramOptimization>
|
||||
<UseDebugLibraries Condition="$(Configuration.Contains(Debug))">true</UseDebugLibraries>
|
||||
|
||||
Vendored
+2
-1
@@ -8,7 +8,8 @@
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="!$(Configuration.Contains(Clang))">$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="$(Configuration.Contains(Clang))">ClangCL</PlatformToolset>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<WholeProgramOptimization Condition="$(Configuration.Contains(Release))">true</WholeProgramOptimization>
|
||||
<UseDebugLibraries Condition="$(Configuration.Contains(Debug))">true</UseDebugLibraries>
|
||||
|
||||
Vendored
+5
-4
@@ -9,7 +9,8 @@
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="!$(Configuration.Contains(Clang))">$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="$(Configuration.Contains(Clang))">ClangCL</PlatformToolset>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<WholeProgramOptimization Condition="$(Configuration.Contains(Release))">true</WholeProgramOptimization>
|
||||
<UseDebugLibraries Condition="$(Configuration.Contains(Debug))">true</UseDebugLibraries>
|
||||
@@ -34,10 +35,10 @@
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<PreprocessorDefinitions>_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<AdditionalIncludeDirectories>$(ProjectDir)include;$(ProjectDir)SDL\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
|
||||
<!-- Needed to use SSE3 intrinsics in clang build. -->
|
||||
<AdditionalOptions Condition="$(Configuration.Contains(Clang))">-march=core2 -Wno-deprecated-declarations %(AdditionalOptions)</AdditionalOptions>
|
||||
</ClCompile>
|
||||
<Lib>
|
||||
<AdditionalDependencies>version.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Lib>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="SDL\include\begin_code.h" />
|
||||
|
||||
Vendored
+2
-1
@@ -8,7 +8,8 @@
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="!$(Configuration.Contains(Clang))">$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="$(Configuration.Contains(Clang))">ClangCL</PlatformToolset>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<WholeProgramOptimization Condition="$(Configuration.Contains(Release))">true</WholeProgramOptimization>
|
||||
<UseDebugLibraries Condition="$(Configuration.Contains(Debug))">true</UseDebugLibraries>
|
||||
|
||||
+2
-1
@@ -8,7 +8,8 @@
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="!$(Configuration.Contains(Clang))">$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="$(Configuration.Contains(Clang))">ClangCL</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<WholeProgramOptimization Condition="$(Configuration.Contains(Release))">true</WholeProgramOptimization>
|
||||
<UseDebugLibraries Condition="$(Configuration.Contains(Debug))">true</UseDebugLibraries>
|
||||
|
||||
Vendored
-3
@@ -12,9 +12,6 @@ distributions, or are easily obtainable. Using the PCSX2 versions included here
|
||||
optional in such cases, however using the distro-provided packages is not recommended.
|
||||
(using PCSX2 included versions may help resolve versioning issues).
|
||||
|
||||
Note that wxWidgets includes *only* MSW projects and files. Linux and Mac platforms
|
||||
are assumed to have wx already available in your distributions.
|
||||
|
||||
Modifications:
|
||||
|
||||
Most of these libs in /3rdparty have been tailored slightly from the original
|
||||
|
||||
Vendored
+2
-1
@@ -9,7 +9,8 @@
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="!$(Configuration.Contains(Clang))">$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="$(Configuration.Contains(Clang))">ClangCL</PlatformToolset>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<WholeProgramOptimization Condition="$(Configuration.Contains(Release))">true</WholeProgramOptimization>
|
||||
<UseDebugLibraries Condition="$(Configuration.Contains(Debug))">true</UseDebugLibraries>
|
||||
|
||||
Vendored
+2
-2
@@ -8,8 +8,8 @@
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset Condition="!$(Configuration.Contains(Clang))">$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="$(Configuration.Contains(Clang))">ClangCL</PlatformToolset>
|
||||
<WholeProgramOptimization Condition="$(Configuration.Contains(Release))">true</WholeProgramOptimization>
|
||||
<UseDebugLibraries Condition="$(Configuration.Contains(Debug))">true</UseDebugLibraries>
|
||||
<UseDebugLibraries Condition="!$(Configuration.Contains(Debug))">false</UseDebugLibraries>
|
||||
|
||||
Vendored
+2
-1
@@ -8,7 +8,8 @@
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="!$(Configuration.Contains(Clang))">$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="$(Configuration.Contains(Clang))">ClangCL</PlatformToolset>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<WholeProgramOptimization Condition="$(Configuration.Contains(Release))">true</WholeProgramOptimization>
|
||||
<UseDebugLibraries Condition="$(Configuration.Contains(Debug))">true</UseDebugLibraries>
|
||||
|
||||
Vendored
+2
-1
@@ -8,7 +8,8 @@
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="!$(Configuration.Contains(Clang))">$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="$(Configuration.Contains(Clang))">ClangCL</PlatformToolset>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<WholeProgramOptimization Condition="$(Configuration.Contains(Release))">true</WholeProgramOptimization>
|
||||
<UseDebugLibraries Condition="$(Configuration.Contains(Debug))">true</UseDebugLibraries>
|
||||
|
||||
+11
-6
@@ -2,6 +2,10 @@
|
||||
# versions as well, avoiding setting policies.
|
||||
cmake_minimum_required(VERSION 3.12...3.24)
|
||||
|
||||
#Enabling this cmake policy gets rid of warnings regarding LTO.
|
||||
cmake_policy(SET CMP0069 NEW)
|
||||
set(CMAKE_POLICY_DEFAULT_CMP0069 NEW)
|
||||
|
||||
if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
|
||||
message(FATAL_ERROR "PCSX2 does not support in-tree builds. Please make a build directory that is not the PCSX2 source directory and generate your CMake project there using either `cmake -B build_directory` or by running cmake from the build directory.")
|
||||
endif()
|
||||
@@ -15,6 +19,13 @@ set(TOP_CMAKE_WAS_SOURCED TRUE)
|
||||
# set module path
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
|
||||
|
||||
# Write binaries to the bin directory under the build directory.
|
||||
# This makes it simple to run development builds directly out of the build directory.
|
||||
if (UNIX AND NOT APPLE)
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin")
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin")
|
||||
endif()
|
||||
|
||||
# include some generic functions to ensure correctness of the env
|
||||
include(Pcsx2Utils)
|
||||
|
||||
@@ -56,9 +67,3 @@ if(ACTUALLY_ENABLE_TESTS)
|
||||
add_subdirectory(tests/ctest)
|
||||
endif()
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
if(NOT WIN32 AND NOT DISABLE_PCSX2_WRAPPER)
|
||||
# special case to avoid having linux files in windows
|
||||
INSTALL(FILES "${CMAKE_SOURCE_DIR}/linux_various/PCSX2-linux.sh" DESTINATION "${CMAKE_SOURCE_DIR}/bin")
|
||||
endif()
|
||||
|
||||
@@ -0,0 +1,127 @@
|
||||
{
|
||||
"version": 6,
|
||||
"cmakeMinimumRequired": {
|
||||
"major": 3,
|
||||
"minor": 19,
|
||||
"patch": 0
|
||||
},
|
||||
"configurePresets": [
|
||||
{
|
||||
"name": "gcc-base",
|
||||
"displayName": "GCC Base",
|
||||
"description": "Base preset for GCC. Only for inheriting from.",
|
||||
"hidden": true,
|
||||
"binaryDir": "${sourceDir}/build"
|
||||
},
|
||||
{
|
||||
"name": "clang-base",
|
||||
"displayName": "Base",
|
||||
"description": "Base preset for Clang. Only for inheriting from.",
|
||||
"hidden": true,
|
||||
"binaryDir": "${sourceDir}/build",
|
||||
"generator": "Ninja",
|
||||
"cacheVariables": {
|
||||
"CMAKE_EXE_LINKER_FLAGS_INIT": "-fuse-ld=lld",
|
||||
"CMAKE_MODULE_LINKER_FLAGS_INIT": "-fuse-ld=lld",
|
||||
"CMAKE_SHARED_LINKER_FLAGS_INIT": "-fuse-ld=lld",
|
||||
"CMAKE_C_COMPILER": "clang",
|
||||
"CMAKE_CXX_COMPILER": "clang++"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "ninja-multi",
|
||||
"displayName": "Ninja Multi Config",
|
||||
"description": "Generate multiple ninja build files.",
|
||||
"inherits": "gcc-base",
|
||||
"generator": "Ninja Multi-Config"
|
||||
},
|
||||
{
|
||||
"name": "gcc-debug",
|
||||
"displayName": "GCC Debug",
|
||||
"description": "GCC Debug build with make.",
|
||||
"inherits": "gcc-base",
|
||||
"generator": "Unix Makefiles",
|
||||
"cacheVariables": {
|
||||
"CMAKE_BUILD_TYPE": "Debug"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "gcc-devel",
|
||||
"displayName": "GCC Devel",
|
||||
"description": "GCC Developer build using make.",
|
||||
"inherits": "gcc-base",
|
||||
"generator": "Unix Makefiles",
|
||||
"cacheVariables": {
|
||||
"CMAKE_BUILD_TYPE": "Devel"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "gcc-release",
|
||||
"displayName": "GCC Release",
|
||||
"description": "GCC Release build using make.",
|
||||
"inherits": "gcc-base",
|
||||
"generator": "Unix Makefiles",
|
||||
"cacheVariables": {
|
||||
"CMAKE_BUILD_TYPE": "Release"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "gcc-debug-ninja",
|
||||
"displayName": "GCC Debug Ninja",
|
||||
"description": "Debug build using ninja.",
|
||||
"inherits": "gcc-base",
|
||||
"generator": "Ninja",
|
||||
"cacheVariables": {
|
||||
"CMAKE_BUILD_TYPE": "Debug"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "gcc-devel-ninja",
|
||||
"displayName": "GCC Devel Ninja",
|
||||
"description": "GCC Developer build using ninja.",
|
||||
"inherits": "gcc-base",
|
||||
"generator": "Ninja",
|
||||
"cacheVariables": {
|
||||
"CMAKE_BUILD_TYPE": "Devel"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "gcc-release-ninja",
|
||||
"displayName": "GCC Release Ninja",
|
||||
"description": "GCC Release build using ninja.",
|
||||
"inherits": "gcc-base",
|
||||
"generator": "Ninja",
|
||||
"cacheVariables": {
|
||||
"CMAKE_BUILD_TYPE": "Release"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "clang-debug",
|
||||
"displayName": "Clang Debug",
|
||||
"description": "Debug build using ninja and clang.",
|
||||
"inherits": "clang-base",
|
||||
"cacheVariables": {
|
||||
"CMAKE_BUILD_TYPE": "Debug"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "clang-devel",
|
||||
"displayName": "Clang Devel",
|
||||
"description": "Developer build using ninja & clang.",
|
||||
"inherits": "clang-base",
|
||||
"cacheVariables": {
|
||||
"CMAKE_BUILD_TYPE": "Devel"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "clang-release",
|
||||
"displayName": "Clang Release",
|
||||
"description": "Release lto build using ninja & clang.",
|
||||
"inherits": "clang-base",
|
||||
"cacheVariables": {
|
||||
"CMAKE_INTERPROCEDURAL_OPTIMIZATION": "ON",
|
||||
"CMAKE_BUILD_TYPE": "Release"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
+360
@@ -68,365 +68,725 @@ EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug AVX2|x64 = Debug AVX2|x64
|
||||
Debug Clang AVX2|x64 = Debug Clang AVX2|x64
|
||||
Debug Clang|x64 = Debug Clang|x64
|
||||
Debug|x64 = Debug|x64
|
||||
Devel AVX2|x64 = Devel AVX2|x64
|
||||
Devel Clang AVX2|x64 = Devel Clang AVX2|x64
|
||||
Devel Clang|x64 = Devel Clang|x64
|
||||
Devel|x64 = Devel|x64
|
||||
Release AVX2|x64 = Release AVX2|x64
|
||||
Release Clang AVX2|x64 = Release Clang AVX2|x64
|
||||
Release Clang|x64 = Release Clang|x64
|
||||
Release|x64 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{2A016F21-87AE-4154-8271-1F57E91408E9}.Debug AVX2|x64.ActiveCfg = Debug AVX2|x64
|
||||
{2A016F21-87AE-4154-8271-1F57E91408E9}.Debug AVX2|x64.Build.0 = Debug AVX2|x64
|
||||
{2A016F21-87AE-4154-8271-1F57E91408E9}.Debug Clang AVX2|x64.ActiveCfg = Debug Clang AVX2|x64
|
||||
{2A016F21-87AE-4154-8271-1F57E91408E9}.Debug Clang AVX2|x64.Build.0 = Debug Clang AVX2|x64
|
||||
{2A016F21-87AE-4154-8271-1F57E91408E9}.Debug Clang|x64.ActiveCfg = Debug Clang|x64
|
||||
{2A016F21-87AE-4154-8271-1F57E91408E9}.Debug Clang|x64.Build.0 = Debug Clang|x64
|
||||
{2A016F21-87AE-4154-8271-1F57E91408E9}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{2A016F21-87AE-4154-8271-1F57E91408E9}.Debug|x64.Build.0 = Debug|x64
|
||||
{2A016F21-87AE-4154-8271-1F57E91408E9}.Devel AVX2|x64.ActiveCfg = Devel AVX2|x64
|
||||
{2A016F21-87AE-4154-8271-1F57E91408E9}.Devel AVX2|x64.Build.0 = Devel AVX2|x64
|
||||
{2A016F21-87AE-4154-8271-1F57E91408E9}.Devel Clang AVX2|x64.ActiveCfg = Devel Clang AVX2|x64
|
||||
{2A016F21-87AE-4154-8271-1F57E91408E9}.Devel Clang AVX2|x64.Build.0 = Devel Clang AVX2|x64
|
||||
{2A016F21-87AE-4154-8271-1F57E91408E9}.Devel Clang|x64.ActiveCfg = Devel Clang|x64
|
||||
{2A016F21-87AE-4154-8271-1F57E91408E9}.Devel Clang|x64.Build.0 = Devel Clang|x64
|
||||
{2A016F21-87AE-4154-8271-1F57E91408E9}.Devel|x64.ActiveCfg = Devel|x64
|
||||
{2A016F21-87AE-4154-8271-1F57E91408E9}.Devel|x64.Build.0 = Devel|x64
|
||||
{2A016F21-87AE-4154-8271-1F57E91408E9}.Release AVX2|x64.ActiveCfg = Release AVX2|x64
|
||||
{2A016F21-87AE-4154-8271-1F57E91408E9}.Release AVX2|x64.Build.0 = Release AVX2|x64
|
||||
{2A016F21-87AE-4154-8271-1F57E91408E9}.Release Clang AVX2|x64.ActiveCfg = Release Clang AVX2|x64
|
||||
{2A016F21-87AE-4154-8271-1F57E91408E9}.Release Clang AVX2|x64.Build.0 = Release Clang AVX2|x64
|
||||
{2A016F21-87AE-4154-8271-1F57E91408E9}.Release Clang|x64.ActiveCfg = Release Clang|x64
|
||||
{2A016F21-87AE-4154-8271-1F57E91408E9}.Release Clang|x64.Build.0 = Release Clang|x64
|
||||
{2A016F21-87AE-4154-8271-1F57E91408E9}.Release|x64.ActiveCfg = Release|x64
|
||||
{2A016F21-87AE-4154-8271-1F57E91408E9}.Release|x64.Build.0 = Release|x64
|
||||
{E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Debug AVX2|x64.ActiveCfg = Debug|x64
|
||||
{E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Debug AVX2|x64.Build.0 = Debug|x64
|
||||
{E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Debug Clang AVX2|x64.ActiveCfg = Debug Clang|x64
|
||||
{E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Debug Clang AVX2|x64.Build.0 = Debug Clang|x64
|
||||
{E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Debug Clang|x64.ActiveCfg = Debug Clang|x64
|
||||
{E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Debug Clang|x64.Build.0 = Debug Clang|x64
|
||||
{E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Debug|x64.Build.0 = Debug|x64
|
||||
{E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Devel AVX2|x64.ActiveCfg = Devel|x64
|
||||
{E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Devel AVX2|x64.Build.0 = Devel|x64
|
||||
{E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Devel Clang AVX2|x64.ActiveCfg = Devel Clang|x64
|
||||
{E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Devel Clang AVX2|x64.Build.0 = Devel Clang|x64
|
||||
{E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Devel Clang|x64.ActiveCfg = Devel Clang|x64
|
||||
{E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Devel Clang|x64.Build.0 = Devel Clang|x64
|
||||
{E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Devel|x64.ActiveCfg = Devel|x64
|
||||
{E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Devel|x64.Build.0 = Devel|x64
|
||||
{E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Release AVX2|x64.ActiveCfg = Release|x64
|
||||
{E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Release AVX2|x64.Build.0 = Release|x64
|
||||
{E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Release Clang AVX2|x64.ActiveCfg = Release Clang|x64
|
||||
{E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Release Clang AVX2|x64.Build.0 = Release Clang|x64
|
||||
{E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Release Clang|x64.ActiveCfg = Release Clang|x64
|
||||
{E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Release Clang|x64.Build.0 = Release Clang|x64
|
||||
{E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Release|x64.ActiveCfg = Release|x64
|
||||
{E9B51944-7E6D-4BCD-83F2-7BBD5A46182D}.Release|x64.Build.0 = Release|x64
|
||||
{2F6C0388-20CB-4242-9F6C-A6EBB6A83F47}.Debug AVX2|x64.ActiveCfg = Debug|x64
|
||||
{2F6C0388-20CB-4242-9F6C-A6EBB6A83F47}.Debug AVX2|x64.Build.0 = Debug|x64
|
||||
{2F6C0388-20CB-4242-9F6C-A6EBB6A83F47}.Debug Clang AVX2|x64.ActiveCfg = Debug Clang|x64
|
||||
{2F6C0388-20CB-4242-9F6C-A6EBB6A83F47}.Debug Clang AVX2|x64.Build.0 = Debug Clang|x64
|
||||
{2F6C0388-20CB-4242-9F6C-A6EBB6A83F47}.Debug Clang|x64.ActiveCfg = Debug Clang|x64
|
||||
{2F6C0388-20CB-4242-9F6C-A6EBB6A83F47}.Debug Clang|x64.Build.0 = Debug Clang|x64
|
||||
{2F6C0388-20CB-4242-9F6C-A6EBB6A83F47}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{2F6C0388-20CB-4242-9F6C-A6EBB6A83F47}.Debug|x64.Build.0 = Debug|x64
|
||||
{2F6C0388-20CB-4242-9F6C-A6EBB6A83F47}.Devel AVX2|x64.ActiveCfg = Devel|x64
|
||||
{2F6C0388-20CB-4242-9F6C-A6EBB6A83F47}.Devel AVX2|x64.Build.0 = Devel|x64
|
||||
{2F6C0388-20CB-4242-9F6C-A6EBB6A83F47}.Devel Clang AVX2|x64.ActiveCfg = Devel Clang|x64
|
||||
{2F6C0388-20CB-4242-9F6C-A6EBB6A83F47}.Devel Clang AVX2|x64.Build.0 = Devel Clang|x64
|
||||
{2F6C0388-20CB-4242-9F6C-A6EBB6A83F47}.Devel Clang|x64.ActiveCfg = Devel Clang|x64
|
||||
{2F6C0388-20CB-4242-9F6C-A6EBB6A83F47}.Devel Clang|x64.Build.0 = Devel Clang|x64
|
||||
{2F6C0388-20CB-4242-9F6C-A6EBB6A83F47}.Devel|x64.ActiveCfg = Devel|x64
|
||||
{2F6C0388-20CB-4242-9F6C-A6EBB6A83F47}.Devel|x64.Build.0 = Devel|x64
|
||||
{2F6C0388-20CB-4242-9F6C-A6EBB6A83F47}.Release AVX2|x64.ActiveCfg = Release|x64
|
||||
{2F6C0388-20CB-4242-9F6C-A6EBB6A83F47}.Release AVX2|x64.Build.0 = Release|x64
|
||||
{2F6C0388-20CB-4242-9F6C-A6EBB6A83F47}.Release Clang AVX2|x64.ActiveCfg = Release Clang|x64
|
||||
{2F6C0388-20CB-4242-9F6C-A6EBB6A83F47}.Release Clang AVX2|x64.Build.0 = Release Clang|x64
|
||||
{2F6C0388-20CB-4242-9F6C-A6EBB6A83F47}.Release Clang|x64.ActiveCfg = Release Clang|x64
|
||||
{2F6C0388-20CB-4242-9F6C-A6EBB6A83F47}.Release Clang|x64.Build.0 = Release Clang|x64
|
||||
{2F6C0388-20CB-4242-9F6C-A6EBB6A83F47}.Release|x64.ActiveCfg = Release|x64
|
||||
{2F6C0388-20CB-4242-9F6C-A6EBB6A83F47}.Release|x64.Build.0 = Release|x64
|
||||
{BC236261-77E8-4567-8D09-45CD02965EB6}.Debug AVX2|x64.ActiveCfg = Debug|x64
|
||||
{BC236261-77E8-4567-8D09-45CD02965EB6}.Debug AVX2|x64.Build.0 = Debug|x64
|
||||
{BC236261-77E8-4567-8D09-45CD02965EB6}.Debug Clang AVX2|x64.ActiveCfg = Debug Clang|x64
|
||||
{BC236261-77E8-4567-8D09-45CD02965EB6}.Debug Clang AVX2|x64.Build.0 = Debug Clang|x64
|
||||
{BC236261-77E8-4567-8D09-45CD02965EB6}.Debug Clang|x64.ActiveCfg = Debug Clang|x64
|
||||
{BC236261-77E8-4567-8D09-45CD02965EB6}.Debug Clang|x64.Build.0 = Debug Clang|x64
|
||||
{BC236261-77E8-4567-8D09-45CD02965EB6}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{BC236261-77E8-4567-8D09-45CD02965EB6}.Debug|x64.Build.0 = Debug|x64
|
||||
{BC236261-77E8-4567-8D09-45CD02965EB6}.Devel AVX2|x64.ActiveCfg = Devel|x64
|
||||
{BC236261-77E8-4567-8D09-45CD02965EB6}.Devel AVX2|x64.Build.0 = Devel|x64
|
||||
{BC236261-77E8-4567-8D09-45CD02965EB6}.Devel Clang AVX2|x64.ActiveCfg = Devel Clang|x64
|
||||
{BC236261-77E8-4567-8D09-45CD02965EB6}.Devel Clang AVX2|x64.Build.0 = Devel Clang|x64
|
||||
{BC236261-77E8-4567-8D09-45CD02965EB6}.Devel Clang|x64.ActiveCfg = Devel Clang|x64
|
||||
{BC236261-77E8-4567-8D09-45CD02965EB6}.Devel Clang|x64.Build.0 = Devel Clang|x64
|
||||
{BC236261-77E8-4567-8D09-45CD02965EB6}.Devel|x64.ActiveCfg = Devel|x64
|
||||
{BC236261-77E8-4567-8D09-45CD02965EB6}.Devel|x64.Build.0 = Devel|x64
|
||||
{BC236261-77E8-4567-8D09-45CD02965EB6}.Release AVX2|x64.ActiveCfg = Release|x64
|
||||
{BC236261-77E8-4567-8D09-45CD02965EB6}.Release AVX2|x64.Build.0 = Release|x64
|
||||
{BC236261-77E8-4567-8D09-45CD02965EB6}.Release Clang AVX2|x64.ActiveCfg = Release Clang|x64
|
||||
{BC236261-77E8-4567-8D09-45CD02965EB6}.Release Clang AVX2|x64.Build.0 = Release Clang|x64
|
||||
{BC236261-77E8-4567-8D09-45CD02965EB6}.Release Clang|x64.ActiveCfg = Release Clang|x64
|
||||
{BC236261-77E8-4567-8D09-45CD02965EB6}.Release Clang|x64.Build.0 = Release Clang|x64
|
||||
{BC236261-77E8-4567-8D09-45CD02965EB6}.Release|x64.ActiveCfg = Release|x64
|
||||
{BC236261-77E8-4567-8D09-45CD02965EB6}.Release|x64.Build.0 = Release|x64
|
||||
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Debug AVX2|x64.ActiveCfg = Debug|x64
|
||||
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Debug AVX2|x64.Build.0 = Debug|x64
|
||||
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Debug Clang AVX2|x64.ActiveCfg = Debug Clang|x64
|
||||
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Debug Clang AVX2|x64.Build.0 = Debug Clang|x64
|
||||
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Debug Clang|x64.ActiveCfg = Debug Clang|x64
|
||||
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Debug Clang|x64.Build.0 = Debug Clang|x64
|
||||
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Debug|x64.Build.0 = Debug|x64
|
||||
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Devel AVX2|x64.ActiveCfg = Devel|x64
|
||||
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Devel AVX2|x64.Build.0 = Devel|x64
|
||||
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Devel Clang AVX2|x64.ActiveCfg = Devel Clang|x64
|
||||
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Devel Clang AVX2|x64.Build.0 = Devel Clang|x64
|
||||
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Devel Clang|x64.ActiveCfg = Devel Clang|x64
|
||||
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Devel Clang|x64.Build.0 = Devel Clang|x64
|
||||
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Devel|x64.ActiveCfg = Devel|x64
|
||||
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Devel|x64.Build.0 = Devel|x64
|
||||
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Release AVX2|x64.ActiveCfg = Release|x64
|
||||
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Release AVX2|x64.Build.0 = Release|x64
|
||||
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Release Clang AVX2|x64.ActiveCfg = Release Clang|x64
|
||||
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Release Clang AVX2|x64.Build.0 = Release Clang|x64
|
||||
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Release Clang|x64.ActiveCfg = Release Clang|x64
|
||||
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Release Clang|x64.Build.0 = Release Clang|x64
|
||||
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Release|x64.ActiveCfg = Release|x64
|
||||
{D6973076-9317-4EF2-A0B8-B7A18AC0713E}.Release|x64.Build.0 = Release|x64
|
||||
{12728250-16EC-4DC6-94D7-E21DD88947F8}.Debug AVX2|x64.ActiveCfg = Debug|x64
|
||||
{12728250-16EC-4DC6-94D7-E21DD88947F8}.Debug AVX2|x64.Build.0 = Debug|x64
|
||||
{12728250-16EC-4DC6-94D7-E21DD88947F8}.Debug Clang AVX2|x64.ActiveCfg = Debug Clang|x64
|
||||
{12728250-16EC-4DC6-94D7-E21DD88947F8}.Debug Clang AVX2|x64.Build.0 = Debug Clang|x64
|
||||
{12728250-16EC-4DC6-94D7-E21DD88947F8}.Debug Clang|x64.ActiveCfg = Debug Clang|x64
|
||||
{12728250-16EC-4DC6-94D7-E21DD88947F8}.Debug Clang|x64.Build.0 = Debug Clang|x64
|
||||
{12728250-16EC-4DC6-94D7-E21DD88947F8}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{12728250-16EC-4DC6-94D7-E21DD88947F8}.Debug|x64.Build.0 = Debug|x64
|
||||
{12728250-16EC-4DC6-94D7-E21DD88947F8}.Devel AVX2|x64.ActiveCfg = Devel|x64
|
||||
{12728250-16EC-4DC6-94D7-E21DD88947F8}.Devel AVX2|x64.Build.0 = Devel|x64
|
||||
{12728250-16EC-4DC6-94D7-E21DD88947F8}.Devel Clang AVX2|x64.ActiveCfg = Devel Clang|x64
|
||||
{12728250-16EC-4DC6-94D7-E21DD88947F8}.Devel Clang AVX2|x64.Build.0 = Devel Clang|x64
|
||||
{12728250-16EC-4DC6-94D7-E21DD88947F8}.Devel Clang|x64.ActiveCfg = Devel Clang|x64
|
||||
{12728250-16EC-4DC6-94D7-E21DD88947F8}.Devel Clang|x64.Build.0 = Devel Clang|x64
|
||||
{12728250-16EC-4DC6-94D7-E21DD88947F8}.Devel|x64.ActiveCfg = Devel|x64
|
||||
{12728250-16EC-4DC6-94D7-E21DD88947F8}.Devel|x64.Build.0 = Devel|x64
|
||||
{12728250-16EC-4DC6-94D7-E21DD88947F8}.Release AVX2|x64.ActiveCfg = Release|x64
|
||||
{12728250-16EC-4DC6-94D7-E21DD88947F8}.Release AVX2|x64.Build.0 = Release|x64
|
||||
{12728250-16EC-4DC6-94D7-E21DD88947F8}.Release Clang AVX2|x64.ActiveCfg = Release Clang|x64
|
||||
{12728250-16EC-4DC6-94D7-E21DD88947F8}.Release Clang AVX2|x64.Build.0 = Release Clang|x64
|
||||
{12728250-16EC-4DC6-94D7-E21DD88947F8}.Release Clang|x64.ActiveCfg = Release Clang|x64
|
||||
{12728250-16EC-4DC6-94D7-E21DD88947F8}.Release Clang|x64.Build.0 = Release Clang|x64
|
||||
{12728250-16EC-4DC6-94D7-E21DD88947F8}.Release|x64.ActiveCfg = Release|x64
|
||||
{12728250-16EC-4DC6-94D7-E21DD88947F8}.Release|x64.Build.0 = Release|x64
|
||||
{449AD25E-424A-4714-BABC-68706CDCC33B}.Debug AVX2|x64.ActiveCfg = Debug|x64
|
||||
{449AD25E-424A-4714-BABC-68706CDCC33B}.Debug AVX2|x64.Build.0 = Debug|x64
|
||||
{449AD25E-424A-4714-BABC-68706CDCC33B}.Debug Clang AVX2|x64.ActiveCfg = Debug Clang|x64
|
||||
{449AD25E-424A-4714-BABC-68706CDCC33B}.Debug Clang AVX2|x64.Build.0 = Debug Clang|x64
|
||||
{449AD25E-424A-4714-BABC-68706CDCC33B}.Debug Clang|x64.ActiveCfg = Debug Clang|x64
|
||||
{449AD25E-424A-4714-BABC-68706CDCC33B}.Debug Clang|x64.Build.0 = Debug Clang|x64
|
||||
{449AD25E-424A-4714-BABC-68706CDCC33B}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{449AD25E-424A-4714-BABC-68706CDCC33B}.Debug|x64.Build.0 = Debug|x64
|
||||
{449AD25E-424A-4714-BABC-68706CDCC33B}.Devel AVX2|x64.ActiveCfg = Devel|x64
|
||||
{449AD25E-424A-4714-BABC-68706CDCC33B}.Devel AVX2|x64.Build.0 = Devel|x64
|
||||
{449AD25E-424A-4714-BABC-68706CDCC33B}.Devel Clang AVX2|x64.ActiveCfg = Devel Clang|x64
|
||||
{449AD25E-424A-4714-BABC-68706CDCC33B}.Devel Clang AVX2|x64.Build.0 = Devel Clang|x64
|
||||
{449AD25E-424A-4714-BABC-68706CDCC33B}.Devel Clang|x64.ActiveCfg = Devel Clang|x64
|
||||
{449AD25E-424A-4714-BABC-68706CDCC33B}.Devel Clang|x64.Build.0 = Devel Clang|x64
|
||||
{449AD25E-424A-4714-BABC-68706CDCC33B}.Devel|x64.ActiveCfg = Devel|x64
|
||||
{449AD25E-424A-4714-BABC-68706CDCC33B}.Devel|x64.Build.0 = Devel|x64
|
||||
{449AD25E-424A-4714-BABC-68706CDCC33B}.Release AVX2|x64.ActiveCfg = Release|x64
|
||||
{449AD25E-424A-4714-BABC-68706CDCC33B}.Release AVX2|x64.Build.0 = Release|x64
|
||||
{449AD25E-424A-4714-BABC-68706CDCC33B}.Release Clang AVX2|x64.ActiveCfg = Release Clang|x64
|
||||
{449AD25E-424A-4714-BABC-68706CDCC33B}.Release Clang AVX2|x64.Build.0 = Release Clang|x64
|
||||
{449AD25E-424A-4714-BABC-68706CDCC33B}.Release Clang|x64.ActiveCfg = Release Clang|x64
|
||||
{449AD25E-424A-4714-BABC-68706CDCC33B}.Release Clang|x64.Build.0 = Release Clang|x64
|
||||
{449AD25E-424A-4714-BABC-68706CDCC33B}.Release|x64.ActiveCfg = Release|x64
|
||||
{449AD25E-424A-4714-BABC-68706CDCC33B}.Release|x64.Build.0 = Release|x64
|
||||
{A0D2B3AD-1F72-4EE3-8B5C-F2C358DA35F0}.Debug AVX2|x64.ActiveCfg = Debug|x64
|
||||
{A0D2B3AD-1F72-4EE3-8B5C-F2C358DA35F0}.Debug AVX2|x64.Build.0 = Debug|x64
|
||||
{A0D2B3AD-1F72-4EE3-8B5C-F2C358DA35F0}.Debug Clang AVX2|x64.ActiveCfg = Debug Clang|x64
|
||||
{A0D2B3AD-1F72-4EE3-8B5C-F2C358DA35F0}.Debug Clang AVX2|x64.Build.0 = Debug Clang|x64
|
||||
{A0D2B3AD-1F72-4EE3-8B5C-F2C358DA35F0}.Debug Clang|x64.ActiveCfg = Debug Clang|x64
|
||||
{A0D2B3AD-1F72-4EE3-8B5C-F2C358DA35F0}.Debug Clang|x64.Build.0 = Debug Clang|x64
|
||||
{A0D2B3AD-1F72-4EE3-8B5C-F2C358DA35F0}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{A0D2B3AD-1F72-4EE3-8B5C-F2C358DA35F0}.Debug|x64.Build.0 = Debug|x64
|
||||
{A0D2B3AD-1F72-4EE3-8B5C-F2C358DA35F0}.Devel AVX2|x64.ActiveCfg = Devel|x64
|
||||
{A0D2B3AD-1F72-4EE3-8B5C-F2C358DA35F0}.Devel AVX2|x64.Build.0 = Devel|x64
|
||||
{A0D2B3AD-1F72-4EE3-8B5C-F2C358DA35F0}.Devel Clang AVX2|x64.ActiveCfg = Devel Clang|x64
|
||||
{A0D2B3AD-1F72-4EE3-8B5C-F2C358DA35F0}.Devel Clang AVX2|x64.Build.0 = Devel Clang|x64
|
||||
{A0D2B3AD-1F72-4EE3-8B5C-F2C358DA35F0}.Devel Clang|x64.ActiveCfg = Devel Clang|x64
|
||||
{A0D2B3AD-1F72-4EE3-8B5C-F2C358DA35F0}.Devel Clang|x64.Build.0 = Devel Clang|x64
|
||||
{A0D2B3AD-1F72-4EE3-8B5C-F2C358DA35F0}.Devel|x64.ActiveCfg = Devel|x64
|
||||
{A0D2B3AD-1F72-4EE3-8B5C-F2C358DA35F0}.Devel|x64.Build.0 = Devel|x64
|
||||
{A0D2B3AD-1F72-4EE3-8B5C-F2C358DA35F0}.Release AVX2|x64.ActiveCfg = Release|x64
|
||||
{A0D2B3AD-1F72-4EE3-8B5C-F2C358DA35F0}.Release AVX2|x64.Build.0 = Release|x64
|
||||
{A0D2B3AD-1F72-4EE3-8B5C-F2C358DA35F0}.Release Clang AVX2|x64.ActiveCfg = Release Clang|x64
|
||||
{A0D2B3AD-1F72-4EE3-8B5C-F2C358DA35F0}.Release Clang AVX2|x64.Build.0 = Release Clang|x64
|
||||
{A0D2B3AD-1F72-4EE3-8B5C-F2C358DA35F0}.Release Clang|x64.ActiveCfg = Release Clang|x64
|
||||
{A0D2B3AD-1F72-4EE3-8B5C-F2C358DA35F0}.Release Clang|x64.Build.0 = Release Clang|x64
|
||||
{A0D2B3AD-1F72-4EE3-8B5C-F2C358DA35F0}.Release|x64.ActiveCfg = Release|x64
|
||||
{A0D2B3AD-1F72-4EE3-8B5C-F2C358DA35F0}.Release|x64.Build.0 = Release|x64
|
||||
{ED2F21FD-0A36-4A8F-9B90-E7D92A2ACB63}.Debug AVX2|x64.ActiveCfg = Debug|x64
|
||||
{ED2F21FD-0A36-4A8F-9B90-E7D92A2ACB63}.Debug AVX2|x64.Build.0 = Debug|x64
|
||||
{ED2F21FD-0A36-4A8F-9B90-E7D92A2ACB63}.Debug Clang AVX2|x64.ActiveCfg = Debug Clang|x64
|
||||
{ED2F21FD-0A36-4A8F-9B90-E7D92A2ACB63}.Debug Clang AVX2|x64.Build.0 = Debug Clang|x64
|
||||
{ED2F21FD-0A36-4A8F-9B90-E7D92A2ACB63}.Debug Clang|x64.ActiveCfg = Debug Clang|x64
|
||||
{ED2F21FD-0A36-4A8F-9B90-E7D92A2ACB63}.Debug Clang|x64.Build.0 = Debug Clang|x64
|
||||
{ED2F21FD-0A36-4A8F-9B90-E7D92A2ACB63}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{ED2F21FD-0A36-4A8F-9B90-E7D92A2ACB63}.Debug|x64.Build.0 = Debug|x64
|
||||
{ED2F21FD-0A36-4A8F-9B90-E7D92A2ACB63}.Devel AVX2|x64.ActiveCfg = Devel|x64
|
||||
{ED2F21FD-0A36-4A8F-9B90-E7D92A2ACB63}.Devel AVX2|x64.Build.0 = Devel|x64
|
||||
{ED2F21FD-0A36-4A8F-9B90-E7D92A2ACB63}.Devel Clang AVX2|x64.ActiveCfg = Devel Clang|x64
|
||||
{ED2F21FD-0A36-4A8F-9B90-E7D92A2ACB63}.Devel Clang AVX2|x64.Build.0 = Devel Clang|x64
|
||||
{ED2F21FD-0A36-4A8F-9B90-E7D92A2ACB63}.Devel Clang|x64.ActiveCfg = Devel Clang|x64
|
||||
{ED2F21FD-0A36-4A8F-9B90-E7D92A2ACB63}.Devel Clang|x64.Build.0 = Devel Clang|x64
|
||||
{ED2F21FD-0A36-4A8F-9B90-E7D92A2ACB63}.Devel|x64.ActiveCfg = Devel|x64
|
||||
{ED2F21FD-0A36-4A8F-9B90-E7D92A2ACB63}.Devel|x64.Build.0 = Devel|x64
|
||||
{ED2F21FD-0A36-4A8F-9B90-E7D92A2ACB63}.Release AVX2|x64.ActiveCfg = Release|x64
|
||||
{ED2F21FD-0A36-4A8F-9B90-E7D92A2ACB63}.Release AVX2|x64.Build.0 = Release|x64
|
||||
{ED2F21FD-0A36-4A8F-9B90-E7D92A2ACB63}.Release Clang AVX2|x64.ActiveCfg = Release Clang|x64
|
||||
{ED2F21FD-0A36-4A8F-9B90-E7D92A2ACB63}.Release Clang AVX2|x64.Build.0 = Release Clang|x64
|
||||
{ED2F21FD-0A36-4A8F-9B90-E7D92A2ACB63}.Release Clang|x64.ActiveCfg = Release Clang|x64
|
||||
{ED2F21FD-0A36-4A8F-9B90-E7D92A2ACB63}.Release Clang|x64.Build.0 = Release Clang|x64
|
||||
{ED2F21FD-0A36-4A8F-9B90-E7D92A2ACB63}.Release|x64.ActiveCfg = Release|x64
|
||||
{ED2F21FD-0A36-4A8F-9B90-E7D92A2ACB63}.Release|x64.Build.0 = Release|x64
|
||||
{4639972E-424E-4E13-8B07-CA403C481346}.Debug AVX2|x64.ActiveCfg = Debug AVX2|x64
|
||||
{4639972E-424E-4E13-8B07-CA403C481346}.Debug AVX2|x64.Build.0 = Debug AVX2|x64
|
||||
{4639972E-424E-4E13-8B07-CA403C481346}.Debug Clang AVX2|x64.ActiveCfg = Debug Clang AVX2|x64
|
||||
{4639972E-424E-4E13-8B07-CA403C481346}.Debug Clang AVX2|x64.Build.0 = Debug Clang AVX2|x64
|
||||
{4639972E-424E-4E13-8B07-CA403C481346}.Debug Clang|x64.ActiveCfg = Debug Clang|x64
|
||||
{4639972E-424E-4E13-8B07-CA403C481346}.Debug Clang|x64.Build.0 = Debug Clang|x64
|
||||
{4639972E-424E-4E13-8B07-CA403C481346}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{4639972E-424E-4E13-8B07-CA403C481346}.Debug|x64.Build.0 = Debug|x64
|
||||
{4639972E-424E-4E13-8B07-CA403C481346}.Devel AVX2|x64.ActiveCfg = Devel AVX2|x64
|
||||
{4639972E-424E-4E13-8B07-CA403C481346}.Devel AVX2|x64.Build.0 = Devel AVX2|x64
|
||||
{4639972E-424E-4E13-8B07-CA403C481346}.Devel Clang AVX2|x64.ActiveCfg = Devel Clang AVX2|x64
|
||||
{4639972E-424E-4E13-8B07-CA403C481346}.Devel Clang AVX2|x64.Build.0 = Devel Clang AVX2|x64
|
||||
{4639972E-424E-4E13-8B07-CA403C481346}.Devel Clang|x64.ActiveCfg = Devel Clang|x64
|
||||
{4639972E-424E-4E13-8B07-CA403C481346}.Devel Clang|x64.Build.0 = Devel Clang|x64
|
||||
{4639972E-424E-4E13-8B07-CA403C481346}.Devel|x64.ActiveCfg = Devel|x64
|
||||
{4639972E-424E-4E13-8B07-CA403C481346}.Devel|x64.Build.0 = Devel|x64
|
||||
{4639972E-424E-4E13-8B07-CA403C481346}.Release AVX2|x64.ActiveCfg = Release AVX2|x64
|
||||
{4639972E-424E-4E13-8B07-CA403C481346}.Release AVX2|x64.Build.0 = Release AVX2|x64
|
||||
{4639972E-424E-4E13-8B07-CA403C481346}.Release Clang AVX2|x64.ActiveCfg = Release Clang AVX2|x64
|
||||
{4639972E-424E-4E13-8B07-CA403C481346}.Release Clang AVX2|x64.Build.0 = Release Clang AVX2|x64
|
||||
{4639972E-424E-4E13-8B07-CA403C481346}.Release Clang|x64.ActiveCfg = Release Clang|x64
|
||||
{4639972E-424E-4E13-8B07-CA403C481346}.Release Clang|x64.Build.0 = Release Clang|x64
|
||||
{4639972E-424E-4E13-8B07-CA403C481346}.Release|x64.ActiveCfg = Release|x64
|
||||
{4639972E-424E-4E13-8B07-CA403C481346}.Release|x64.Build.0 = Release|x64
|
||||
{6C7986C4-3E4D-4DCC-B3C6-6BB12B238995}.Debug AVX2|x64.ActiveCfg = Debug AVX2|x64
|
||||
{6C7986C4-3E4D-4DCC-B3C6-6BB12B238995}.Debug AVX2|x64.Build.0 = Debug AVX2|x64
|
||||
{6C7986C4-3E4D-4DCC-B3C6-6BB12B238995}.Debug Clang AVX2|x64.ActiveCfg = Debug Clang AVX2|x64
|
||||
{6C7986C4-3E4D-4DCC-B3C6-6BB12B238995}.Debug Clang AVX2|x64.Build.0 = Debug Clang AVX2|x64
|
||||
{6C7986C4-3E4D-4DCC-B3C6-6BB12B238995}.Debug Clang|x64.ActiveCfg = Debug Clang|x64
|
||||
{6C7986C4-3E4D-4DCC-B3C6-6BB12B238995}.Debug Clang|x64.Build.0 = Debug Clang|x64
|
||||
{6C7986C4-3E4D-4DCC-B3C6-6BB12B238995}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{6C7986C4-3E4D-4DCC-B3C6-6BB12B238995}.Debug|x64.Build.0 = Debug|x64
|
||||
{6C7986C4-3E4D-4DCC-B3C6-6BB12B238995}.Devel AVX2|x64.ActiveCfg = Devel AVX2|x64
|
||||
{6C7986C4-3E4D-4DCC-B3C6-6BB12B238995}.Devel AVX2|x64.Build.0 = Devel AVX2|x64
|
||||
{6C7986C4-3E4D-4DCC-B3C6-6BB12B238995}.Devel Clang AVX2|x64.ActiveCfg = Devel Clang AVX2|x64
|
||||
{6C7986C4-3E4D-4DCC-B3C6-6BB12B238995}.Devel Clang AVX2|x64.Build.0 = Devel Clang AVX2|x64
|
||||
{6C7986C4-3E4D-4DCC-B3C6-6BB12B238995}.Devel Clang|x64.ActiveCfg = Devel Clang|x64
|
||||
{6C7986C4-3E4D-4DCC-B3C6-6BB12B238995}.Devel Clang|x64.Build.0 = Devel Clang|x64
|
||||
{6C7986C4-3E4D-4DCC-B3C6-6BB12B238995}.Devel|x64.ActiveCfg = Devel|x64
|
||||
{6C7986C4-3E4D-4DCC-B3C6-6BB12B238995}.Devel|x64.Build.0 = Devel|x64
|
||||
{6C7986C4-3E4D-4DCC-B3C6-6BB12B238995}.Release AVX2|x64.ActiveCfg = Release AVX2|x64
|
||||
{6C7986C4-3E4D-4DCC-B3C6-6BB12B238995}.Release AVX2|x64.Build.0 = Release AVX2|x64
|
||||
{6C7986C4-3E4D-4DCC-B3C6-6BB12B238995}.Release Clang AVX2|x64.ActiveCfg = Release Clang AVX2|x64
|
||||
{6C7986C4-3E4D-4DCC-B3C6-6BB12B238995}.Release Clang AVX2|x64.Build.0 = Release Clang AVX2|x64
|
||||
{6C7986C4-3E4D-4DCC-B3C6-6BB12B238995}.Release Clang|x64.ActiveCfg = Release Clang|x64
|
||||
{6C7986C4-3E4D-4DCC-B3C6-6BB12B238995}.Release Clang|x64.Build.0 = Release Clang|x64
|
||||
{6C7986C4-3E4D-4DCC-B3C6-6BB12B238995}.Release|x64.ActiveCfg = Release|x64
|
||||
{6C7986C4-3E4D-4DCC-B3C6-6BB12B238995}.Release|x64.Build.0 = Release|x64
|
||||
{C0293B32-5ACF-40F0-AA6C-E6DA6F3BF33A}.Debug AVX2|x64.ActiveCfg = Debug|x64
|
||||
{C0293B32-5ACF-40F0-AA6C-E6DA6F3BF33A}.Debug AVX2|x64.Build.0 = Debug|x64
|
||||
{C0293B32-5ACF-40F0-AA6C-E6DA6F3BF33A}.Debug Clang AVX2|x64.ActiveCfg = Debug Clang|x64
|
||||
{C0293B32-5ACF-40F0-AA6C-E6DA6F3BF33A}.Debug Clang AVX2|x64.Build.0 = Debug Clang|x64
|
||||
{C0293B32-5ACF-40F0-AA6C-E6DA6F3BF33A}.Debug Clang|x64.ActiveCfg = Debug Clang|x64
|
||||
{C0293B32-5ACF-40F0-AA6C-E6DA6F3BF33A}.Debug Clang|x64.Build.0 = Debug Clang|x64
|
||||
{C0293B32-5ACF-40F0-AA6C-E6DA6F3BF33A}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{C0293B32-5ACF-40F0-AA6C-E6DA6F3BF33A}.Debug|x64.Build.0 = Debug|x64
|
||||
{C0293B32-5ACF-40F0-AA6C-E6DA6F3BF33A}.Devel AVX2|x64.ActiveCfg = Devel|x64
|
||||
{C0293B32-5ACF-40F0-AA6C-E6DA6F3BF33A}.Devel AVX2|x64.Build.0 = Devel|x64
|
||||
{C0293B32-5ACF-40F0-AA6C-E6DA6F3BF33A}.Devel Clang AVX2|x64.ActiveCfg = Devel Clang|x64
|
||||
{C0293B32-5ACF-40F0-AA6C-E6DA6F3BF33A}.Devel Clang AVX2|x64.Build.0 = Devel Clang|x64
|
||||
{C0293B32-5ACF-40F0-AA6C-E6DA6F3BF33A}.Devel Clang|x64.ActiveCfg = Devel Clang|x64
|
||||
{C0293B32-5ACF-40F0-AA6C-E6DA6F3BF33A}.Devel Clang|x64.Build.0 = Devel Clang|x64
|
||||
{C0293B32-5ACF-40F0-AA6C-E6DA6F3BF33A}.Devel|x64.ActiveCfg = Devel|x64
|
||||
{C0293B32-5ACF-40F0-AA6C-E6DA6F3BF33A}.Devel|x64.Build.0 = Devel|x64
|
||||
{C0293B32-5ACF-40F0-AA6C-E6DA6F3BF33A}.Release AVX2|x64.ActiveCfg = Release|x64
|
||||
{C0293B32-5ACF-40F0-AA6C-E6DA6F3BF33A}.Release AVX2|x64.Build.0 = Release|x64
|
||||
{C0293B32-5ACF-40F0-AA6C-E6DA6F3BF33A}.Release Clang AVX2|x64.ActiveCfg = Release Clang|x64
|
||||
{C0293B32-5ACF-40F0-AA6C-E6DA6F3BF33A}.Release Clang AVX2|x64.Build.0 = Release Clang|x64
|
||||
{C0293B32-5ACF-40F0-AA6C-E6DA6F3BF33A}.Release Clang|x64.ActiveCfg = Release Clang|x64
|
||||
{C0293B32-5ACF-40F0-AA6C-E6DA6F3BF33A}.Release Clang|x64.Build.0 = Release Clang|x64
|
||||
{C0293B32-5ACF-40F0-AA6C-E6DA6F3BF33A}.Release|x64.ActiveCfg = Release|x64
|
||||
{C0293B32-5ACF-40F0-AA6C-E6DA6F3BF33A}.Release|x64.Build.0 = Release|x64
|
||||
{88FB34EC-845E-4F21-A552-F1573B9ED167}.Debug AVX2|x64.ActiveCfg = Debug|x64
|
||||
{88FB34EC-845E-4F21-A552-F1573B9ED167}.Debug AVX2|x64.Build.0 = Debug|x64
|
||||
{88FB34EC-845E-4F21-A552-F1573B9ED167}.Debug Clang AVX2|x64.ActiveCfg = Debug Clang|x64
|
||||
{88FB34EC-845E-4F21-A552-F1573B9ED167}.Debug Clang AVX2|x64.Build.0 = Debug Clang|x64
|
||||
{88FB34EC-845E-4F21-A552-F1573B9ED167}.Debug Clang|x64.ActiveCfg = Debug Clang|x64
|
||||
{88FB34EC-845E-4F21-A552-F1573B9ED167}.Debug Clang|x64.Build.0 = Debug Clang|x64
|
||||
{88FB34EC-845E-4F21-A552-F1573B9ED167}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{88FB34EC-845E-4F21-A552-F1573B9ED167}.Debug|x64.Build.0 = Debug|x64
|
||||
{88FB34EC-845E-4F21-A552-F1573B9ED167}.Devel AVX2|x64.ActiveCfg = Devel|x64
|
||||
{88FB34EC-845E-4F21-A552-F1573B9ED167}.Devel AVX2|x64.Build.0 = Devel|x64
|
||||
{88FB34EC-845E-4F21-A552-F1573B9ED167}.Devel Clang AVX2|x64.ActiveCfg = Devel Clang|x64
|
||||
{88FB34EC-845E-4F21-A552-F1573B9ED167}.Devel Clang AVX2|x64.Build.0 = Devel Clang|x64
|
||||
{88FB34EC-845E-4F21-A552-F1573B9ED167}.Devel Clang|x64.ActiveCfg = Devel Clang|x64
|
||||
{88FB34EC-845E-4F21-A552-F1573B9ED167}.Devel Clang|x64.Build.0 = Devel Clang|x64
|
||||
{88FB34EC-845E-4F21-A552-F1573B9ED167}.Devel|x64.ActiveCfg = Devel|x64
|
||||
{88FB34EC-845E-4F21-A552-F1573B9ED167}.Devel|x64.Build.0 = Devel|x64
|
||||
{88FB34EC-845E-4F21-A552-F1573B9ED167}.Release AVX2|x64.ActiveCfg = Release|x64
|
||||
{88FB34EC-845E-4F21-A552-F1573B9ED167}.Release AVX2|x64.Build.0 = Release|x64
|
||||
{88FB34EC-845E-4F21-A552-F1573B9ED167}.Release Clang AVX2|x64.ActiveCfg = Release Clang|x64
|
||||
{88FB34EC-845E-4F21-A552-F1573B9ED167}.Release Clang AVX2|x64.Build.0 = Release Clang|x64
|
||||
{88FB34EC-845E-4F21-A552-F1573B9ED167}.Release Clang|x64.ActiveCfg = Release Clang|x64
|
||||
{88FB34EC-845E-4F21-A552-F1573B9ED167}.Release Clang|x64.Build.0 = Release Clang|x64
|
||||
{88FB34EC-845E-4F21-A552-F1573B9ED167}.Release|x64.ActiveCfg = Release|x64
|
||||
{88FB34EC-845E-4F21-A552-F1573B9ED167}.Release|x64.Build.0 = Release|x64
|
||||
{1EC8B3C0-8FB3-46DE-A2E0-A9121203F266}.Debug AVX2|x64.ActiveCfg = Debug|x64
|
||||
{1EC8B3C0-8FB3-46DE-A2E0-A9121203F266}.Debug AVX2|x64.Build.0 = Debug|x64
|
||||
{1EC8B3C0-8FB3-46DE-A2E0-A9121203F266}.Debug Clang AVX2|x64.ActiveCfg = Debug Clang|x64
|
||||
{1EC8B3C0-8FB3-46DE-A2E0-A9121203F266}.Debug Clang AVX2|x64.Build.0 = Debug Clang|x64
|
||||
{1EC8B3C0-8FB3-46DE-A2E0-A9121203F266}.Debug Clang|x64.ActiveCfg = Debug Clang|x64
|
||||
{1EC8B3C0-8FB3-46DE-A2E0-A9121203F266}.Debug Clang|x64.Build.0 = Debug Clang|x64
|
||||
{1EC8B3C0-8FB3-46DE-A2E0-A9121203F266}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{1EC8B3C0-8FB3-46DE-A2E0-A9121203F266}.Debug|x64.Build.0 = Debug|x64
|
||||
{1EC8B3C0-8FB3-46DE-A2E0-A9121203F266}.Devel AVX2|x64.ActiveCfg = Devel|x64
|
||||
{1EC8B3C0-8FB3-46DE-A2E0-A9121203F266}.Devel AVX2|x64.Build.0 = Devel|x64
|
||||
{1EC8B3C0-8FB3-46DE-A2E0-A9121203F266}.Devel Clang AVX2|x64.ActiveCfg = Devel Clang|x64
|
||||
{1EC8B3C0-8FB3-46DE-A2E0-A9121203F266}.Devel Clang AVX2|x64.Build.0 = Devel Clang|x64
|
||||
{1EC8B3C0-8FB3-46DE-A2E0-A9121203F266}.Devel Clang|x64.ActiveCfg = Devel Clang|x64
|
||||
{1EC8B3C0-8FB3-46DE-A2E0-A9121203F266}.Devel Clang|x64.Build.0 = Devel Clang|x64
|
||||
{1EC8B3C0-8FB3-46DE-A2E0-A9121203F266}.Devel|x64.ActiveCfg = Devel|x64
|
||||
{1EC8B3C0-8FB3-46DE-A2E0-A9121203F266}.Devel|x64.Build.0 = Devel|x64
|
||||
{1EC8B3C0-8FB3-46DE-A2E0-A9121203F266}.Release AVX2|x64.ActiveCfg = Release|x64
|
||||
{1EC8B3C0-8FB3-46DE-A2E0-A9121203F266}.Release AVX2|x64.Build.0 = Release|x64
|
||||
{1EC8B3C0-8FB3-46DE-A2E0-A9121203F266}.Release Clang AVX2|x64.ActiveCfg = Release Clang|x64
|
||||
{1EC8B3C0-8FB3-46DE-A2E0-A9121203F266}.Release Clang AVX2|x64.Build.0 = Release Clang|x64
|
||||
{1EC8B3C0-8FB3-46DE-A2E0-A9121203F266}.Release Clang|x64.ActiveCfg = Release Clang|x64
|
||||
{1EC8B3C0-8FB3-46DE-A2E0-A9121203F266}.Release Clang|x64.Build.0 = Release Clang|x64
|
||||
{1EC8B3C0-8FB3-46DE-A2E0-A9121203F266}.Release|x64.ActiveCfg = Release|x64
|
||||
{1EC8B3C0-8FB3-46DE-A2E0-A9121203F266}.Release|x64.Build.0 = Release|x64
|
||||
{BF74C473-DC04-44B3-92E8-4145F4E77342}.Debug AVX2|x64.ActiveCfg = Debug|x64
|
||||
{BF74C473-DC04-44B3-92E8-4145F4E77342}.Debug AVX2|x64.Build.0 = Debug|x64
|
||||
{BF74C473-DC04-44B3-92E8-4145F4E77342}.Debug Clang AVX2|x64.ActiveCfg = Debug Clang|x64
|
||||
{BF74C473-DC04-44B3-92E8-4145F4E77342}.Debug Clang AVX2|x64.Build.0 = Debug Clang|x64
|
||||
{BF74C473-DC04-44B3-92E8-4145F4E77342}.Debug Clang|x64.ActiveCfg = Debug Clang|x64
|
||||
{BF74C473-DC04-44B3-92E8-4145F4E77342}.Debug Clang|x64.Build.0 = Debug Clang|x64
|
||||
{BF74C473-DC04-44B3-92E8-4145F4E77342}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{BF74C473-DC04-44B3-92E8-4145F4E77342}.Debug|x64.Build.0 = Debug|x64
|
||||
{BF74C473-DC04-44B3-92E8-4145F4E77342}.Devel AVX2|x64.ActiveCfg = Devel|x64
|
||||
{BF74C473-DC04-44B3-92E8-4145F4E77342}.Devel AVX2|x64.Build.0 = Devel|x64
|
||||
{BF74C473-DC04-44B3-92E8-4145F4E77342}.Devel Clang AVX2|x64.ActiveCfg = Devel Clang|x64
|
||||
{BF74C473-DC04-44B3-92E8-4145F4E77342}.Devel Clang AVX2|x64.Build.0 = Devel Clang|x64
|
||||
{BF74C473-DC04-44B3-92E8-4145F4E77342}.Devel Clang|x64.ActiveCfg = Devel Clang|x64
|
||||
{BF74C473-DC04-44B3-92E8-4145F4E77342}.Devel Clang|x64.Build.0 = Devel Clang|x64
|
||||
{BF74C473-DC04-44B3-92E8-4145F4E77342}.Devel|x64.ActiveCfg = Devel|x64
|
||||
{BF74C473-DC04-44B3-92E8-4145F4E77342}.Devel|x64.Build.0 = Devel|x64
|
||||
{BF74C473-DC04-44B3-92E8-4145F4E77342}.Release AVX2|x64.ActiveCfg = Release|x64
|
||||
{BF74C473-DC04-44B3-92E8-4145F4E77342}.Release AVX2|x64.Build.0 = Release|x64
|
||||
{BF74C473-DC04-44B3-92E8-4145F4E77342}.Release Clang AVX2|x64.ActiveCfg = Release Clang|x64
|
||||
{BF74C473-DC04-44B3-92E8-4145F4E77342}.Release Clang AVX2|x64.Build.0 = Release Clang|x64
|
||||
{BF74C473-DC04-44B3-92E8-4145F4E77342}.Release Clang|x64.ActiveCfg = Release Clang|x64
|
||||
{BF74C473-DC04-44B3-92E8-4145F4E77342}.Release Clang|x64.Build.0 = Release Clang|x64
|
||||
{BF74C473-DC04-44B3-92E8-4145F4E77342}.Release|x64.ActiveCfg = Release|x64
|
||||
{BF74C473-DC04-44B3-92E8-4145F4E77342}.Release|x64.Build.0 = Release|x64
|
||||
{DE9653B6-17DD-356A-9EE0-28A731772587}.Debug AVX2|x64.ActiveCfg = Debug|x64
|
||||
{DE9653B6-17DD-356A-9EE0-28A731772587}.Debug AVX2|x64.Build.0 = Debug|x64
|
||||
{DE9653B6-17DD-356A-9EE0-28A731772587}.Debug Clang AVX2|x64.ActiveCfg = Debug Clang|x64
|
||||
{DE9653B6-17DD-356A-9EE0-28A731772587}.Debug Clang AVX2|x64.Build.0 = Debug Clang|x64
|
||||
{DE9653B6-17DD-356A-9EE0-28A731772587}.Debug Clang|x64.ActiveCfg = Debug Clang|x64
|
||||
{DE9653B6-17DD-356A-9EE0-28A731772587}.Debug Clang|x64.Build.0 = Debug Clang|x64
|
||||
{DE9653B6-17DD-356A-9EE0-28A731772587}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{DE9653B6-17DD-356A-9EE0-28A731772587}.Debug|x64.Build.0 = Debug|x64
|
||||
{DE9653B6-17DD-356A-9EE0-28A731772587}.Devel AVX2|x64.ActiveCfg = Devel|x64
|
||||
{DE9653B6-17DD-356A-9EE0-28A731772587}.Devel AVX2|x64.Build.0 = Devel|x64
|
||||
{DE9653B6-17DD-356A-9EE0-28A731772587}.Devel Clang AVX2|x64.ActiveCfg = Devel Clang|x64
|
||||
{DE9653B6-17DD-356A-9EE0-28A731772587}.Devel Clang AVX2|x64.Build.0 = Devel Clang|x64
|
||||
{DE9653B6-17DD-356A-9EE0-28A731772587}.Devel Clang|x64.ActiveCfg = Devel Clang|x64
|
||||
{DE9653B6-17DD-356A-9EE0-28A731772587}.Devel Clang|x64.Build.0 = Devel Clang|x64
|
||||
{DE9653B6-17DD-356A-9EE0-28A731772587}.Devel|x64.ActiveCfg = Devel|x64
|
||||
{DE9653B6-17DD-356A-9EE0-28A731772587}.Devel|x64.Build.0 = Devel|x64
|
||||
{DE9653B6-17DD-356A-9EE0-28A731772587}.Release AVX2|x64.ActiveCfg = Release|x64
|
||||
{DE9653B6-17DD-356A-9EE0-28A731772587}.Release AVX2|x64.Build.0 = Release|x64
|
||||
{DE9653B6-17DD-356A-9EE0-28A731772587}.Release Clang AVX2|x64.ActiveCfg = Release Clang|x64
|
||||
{DE9653B6-17DD-356A-9EE0-28A731772587}.Release Clang AVX2|x64.Build.0 = Release Clang|x64
|
||||
{DE9653B6-17DD-356A-9EE0-28A731772587}.Release Clang|x64.ActiveCfg = Release Clang|x64
|
||||
{DE9653B6-17DD-356A-9EE0-28A731772587}.Release Clang|x64.Build.0 = Release Clang|x64
|
||||
{DE9653B6-17DD-356A-9EE0-28A731772587}.Release|x64.ActiveCfg = Release|x64
|
||||
{DE9653B6-17DD-356A-9EE0-28A731772587}.Release|x64.Build.0 = Release|x64
|
||||
{EF6834A9-11F3-4331-BC34-21B325ABB180}.Debug AVX2|x64.ActiveCfg = Debug|x64
|
||||
{EF6834A9-11F3-4331-BC34-21B325ABB180}.Debug AVX2|x64.Build.0 = Debug|x64
|
||||
{EF6834A9-11F3-4331-BC34-21B325ABB180}.Debug Clang AVX2|x64.ActiveCfg = Debug Clang|x64
|
||||
{EF6834A9-11F3-4331-BC34-21B325ABB180}.Debug Clang AVX2|x64.Build.0 = Debug Clang|x64
|
||||
{EF6834A9-11F3-4331-BC34-21B325ABB180}.Debug Clang|x64.ActiveCfg = Debug Clang|x64
|
||||
{EF6834A9-11F3-4331-BC34-21B325ABB180}.Debug Clang|x64.Build.0 = Debug Clang|x64
|
||||
{EF6834A9-11F3-4331-BC34-21B325ABB180}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{EF6834A9-11F3-4331-BC34-21B325ABB180}.Debug|x64.Build.0 = Debug|x64
|
||||
{EF6834A9-11F3-4331-BC34-21B325ABB180}.Devel AVX2|x64.ActiveCfg = Devel|x64
|
||||
{EF6834A9-11F3-4331-BC34-21B325ABB180}.Devel AVX2|x64.Build.0 = Devel|x64
|
||||
{EF6834A9-11F3-4331-BC34-21B325ABB180}.Devel Clang AVX2|x64.ActiveCfg = Devel Clang|x64
|
||||
{EF6834A9-11F3-4331-BC34-21B325ABB180}.Devel Clang AVX2|x64.Build.0 = Devel Clang|x64
|
||||
{EF6834A9-11F3-4331-BC34-21B325ABB180}.Devel Clang|x64.ActiveCfg = Devel Clang|x64
|
||||
{EF6834A9-11F3-4331-BC34-21B325ABB180}.Devel Clang|x64.Build.0 = Devel Clang|x64
|
||||
{EF6834A9-11F3-4331-BC34-21B325ABB180}.Devel|x64.ActiveCfg = Devel|x64
|
||||
{EF6834A9-11F3-4331-BC34-21B325ABB180}.Devel|x64.Build.0 = Devel|x64
|
||||
{EF6834A9-11F3-4331-BC34-21B325ABB180}.Release AVX2|x64.ActiveCfg = Release|x64
|
||||
{EF6834A9-11F3-4331-BC34-21B325ABB180}.Release AVX2|x64.Build.0 = Release|x64
|
||||
{EF6834A9-11F3-4331-BC34-21B325ABB180}.Release Clang AVX2|x64.ActiveCfg = Release Clang|x64
|
||||
{EF6834A9-11F3-4331-BC34-21B325ABB180}.Release Clang AVX2|x64.Build.0 = Release Clang|x64
|
||||
{EF6834A9-11F3-4331-BC34-21B325ABB180}.Release Clang|x64.ActiveCfg = Release Clang|x64
|
||||
{EF6834A9-11F3-4331-BC34-21B325ABB180}.Release Clang|x64.Build.0 = Release Clang|x64
|
||||
{EF6834A9-11F3-4331-BC34-21B325ABB180}.Release|x64.ActiveCfg = Release|x64
|
||||
{EF6834A9-11F3-4331-BC34-21B325ABB180}.Release|x64.Build.0 = Release|x64
|
||||
{812B4434-FD6B-4CB2-8865-5FD8EB34B046}.Debug AVX2|x64.ActiveCfg = Debug|x64
|
||||
{812B4434-FD6B-4CB2-8865-5FD8EB34B046}.Debug AVX2|x64.Build.0 = Debug|x64
|
||||
{812B4434-FD6B-4CB2-8865-5FD8EB34B046}.Debug Clang AVX2|x64.ActiveCfg = Debug Clang|x64
|
||||
{812B4434-FD6B-4CB2-8865-5FD8EB34B046}.Debug Clang AVX2|x64.Build.0 = Debug Clang|x64
|
||||
{812B4434-FD6B-4CB2-8865-5FD8EB34B046}.Debug Clang|x64.ActiveCfg = Debug Clang|x64
|
||||
{812B4434-FD6B-4CB2-8865-5FD8EB34B046}.Debug Clang|x64.Build.0 = Debug Clang|x64
|
||||
{812B4434-FD6B-4CB2-8865-5FD8EB34B046}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{812B4434-FD6B-4CB2-8865-5FD8EB34B046}.Debug|x64.Build.0 = Debug|x64
|
||||
{812B4434-FD6B-4CB2-8865-5FD8EB34B046}.Devel AVX2|x64.ActiveCfg = Devel|x64
|
||||
{812B4434-FD6B-4CB2-8865-5FD8EB34B046}.Devel AVX2|x64.Build.0 = Devel|x64
|
||||
{812B4434-FD6B-4CB2-8865-5FD8EB34B046}.Devel Clang AVX2|x64.ActiveCfg = Devel Clang|x64
|
||||
{812B4434-FD6B-4CB2-8865-5FD8EB34B046}.Devel Clang AVX2|x64.Build.0 = Devel Clang|x64
|
||||
{812B4434-FD6B-4CB2-8865-5FD8EB34B046}.Devel Clang|x64.ActiveCfg = Devel Clang|x64
|
||||
{812B4434-FD6B-4CB2-8865-5FD8EB34B046}.Devel Clang|x64.Build.0 = Devel Clang|x64
|
||||
{812B4434-FD6B-4CB2-8865-5FD8EB34B046}.Devel|x64.ActiveCfg = Devel|x64
|
||||
{812B4434-FD6B-4CB2-8865-5FD8EB34B046}.Devel|x64.Build.0 = Devel|x64
|
||||
{812B4434-FD6B-4CB2-8865-5FD8EB34B046}.Release AVX2|x64.ActiveCfg = Release|x64
|
||||
{812B4434-FD6B-4CB2-8865-5FD8EB34B046}.Release AVX2|x64.Build.0 = Release|x64
|
||||
{812B4434-FD6B-4CB2-8865-5FD8EB34B046}.Release Clang AVX2|x64.ActiveCfg = Release Clang|x64
|
||||
{812B4434-FD6B-4CB2-8865-5FD8EB34B046}.Release Clang AVX2|x64.Build.0 = Release Clang|x64
|
||||
{812B4434-FD6B-4CB2-8865-5FD8EB34B046}.Release Clang|x64.ActiveCfg = Release Clang|x64
|
||||
{812B4434-FD6B-4CB2-8865-5FD8EB34B046}.Release Clang|x64.Build.0 = Release Clang|x64
|
||||
{812B4434-FD6B-4CB2-8865-5FD8EB34B046}.Release|x64.ActiveCfg = Release|x64
|
||||
{812B4434-FD6B-4CB2-8865-5FD8EB34B046}.Release|x64.Build.0 = Release|x64
|
||||
{20B2E9FE-F020-42A0-B324-956F5B06EA68}.Debug AVX2|x64.ActiveCfg = Debug|x64
|
||||
{20B2E9FE-F020-42A0-B324-956F5B06EA68}.Debug AVX2|x64.Build.0 = Debug|x64
|
||||
{20B2E9FE-F020-42A0-B324-956F5B06EA68}.Debug Clang AVX2|x64.ActiveCfg = Debug Clang|x64
|
||||
{20B2E9FE-F020-42A0-B324-956F5B06EA68}.Debug Clang AVX2|x64.Build.0 = Debug Clang|x64
|
||||
{20B2E9FE-F020-42A0-B324-956F5B06EA68}.Debug Clang|x64.ActiveCfg = Debug Clang|x64
|
||||
{20B2E9FE-F020-42A0-B324-956F5B06EA68}.Debug Clang|x64.Build.0 = Debug Clang|x64
|
||||
{20B2E9FE-F020-42A0-B324-956F5B06EA68}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{20B2E9FE-F020-42A0-B324-956F5B06EA68}.Debug|x64.Build.0 = Debug|x64
|
||||
{20B2E9FE-F020-42A0-B324-956F5B06EA68}.Devel AVX2|x64.ActiveCfg = Devel|x64
|
||||
{20B2E9FE-F020-42A0-B324-956F5B06EA68}.Devel AVX2|x64.Build.0 = Devel|x64
|
||||
{20B2E9FE-F020-42A0-B324-956F5B06EA68}.Devel Clang AVX2|x64.ActiveCfg = Devel Clang|x64
|
||||
{20B2E9FE-F020-42A0-B324-956F5B06EA68}.Devel Clang AVX2|x64.Build.0 = Devel Clang|x64
|
||||
{20B2E9FE-F020-42A0-B324-956F5B06EA68}.Devel Clang|x64.ActiveCfg = Devel Clang|x64
|
||||
{20B2E9FE-F020-42A0-B324-956F5B06EA68}.Devel Clang|x64.Build.0 = Devel Clang|x64
|
||||
{20B2E9FE-F020-42A0-B324-956F5B06EA68}.Devel|x64.ActiveCfg = Devel|x64
|
||||
{20B2E9FE-F020-42A0-B324-956F5B06EA68}.Devel|x64.Build.0 = Devel|x64
|
||||
{20B2E9FE-F020-42A0-B324-956F5B06EA68}.Release AVX2|x64.ActiveCfg = Release|x64
|
||||
{20B2E9FE-F020-42A0-B324-956F5B06EA68}.Release AVX2|x64.Build.0 = Release|x64
|
||||
{20B2E9FE-F020-42A0-B324-956F5B06EA68}.Release Clang AVX2|x64.ActiveCfg = Release Clang|x64
|
||||
{20B2E9FE-F020-42A0-B324-956F5B06EA68}.Release Clang AVX2|x64.Build.0 = Release Clang|x64
|
||||
{20B2E9FE-F020-42A0-B324-956F5B06EA68}.Release Clang|x64.ActiveCfg = Release Clang|x64
|
||||
{20B2E9FE-F020-42A0-B324-956F5B06EA68}.Release Clang|x64.Build.0 = Release Clang|x64
|
||||
{20B2E9FE-F020-42A0-B324-956F5B06EA68}.Release|x64.ActiveCfg = Release|x64
|
||||
{20B2E9FE-F020-42A0-B324-956F5B06EA68}.Release|x64.Build.0 = Release|x64
|
||||
{52244028-937A-44E9-A76B-2BEA18FD239A}.Debug AVX2|x64.ActiveCfg = Debug|x64
|
||||
{52244028-937A-44E9-A76B-2BEA18FD239A}.Debug AVX2|x64.Build.0 = Debug|x64
|
||||
{52244028-937A-44E9-A76B-2BEA18FD239A}.Debug Clang AVX2|x64.ActiveCfg = Debug Clang|x64
|
||||
{52244028-937A-44E9-A76B-2BEA18FD239A}.Debug Clang AVX2|x64.Build.0 = Debug Clang|x64
|
||||
{52244028-937A-44E9-A76B-2BEA18FD239A}.Debug Clang|x64.ActiveCfg = Debug Clang|x64
|
||||
{52244028-937A-44E9-A76B-2BEA18FD239A}.Debug Clang|x64.Build.0 = Debug Clang|x64
|
||||
{52244028-937A-44E9-A76B-2BEA18FD239A}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{52244028-937A-44E9-A76B-2BEA18FD239A}.Debug|x64.Build.0 = Debug|x64
|
||||
{52244028-937A-44E9-A76B-2BEA18FD239A}.Devel AVX2|x64.ActiveCfg = Devel|x64
|
||||
{52244028-937A-44E9-A76B-2BEA18FD239A}.Devel AVX2|x64.Build.0 = Devel|x64
|
||||
{52244028-937A-44E9-A76B-2BEA18FD239A}.Devel Clang AVX2|x64.ActiveCfg = Devel Clang|x64
|
||||
{52244028-937A-44E9-A76B-2BEA18FD239A}.Devel Clang AVX2|x64.Build.0 = Devel Clang|x64
|
||||
{52244028-937A-44E9-A76B-2BEA18FD239A}.Devel Clang|x64.ActiveCfg = Devel Clang|x64
|
||||
{52244028-937A-44E9-A76B-2BEA18FD239A}.Devel Clang|x64.Build.0 = Devel Clang|x64
|
||||
{52244028-937A-44E9-A76B-2BEA18FD239A}.Devel|x64.ActiveCfg = Devel|x64
|
||||
{52244028-937A-44E9-A76B-2BEA18FD239A}.Devel|x64.Build.0 = Devel|x64
|
||||
{52244028-937A-44E9-A76B-2BEA18FD239A}.Release AVX2|x64.ActiveCfg = Release|x64
|
||||
{52244028-937A-44E9-A76B-2BEA18FD239A}.Release AVX2|x64.Build.0 = Release|x64
|
||||
{52244028-937A-44E9-A76B-2BEA18FD239A}.Release Clang AVX2|x64.ActiveCfg = Release Clang|x64
|
||||
{52244028-937A-44E9-A76B-2BEA18FD239A}.Release Clang AVX2|x64.Build.0 = Release Clang|x64
|
||||
{52244028-937A-44E9-A76B-2BEA18FD239A}.Release Clang|x64.ActiveCfg = Release Clang|x64
|
||||
{52244028-937A-44E9-A76B-2BEA18FD239A}.Release Clang|x64.Build.0 = Release Clang|x64
|
||||
{52244028-937A-44E9-A76B-2BEA18FD239A}.Release|x64.ActiveCfg = Release|x64
|
||||
{52244028-937A-44E9-A76B-2BEA18FD239A}.Release|x64.Build.0 = Release|x64
|
||||
{D45CEC7A-3171-40DD-975D-E1544CF16139}.Debug AVX2|x64.ActiveCfg = Debug|x64
|
||||
{D45CEC7A-3171-40DD-975D-E1544CF16139}.Debug AVX2|x64.Build.0 = Debug|x64
|
||||
{D45CEC7A-3171-40DD-975D-E1544CF16139}.Debug Clang AVX2|x64.ActiveCfg = Debug Clang|x64
|
||||
{D45CEC7A-3171-40DD-975D-E1544CF16139}.Debug Clang AVX2|x64.Build.0 = Debug Clang|x64
|
||||
{D45CEC7A-3171-40DD-975D-E1544CF16139}.Debug Clang|x64.ActiveCfg = Debug Clang|x64
|
||||
{D45CEC7A-3171-40DD-975D-E1544CF16139}.Debug Clang|x64.Build.0 = Debug Clang|x64
|
||||
{D45CEC7A-3171-40DD-975D-E1544CF16139}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{D45CEC7A-3171-40DD-975D-E1544CF16139}.Debug|x64.Build.0 = Debug|x64
|
||||
{D45CEC7A-3171-40DD-975D-E1544CF16139}.Devel AVX2|x64.ActiveCfg = Devel|x64
|
||||
{D45CEC7A-3171-40DD-975D-E1544CF16139}.Devel AVX2|x64.Build.0 = Devel|x64
|
||||
{D45CEC7A-3171-40DD-975D-E1544CF16139}.Devel Clang AVX2|x64.ActiveCfg = Devel Clang|x64
|
||||
{D45CEC7A-3171-40DD-975D-E1544CF16139}.Devel Clang AVX2|x64.Build.0 = Devel Clang|x64
|
||||
{D45CEC7A-3171-40DD-975D-E1544CF16139}.Devel Clang|x64.ActiveCfg = Devel Clang|x64
|
||||
{D45CEC7A-3171-40DD-975D-E1544CF16139}.Devel Clang|x64.Build.0 = Devel Clang|x64
|
||||
{D45CEC7A-3171-40DD-975D-E1544CF16139}.Devel|x64.ActiveCfg = Devel|x64
|
||||
{D45CEC7A-3171-40DD-975D-E1544CF16139}.Devel|x64.Build.0 = Devel|x64
|
||||
{D45CEC7A-3171-40DD-975D-E1544CF16139}.Release AVX2|x64.ActiveCfg = Release|x64
|
||||
{D45CEC7A-3171-40DD-975D-E1544CF16139}.Release AVX2|x64.Build.0 = Release|x64
|
||||
{D45CEC7A-3171-40DD-975D-E1544CF16139}.Release Clang AVX2|x64.ActiveCfg = Release Clang|x64
|
||||
{D45CEC7A-3171-40DD-975D-E1544CF16139}.Release Clang AVX2|x64.Build.0 = Release Clang|x64
|
||||
{D45CEC7A-3171-40DD-975D-E1544CF16139}.Release Clang|x64.ActiveCfg = Release Clang|x64
|
||||
{D45CEC7A-3171-40DD-975D-E1544CF16139}.Release Clang|x64.Build.0 = Release Clang|x64
|
||||
{D45CEC7A-3171-40DD-975D-E1544CF16139}.Release|x64.ActiveCfg = Release|x64
|
||||
{D45CEC7A-3171-40DD-975D-E1544CF16139}.Release|x64.Build.0 = Release|x64
|
||||
{A4323327-3F2B-4271-83D9-7F9A3C66B6B2}.Debug AVX2|x64.ActiveCfg = Debug|x64
|
||||
{A4323327-3F2B-4271-83D9-7F9A3C66B6B2}.Debug AVX2|x64.Build.0 = Debug|x64
|
||||
{A4323327-3F2B-4271-83D9-7F9A3C66B6B2}.Debug Clang AVX2|x64.ActiveCfg = Debug Clang|x64
|
||||
{A4323327-3F2B-4271-83D9-7F9A3C66B6B2}.Debug Clang AVX2|x64.Build.0 = Debug Clang|x64
|
||||
{A4323327-3F2B-4271-83D9-7F9A3C66B6B2}.Debug Clang|x64.ActiveCfg = Debug Clang|x64
|
||||
{A4323327-3F2B-4271-83D9-7F9A3C66B6B2}.Debug Clang|x64.Build.0 = Debug Clang|x64
|
||||
{A4323327-3F2B-4271-83D9-7F9A3C66B6B2}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{A4323327-3F2B-4271-83D9-7F9A3C66B6B2}.Debug|x64.Build.0 = Debug|x64
|
||||
{A4323327-3F2B-4271-83D9-7F9A3C66B6B2}.Devel AVX2|x64.ActiveCfg = Devel|x64
|
||||
{A4323327-3F2B-4271-83D9-7F9A3C66B6B2}.Devel AVX2|x64.Build.0 = Devel|x64
|
||||
{A4323327-3F2B-4271-83D9-7F9A3C66B6B2}.Devel Clang AVX2|x64.ActiveCfg = Devel Clang|x64
|
||||
{A4323327-3F2B-4271-83D9-7F9A3C66B6B2}.Devel Clang AVX2|x64.Build.0 = Devel Clang|x64
|
||||
{A4323327-3F2B-4271-83D9-7F9A3C66B6B2}.Devel Clang|x64.ActiveCfg = Devel Clang|x64
|
||||
{A4323327-3F2B-4271-83D9-7F9A3C66B6B2}.Devel Clang|x64.Build.0 = Devel Clang|x64
|
||||
{A4323327-3F2B-4271-83D9-7F9A3C66B6B2}.Devel|x64.ActiveCfg = Devel|x64
|
||||
{A4323327-3F2B-4271-83D9-7F9A3C66B6B2}.Devel|x64.Build.0 = Devel|x64
|
||||
{A4323327-3F2B-4271-83D9-7F9A3C66B6B2}.Release AVX2|x64.ActiveCfg = Release|x64
|
||||
{A4323327-3F2B-4271-83D9-7F9A3C66B6B2}.Release AVX2|x64.Build.0 = Release|x64
|
||||
{A4323327-3F2B-4271-83D9-7F9A3C66B6B2}.Release Clang AVX2|x64.ActiveCfg = Release Clang|x64
|
||||
{A4323327-3F2B-4271-83D9-7F9A3C66B6B2}.Release Clang AVX2|x64.Build.0 = Release Clang|x64
|
||||
{A4323327-3F2B-4271-83D9-7F9A3C66B6B2}.Release Clang|x64.ActiveCfg = Release Clang|x64
|
||||
{A4323327-3F2B-4271-83D9-7F9A3C66B6B2}.Release Clang|x64.Build.0 = Release Clang|x64
|
||||
{A4323327-3F2B-4271-83D9-7F9A3C66B6B2}.Release|x64.ActiveCfg = Release|x64
|
||||
{A4323327-3F2B-4271-83D9-7F9A3C66B6B2}.Release|x64.Build.0 = Release|x64
|
||||
{90BBDC04-CC44-4006-B893-06A4FEA8ED47}.Debug AVX2|x64.ActiveCfg = Debug|x64
|
||||
{90BBDC04-CC44-4006-B893-06A4FEA8ED47}.Debug AVX2|x64.Build.0 = Debug|x64
|
||||
{90BBDC04-CC44-4006-B893-06A4FEA8ED47}.Debug Clang AVX2|x64.ActiveCfg = Debug Clang|x64
|
||||
{90BBDC04-CC44-4006-B893-06A4FEA8ED47}.Debug Clang AVX2|x64.Build.0 = Debug Clang|x64
|
||||
{90BBDC04-CC44-4006-B893-06A4FEA8ED47}.Debug Clang|x64.ActiveCfg = Debug Clang|x64
|
||||
{90BBDC04-CC44-4006-B893-06A4FEA8ED47}.Debug Clang|x64.Build.0 = Debug Clang|x64
|
||||
{90BBDC04-CC44-4006-B893-06A4FEA8ED47}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{90BBDC04-CC44-4006-B893-06A4FEA8ED47}.Debug|x64.Build.0 = Debug|x64
|
||||
{90BBDC04-CC44-4006-B893-06A4FEA8ED47}.Devel AVX2|x64.ActiveCfg = Devel|x64
|
||||
{90BBDC04-CC44-4006-B893-06A4FEA8ED47}.Devel AVX2|x64.Build.0 = Devel|x64
|
||||
{90BBDC04-CC44-4006-B893-06A4FEA8ED47}.Devel Clang AVX2|x64.ActiveCfg = Devel Clang|x64
|
||||
{90BBDC04-CC44-4006-B893-06A4FEA8ED47}.Devel Clang AVX2|x64.Build.0 = Devel Clang|x64
|
||||
{90BBDC04-CC44-4006-B893-06A4FEA8ED47}.Devel Clang|x64.ActiveCfg = Devel Clang|x64
|
||||
{90BBDC04-CC44-4006-B893-06A4FEA8ED47}.Devel Clang|x64.Build.0 = Devel Clang|x64
|
||||
{90BBDC04-CC44-4006-B893-06A4FEA8ED47}.Devel|x64.ActiveCfg = Devel|x64
|
||||
{90BBDC04-CC44-4006-B893-06A4FEA8ED47}.Devel|x64.Build.0 = Devel|x64
|
||||
{90BBDC04-CC44-4006-B893-06A4FEA8ED47}.Release AVX2|x64.ActiveCfg = Release|x64
|
||||
{90BBDC04-CC44-4006-B893-06A4FEA8ED47}.Release AVX2|x64.Build.0 = Release|x64
|
||||
{90BBDC04-CC44-4006-B893-06A4FEA8ED47}.Release Clang AVX2|x64.ActiveCfg = Release Clang|x64
|
||||
{90BBDC04-CC44-4006-B893-06A4FEA8ED47}.Release Clang AVX2|x64.Build.0 = Release Clang|x64
|
||||
{90BBDC04-CC44-4006-B893-06A4FEA8ED47}.Release Clang|x64.ActiveCfg = Release Clang|x64
|
||||
{90BBDC04-CC44-4006-B893-06A4FEA8ED47}.Release Clang|x64.Build.0 = Release Clang|x64
|
||||
{90BBDC04-CC44-4006-B893-06A4FEA8ED47}.Release|x64.ActiveCfg = Release|x64
|
||||
{90BBDC04-CC44-4006-B893-06A4FEA8ED47}.Release|x64.Build.0 = Release|x64
|
||||
{7E183337-A7E9-460C-9D3D-568BC9F9BCC1}.Debug AVX2|x64.ActiveCfg = Debug|x64
|
||||
{7E183337-A7E9-460C-9D3D-568BC9F9BCC1}.Debug AVX2|x64.Build.0 = Debug|x64
|
||||
{7E183337-A7E9-460C-9D3D-568BC9F9BCC1}.Debug Clang AVX2|x64.ActiveCfg = Debug Clang|x64
|
||||
{7E183337-A7E9-460C-9D3D-568BC9F9BCC1}.Debug Clang AVX2|x64.Build.0 = Debug Clang|x64
|
||||
{7E183337-A7E9-460C-9D3D-568BC9F9BCC1}.Debug Clang|x64.ActiveCfg = Debug Clang|x64
|
||||
{7E183337-A7E9-460C-9D3D-568BC9F9BCC1}.Debug Clang|x64.Build.0 = Debug Clang|x64
|
||||
{7E183337-A7E9-460C-9D3D-568BC9F9BCC1}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{7E183337-A7E9-460C-9D3D-568BC9F9BCC1}.Debug|x64.Build.0 = Debug|x64
|
||||
{7E183337-A7E9-460C-9D3D-568BC9F9BCC1}.Devel AVX2|x64.ActiveCfg = Devel|x64
|
||||
{7E183337-A7E9-460C-9D3D-568BC9F9BCC1}.Devel AVX2|x64.Build.0 = Devel|x64
|
||||
{7E183337-A7E9-460C-9D3D-568BC9F9BCC1}.Devel Clang AVX2|x64.ActiveCfg = Devel Clang|x64
|
||||
{7E183337-A7E9-460C-9D3D-568BC9F9BCC1}.Devel Clang AVX2|x64.Build.0 = Devel Clang|x64
|
||||
{7E183337-A7E9-460C-9D3D-568BC9F9BCC1}.Devel Clang|x64.ActiveCfg = Devel Clang|x64
|
||||
{7E183337-A7E9-460C-9D3D-568BC9F9BCC1}.Devel Clang|x64.Build.0 = Devel Clang|x64
|
||||
{7E183337-A7E9-460C-9D3D-568BC9F9BCC1}.Devel|x64.ActiveCfg = Devel|x64
|
||||
{7E183337-A7E9-460C-9D3D-568BC9F9BCC1}.Devel|x64.Build.0 = Devel|x64
|
||||
{7E183337-A7E9-460C-9D3D-568BC9F9BCC1}.Release AVX2|x64.ActiveCfg = Release|x64
|
||||
{7E183337-A7E9-460C-9D3D-568BC9F9BCC1}.Release AVX2|x64.Build.0 = Release|x64
|
||||
{7E183337-A7E9-460C-9D3D-568BC9F9BCC1}.Release Clang AVX2|x64.ActiveCfg = Release Clang|x64
|
||||
{7E183337-A7E9-460C-9D3D-568BC9F9BCC1}.Release Clang AVX2|x64.Build.0 = Release Clang|x64
|
||||
{7E183337-A7E9-460C-9D3D-568BC9F9BCC1}.Release Clang|x64.ActiveCfg = Release Clang|x64
|
||||
{7E183337-A7E9-460C-9D3D-568BC9F9BCC1}.Release Clang|x64.Build.0 = Release Clang|x64
|
||||
{7E183337-A7E9-460C-9D3D-568BC9F9BCC1}.Release|x64.ActiveCfg = Release|x64
|
||||
{7E183337-A7E9-460C-9D3D-568BC9F9BCC1}.Release|x64.Build.0 = Release|x64
|
||||
{6D5B5AD9-1525-459B-939F-A5E1082AF6B3}.Debug AVX2|x64.ActiveCfg = Debug|x64
|
||||
{6D5B5AD9-1525-459B-939F-A5E1082AF6B3}.Debug AVX2|x64.Build.0 = Debug|x64
|
||||
{6D5B5AD9-1525-459B-939F-A5E1082AF6B3}.Debug Clang AVX2|x64.ActiveCfg = Debug Clang|x64
|
||||
{6D5B5AD9-1525-459B-939F-A5E1082AF6B3}.Debug Clang AVX2|x64.Build.0 = Debug Clang|x64
|
||||
{6D5B5AD9-1525-459B-939F-A5E1082AF6B3}.Debug Clang|x64.ActiveCfg = Debug Clang|x64
|
||||
{6D5B5AD9-1525-459B-939F-A5E1082AF6B3}.Debug Clang|x64.Build.0 = Debug Clang|x64
|
||||
{6D5B5AD9-1525-459B-939F-A5E1082AF6B3}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{6D5B5AD9-1525-459B-939F-A5E1082AF6B3}.Debug|x64.Build.0 = Debug|x64
|
||||
{6D5B5AD9-1525-459B-939F-A5E1082AF6B3}.Devel AVX2|x64.ActiveCfg = Devel|x64
|
||||
{6D5B5AD9-1525-459B-939F-A5E1082AF6B3}.Devel AVX2|x64.Build.0 = Devel|x64
|
||||
{6D5B5AD9-1525-459B-939F-A5E1082AF6B3}.Devel Clang AVX2|x64.ActiveCfg = Devel Clang|x64
|
||||
{6D5B5AD9-1525-459B-939F-A5E1082AF6B3}.Devel Clang AVX2|x64.Build.0 = Devel Clang|x64
|
||||
{6D5B5AD9-1525-459B-939F-A5E1082AF6B3}.Devel Clang|x64.ActiveCfg = Devel Clang|x64
|
||||
{6D5B5AD9-1525-459B-939F-A5E1082AF6B3}.Devel Clang|x64.Build.0 = Devel Clang|x64
|
||||
{6D5B5AD9-1525-459B-939F-A5E1082AF6B3}.Devel|x64.ActiveCfg = Devel|x64
|
||||
{6D5B5AD9-1525-459B-939F-A5E1082AF6B3}.Devel|x64.Build.0 = Devel|x64
|
||||
{6D5B5AD9-1525-459B-939F-A5E1082AF6B3}.Release AVX2|x64.ActiveCfg = Release|x64
|
||||
{6D5B5AD9-1525-459B-939F-A5E1082AF6B3}.Release AVX2|x64.Build.0 = Release|x64
|
||||
{6D5B5AD9-1525-459B-939F-A5E1082AF6B3}.Release Clang AVX2|x64.ActiveCfg = Release Clang|x64
|
||||
{6D5B5AD9-1525-459B-939F-A5E1082AF6B3}.Release Clang AVX2|x64.Build.0 = Release Clang|x64
|
||||
{6D5B5AD9-1525-459B-939F-A5E1082AF6B3}.Release Clang|x64.ActiveCfg = Release Clang|x64
|
||||
{6D5B5AD9-1525-459B-939F-A5E1082AF6B3}.Release Clang|x64.Build.0 = Release Clang|x64
|
||||
{6D5B5AD9-1525-459B-939F-A5E1082AF6B3}.Release|x64.ActiveCfg = Release|x64
|
||||
{6D5B5AD9-1525-459B-939F-A5E1082AF6B3}.Release|x64.Build.0 = Release|x64
|
||||
{95DD0A0C-D14D-4CFF-A593-820EF26EFCC8}.Debug AVX2|x64.ActiveCfg = Debug|x64
|
||||
{95DD0A0C-D14D-4CFF-A593-820EF26EFCC8}.Debug AVX2|x64.Build.0 = Debug|x64
|
||||
{95DD0A0C-D14D-4CFF-A593-820EF26EFCC8}.Debug Clang AVX2|x64.ActiveCfg = Debug Clang|x64
|
||||
{95DD0A0C-D14D-4CFF-A593-820EF26EFCC8}.Debug Clang AVX2|x64.Build.0 = Debug Clang|x64
|
||||
{95DD0A0C-D14D-4CFF-A593-820EF26EFCC8}.Debug Clang|x64.ActiveCfg = Debug Clang|x64
|
||||
{95DD0A0C-D14D-4CFF-A593-820EF26EFCC8}.Debug Clang|x64.Build.0 = Debug Clang|x64
|
||||
{95DD0A0C-D14D-4CFF-A593-820EF26EFCC8}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{95DD0A0C-D14D-4CFF-A593-820EF26EFCC8}.Debug|x64.Build.0 = Debug|x64
|
||||
{95DD0A0C-D14D-4CFF-A593-820EF26EFCC8}.Devel AVX2|x64.ActiveCfg = Devel|x64
|
||||
{95DD0A0C-D14D-4CFF-A593-820EF26EFCC8}.Devel AVX2|x64.Build.0 = Devel|x64
|
||||
{95DD0A0C-D14D-4CFF-A593-820EF26EFCC8}.Devel Clang AVX2|x64.ActiveCfg = Devel Clang|x64
|
||||
{95DD0A0C-D14D-4CFF-A593-820EF26EFCC8}.Devel Clang AVX2|x64.Build.0 = Devel Clang|x64
|
||||
{95DD0A0C-D14D-4CFF-A593-820EF26EFCC8}.Devel Clang|x64.ActiveCfg = Devel Clang|x64
|
||||
{95DD0A0C-D14D-4CFF-A593-820EF26EFCC8}.Devel Clang|x64.Build.0 = Devel Clang|x64
|
||||
{95DD0A0C-D14D-4CFF-A593-820EF26EFCC8}.Devel|x64.ActiveCfg = Devel|x64
|
||||
{95DD0A0C-D14D-4CFF-A593-820EF26EFCC8}.Devel|x64.Build.0 = Devel|x64
|
||||
{95DD0A0C-D14D-4CFF-A593-820EF26EFCC8}.Release AVX2|x64.ActiveCfg = Release|x64
|
||||
{95DD0A0C-D14D-4CFF-A593-820EF26EFCC8}.Release AVX2|x64.Build.0 = Release|x64
|
||||
{95DD0A0C-D14D-4CFF-A593-820EF26EFCC8}.Release Clang AVX2|x64.ActiveCfg = Release Clang|x64
|
||||
{95DD0A0C-D14D-4CFF-A593-820EF26EFCC8}.Release Clang AVX2|x64.Build.0 = Release Clang|x64
|
||||
{95DD0A0C-D14D-4CFF-A593-820EF26EFCC8}.Release Clang|x64.ActiveCfg = Release Clang|x64
|
||||
{95DD0A0C-D14D-4CFF-A593-820EF26EFCC8}.Release Clang|x64.Build.0 = Release Clang|x64
|
||||
{95DD0A0C-D14D-4CFF-A593-820EF26EFCC8}.Release|x64.ActiveCfg = Release|x64
|
||||
{95DD0A0C-D14D-4CFF-A593-820EF26EFCC8}.Release|x64.Build.0 = Release|x64
|
||||
{E960DFDF-1BD3-4C29-B251-D1A0919C9B09}.Debug AVX2|x64.ActiveCfg = Debug|x64
|
||||
{E960DFDF-1BD3-4C29-B251-D1A0919C9B09}.Debug AVX2|x64.Build.0 = Debug|x64
|
||||
{E960DFDF-1BD3-4C29-B251-D1A0919C9B09}.Debug Clang AVX2|x64.ActiveCfg = Debug Clang|x64
|
||||
{E960DFDF-1BD3-4C29-B251-D1A0919C9B09}.Debug Clang AVX2|x64.Build.0 = Debug Clang|x64
|
||||
{E960DFDF-1BD3-4C29-B251-D1A0919C9B09}.Debug Clang|x64.ActiveCfg = Debug Clang|x64
|
||||
{E960DFDF-1BD3-4C29-B251-D1A0919C9B09}.Debug Clang|x64.Build.0 = Debug Clang|x64
|
||||
{E960DFDF-1BD3-4C29-B251-D1A0919C9B09}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{E960DFDF-1BD3-4C29-B251-D1A0919C9B09}.Debug|x64.Build.0 = Debug|x64
|
||||
{E960DFDF-1BD3-4C29-B251-D1A0919C9B09}.Devel AVX2|x64.ActiveCfg = Devel|x64
|
||||
{E960DFDF-1BD3-4C29-B251-D1A0919C9B09}.Devel AVX2|x64.Build.0 = Devel|x64
|
||||
{E960DFDF-1BD3-4C29-B251-D1A0919C9B09}.Devel Clang AVX2|x64.ActiveCfg = Devel Clang|x64
|
||||
{E960DFDF-1BD3-4C29-B251-D1A0919C9B09}.Devel Clang AVX2|x64.Build.0 = Devel Clang|x64
|
||||
{E960DFDF-1BD3-4C29-B251-D1A0919C9B09}.Devel Clang|x64.ActiveCfg = Devel Clang|x64
|
||||
{E960DFDF-1BD3-4C29-B251-D1A0919C9B09}.Devel Clang|x64.Build.0 = Devel Clang|x64
|
||||
{E960DFDF-1BD3-4C29-B251-D1A0919C9B09}.Devel|x64.ActiveCfg = Devel|x64
|
||||
{E960DFDF-1BD3-4C29-B251-D1A0919C9B09}.Devel|x64.Build.0 = Devel|x64
|
||||
{E960DFDF-1BD3-4C29-B251-D1A0919C9B09}.Release AVX2|x64.ActiveCfg = Release|x64
|
||||
{E960DFDF-1BD3-4C29-B251-D1A0919C9B09}.Release AVX2|x64.Build.0 = Release|x64
|
||||
{E960DFDF-1BD3-4C29-B251-D1A0919C9B09}.Release Clang AVX2|x64.ActiveCfg = Release Clang|x64
|
||||
{E960DFDF-1BD3-4C29-B251-D1A0919C9B09}.Release Clang AVX2|x64.Build.0 = Release Clang|x64
|
||||
{E960DFDF-1BD3-4C29-B251-D1A0919C9B09}.Release Clang|x64.ActiveCfg = Release Clang|x64
|
||||
{E960DFDF-1BD3-4C29-B251-D1A0919C9B09}.Release Clang|x64.Build.0 = Release Clang|x64
|
||||
{E960DFDF-1BD3-4C29-B251-D1A0919C9B09}.Release|x64.ActiveCfg = Release|x64
|
||||
{E960DFDF-1BD3-4C29-B251-D1A0919C9B09}.Release|x64.Build.0 = Release|x64
|
||||
{BB98BF81-A132-444A-BB81-96D510F433A8}.Debug AVX2|x64.ActiveCfg = Debug AVX2|x64
|
||||
{BB98BF81-A132-444A-BB81-96D510F433A8}.Debug Clang AVX2|x64.ActiveCfg = Debug Clang AVX2|x64
|
||||
{BB98BF81-A132-444A-BB81-96D510F433A8}.Debug Clang|x64.ActiveCfg = Debug Clang|x64
|
||||
{BB98BF81-A132-444A-BB81-96D510F433A8}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{BB98BF81-A132-444A-BB81-96D510F433A8}.Devel AVX2|x64.ActiveCfg = Devel AVX2|x64
|
||||
{BB98BF81-A132-444A-BB81-96D510F433A8}.Devel Clang AVX2|x64.ActiveCfg = Devel Clang AVX2|x64
|
||||
{BB98BF81-A132-444A-BB81-96D510F433A8}.Devel Clang|x64.ActiveCfg = Devel Clang|x64
|
||||
{BB98BF81-A132-444A-BB81-96D510F433A8}.Devel|x64.ActiveCfg = Devel|x64
|
||||
{BB98BF81-A132-444A-BB81-96D510F433A8}.Release AVX2|x64.ActiveCfg = Release AVX2|x64
|
||||
{BB98BF81-A132-444A-BB81-96D510F433A8}.Release Clang AVX2|x64.ActiveCfg = Release Clang AVX2|x64
|
||||
{BB98BF81-A132-444A-BB81-96D510F433A8}.Release Clang|x64.ActiveCfg = Release Clang|x64
|
||||
{BB98BF81-A132-444A-BB81-96D510F433A8}.Release|x64.ActiveCfg = Release|x64
|
||||
{67D0160C-0FE4-44B9-AC2E-82BBCF4104DF}.Debug AVX2|x64.ActiveCfg = Debug|x64
|
||||
{67D0160C-0FE4-44B9-AC2E-82BBCF4104DF}.Debug AVX2|x64.Build.0 = Debug|x64
|
||||
{67D0160C-0FE4-44B9-AC2E-82BBCF4104DF}.Debug Clang AVX2|x64.ActiveCfg = Debug Clang|x64
|
||||
{67D0160C-0FE4-44B9-AC2E-82BBCF4104DF}.Debug Clang AVX2|x64.Build.0 = Debug Clang|x64
|
||||
{67D0160C-0FE4-44B9-AC2E-82BBCF4104DF}.Debug Clang|x64.ActiveCfg = Debug Clang|x64
|
||||
{67D0160C-0FE4-44B9-AC2E-82BBCF4104DF}.Debug Clang|x64.Build.0 = Debug Clang|x64
|
||||
{67D0160C-0FE4-44B9-AC2E-82BBCF4104DF}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{67D0160C-0FE4-44B9-AC2E-82BBCF4104DF}.Debug|x64.Build.0 = Debug|x64
|
||||
{67D0160C-0FE4-44B9-AC2E-82BBCF4104DF}.Devel AVX2|x64.ActiveCfg = Devel|x64
|
||||
{67D0160C-0FE4-44B9-AC2E-82BBCF4104DF}.Devel AVX2|x64.Build.0 = Devel|x64
|
||||
{67D0160C-0FE4-44B9-AC2E-82BBCF4104DF}.Devel Clang AVX2|x64.ActiveCfg = Devel Clang|x64
|
||||
{67D0160C-0FE4-44B9-AC2E-82BBCF4104DF}.Devel Clang AVX2|x64.Build.0 = Devel Clang|x64
|
||||
{67D0160C-0FE4-44B9-AC2E-82BBCF4104DF}.Devel Clang|x64.ActiveCfg = Devel Clang|x64
|
||||
{67D0160C-0FE4-44B9-AC2E-82BBCF4104DF}.Devel Clang|x64.Build.0 = Devel Clang|x64
|
||||
{67D0160C-0FE4-44B9-AC2E-82BBCF4104DF}.Devel|x64.ActiveCfg = Devel|x64
|
||||
{67D0160C-0FE4-44B9-AC2E-82BBCF4104DF}.Devel|x64.Build.0 = Devel|x64
|
||||
{67D0160C-0FE4-44B9-AC2E-82BBCF4104DF}.Release AVX2|x64.ActiveCfg = Release|x64
|
||||
{67D0160C-0FE4-44B9-AC2E-82BBCF4104DF}.Release AVX2|x64.Build.0 = Release|x64
|
||||
{67D0160C-0FE4-44B9-AC2E-82BBCF4104DF}.Release Clang AVX2|x64.ActiveCfg = Release Clang|x64
|
||||
{67D0160C-0FE4-44B9-AC2E-82BBCF4104DF}.Release Clang AVX2|x64.Build.0 = Release Clang|x64
|
||||
{67D0160C-0FE4-44B9-AC2E-82BBCF4104DF}.Release Clang|x64.ActiveCfg = Release Clang|x64
|
||||
{67D0160C-0FE4-44B9-AC2E-82BBCF4104DF}.Release Clang|x64.Build.0 = Release Clang|x64
|
||||
{67D0160C-0FE4-44B9-AC2E-82BBCF4104DF}.Release|x64.ActiveCfg = Release|x64
|
||||
{67D0160C-0FE4-44B9-AC2E-82BBCF4104DF}.Release|x64.Build.0 = Release|x64
|
||||
{1E3D706C-1D95-4E1B-BDF2-CA3D0007DF7F}.Debug AVX2|x64.ActiveCfg = Debug|x64
|
||||
{1E3D706C-1D95-4E1B-BDF2-CA3D0007DF7F}.Debug AVX2|x64.Build.0 = Debug|x64
|
||||
{1E3D706C-1D95-4E1B-BDF2-CA3D0007DF7F}.Debug Clang AVX2|x64.ActiveCfg = Debug Clang|x64
|
||||
{1E3D706C-1D95-4E1B-BDF2-CA3D0007DF7F}.Debug Clang AVX2|x64.Build.0 = Debug Clang|x64
|
||||
{1E3D706C-1D95-4E1B-BDF2-CA3D0007DF7F}.Debug Clang|x64.ActiveCfg = Debug Clang|x64
|
||||
{1E3D706C-1D95-4E1B-BDF2-CA3D0007DF7F}.Debug Clang|x64.Build.0 = Debug Clang|x64
|
||||
{1E3D706C-1D95-4E1B-BDF2-CA3D0007DF7F}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{1E3D706C-1D95-4E1B-BDF2-CA3D0007DF7F}.Debug|x64.Build.0 = Debug|x64
|
||||
{1E3D706C-1D95-4E1B-BDF2-CA3D0007DF7F}.Devel AVX2|x64.ActiveCfg = Devel|x64
|
||||
{1E3D706C-1D95-4E1B-BDF2-CA3D0007DF7F}.Devel AVX2|x64.Build.0 = Devel|x64
|
||||
{1E3D706C-1D95-4E1B-BDF2-CA3D0007DF7F}.Devel Clang AVX2|x64.ActiveCfg = Devel Clang|x64
|
||||
{1E3D706C-1D95-4E1B-BDF2-CA3D0007DF7F}.Devel Clang AVX2|x64.Build.0 = Devel Clang|x64
|
||||
{1E3D706C-1D95-4E1B-BDF2-CA3D0007DF7F}.Devel Clang|x64.ActiveCfg = Devel Clang|x64
|
||||
{1E3D706C-1D95-4E1B-BDF2-CA3D0007DF7F}.Devel Clang|x64.Build.0 = Devel Clang|x64
|
||||
{1E3D706C-1D95-4E1B-BDF2-CA3D0007DF7F}.Devel|x64.ActiveCfg = Devel|x64
|
||||
{1E3D706C-1D95-4E1B-BDF2-CA3D0007DF7F}.Devel|x64.Build.0 = Devel|x64
|
||||
{1E3D706C-1D95-4E1B-BDF2-CA3D0007DF7F}.Release AVX2|x64.ActiveCfg = Release|x64
|
||||
{1E3D706C-1D95-4E1B-BDF2-CA3D0007DF7F}.Release AVX2|x64.Build.0 = Release|x64
|
||||
{1E3D706C-1D95-4E1B-BDF2-CA3D0007DF7F}.Release Clang AVX2|x64.ActiveCfg = Release Clang|x64
|
||||
{1E3D706C-1D95-4E1B-BDF2-CA3D0007DF7F}.Release Clang AVX2|x64.Build.0 = Release Clang|x64
|
||||
{1E3D706C-1D95-4E1B-BDF2-CA3D0007DF7F}.Release Clang|x64.ActiveCfg = Release Clang|x64
|
||||
{1E3D706C-1D95-4E1B-BDF2-CA3D0007DF7F}.Release Clang|x64.Build.0 = Release Clang|x64
|
||||
{1E3D706C-1D95-4E1B-BDF2-CA3D0007DF7F}.Release|x64.ActiveCfg = Release|x64
|
||||
{1E3D706C-1D95-4E1B-BDF2-CA3D0007DF7F}.Release|x64.Build.0 = Release|x64
|
||||
EndGlobalSection
|
||||
|
||||
@@ -22,7 +22,7 @@ Installers and binaries for both stable and development builds are available fro
|
||||
|
||||
| Operating System | CPU | GPU | RAM |
|
||||
| ------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---- |
|
||||
| - Windows 10 21H2 (1809 or later) (64-bit) <br/> - Ubuntu 20.04/Debian or newer, Arch Linux, or other distro (64-bit) <br/> - macOS 10.13 | - Supports SSE4.1 <br/> - [PassMark Single Thread Performance](https://www.cpubenchmark.net/singleThread.html) rating near or greater than 1600 <br/> - Two physical cores, with hyperthreading | - Direct3D10 support <br/> - OpenGL 3.x support <br/> - Vulkan 1.1 support <br/> - Metal support <br/> - [PassMark G3D Mark](https://www.videocardbenchmark.net/high_end_gpus.html) rating around 3000 (GeForce GTX 750) <br/> - 2 GB Video Memory | 4 GB |
|
||||
| - Windows 10 21H2 (1809 or later) (64-bit) <br/> - Ubuntu 20.04/Debian or newer, Arch Linux, or other distro (64-bit) <br/> - macOS 10.14 | - Supports SSE4.1 <br/> - [PassMark Single Thread Performance](https://www.cpubenchmark.net/singleThread.html) rating near or greater than 1800 <br/> - Two physical cores, with hyperthreading | - Direct3D10 support <br/> - OpenGL 3.x support <br/> - Vulkan 1.1 support <br/> - Metal support <br/> - [PassMark G3D Mark](https://www.videocardbenchmark.net/high_end_gpus.html) rating around 3000 (Geforce GTX 750 Radeon RX 560 Intel Arc A380) <br/> - 2 GB Video Memory | 4 GB |
|
||||
|
||||
_Note: Recommended Single Thread Performance is based on moderately complex games. Games that pushed the PS2 hardware to its limits will struggle on CPUs at this level. Some release titles and 2D games which underutilized the PS2 hardware may run on CPUs rated as low as 1200. A quick reference for CPU **intensive games**: [Wiki](https://wiki.pcsx2.net/Category:CPU_intensive_games), [Forum](https://forums.pcsx2.net/Thread-LIST-The-Most-CPU-Intensive-Games) and CPU **light** games: [Forum](https://forums.pcsx2.net/Thread-LIST-Games-that-don-t-need-a-strong-CPU-to-emulate)_
|
||||
|
||||
@@ -30,16 +30,16 @@ _Note: Recommended Single Thread Performance is based on moderately complex game
|
||||
|
||||
| Operating System | CPU | GPU | RAM |
|
||||
| ----------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---- |
|
||||
| - Windows 10 21H2 (1809 or later) (64-bit) <br/> - Ubuntu 22.04/Debian or newer, Arch Linux, or other distro (64-bit) <br/> - macOS 10.13 | - Supports AVX2 <br/> - [PassMark Single Thread Performance](https://www.cpubenchmark.net/singleThread.html) rating near or greater than 2100 <br/> - Four physical cores, with or without hyperthreading | - Direct3D12 support <br/> - OpenGL 4.6 support <br/> - Vulkan 1.3 support <br/> - Metal support <br/> - [PassMark G3D Mark](https://www.videocardbenchmark.net/high_end_gpus.html) rating around 6000 (GeForce GTX 1050 Ti) <br/> - 4 GB Video Memory | 8 GB |
|
||||
| - Windows 10 21H2 (1809 or later) (64-bit) <br/> - Ubuntu 22.04/Debian or newer, Arch Linux, or other distro (64-bit) <br/> - macOS 10.14 | - Supports AVX2 <br/> - [PassMark Single Thread Performance](https://www.cpubenchmark.net/singleThread.html) rating near or greater than 2600 <br/> - Four physical cores, with or without hyperthreading | - Direct3D12 support <br/> - OpenGL 4.6 support <br/> - Vulkan 1.3 support <br/> - Metal support <br/> - [PassMark G3D Mark](https://www.videocardbenchmark.net/high_end_gpus.html) rating around 6000 (GeForce GTX 1650 Radeon RX 570) <br/> - 4 GB Video Memory | 8 GB |
|
||||
|
||||
_Note: Recommended GPU is based on 3x Internal, ~1080p resolution requirements. Higher resolutions will require stronger cards; 6x Internal, ~4K resolution will require a [PassMark G3D Mark](https://www.videocardbenchmark.net/high_end_gpus.html) rating around 12000 (GeForce GTX 1070 Ti). Just like CPU requirements, this is also highly game dependent. A quick reference for GPU **intensive games**: [Wiki](https://wiki.pcsx2.net/Category:GPU_intensive_games)_
|
||||
_Note: Recommended GPU is based on 3x Internal, ~1080p resolution requirements. Higher resolutions will require stronger cards; 6x Internal, ~4K resolution will require a [PassMark G3D Mark](https://www.videocardbenchmark.net/high_end_gpus.html) rating around 12000 (GeForce RTX 2060 Radeon RX 6600 Intel Arc A750). Just like CPU requirements, this is also highly game dependent. A quick reference for GPU **intensive games**: [Wiki](https://wiki.pcsx2.net/Category:GPU_intensive_games)_
|
||||
|
||||
### Technical Notes
|
||||
|
||||
- You need the [Visual C++ 2019 x64 Redistributables](https://support.microsoft.com/en-us/help/2977003/) to run PCSX2.
|
||||
- Windows XP and Direct3D9 support was dropped after stable release 1.4.0.
|
||||
- Windows 7, Windows 8.0, and Windows 8.1 support was dropped after stable release 1.6.0.
|
||||
- 32-bit support was dropped after stable release 1.6.0.
|
||||
- 32-bit and wxwidgets support was dropped after stable release 1.6.0, with the wxwidgets code being removed completely on 25th December 2022.
|
||||
- Make sure to update your operating system and drivers to ensure you have the best experience possible. Having a newer GPU is also recommended so you have the latest supported drivers.
|
||||
- Because of copyright issues, and the complexity of trying to work around it, you need a BIOS dump extracted from a legitimately-owned PS2 console to use the emulator. For more information about the BIOS and how to get it from your console, visit [this page](pcsx2/Docs/PCSX2_FAQ.md#question-13-where-do-i-get-a-ps2-bios).
|
||||
- PCSX2 uses two CPU cores for emulation by default. A third core can be used via the MTVU speed hack, which is compatible with most games. This can be a significant speedup on CPUs with 3+ cores, but it may be a slowdown on GS-limited games (or on CPUs with fewer than 2 cores). Software renderers will then additionally use however many rendering threads it is set to and will need higher core counts to run efficiently.
|
||||
|
||||
+1246
-362
File diff suppressed because it is too large
Load Diff
@@ -69,7 +69,7 @@
|
||||
03000000c82d00000121000000000000,8BitDo SN30 Pro for Android,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,
|
||||
03000000c82d00000260000000000000,8BitDo SN30 Pro Plus,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Windows,
|
||||
03000000c82d00000261000000000000,8BitDo SN30 Pro Plus,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Windows,
|
||||
03000000c82d00001130000000000000,8BitDo Ultimate Wired,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,
|
||||
03000000c82d00001130000000000000,8BitDo Ultimate Wired,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,misc1:b26,paddle1:b24,paddle2:b25,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,
|
||||
03000000c82d00001230000000000000,8BitDo Ultimate Wireless,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,
|
||||
03000000c82d00001330000000000000,8BitDo Ultimate Wireless,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b26,paddle1:b23,paddle2:b19,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Windows,
|
||||
03000000a00500003232000000000000,8BitDo Zero,a:b0,b:b1,back:b10,dpdown:+a2,dpleft:-a0,dpright:+a0,dpup:-a2,leftshoulder:b6,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Windows,
|
||||
@@ -383,7 +383,7 @@
|
||||
0300000079000000d218000000000000,Mayflash Magic NS,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,
|
||||
03000000d620000010a7000000000000,Mayflash Magic NS,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,
|
||||
03000000790000007918000000000000,Mayflash N64 Controller Adapter,a:b1,b:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b9,leftx:a0,lefty:a1,righttrigger:b7,rightx:a3,righty:a2,start:b8,platform:Windows,
|
||||
030000008f0e00001030000000000000,Mayflash Sega Saturn Adapter,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b5,rightshoulder:b2,righttrigger:b7,start:b9,x:b3,y:b4,platform:Windows,
|
||||
030000008f0e00001030000000000000,Mayflash Saturn Adapter,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,lefttrigger:b7,rightshoulder:b6,righttrigger:b2,start:b9,x:b3,y:b4,platform:Windows,
|
||||
0300000025090000e803000000000000,Mayflash Wii Classic Adapter,a:b1,b:b0,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:a4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:a5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Windows,
|
||||
03000000790000000318000000000000,Mayflash Wii DolphinBar,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b11,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b1,platform:Windows,
|
||||
03000000790000000018000000000000,Mayflash Wii U Pro Adapter,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,
|
||||
@@ -485,7 +485,7 @@
|
||||
030000004f1f00000800000000000000,PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows,
|
||||
03000000632500007505000000000000,PS3 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,
|
||||
03000000888800000803000000000000,PS3 Controller,a:b2,b:b1,back:b8,dpdown:h0.8,dpleft:h0.4,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b9,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:b7,rightx:a3,righty:a4,start:b11,x:b0,y:b3,platform:Windows,
|
||||
03000000888800000804000000000000,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,leftshoulder:b10,leftstick:b1,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Windows,
|
||||
03000000888800000804000000000000,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:b9,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Windows,
|
||||
030000008f0e00000300000000000000,PS3 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b3,y:b0,platform:Windows,
|
||||
030000008f0e00001431000000000000,PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,
|
||||
03000000ba2200002010000000000000,PS3 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a5,righty:a2,start:b9,x:b3,y:b2,platform:Windows,
|
||||
@@ -574,7 +574,7 @@
|
||||
030000006f0e00001e01000000000000,Rock Candy PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,
|
||||
030000006f0e00002801000000000000,Rock Candy PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,
|
||||
030000006f0e00002f01000000000000,Rock Candy PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,
|
||||
030000006f0e00008701000000000000,Rock Candy Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b13,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows,
|
||||
030000006f0e00008701000000000000,Rock Candy Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b13,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows,
|
||||
03000000050b0000e318000000000000,ROG Chakram,a:b1,b:b0,leftx:a0,lefty:a1,x:b2,y:b3,platform:Windows,
|
||||
03000000050b0000e518000000000000,ROG Chakram,a:b1,b:b0,leftx:a0,lefty:a1,x:b2,y:b3,platform:Windows,
|
||||
03000000050b00005819000000000000,ROG Chakram Core,a:b1,b:b0,leftx:a0,lefty:a1,x:b2,y:b3,platform:Windows,
|
||||
@@ -678,7 +678,7 @@
|
||||
030000004f04000087b6000000000000,TWCS Throttle,dpdown:b8,dpleft:b9,dpright:b7,dpup:b6,leftstick:b5,lefttrigger:-a5,leftx:a0,lefty:a1,righttrigger:+a5,platform:Windows,
|
||||
03000000411200000450000000000000,Twin Shock,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b9,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b10,righttrigger:b5,rightx:a3,righty:a4,start:b11,x:b3,y:b0,platform:Windows,
|
||||
03000000d90400000200000000000000,TwinShock PS2 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Windows,
|
||||
03000000151900005678000000000000,Uniplay U6,a:b0,b:b1,back:b11,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b14,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a3,righty:a4,start:b10,x:b3,y:b4,platform:Windows,
|
||||
03000000151900005678000000000000,Uniplay U6,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows,
|
||||
03000000101c0000171c000000000000,uRage Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows,
|
||||
030000000b0400003065000000000000,USB Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b3,y:b0,platform:Windows,
|
||||
03000000242f00006e00000000000000,USB Controller,a:b1,b:b4,back:b10,leftshoulder:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b9,righttrigger:b7,rightx:a2,righty:a5,start:b11,x:b0,y:b3,platform:Windows,
|
||||
@@ -798,7 +798,7 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,
|
||||
03000000c82d00000161000000010000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Mac OS X,
|
||||
03000000c82d00000260000001000000,8BitDo SN30 Pro Plus,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X,
|
||||
03000000c82d00000261000000010000,8BitDo SN30 Pro Plus,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X,
|
||||
03000000c82d00001130000000020000,8BitDo Ultimate Wired,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X,
|
||||
03000000c82d00001130000000020000,8BitDo Ultimate Wired,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b26,paddle1:b24,paddle2:b25,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X,
|
||||
03000000c82d00001330000001000000,8BitDo Ultimate Wireless,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b26,paddle1:b23,paddle2:b19,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X,
|
||||
03000000c82d00001330000000020000,8BitDo Ultimate Wireless Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b26,paddle1:b23,paddle2:b19,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X,
|
||||
03000000a00500003232000008010000,8BitDo Zero,a:b0,b:b1,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Mac OS X,
|
||||
@@ -882,6 +882,7 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,
|
||||
03000000242f00007300000000020000,Mayflash Magic NS,a:b1,b:b4,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b0,y:b3,platform:Mac OS X,
|
||||
0300000079000000d218000026010000,Mayflash Magic NS,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Mac OS X,
|
||||
03000000d620000010a7000003010000,Mayflash Magic NS,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,
|
||||
030000008f0e00001030000011010000,Mayflash Saturn Adapter,a:b0,b:b2,dpdown:b28,dpleft:b30,dpright:b26,dpup:b24,leftshoulder:b10,lefttrigger:b14,rightshoulder:b12,righttrigger:b4,start:b18,x:b6,y:b8,platform:Mac OS X,
|
||||
0300000025090000e803000000000000,Mayflash Wii Classic Adapter,a:b1,b:b0,back:b8,dpdown:b13,dpleft:b12,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Mac OS X,
|
||||
03000000790000000318000000010000,Mayflash Wii DolphinBar,a:b8,b:b12,back:b32,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b44,leftshoulder:b16,lefttrigger:b24,leftx:a0,lefty:a4,rightshoulder:b20,righttrigger:b28,rightx:a8,righty:a12,start:b36,x:b0,y:b4,platform:Mac OS X,
|
||||
03000000790000000018000000000000,Mayflash Wii U Pro Adapter,a:b4,b:b8,back:b32,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b16,leftstick:b40,lefttrigger:b24,leftx:a0,lefty:a4,rightshoulder:b20,rightstick:b44,righttrigger:b28,rightx:a8,righty:a12,start:b36,x:b0,y:b12,platform:Mac OS X,
|
||||
@@ -920,6 +921,7 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,
|
||||
030000004c050000f20d000000010000,PS5 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b14,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X,
|
||||
050000004c050000e60c000000010000,PS5 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X,
|
||||
050000004c050000f20d000000010000,PS5 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X,
|
||||
030000005e040000e002000001000000,PXN P30 Pro Mobile,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Mac OS X,
|
||||
03000000222c00000225000000010000,Qanba Dragon Arcade Joystick (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,
|
||||
03000000222c00000020000000010000,Qanba Drone Arcade Stick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,
|
||||
030000008916000000fd000000000000,Razer Onza TE,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,
|
||||
@@ -941,7 +943,9 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,
|
||||
03000000341200000400000000000000,RetroUSB N64 RetroPort,+rightx:b8,+righty:b10,-rightx:b9,-righty:b11,a:b7,b:b6,dpdown:b2,dpleft:b1,dpright:b0,dpup:b3,leftshoulder:b13,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b12,start:b4,platform:Mac OS X,
|
||||
030000006b140000010d000000010000,Revolution Pro Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,
|
||||
030000006b140000130d000000010000,Revolution Pro Controller 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X,
|
||||
030000004c0500006802000002100000,Rii RK707,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b2,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b3,righttrigger:b9,rightx:a2,righty:a3,start:b1,x:b15,y:b12,platform:Mac OS X,
|
||||
03000000c6240000fefa000000000000,Rock Candy PS3,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X,
|
||||
030000006f0e00008701000005010000,Rock Candy Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X,
|
||||
03000000730700000401000000010000,Sanwa PlayOnline Mobile,a:b0,b:b1,back:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,start:b3,platform:Mac OS X,
|
||||
03000000a30c00002500000006020000,Sega Genesis Mini 3B Controller,a:b2,b:b1,dpdown:+a4,dpleft:-a3,dpright:+a3,dpup:-a4,righttrigger:b5,start:b9,platform:Mac OS X,
|
||||
03000000811700007e05000000000000,Sega Saturn,a:b2,b:b4,dpdown:b16,dpleft:b15,dpright:b14,dpup:b17,leftshoulder:b8,lefttrigger:a5,leftx:a0,lefty:a2,rightshoulder:b9,righttrigger:a4,start:b13,x:b0,y:b6,platform:Mac OS X,
|
||||
@@ -974,6 +978,7 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,
|
||||
030000005f140000c501000000020000,Trust Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Mac OS X,
|
||||
03000000100800000100000000000000,Twin USB Joystick,a:b4,b:b2,back:b16,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b12,leftstick:b20,lefttrigger:b8,leftx:a0,lefty:a2,rightshoulder:b14,rightstick:b22,righttrigger:b10,rightx:a6,righty:a4,start:b18,x:b6,y:b0,platform:Mac OS X,
|
||||
03000000632500002605000000010000,Uberwith Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X,
|
||||
03000000151900005678000010010000,Uniplay U6,a:b3,b:b6,back:b25,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b17,leftstick:b31,lefttrigger:b21,leftx:a1,lefty:a3,rightshoulder:b19,rightstick:b33,righttrigger:b23,rightx:a4,righty:a5,start:b27,x:b11,y:b13,platform:Mac OS X,
|
||||
030000006f0e00000302000025040000,Victrix PS4 Pro Fightstick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Mac OS X,
|
||||
030000006f0e00000702000003060000,Victrix PS4 Pro Fightstick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Mac OS X,
|
||||
050000005769696d6f74652028303000,Wii Remote,a:b4,b:b5,back:b7,dpdown:b3,dpleft:b0,dpright:b1,dpup:b2,guide:b8,leftshoulder:b11,lefttrigger:b12,leftx:a0,lefty:a1,start:b6,x:b10,y:b9,platform:Mac OS X,
|
||||
@@ -1030,8 +1035,11 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,
|
||||
03000000c82d00000751000000010000,8BitDo P30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:a8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,
|
||||
05000000c82d00000851000000010000,8BitDo P30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:a8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,
|
||||
03000000c82d00000660000011010000,8BitDo Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,
|
||||
03000000c82d00001030000011010000,8BitDo Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,
|
||||
05000000c82d00000660000000010000,8BitDo Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,
|
||||
03000000c82d00000631000014010000,8BitDo Pro 2 Wired Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
|
||||
03000000c82d00001030000011010000,8BitDo Pro 2 Wired Controller,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,
|
||||
03000000c82d00000020000000000000,8BitDo Pro 2 Wired Controller for Xbox,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
|
||||
06000000c82d00000020000006010000,8BitDo Pro 2 Wired Controller for Xbox,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
|
||||
03000000c82d00000131000011010000,8BitDo Receiver,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,
|
||||
03000000c82d00000231000011010000,8BitDo Receiver,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,
|
||||
03000000c82d00000331000011010000,8BitDo Receiver,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,
|
||||
@@ -1054,7 +1062,7 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,
|
||||
03000000c82d00000260000011010000,8BitDo SN30 Pro Plus,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,
|
||||
05000000c82d00000261000000010000,8BitDo SN30 Pro Plus,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,
|
||||
05000000202800000900000000010000,8BitDo SNES30,a:b1,b:b0,back:b10,dpdown:b122,dpleft:b119,dpright:b120,dpup:b117,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Linux,
|
||||
03000000c82d00001130000011010000,8BitDo Ultimate Wired,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,
|
||||
03000000c82d00001130000011010000,8BitDo Ultimate Wired,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b26,paddle1:b24,paddle2:b25,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,
|
||||
03000000c82d00000760000011010000,8BitDo Ultimate Wireless,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux,
|
||||
03000000c82d00001230000011010000,8BitDo Ultimate Wireless,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,
|
||||
03000000c82d00001330000011010000,8BitDo Ultimate Wireless,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b26,paddle1:b23,paddle2:b19,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,
|
||||
@@ -1117,6 +1125,7 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,
|
||||
03000000430b00000300000000010000,EMS Production PS2 Adapter,a:b2,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a5,righty:a2,start:b9,x:b3,y:b0,platform:Linux,
|
||||
03000000b40400001124000011010000,Flydigi Vader 2,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b12,lefttrigger:a5,leftx:a0,lefty:a1,paddle1:b2,paddle2:b5,paddle4:b17,rightshoulder:b7,rightstick:b13,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,
|
||||
05000000151900004000000001000000,Flydigi Vader 2,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,
|
||||
030000007e0500003703000000000000,GameCube Adapter,a:b0,b:b1,dpdown:b9,dpleft:b10,dpright:b11,dpup:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b3,y:b2,platform:Linux,
|
||||
19000000030000000300000002030000,GameForce Controller,a:b1,b:b0,back:b8,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,guide:b16,leftshoulder:b4,leftstick:b14,lefttrigger:b6,leftx:a1,lefty:a0,rightshoulder:b5,rightstick:b15,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b2,y:b3,platform:Linux,
|
||||
03000000ac0500005b05000010010000,GameSir G3w,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,
|
||||
03000000bc2000000055000011010000,GameSir G3w,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,
|
||||
@@ -1233,8 +1242,10 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,
|
||||
0300000079000000d218000011010000,Mayflash Magic NS,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
|
||||
03000000d620000010a7000011010000,Mayflash Magic NS,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
|
||||
03000000242f0000f700000001010000,Mayflash Magic S Pro,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
|
||||
030000008f0e00001030000010010000,Mayflash Saturn Adapter,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,lefttrigger:b7,rightshoulder:b6,righttrigger:b2,start:b9,x:b3,y:b4,platform:Linux,
|
||||
0300000025090000e803000001010000,Mayflash Wii Classic Adapter,a:b1,b:b0,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:a4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:a5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Linux,
|
||||
03000000790000000318000011010000,Mayflash Wii DolphinBar,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b11,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b1,platform:Linux,
|
||||
03000000790000000018000011010000,Mayflash Wii U Pro Adapter,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
|
||||
03000000b50700001203000010010000,Mega World Logic 3 Controller,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Linux,
|
||||
03000000780000000600000010010000,Microntek Joystick,a:b2,b:b1,back:b8,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,start:b9,x:b3,y:b0,platform:Linux,
|
||||
030000005e0400002800000000010000,Microsoft Dual Strike,a:b3,b:b2,back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b8,rightshoulder:b7,rightx:a0,righty:a1~,start:b5,x:b1,y:b0,platform:Linux,
|
||||
@@ -1279,12 +1290,14 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,
|
||||
030000009b2800008000000020020000,Nintendo Classic Controller,a:b1,b:b4,back:b2,dpdown:b13,dpleft:b14,dpright:b15,dpup:b12,leftshoulder:b6,rightshoulder:b7,start:b3,x:b0,y:b5,platform:Linux,
|
||||
030000007e0500003703000000016800,Nintendo GameCube Controller,a:b0,b:b2,dpdown:b6,dpleft:b4,dpright:b5,dpup:b7,lefttrigger:a4,leftx:a0,lefty:a1~,rightshoulder:b9,righttrigger:a5,rightx:a2,righty:a3~,start:b8,x:b1,y:b3,platform:Linux,
|
||||
03000000790000004618000010010000,Nintendo GameCube Controller Adapter,a:b1,b:b0,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,rightx:a5~,righty:a2~,start:b9,x:b2,y:b3,platform:Linux,
|
||||
060000004e696e74656e646f20537700,Nintendo Switch Combined Joy-Cons,a:b0,b:b1,back:b9,dpdown:b15,dpleft:b16,dpright:b17,dpup:b14,guide:b11,leftshoulder:b5,leftstick:b12,lefttrigger:b7,leftx:a0,lefty:a1,misc1:b4,rightshoulder:b6,rightstick:b13,righttrigger:b8,rightx:a2,righty:a3,start:b10,x:b3,y:b2,platform:Linux,
|
||||
060000007e0500000620000000000000,Nintendo Switch Combined Joy-Cons,a:b0,b:b1,back:b9,dpdown:b15,dpleft:b16,dpright:b17,dpup:b14,guide:b11,leftshoulder:b5,leftstick:b12,lefttrigger:b7,leftx:a0,lefty:a1,misc1:b4,rightshoulder:b6,rightstick:b13,righttrigger:b8,rightx:a2,righty:a3,start:b10,x:b3,y:b2,platform:Linux,
|
||||
060000007e0500000820000000000000,Nintendo Switch Combined Joy-Cons,a:b0,b:b1,back:b9,dpdown:b15,dpleft:b16,dpright:b17,dpup:b14,guide:b11,leftshoulder:b5,leftstick:b12,lefttrigger:b7,leftx:a0,lefty:a1,misc1:b4,rightshoulder:b6,rightstick:b13,righttrigger:b8,rightx:a2,righty:a3,start:b10,x:b3,y:b2,platform:Linux,
|
||||
050000004c69632050726f20436f6e00,Nintendo Switch Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,
|
||||
050000007e0500000620000001800000,Nintendo Switch Left Joy-Con,a:b16,b:b15,back:b4,leftshoulder:b6,leftstick:b12,leftx:a1,lefty:a0~,rightshoulder:b8,start:b9,x:b14,y:b17,platform:Linux,
|
||||
03000000d620000013a7000011010000,Nintendo Switch PowerA Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
|
||||
03000000d620000011a7000011010000,Nintendo Switch PowerA Core Plus Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
|
||||
030000007e0500000920000000026803,Nintendo Switch Pro Controller,a:b1,b:b0,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Linux,
|
||||
030000007e0500000920000011810000,Nintendo Switch Pro Controller,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b11,leftshoulder:b5,leftstick:b12,lefttrigger:b7,leftx:a0,lefty:a1,misc1:b4,rightshoulder:b6,rightstick:b13,righttrigger:b8,rightx:a2,righty:a3,start:b10,x:b3,y:b2,platform:Linux,
|
||||
050000007e0500000920000001000000,Nintendo Switch Pro Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b4,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,
|
||||
050000007e0500000920000001800000,Nintendo Switch Pro Controller,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b11,leftshoulder:b5,leftstick:b12,lefttrigger:b7,leftx:a0,lefty:a1,misc1:b4,rightshoulder:b6,rightstick:b13,righttrigger:b8,rightx:a2,righty:a3,start:b10,x:b3,y:b2,platform:Linux,
|
||||
@@ -1315,7 +1328,6 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,
|
||||
030000006f0e0000c802000012010000,PDP Kingdom Hearts Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
|
||||
030000006f0e00008501000011010000,PDP Nintendo Switch Fightpad Pro,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,
|
||||
030000006f0e00002801000011010000,PDP PS3 Rock Candy Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
|
||||
030000006f0e00008701000011010000,PDP Rock Nintendo Switch Candy Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b13,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,
|
||||
030000006f0e00000901000011010000,PDP Versus Fighting,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux,
|
||||
030000006f0e0000a802000023020000,PDP Xbox One Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux,
|
||||
030000006f0e0000a702000023020000,PDP Xbox One Raven Black,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
|
||||
@@ -1333,6 +1345,7 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,
|
||||
03000000d62000000228000001010000,PowerA Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
|
||||
03000000c62400001a54000001010000,PowerA Xbox One Mini Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
|
||||
03000000d62000000240000001010000,PowerA Xbox One Spectra Infinity,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
|
||||
03000000d62000000f20000001010000,PowerA Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b7,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
|
||||
030000006d040000d2ca000011010000,Precision Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
|
||||
03000000ff1100004133000010010000,PS2 Controller,a:b2,b:b1,back:b8,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,start:b9,x:b3,y:b0,platform:Linux,
|
||||
03000000341a00003608000011010000,PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
|
||||
@@ -1403,6 +1416,7 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,
|
||||
030000006b140000130d000011010000,Revolution Pro Controller 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux,
|
||||
030000006f0e00001f01000000010000,Rock Candy,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
|
||||
030000006f0e00001e01000011010000,Rock Candy PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux,
|
||||
030000006f0e00008701000011010000,Rock Candy Switch Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b13,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,
|
||||
03000000c6240000fefa000000010000,Rock Candy Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
|
||||
030000006f0e00004601000001010000,Rock Candy Xbox One Controller,a:b0,b:b1,back:b6,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux,
|
||||
03000000a306000023f6000011010000,Saitek Cyborg V1 PlayStation Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Linux,
|
||||
@@ -1485,6 +1499,7 @@ xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,
|
||||
03000000f00600000300000003000000,TRBot Virtual Joypad,a:b11,b:b12,back:b15,dpdown:b6,dpleft:b3,dpright:b4,dpup:b5,leftshoulder:b17,leftstick:b21,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b22,righttrigger:a2,rightx:a3,righty:a4,start:b16,x:b13,y:b14,platform:Linux,
|
||||
030000005f140000c501000010010000,Trust Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux,
|
||||
03000000100800000100000010010000,Twin PS2 Adapter,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Linux,
|
||||
03000000151900005678000010010000,Uniplay U6,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux,
|
||||
03000000100800000300000010010000,USB Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Linux,
|
||||
03000000790000000600000007010000,USB gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a4,start:b9,x:b3,y:b0,platform:Linux,
|
||||
03000000790000001100000000010000,USB Gamepad,a:b2,b:b1,back:b8,dpdown:a0,dpleft:a1,dpright:a2,dpup:a4,start:b9,platform:Linux,
|
||||
|
||||
@@ -23,7 +23,8 @@ cbuffer cb0 : register(b0)
|
||||
float4 BGColor;
|
||||
int EMODA;
|
||||
int EMODC;
|
||||
int cb0_pad[2];
|
||||
int DOFFSET;
|
||||
int cb0_pad;
|
||||
};
|
||||
|
||||
static const float3x3 rgb2yuv =
|
||||
@@ -291,6 +292,41 @@ PS_OUTPUT ps_convert_rgba_8i(PS_INPUT input)
|
||||
return output;
|
||||
}
|
||||
|
||||
PS_OUTPUT ps_convert_clut_4(PS_INPUT input)
|
||||
{
|
||||
// Borrowing the YUV constant buffer.
|
||||
float2 scale = BGColor.xy;
|
||||
uint2 offset = uint2(uint(EMODA), uint(EMODC)) + uint(DOFFSET);
|
||||
|
||||
// CLUT4 is easy, just two rows of 8x8.
|
||||
uint index = uint(input.p.x);
|
||||
uint2 pos = uint2(index % 8u, index / 8u);
|
||||
|
||||
int2 final = int2(floor(float2(offset + pos) * scale));
|
||||
PS_OUTPUT output;
|
||||
output.c = Texture.Load(int3(final, 0), 0);
|
||||
return output;
|
||||
}
|
||||
|
||||
PS_OUTPUT ps_convert_clut_8(PS_INPUT input)
|
||||
{
|
||||
float2 scale = BGColor.xy;
|
||||
uint2 offset = uint2(uint(EMODA), uint(EMODC));
|
||||
uint index = min(uint(input.p.x) + uint(DOFFSET), 255u);
|
||||
|
||||
// CLUT is arranged into 8 groups of 16x2, with the top-right and bottom-left quadrants swapped.
|
||||
// This can probably be done better..
|
||||
uint subgroup = (index / 8u) % 4u;
|
||||
uint2 pos;
|
||||
pos.x = (index % 8u) + ((subgroup >= 2u) ? 8u : 0u);
|
||||
pos.y = ((index / 32u) * 2u) + (subgroup % 2u);
|
||||
|
||||
int2 final = int2(floor(float2(offset + pos) * scale));
|
||||
PS_OUTPUT output;
|
||||
output.c = Texture.Load(int3(final, 0), 0);
|
||||
return output;
|
||||
}
|
||||
|
||||
PS_OUTPUT ps_yuv(PS_INPUT input)
|
||||
{
|
||||
PS_OUTPUT output;
|
||||
|
||||
@@ -130,7 +130,6 @@ Texture2D<float4> Palette : register(t1);
|
||||
Texture2D<float4> RtTexture : register(t2);
|
||||
Texture2D<float> PrimMinTexture : register(t3);
|
||||
SamplerState TextureSampler : register(s0);
|
||||
SamplerState PaletteSampler : register(s1);
|
||||
|
||||
#ifdef DX12
|
||||
cbuffer cb0 : register(b0)
|
||||
@@ -207,9 +206,14 @@ float4 sample_c(float2 uv, float uv_w)
|
||||
#endif
|
||||
}
|
||||
|
||||
float4 sample_p(float u)
|
||||
float4 sample_p(uint u)
|
||||
{
|
||||
return Palette.Sample(PaletteSampler, u);
|
||||
return Palette.Load(int3(int(u), 0, 0));
|
||||
}
|
||||
|
||||
float4 sample_p_norm(float u)
|
||||
{
|
||||
return sample_p(uint(u * 255.5f));
|
||||
}
|
||||
|
||||
float4 clamp_wrap_uv(float4 uv)
|
||||
@@ -278,7 +282,7 @@ float4x4 sample_4c(float4 uv, float uv_w)
|
||||
return c;
|
||||
}
|
||||
|
||||
float4 sample_4_index(float4 uv, float uv_w)
|
||||
uint4 sample_4_index(float4 uv, float uv_w)
|
||||
{
|
||||
float4 c;
|
||||
|
||||
@@ -288,25 +292,26 @@ float4 sample_4_index(float4 uv, float uv_w)
|
||||
c.w = sample_c(uv.zw, uv_w).a;
|
||||
|
||||
// Denormalize value
|
||||
uint4 i = uint4(c * 255.0f + 0.5f);
|
||||
uint4 i = uint4(c * 255.5f);
|
||||
|
||||
if (PS_PAL_FMT == 1)
|
||||
{
|
||||
// 4HL
|
||||
c = float4(i & 0xFu) / 255.0f;
|
||||
return i & 0xFu;
|
||||
}
|
||||
else if (PS_PAL_FMT == 2)
|
||||
{
|
||||
// 4HH
|
||||
c = float4(i >> 4u) / 255.0f;
|
||||
return i >> 4u;
|
||||
}
|
||||
else
|
||||
{
|
||||
// 8
|
||||
return i;
|
||||
}
|
||||
|
||||
// Most of texture will hit this code so keep normalized float value
|
||||
// 8 bits
|
||||
return c * 255./256 + 0.5/256;
|
||||
}
|
||||
|
||||
float4x4 sample_4p(float4 u)
|
||||
float4x4 sample_4p(uint4 u)
|
||||
{
|
||||
float4x4 c;
|
||||
|
||||
@@ -468,7 +473,7 @@ float4 fetch_red(int2 xy)
|
||||
rt = fetch_raw_color(xy);
|
||||
}
|
||||
|
||||
return sample_p(rt.r) * 255.0f;
|
||||
return sample_p_norm(rt.r) * 255.0f;
|
||||
}
|
||||
|
||||
float4 fetch_green(int2 xy)
|
||||
@@ -485,7 +490,7 @@ float4 fetch_green(int2 xy)
|
||||
rt = fetch_raw_color(xy);
|
||||
}
|
||||
|
||||
return sample_p(rt.g) * 255.0f;
|
||||
return sample_p_norm(rt.g) * 255.0f;
|
||||
}
|
||||
|
||||
float4 fetch_blue(int2 xy)
|
||||
@@ -502,19 +507,19 @@ float4 fetch_blue(int2 xy)
|
||||
rt = fetch_raw_color(xy);
|
||||
}
|
||||
|
||||
return sample_p(rt.b) * 255.0f;
|
||||
return sample_p_norm(rt.b) * 255.0f;
|
||||
}
|
||||
|
||||
float4 fetch_alpha(int2 xy)
|
||||
{
|
||||
float4 rt = fetch_raw_color(xy);
|
||||
return sample_p(rt.a) * 255.0f;
|
||||
return sample_p_norm(rt.a) * 255.0f;
|
||||
}
|
||||
|
||||
float4 fetch_rgb(int2 xy)
|
||||
{
|
||||
float4 rt = fetch_raw_color(xy);
|
||||
float4 c = float4(sample_p(rt.r).r, sample_p(rt.g).g, sample_p(rt.b).b, 1.0);
|
||||
float4 c = float4(sample_p_norm(rt.r).r, sample_p_norm(rt.g).g, sample_p_norm(rt.b).b, 1.0);
|
||||
return c * 255.0f;
|
||||
}
|
||||
|
||||
|
||||
@@ -314,6 +314,41 @@ void ps_hdr_resolve()
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef ps_convert_clut_4
|
||||
uniform uvec3 offset;
|
||||
uniform vec2 scale;
|
||||
|
||||
void ps_convert_clut_4()
|
||||
{
|
||||
// CLUT4 is easy, just two rows of 8x8.
|
||||
uint index = uint(gl_FragCoord.x) + offset.z;
|
||||
uvec2 pos = uvec2(index % 8u, index / 8u);
|
||||
|
||||
ivec2 final = ivec2(floor(vec2(offset.xy + pos) * scale));
|
||||
SV_Target0 = texelFetch(TextureSampler, final, 0);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef ps_convert_clut_8
|
||||
uniform uvec3 offset;
|
||||
uniform vec2 scale;
|
||||
|
||||
void ps_convert_clut_8()
|
||||
{
|
||||
uint index = min(uint(gl_FragCoord.x) + offset.z, 255u);
|
||||
|
||||
// CLUT is arranged into 8 groups of 16x2, with the top-right and bottom-left quadrants swapped.
|
||||
// This can probably be done better..
|
||||
uint subgroup = (index / 8u) % 4u;
|
||||
uvec2 pos;
|
||||
pos.x = (index % 8u) + ((subgroup >= 2u) ? 8u : 0u);
|
||||
pos.y = ((index / 32u) * 2u) + (subgroup % 2u);
|
||||
|
||||
ivec2 final = ivec2(floor(vec2(offset.xy + pos) * scale));
|
||||
SV_Target0 = texelFetch(TextureSampler, final, 0);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef ps_yuv
|
||||
uniform ivec2 EMOD;
|
||||
|
||||
|
||||
@@ -133,9 +133,14 @@ vec4 sample_c(vec2 uv)
|
||||
#endif
|
||||
}
|
||||
|
||||
vec4 sample_p(float idx)
|
||||
vec4 sample_p(uint idx)
|
||||
{
|
||||
return texture(PaletteSampler, vec2(idx, 0.0f));
|
||||
return texelFetch(PaletteSampler, ivec2(int(idx), 0), 0);
|
||||
}
|
||||
|
||||
vec4 sample_p_norm(float u)
|
||||
{
|
||||
return sample_p(uint(u * 255.5f));
|
||||
}
|
||||
|
||||
vec4 clamp_wrap_uv(vec4 uv)
|
||||
@@ -202,7 +207,7 @@ mat4 sample_4c(vec4 uv)
|
||||
return c;
|
||||
}
|
||||
|
||||
vec4 sample_4_index(vec4 uv)
|
||||
uvec4 sample_4_index(vec4 uv)
|
||||
{
|
||||
vec4 c;
|
||||
|
||||
@@ -218,26 +223,22 @@ vec4 sample_4_index(vec4 uv)
|
||||
c.z = sample_c(uv.xw).a;
|
||||
c.w = sample_c(uv.zw).a;
|
||||
|
||||
uvec4 i = uvec4(c * 255.0f + 0.5f); // Denormalize value
|
||||
uvec4 i = uvec4(c * 255.5f); // Denormalize value
|
||||
|
||||
#if PS_PAL_FMT == 1
|
||||
// 4HL
|
||||
return vec4(i & 0xFu) / 255.0f;
|
||||
|
||||
return i & 0xFu
|
||||
#elif PS_PAL_FMT == 2
|
||||
// 4HH
|
||||
return vec4(i >> 4u) / 255.0f;
|
||||
|
||||
return i >> 4u;
|
||||
#else
|
||||
// Most of texture will hit this code so keep normalized float value
|
||||
|
||||
// 8 bits
|
||||
return c;
|
||||
// 8
|
||||
return i;
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
mat4 sample_4p(vec4 u)
|
||||
mat4 sample_4p(uvec4 u)
|
||||
{
|
||||
mat4 c;
|
||||
|
||||
@@ -398,7 +399,7 @@ vec4 fetch_red()
|
||||
#else
|
||||
vec4 rt = fetch_raw_color();
|
||||
#endif
|
||||
return sample_p(rt.r) * 255.0f;
|
||||
return sample_p_norm(rt.r) * 255.0f;
|
||||
}
|
||||
|
||||
vec4 fetch_green()
|
||||
@@ -409,7 +410,7 @@ vec4 fetch_green()
|
||||
#else
|
||||
vec4 rt = fetch_raw_color();
|
||||
#endif
|
||||
return sample_p(rt.g) * 255.0f;
|
||||
return sample_p_norm(rt.g) * 255.0f;
|
||||
}
|
||||
|
||||
vec4 fetch_blue()
|
||||
@@ -420,19 +421,19 @@ vec4 fetch_blue()
|
||||
#else
|
||||
vec4 rt = fetch_raw_color();
|
||||
#endif
|
||||
return sample_p(rt.b) * 255.0f;
|
||||
return sample_p_norm(rt.b) * 255.0f;
|
||||
}
|
||||
|
||||
vec4 fetch_alpha()
|
||||
{
|
||||
vec4 rt = fetch_raw_color();
|
||||
return sample_p(rt.a) * 255.0f;
|
||||
return sample_p_norm(rt.a) * 255.0f;
|
||||
}
|
||||
|
||||
vec4 fetch_rgb()
|
||||
{
|
||||
vec4 rt = fetch_raw_color();
|
||||
vec4 c = vec4(sample_p(rt.r).r, sample_p(rt.g).g, sample_p(rt.b).b, 1.0f);
|
||||
vec4 c = vec4(sample_p_norm(rt.r).r, sample_p_norm(rt.g).g, sample_p_norm(rt.b).b, 1.0f);
|
||||
return c * 255.0f;
|
||||
}
|
||||
|
||||
|
||||
@@ -274,6 +274,49 @@ void ps_convert_rgba_8i()
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef ps_convert_clut_4
|
||||
layout(push_constant) uniform cb10
|
||||
{
|
||||
vec2 scale;
|
||||
uvec2 offset;
|
||||
uint doffset;
|
||||
};
|
||||
|
||||
void ps_convert_clut_4()
|
||||
{
|
||||
// CLUT4 is easy, just two rows of 8x8.
|
||||
uint index = uint(gl_FragCoord.x) + doffset;
|
||||
uvec2 pos = uvec2(index % 8u, index / 8u);
|
||||
|
||||
ivec2 final = ivec2(floor(vec2(offset + pos) * scale));
|
||||
o_col0 = texelFetch(samp0, final, 0);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef ps_convert_clut_8
|
||||
layout(push_constant) uniform cb10
|
||||
{
|
||||
vec2 scale;
|
||||
uvec2 offset;
|
||||
uint doffset;
|
||||
};
|
||||
|
||||
void ps_convert_clut_8()
|
||||
{
|
||||
uint index = min(uint(gl_FragCoord.x) + doffset, 255u);
|
||||
|
||||
// CLUT is arranged into 8 groups of 16x2, with the top-right and bottom-left quadrants swapped.
|
||||
// This can probably be done better..
|
||||
uint subgroup = (index / 8u) % 4u;
|
||||
uvec2 pos;
|
||||
pos.x = (index % 8u) + ((subgroup >= 2u) ? 8u : 0u);
|
||||
pos.y = ((index / 32u) * 2u) + (subgroup % 2u);
|
||||
|
||||
ivec2 final = ivec2(floor(vec2(offset + pos) * scale));
|
||||
o_col0 = texelFetch(samp0, final, 0);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef ps_yuv
|
||||
layout(push_constant) uniform cb10
|
||||
{
|
||||
|
||||
@@ -390,7 +390,7 @@ layout(location = 0) out vec4 o_col0;
|
||||
#endif
|
||||
|
||||
layout(set = 1, binding = 0) uniform sampler2D Texture;
|
||||
layout(set = 1, binding = 1) uniform sampler2D Palette;
|
||||
layout(set = 1, binding = 1) uniform texture2D Palette;
|
||||
|
||||
#if PS_FEEDBACK_LOOP_IS_NEEDED
|
||||
#ifndef DISABLE_TEXTURE_BARRIER
|
||||
@@ -443,9 +443,14 @@ vec4 sample_c(vec2 uv)
|
||||
#endif
|
||||
}
|
||||
|
||||
vec4 sample_p(float u)
|
||||
vec4 sample_p(uint idx)
|
||||
{
|
||||
return texture(Palette, vec2(u, 0.0f));
|
||||
return texelFetch(Palette, ivec2(int(idx), 0), 0);
|
||||
}
|
||||
|
||||
vec4 sample_p_norm(float u)
|
||||
{
|
||||
return sample_p(uint(u * 255.5f));
|
||||
}
|
||||
|
||||
vec4 clamp_wrap_uv(vec4 uv)
|
||||
@@ -519,7 +524,7 @@ mat4 sample_4c(vec4 uv)
|
||||
return c;
|
||||
}
|
||||
|
||||
vec4 sample_4_index(vec4 uv)
|
||||
uvec4 sample_4_index(vec4 uv)
|
||||
{
|
||||
vec4 c;
|
||||
|
||||
@@ -533,18 +538,17 @@ vec4 sample_4_index(vec4 uv)
|
||||
|
||||
#if PS_PAL_FMT == 1
|
||||
// 4HL
|
||||
c = vec4(i & 0xFu) / 255.0f;
|
||||
c = i & 0xFu;
|
||||
#elif PS_PAL_FMT == 2
|
||||
// 4HH
|
||||
c = vec4(i >> 4u) / 255.0f;
|
||||
c = i >> 4u;
|
||||
#else
|
||||
// 8
|
||||
return i;
|
||||
#endif
|
||||
|
||||
// Most of texture will hit this code so keep normalized float value
|
||||
// 8 bits
|
||||
return c * 255./256 + 0.5/256;
|
||||
}
|
||||
|
||||
mat4 sample_4p(vec4 u)
|
||||
mat4 sample_4p(uvec4 u)
|
||||
{
|
||||
mat4 c;
|
||||
|
||||
@@ -709,7 +713,7 @@ vec4 fetch_red(ivec2 xy)
|
||||
rt = fetch_raw_color(xy);
|
||||
#endif
|
||||
|
||||
return sample_p(rt.r) * 255.0f;
|
||||
return sample_p_norm(rt.r) * 255.0f;
|
||||
}
|
||||
|
||||
vec4 fetch_green(ivec2 xy)
|
||||
@@ -723,7 +727,7 @@ vec4 fetch_green(ivec2 xy)
|
||||
rt = fetch_raw_color(xy);
|
||||
#endif
|
||||
|
||||
return sample_p(rt.g) * 255.0f;
|
||||
return sample_p_norm(rt.g) * 255.0f;
|
||||
}
|
||||
|
||||
vec4 fetch_blue(ivec2 xy)
|
||||
@@ -737,19 +741,19 @@ vec4 fetch_blue(ivec2 xy)
|
||||
rt = fetch_raw_color(xy);
|
||||
#endif
|
||||
|
||||
return sample_p(rt.b) * 255.0f;
|
||||
return sample_p_norm(rt.b) * 255.0f;
|
||||
}
|
||||
|
||||
vec4 fetch_alpha(ivec2 xy)
|
||||
{
|
||||
vec4 rt = fetch_raw_color(xy);
|
||||
return sample_p(rt.a) * 255.0f;
|
||||
return sample_p_norm(rt.a) * 255.0f;
|
||||
}
|
||||
|
||||
vec4 fetch_rgb(ivec2 xy)
|
||||
{
|
||||
vec4 rt = fetch_raw_color(xy);
|
||||
vec4 c = vec4(sample_p(rt.r).r, sample_p(rt.g).g, sample_p(rt.b).b, 1.0);
|
||||
vec4 c = vec4(sample_p_norm(rt.r).r, sample_p_norm(rt.g).g, sample_p_norm(rt.b).b, 1.0);
|
||||
return c * 255.0f;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,235 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# PCSX2 - PS2 Emulator for PCs
|
||||
# Copyright (C) 2002-2022 PCSX2 Dev Team
|
||||
#
|
||||
# PCSX2 is free software: you can redistribute it and/or modify it under the terms
|
||||
# of the GNU Lesser General Public License as published by the Free Software Found-
|
||||
# ation, either version 3 of the License, or (at your option) any later version.
|
||||
#
|
||||
# PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||
# without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
# PURPOSE. See the GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with PCSX2.
|
||||
# If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#set -e # This terminates the script in case of any error
|
||||
set -u
|
||||
|
||||
# Function declarations
|
||||
find_freetype()
|
||||
{
|
||||
if [ "$(uname -m)" = "x86_64" ] && [ -e "/usr/include/x86_64-linux-gnu/freetype2/ft2build.h" ]; then
|
||||
export GTKMM_BASEPATH=/usr/include/x86_64-linux-gnu/freetype2
|
||||
fi
|
||||
}
|
||||
|
||||
set_make()
|
||||
{
|
||||
ncpu=$(getconf NPROCESSORS_ONLN 2>/dev/null || getconf _NPROCESSORS_ONLN)
|
||||
if command -v ninja >/dev/null ; then
|
||||
flags="$flags -GNinja"
|
||||
make=ninja
|
||||
else
|
||||
make="make -j$ncpu"
|
||||
fi
|
||||
}
|
||||
|
||||
set_compiler()
|
||||
{
|
||||
if [ "$useClang" -eq 1 ]; then
|
||||
CC=clang CXX=clang++ cmake $flags "$root" 2>&1 | tee -a "$log"
|
||||
else
|
||||
if [ "$useIcc" -eq 1 ]; then
|
||||
CC="icc" CXX="icpc" cmake $flags "$root" 2>&1 | tee -a "$log"
|
||||
else
|
||||
# Default compiler AKA GCC
|
||||
cmake $flags "$root" 2>&1 | tee -a "$log"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
run_cppcheck()
|
||||
{
|
||||
summary=cpp_check_summary.log
|
||||
rm -f $summary
|
||||
touch $summary
|
||||
|
||||
define=""
|
||||
for undef in _WINDOWS _M_AMD64 _MSC_VER WIN32 __INTEL_COMPILER __x86_64__ \
|
||||
__SSE4_1__ __SSSE3__ __SSE__ __AVX2__ __USE_ISOC11 ASAN_WORKAROUND ENABLE_OGL_DEBUG \
|
||||
XBYAK_USE_MMAP_ALLOCATOR MAP_ANONYMOUS MAP_ANON XBYAK_DISABLE_AVX512
|
||||
do
|
||||
define="$define -U$undef"
|
||||
done
|
||||
|
||||
check="--enable=warning,style,missingInclude"
|
||||
|
||||
for d in pcsx2 common
|
||||
do
|
||||
flat_d=$(echo $d | sed -e 's@/@_@')
|
||||
log=cpp_check__${flat_d}.log
|
||||
rm -f "$log"
|
||||
|
||||
cppcheck $check -j "$ncpu" --platform=unix32 "$define" "$root/$d" 2>&1 | tee "$log"
|
||||
# Create a small summary (warning it might miss some issues)
|
||||
fgrep -e "(warning)" -e "(error)" -e "(style)" -e "(performance)" -e "(portability)" "$log" >> $summary
|
||||
done
|
||||
|
||||
exit 0
|
||||
}
|
||||
|
||||
run_clangtidy()
|
||||
{
|
||||
compile_json=compile_commands.json
|
||||
cpp_list=cpp_file.txt
|
||||
summary=clang_tidy_summary.txt
|
||||
grep '"file"' $compile_json | sed -e 's/"//g' -e 's/^\s*file\s*:\s*//' | sort -u > $cpp_list
|
||||
|
||||
# EXAMPLE
|
||||
#
|
||||
# Modernize loop syntax, fix if old style found.
|
||||
# $ clang-tidy -p build_dev/compile_commands.json pcsx2/GS/Renderers/HW/GSTextureCache.cpp -checks='modernize-loop-convert' -fix
|
||||
# Check all, tons of output:
|
||||
# $ clang-tidy -p $compile_json $cpp -checks='*' -header-filter='.*'
|
||||
# List of modernize checks:
|
||||
# modernize-loop-convert
|
||||
# modernize-make-unique
|
||||
# modernize-pass-by-value
|
||||
# modernize-redundant-void-arg
|
||||
# modernize-replace-auto-ptr
|
||||
# modernize-shrink-to-fit
|
||||
# modernize-use-auto
|
||||
# modernize-use-default
|
||||
# modernize-use-nullptr
|
||||
# modernize-use-override
|
||||
|
||||
# Don't check headers, don't check google/llvm coding conventions
|
||||
if command -v parallel >/dev/null ; then
|
||||
# Run clang-tidy in parallel with as many jobs as there are CPUs.
|
||||
parallel -v --keep-order "clang-tidy -p $compile_json -checks='*,-llvm-*,-google-*' {}"
|
||||
else
|
||||
# xargs(1) can also run jobs in parallel with -P, but will mix the
|
||||
# output from the distinct processes together willy-nilly.
|
||||
xargs clang-tidy -p $compile_json -checks='*,-llvm-*,-google-*'
|
||||
fi < $cpp_list > $summary
|
||||
|
||||
exit 0
|
||||
}
|
||||
|
||||
|
||||
# Main script
|
||||
flags="-DCMAKE_BUILD_PO=FALSE"
|
||||
|
||||
cleanBuild=0
|
||||
useClang=0
|
||||
useIcc=0
|
||||
|
||||
cppcheck=0
|
||||
clangTidy=0
|
||||
|
||||
root=$PWD/$(dirname "$0")
|
||||
log="$root/install_log.txt"
|
||||
build="$root/build"
|
||||
|
||||
set_make
|
||||
|
||||
for ARG in "$@"; do
|
||||
case "$ARG" in
|
||||
--clean ) cleanBuild=1 ;;
|
||||
--clang-tidy ) flags="$flags -DCMAKE_EXPORT_COMPILE_COMMANDS=ON"; clangTidy=1 ; useClang=1;;
|
||||
--ftime-trace ) flags="$flags -DTIMETRACE=TRUE"; useClang=1;;
|
||||
--clang ) useClang=1 ;;
|
||||
--intel ) useIcc=1 ;;
|
||||
--cppcheck ) cppcheck=1 ;;
|
||||
--dev|--devel ) flags="$flags -DCMAKE_BUILD_TYPE=Devel" ; build="$root/build_dev";;
|
||||
--dbg|--debug ) flags="$flags -DCMAKE_BUILD_TYPE=Debug" ; build="$root/build_dbg";;
|
||||
--rel|--release ) flags="$flags -DCMAKE_BUILD_TYPE=Release" ; build="$root/build_rel";;
|
||||
--prof ) flags="$flags -DCMAKE_BUILD_TYPE=RelWithDebInfo"; build="$root/build_prof";;
|
||||
--strip ) flags="$flags -DCMAKE_BUILD_STRIP=TRUE" ;;
|
||||
--asan ) flags="$flags -DUSE_ASAN=TRUE" ;;
|
||||
--gtk2 ) flags="$flags -DGTK2_API=TRUE" ;;
|
||||
--qt6 ) flags="$flags -DQT_BUILD=TRUE" ;;
|
||||
--use-system ) flags="$flags -DUSE_SYSTEM_LIBS=ON" ;;
|
||||
--use-bundled ) flags="$flags -DUSE_SYSTEM_LIBS=OFF" ;;
|
||||
--lto ) flags="$flags -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=TRUE" ;;
|
||||
--pgo-optimize ) flags="$flags -DUSE_PGO_OPTIMIZE=TRUE" ;;
|
||||
--pgo-generate ) flags="$flags -DUSE_PGO_GENERATE=TRUE" ;;
|
||||
--no-simd ) flags="$flags -DDISABLE_ADVANCE_SIMD=TRUE" ;;
|
||||
--no-trans ) flags="$flags -DNO_TRANSLATION=TRUE" ;;
|
||||
--vtune ) flags="$flags -DUSE_VTUNE=TRUE" ;;
|
||||
-D* ) flags="$flags $ARG" ;;
|
||||
|
||||
*)
|
||||
echo $ARG
|
||||
# Unknown option
|
||||
echo "** User options **"
|
||||
echo "--dev / --devel : Build PCSX2 as a Development build."
|
||||
echo "--dbg / --debug : Build PCSX2 as a Debug build."
|
||||
echo "--prof : Build PCSX2 as a Profiler build (release + debug symbol)."
|
||||
echo "--rel / --release : Build PCSX2 as a Release build."
|
||||
echo
|
||||
echo "--clean : Do a clean build. (Remove anything in the build directory)"
|
||||
echo "--no-simd : Only allow sse2."
|
||||
echo
|
||||
echo "** Expert Developer option **"
|
||||
echo "--gtk2 : use GTK 2 instead of GTK 3."
|
||||
echo "--qt6 : Experimental qt 6 ui."
|
||||
echo "--no-trans : Don't regenerate mo files when building."
|
||||
echo "--strip : Strip binaries to save a small amount of space."
|
||||
echo "--clang : Build with Clang/llvm."
|
||||
echo "--use-system : Only use system libs."
|
||||
echo "--use-bundled : Only use bundled libs."
|
||||
echo "--intel : Build with ICC (Intel compiler)."
|
||||
echo "--lto : Use Link Time Optimization."
|
||||
echo "--pgo-generate : Executable will generate profiling information when run."
|
||||
echo "--pgo-optimize : Use previously generated profiling information."
|
||||
echo "-D<argument> : Add <argument> to the flags passed."
|
||||
echo
|
||||
echo "** Quality & Assurance (Please install the external tool) **"
|
||||
echo "--asan : Enable Address sanitizer."
|
||||
echo "--clang-tidy : Do a clang-tidy analysis. Results can be found in build directory."
|
||||
echo "--cppcheck : Do a cppcheck analysis. Results can be found in build directory."
|
||||
echo "--vtune : Plug GS with VTUNE."
|
||||
echo "--ftime-trace : Analyse build time. Clang only."
|
||||
|
||||
exit 1
|
||||
esac
|
||||
done
|
||||
|
||||
if [ "$cleanBuild" -eq 1 ]; then
|
||||
echo "Doing a clean build."
|
||||
# allow to keep build as a symlink (for example to a ramdisk)
|
||||
rm -fr "$build"/*
|
||||
fi
|
||||
|
||||
# Workaround for Debian. Cmake failed to find freetype include path
|
||||
find_freetype
|
||||
|
||||
echo "Building pcsx2 with $flags" | tee "$log"
|
||||
|
||||
# Resolve the symlink otherwise cmake is lost
|
||||
# Besides, it allows 'mkdir' to create the real destination directory
|
||||
if [ -L "$build" ]; then
|
||||
build=$(readlink "$build")
|
||||
fi
|
||||
|
||||
mkdir -p "$build"
|
||||
# Cmake will generate file inside $CWD. It would be nicer if an option to cmake can be provided.
|
||||
cd "$build"
|
||||
|
||||
set_compiler
|
||||
|
||||
if [ "$cppcheck" -eq 1 ] && command -v cppcheck >/dev/null ; then
|
||||
run_cppcheck
|
||||
fi
|
||||
|
||||
if [ "$clangTidy" -eq 1 ] && command -v clang-tidy >/dev/null ; then
|
||||
run_clangtidy
|
||||
fi
|
||||
|
||||
$make 2>&1 | tee -a "$log"
|
||||
$make install 2>&1 | tee -a "$log"
|
||||
|
||||
exit 0
|
||||
+10
-64
@@ -1,14 +1,3 @@
|
||||
### Select the build type
|
||||
# Use Release/Devel/Debug : -DCMAKE_BUILD_TYPE=Release|Devel|Debug
|
||||
# Enable/disable the stripping : -DCMAKE_BUILD_STRIP=TRUE|FALSE
|
||||
# generation .po based on src : -DCMAKE_BUILD_PO=TRUE|FALSE
|
||||
|
||||
### GCC optimization options
|
||||
# control C flags : -DUSER_CMAKE_C_FLAGS="cflags"
|
||||
# control C++ flags : -DUSER_CMAKE_CXX_FLAGS="cxxflags"
|
||||
# control link flags : -DUSER_CMAKE_LD_FLAGS="ldflags"
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
# Extra preprocessor definitions that will be added to all pcsx2 builds
|
||||
set(PCSX2_DEFS "")
|
||||
|
||||
@@ -24,19 +13,6 @@ optional_system_library(zstd)
|
||||
optional_system_library(libzip)
|
||||
optional_system_library(SDL2)
|
||||
option(LTO_PCSX2_CORE "Enable LTO/IPO/LTCG on the subset of pcsx2 that benefits most from it but not anything else")
|
||||
|
||||
if(WIN32)
|
||||
set(DEFAULT_NATIVE_TOOLS ON)
|
||||
else()
|
||||
set(DEFAULT_NATIVE_TOOLS OFF)
|
||||
endif()
|
||||
option(USE_NATIVE_TOOLS "Uses c++ tools instead of ones written in scripting languages. OFF requires perl, ON may fail if cross compiling" ${DEFAULT_NATIVE_TOOLS})
|
||||
|
||||
if(DISABLE_BUILD_DATE OR openSUSE)
|
||||
message(STATUS "Disabling the inclusion of the binary compile date.")
|
||||
list(APPEND PCSX2_DEFS DISABLE_BUILD_DATE)
|
||||
endif()
|
||||
|
||||
option(USE_VTUNE "Plug VTUNE to profile GS JIT.")
|
||||
option(USE_ACHIEVEMENTS "Build with RetroAchievements support" ON)
|
||||
option(USE_DISCORD_PRESENCE "Enable support for Discord Rich Presence" ON)
|
||||
@@ -44,21 +20,20 @@ option(USE_DISCORD_PRESENCE "Enable support for Discord Rich Presence" ON)
|
||||
#-------------------------------------------------------------------------------
|
||||
# Graphical option
|
||||
#-------------------------------------------------------------------------------
|
||||
option(BUILD_REPLAY_LOADERS "Build GS replayer to ease testing (developer option)")
|
||||
option(USE_OPENGL "Enable OpenGL GS renderer" ON)
|
||||
option(USE_VULKAN "Enable Vulkan GS renderer" ON)
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# Path and lib option
|
||||
#-------------------------------------------------------------------------------
|
||||
option(DISABLE_SETCAP "Do not set files capabilities")
|
||||
option(XDG_STD "Use XDG standard path instead of the standard PCSX2 path")
|
||||
option(CUBEB_API "Build Cubeb support on SPU2" ON)
|
||||
option(QT_BUILD "Build Qt frontend instead of wx" ON)
|
||||
option(QT_BUILD "Build Qt frontend" ON)
|
||||
|
||||
if(UNIX AND NOT APPLE)
|
||||
option(ENABLE_SETCAP "Enable networking capability for DEV9" OFF)
|
||||
option(USE_LEGACY_USER_DIRECTORY "Use legacy home/PCSX2 user directory instead of XDG standard" OFF)
|
||||
option(X11_API "Enable X11 support" ON)
|
||||
option(WAYLAND_API "Enable Wayland support" OFF)
|
||||
option(WAYLAND_API "Enable Wayland support" ON)
|
||||
endif()
|
||||
|
||||
if(APPLE)
|
||||
@@ -110,16 +85,6 @@ if(CMAKE_CONFIGURATION_TYPES)
|
||||
list(INSERT CMAKE_CONFIGURATION_TYPES 0 Devel)
|
||||
endif()
|
||||
mark_as_advanced(CMAKE_C_FLAGS_DEVEL CMAKE_CXX_FLAGS_DEVEL CMAKE_LINKER_FLAGS_DEVEL CMAKE_SHARED_LINKER_FLAGS_DEVEL CMAKE_EXE_LINKER_FLAGS_DEVEL)
|
||||
# AVX2 doesn't play well with gdb
|
||||
if(CMAKE_BUILD_TYPE MATCHES "Debug")
|
||||
SET(DISABLE_ADVANCE_SIMD ON)
|
||||
endif()
|
||||
|
||||
# Initially strip was disabled on release build but it is not stackstrace friendly!
|
||||
# It only cost several MB so disbable it by default
|
||||
option(CMAKE_BUILD_STRIP "Srip binaries to save a couple of MB (developer option)")
|
||||
|
||||
option(CMAKE_BUILD_PO "Build po files (modifies git-tracked files)" OFF)
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# Select the architecture
|
||||
@@ -236,27 +201,22 @@ endif()
|
||||
# Note: future GCC (aka GCC 5.1.1) has less false positive so warning could maybe put back
|
||||
# -Wno-unused-function: warn for function not used in release build
|
||||
# -Wno-unused-value: lots of warning for this kind of statements "0 && ...". There are used to disable some parts of code in release/dev build.
|
||||
# -Wno-overloaded-virtual: Gives a fair number of warnings under clang over in the wxwidget gui section of the code.
|
||||
# -Wno-deprecated-declarations: The USB plugins dialogs are written in straight gtk 2, which gives a million deprecated warnings. Suppress them until we can deal with them.
|
||||
# -Wno-format*: Yeah, these need to be taken care of, but...
|
||||
# -Wno-stringop-truncation: Who comes up with these compiler warnings, anyways?
|
||||
# -Wno-stringop-overflow: Probably the same people as this one...
|
||||
# -Wno-maybe-uninitialized: Lots of gcc warnings like "‘test.GSVector8i::<anonymous>.GSVector8i::<unnamed union>::m’ may be used uninitialized" if this is removed.
|
||||
|
||||
if (MSVC)
|
||||
set(DEFAULT_WARNINGS)
|
||||
else()
|
||||
set(DEFAULT_WARNINGS -Wall -Wextra -Wno-attributes -Wno-unused-function -Wno-unused-parameter -Wno-missing-field-initializers -Wno-deprecated-declarations -Wno-format -Wno-format-security -Wno-overloaded-virtual)
|
||||
set(DEFAULT_WARNINGS -Wall -Wextra -Wno-attributes -Wno-unused-function -Wno-unused-parameter -Wno-missing-field-initializers -Wno-format -Wno-format-security)
|
||||
if (NOT USE_ICC)
|
||||
list(APPEND DEFAULT_WARNINGS -Wno-unused-value)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (USE_CLANG)
|
||||
list(APPEND DEFAULT_WARNINGS -Wno-overloaded-virtual)
|
||||
endif()
|
||||
|
||||
if (USE_GCC)
|
||||
list(APPEND DEFAULT_WARNINGS -Wno-stringop-truncation -Wno-stringop-overflow)
|
||||
list(APPEND DEFAULT_WARNINGS -Wno-stringop-truncation -Wno-stringop-overflow -Wno-maybe-uninitialized )
|
||||
endif()
|
||||
|
||||
|
||||
@@ -267,11 +227,6 @@ elseif(NOT MSVC)
|
||||
set(AGGRESSIVE_WARNING -Wstrict-aliasing -Wstrict-overflow=1)
|
||||
endif()
|
||||
|
||||
if (USE_CLANG)
|
||||
# -Wno-deprecated-register: glib issue...
|
||||
list(APPEND DEFAULT_WARNINGS -Wno-deprecated-register -Wno-c++14-extensions)
|
||||
endif()
|
||||
|
||||
if (USE_PGO_GENERATE OR USE_PGO_OPTIMIZE)
|
||||
add_compile_options("-fprofile-dir=${CMAKE_SOURCE_DIR}/profile")
|
||||
endif()
|
||||
@@ -300,18 +255,9 @@ endif()
|
||||
|
||||
set(PCSX2_WARNINGS ${DEFAULT_WARNINGS} ${AGGRESSIVE_WARNING})
|
||||
|
||||
if(CMAKE_BUILD_STRIP)
|
||||
add_link_options(-s)
|
||||
endif()
|
||||
|
||||
if(QT_BUILD)
|
||||
# We want the core PCSX2 library.
|
||||
set(PCSX2_CORE TRUE)
|
||||
endif()
|
||||
|
||||
# Enable special stuff for CI builds
|
||||
if("$ENV{CI}" STREQUAL "true")
|
||||
list(APPEND PCSX2_DEFS PCSX2_CI)
|
||||
if(DISABLE_BUILD_DATE)
|
||||
message(STATUS "Disabling the inclusion of the binary compile date.")
|
||||
list(APPEND PCSX2_DEFS DISABLE_BUILD_DATE)
|
||||
endif()
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
@@ -35,8 +35,8 @@ else()
|
||||
|
||||
# Use bundled ffmpeg v4.x.x headers if we can't locate it in the system.
|
||||
# We'll try to load it dynamically at runtime.
|
||||
find_package(FFMPEG)
|
||||
if(NOT FFMPEG_VERSION)
|
||||
find_package(FFMPEG COMPONENTS avcodec avformat avutil swresample swscale)
|
||||
if(NOT FFMPEG_FOUND)
|
||||
message(WARNING "FFmpeg not found, using bundled headers.")
|
||||
set(FFMPEG_INCLUDE_DIRS "${CMAKE_SOURCE_DIR}/3rdparty/ffmpeg/include")
|
||||
endif()
|
||||
@@ -171,15 +171,6 @@ endif()
|
||||
add_subdirectory(3rdparty/lzma EXCLUDE_FROM_ALL)
|
||||
add_subdirectory(3rdparty/libchdr EXCLUDE_FROM_ALL)
|
||||
|
||||
if(USE_NATIVE_TOOLS)
|
||||
add_subdirectory(tools/bin2cpp EXCLUDE_FROM_ALL)
|
||||
set(BIN2CPP bin2cpp)
|
||||
set(BIN2CPPDEP bin2cpp)
|
||||
else()
|
||||
set(BIN2CPP perl ${CMAKE_SOURCE_DIR}/linux_various/hex2h.pl)
|
||||
set(BIN2CPPDEP ${CMAKE_SOURCE_DIR}/linux_various/hex2h.pl)
|
||||
endif()
|
||||
|
||||
# rapidyaml includes fast_float as a submodule, saves us pulling it in directly.
|
||||
# Normally, we'd just pull in the cmake project, and link to it, but... it seems to enable
|
||||
# permissive mode, which breaks other parts of PCSX2. So, we'll just create a target here
|
||||
|
||||
@@ -27,12 +27,6 @@
|
||||
#include <malloc.h>
|
||||
#endif
|
||||
|
||||
// pxUSE_SECURE_MALLOC - enables bounds checking on scoped malloc allocations.
|
||||
|
||||
#ifndef pxUSE_SECURE_MALLOC
|
||||
#define pxUSE_SECURE_MALLOC 0
|
||||
#endif
|
||||
|
||||
// Implementation note: all known implementations of _aligned_free check the pointer for
|
||||
// NULL status (our implementation under GCC, and microsoft's under MSVC), so no need to
|
||||
// do it here.
|
||||
@@ -148,25 +142,16 @@ public:
|
||||
|
||||
T* GetPtr(uint idx = 0) const
|
||||
{
|
||||
#if pxUSE_SECURE_MALLOC
|
||||
IndexBoundsAssumeDev("ScopedAlloc", idx, m_size);
|
||||
#endif
|
||||
return &m_buffer[idx];
|
||||
}
|
||||
|
||||
T& operator[](uint idx)
|
||||
{
|
||||
#if pxUSE_SECURE_MALLOC
|
||||
IndexBoundsAssumeDev("ScopedAlloc", idx, m_size);
|
||||
#endif
|
||||
return m_buffer[idx];
|
||||
}
|
||||
|
||||
const T& operator[](uint idx) const
|
||||
{
|
||||
#if pxUSE_SECURE_MALLOC
|
||||
IndexBoundsAssumeDev("ScopedAlloc", idx, m_size);
|
||||
#endif
|
||||
return m_buffer[idx];
|
||||
}
|
||||
};
|
||||
|
||||
@@ -34,6 +34,7 @@ target_sources(common PRIVATE
|
||||
StringUtil.cpp
|
||||
Timer.cpp
|
||||
ThreadPool.cpp
|
||||
WAVWriter.cpp
|
||||
WindowInfo.cpp
|
||||
emitter/avx.cpp
|
||||
emitter/bmi.cpp
|
||||
@@ -91,6 +92,7 @@ target_sources(common PRIVATE
|
||||
PrecompiledHeader.h
|
||||
ProgressCallback.h
|
||||
ReadbackSpinManager.h
|
||||
RedtapeWilCom.h
|
||||
RedtapeWindows.h
|
||||
SafeArray.h
|
||||
ScopedGuard.h
|
||||
@@ -101,6 +103,7 @@ target_sources(common PRIVATE
|
||||
Threading.h
|
||||
ThreadPool.h
|
||||
TraceLog.h
|
||||
WAVWriter.h
|
||||
WindowInfo.h
|
||||
emitter/cpudetect_internal.h
|
||||
emitter/implement/dwshift.h
|
||||
|
||||
@@ -114,7 +114,7 @@ static void WriteMinidumpAndCallstack(PEXCEPTION_POINTERS exi)
|
||||
{
|
||||
char line[1024];
|
||||
DWORD written;
|
||||
std::snprintf(line, std::size(line), "Exception 0x%08X at 0x%p\n", exi->ExceptionRecord->ExceptionCode,
|
||||
std::snprintf(line, std::size(line), "Exception 0x%08X at 0x%p\n", static_cast<unsigned>(exi->ExceptionRecord->ExceptionCode),
|
||||
exi->ExceptionRecord->ExceptionAddress);
|
||||
WriteFile(hFile, line, static_cast<DWORD>(std::strlen(line)), &written, nullptr);
|
||||
}
|
||||
|
||||
@@ -17,13 +17,14 @@
|
||||
#include "common/Pcsx2Defs.h"
|
||||
#include "common/HashCombine.h"
|
||||
#include "common/RedtapeWindows.h"
|
||||
#include "common/RedtapeWilCom.h"
|
||||
#include "common/D3D11/ShaderCompiler.h"
|
||||
|
||||
#include <cstdio>
|
||||
#include <d3d11.h>
|
||||
#include <string_view>
|
||||
#include <unordered_map>
|
||||
#include <vector>
|
||||
#include <wil/com.h>
|
||||
|
||||
namespace D3D11
|
||||
{
|
||||
|
||||
@@ -14,11 +14,13 @@
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "common/RedtapeWindows.h"
|
||||
#include "common/RedtapeWilCom.h"
|
||||
|
||||
#include <d3d11.h>
|
||||
#include <string_view>
|
||||
#include <type_traits>
|
||||
#include <wil/com.h>
|
||||
|
||||
namespace D3D11::ShaderCompiler
|
||||
{
|
||||
|
||||
@@ -17,10 +17,10 @@
|
||||
|
||||
#include "common/Pcsx2Defs.h"
|
||||
#include "common/RedtapeWindows.h"
|
||||
#include "common/RedtapeWilCom.h"
|
||||
|
||||
#include <array>
|
||||
#include <d3d12.h>
|
||||
#include <wil/com.h>
|
||||
|
||||
namespace D3D12
|
||||
{
|
||||
|
||||
@@ -18,13 +18,13 @@
|
||||
#include "common/Pcsx2Defs.h"
|
||||
#include "common/HashCombine.h"
|
||||
#include "common/RedtapeWindows.h"
|
||||
#include "common/RedtapeWilCom.h"
|
||||
|
||||
#include <bitset>
|
||||
#include <cstring>
|
||||
#include <d3d12.h>
|
||||
#include <unordered_map>
|
||||
#include <vector>
|
||||
#include <wil/com.h>
|
||||
|
||||
namespace D3D12
|
||||
{
|
||||
|
||||
@@ -18,13 +18,13 @@
|
||||
#include "common/Pcsx2Defs.h"
|
||||
#include "common/HashCombine.h"
|
||||
#include "common/RedtapeWindows.h"
|
||||
#include "common/RedtapeWilCom.h"
|
||||
|
||||
#include <cstdio>
|
||||
#include <d3d12.h>
|
||||
#include <string_view>
|
||||
#include <unordered_map>
|
||||
#include <vector>
|
||||
#include <wil/com.h>
|
||||
|
||||
namespace D3D12
|
||||
{
|
||||
|
||||
@@ -17,11 +17,11 @@
|
||||
|
||||
#include "common/Pcsx2Defs.h"
|
||||
#include "common/RedtapeWindows.h"
|
||||
#include "common/RedtapeWilCom.h"
|
||||
|
||||
#include <d3d12.h>
|
||||
#include <deque>
|
||||
#include <utility>
|
||||
#include <wil/com.h>
|
||||
|
||||
namespace D3D12MA
|
||||
{
|
||||
|
||||
@@ -26,11 +26,6 @@
|
||||
|
||||
using namespace D3D12;
|
||||
|
||||
// Somehow NOMINMAX isn't getting set for CMake builds...
|
||||
#ifdef min
|
||||
#undef min
|
||||
#endif
|
||||
|
||||
Texture::Texture() = default;
|
||||
|
||||
Texture::Texture(ID3D12Resource* resource, D3D12_RESOURCE_STATES state)
|
||||
@@ -349,7 +344,7 @@ ID3D12GraphicsCommandList* Texture::BeginStreamUpdate(ID3D12GraphicsCommandList*
|
||||
}
|
||||
|
||||
// cmdlist change
|
||||
return g_d3d12_context->GetInitCommandList();
|
||||
cmdlist = g_d3d12_context->GetInitCommandList();
|
||||
}
|
||||
|
||||
*out_data = g_d3d12_context->GetTextureStreamBuffer().GetCurrentHostPointer();
|
||||
|
||||
@@ -31,18 +31,6 @@
|
||||
#include <signal.h>
|
||||
#endif
|
||||
|
||||
// Because wxTrap isn't available on Linux builds of wxWidgets (non-Debug, typically)
|
||||
void pxTrap()
|
||||
{
|
||||
#if defined(_WIN32)
|
||||
__debugbreak();
|
||||
#elif defined(__UNIX__)
|
||||
raise(SIGTRAP);
|
||||
#else
|
||||
abort();
|
||||
#endif
|
||||
}
|
||||
|
||||
static std::mutex s_assertion_failed_mutex;
|
||||
|
||||
static inline void FreezeThreads(void** handle)
|
||||
|
||||
@@ -20,9 +20,6 @@
|
||||
#include "common/Assertions.h"
|
||||
#include "common/Pcsx2Defs.h"
|
||||
|
||||
// Because wxTrap isn't available on Linux builds of wxWidgets (non-Debug, typically)
|
||||
void pxTrap();
|
||||
|
||||
namespace Exception
|
||||
{
|
||||
class BaseException;
|
||||
|
||||
@@ -20,17 +20,17 @@
|
||||
|
||||
static void* GetProcAddressCallback(const char* name)
|
||||
{
|
||||
void* addr = wglGetProcAddress(name);
|
||||
void* addr = reinterpret_cast<void*>(wglGetProcAddress(name));
|
||||
if (addr)
|
||||
return addr;
|
||||
|
||||
// try opengl32.dll
|
||||
return ::GetProcAddress(GetModuleHandleA("opengl32.dll"), name);
|
||||
return reinterpret_cast<void*>(::GetProcAddress(GetModuleHandleA("opengl32.dll"), name));
|
||||
}
|
||||
|
||||
static bool ReloadWGL(HDC dc)
|
||||
{
|
||||
if (!gladLoadWGLLoader([](const char* name) -> void* { return wglGetProcAddress(name); }, dc))
|
||||
if (!gladLoadWGLLoader([](const char* name) -> void* { return reinterpret_cast<void*>(wglGetProcAddress(name)); }, dc))
|
||||
{
|
||||
Console.Error("Loading GLAD WGL functions failed");
|
||||
return false;
|
||||
@@ -208,7 +208,7 @@ namespace GL
|
||||
if (!hDC)
|
||||
{
|
||||
Console.Error("GetDC() failed: 0x%08X", GetLastError());
|
||||
return false;
|
||||
return {};
|
||||
}
|
||||
|
||||
if (!m_pixel_format.has_value())
|
||||
@@ -218,7 +218,7 @@ namespace GL
|
||||
{
|
||||
Console.Error("ChoosePixelFormat() failed: 0x%08X", GetLastError());
|
||||
::ReleaseDC(hwnd, hDC);
|
||||
return false;
|
||||
return {};
|
||||
}
|
||||
|
||||
m_pixel_format = pf;
|
||||
@@ -397,7 +397,7 @@ namespace GL
|
||||
}
|
||||
|
||||
// re-init glad-wgl
|
||||
if (!gladLoadWGLLoader([](const char* name) -> void* { return wglGetProcAddress(name); }, m_dc))
|
||||
if (!gladLoadWGLLoader([](const char* name) -> void* { return reinterpret_cast<void*>(wglGetProcAddress(name)); }, m_dc))
|
||||
{
|
||||
Console.Error("Loading GLAD WGL functions failed");
|
||||
return false;
|
||||
|
||||
@@ -249,9 +249,13 @@ namespace GL
|
||||
glGetProgramiv(m_program_id, GL_LINK_STATUS, &status);
|
||||
|
||||
GLint info_log_length = 0;
|
||||
|
||||
// Log will create a new line when there are no warnings so let's set a minimum log length of 1.
|
||||
constexpr int info_log_min_length = 1;
|
||||
|
||||
glGetProgramiv(m_program_id, GL_INFO_LOG_LENGTH, &info_log_length);
|
||||
|
||||
if (status == GL_FALSE || info_log_length > 0)
|
||||
if (status == GL_FALSE || info_log_length > info_log_min_length)
|
||||
{
|
||||
std::string info_log;
|
||||
info_log.resize(info_log_length + 1);
|
||||
|
||||
@@ -119,8 +119,6 @@ static __fi PageProtectionMode PageAccess_Any()
|
||||
// --------------------------------------------------------------------------------------
|
||||
// HostSys
|
||||
// --------------------------------------------------------------------------------------
|
||||
// (this namespace name sucks, and is a throw-back to an older attempt to make things cross
|
||||
// platform prior to wxWidgets .. it should prolly be removed -- air)
|
||||
namespace HostSys
|
||||
{
|
||||
// Maps a block of memory for use as a recompiled code buffer.
|
||||
|
||||
@@ -95,13 +95,6 @@ static void SysPageFaultSignalFilter(int signal, siginfo_t* siginfo, void* ctx)
|
||||
|
||||
std::fprintf(stderr, "Unhandled page fault @ 0x%08x", siginfo->si_addr);
|
||||
pxFailRel("Unhandled page fault");
|
||||
|
||||
// Bad mojo! Completely invalid address.
|
||||
// Instigate a trap if we're in a debugger, and if not then do a SIGKILL.
|
||||
|
||||
pxTrap();
|
||||
if (!IsDebugBuild)
|
||||
raise(SIGKILL);
|
||||
}
|
||||
|
||||
void _platform_InstallSignalHandler()
|
||||
|
||||
+4
-20
@@ -31,6 +31,7 @@
|
||||
|
||||
#include "Pcsx2Types.h"
|
||||
#include <cstddef>
|
||||
#include <cassert>
|
||||
|
||||
#include "common/emitter/x86_intrin.h"
|
||||
|
||||
@@ -158,7 +159,7 @@ static constexpr size_t __pagemask = PCSX2_PAGESIZE - 1;
|
||||
// Makes sure that if anyone includes xbyak, it doesn't do anything bad
|
||||
#define XBYAK_ENABLE_OMITTED_OPERAND
|
||||
|
||||
#ifdef __x86_64__
|
||||
#if defined(__x86_64__) && !defined(_M_AMD64)
|
||||
#define _M_AMD64
|
||||
#endif
|
||||
|
||||
@@ -202,8 +203,7 @@ static constexpr size_t __pagemask = PCSX2_PAGESIZE - 1;
|
||||
#define safe_delete_array(ptr) \
|
||||
((void)(delete[](ptr)), (ptr) = NULL)
|
||||
|
||||
// No checks for NULL -- wxWidgets says it's safe to skip NULL checks and it runs on
|
||||
// just about every compiler and libc implementation of any recentness.
|
||||
// No checks for NULL.
|
||||
#define safe_free(ptr) \
|
||||
((void)(free(ptr), !!0), (ptr) = NULL)
|
||||
//((void) (( ( (ptr) != NULL ) && (free( ptr ), !!0) ), (ptr) = NULL))
|
||||
@@ -281,23 +281,7 @@ static const pxEnumEnd_t pxEnumEnd = {};
|
||||
// --------------------------------------------------------------------------------------
|
||||
// This macro provides an easy and clean method for ensuring objects are not copyable.
|
||||
// Simply add the macro to the head or tail of your class declaration, and attempts to
|
||||
// copy the class will give you a moderately obtuse compiler error that will have you
|
||||
// scratching your head for 20 minutes.
|
||||
//
|
||||
// (... but that's probably better than having a weird invalid object copy having you
|
||||
// scratch your head for a day).
|
||||
//
|
||||
// Programmer's notes:
|
||||
// * We intentionally do NOT provide implementations for these methods, which should
|
||||
// never be referenced anyway.
|
||||
|
||||
// * I've opted for macro form over multi-inherited class form (Boost style), because
|
||||
// the errors generated by the macro are considerably less voodoo. The Boost-style
|
||||
// The macro reports the exact class that causes the copy failure, while Boost's class
|
||||
// approach just reports an error in whatever "NoncopyableObject" is inherited.
|
||||
//
|
||||
// * This macro is the same as wxWidgets' DECLARE_NO_COPY_CLASS macro. This one is free
|
||||
// of wx dependencies though, and has a nicer typeset. :)
|
||||
// copy the class will give you a moderately obtuse compiler error.
|
||||
//
|
||||
#ifndef DeclareNoncopyableObject
|
||||
#define DeclareNoncopyableObject(classname) \
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* PCSX2 - PS2 Emulator for PCs
|
||||
* Copyright (C) 2002-2020 PCSX2 Dev Team
|
||||
* Copyright (C) 2002-2022 PCSX2 Dev Team
|
||||
*
|
||||
* PCSX2 is free software: you can redistribute it and/or modify it under the terms
|
||||
* of the GNU Lesser General Public License as published by the Free Software Found-
|
||||
@@ -15,13 +15,20 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "SPU2/Global.h"
|
||||
#include "SPU2/Config.h"
|
||||
#ifdef _WIN32
|
||||
|
||||
namespace DebugConfig
|
||||
{
|
||||
extern void ReadSettings();
|
||||
} // namespace DebugConfig
|
||||
#include "common/RedtapeWindows.h"
|
||||
|
||||
extern void CfgSetSettingsDir(const char* dir);
|
||||
extern void CfgSetLogDir(const char* dir);
|
||||
// warning : variable 's_hrErrorLast' set but not used [-Wunused-but-set-variable]
|
||||
#ifdef __clang__
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wunused-but-set-variable"
|
||||
#endif
|
||||
|
||||
#include <wil/com.h>
|
||||
|
||||
#ifdef __clang__
|
||||
#pragma clang diagnostic pop
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -17,13 +17,6 @@
|
||||
|
||||
#include "common/Pcsx2Defs.h"
|
||||
|
||||
// pxUSE_SECURE_MALLOC - enables bounds checking on scoped malloc allocations.
|
||||
|
||||
#ifndef pxUSE_SECURE_MALLOC
|
||||
#define pxUSE_SECURE_MALLOC 0
|
||||
#endif
|
||||
|
||||
|
||||
// Microsoft Windows only macro, useful for freeing out COM objects:
|
||||
#define safe_release(ptr) \
|
||||
((void)((((ptr) != NULL) && ((ptr)->Release(), !!0)), (ptr) = NULL))
|
||||
|
||||
@@ -566,6 +566,8 @@ private:
|
||||
case 8: //SymVirtual:
|
||||
szSymType = "Virtual";
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
LPCSTR pdbName = Module.LoadedImageName;
|
||||
@@ -1199,9 +1201,12 @@ void StackWalker::OnSymInit(LPCSTR szSearchPath, DWORD symOptions, LPCSTR szUser
|
||||
OSVERSIONINFOEXA ver;
|
||||
ZeroMemory(&ver, sizeof(OSVERSIONINFOEXA));
|
||||
ver.dwOSVersionInfoSize = sizeof(ver);
|
||||
#if _MSC_VER >= 1900
|
||||
#if defined(_MSC_VER) && !defined(__clang__)
|
||||
#pragma warning(push)
|
||||
#pragma warning(disable : 4996)
|
||||
#elif defined(__clang__)
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
|
||||
#endif
|
||||
if (GetVersionExA((OSVERSIONINFOA*)&ver) != FALSE)
|
||||
{
|
||||
@@ -1211,8 +1216,10 @@ void StackWalker::OnSymInit(LPCSTR szSearchPath, DWORD symOptions, LPCSTR szUser
|
||||
buffer[STACKWALK_MAX_NAMELEN - 1] = 0;
|
||||
OnOutput(buffer);
|
||||
}
|
||||
#if _MSC_VER >= 1900
|
||||
#if defined(_MSC_VER) && !defined(__clang__)
|
||||
#pragma warning(pop)
|
||||
#elif defined(__clang__)
|
||||
#pragma clang diagnostic pop
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -187,7 +187,7 @@ static bool VMMMarkPagesAsInUse(std::atomic<bool>* begin, std::atomic<bool>* end
|
||||
for (auto current = begin; current < end; current++)
|
||||
{
|
||||
bool expected = false;
|
||||
if (!current->compare_exchange_strong(expected, true), std::memory_order_relaxed)
|
||||
if (!current->compare_exchange_strong(expected, true, std::memory_order_relaxed))
|
||||
{
|
||||
// This was already allocated! Undo the things we've set until this point
|
||||
while (--current >= begin)
|
||||
|
||||
+36
-34
@@ -1129,9 +1129,7 @@ namespace Vulkan
|
||||
m_completed_fence_counter = now_completed_counter;
|
||||
}
|
||||
|
||||
void Context::SubmitCommandBuffer(VkSemaphore wait_semaphore /* = VK_NULL_HANDLE */,
|
||||
VkSemaphore signal_semaphore /* = VK_NULL_HANDLE */, VkSwapchainKHR present_swap_chain /* = VK_NULL_HANDLE */,
|
||||
uint32_t present_image_index /* = 0xFFFFFFFF */, bool submit_on_thread /* = false */)
|
||||
void Context::SubmitCommandBuffer(SwapChain* present_swap_chain /* = nullptr */, bool submit_on_thread /* = false */)
|
||||
{
|
||||
FrameResources& resources = m_frame_resources[m_current_frame];
|
||||
|
||||
@@ -1204,23 +1202,20 @@ namespace Vulkan
|
||||
|
||||
if (!submit_on_thread || !m_present_thread.joinable())
|
||||
{
|
||||
DoSubmitCommandBuffer(m_current_frame, wait_semaphore, signal_semaphore, spin_cycles);
|
||||
if (present_swap_chain != VK_NULL_HANDLE)
|
||||
DoPresent(signal_semaphore, present_swap_chain, present_image_index);
|
||||
DoSubmitCommandBuffer(m_current_frame, present_swap_chain, spin_cycles);
|
||||
if (present_swap_chain)
|
||||
DoPresent(present_swap_chain);
|
||||
return;
|
||||
}
|
||||
|
||||
m_queued_present.command_buffer_index = m_current_frame;
|
||||
m_queued_present.present_swap_chain = present_swap_chain;
|
||||
m_queued_present.present_image_index = present_image_index;
|
||||
m_queued_present.wait_semaphore = wait_semaphore;
|
||||
m_queued_present.signal_semaphore = signal_semaphore;
|
||||
m_queued_present.swap_chain = present_swap_chain;
|
||||
m_queued_present.spin_cycles = spin_cycles;
|
||||
m_present_done.store(false);
|
||||
m_present_queued_cv.notify_one();
|
||||
}
|
||||
|
||||
void Context::DoSubmitCommandBuffer(u32 index, VkSemaphore wait_semaphore, VkSemaphore signal_semaphore, u32 spin_cycles)
|
||||
void Context::DoSubmitCommandBuffer(u32 index, SwapChain* present_swap_chain, u32 spin_cycles)
|
||||
{
|
||||
FrameResources& resources = m_frame_resources[index];
|
||||
|
||||
@@ -1230,24 +1225,24 @@ namespace Vulkan
|
||||
submit_info.commandBufferCount = resources.init_buffer_used ? 2u : 1u;
|
||||
submit_info.pCommandBuffers = resources.init_buffer_used ? resources.command_buffers.data() : &resources.command_buffers[1];
|
||||
|
||||
if (wait_semaphore != VK_NULL_HANDLE)
|
||||
if (present_swap_chain)
|
||||
{
|
||||
submit_info.pWaitSemaphores = &wait_semaphore;
|
||||
submit_info.pWaitSemaphores = present_swap_chain->GetImageAvailableSemaphorePtr();
|
||||
submit_info.waitSemaphoreCount = 1;
|
||||
submit_info.pWaitDstStageMask = &wait_bits;
|
||||
}
|
||||
|
||||
if (signal_semaphore != VK_NULL_HANDLE && spin_cycles != 0)
|
||||
{
|
||||
semas[0] = signal_semaphore;
|
||||
semas[1] = m_spin_resources[index].semaphore;
|
||||
submit_info.signalSemaphoreCount = 2;
|
||||
submit_info.pSignalSemaphores = semas;
|
||||
}
|
||||
else if (signal_semaphore != VK_NULL_HANDLE)
|
||||
{
|
||||
submit_info.signalSemaphoreCount = 1;
|
||||
submit_info.pSignalSemaphores = &signal_semaphore;
|
||||
if (spin_cycles != 0)
|
||||
{
|
||||
semas[0] = present_swap_chain->GetRenderingFinishedSemaphore();
|
||||
semas[1] = m_spin_resources[index].semaphore;
|
||||
submit_info.signalSemaphoreCount = 2;
|
||||
submit_info.pSignalSemaphores = semas;
|
||||
}
|
||||
else
|
||||
{
|
||||
submit_info.pSignalSemaphores = present_swap_chain->GetRenderingFinishedSemaphorePtr();
|
||||
submit_info.signalSemaphoreCount = 1;
|
||||
}
|
||||
}
|
||||
else if (spin_cycles != 0)
|
||||
{
|
||||
@@ -1266,12 +1261,14 @@ namespace Vulkan
|
||||
SubmitSpinCommand(index, spin_cycles);
|
||||
}
|
||||
|
||||
void Context::DoPresent(VkSemaphore wait_semaphore, VkSwapchainKHR present_swap_chain, uint32_t present_image_index)
|
||||
void Context::DoPresent(SwapChain* present_swap_chain)
|
||||
{
|
||||
// Should have a signal semaphore.
|
||||
pxAssert(wait_semaphore != VK_NULL_HANDLE);
|
||||
VkPresentInfoKHR present_info = {VK_STRUCTURE_TYPE_PRESENT_INFO_KHR, nullptr, 1, &wait_semaphore, 1,
|
||||
&present_swap_chain, &present_image_index, nullptr};
|
||||
const VkPresentInfoKHR present_info = {VK_STRUCTURE_TYPE_PRESENT_INFO_KHR, nullptr,
|
||||
1, present_swap_chain->GetRenderingFinishedSemaphorePtr(),
|
||||
1, present_swap_chain->GetSwapChainPtr(), present_swap_chain->GetCurrentImageIndexPtr(),
|
||||
nullptr};
|
||||
|
||||
present_swap_chain->ReleaseCurrentImage();
|
||||
|
||||
VkResult res = vkQueuePresentKHR(m_present_queue, &present_info);
|
||||
if (res != VK_SUCCESS)
|
||||
@@ -1281,7 +1278,13 @@ namespace Vulkan
|
||||
LOG_VULKAN_ERROR(res, "vkQueuePresentKHR failed: ");
|
||||
|
||||
m_last_present_failed.store(true);
|
||||
return;
|
||||
}
|
||||
|
||||
// Grab the next image as soon as possible, that way we spend less time blocked on the next
|
||||
// submission. Don't care if it fails, we'll deal with that at the presentation call site.
|
||||
// Credit to dxvk for the idea.
|
||||
present_swap_chain->AcquireNextImage();
|
||||
}
|
||||
|
||||
void Context::WaitForPresentComplete()
|
||||
@@ -1311,10 +1314,9 @@ namespace Vulkan
|
||||
if (m_present_done.load())
|
||||
continue;
|
||||
|
||||
DoSubmitCommandBuffer(m_queued_present.command_buffer_index, m_queued_present.wait_semaphore,
|
||||
m_queued_present.signal_semaphore, m_queued_present.spin_cycles);
|
||||
DoPresent(m_queued_present.signal_semaphore, m_queued_present.present_swap_chain,
|
||||
m_queued_present.present_image_index);
|
||||
DoSubmitCommandBuffer(m_queued_present.command_buffer_index, m_queued_present.swap_chain, m_queued_present.spin_cycles);
|
||||
if (m_queued_present.swap_chain)
|
||||
DoPresent(m_queued_present.swap_chain);
|
||||
m_present_done.store(true);
|
||||
m_present_done_cv.notify_one();
|
||||
}
|
||||
|
||||
@@ -193,9 +193,7 @@ namespace Vulkan
|
||||
// queued and executed. Do not wait for this fence before the buffer is executed.
|
||||
u64 GetCurrentFenceCounter() const { return m_frame_resources[m_current_frame].fence_counter; }
|
||||
|
||||
void SubmitCommandBuffer(VkSemaphore wait_semaphore = VK_NULL_HANDLE,
|
||||
VkSemaphore signal_semaphore = VK_NULL_HANDLE, VkSwapchainKHR present_swap_chain = VK_NULL_HANDLE,
|
||||
uint32_t present_image_index = 0xFFFFFFFF, bool submit_on_thread = false);
|
||||
void SubmitCommandBuffer(SwapChain* present_swap_chain = nullptr, bool submit_on_thread = false);
|
||||
void MoveToNextCommandBuffer();
|
||||
|
||||
enum class WaitType
|
||||
@@ -283,8 +281,8 @@ namespace Vulkan
|
||||
void ScanForCommandBufferCompletion();
|
||||
void WaitForCommandBufferCompletion(u32 index);
|
||||
|
||||
void DoSubmitCommandBuffer(u32 index, VkSemaphore wait_semaphore, VkSemaphore signal_semaphore, u32 spin_cycles);
|
||||
void DoPresent(VkSemaphore wait_semaphore, VkSwapchainKHR present_swap_chain, uint32_t present_image_index);
|
||||
void DoSubmitCommandBuffer(u32 index, SwapChain* present_swap_chain, u32 spin_cycles);
|
||||
void DoPresent(SwapChain* present_swap_chain);
|
||||
void WaitForPresentComplete(std::unique_lock<std::mutex>& lock);
|
||||
void PresentThread();
|
||||
void StartPresentThread();
|
||||
@@ -384,11 +382,8 @@ namespace Vulkan
|
||||
|
||||
struct QueuedPresent
|
||||
{
|
||||
VkSemaphore wait_semaphore;
|
||||
VkSemaphore signal_semaphore;
|
||||
VkSwapchainKHR present_swap_chain;
|
||||
SwapChain* swap_chain;
|
||||
u32 command_buffer_index;
|
||||
u32 present_image_index;
|
||||
u32 spin_cycles;
|
||||
};
|
||||
|
||||
|
||||
@@ -99,6 +99,7 @@
|
||||
#ifdef __clang__
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wnullability-completeness"
|
||||
#pragma clang diagnostic ignored "-Wunused-variable"
|
||||
#endif
|
||||
|
||||
#define VMA_STATIC_VULKAN_FUNCTIONS 1
|
||||
|
||||
+62
-50
@@ -38,12 +38,13 @@ namespace Vulkan
|
||||
|
||||
SwapChain::~SwapChain()
|
||||
{
|
||||
DestroySemaphores();
|
||||
DestroySwapChainImages();
|
||||
DestroySwapChain();
|
||||
DestroySurface();
|
||||
}
|
||||
|
||||
#if 0
|
||||
// Unused for now, can be used for nogui
|
||||
static VkSurfaceKHR CreateDisplaySurface(VkInstance instance, VkPhysicalDevice physical_device, WindowInfo* wi)
|
||||
{
|
||||
Console.WriteLn("Trying to create a VK_KHR_display surface of %ux%u", wi->surface_width, wi->surface_height);
|
||||
@@ -253,6 +254,7 @@ namespace Vulkan
|
||||
|
||||
return result;
|
||||
}
|
||||
#endif
|
||||
|
||||
VkSurfaceKHR SwapChain::CreateVulkanSurface(VkInstance instance, VkPhysicalDevice physical_device, WindowInfo* wi)
|
||||
{
|
||||
@@ -413,7 +415,7 @@ namespace Vulkan
|
||||
VkPresentModeKHR preferred_present_mode)
|
||||
{
|
||||
std::unique_ptr<SwapChain> swap_chain = std::make_unique<SwapChain>(wi, surface, preferred_present_mode);
|
||||
if (!swap_chain->CreateSwapChain() || !swap_chain->SetupSwapChainImages() || !swap_chain->CreateSemaphores())
|
||||
if (!swap_chain->CreateSwapChain() || !swap_chain->SetupSwapChainImages())
|
||||
return nullptr;
|
||||
|
||||
return swap_chain;
|
||||
@@ -635,6 +637,7 @@ namespace Vulkan
|
||||
}
|
||||
|
||||
m_images.reserve(image_count);
|
||||
m_current_image = 0;
|
||||
for (u32 i = 0; i < image_count; i++)
|
||||
{
|
||||
SwapChainImage image;
|
||||
@@ -654,6 +657,31 @@ namespace Vulkan
|
||||
m_images.emplace_back(std::move(image));
|
||||
}
|
||||
|
||||
m_semaphores.reserve(image_count);
|
||||
m_current_semaphore = (image_count - 1);
|
||||
for (u32 i = 0; i < image_count; i++)
|
||||
{
|
||||
ImageSemaphores sema;
|
||||
|
||||
const VkSemaphoreCreateInfo semaphore_info = {VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO, nullptr, 0};
|
||||
res = vkCreateSemaphore(g_vulkan_context->GetDevice(), &semaphore_info, nullptr, &sema.available_semaphore);
|
||||
if (res != VK_SUCCESS)
|
||||
{
|
||||
LOG_VULKAN_ERROR(res, "vkCreateSemaphore failed: ");
|
||||
return false;
|
||||
}
|
||||
|
||||
res = vkCreateSemaphore(g_vulkan_context->GetDevice(), &semaphore_info, nullptr, &sema.rendering_finished_semaphore);
|
||||
if (res != VK_SUCCESS)
|
||||
{
|
||||
LOG_VULKAN_ERROR(res, "vkCreateSemaphore failed: ");
|
||||
vkDestroySemaphore(g_vulkan_context->GetDevice(), sema.available_semaphore, nullptr);
|
||||
return false;
|
||||
}
|
||||
|
||||
m_semaphores.push_back(sema);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -665,6 +693,14 @@ namespace Vulkan
|
||||
vkDestroyFramebuffer(g_vulkan_context->GetDevice(), it.framebuffer, nullptr);
|
||||
}
|
||||
m_images.clear();
|
||||
for (auto& it : m_semaphores)
|
||||
{
|
||||
vkDestroySemaphore(g_vulkan_context->GetDevice(), it.rendering_finished_semaphore, nullptr);
|
||||
vkDestroySemaphore(g_vulkan_context->GetDevice(), it.available_semaphore, nullptr);
|
||||
}
|
||||
m_semaphores.clear();
|
||||
|
||||
m_image_acquire_result.reset();
|
||||
}
|
||||
|
||||
void SwapChain::DestroySwapChain()
|
||||
@@ -680,17 +716,29 @@ namespace Vulkan
|
||||
|
||||
VkResult SwapChain::AcquireNextImage()
|
||||
{
|
||||
if (m_image_acquire_result.has_value())
|
||||
return m_image_acquire_result.value();
|
||||
|
||||
if (!m_swap_chain)
|
||||
return VK_ERROR_SURFACE_LOST_KHR;
|
||||
|
||||
return vkAcquireNextImageKHR(g_vulkan_context->GetDevice(), m_swap_chain, UINT64_MAX,
|
||||
m_image_available_semaphore, VK_NULL_HANDLE, &m_current_image);
|
||||
// Use a different semaphore for each image.
|
||||
m_current_semaphore = (m_current_semaphore + 1) % static_cast<u32>(m_semaphores.size());
|
||||
|
||||
const VkResult res = vkAcquireNextImageKHR(g_vulkan_context->GetDevice(), m_swap_chain, UINT64_MAX,
|
||||
m_semaphores[m_current_semaphore].available_semaphore, VK_NULL_HANDLE, &m_current_image);
|
||||
m_image_acquire_result = res;
|
||||
return res;
|
||||
}
|
||||
|
||||
void SwapChain::ReleaseCurrentImage()
|
||||
{
|
||||
m_image_acquire_result.reset();
|
||||
}
|
||||
|
||||
bool SwapChain::ResizeSwapChain(u32 new_width, u32 new_height, float new_scale)
|
||||
{
|
||||
DestroySwapChainImages();
|
||||
DestroySemaphores();
|
||||
|
||||
if (new_width != 0 && new_height != 0)
|
||||
{
|
||||
@@ -700,9 +748,8 @@ namespace Vulkan
|
||||
|
||||
m_window_info.surface_scale = new_scale;
|
||||
|
||||
if (!CreateSwapChain() || !SetupSwapChainImages() || !CreateSemaphores())
|
||||
if (!CreateSwapChain() || !SetupSwapChainImages())
|
||||
{
|
||||
DestroySemaphores();
|
||||
DestroySwapChainImages();
|
||||
DestroySwapChain();
|
||||
return false;
|
||||
@@ -714,11 +761,9 @@ namespace Vulkan
|
||||
bool SwapChain::RecreateSwapChain()
|
||||
{
|
||||
DestroySwapChainImages();
|
||||
DestroySemaphores();
|
||||
|
||||
if (!CreateSwapChain() || !SetupSwapChainImages() || !CreateSemaphores())
|
||||
if (!CreateSwapChain() || !SetupSwapChainImages())
|
||||
{
|
||||
DestroySemaphores();
|
||||
DestroySwapChainImages();
|
||||
DestroySwapChain();
|
||||
return false;
|
||||
@@ -743,7 +788,6 @@ namespace Vulkan
|
||||
DestroySwapChainImages();
|
||||
DestroySwapChain();
|
||||
DestroySurface();
|
||||
DestroySemaphores();
|
||||
|
||||
// Re-create the surface with the new native handle
|
||||
m_window_info = new_wi;
|
||||
@@ -768,8 +812,14 @@ namespace Vulkan
|
||||
}
|
||||
|
||||
// Finally re-create the swap chain
|
||||
if (!CreateSwapChain() || !SetupSwapChainImages() || !CreateSemaphores())
|
||||
if (!CreateSwapChain())
|
||||
return false;
|
||||
if (!SetupSwapChainImages())
|
||||
{
|
||||
DestroySwapChain();
|
||||
DestroySurface();
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -782,42 +832,4 @@ namespace Vulkan
|
||||
DestroyVulkanSurface(g_vulkan_context->GetVulkanInstance(), &m_window_info, m_surface);
|
||||
m_surface = VK_NULL_HANDLE;
|
||||
}
|
||||
|
||||
bool SwapChain::CreateSemaphores()
|
||||
{
|
||||
// Create two semaphores, one that is triggered when the swapchain buffer is ready, another after
|
||||
// submit and before present
|
||||
VkSemaphoreCreateInfo semaphore_info = {
|
||||
VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO, // VkStructureType sType
|
||||
nullptr, // const void* pNext
|
||||
0 // VkSemaphoreCreateFlags flags
|
||||
};
|
||||
|
||||
VkResult res;
|
||||
if ((res = vkCreateSemaphore(g_vulkan_context->GetDevice(), &semaphore_info, nullptr,
|
||||
&m_image_available_semaphore)) != VK_SUCCESS ||
|
||||
(res = vkCreateSemaphore(g_vulkan_context->GetDevice(), &semaphore_info, nullptr,
|
||||
&m_rendering_finished_semaphore)) != VK_SUCCESS)
|
||||
{
|
||||
LOG_VULKAN_ERROR(res, "vkCreateSemaphore failed: ");
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void SwapChain::DestroySemaphores()
|
||||
{
|
||||
if (m_image_available_semaphore != VK_NULL_HANDLE)
|
||||
{
|
||||
vkDestroySemaphore(g_vulkan_context->GetDevice(), m_image_available_semaphore, nullptr);
|
||||
m_image_available_semaphore = VK_NULL_HANDLE;
|
||||
}
|
||||
|
||||
if (m_rendering_finished_semaphore != VK_NULL_HANDLE)
|
||||
{
|
||||
vkDestroySemaphore(g_vulkan_context->GetDevice(), m_rendering_finished_semaphore, nullptr);
|
||||
m_rendering_finished_semaphore = VK_NULL_HANDLE;
|
||||
}
|
||||
}
|
||||
} // namespace Vulkan
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
#include "common/Vulkan/Texture.h"
|
||||
#include "common/Vulkan/Loader.h"
|
||||
#include <memory>
|
||||
#include <optional>
|
||||
#include <vector>
|
||||
|
||||
namespace Vulkan
|
||||
@@ -55,11 +56,13 @@ namespace Vulkan
|
||||
__fi VkFormat GetTextureFormat() const { return m_surface_format.format; }
|
||||
__fi VkPresentModeKHR GetPreferredPresentMode() const { return m_preferred_present_mode; }
|
||||
__fi VkSwapchainKHR GetSwapChain() const { return m_swap_chain; }
|
||||
__fi const VkSwapchainKHR* GetSwapChainPtr() const { return &m_swap_chain; }
|
||||
__fi const WindowInfo& GetWindowInfo() const { return m_window_info; }
|
||||
__fi u32 GetWidth() const { return m_window_info.surface_width; }
|
||||
__fi u32 GetHeight() const { return m_window_info.surface_height; }
|
||||
__fi float GetScale() const { return m_window_info.surface_scale; }
|
||||
__fi u32 GetCurrentImageIndex() const { return m_current_image; }
|
||||
__fi const u32* GetCurrentImageIndexPtr() const { return &m_current_image; }
|
||||
__fi u32 GetImageCount() const { return static_cast<u32>(m_images.size()); }
|
||||
__fi VkImage GetCurrentImage() const { return m_images[m_current_image].image; }
|
||||
__fi const Texture& GetCurrentTexture() const { return m_images[m_current_image].texture; }
|
||||
@@ -67,9 +70,12 @@ namespace Vulkan
|
||||
__fi VkFramebuffer GetCurrentFramebuffer() const { return m_images[m_current_image].framebuffer; }
|
||||
__fi VkRenderPass GetLoadRenderPass() const { return m_load_render_pass; }
|
||||
__fi VkRenderPass GetClearRenderPass() const { return m_clear_render_pass; }
|
||||
__fi VkSemaphore GetImageAvailableSemaphore() const { return m_image_available_semaphore; }
|
||||
__fi VkSemaphore GetRenderingFinishedSemaphore() const { return m_rendering_finished_semaphore; }
|
||||
__fi VkSemaphore GetImageAvailableSemaphore() const { return m_semaphores[m_current_semaphore].available_semaphore; }
|
||||
__fi const VkSemaphore* GetImageAvailableSemaphorePtr() const { return &m_semaphores[m_current_semaphore].available_semaphore; }
|
||||
__fi VkSemaphore GetRenderingFinishedSemaphore() const { return m_semaphores[m_current_semaphore].rendering_finished_semaphore; }
|
||||
__fi const VkSemaphore* GetRenderingFinishedSemaphorePtr() const { return &m_semaphores[m_current_semaphore].rendering_finished_semaphore; }
|
||||
VkResult AcquireNextImage();
|
||||
void ReleaseCurrentImage();
|
||||
|
||||
bool RecreateSurface(const WindowInfo& new_wi);
|
||||
bool ResizeSwapChain(u32 new_width = 0, u32 new_height = 0, float new_scale = 1.0f);
|
||||
@@ -96,9 +102,6 @@ namespace Vulkan
|
||||
|
||||
void DestroySurface();
|
||||
|
||||
bool CreateSemaphores();
|
||||
void DestroySemaphores();
|
||||
|
||||
struct SwapChainImage
|
||||
{
|
||||
VkImage image;
|
||||
@@ -106,6 +109,12 @@ namespace Vulkan
|
||||
VkFramebuffer framebuffer;
|
||||
};
|
||||
|
||||
struct ImageSemaphores
|
||||
{
|
||||
VkSemaphore available_semaphore;
|
||||
VkSemaphore rendering_finished_semaphore;
|
||||
};
|
||||
|
||||
WindowInfo m_window_info;
|
||||
|
||||
VkSurfaceKHR m_surface = VK_NULL_HANDLE;
|
||||
@@ -116,11 +125,11 @@ namespace Vulkan
|
||||
VkRenderPass m_load_render_pass = VK_NULL_HANDLE;
|
||||
VkRenderPass m_clear_render_pass = VK_NULL_HANDLE;
|
||||
|
||||
VkSemaphore m_image_available_semaphore = VK_NULL_HANDLE;
|
||||
VkSemaphore m_rendering_finished_semaphore = VK_NULL_HANDLE;
|
||||
|
||||
VkSwapchainKHR m_swap_chain = VK_NULL_HANDLE;
|
||||
std::vector<SwapChainImage> m_images;
|
||||
std::vector<ImageSemaphores> m_semaphores;
|
||||
u32 m_current_image = 0;
|
||||
u32 m_current_semaphore = 0;
|
||||
std::optional<VkResult> m_image_acquire_result;
|
||||
};
|
||||
} // namespace Vulkan
|
||||
|
||||
@@ -0,0 +1,129 @@
|
||||
/* PCSX2 - PS2 Emulator for PCs
|
||||
* Copyright (C) 2002-2022 PCSX2 Dev Team
|
||||
*
|
||||
* PCSX2 is free software: you can redistribute it and/or modify it under the terms
|
||||
* of the GNU Lesser General Public License as published by the Free Software Found-
|
||||
* ation, either version 3 of the License, or (at your option) any later version.
|
||||
*
|
||||
* PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. See the GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with PCSX2.
|
||||
* If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "common/PrecompiledHeader.h"
|
||||
|
||||
#include "common/WAVWriter.h"
|
||||
#include "common/FileSystem.h"
|
||||
#include "common/Console.h"
|
||||
|
||||
#pragma pack(push, 1)
|
||||
struct WAV_HEADER
|
||||
{
|
||||
u32 chunk_id; // RIFF
|
||||
u32 chunk_size;
|
||||
u32 format; // WAVE
|
||||
|
||||
struct FormatChunk
|
||||
{
|
||||
u32 chunk_id; // "fmt "
|
||||
u32 chunk_size;
|
||||
u16 audio_format; // pcm = 1
|
||||
u16 num_channels;
|
||||
u32 sample_rate;
|
||||
u32 byte_rate;
|
||||
u16 block_align;
|
||||
u16 bits_per_sample;
|
||||
} fmt_chunk;
|
||||
|
||||
struct DataChunkHeader
|
||||
{
|
||||
u32 chunk_id; // "data "
|
||||
u32 chunk_size;
|
||||
} data_chunk_header;
|
||||
};
|
||||
#pragma pack(pop)
|
||||
|
||||
using namespace Common;
|
||||
|
||||
WAVWriter::WAVWriter() = default;
|
||||
|
||||
WAVWriter::~WAVWriter()
|
||||
{
|
||||
if (IsOpen())
|
||||
Close();
|
||||
}
|
||||
|
||||
bool WAVWriter::Open(const char* filename, u32 sample_rate, u32 num_channels)
|
||||
{
|
||||
if (IsOpen())
|
||||
Close();
|
||||
|
||||
m_file = FileSystem::OpenCFile(filename, "wb");
|
||||
if (!m_file)
|
||||
return false;
|
||||
|
||||
m_sample_rate = sample_rate;
|
||||
m_num_channels = num_channels;
|
||||
|
||||
if (!WriteHeader())
|
||||
{
|
||||
Console.Error("Failed to write header to file");
|
||||
m_sample_rate = 0;
|
||||
m_num_channels = 0;
|
||||
std::fclose(m_file);
|
||||
m_file = nullptr;
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void WAVWriter::Close()
|
||||
{
|
||||
if (!IsOpen())
|
||||
return;
|
||||
|
||||
if (std::fseek(m_file, 0, SEEK_SET) != 0 || !WriteHeader())
|
||||
Console.Error("Failed to re-write header on file, file may be unplayable");
|
||||
|
||||
std::fclose(m_file);
|
||||
m_file = nullptr;
|
||||
m_sample_rate = 0;
|
||||
m_num_channels = 0;
|
||||
m_num_frames = 0;
|
||||
}
|
||||
|
||||
void WAVWriter::WriteFrames(const s16* samples, u32 num_frames)
|
||||
{
|
||||
const u32 num_frames_written =
|
||||
static_cast<u32>(std::fwrite(samples, sizeof(s16) * m_num_channels, num_frames, m_file));
|
||||
if (num_frames_written != num_frames)
|
||||
Console.Error("Only wrote %u of %u frames to output file", num_frames_written, num_frames);
|
||||
|
||||
m_num_frames += num_frames_written;
|
||||
}
|
||||
|
||||
bool WAVWriter::WriteHeader()
|
||||
{
|
||||
const u32 data_size = sizeof(SampleType) * m_num_channels * m_num_frames;
|
||||
|
||||
WAV_HEADER header = {};
|
||||
header.chunk_id = 0x46464952; // 0x52494646
|
||||
header.chunk_size = sizeof(WAV_HEADER) - 8 + data_size;
|
||||
header.format = 0x45564157; // 0x57415645
|
||||
header.fmt_chunk.chunk_id = 0x20746d66; // 0x666d7420
|
||||
header.fmt_chunk.chunk_size = sizeof(header.fmt_chunk) - 8;
|
||||
header.fmt_chunk.audio_format = 1;
|
||||
header.fmt_chunk.num_channels = static_cast<u16>(m_num_channels);
|
||||
header.fmt_chunk.sample_rate = m_sample_rate;
|
||||
header.fmt_chunk.byte_rate = m_sample_rate * m_num_channels * sizeof(SampleType);
|
||||
header.fmt_chunk.block_align = static_cast<u16>(m_num_channels * sizeof(SampleType));
|
||||
header.fmt_chunk.bits_per_sample = 16;
|
||||
header.data_chunk_header.chunk_id = 0x61746164; // 0x64617461
|
||||
header.data_chunk_header.chunk_size = data_size;
|
||||
|
||||
return (std::fwrite(&header, sizeof(header), 1, m_file) == 1);
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
/* PCSX2 - PS2 Emulator for PCs
|
||||
* Copyright (C) 2002-2022 PCSX2 Dev Team
|
||||
*
|
||||
* PCSX2 is free software: you can redistribute it and/or modify it under the terms
|
||||
* of the GNU Lesser General Public License as published by the Free Software Found-
|
||||
* ation, either version 3 of the License, or (at your option) any later version.
|
||||
*
|
||||
* PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. See the GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with PCSX2.
|
||||
* If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
#include "common/Pcsx2Defs.h"
|
||||
#include <cstdio>
|
||||
|
||||
namespace Common
|
||||
{
|
||||
class WAVWriter
|
||||
{
|
||||
public:
|
||||
WAVWriter();
|
||||
~WAVWriter();
|
||||
|
||||
__fi u32 GetSampleRate() const { return m_sample_rate; }
|
||||
__fi u32 GetNumChannels() const { return m_num_channels; }
|
||||
__fi u32 GetNumFrames() const { return m_num_frames; }
|
||||
__fi bool IsOpen() const { return (m_file != nullptr); }
|
||||
|
||||
bool Open(const char* filename, u32 sample_rate, u32 num_channels);
|
||||
void Close();
|
||||
|
||||
void WriteFrames(const s16* samples, u32 num_frames);
|
||||
|
||||
private:
|
||||
using SampleType = s16;
|
||||
|
||||
bool WriteHeader();
|
||||
|
||||
std::FILE* m_file = nullptr;
|
||||
u32 m_sample_rate = 0;
|
||||
u32 m_num_channels = 0;
|
||||
u32 m_num_frames = 0;
|
||||
};
|
||||
} // namespace Common
|
||||
@@ -286,8 +286,6 @@ bool SharedMemoryMappingArea::Unmap(void* map_base, size_t map_size)
|
||||
pxAssert(Common::IsAlignedPow2(map_offset, __pagesize));
|
||||
pxAssert(Common::IsAlignedPow2(map_size, __pagesize));
|
||||
|
||||
const size_t page = map_offset / __pagesize;
|
||||
|
||||
// unmap the specified range
|
||||
if (!UnmapViewOfFile2(GetCurrentProcess(), map_base, MEM_PRESERVE_PLACEHOLDER))
|
||||
{
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
/* PCSX2 - PS2 Emulator for PCs
|
||||
* Copyright (C) 2002-2010 PCSX2 Dev Team
|
||||
*
|
||||
* PCSX2 is free software: you can redistribute it and/or modify it under the terms
|
||||
* of the GNU Lesser General Public License as published by the Free Software Found-
|
||||
* ation, either version 3 of the License, or (at your option) any later version.
|
||||
*
|
||||
* PCSX2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
* PURPOSE. See the GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License along with PCSX2.
|
||||
* If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <windows.h>
|
||||
|
||||
#define IDC_STATIC (-1)
|
||||
@@ -9,7 +9,8 @@
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Label="Configuration">
|
||||
<ConfigurationType>StaticLibrary</ConfigurationType>
|
||||
<PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="!$(Configuration.Contains(Clang))">$(DefaultPlatformToolset)</PlatformToolset>
|
||||
<PlatformToolset Condition="$(Configuration.Contains(Clang))">ClangCL</PlatformToolset>
|
||||
<CharacterSet>Unicode</CharacterSet>
|
||||
<WholeProgramOptimization Condition="$(Configuration.Contains(Release))">true</WholeProgramOptimization>
|
||||
<UseDebugLibraries Condition="$(Configuration.Contains(Debug))">true</UseDebugLibraries>
|
||||
@@ -44,8 +45,10 @@
|
||||
<PreprocessorDefinitions>WIN32_LEAN_AND_MEAN;NOMINMAX;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions Condition="!$(Configuration.Contains(AVX2))">_M_SSE=0x401;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions Condition="$(Configuration.Contains(AVX2))">_M_SSE=0x501;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<EnableEnhancedInstructionSet Condition="!$(Configuration.Contains(AVX2))">NotSet</EnableEnhancedInstructionSet>
|
||||
<EnableEnhancedInstructionSet Condition="$(Configuration.Contains(AVX2))">AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
|
||||
<EnableEnhancedInstructionSet Condition="!$(Configuration.Contains(AVX2)) Or $(Configuration.Contains(Clang))">NotSet</EnableEnhancedInstructionSet>
|
||||
<EnableEnhancedInstructionSet Condition="$(Configuration.Contains(AVX2)) And !$(Configuration.Contains(Clang))">AdvancedVectorExtensions2</EnableEnhancedInstructionSet>
|
||||
<AdditionalOptions Condition="$(Configuration.Contains(Clang)) And !$(Configuration.Contains(AVX2))"> -march=nehalem %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalOptions Condition="$(Configuration.Contains(Clang)) And $(Configuration.Contains(AVX2))"> -march=haswell %(AdditionalOptions)</AdditionalOptions>
|
||||
<ObjectFileName>$(IntDir)%(RelativeDir)</ObjectFileName>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
@@ -98,6 +101,7 @@
|
||||
<ClCompile Include="Vulkan\SwapChain.cpp" />
|
||||
<ClCompile Include="Vulkan\Texture.cpp" />
|
||||
<ClCompile Include="Vulkan\Util.cpp" />
|
||||
<ClCompile Include="WAVWriter.cpp" />
|
||||
<ClCompile Include="WindowInfo.cpp" />
|
||||
<ClCompile Include="Perf.cpp" />
|
||||
<ClCompile Include="PrecompiledHeader.cpp">
|
||||
@@ -196,6 +200,7 @@
|
||||
<ClInclude Include="Vulkan\SwapChain.h" />
|
||||
<ClInclude Include="Vulkan\Texture.h" />
|
||||
<ClInclude Include="Vulkan\Util.h" />
|
||||
<ClInclude Include="WAVWriter.h" />
|
||||
<ClInclude Include="WindowInfo.h" />
|
||||
<ClInclude Include="Threading.h" />
|
||||
<ClInclude Include="emitter\implement\avx.h" />
|
||||
|
||||
@@ -208,6 +208,9 @@
|
||||
<ClCompile Include="DynamicLibrary.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="WAVWriter.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="AlignedMalloc.h">
|
||||
@@ -492,6 +495,9 @@
|
||||
<ClInclude Include="DynamicLibrary.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="WAVWriter.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Filter Include="Source Files">
|
||||
|
||||
@@ -46,7 +46,7 @@ using namespace x86Emitter;
|
||||
|
||||
alignas(16) x86capabilities x86caps;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#if defined(_MSC_VER)
|
||||
// We disable optimizations for this function, because we need x86capabilities for AVX
|
||||
// detection, but if we keep opts on, it'll use AVX instructions for inlining memzero.
|
||||
#pragma optimize("", off)
|
||||
@@ -70,7 +70,7 @@ x86capabilities::x86capabilities()
|
||||
memzero(VendorName);
|
||||
memzero(FamilyName);
|
||||
}
|
||||
#ifdef _MSC_VER
|
||||
#if defined(_MSC_VER)
|
||||
#pragma optimize("", on)
|
||||
#endif
|
||||
|
||||
@@ -170,23 +170,6 @@ void x86capabilities::CountCores()
|
||||
{
|
||||
Identify();
|
||||
|
||||
s32 regs[4];
|
||||
u32 cmds;
|
||||
|
||||
cpuid(regs, 0x80000000);
|
||||
cmds = regs[0];
|
||||
|
||||
// detect multicore for AMD cpu
|
||||
|
||||
if ((cmds >= 0x80000008) && (VendorID == x86Vendor_AMD))
|
||||
{
|
||||
// AMD note: they don't support hyperthreading, but they like to flag this true
|
||||
// anyway. Let's force-unflag it until we come up with a better solution.
|
||||
// (note: seems to affect some Phenom II's only? -- Athlon X2's and PhenomI's do
|
||||
// not seem to do this) --air
|
||||
hasMultiThreading = 0;
|
||||
}
|
||||
|
||||
// This will assign values into LogicalCores and PhysicalCores
|
||||
CountLogicalCores();
|
||||
}
|
||||
|
||||
@@ -34,6 +34,12 @@ extern thread_local XMMSSEType g_xmmtypes[iREGCNT_XMM];
|
||||
|
||||
namespace x86Emitter
|
||||
{
|
||||
// Win32 requires 32 bytes of shadow stack in the caller's frame.
|
||||
#ifdef _WIN32
|
||||
static constexpr int SHADOW_STACK_SIZE = 32;
|
||||
#else
|
||||
static constexpr int SHADOW_STACK_SIZE = 0;
|
||||
#endif
|
||||
|
||||
extern void xWrite8(u8 val);
|
||||
extern void xWrite16(u16 val);
|
||||
@@ -401,6 +407,8 @@ namespace x86Emitter
|
||||
pxAssertDev(other.canMapIDTo(4), "Mapping h registers to higher registers can produce unexpected values");
|
||||
}
|
||||
|
||||
static const inline xRegister32& GetInstance(uint id);
|
||||
|
||||
bool operator==(const xRegister32& src) const { return this->Id == src.Id; }
|
||||
bool operator!=(const xRegister32& src) const { return this->Id != src.Id; }
|
||||
};
|
||||
@@ -421,6 +429,8 @@ namespace x86Emitter
|
||||
pxAssertDev(other.canMapIDTo(8), "Mapping h registers to higher registers can produce unexpected values");
|
||||
}
|
||||
|
||||
static const inline xRegister64& GetInstance(uint id);
|
||||
|
||||
bool operator==(const xRegister64& src) const { return this->Id == src.Id; }
|
||||
bool operator!=(const xRegister64& src) const { return this->Id != src.Id; }
|
||||
};
|
||||
@@ -664,6 +674,34 @@ extern const xRegister32
|
||||
#endif
|
||||
}
|
||||
|
||||
const xRegister32& xRegister32::GetInstance(uint id)
|
||||
{
|
||||
static const xRegister32* const m_tbl_x86Regs[] =
|
||||
{
|
||||
&eax, &ecx, &edx, &ebx,
|
||||
&esp, &ebp, &esi, &edi,
|
||||
&r8d, &r9d, &r10d, &r11d,
|
||||
&r12d, &r13d, &r14d, &r15d,
|
||||
};
|
||||
|
||||
pxAssert(id < iREGCNT_GPR);
|
||||
return *m_tbl_x86Regs[id];
|
||||
}
|
||||
|
||||
const xRegister64& xRegister64::GetInstance(uint id)
|
||||
{
|
||||
static const xRegister64* const m_tbl_x86Regs[] =
|
||||
{
|
||||
&rax, &rcx, &rdx, &rbx,
|
||||
&rsp, &rbp, &rsi, &rdi,
|
||||
&r8, &r9, &r10, &r11,
|
||||
&r12, &r13, &r14, &r15
|
||||
};
|
||||
|
||||
pxAssert(id < iREGCNT_GPR);
|
||||
return *m_tbl_x86Regs[id];
|
||||
}
|
||||
|
||||
bool xRegisterSSE::IsCallerSaved(uint id)
|
||||
{
|
||||
#ifdef _WIN32
|
||||
|
||||
@@ -1,75 +0,0 @@
|
||||
/* OnePAD - PCSX2 dev
|
||||
* Copyright (C) 2017-2017
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <mutex>
|
||||
#include <queue>
|
||||
|
||||
template <typename T>
|
||||
class MtQueue
|
||||
{
|
||||
std::queue<T> m_queue;
|
||||
std::mutex m_mtx;
|
||||
|
||||
public:
|
||||
MtQueue()
|
||||
{
|
||||
}
|
||||
|
||||
~MtQueue()
|
||||
{
|
||||
}
|
||||
|
||||
void push(const T &e)
|
||||
{
|
||||
std::lock_guard<std::mutex> guard(m_mtx);
|
||||
m_queue.push(e);
|
||||
}
|
||||
|
||||
size_t size()
|
||||
{
|
||||
std::lock_guard<std::mutex> guard(m_mtx);
|
||||
return m_queue.size();
|
||||
}
|
||||
|
||||
T dequeue()
|
||||
{
|
||||
std::lock_guard<std::mutex> guard(m_mtx);
|
||||
T item = m_queue.front();
|
||||
m_queue.pop();
|
||||
return item;
|
||||
}
|
||||
|
||||
template <typename F>
|
||||
void consume_all(F f)
|
||||
{
|
||||
std::lock_guard<std::mutex> guard(m_mtx);
|
||||
while (!m_queue.empty()) {
|
||||
f(m_queue.front());
|
||||
m_queue.pop();
|
||||
}
|
||||
}
|
||||
|
||||
void reset()
|
||||
{
|
||||
std::lock_guard<std::mutex> guard(m_mtx);
|
||||
while (!m_queue.empty())
|
||||
m_queue.pop();
|
||||
}
|
||||
};
|
||||
@@ -13,6 +13,18 @@
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug Clang|x64">
|
||||
<Configuration>Debug Clang</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Devel Clang|x64">
|
||||
<Configuration>Devel Clang</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release Clang|x64">
|
||||
<Configuration>Release Clang</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
|
||||
<!-- This better belongs in BaseProperies.props, but it needs to be set before the default props file is imported. -->
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>__WIN32__;WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;WINVER=0x0A00;_WIN32_WINNT=0x0A00;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<StructMemberAlignment>16Bytes</StructMemberAlignment>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
@@ -20,6 +19,10 @@
|
||||
<CompileAs>Default</CompileAs>
|
||||
<DisableSpecificWarnings>4063;4100;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
||||
<LanguageStandard>stdcpp17</LanguageStandard>
|
||||
|
||||
<!-- Force ThinLTO for Release builds, MSVC doesn't seem to do it otherwise. -->
|
||||
<!-- Also due to include order, needs to be set here, rather than in CodeGen_Release.props -->
|
||||
<AdditionalOptions Condition="$(Configuration.Contains(Clang)) And $(Configuration.Contains(Release))"> -flto=thin %(AdditionalOptions)</AdditionalOptions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
@@ -29,7 +32,7 @@
|
||||
<Command>"$(SolutionDir)common\vsprops\preBuild.cmd"</Command>
|
||||
</PreBuildEvent>
|
||||
<ResourceCompile>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir);$(SolutionDir)\3rdparty\wxwidgets3.0\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ResourceCompile>
|
||||
</ItemDefinitionGroup>
|
||||
</Project>
|
||||
@@ -10,7 +10,6 @@
|
||||
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||
<EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
|
||||
<PreprocessorDefinitions>PCSX2_DEVEL;PCSX2_DEVBUILD;NDEBUG;_SECURE_SCL_=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
||||
<BufferSecurityCheck>false</BufferSecurityCheck>
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
||||
<OmitFramePointers>true</OmitFramePointers>
|
||||
<EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<PreprocessorDefinitions>NDEBUG;_SECURE_SCL_=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<StringPooling>true</StringPooling>
|
||||
|
||||
@@ -7,10 +7,9 @@
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir);$(SolutionDir)\3rdparty\wxwidgets3.0\include;$(SolutionDir)\3rdparty;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir);$(SolutionDir)\3rdparty;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>__WIN32__;WIN32;_WINDOWS;_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions Condition="'$(Platform)'=='x64'">_ARCH_64=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<StructMemberAlignment>16Bytes</StructMemberAlignment>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
|
||||
@@ -13,5 +13,17 @@
|
||||
<Configuration>Release AVX2</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug Clang AVX2|x64">
|
||||
<Configuration>Debug Clang AVX2</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Devel Clang AVX2|x64">
|
||||
<Configuration>Devel Clang AVX2</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release Clang AVX2|x64">
|
||||
<Configuration>Release Clang AVX2</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user