Details
-
Type:
Task
-
Status: Resolved
-
Priority:
P4
-
Resolution: Fixed
-
Affects Version/s: internal
-
Fix Version/s: internal
-
Component/s: client-libs
-
Labels:
-
Subcomponent:
-
CPU:x86_64
-
OS:os_x
Description
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.
Attachments
Issue Links
- blocks
-
JDK-8224046 ☂ Metal Graphics API Implementation
-
- Resolved
-