mirror of
https://github.com/microsoft/terminal.git
synced 2025-12-19 18:11:39 -05:00
AtlasEngine: Make Direct2D/3D and Present1 configurable (#16939)
This implements `SetForceFullRepaintRendering` and adds a new `SetGraphicsAPI` function. The former toggles `Present1` on and off and the latter allows users to explicitly request Direct2D/3D. On top of these changes I did a minor cleanup of the interface, because now that DxRenderer is gone we don't need all that anymore. Closes #14254 Closes #16747 ## Validation Steps Performed * Toggling Direct2D on/off changes colored ligature support ✅ * Toggling Present1 on/off can be observed in a debugger ✅ * Toggling WARP on/off changes GPU metrics ✅ --------- Co-authored-by: Dustin L. Howett <duhowett@microsoft.com>
This commit is contained in:
@@ -2332,12 +2332,20 @@
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"experimental.rendering.forceFullRepaint": {
|
||||
"description": "When set to true, we will redraw the entire screen each frame. When set to false, we will render only the updates to the screen between frames.",
|
||||
"rendering.graphicsAPI": {
|
||||
"description": "Direct3D 11 provides a more performant and feature-rich experience, whereas Direct2D is more stable. The default option \"Automatic\" will pick the API that best fits your graphics hardware. If you experience significant issues, consider using Direct2D.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"direct2d",
|
||||
"direct3d11"
|
||||
]
|
||||
},
|
||||
"rendering.disablePartialInvalidation": {
|
||||
"description": "By default, the text renderer uses a FLIP_SEQUENTIAL Swap Chain and declares dirty rectangles via the Present1 API. When this setting is enabled, a FLIP_DISCARD Swap Chain will be used instead, and no dirty rectangles will be declared. Whether one or the other is better depends on your hardware and various other factors.",
|
||||
"type": "boolean"
|
||||
},
|
||||
"experimental.rendering.software": {
|
||||
"description": "When set to true, we will use the software renderer (a.k.a. WARP) instead of the hardware one.",
|
||||
"rendering.software": {
|
||||
"description": "When enabled, the terminal will use a software rasterizer (WARP). This setting should be left disabled under almost all circumstances.",
|
||||
"type": "boolean"
|
||||
},
|
||||
"experimental.input.forceVT": {
|
||||
|
||||
Reference in New Issue
Block a user