Contribute
Register

Hunting down the HD3000 Artifacts Fix - new clue maybe

Status
Not open for further replies.
Edit: FAIL!!! Not working! Lost my car in a bet!!!

Alright, final post .... yeah,yeah there's always another final

thx to BigDonkey I was able to find the major difference between the working 10.6.8 version
and glitchy 10.7.x version of our beloved AppleIntelSNBGraphicsFB!

It seems Apple has introduced some sort check on display state when performing commands to the GPU. While I don't know how important this check is, since it wasn't there in 10.6.8, I can say that it indroduced two possible sources for failure.

which of the two it really is doesn't matter to me right now ... all I know is, that I can jump
over those two problems easily, and that will be my FINAL FIX

so increasing the timing like i did before lowered the chances for failure, but by jumping I avoid failure in any case!

here comes how:

AppleIntelSNBGraphicsFB 64bit OSX 10.7.2

find this hex sequence:
Code:
55 89 e5 53 57 56 83 ec 1c 66 8b 45 14 66 83 f8 15 72
it should occur only once!!!
the last byte of that sequence, the 0x72 is a jump instruction, the next byte which should be 0x0A is the offset from here to where we jump.

the original 0x720A jumps to the check, which we'd like to avoid

luckily, all we need to do is to jump a bit further, exactly 0x56 bytes further

so 0x0A+0x56 = 0x60

which makes our patch look like this:

0x720A -----> 0x7260 done

do some confirmation if you are working on versions other than 10.7.2

the jump should go to the following sequence:

Code:
8B 45 0C 8D 70 10 89 74  24 04 8B 4D 08 89 0C 24


here are the file offsets for 10.7.2

Offset: 0x4738E
OrignalValue: 0x0A
PatchedValue: 0x60

confirm, do the check:
JmpShouldGoTo: 0x473FE
BytesAtDest: 8B 45 0C 8D 70 10 89 74 24 04 8B 4D 08 89 0C 24


Alright, thats my fix and I am so confident, that I would take bets now ;)!!!
tx again BigDonkey!!!!
 
So are you saying that both/either the jump patch to the Kext and the memory timing in BIOS will work? Or you combined both? Or the memory timing in BIOS didn't work after all?
 
@leostone

Thanks for the kind words but supplying you with vanilla binary is hardly any accomplishment on my part.

I will patch my 10.7.3 kext shortly and let the testing begin.

Keep up the good work.
 
can you post a nice disassembler for mac osx? :p
 
@saintmac: if i am right with all my conclusions, then it looks like this for me:

this disp check acts like this:

check? -> success ->ok go on
fail -> wait -> check again?->ok abort ????? what the heck???? (or im interpreting the code wrong)

the points that could be responsible for our lines is first this "wait" (i won't go into details, why i think this),
and second the abort even if the check succeeded, this all looks very dodgy to me
and i wouldn't be surprised if that code is actually buggy!

To your question, i think as long as the first check succeeds you are good, and this is
depending pretty much on the timing of the system. Slowing the whole system down obviously increased the chances that the first check succeded.

Which leads to my answer: Any FIX that will slow down the kernel will lessen the chances for lines. So slower RAM, lesser lines.

For me the RAM timings worked, but I knew this wasn't a GOOD solution. I wanted something clean and logical. Now if i'm not totally unlucky, this "0x7260" FIX is exactly what I was after.

If you apply the "0x7260" there can't be any lines anymore, since the code that is causing them is never executed, so the timing won't matter anymore .....

Of course, I can be still all wrong!!! Taking bets though ;)
 
Last line of my last reply came true .... :thumbdown:

Does that mean the timing patch was right .... ???

I'll keep on looking ....

@everyone: Did the HD3000 work flawlessly in 10.6.8 ??? If not, I don't need to bother
comparing it ....
 
So the timing patch didn't solve it? Are you still using the memory settings?

I tried the memory settings, and no glitches (yet). However, could be too soon to tell. Definitely starting to look like both a hardware and software issue.
 
Timing patch didn't work ... RAM settings yes, so far

BUT promising results HERE
Wanna try HERE
Wanna DIY HERE
 
Hi !

Just patched (10.7.3) and did several test. So far no artifacts or glitches.
Will report back the next days - hopefully artifacts stays away.


Bye,

Markus
 
Who has got this line in his kernel.log:

RTC: Only single RAM bank (128 bytes)

I'd like to find out if we fix this problem, would it fix the glitches as well .... ????
 
Status
Not open for further replies.
Back
Top