Welcome, Guest. Please login or register.

Author Topic: Warp3d synchro/double-triply bufferging  (Read 18490 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline Piru

  • \' union select name,pwd--
  • Hero Member
  • *****
  • Join Date: Aug 2002
  • Posts: 6946
    • Show only replies by Piru
    • http://www.iki.fi/sintonen/
Re: Warp3d synchro/double-triply bufferging
« Reply #44 from previous page: February 18, 2005, 02:58:12 PM »
@Mr_Capehill

It's a DNS problem, try http://81.172.167.40/~karlos/demos/
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16879
  • Country: gb
  • Thanked: 5 times
    • Show only replies by Karlos
Re: Warp3d synchro/double-triply bufferging
« Reply #45 on: February 18, 2005, 04:14:05 PM »
@Framiga

It would be possible to make the thing correctly support arbitarty image sizes and a whole load of other stuff. However it's primarily a toy that I have probably spent no more than 4 hours on in total :-)
int p; // A
 

Offline bloodline

  • Master Sock Abuser
  • Hero Member
  • *****
  • Join Date: Mar 2002
  • Posts: 12113
    • Show only replies by bloodline
    • http://www.troubled-mind.com
Re: Warp3d synchro/double-triply bufferging
« Reply #46 on: February 18, 2005, 04:20:25 PM »
Quote

Karlos wrote:
@Framiga

It would be possible to make the thing correctly support arbitarty image sizes and a whole load of other stuff. However it's primarily a toy that I have probably spent no more than 4 hours on in total :-)


so where's the windies binaries?

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16879
  • Country: gb
  • Thanked: 5 times
    • Show only replies by Karlos
Re: Warp3d synchro/double-triply bufferging
« Reply #47 on: February 18, 2005, 04:25:51 PM »
Quote

bloodline wrote:

so where's the windies binaries?


Awaiting a total overhaul of the framework core ;-)

The win32 version(s) were originally maintained by a friend, a man who has forgotten more about windows and directx than I will ever know, but he has no time to work on them presently :-(

That said, the warpdemo did work with the last version under win2k/dx7.

Snags were things like the ImageLoader interface, which is a doddle on amigaos thanks to v43 datatypes, but tricky on most other platforms. The Win32 gfxlib had hard coded support for jpeg, png, bmp and ppm, that was it.
int p; // A
 

Offline Mr_Capehill

  • Full Member
  • ***
  • Join Date: May 2002
  • Posts: 189
    • Show only replies by Mr_Capehill
Re: Warp3d synchro/double-triply bufferging
« Reply #48 on: February 18, 2005, 04:54:46 PM »
@Piru: kiitos :)

Will test those tools ASAP.
 

Offline Piru

  • \' union select name,pwd--
  • Hero Member
  • *****
  • Join Date: Aug 2002
  • Posts: 6946
    • Show only replies by Piru
    • http://www.iki.fi/sintonen/
Re: Warp3d synchro/double-triply bufferging
« Reply #49 on: February 18, 2005, 06:08:27 PM »
@Karlos

WarpDemo works fine under MorphOS btw, playing with some 1024x1024 textures atm. Funky :-)

warpdemo1.jpg
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16879
  • Country: gb
  • Thanked: 5 times
    • Show only replies by Karlos
Re: Warp3d synchro/double-triply bufferging
« Reply #50 on: February 18, 2005, 06:50:28 PM »
@Piru

:lol: Thermal damage warped that card but good.

I think you should play with the "mesh" parameter on the CLI. Try using a mesh of 32 or more to get a much finer level of control.

Of course the recalculation time is O(n*n) with respect to the mesh value, so don't go nuts with it...

A slight bug exists in that I clamped the window size to a max of 1024x768, so your image was probably a bit distorted anyway ;-)

-edit-

So what GPU is that you are using?
int p; // A
 

Offline Piru

  • \' union select name,pwd--
  • Hero Member
  • *****
  • Join Date: Aug 2002
  • Posts: 6946
    • Show only replies by Piru
    • http://www.iki.fi/sintonen/
Re: Warp3d synchro/double-triply bufferging
« Reply #51 on: February 18, 2005, 07:35:20 PM »
@Karlos

Quote
I think you should play with the "mesh" parameter on the CLI. Try using a mesh of 32 or more to get a much finer level of control.

Of course the recalculation time is O(n*n) with respect to the mesh value, so don't go nuts with it...

Oh, thanks. I'll check it out.

-edit-

mesh 64, looks much smoother now:
warpdemo2.jpg

Quote
A slight bug exists in that I clamped the window size to a max of 1024x768, so your image was probably a bit distorted anyway

Yeah noticed this.

Quote
So what GPU is that you are using?

R200 (It's a Radeon 8500LE)
 

Offline Framiga

  • Hero Member
  • *****
  • Join Date: May 2003
  • Posts: 4096
    • Show only replies by Framiga
Re: Warp3d synchro/double-triply bufferging
« Reply #52 on: February 18, 2005, 08:06:27 PM »
REPAIRED!!!

. . . or quite :-D

 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16879
  • Country: gb
  • Thanked: 5 times
    • Show only replies by Karlos
Re: Warp3d synchro/double-triply bufferging
« Reply #53 on: February 18, 2005, 08:41:14 PM »
@Framiga

Access forbidden :-(
int p; // A
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16879
  • Country: gb
  • Thanked: 5 times
    • Show only replies by Karlos
Re: Warp3d synchro/double-triply bufferging
« Reply #54 on: February 18, 2005, 08:52:51 PM »
@Piru

So what is the speed like there with these larger mesh / image sizes? (also bear in mind its a 680x0 application)

The actual warpdemo "application" isn't what I would call well optimised, but I wanted to keep it understandable as I figured the program would make a reasonable tutorial for any documentation I would make for the framework. Not that there is any documentation. I suck too bad at that ;-)
int p; // A
 

Offline Piru

  • \' union select name,pwd--
  • Hero Member
  • *****
  • Join Date: Aug 2002
  • Posts: 6946
    • Show only replies by Piru
    • http://www.iki.fi/sintonen/
Re: Warp3d synchro/double-triply bufferging
« Reply #55 on: February 18, 2005, 09:41:30 PM »
@Karlos

With 1024 x 1024 texture, 100 x 100 mesh is fast still, can't see any difference to lower values.

warpdemo3.jpg

Going up from there adds some visible slowness (I guess it takes over a frame to redraw things then).
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16879
  • Country: gb
  • Thanked: 5 times
    • Show only replies by Karlos
Re: Warp3d synchro/double-triply bufferging
« Reply #56 on: February 18, 2005, 09:51:21 PM »
I figured as much. On my 040/25 + BVision it works acceptably with a mesh of upto 32 and texture sizes of 512x512.

The P2 would be helped a lot if I subdivided large textures into smaller ones that tile together since the chip doesn't like reading long spans of texels that cross memory pages (it actually has a special texture arrangement called "subpatch" it can use that re-arranges large textures into smaller blocks - no longer linear spans of texels - that achieves the same end, but this is not supported in the 680x0 warp3d driver).

On the voodoo it seems anything larger than 256x256 is not allowed, so the above subdivision idea might be needed for this one anyway.

-edit-

Have you tried any rectangular images? Also, if you didn't read the "manual" (if I even included one), there is a "scale" option (which is floating point) for smaller images. So loading a 256x256 image can be made to fill a larger area, eg

warp image my256x256pic.jpg scale 3 mesh 32

would make the window 768x768...

Of course I should totally rewrite the display bit so its a sensible size and the loaded mesh is automatically scaled to fit properly. Theres nothing stopping me apart from lethargy ;-)
int p; // A
 

Offline Piru

  • \' union select name,pwd--
  • Hero Member
  • *****
  • Join Date: Aug 2002
  • Posts: 6946
    • Show only replies by Piru
    • http://www.iki.fi/sintonen/
Re: Warp3d synchro/double-triply bufferging
« Reply #57 on: February 18, 2005, 10:31:55 PM »
Quote
On the voodoo it seems anything larger than 256x256 is not allowed

Not with current Warp3D voodoo drivers at least. VSA-100 (Voodoo 4 & 5) does upto 2048x2048.

Quote
Have you tried any rectangular images?

Not really. For some reason I assumed it needed to be 1:1 :-) Will try later...

Quote
Also, if you didn't read the "manual" (if I even included one), there is a "scale" option (which is floating point) for smaller images.

Yeah, used with that at first, then looked for some larger images to play with.
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16879
  • Country: gb
  • Thanked: 5 times
    • Show only replies by Karlos
Re: Warp3d synchro/double-triply bufferging
« Reply #58 on: February 19, 2005, 12:49:46 AM »
@kas1e

Getting back to the original topic, I sent you a working fullscreen / double buffered / synchronized demo :-)

I would post it someplace but Piru will kick my ass for using WaitBOVP() ;-)

Oops, that let the cat out of the bag...

-edit-

@Piru

Quote

Not with current Warp3D voodoo drivers at least. VSA-100 (Voodoo 4 & 5) does upto 2048x2048.


I meant the Voodoo3000 and below. Havent yet got an image larger than 256x256 to work on the Voodoo3000 system here :-/

Incidentally, the P2 will cope with 2048*2048 textures. Having said that, with 8MB of VRAM you'd be very lucky to fit one in ;-)
int p; // A
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16879
  • Country: gb
  • Thanked: 5 times
    • Show only replies by Karlos
Re: Warp3d synchro/double-triply bufferging
« Reply #59 on: February 19, 2005, 11:57:01 AM »
Getting back to the WaitBVOP() issue...

I ran some simple tests (via executive/top) using the code I sent to kas1e and I think Piru is right about the busy waiting - the task uses a lot of CPU when just switching the screenbuffers and waiting for synch with WaitBVOP().

I have never experienced problems as a result of this, but then any single threaded application likely spends only a part of its time waiting for the synch.

I'll try the proper way and see what that does for it.
int p; // A