NeXT Computers Forum Index NeXT Computers
www.NeXTComputers.org
 
Log in to check your private messagesLog in to check your private messages

Log inLog in  RegisterRegister


Profile  Search  Memberlist  FAQ  Usergroups
VMWareFB display driver development
Goto page Previous  1, 2
 
Post new topic   Reply to topic    NeXT Computers Forum Index -> Emulation / Virtualization
View previous topic :: View next topic  
Author Message
andreas_g



Joined: 30 Jan 2009
Posts: 58
Location: Austria

PostPosted: Sun Feb 14, 2010 1:08 am    Post subject: Reply with quote

Is anyone in here able to do a shadow framebuffer for gamma correction as described by Deek in one the previous posts?
This would be a great thing to try, at least for fast host computers.

@pl212:

I did forget about that! The version number in Default.table still says 1.00.

I will try to remember it for the next revision!
I'm glad the driver works for you!
Back to top
View user's profile Send private message Send e-mail
Deek



Joined: 17 Dec 2009
Posts: 5

PostPosted: Sat Feb 27, 2010 10:14 am    Post subject: Reply with quote

It's actually not that difficult.

Essentially, what you do is let the window server write to the shadow FB, then whenever you're told to update the screen you copy the changed area to the real framebuffer, in the process applying your gamma ramp.

This has to be done one pixel/byte at a time, so it needs to be done as fast as possible, but the process is simple, something like this (pseudocode):

pixel = (pixel_t) shadowFB[location];

pixel.red = gamma[pixel.red];
pixel.green = gamma[pixel.green];
pixel.blue = gamma[pixel.blue];

realFB[location] = pixel;

where 'gamma' is a 256-wide array of bytes containing the pre-computed results of the power function (that is, what was passed in from setGammaRamp:), and 'pixel_t' is a packed structure with exactly the same memory layout as a framebuffer pixel. It gets more complicated if you can't create a structure that exactly matches a FB pixel (bit shifts, etc.), but it's still manageable.
Back to top
View user's profile Send private message
Carbamide



Joined: 01 Mar 2010
Posts: 1
Location: Claremore, Oklahoma

PostPosted: Fri Mar 05, 2010 1:34 pm    Post subject: 1024x600 Reply with quote

Any chance of getting the driver to do 1024x600, like most netbooks? I like to run OPENSTEP under VMware on my HP mini, but it only does 1024x600, so I have to run OPENSTEP at 800x600.

Appreciate any reply! Smile

Josh
Back to top
View user's profile Send private message Yahoo Messenger
andreas_g



Joined: 30 Jan 2009
Posts: 58
Location: Austria

PostPosted: Sat Mar 06, 2010 2:33 am    Post subject: Reply with quote

As i don't have the skills to do the shadow framebuffer myself, i hope someone in here helps writing the code. Any help is greatly appreciated!

@carbamide:
I have updated the driver with the new display resolution (1024 x 600).
You can find it here: http://github.com/andreas-g/VMWareFB_OpenStep/downloads

Please give me a short feedback if it works for you.
Back to top
View user's profile Send private message Send e-mail
oneNeXT



Joined: 02 Jun 2008
Posts: 56
Location: Europe

PostPosted: Sat Mar 06, 2010 11:37 am    Post subject: Reply with quote

andreas_g wrote:
i hope someone in here helps writing the code. Any help is greatly appreciated!


I've started writing a VMWGammaLUT object to handle gamma table,
how can I send you files, please ?
Back to top
View user's profile Send private message
andreas_g



Joined: 30 Jan 2009
Posts: 58
Location: Austria

PostPosted: Sun Mar 07, 2010 1:39 am    Post subject: Reply with quote

Very nice! You can apply it to the project using github (http://github.com/andreas-g/VMWareFB_OpenStep).

Or you can send me the file(s) via e-mail. I've sent you a PM with my e-mail address.
Back to top
View user's profile Send private message Send e-mail
Uli



Joined: 28 Dec 2006
Posts: 6
Location: Germany

PostPosted: Mon Mar 15, 2010 10:23 pm    Post subject: Finally a working driver :-))) Reply with quote

Hi,

I just wanted to say a big thank you to everybody involved here in getting this driver to finally work with today's screen resolutions. This is really great! Very Happy

I remember very well how the old version of the driver worked just fine in Fusion 1 beta 1 & 2. This was enough to convince me to trust Fusion; I bought it and transferred all my data from my almost broken NeXT-Intel computer to a virtual machine. Then came beta 3 and nothing worked anymore in a reasonable screen resolution (and beta 2, of course, was time-limited). Evil or Very Mad

I contacted VMWare as well as Atomic Object several times during 2007, but I had worse luck than Andreas, and nothing came ever out of it. I also lurked in this forum regularly, but no solution was available here, either, so I basically had given up any hope when I looked again today, only to find that in the last 3 months, when I didn't look, everything changed. Very Happy Very Happy

I can confirm the new driver version runs perfectly in 1600 x 1200 / 32 bit (window mode) in Fusion 3.02, Mac OS X 10.6.3. Very Happy

Again, a big thanks to everyone involved!

Bye

Uli
Back to top
View user's profile Send private message
NeXT FREAK



Joined: 16 Mar 2010
Posts: 2
Location: Japan

PostPosted: Wed Mar 17, 2010 5:21 am    Post subject: 1366x768 Reply with quote

Hi,
Thank you for a cool driver. I am pleased that a wide screen is usable very much.

Because I found tips, I report.

i) I do not understand it somehow, but in my environment,
NEXTSTEP3.3J and vmplayer 3.0.1,
I had to change MemoryMaps to 0xf0000000-0xf0ffffff.
Without this change, kernel is reboot.

ii) At "1366x768" mode, mouse cursour is drawn incorrect.
I was able to revise it by changing the value of "modeTable".
"rowBytes" and "totalWidth" seem to have to be eight multiples.


This is a patch
"VMWareFB.m.diff"

---------

--- VMWareFB.m.org Wed Mar 17 02:58:16 2010
+++ VMWareFB.m Wed Mar 17 02:58:42 2010
@@ -99,7 +99,7 @@
,
{
/* 1366 x 768, RGB:888/32 */
- 1366, 768, 1366, 5464, 60, 0,
+ 1366, 768, 1368, 5472, 60, 0,
IO_24BitsPerPixel, IO_RGBColorSpace, "--------RRRRRRRRGGGGGGGGBBBBBBBB",
0, 0
}


Last edited by NeXT FREAK on Fri Mar 19, 2010 12:50 am; edited 2 times in total
Back to top
View user's profile Send private message
Uli



Joined: 28 Dec 2006
Posts: 6
Location: Germany

PostPosted: Wed Mar 17, 2010 9:29 am    Post subject: Re: 1366x768 Reply with quote

NeXT FREAK wrote:
I had to change MemoryMaps to 0xf0000000-0xf0ffff.

Interesting.

Can anyone here (NeXT FREAK, Deek, ?) comment on how you actually determine these addresses?

Back in 2007, when I ran into this driver issue, I also felt that it's most probably simply an issue of too little address space. However, I knew of no rationale how to determine which numbers to enter in the driver configuration, so I could only guess and, of course, never came up with numbers that worked.

So I would be really interested how you arrived at 0xd0000000, 0xf0000000 etc.

Bye

Uli
Back to top
View user's profile Send private message
NeXT FREAK



Joined: 16 Mar 2010
Posts: 2
Location: Japan

PostPosted: Thu Mar 18, 2010 8:49 am    Post subject: Re: 1366x768 Reply with quote

Uli wrote:
Can anyone here (NeXT FREAK, Deek, ?) comment on how you actually determine these addresses?

Hi,

- In the boot console, I found this message.
"...Can't memory range..."..

- I searched this message in the drivers source code then
I guessed that changing memory range was fail.

From the log file of vmplayer,
at least, in my vmplayer3.0.1 environment,
default SVGA PCI physical address is 0xf0000000.
So I have changed "MemoryMaps" to the same address for trial.

I do not understand whether it is a right method,
but the driver works well by performing this revision.


from my vmplayer's log
------------------------------------------------------------------------------------------
vcpu-0| SVGA: Registering MemSpace at 0xf0000000(0x0) and 0xe8000000(0x0)
vcpu-0| SVGA: Unregistering MemSpace at 0xf0000000(0xf0000000) and 0xe8000000(0xe8000000)
vcpu-0| SVGA: Registering MemSpace at 0xf0000000(0xf0000000) and 0xe8000000(0xe8000000)
vcpu-0| SVGA: Unregistering MemSpace at 0xf0000000(0xf0000000) and 0xe8000000(0xe8000000)
vcpu-0| SVGA: Registering IOSpace at 0x1410
vcpu-0| SVGA: Registering MemSpace at 0xf0000000(0xf0000000) and 0xe8000000(0xe8000000)
Back to top
View user's profile Send private message
Uli



Joined: 28 Dec 2006
Posts: 6
Location: Germany

PostPosted: Thu Mar 18, 2010 9:54 am    Post subject: Re: 1366x768 Reply with quote

Thanks for the explanation, NeXT FREAK! Smile
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    NeXT Computers Forum Index -> Emulation / Virtualization All times are GMT - 7 Hours
Goto page Previous  1, 2
Page 2 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum



Powered by phpBB © 2001, 2005 phpBB Group