-
Task
-
Resolution: Fixed
-
P4
-
internal
-
x86_64
-
os_x
In case of OpenGL we schedule blitting only when OpenGL context is not NULL in OGLRenderQueue.c->flushBuffer()
if (oglc != NULL) {
RESET_PREVIOUS_OP();
if (sync) {
j2d_glFinish();
} else {
j2d_glFlush();
}
OGLSD_Flush(env);
}
And it looks like OpenGL context is set in SET_SURFACES opcode.
In case of metal implementation we dont have any such check and we call scheduleBlitAllModifiedLayers() every-time we have flushBuffer call.
We need to verify whether such a difference is the reason we are facing performance degradation in Metal.
if (oglc != NULL) {
RESET_PREVIOUS_OP();
if (sync) {
j2d_glFinish();
} else {
j2d_glFlush();
}
OGLSD_Flush(env);
}
And it looks like OpenGL context is set in SET_SURFACES opcode.
In case of metal implementation we dont have any such check and we call scheduleBlitAllModifiedLayers() every-time we have flushBuffer call.
We need to verify whether such a difference is the reason we are facing performance degradation in Metal.
- blocks
-
JDK-8224046 ☂ Metal Graphics API Implementation
- Resolved