- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
glGetInteger64v(GL_TIMESTAMP, ...) still broken on Vega
In old drivers there was a bug in getting the current GPU time on Vega GPUs, as described also here:
glGetInteger64v(GL_TIMESTAMP, ...) broken on Vega
This was fixed in later drivers, but the behavior is still not correct. Using the following code fragment:
//create a query objectGLuint qry;glGenQueries(1, &qry);//get current GPU time on the CPU, synchronous callGLint64 vcpu;glGetInteger64v(GL_TIMESTAMP, &vcpu);//push a timestamp queryglQueryCounter(qry, GL_TIMESTAMP);//fetch the timestamp value immediately//normally this would be done only later after a fence, but the bug shows this way tooGLuint64 v;glGetQueryObjectui64v(qry, GL_QUERY_RESULT, &v);//this fails on Vega, (19.10.1 checked)assert(v >= vcpu);
Note this technique is used to measure pipeline latency and is described also in OpenGL Superbible by Graham Sellers.
The time returned by the glGetInteger64v(GL_TIMESTAMP, ...) call should be lower than the time when the later query has been executed.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Can someone please move this topic OpenGL/Vulkan?
Also, I have previous posts in OpenGL and GPU tools boards since 2008, I'd be glad if someone whitelisted me so I can get rid of this newly acquired newcomer status
Cheers
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I've whitelisted you and moved this post to OpenGL forum.
Thanks.
