86 lines
2.5 KiB
Bash
Executable File
86 lines
2.5 KiB
Bash
Executable File
#!/bin/bash
|
|
# Comprehensive AMD GPU Performance Fix for Benchmarking
|
|
|
|
# Colors for output
|
|
RED='\033[0:31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m' # No Color
|
|
|
|
echo -e "${GREEN}=== AMD RX 6900 XT Benchmark Performance Fix ===${NC}"
|
|
echo ""
|
|
|
|
# Find the AMD GPU
|
|
GPU_PATH=""
|
|
for card in /sys/class/drm/card[0-9]; do
|
|
if [ -f "$card/device/power_dpm_force_performance_level" ]; then
|
|
GPU_PATH="$card/device"
|
|
GPU_CARD=$(basename $(dirname $GPU_PATH))
|
|
break
|
|
fi
|
|
done
|
|
|
|
if [ -z "$GPU_PATH" ]; then
|
|
echo -e "${RED}ERROR: Could not find AMD GPU!${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
echo -e "${GREEN}Found GPU at: $GPU_PATH${NC}"
|
|
echo ""
|
|
|
|
# Show current state
|
|
echo "=== BEFORE ==="
|
|
echo "Performance Level: $(cat $GPU_PATH/power_dpm_force_performance_level)"
|
|
echo "Core Clock:"
|
|
cat $GPU_PATH/pp_dpm_sclk | grep "\*"
|
|
echo "Memory Clock:"
|
|
cat $GPU_PATH/pp_dpm_mclk | grep "\*"
|
|
echo ""
|
|
|
|
# Apply fixes
|
|
echo -e "${YELLOW}Applying performance fixes...${NC}"
|
|
|
|
# 1. Set performance level to high
|
|
echo "high" | sudo tee $GPU_PATH/power_dpm_force_performance_level > /dev/null
|
|
echo "✓ Set performance level to HIGH"
|
|
|
|
# 2. Force highest core clock
|
|
echo "2" | sudo tee $GPU_PATH/pp_dpm_sclk > /dev/null
|
|
echo "✓ Forced highest core clock (2600MHz)"
|
|
|
|
# 3. Force highest memory clock
|
|
echo "3" | sudo tee $GPU_PATH/pp_dpm_mclk > /dev/null
|
|
echo "✓ Forced highest memory clock (2000MHz effective)"
|
|
|
|
# 4. Set power limit to maximum if available
|
|
if [ -f "$GPU_PATH/hwmon/hwmon*/power1_cap_max" ]; then
|
|
MAX_POWER=$(cat $GPU_PATH/hwmon/hwmon*/power1_cap_max)
|
|
echo "$MAX_POWER" | sudo tee $GPU_PATH/hwmon/hwmon*/power1_cap > /dev/null 2>&1
|
|
echo "✓ Set power limit to maximum"
|
|
fi
|
|
|
|
echo ""
|
|
echo "=== AFTER ==="
|
|
echo "Performance Level: $(cat $GPU_PATH/power_dpm_force_performance_level)"
|
|
echo "Core Clock:"
|
|
cat $GPU_PATH/pp_dpm_sclk | grep "\*"
|
|
echo "Memory Clock:"
|
|
cat $GPU_PATH/pp_dpm_mclk | grep "\*"
|
|
echo ""
|
|
|
|
echo -e "${GREEN}GPU is now at maximum performance!${NC}"
|
|
echo ""
|
|
echo -e "${YELLOW}Additional tips:${NC}"
|
|
echo "1. Close all background applications"
|
|
echo "2. Make sure Sway compositor isn't limiting FPS"
|
|
echo "3. Run benchmark in fullscreen mode"
|
|
echo "4. Check CPU governor is set to 'performance'"
|
|
echo ""
|
|
echo "To check CPU governor:"
|
|
echo " cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor | head -1"
|
|
echo ""
|
|
echo "To set CPU to performance mode:"
|
|
echo " echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor"
|
|
echo ""
|
|
echo -e "${GREEN}Now run your benchmark!${NC}"
|