linux separate screen configuration issue
sebastien deries
sebastien.deries at gmail.com
Fri Apr 27 13:33:01 UTC 2018
Greetings,
I develop an application on linux on a Red Hat 6.8 x64 using java 8u162
and an NVidia GPU (and its latest driver), with 2 full HD Screens.
I got an issue retrieving the number of physical screens:
- when the X server is in extended desktop mode (2 physical screens, but
a single logical one from 0 to 3840 pixels), Screen.getScreens() returns 2
Screen (which is normal)
- When the X server is in separate desktop mode (2 physical screens and
2 logical screens from 0 to 1920 pixels), Screen.getScreens() returns 1
Screen ==> is this normal or a bug?
I compared the JavaFX API to the AWT API:
GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice[] gdev = env.getScreenDevices();
AWT returns 2 screen devices in both configuration mode.
I Also checked on java 9 and java 10 using a ubuntu x64 machine and got the
same issue with JavaFX.
I tried debugging this and it seems that the issue is in libglass.so in
native code.
What do you think about this ?
Thank you for your help.
Regards
Sebastien
Here is the code that reproduces the issue:
public class ScreenTest extends Application {
private static final int SIZE = 1600;
private final AnchorPane root = new AnchorPane();
@Override
public void start(Stage primaryStage) throws Exception {
root.backgroundProperty().set(new Background(new
BackgroundFill(Color.BEIGE, null, null)));
Scene scene = new Scene(root, SIZE, SIZE);
primaryStage.show();
Screen.getScreens().forEach(screen -> System.out.println("JAVAFX :"
+ screen));
GraphicsEnvironment env =
GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice[] gdev = env.getScreenDevices();
for (GraphicsDevice d : gdev) {
System.out.println("AWT:" + d);
}
}
public static void main(String... strings) {
launch(strings);
}
}
here is the X11 Xorg.conf:
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0" 0 0
Screen 1 "Screen1" RightOf "Screen0"
InputDevice "Keyboard0" "CoreKeyboard"
InputDevice "Mouse0" "CorePointer"
Option "Xinerama" "0"
EndSection
Section "Files"
EndSection
Section "InputDevice"
# generated from default
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/psaux"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
# generated from default
Identifier "Keyboard0"
Driver "kbd"
EndSection
Section "Monitor"
Identifier "Monitor0"
VendorName "Unknown"
ModelName "CMN"
HorizSync 53.0 - 66.0
VertRefresh 48.0 - 60.0
Option "DPMS"
EndSection
Section "Monitor"
Identifier "Monitor1"
VendorName "Unknown"
ModelName "DELL C7017T"
HorizSync 30.0 - 83.0
VertRefresh 56.0 - 76.0
EndSection
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "Quadro K3100M"
BusID "PCI:1:0:0"
Screen 0
EndSection
Section "Device"
Identifier "Device1"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "Quadro K3100M"
BusID "PCI:1:0:0"
Screen 1
EndSection
More information about the openjfx-dev
mailing list