Valve’s iconic puzzle platformer continues to boggle minds with its mind-bending mechanics, witty humor, and engaging co-op play. This unforgettable adventure arrives on the Steam Deck, where it feels like it was always meant to be. Portal-hopping and brain-teasing are loads of fun on the portable platform, and the battery life is great, to boot! Check out these optimized configurations for the best Portal 2 experience on the Steam Deck, and delve deeper into the Aperture Science Laboratories wherever you may be.
Portal 2 Best Steam Deck Settings
<table style="margin: 1rem auto; color: #ddd; background-color: #23262F; border-radius: 0.5rem; padding: 0; border-collapse: separate;">
<tr bgcolor="#3f434f">
<th colspan="2" style="padding: 0.5rem;">Compatibility Settings</th>
</tr>
<tr>
<td style="padding: 0.5rem">Proton Version</td>
<td style="padding: 0.5rem">Default</td>
</tr>
</table>
Compatibility Settings |
Proton Version |
Default |
It’s funny that so many first-party Valve games have subpar performance on the Steam Deck. Left 4 Dead 2 and DOTA2 both require significant tweaking to get running optimally. CS:GO runs fine but obviously wasn’t made to be played with a controller.
Luckily, Portal 2 runs beautifully out of the box. Its native Linux runtime is great, and you can expect a solid 60 frames per second from beginning to end with zero tinkering.
Recommended — Performance Settings (Native@60fps | ~3h30m)
The recommended settings will get you a silky smooth 60 frames per second at native resolution, so we’ll mostly be sticking to the default configuration. It’s outside of the game and in the Deck’s performance menu where we’ll be making the changes, with our ultimate goal being to maximize battery life without sacrificing visual fidelity.
<table style="margin: 1rem auto; color: #ddd; background-color: #23262F; border-radius: 0.5rem; padding: 0; border-collapse: separate;">
<tr bgcolor="#3f434f">
<th colspan="2" style="padding: 0.5rem;">Video Settings</th>
</tr>
<tr>
<td style="padding: 0.5rem">Aspect Ratio</td>
<td style="padding: 0.5rem">Widescreen 16:10</td>
</tr>
<tr>
<td style="padding: 0.5rem">Resolution</td>
<td style="padding: 0.5rem">1280 x 800 (Native)</td>
</tr>
<tr>
<td style="padding: 0.5rem">Display Mode</td>
<td style="padding: 0.5rem">Full Screen</td>
</tr>
<tr>
<td style="padding: 0.5rem">Laptop Power Savings</td>
<td style="padding: 0.5rem">Disabled</td>
</tr>
<tr bgcolor="#3f434f">
<th colspan="2" style="padding: 0.5rem;">Advanced Video Settings</th>
</tr>
<tr>
<td style="padding: 0.5rem">Anti-Aliasing Mode</td>
<td style="padding: 0.5rem">8x MSAA</td>
</tr>
<tr>
<td style="padding: 0.5rem">Filtering Mode</td>
<td style="padding: 0.5rem">Anisotropic 16X</td>
</tr>
<tr>
<td style="padding: 0.5rem">Wait for Vertical Sync</td>
<td style="padding: 0.5rem">Disabled</td>
</tr>
<tr>
<td style="padding: 0.5rem">Multicore Rendering</td>
<td style="padding: 0.5rem">Enabled</td>
</tr>
<tr>
<td style="padding: 0.5rem">Shader Detail</td>
<td style="padding: 0.5rem">Very High</td>
</tr>
<tr>
<td style="padding: 0.5rem">Effect Detail</td>
<td style="padding: 0.5rem">High</td>
</tr>
<tr>
<td style="padding: 0.5rem">Model/Texture Detail</td>
<td style="padding: 0.5rem">High</td>
</tr>
<tr>
<td style="padding: 0.5rem">Paged Pool Memory Available</td>
<td style="padding: 0.5rem">High</td>
</tr>
</table>
Video Settings |
Aspect Ratio |
Widescreen 16:10 |
Resolution |
1280 x 800 (Native) |
Display Mode |
Full Screen |
Laptop Power Savings |
Disabled |
Advanced Video Settings |
Anti-Aliasing Mode |
8x MSAA |
Filtering Mode |
Anisotropic 16X |
Wait for Vertical Sync |
Disabled |
Multicore Rendering |
Enabled |
Shader Detail |
Very High |
Effect Detail |
High |
Model/Texture Detail |
High |
Paged Pool Memory Available |
High |
<table style="margin: 1rem auto; color: #ddd; background-color: #23262F; border-radius: 0.5rem; padding: 0; border-collapse: separate;">
<tr bgcolor="#3f434f">
<th colspan="2" style="padding: 0.5rem;">Steam Deck Performance Menu Settings</th>
</tr>
<tr>
<td style="padding: 0.5rem">Refresh Rate</td>
<td style="padding: 0.5rem">60</td>
</tr>
<tr>
<td style="padding: 0.5rem">Framerate Limit</td>
<td style="padding: 0.5rem">60</td>
</tr>
<tr>
<td style="padding: 0.5rem">Allow Tearing</td>
<td style="padding: 0.5rem">On</td>
</tr>
<tr>
<td style="padding: 0.5rem">Half Rate Shading</td>
<td style="padding: 0.5rem">Off</td>
</tr>
<tr>
<td style="padding: 0.5rem">Thermal Power (TDP) Limit</td>
<td style="padding: 0.5rem">On</td>
</tr>
<tr>
<td style="padding: 0.5rem">Watts</td>
<td style="padding: 0.5rem">8</td>
</tr>
<tr>
<td style="padding: 0.5rem">Manual GPU Clock Control</td>
<td style="padding: 0.5rem">On</td>
</tr>
<tr>
<td style="padding: 0.5rem">GPU Frequency</td>
<td style="padding: 0.5rem">800MHz</td>
</tr>
<tr>
<td style="padding: 0.5rem">Scaling Filter</td>
<td style="padding: 0.5rem">Linear</td>
</tr>
</table>
Steam Deck Performance Menu Settings |
Refresh Rate |
60 |
Framerate Limit |
60 |
Allow Tearing |
On |
Half Rate Shading |
Off |
Thermal Power (TDP) Limit |
On |
Watts |
8 |
Manual GPU Clock Control |
On |
GPU Frequency |
800MHz |
Scaling Filter |
Linear |
Battery-saving Settings (Native@40fps | ~4h)
It’s wild just how well-optimized Portal 2 is on the Steam Deck. We can easily add another half hour to the playtime just by lowering the system’s refresh rate to 40Hz, turning on Laptop Power Savings in the in-game settings, and setting the Steam Deck’s TDP to 6 Watts. Everything else is exactly as the settings in the previous configuration. Enjoy the extra battery life!
<table style="margin: 1rem auto; color: #ddd; background-color: #23262F; border-radius: 0.5rem; padding: 0; border-collapse: separate;">
<tr bgcolor="#3f434f">
<th colspan="2" style="padding: 0.5rem;">Video Settings</th>
</tr>
<tr>
<td style="padding: 0.5rem">Aspect Ratio</td>
<td style="padding: 0.5rem">Widescreen 16:10</td>
</tr>
<tr>
<td style="padding: 0.5rem">Resolution</td>
<td style="padding: 0.5rem">1280 x 800 (Native)</td>
</tr>
<tr>
<td style="padding: 0.5rem">Display Mode</td>
<td style="padding: 0.5rem">Full Screen</td>
</tr>
<tr>
<td style="padding: 0.5rem">Laptop Power Savings</td>
<td style="padding: 0.5rem">Enabled</td>
</tr>
<tr bgcolor="#3f434f">
<th colspan="2" style="padding: 0.5rem;">Advanced Video Settings</th>
</tr>
<tr>
<td style="padding: 0.5rem">Anti-Aliasing Mode</td>
<td style="padding: 0.5rem">8x MSAA</td>
</tr>
<tr>
<td style="padding: 0.5rem">Filtering Mode</td>
<td style="padding: 0.5rem">Anisotropic 16X</td>
</tr>
<tr>
<td style="padding: 0.5rem">Wait for Vertical Sync</td>
<td style="padding: 0.5rem">Disabled</td>
</tr>
<tr>
<td style="padding: 0.5rem">Multicore Rendering</td>
<td style="padding: 0.5rem">Enabled</td>
</tr>
<tr>
<td style="padding: 0.5rem">Shader Detail</td>
<td style="padding: 0.5rem">Very High</td>
</tr>
<tr>
<td style="padding: 0.5rem">Effect Detail</td>
<td style="padding: 0.5rem">High</td>
</tr>
<tr>
<td style="padding: 0.5rem">Model/Texture Detail</td>
<td style="padding: 0.5rem">High</td>
</tr>
<tr>
<td style="padding: 0.5rem">Paged Pool Memory Available</td>
<td style="padding: 0.5rem">High</td>
</tr>
</table>
Video Settings |
Aspect Ratio |
Widescreen 16:10 |
Resolution |
1280 x 800 (Native) |
Display Mode |
Full Screen |
Laptop Power Savings |
Enabled |
Advanced Video Settings |
Anti-Aliasing Mode |
8x MSAA |
Filtering Mode |
Anisotropic 16X |
Wait for Vertical Sync |
Disabled |
Multicore Rendering |
Enabled |
Shader Detail |
Very High |
Effect Detail |
High |
Model/Texture Detail |
High |
Paged Pool Memory Available |
High |
<table style="margin: 1rem auto; color: #ddd; background-color: #23262F; border-radius: 0.5rem; padding: 0; border-collapse: separate;">
<tr bgcolor="#3f434f">
<th colspan="2" style="padding: 0.5rem;">Steam Deck Performance Menu Settings</th>
</tr>
<tr>
<td style="padding: 0.5rem">Refresh Rate</td>
<td style="padding: 0.5rem">40</td>
</tr>
<tr>
<td style="padding: 0.5rem">Framerate Limit</td>
<td style="padding: 0.5rem">40</td>
</tr>
<tr>
<td style="padding: 0.5rem">Allow Tearing</td>
<td style="padding: 0.5rem">On</td>
</tr>
<tr>
<td style="padding: 0.5rem">Half Rate Shading</td>
<td style="padding: 0.5rem">Off</td>
</tr>
<tr>
<td style="padding: 0.5rem">Thermal Power (TDP) Limit</td>
<td style="padding: 0.5rem">On</td>
</tr>
<tr>
<td style="padding: 0.5rem">Watts</td>
<td style="padding: 0.5rem">6</td>
</tr>
<tr>
<td style="padding: 0.5rem">Manual GPU Clock Control</td>
<td style="padding: 0.5rem">Off</td>
</tr>
<tr>
<td style="padding: 0.5rem">Scaling Filter</td>
<td style="padding: 0.5rem">Linear</td>
</tr>
</table>
Steam Deck Performance Menu Settings |
Refresh Rate |
40 |
Framerate Limit |
40 |
Allow Tearing |
On |
Half Rate Shading |
Off |
Thermal Power (TDP) Limit |
On |
Watts |
6 |
Manual GPU Clock Control |
Off |
Scaling Filter |
Linear |