For now I tried 4 adapter. All with the same result: WindowServer Crash.
Application Specific Information:
Assertion failed: (!CGSRunningInServer()), function SLSGetOnlineDisplayList, file /BuildRoot/Library/Caches/com.apple.xbs/Sources/SkyLight/SkyLight-340.54/SkyLight/Services/Display/CGSDisplay.cc, line 983.
I decompiled the SLSGetOnlineDisplayList function from the SkyLightOriginal file. I looks like this function depends on a section called __SLSERVER. But I don't know, what this is. If it could not found this section the variable CGSRunningInServer.runningInServer will be still 0 and at the end the assertion
__assert_rtn("SLSGetOnlineDisplayList", "/BuildRoot/Library/Caches/com.apple.xbs/Sources/SkyLight/SkyLight-340.54/SkyLight/Services/Display/CGSDisplay.cc", 0x3d7, "!CGSRunningInServer()");
will be thrown.
Here is the function.
void _SLSGetOnlineDisplayList(int arg0, int arg1, int arg2, int arg3) {
r14 = arg2;
rbx = arg1;
r15 = arg0;
_CGS_CHECK_INIT();
if (*(int8_t *)_CGSRunningInServer.didInit == 0x0) {
if (getsectbyname("__SLSERVER", "__slserver") != 0x0) {
*(int8_t *)_CGSRunningInServer.runningInServer = 0x1;
}
*(int8_t *)_CGSRunningInServer.didInit = 0x1;
}
if (*(int8_t *)_CGSRunningInServer.runningInServer != 0x1) {
*(int32_t *)r14 = 0x0;
r12 = 0x0;
if (r15 != 0x0) {
r12 = 0x0;
if (rbx != 0x0) {
*(int32_t *)rbx = 0x0;
r12 = rbx;
}
}
_os_nospin_lock_lock(display_system_state_lock);
rax = get_current_display_system_state();
if (rax != 0x0) {
var_38 = 0x0;
r13 = rax;
var_2C = r15;
var_40 = r14;
r15 = &var_38;
if (r12 == 0x0) {
r15 = r12;
}
rbx = *(rax + 0x30);
rbx = rbx - *(rax + 0x28);
r14 = SAR(rbx, 0x8);
if (r15 != 0x0) {
rax = r14 * 0x4;
*r15 = operator new[]();
}
if (rbx != 0x0) {
rax = *(r13 + 0x28);
rax = rax + 0x4;
rbx = 0x0;
rcx = 0x0;
do {
if (*(int8_t *)(rax + 0xca) != 0x0) {
if (r15 != 0x0) {
rdx = *(int32_t *)rax;
rdi = rdx ^ 0x7fffffff;
if (*(int32_t *)(rax + 0xc) == *(int32_t *)(rax + 0x14)) {
rdi = rdx;
}
*(int32_t *)(*r15 + rbx * 0x4) = rdi;
}
rbx = rbx + 0x1;
}
rcx = rcx + 0x1;
rax = rax + 0x100;
} while (rcx < r14);
}
else {
rbx = 0x0;
}
if (r15 != 0x0) {
canonicalize_display_id_list(r13, *r15, rbx);
}
r14 = var_40;
r15 = var_2C;
}
else {
rbx = 0x0;
}
if (r12 != 0x0) {
var_38 = 0x0;
CMP(rbx, sign_extend_64(r15));
asm { cmova rbx, rax };
*(int32_t *)r14 = rbx;
r14 = var_38;
memcpy(r12, r14, sign_extend_64(rbx) << 0x2);
}
else {
*(int32_t *)r14 = rbx;
r14 = 0x0;
}
if (r14 != 0x0) {
operator delete[](r14);
}
_os_nospin_lock_unlock(display_system_state_lock);
}
else {
__assert_rtn("SLSGetOnlineDisplayList", "/BuildRoot/Library/Caches/com.apple.xbs/Sources/SkyLight/SkyLight-340.54/SkyLight/Services/Display/CGSDisplay.cc", 0x3d7, "!CGSRunningInServer()");
}
return;
}
Does anyone know, what CGSRunningInServer or this section __SLSERVER is?
Should I try to noop the assertion?
Thanks,
Uli