vsync

Qt: vsync - missing rendered frames

自古美人都是妖i 提交于 2019-12-24 00:59:48
问题 for a scientific task, flickering areas with a stable frequency (max. 60 Hz), shall be displayed on the screen. I tried to achieve a stable stimulus visualization using Qt 5.6. According to this blog entry and many other online recommendations, I realized three different approaches: Inheriting from QWindow Class, QOpenGLWindow Class and QRasterWindow Class. I wanted to get the advantage of vsync and avoid the usage of QTimer. The flickering area can be displayed. Also a stable time period

Smooth Drawing using Java2d without the Opengl or Direct3d Pipelines?

故事扮演 提交于 2019-12-23 20:32:34
问题 I can't figure out a way to get smooth movement or animation of anything using Java2d when the opengl and direct3d pipelines are disabled (by invoking the vm with -Dsun.java2d.d3d=false and -Dsun.java2d.opengl=false) The quick and dirty code below demonstrates my problem. It draws a box that moves across the screen. The box location is updated about 60 times per second and the screen is redrawn as many times as possible. It uses the BufferStrategy class to implement double buffering; the flip

Is there anyway to know when the screen has been updated/refreshed (OpenGL or DirectX maybe?)

﹥>﹥吖頭↗ 提交于 2019-12-22 18:29:16
问题 I currently have an application I'm writing in c# (using .NET) that requires me to start a timer as soon as a user sees an image on screen up until they respond with a key press. Now I realise that practically this is very difficult given the monitor input lag and response time, the time the keyboard takes to physically send the message, the OS to process it, etc. But I'm trying my best to reduce it down to mostly a constant error (the response time results will be used to compare one user to

How do you know what you've displayed is completely drawn on screen?

左心房为你撑大大i 提交于 2019-12-22 09:56:19
问题 Displaying images on a computer monitor involves the usage of a graphic API, which dispatches a series of asynchronous calls... and at some given time, put the wanted stuff on the computer screen. But, what if you are interested in knowing the exact CPU time at the point where the required image is fully drawn (and visible to the user)? I really need to grab a CPU timestamp when everything is displayed to relate this point in time to other measurements I take. Without taking account of the

LCD 时间参数与crt显示器联系

浪尽此生 提交于 2019-12-22 00:26:28
如果将 LCD 显示一帧图像的过程想象成绘画,那么在显示的过程中就是用一根“笔”在不同的像素点画上不同的颜色。这根笔按照从左至右、从上到下的顺序扫描每个像素点,并且在像素画上对应的颜色,当画到最后一个像素点的时候一幅图像就绘制好了。假如一个 LCD 的分辨率为 1024 * 600 LCD 是怎么扫描显示一帧图像的。一帧图像也是由一行一行组成的。 HSYNC 是水平同步信号,也叫做行同步信号,当产生此信号的话就表示开始显示新的一行了,所以此信号都是在图最左边。当 VSYNC 信号是垂直同步信号,也叫做帧同步信号,当产生此信号的话就表示开始显示新的一帧图像了 可以看到有一圈“黑边”,真正有效的显示区域是中间的白色部分。那这一圈“黑边”是什么东西呢?这就要从显示器的“祖先” CRT 显示器开始说起了, CRT 显示器*就是以前很常见的那种大屁股显示器,在 2019 年应该很少见了,如果在农村应该还是可以见到的。CRT 显示器屁股后面是个电子枪,这个电子枪就是我们上面说的“画笔”,电子枪打出的电子撞击到屏幕上的荧光物质使其发光。只要控制电子枪从左到右扫打万一行(也就是扫描一行),然后从上到下扫描完所有行,这样一帧图像就显示出来了。也就是说,显示一帧图像电子枪是按照‘Z’形在运动,当扫描速度很快的时候看起来就是一幅完成的画面了。 当显示完一行以后会发出 HSYNC 信号,此时电子枪就会关闭

Understanding necessity of Android VSYNC signals

做~自己de王妃 提交于 2019-12-18 10:29:36
问题 I'm trying to get a better understanding of the Android display subsystem, but one item that's still confusing to me is how VSYNC signals are handled, and why so many exist in the first place. Android is designed to use VSYNC at its core, but there are multiple VSYNC signals that it employs. Via https://source.android.com/devices/graphics/implement.html in the "VSYNC Offset" section, there is a flow diagram which diagrams three VSYNC signals: HW_VSYNC_0, VSYNC, and SF-VSYNC. I understand that

Why is Java drawing slow on a new PC? - VSYNC?

纵饮孤独 提交于 2019-12-13 05:18:55
问题 Running a Java drawing benchmark on a new PC (Core i7-4820K 3.7 GHz, Asus P9X79 LE, GeForce GTX 650, Windows 8.1 and Ubuntu 14.04) appeared to run using vsync at around 60 FPS via Windows with Java RTE 1.7.0_65 . Then, on one later occasion, ran at an expected 400+ FPS, based on speeds on other PCs. Now it is back to 60 FPS. CPU utilisation is almost 0% with GPU at <10% on the lightest test. A new graphics driver made no difference. The same class file obtains 400 FPS via Ubuntu with linux

Display image with qt & opengl, timing accuracy and vsync issues, c++

佐手、 提交于 2019-12-12 03:35:19
问题 I'm building a module that is supposed to display images at a certain rate (not pre defined, but not very high - 10Hz max for the swapping of images). From my research I got to the conclusion that QGLWidget is the right tool for this task, after enabling vsync with openGL calls(SwapInterval family). Yet, I am not sure how to actually implement the swapping mechanisem - should I use a timer? If I set a timer for 333.3 ms(3 Hz), when the refresh rate is 60 Hz (16.67 per cycle, thus the timer is

Trouble with vsync using glut in OpenGL

拟墨画扇 提交于 2019-12-10 00:03:20
问题 I'm struggling desperately to get Vsync to work in my OpenGL application. Here's the vital stats: I'm using Windows, coding in C++ OpenGL and I'm using FreeGLUT for my OpenGL context (double buffering). I'm aware that for the swap buffer to wait for vertical sync in Windows you are required to call wglSwapIntervalEXT(). My code does call this (as you'll see below), yet I am still getting vertical tearing. The only way I've managed to stop it is by calling glFinish() which of course has a

Using SwapBuffers() with multiple OpenGL canvases and vertical sync?

狂风中的少年 提交于 2019-12-08 20:02:59
I have a GUI written using wxPython that contains two GLCanvas es, a 'display' canvas and a 'preview' canvas onto which I am drawing some very simple geometry using PyOpenGL. The 'preview' and 'display' canvases display the contents of the same framebuffer: I need both of these canvases to be updated synchronously at a consistent framerate with no tearing. So far I have just been calling self.SetCurrent() # draw stuff... self.SwapBuffers() for both the preview and display canvases within my rendering loop. This works reasonably well provided that I disable vsync in my driver settings. However,