Back to home page

DOS ain't dead

Forum index page

Log in | Register

Back to the board
Thread view  Mix view  Order
RayeR(R)

Homepage

CZ,
11.11.2018, 04:56
(edited by RayeR, 11.11.2018, 15:20)
 

MTRRLFBE 1.5 (Announce)

St.Martin didn't ride on a white horse (sorry snow is under progress :) but after an endless years I finished a new release of my MTRRLFBE and VESATEST utility. I just got some NV GTX670 sh!t with artifacts even in 2D mode and sometime in textmode. I tried it with VESATEST and found that MTRR W-C was not set properly because of MTRR range overlap/conflict. Despite my quick hack. So I tried to handle it more deeply so desired setting could be reached. Then I pushed 2,8GB/s out of this beast. I hope that my changes didn't break old working machines. Just try. There's /d debug switch so you can see detailed MTRRs settings and changes that my program does.

http://rayer.g6.cz/programm/programe.htm#MTRRLFBE
http://rayer.g6.cz/programm/programe.htm#VESATEST

MTRRLFBE.EXE lfb wc /d

MTRR-WC enabler for VESA LFB 1.5 (C) 2005-2018 by Martin Rehak; rayer...cz
Compiled by GCC 4.8.5 at 01:14:44, Nov 11 2018
Host machine CPU vendor: GenuineIntel, ID: 206A7h

VESA 3.0 NVIDIA [14336 kB]
NVIDIA Corporation
GK104 Board - 20040005
Chip Rev
LFB address: EF000000h
MTRR #0: base = 000000000h (    0MB), mask = F00000000h ( 4096MB), WB, used
Resizing MTRR #0 down to 2048MB
MTRR #1: base = 0E0000000h ( 3584MB), mask = FE0000000h (  512MB), UC, used
Disabling MTRR #1 because it's overlapping with desired WC area
MTRR #2: base = 100000000h ( 4096MB), mask = FE0000000h (  512MB), WB, used
MTRR #3: base = 000000000h (    0MB), mask = 000000000h (    0MB), UC, unused
MTRR #4: base = 000000000h (    0MB), mask = 000000000h (    0MB), UC, unused
MTRR #5: base = 000000000h (    0MB), mask = 000000000h (    0MB), UC, unused
MTRR #6: base = 000000000h (    0MB), mask = 000000000h (    0MB), UC, unused
MTRR #7: base = 000000000h (    0MB), mask = 000000000h (    0MB), UC, unused
MTRR #8: base = 000000000h (    0MB), mask = 000000000h (    0MB), UC, unused
MTRR #9: base = 000000000h (    0MB), mask = 000000000h (    0MB), UC, unused
Setting MTRR #3 to area: 80000000h - BFFFFFFFh (1024MB), WB mode
Setting MTRR #4 to area: C0000000h - DFFFFFFFh (512MB), WB mode
Setting MTRR #5 to area: E0000000h - E7FFFFFFh (128MB), WB mode
Setting MTRR #1 to desired area...
MTRR area EF000000-EF7FFFFFh was set to mode: WC


Edit by rr: Expanded tabs to spaces and removed trailing spaces.

---
DOS gives me freedom to unlimited HW access.

rr(R)

Homepage E-mail

Berlin, Germany,
11.11.2018, 11:50

@ RayeR

MTRRLFBE 1.5

> http://rayer.g6.cz/programm/programm.htm#MTRRLFBE

In English: http://rayer.g6.cz/programm/programe.htm#MTRRLFBE

> http://rayer.g6.cz/programm/programm.htm#VESATEST

In English: http://rayer.g6.cz/programm/programe.htm#VESATEST

:-D

RayeR(R)

Homepage

CZ,
11.11.2018, 15:20

@ rr

MTRRLFBE 1.5

Yes, sorry, I was so tired and pasted wrong links...

---
DOS gives me freedom to unlimited HW access.

rr(R)

Homepage E-mail

Berlin, Germany,
11.11.2018, 17:00

@ RayeR

MTRRLFBE 1.5

> Yes, sorry, I was so tired and pasted wrong links...

No problem. Wasn't a big deal.

Zyzzle(R)

13.11.2018, 05:13

@ RayeR

MTRRLFBE 1.5

> St.Martin didn't ride on a white horse (sorry snow is under progress :) but
> after an endless years I finished a new release of my MTRRLFBE and VESATEST
> utility. I just got some NV GTX670 sh!t with artifacts even in 2D mode and
> sometime in textmode. I tried it with VESATEST and found that MTRR W-C was
> not set properly because of MTRR range overlap/conflict. Despite my quick
> hack. So I tried to handle it more deeply so desired setting could be
> reached. Then I pushed 2,8GB/s out of this beast. I hope that my changes
> didn't break old working machines. Just try. There's /d debug switch so you
> can see detailed MTRRs settings and changes that my program does.

This is truly a gift! For years I had thought either there was some sort of bug in MTRRLFBE and all other WC-enabling programs (FastVid, etc) since my screaming i7-5500 laptop couldn't set WC no matter what I tried.

Today, I went from 108 MB / sec to 10.6 GB per sec for mode 417fd which is 1366x768x32 on the (integrated, onboard Intel HD5500 chipset).

Wow, now the graphics scream as they should and Write Combining is properly enabled in DOS. Thanks so much for this fixing of "MTRE range conflict" which breathes new life into a rather new laptop for DOS use...

RayeR(R)

Homepage

CZ,
13.11.2018, 14:28

@ Zyzzle

MTRRLFBE 1.5

You're welcome. 10GB/s is really impressive, probably due to shared RAM/VRAM. The older programs doesn't have a bug but its due to how BIOS initialize the MTRRs where it doesn't take care about LFB. Until 4GB of RAM was common the problem did't appeared.
Just for curiosity, please send me/paste here the MTRRLFB debug log (/d) when it's run 1st time.

---
DOS gives me freedom to unlimited HW access.

Zyzzle(R)

14.11.2018, 01:58

@ RayeR

MTRRLFBE 1.5

> You're welcome. 10GB/s is really impressive''probably due to shared
> RAM/VRAM. The older programs doesn't have a bug but its due to how BIOS
> initialize the MTRRs where it doesn't take care about LFB. Until 4GB of RAM
> was common the problem did't appeared.
> Just for curiosity, please send me/paste here the MTRRLFB debug log (/d)
> when it's run 1st time

This is the debug screen after typing mtrrlfbe lfb UC at the console:

VESA 3.0 Intel(R) HSW Mobile/Desktop Graphics Chipset Accelerated VGA BIOS [32704 kB]
N/A
N/A
N/A
LFB address: B0000000h
MTRR #0: base = 000000000h ( 0MB), mask = F80000000h ( 2048MB), WB, used
MTRR #1: base = 09D000000h ( 2512MB), mask = FFF000000h ( 16MB), UC, used
MTRR #2: base = 09E000000h ( 2528MB), mask = FFE000000h ( 32MB), UC, used
MTRR #3: base = 0B0000000h ( 2816MB), mask = FFF000000h ( 16MB), UC, used
Disabling MTRR #3 because it's overlapping with desired WC area
MTRR #4: base = 0C0000000h ( 3072MB), mask = FC0000000h ( 1024MB), UC, used
MTRR #5: base = 080000000h ( 2048MB), mask = FE0000000h ( 512MB), WB, used
MTRR #6: base = 0A0000000h ( 2560MB), mask = FF0000000h ( 256MB), WB, used
MTRR #7: base = 000000000h ( 0MB), mask = 000000000h ( 0MB), UC, unused
MTRR #8: base = 000000000h ( 0MB), mask = 000000000h ( 0MB), UC, unused
MTRR #9: base = 000000000h ( 0MB), mask = 000000000h ( 0MB), UC, unused
Setting MTRR #3 to desired area...
MTRR area B0000000-B0FFFFFFh was set to mode: WC

And again, after running 2nd time, MTRRLFBE lfb WC


MTRR-WC enabler for VESA LFB 1.5 (C) 2005-2018 by Martin Rehak; rayer@seznam.cz
Compiled by GCC 4.8.5 at 03:50:18, Nov 11 2018
Host machine CPU vendor: GenuineIntel, ID: 306D4h

VESA 3.0 Intel(R) HSW Mobile/Desktop Graphics Chipset Accelerated VGA BIOS [32704 kB]
N/A
N/A
N/A
LFB address: B0000000h
MTRR #0: base = 000000000h ( 0MB), mask = F80000000h ( 2048MB), WB, used
MTRR #1: base = 09D000000h ( 2512MB), mask = FFF000000h ( 16MB), UC, used
MTRR #2: base = 09E000000h ( 2528MB), mask = FFE000000h ( 32MB), UC, used
MTRR #3: base = 0B0000000h ( 2816MB), mask = FFF000000h ( 16MB), WC, used
MTRR #4: base = 0C0000000h ( 3072MB), mask = FC0000000h ( 1024MB), UC, used
MTRR #5: base = 080000000h ( 2048MB), mask = FE0000000h ( 512MB), WB, used
MTRR #6: base = 0A0000000h ( 2560MB), mask = FF0000000h ( 256MB), WB, used
MTRR #7: base = 000000000h ( 0MB), mask = 000000000h ( 0MB), UC, unused
MTRR #8: base = 000000000h ( 0MB), mask = 000000000h ( 0MB), UC, unused
MTRR #9: base = 000000000h ( 0MB), mask = 000000000h ( 0MB), UC, unused
Setting MTRR #3 to desired area...
MTRR area B0000000-B0FFFFFFh was set to mode: WC

This laptop has a total of only 8 GB RAM -- Lenovo G50. I always suspected BIOS is extremely poor and does not set LFB correctly. Also it takes away many features and is very crippled, in for example not giving full access to 640k conventional DOS memory, but reports only a max of 608k, from which all DOS TSRs, LFBs, HMA, etc is allocated, so over 32 kb of low memory is "lost" to unknown reasons and "taken off the top" by some buggy code in BIOS before DOS even has a chance to load.

RayeR(R)

Homepage

CZ,
14.11.2018, 13:51

@ Zyzzle

MTRRLFBE 1.5

Thanks for debug info. I wonder why older MTRRLFB didn't work for you because it just should replace MTRR #3 as it has same base address like LFB. I don't know if you used my old official or some newer unofficial version with quickhack. Anyway the latest official version should do the best and I reccomend to replace older MTRRLFBE.

---
DOS gives me freedom to unlimited HW access.

Zyzzle(R)

15.11.2018, 02:24

@ RayeR

MTRRLFBE 1.5

> Thanks for debug info. I wonder why older MTRRLFB didn't work for you
> because it just should replace MTRR #3 as it has same base address like
> LFB. I don't know if you used my old official or some newer unofficial
> version with quickhack. Anyway the latest official version should do the
> best and I reccomend to replace older MTRRLFBE.

Last version of MTRRLFBE I had was from 2012. 02. 06 which didn't work with this laptop but with all of my other (older) systems. If I get a chance I will post debug from this 2012 version of MTRRLFBE for you to compare. But the conflict seems fixed, and version 1.5 works perfectly with my older systems and laptops as well.

sezeroz(R)

15.11.2018, 05:30

@ RayeR

MTRRLFBE 1.5

> http://rayer.g6.cz/programm/programe.htm#MTRRLFBE
> http://rayer.g6.cz/programm/programe.htm#VESATEST

Do you have plans to publish the source?

RayeR(R)

Homepage

CZ,
20.11.2018, 15:54

@ sezeroz

MTRRLFBE 1.5

Currently no.

---
DOS gives me freedom to unlimited HW access.

Back to the board
Thread view  Mix view  Order
15673 Postings in 1427 Threads, 259 registered users, 9 users online (0 registered, 9 guests)
DOS ain't dead | Admin contact
RSS Feed
powered by my little forum