Este artículo analiza y explica algunas de las funciones principales de renderdoc, incluida la compilación, el inicio de apk, el proceso de biblioteca de enlace opengl es, el proceso de captura de flujo, el proceso de transferencia de archivos rdc desde el dispositivo al host, el proceso de reproducción, org.renderdoc.renderdoccmd.arm64.apk , target apk son respectivamente responsables de las cosas, etc.
Dado que el objeto de la captura y análisis de flujo del autor utilizando renderdoc son los dispositivos móviles Android11 , todos los escenarios se basan en esta descripción y los estudiantes no deben seguir todos los escenarios.
El artículo es relativamente básico y está destinado a lectores principales. Si hay algún problema en el artículo, corríjame. También puede agregar V para comunicarse (1558287830).
Tabla de contenido
Dependencias de instalación y configuración del entorno.
Dependencias de instalación y configuración del entorno.
1. descarga de código
https://github.com/baldurk/renderdoc
2.Configuración del entorno
Desarrollo en base a Ubuntu 18.04. Después de compilarlo en macOS, no puedo hacer clic para reproducir la interfaz de usuario de transmisión. Aún no he analizado por qué, por lo que recomiendo a los principiantes que desarrollen en base a Ubuntu.
ubuntu
Dependencias de instalación y configuración del entorno.
Dado que la compilación requiere la instalación de algunas dependencias, que pueden entrar en conflicto con el entorno local, se recomienda utilizar Docker Ubuntu específicamente como entorno de compilación. Para las dependencias de instalación y la construcción del entorno, consulte la documentación oficial. Luego, todo lo que falte durante la compilación se instalará y estará bien ~
https://github.com/baldurk/renderdoc/blob/v1.x/docs/CONTRIBUTING/Compiling.md
https://github.com/baldurk/renderdoc/blob/v1.x/docs/CONTRIBUTING/Dependencies.md#linux
compilar
En mi script de compilación, las variables de entorno ANDROID_SDK, JAVA_HOME, ANDROID_NDK se pueden modificar según su propio entorno:
#!/bin/bash
#build host
echo "=========> build host"
rm -rf build-android/
export QT_SELECT=qt5
cmake -DCMAKE_BUILD_TYPE=Debug -Bbuild -H.
make -C build -j8
#build apk
sleep 5
echo "=========> build apk"
mkdir build-android
rootDir=$( pwd )
echo "rootDir:"$rootDir
export ANDROID_SDK=/root/Android/Sdk
echo "ANDROID_SDK:"$ANDROID_SDK
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
echo "JAVA_HOME:"$JAVA_HOME
export ANDROID_NDK=$ANDROID_SDK/android-ndk-r14b
echo "ANDROID_NDK:"$ANDROID_NDK
cd $rootDir
cd ./build-android
cmake -DBUILD_ANDROID=On -DANDROID_ABI=armeabi-v7a ..
make -j8
rm CMakeCache.txt
rm cmake_install.cmake
cmake -DBUILD_ANDROID=On -DANDROID_ABI=arm64-v8a ..
make -j8
Abierto
./build/bin/qrenderdoc
Mac OS
Dependencias de instalación y configuración del entorno.
Consulte la documentación oficial:
https://github.com/baldurk/renderdoc/blob/v1.x/docs/CONTRIBUTING/Compiling.md
https://github.com/baldurk/renderdoc/blob/v1.x/docs/CONTRIBUTING/Dependencies.md#linux
Recuerda instalar algunas de las dependencias.
brew install autoconf
brew install automake
brew install qt5
pip install cmake==3.21.1
compilar
Mi script de compilación, ANDROID_SDK, JAVA_HOME, ANDROID_NDK, ANDROID_HOME, las variables de entorno se pueden modificar de acuerdo con su propio entorno:
#!/bin/bash
rootDir=$( pwd )
echo "rootDir:"$rootDir
#build host
echo "=========> build host"
export PATH=/usr/local/opt/qt@5/bin:$PATH
rm -rf build
mkdir -p build
cd ./build
cmake -G Ninja .. -DCMAKE_PREFIX_PATH=$(brew --prefix qt5)
ninja
cd $rootDir
#build apk
sleep 5
echo "=========> build apk"
rm -rf build-android
mkdir -p build-android
cd $rootDir
cd ./build-android
cmake -DBUILD_ANDROID=On -DANDROID_ABI=armeabi-v7a ..
make -j8
rm CMakeCache.txt
rm cmake_install.cmake
cmake -DBUILD_ANDROID=On -DANDROID_ABI=arm64-v8a ..
make -j8
Abierto
abra ./build/bin/qrenderdoc.app/
Empaquetado en dmg
./util/buildscripts/scripts/make_package_macos.sh package_name
#其中,若脚本里边报 REPO_ROOT路径相关的错,直接在里边将其值该成自己的代码路径就ok
Si el empaquetado se realiza correctamente, se generará package_name.dmg debajo del paquete.