Commit 0428ab0
committed
drm/i915: Recalculate FBC w/a stride when needed
Currently we're failing to recalculate the gen9 FBC w/a stride
unless something more drastic than just the modifier itself has
changed. This often leaves us with FBC enabled with the linear
fbdev framebuffer without the w/a stride enabled. That will cause
an immediate underrun and FBC will get promptly disabled.
Fix the problem by checking if the w/a stride is about to change,
and go through the full dance if so. This part of the FBC code
is still pretty much a disaster and will need lots more work.
But this should at least fix the immediate issue.
v2: Deactivate FBC when the modifier changes since that will
likely require resetting the w/a CFB stride
Cc: stable@vger.kernel.org
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200711080336.13423-1-ville.syrjala@linux.intel.com
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>1 parent a581483 commit 0428ab0
2 files changed
Lines changed: 27 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
742 | 742 | | |
743 | 743 | | |
744 | 744 | | |
| 745 | + | |
| 746 | + | |
| 747 | + | |
| 748 | + | |
| 749 | + | |
| 750 | + | |
| 751 | + | |
| 752 | + | |
| 753 | + | |
| 754 | + | |
| 755 | + | |
| 756 | + | |
| 757 | + | |
| 758 | + | |
| 759 | + | |
| 760 | + | |
| 761 | + | |
| 762 | + | |
| 763 | + | |
745 | 764 | | |
746 | 765 | | |
747 | 766 | | |
| |||
902 | 921 | | |
903 | 922 | | |
904 | 923 | | |
| 924 | + | |
905 | 925 | | |
906 | 926 | | |
907 | 927 | | |
| |||
931 | 951 | | |
932 | 952 | | |
933 | 953 | | |
| 954 | + | |
| 955 | + | |
| 956 | + | |
934 | 957 | | |
935 | 958 | | |
936 | 959 | | |
| |||
1218 | 1241 | | |
1219 | 1242 | | |
1220 | 1243 | | |
1221 | | - | |
| 1244 | + | |
| 1245 | + | |
1222 | 1246 | | |
1223 | 1247 | | |
1224 | 1248 | | |
| |||
1240 | 1264 | | |
1241 | 1265 | | |
1242 | 1266 | | |
1243 | | - | |
1244 | | - | |
1245 | | - | |
1246 | | - | |
1247 | | - | |
1248 | | - | |
| 1267 | + | |
1249 | 1268 | | |
1250 | 1269 | | |
1251 | 1270 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
442 | 442 | | |
443 | 443 | | |
444 | 444 | | |
| 445 | + | |
445 | 446 | | |
446 | 447 | | |
447 | 448 | | |
| |||
0 commit comments