summaryrefslogtreecommitdiffstats
path: root/lib/Xconfig/various.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Xconfig/various.pm')
-rw-r--r--lib/Xconfig/various.pm20
1 files changed, 16 insertions, 4 deletions
diff --git a/lib/Xconfig/various.pm b/lib/Xconfig/various.pm
index 965af92..c5cae19 100644
--- a/lib/Xconfig/various.pm
+++ b/lib/Xconfig/various.pm
@@ -151,10 +151,22 @@ sub config {
}
if (exists $various->{EXA}) {
- if ($various->{EXA}) {
- $card->{Options}{AccelMethod} = 'EXA';
- } else {
- delete $card->{Options}{AccelMethod};
+ if ($card->{Driver} eq 'intel') {
+ # the intel driver is able to automatically pick UXA/EXA
+ # when xorg.conf has no accel method defined, but XAA
+ # has to be explicitly selected, that's why the logic
+ # is reversed compared to the other drivers
+ if ($various->{EXA}) {
+ delete $card->{Options}{AccelMethod};
+ } else {
+ $card->{Options}{AccelMethod} = 'XAA';
+ }
+ } else {
+ if ($various->{EXA}) {
+ $card->{Options}{AccelMethod} = 'EXA';
+ } else {
+ delete $card->{Options}{AccelMethod};
+ }
}
}