--- Begin Message ---
- To: Debian Bug Tracking System <submit@bugs.debian.org>
- Subject: xserver-xorg-video-intel: synchronization with virtical refresh broken after suspend to ram
- From: Jens Thiele <karme@berlios.de>
- Date: Mon, 07 Jul 2008 14:28:57 +0200
- Message-id: <87vdzhvpx2.fsf@thialfi.karme-net.hirschau>
Package: xserver-xorg-video-intel
Version: 2:2.3.2-2
Severity: normal
Starting with version 2:2.3.2-1 synchronization with virtical refresh
finally works! There is only a minor glitch: after suspend to ram it is
broken: The buffers are swapped at the wrong time.
#!/bin/sh
#| -*- mode: scheme; coding: utf-8; -*- |#
:; exec gosh -A/home/jens/develop/scripts -- $0 "$@"
;;
;; vblank test. This program is in the public domain.
(use gl)
(use gl.glut)
(define *frames* 0)
(define *offset* 0)
(define *t0* 0)
(define *width* 0)
(define *height* 0)
(define (draw)
(gl-clear GL_COLOR_BUFFER_BIT)
(gl-push-matrix)
(gl-color 1 1 1)
(gl-translate *offset* 0 0)
(gl-begin GL_QUADS)
(gl-vertex 0 0)
(gl-vertex 0 *height*)
(let1 w (+ (quotient *width* 100) 1)
(gl-vertex w *height*)
(gl-vertex w 0)
(gl-end)
(gl-pop-matrix)
(glut-swap-buffers)
(inc! *frames*)
(set! *offset* (fmod (+ 4 *offset*) *width*))
;;(set! *offset* (modulo (+ (floor (* w 100)) *offset*) *width*)))
)
(let1 t (glut-get GLUT_ELAPSED_TIME)
(when (>= (- t *t0*) 5000)
(let1 seconds (/ (- t *t0*) 1000.0)
(print #`",*frames* in ,seconds seconds = ,(/ *frames* seconds) FPS")
(set! *t0* t)
(set! *frames* 0)))))
;; new window size or exposure
(define (reshape width height)
(set! *width* width)
(set! *height* height)
;;*** OpenGL BEGIN ***
(gl-viewport 0 0 width height)
(gl-matrix-mode GL_PROJECTION)
(gl-load-identity)
(gl-ortho 0 width 0 height 0 100)
(gl-matrix-mode GL_MODELVIEW)
(gl-load-identity)
;;*** OpenGL END ***
)
(define (init)
(newline)
(print #`"GL_RENDERER = ,(gl-get-string GL_RENDERER)")
(print #`"GL_VERSION = ,(gl-get-string GL_VERSION)")
(print #`"GL_VENDOR = ,(gl-get-string GL_VENDOR)")
(print #`"GL_EXTENSIONS = ,(gl-get-string GL_EXTENSIONS)")
(newline)
#|(gl-enable GL_BLEND)
(gl-enable GL_LINE_SMOOTH)
(gl-enable GL_POLYGON_SMOOTH)|#
)
;; change view angle, exit upon ESC
(define (key k x y)
(let1 q (lambda () (glut-post-redisplay))
(cond
((= k (char->integer #\escape)) (exit)))))
(define (visible vis)
(if (= vis GLUT_VISIBLE)
(glut-idle-func glut-post-redisplay)
(glut-idle-func #f)))
(define (main args)
(glut-init args)
(glut-init-display-mode (logior GLUT_DOUBLE GLUT_RGB))
(glut-create-window "vblank test")
(init)
(glut-display-func draw)
(glut-reshape-func reshape)
(glut-keyboard-func key)
(glut-visibility-func visible)
(glut-main-loop)
0)
(main '())
-- System Information:
Debian Release: lenny/sid
APT prefers testing
APT policy: (990, 'testing'), (500, 'proposed-updates'), (500, 'stable')
Architecture: i386 (i686)
Kernel: Linux 2.6.24-1-686 (SMP w/2 CPU cores)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages xserver-xorg-video-intel depends on:
ii libc6 2.7-10 GNU C Library: Shared libraries
ii libdrm2 2.3.0-4 Userspace interface to kernel DRM
ii xserver-xorg-core 2:1.4.2-1 Xorg X server - core server
xserver-xorg-video-intel recommends no packages.
-- no debconf information
--- End Message ---