VOGONS


First post, by badmojo

User metadata
Rank l33t
Rank
l33t

Hi!

I might be about to expose my ignorance here but I use a little app called 6x86opt to optimise my CPU Cyrix MII and with a Matrox Millennium I was able to use the -linbuf option to set up the LFB. This worked - the app found the address of my frame buffer and I got a couple of extra points in benchmarks.

I've recently switched to an Ark 2000MT based card - this thing also has a frame buffer I'm promised but 6x86opt can't find it. There's an option to specify the address of the buffer and the card's memory size but... how to I know what the address is? Neither this app nor another I tried are able to find it.

Any help much appreciated and if I'm talking nonsense then be gentle 😊

Life? Don't talk to me about life.

Reply 1 of 15, by Grzyb

User metadata
Rank l33t
Rank
l33t

For Linux, there's "lspci -v".
For DOS, I think HWINFO can display such details about PCI devices.

Kiełbasa smakuje najlepiej, gdy przysmażysz ją laserem!

Reply 2 of 15, by Falcosoft

User metadata
Rank l33t
Rank
l33t
badmojo wrote on 2020-12-10, 02:00:
Hi! […]
Show full quote

Hi!

I might be about to expose my ignorance here but I use a little app called 6x86opt to optimise my CPU Cyrix MII and with a Matrox Millennium I was able to use the -linbuf option to set up the LFB. This worked - the app found the address of my frame buffer and I got a couple of extra points in benchmarks.

I've recently switched to an Ark 2000MT based card - this thing also has a frame buffer I'm promised but 6x86opt can't find it. There's an option to specify the address of the buffer and the card's memory size but... how to I know what the address is? Neither this app nor another I tried are able to find it.

Any help much appreciated and if I'm talking nonsense then be gentle 😊

Usually these CPU utilities work by setting the LFB region of the VGA to write combining mode through special model specific registers of the CPU. But in order such utilities to work the VGA has to support LFB. You can check this with the attached utility. The relevant part is 'LFB located at: xxxxxxxx' . If you cannot see anything or vesainfo.exe reports problem then it is likely that your VGA is not VESA 2.0 compatible (that is required for LFB support). So you should find a VESA 2.0 compatible BIOS for your card or use UNIVBE before trying to use your CPU utility.

Website, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper
x86 microarchitecture benchmark (MandelX)

Reply 3 of 15, by badmojo

User metadata
Rank l33t
Rank
l33t

Great responses thanks guys!

@Grzyb HWINFO didn't include that info that I could see but it's a handy app.

@Falcosoft that's exactly what I was after thanks. From what I can see my card is VESA 2.0 compliant out of the box but VESAINFO still says LFB is not supported. UniVBE fixes that right up as you suggested and VESAINFO provides a LFB address but 6x86OPT still complains that it can't find the LFB, so I'm not sure what's going on there. I'll keep playing around and see if there's a newer BIOS available for this card.

Thanks again I'll report back if I find anything interesting - having write combining turned on makes a measurable difference on this machine so I'll persist.

Life? Don't talk to me about life.

Reply 4 of 15, by Falcosoft

User metadata
Rank l33t
Rank
l33t
badmojo wrote on 2020-12-10, 09:40:
Great responses thanks guys! […]
Show full quote

Great responses thanks guys!

@Grzyb HWINFO didn't include that info that I could see but it's a handy app.

@Falcosoft that's exactly what I was after thanks. From what I can see my card is VESA 2.0 compliant out of the box but VESAINFO still says LFB is not supported. UniVBE fixes that right up as you suggested and VESAINFO provides a LFB address but 6x86OPT still complains that it can't find the LFB, so I'm not sure what's going on there. I'll keep playing around and see if there's a newer BIOS available for this card.

Thanks again I'll report back if I find anything interesting - having write combining turned on makes a measurable difference on this machine so I'll persist.

Please attach the output of vesainfo here (both before and after UNIVBE if possible) and also the output of 'mem /c /p' command. Sometimes the LFB region is at a too low address that can overlap with system memory.

Website, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper
x86 microarchitecture benchmark (MandelX)

Reply 5 of 15, by badmojo

User metadata
Rank l33t
Rank
l33t

Please see attached:

mem output before uniVBE:

The attachment MEMBEF.TXT is no longer available

vesainfo output before uniVBE:

The attachment BEFVES.TXT is no longer available

mem output after uniVBE:

The attachment MEMAFT.TXT is no longer available

vesainfo after uniVBE:

The attachment AFTVES.TXT is no longer available

That LBF location listed does look suspiciously low...?

Thanks again.

Life? Don't talk to me about life.

Reply 6 of 15, by Grzyb

User metadata
Rank l33t
Rank
l33t

0xE0000000 = 3.5 GB, ie. perfectly OK, surely you don't have that much RAM in that Cyrix

Kiełbasa smakuje najlepiej, gdy przysmażysz ją laserem!

Reply 7 of 15, by badmojo

User metadata
Rank l33t
Rank
l33t

64MB 🐱‍🏍

Maybe that's too much system RAM? I'm off to bed now but tomorrow I'll take 32 out and see if that helps.

Life? Don't talk to me about life.

Reply 8 of 15, by Falcosoft

User metadata
Rank l33t
Rank
l33t
badmojo wrote on 2020-12-10, 11:19:

64MB 🐱‍🏍

Maybe that's too much system RAM? I'm off to bed now but tomorrow I'll take 32 out and see if that helps.

No, as Gryzb has said 64MB RAM should not cause LFB related problems since the LFB address of 0xE0000000 is rather high (3.5 GB).
What happens if you force this address as parameter to your CPU utility?
Also do LFB modes actually work? You can test 640x480 256 color banked mode by
vesainfo /t 101
and 640x480 256 color LFB mode by
vesainfo /t 4101

Website, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper
x86 microarchitecture benchmark (MandelX)

Reply 9 of 15, by badmojo

User metadata
Rank l33t
Rank
l33t

OK it's not looking good. I tried forcing that address with the 'mtrrlfbe' utility (which I see you're involved with Falcosoft) and it's accepted, but trying to run something in a VESA mode reboots the machine.

vesainfo /t 101 - this works without Univbe installed, but reboots the machine with it installed.

vesainfo /t 4101 - this reports that the mode is not supported, and Univbe doesn't change that.

This is all rather disappointing - this Ark is a great card otherwise. Fast and nice image.

Life? Don't talk to me about life.

Reply 10 of 15, by Falcosoft

User metadata
Rank l33t
Rank
l33t
badmojo wrote on 2020-12-10, 20:35:
OK it's not looking good. I tried forcing that address with the 'mtrrlfbe' utility (which I see you're involved with Falcosoft) […]
Show full quote

OK it's not looking good. I tried forcing that address with the 'mtrrlfbe' utility (which I see you're involved with Falcosoft) and it's accepted, but trying to run something in a VESA mode reboots the machine.

vesainfo /t 101 - this works without Univbe installed, but reboots the machine with it installed.

vesainfo /t 4101 - this reports that the mode is not supported, and Univbe doesn't change that.

This is all rather disappointing - this Ark is a great card otherwise. Fast and nice image.

MTRRLFBE works only with processors that have standard P6 compatible Memory Type Range Registers. This means Intel CPUs from PPro/P2 and AMD CPUs from Athlon . AFAIK Cyrix never supported these.
At last you can try using UNIVBE and your Cyrix utility without loading EMM386. Sincerely I'm not sure it will help but it's worth a try.

Website, Youtube
Falcosoft Soundfont Midi Player + Munt VSTi + BassMidi VSTi
VST Midi Driver Midi Mapper
x86 microarchitecture benchmark (MandelX)

Reply 11 of 15, by badmojo

User metadata
Rank l33t
Rank
l33t

OK thanks for the suggestion but still no dice. I notice that UniVBE is also reporting that the LFB is at 3584MB and indeed 6X86opt accepts this when told this is the LFB location, but both of my SVGA benchmark utils crash.

I note also that forcing 6X86opt to use 3584 works fine without uniVBE installed and the benchmarks work, but no improvement is recorded.

Oh well thanks for helping me guys I've learnt something and that's always a good thing 👍

Life? Don't talk to me about life.

Reply 12 of 15, by Grzyb

User metadata
Rank l33t
Rank
l33t

BTW, I've tried HWINFO, and it does report memory ranges for PCI devices:

The attachment hwinfo.png is no longer available

but it's not quite consistent with what Windows says:

The attachment windows.png is no longer available

Anyway, the LFB is clearly at 0xD0000000 here.

Kiełbasa smakuje najlepiej, gdy przysmażysz ją laserem!

Reply 13 of 15, by mkarcher

User metadata
Rank l33t
Rank
l33t
Grzyb wrote on 2020-12-11, 06:58:

BTW, I've tried HWINFO, and it does report memory ranges for PCI devices:
but it's not quite consistent with what Windows says:

That seems to be a quirk in HWINFO. The lowest bits of the base address are intended to communicate that it is memory space and whether you may do speculative reads ("prefetchable" as for the LFB) or not (as for MMIO registers). There is no way for a PCI device to have range D0000000-D4000007, as the end address is always the start address plus the range size minus 1 and the range size is always a power of two. In your case, the start address is D0000000, the range size is 04000000 (64 Megabytes) and the end address is thus D3FFFFFF. The next possible step would be a range size of 08000000 and an end address of D7FFFFFF, which is obviously not what your video card does.

But wait a second: Your screenshot says "Intel 82815". That is the model number of a Pentium II/Pentium III chipset integrated graphics solution, not the model number of a dedicated video card plugged into a 6x86 system...

Reply 14 of 15, by Grzyb

User metadata
Rank l33t
Rank
l33t
mkarcher wrote on 2020-12-12, 10:41:

But wait a second: Your screenshot says "Intel 82815". That is the model number of a Pentium II/Pentium III chipset integrated graphics solution, not the model number of a dedicated video card plugged into a 6x86 system...

Yes, that's just an example on how to find the LFB address.
There's many tools for this task, eg.:
- HWINFO
- lspci -v
- Device Manager in Windows
- VESAINFO, if given VBE implementation supports LFB

Kiełbasa smakuje najlepiej, gdy przysmażysz ją laserem!

Reply 15 of 15, by badmojo

User metadata
Rank l33t
Rank
l33t

A happy little addendum here - using v5.3a of uniVBE + forcing the LFB via 6x86Opt gives me the performance boost I was hoping for. Previously I'd been using v6.7 of uniVBE which, as mentioned above, was reporting that the LBF was configured, but no performance increase was seen.

So testing with PCP bench (640x400 8bpp):
- without uniVBE or 6x86Opt: 26.7
- with uniVBE only: 27.3
- with uniVBE and LFB configured with 6x86Opt: 32.6

This makes this humble little Ark card equally as fast as a Matrox Millennium and a Tseng ET6100 but it doesn't have the compatibility issues of those cards - Keen, etc runs fine with it. Nice image quality too.

Thanks again for the help 👍

IMG_2676.jpg

Life? Don't talk to me about life.