소스 검색

Handle case of no available CRTCs.

Camilla Berglund 11 년 전
부모
커밋
5ed23e593c
2개의 변경된 파일5개의 추가작업 그리고 1개의 파일을 삭제
  1. 2 0
      README.md
  2. 3 1
      src/x11_gamma.c

+ 2 - 0
README.md

@@ -50,6 +50,8 @@ The following dependencies are needed by the examples and test programs:
  - [Cocoa] Bugfix: Using a 1x1 cursor for hidden mode caused some screen
  - [Cocoa] Bugfix: Using a 1x1 cursor for hidden mode caused some screen
                    recorders to fail
                    recorders to fail
  - [X11] Bugfix: The case of finding no usable CRTCs was not detected
  - [X11] Bugfix: The case of finding no usable CRTCs was not detected
+ - [X11] Bugfix: Detection of broken Nvidia RandR gamma support did not verify
+                 that at least one CRTC was present
 
 
 
 
 ## Contact
 ## Contact

+ 3 - 1
src/x11_gamma.c

@@ -43,10 +43,12 @@ void _glfwInitGammaRamp(void)
         XRRScreenResources* rr = XRRGetScreenResources(_glfw.x11.display,
         XRRScreenResources* rr = XRRGetScreenResources(_glfw.x11.display,
                                                        _glfw.x11.root);
                                                        _glfw.x11.root);
 
 
-        if (XRRGetCrtcGammaSize(_glfw.x11.display, rr->crtcs[0]) == 0)
+        if (!rr->ncrtc || !XRRGetCrtcGammaSize(_glfw.x11.display, rr->crtcs[0]))
         {
         {
             // This is probably older Nvidia RandR with broken gamma support
             // This is probably older Nvidia RandR with broken gamma support
             // Flag it as useless and fall back to Xf86VidMode, if available
             // Flag it as useless and fall back to Xf86VidMode, if available
+            _glfwInputError(GLFW_PLATFORM_ERROR,
+                            "X11: RandR gamma ramp support seems broken");
             _glfw.x11.randr.gammaBroken = GL_TRUE;
             _glfw.x11.randr.gammaBroken = GL_TRUE;
         }
         }