[PR #13885] [MERGED] AtlasEngine: Implement support for custom shaders #29807

Open
opened 2026-01-31 09:37:00 +00:00 by claunia · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/microsoft/terminal/pull/13885
Author: @lhecker
Created: 8/30/2022
Status: Merged
Merged: 8/31/2022
Merged by: @lhecker

Base: mainHead: dev/lhecker/atlas-engine-custom-shaders


📝 Commits (10+)

  • 0cfe0ac AtlasEngine: Improve RDP performance
  • 3532e66 Address feedback
  • 5d91693 Merge remote-tracking branch 'origin/main' into dev/lhecker/atlas-engine-rdp
  • da7cdab Fix multiple bugs/issues
  • 3a0438b Address feedback
  • 90cc4b9 Fix a memory leak
  • bc12e2f Treat the given point size exactly
  • 3c359c4 AtlasEngine: Implement support for custom shaders
  • 3ad0da8 whoops
  • b0257bc Merge remote-tracking branch 'origin/main' into dev/lhecker/atlas-engine-custom-shaders

📊 Changes

9 files changed (+421 additions, -78 deletions)

View changed files

📝 samples/PixelShaders/Retro.hlsl (+27 -28)
📝 src/renderer/atlas/AtlasEngine.api.cpp (+22 -9)
📝 src/renderer/atlas/AtlasEngine.cpp (+112 -23)
📝 src/renderer/atlas/AtlasEngine.h (+38 -3)
📝 src/renderer/atlas/AtlasEngine.r.cpp (+96 -10)
📝 src/renderer/atlas/atlas.vcxproj (+24 -2)
src/renderer/atlas/custom_shader_ps.hlsl (+82 -0)
src/renderer/atlas/custom_shader_vs.hlsl (+17 -0)
📝 src/renderer/dx/DxRenderer.cpp (+3 -3)

📄 Description

This commit implements support for custom shaders in AtlasEngine
(experimental.retroTerminalEffect and experimental.pixelShaderPath).
Setting these properties invalidates the device because that made it
the easiest to implement this less often used feature.
The retro shader was slightly rewritten so that it compiles without warnings.

Additionally we noticed that AtlasEngine works well with D3D 10.0 hardware,
so support for that was added bringing feature parity with DxRenderer.

Closes #13853

Validation Steps Performed

  • Default settings (Independent Flip)
  • ClearType (Independent Flip)
  • Retro Terminal Effect (Composed Flip)
  • Use wallpaper as background image (Composed Flip)
    • Running color 40 draws everything red
    • With Retro Terminal Effect

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/microsoft/terminal/pull/13885 **Author:** [@lhecker](https://github.com/lhecker) **Created:** 8/30/2022 **Status:** ✅ Merged **Merged:** 8/31/2022 **Merged by:** [@lhecker](https://github.com/lhecker) **Base:** `main` ← **Head:** `dev/lhecker/atlas-engine-custom-shaders` --- ### 📝 Commits (10+) - [`0cfe0ac`](https://github.com/microsoft/terminal/commit/0cfe0ac16212b35f583984588c8130778ce67054) AtlasEngine: Improve RDP performance - [`3532e66`](https://github.com/microsoft/terminal/commit/3532e665f334f07760aedb886d604f9560312e6a) Address feedback - [`5d91693`](https://github.com/microsoft/terminal/commit/5d9169348dead9e8dea21e76fd3cc021664141fb) Merge remote-tracking branch 'origin/main' into dev/lhecker/atlas-engine-rdp - [`da7cdab`](https://github.com/microsoft/terminal/commit/da7cdabaacd4b85039dcd09c5ab94c3e5fea6960) Fix multiple bugs/issues - [`3a0438b`](https://github.com/microsoft/terminal/commit/3a0438b552549a0480f87367c05b3c2bfea089be) Address feedback - [`90cc4b9`](https://github.com/microsoft/terminal/commit/90cc4b9a3c9fdbf855bf5a4245501f8b2e89f828) Fix a memory leak - [`bc12e2f`](https://github.com/microsoft/terminal/commit/bc12e2fb77793f115d96519d8d70bb6cfb257689) Treat the given point size exactly - [`3c359c4`](https://github.com/microsoft/terminal/commit/3c359c49afe70bd6946dc638393bebb69e5a9a53) AtlasEngine: Implement support for custom shaders - [`3ad0da8`](https://github.com/microsoft/terminal/commit/3ad0da8265626bc79fa3a2612ec3305a19f6ab16) whoops - [`b0257bc`](https://github.com/microsoft/terminal/commit/b0257bc688524a4819ba192baea8f2f1a1f91727) Merge remote-tracking branch 'origin/main' into dev/lhecker/atlas-engine-custom-shaders ### 📊 Changes **9 files changed** (+421 additions, -78 deletions) <details> <summary>View changed files</summary> 📝 `samples/PixelShaders/Retro.hlsl` (+27 -28) 📝 `src/renderer/atlas/AtlasEngine.api.cpp` (+22 -9) 📝 `src/renderer/atlas/AtlasEngine.cpp` (+112 -23) 📝 `src/renderer/atlas/AtlasEngine.h` (+38 -3) 📝 `src/renderer/atlas/AtlasEngine.r.cpp` (+96 -10) 📝 `src/renderer/atlas/atlas.vcxproj` (+24 -2) ➕ `src/renderer/atlas/custom_shader_ps.hlsl` (+82 -0) ➕ `src/renderer/atlas/custom_shader_vs.hlsl` (+17 -0) 📝 `src/renderer/dx/DxRenderer.cpp` (+3 -3) </details> ### 📄 Description This commit implements support for custom shaders in AtlasEngine (`experimental.retroTerminalEffect` and `experimental.pixelShaderPath`). Setting these properties invalidates the device because that made it the easiest to implement this less often used feature. The retro shader was slightly rewritten so that it compiles without warnings. Additionally we noticed that AtlasEngine works well with D3D 10.0 hardware, so support for that was added bringing feature parity with DxRenderer. Closes #13853 ## Validation Steps Performed * Default settings (Independent Flip) ✅ * ClearType (Independent Flip) ✅ * Retro Terminal Effect (Composed Flip) ✅ * Use wallpaper as background image (Composed Flip) ✅ * Running `color 40` draws everything red ✅ * With Retro Terminal Effect ✅ --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
claunia added the pull-request label 2026-01-31 09:37:00 +00:00
Sign in to join this conversation.
No Label pull-request
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#29807