1
0
Fork 0
forked from wry/wry

metal: implement tearing

This commit is contained in:
Julian Orth 2024-07-18 15:04:02 +02:00
parent d355059ad9
commit 49f6304716
31 changed files with 726 additions and 51 deletions

View file

@ -581,6 +581,10 @@
"vrr": {
"description": "Configures the default VRR settings.\n\nThis can be overwritten for individual outputs.\n\nBy default, the VRR mode is `never` and the cursor refresh rate is unbounded.\n\n- Example:\n \n ```toml\n vrr = { mode = \"always\", cursor-hz = 90 }\n ```\n",
"$ref": "#/$defs/Vrr"
},
"tearing": {
"description": "Configures the default tearing settings.\n\nThis can be overwritten for individual outputs.\n\nBy default, the tearing mode is `variant3`.\n\n- Example:\n\n ```toml\n tearing.mode = \"never\"\n ```\n",
"$ref": "#/$defs/Tearing"
}
},
"required": []
@ -1031,6 +1035,10 @@
"vrr": {
"description": "Configures the VRR settings of this output.\n\nBy default, the VRR mode is `never` and the cursor refresh rate is unbounded.\n\n- Example:\n\n ```toml\n [[outputs]]\n match.serial-number = \"33K03894SL0\"\n vrr = { mode = \"always\", cursor-hz = 90 }\n ```\n",
"$ref": "#/$defs/Vrr"
},
"tearing": {
"description": "Configures the tearing settings of this output.\n\nBy default, the tearing mode is `variant3`.\n\n- Example:\n\n ```toml\n [[outputs]]\n match.serial-number = \"33K03894SL0\"\n tearing.mode = \"never\"\n ```\n",
"$ref": "#/$defs/Tearing"
}
},
"required": [
@ -1148,6 +1156,28 @@
"exec"
]
},
"Tearing": {
"description": "Describes tearing settings.\n\n- Example:\n\n ```toml\n tearing.mode = \"never\"\n ```\n",
"type": "object",
"properties": {
"mode": {
"description": "The tearing mode.",
"$ref": "#/$defs/TearingMode"
}
},
"required": []
},
"TearingMode": {
"type": "string",
"description": "The tearing mode of an output.\n\n- Example:\n\n ```toml\n tearing.mode = \"never\"\n ```\n",
"enum": [
"always",
"never",
"variant1",
"variant2",
"variant3"
]
},
"Theme": {
"description": "The theme of the compositor.\n",
"type": "object",

View file

@ -1126,6 +1126,22 @@ The table has the following fields:
The value of this field should be a [Vrr](#types-Vrr).
- `tearing` (optional):
Configures the default tearing settings.
This can be overwritten for individual outputs.
By default, the tearing mode is `variant3`.
- Example:
```toml
tearing.mode = "never"
```
The value of this field should be a [Tearing](#types-Tearing).
<a name="types-Connector"></a>
### `Connector`
@ -2198,6 +2214,22 @@ The table has the following fields:
The value of this field should be a [Vrr](#types-Vrr).
- `tearing` (optional):
Configures the tearing settings of this output.
By default, the tearing mode is `variant3`.
- Example:
```toml
[[outputs]]
match.serial-number = "33K03894SL0"
tearing.mode = "never"
```
The value of this field should be a [Tearing](#types-Tearing).
<a name="types-OutputMatch"></a>
### `OutputMatch`
@ -2532,6 +2564,66 @@ The table has the following fields:
The value of this field should be a string.
<a name="types-Tearing"></a>
### `Tearing`
Describes tearing settings.
- Example:
```toml
tearing.mode = "never"
```
Values of this type should be tables.
The table has the following fields:
- `mode` (optional):
The tearing mode.
The value of this field should be a [TearingMode](#types-TearingMode).
<a name="types-TearingMode"></a>
### `TearingMode`
The tearing mode of an output.
- Example:
```toml
tearing.mode = "never"
```
Values of this type should be strings.
The string should have one of the following values:
- `always`:
Tearing is never enabled.
- `never`:
Tearing is always enabled.
- `variant1`:
Tearing is enabled when one or more applications are displayed fullscreen.
- `variant2`:
Tearing is enabled when a single application is displayed fullscreen.
- `variant3`:
Tearing is enabled when a single application is displayed and the application has
requested tearing.
<a name="types-Theme"></a>
### `Theme`

View file

@ -1573,6 +1573,21 @@ Output:
match.serial-number = "33K03894SL0"
vrr = { mode = "always", cursor-hz = 90 }
```
tearing:
ref: Tearing
required: false
description: |
Configures the tearing settings of this output.
By default, the tearing mode is `variant3`.
- Example:
```toml
[[outputs]]
match.serial-number = "33K03894SL0"
tearing.mode = "never"
```
Transform:
@ -2180,6 +2195,21 @@ Config:
```toml
vrr = { mode = "always", cursor-hz = 90 }
```
tearing:
ref: Tearing
required: false
description: |
Configures the default tearing settings.
This can be overwritten for individual outputs.
By default, the tearing mode is `variant3`.
- Example:
```toml
tearing.mode = "never"
```
Idle:
@ -2367,3 +2397,45 @@ VrrHz:
description: The string `none` can be used to disable the limiter.
- kind: number
description: The refresh rate in HZ.
Tearing:
kind: table
description: |
Describes tearing settings.
- Example:
```toml
tearing.mode = "never"
```
fields:
mode:
ref: TearingMode
required: false
description: The tearing mode.
TearingMode:
description: |
The tearing mode of an output.
- Example:
```toml
tearing.mode = "never"
```
kind: string
values:
- value: always
description: Tearing is never enabled.
- value: never
description: Tearing is always enabled.
- value: variant1
description: Tearing is enabled when one or more applications are displayed fullscreen.
- value: variant2
description: Tearing is enabled when a single application is displayed fullscreen.
- value: variant3
description: |
Tearing is enabled when a single application is displayed and the application has
requested tearing.