Welcome, Guest. Please login or register.

Author Topic: Layers.library V45 on the aminet  (Read 129480 times)

Description:

0 Members and 6 Guests are viewing this topic.

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16879
  • Country: gb
  • Thanked: 5 times
    • Show all replies
Re: Layers.library V45 on the aminet
« on: September 16, 2014, 11:29:27 AM »
Quote from: Cosmos;773136
For exemple, the W3D_Permedia2.library is 276 615 lines long and I make any changes very easly...


There's an unreleased version of this library for OS3.x (the OS4 version is based on it). It's about 1/8th the size of the Warp3D 4.2 release version, fully supports every v4 array/element/index size primitive and is up to 2x faster at rendering triangle/strip/fan lists.

Those gains were from refactoring the C and then rewriting some vertex fetch routines in assembler. The latter did not give much gain since in the end the bus is the bottleneck.
int p; // A
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16879
  • Country: gb
  • Thanked: 5 times
    • Show all replies
Re: Layers.library V45 on the aminet
« Reply #1 on: September 17, 2014, 08:38:49 AM »
Quote from: wawrzon;773155
and here we go again. things that could improve the experience on 68k are held back to remain os4 exclusive.


Not exactly. This work pre dated OS4. I never released it at the time because in fixing a few bugs (and doubtless introducing new ones) I broke compatibility with a few applications. Most notably some of the better demos. I wrote entire suites of tests and can honestly say the driver honoured the API but there exists a corpus of software that relied on some obscure undocumented and likely accidental side effects of the original code. And while the improved performance in synthetic tests was nice, the gains were marginal in most games because the bottlenecks where elsewhere (esp. on ppc).

And that's the moral of this story. Optimising the %&$#?@!%&$#?@!%&$#?@!%&$#?@! out of a single small area often leaves you with little to show for it other than more bugs than you started with. None of the fixes to the v4 drawing calls mattered for existing software except to my projects, and they were still broken / unimplemented in the other drivers, so my software was left running on P2 when voodoo was fast becoming the norm. MiniGL went from v3 api calls to v5 (OS4 only) rendering those fixes irrelevant for most applications.

I had marginally faster minigl 1.5 / heretic 2 / glquake and a lot of wrecked elude demos.


Quote
of course you and the genuine source owners have every right to do what they please, but imagine what might have happened if you published your work as open source backend to wazp3d. perhaps it could even have become a template for volunteers king for opportunity to write other w3d drivers, and literally everyone could gain from it including os4 community.


I'd be happy to release it, but it isn't up to me. Warp3D belongs to Hyperion and is now part of OS4. It's also deprecated so they may be ok with it. Either way, I'd have to ask.
int p; // A
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16879
  • Country: gb
  • Thanked: 5 times
    • Show all replies
Re: Layers.library V45 on the aminet
« Reply #2 on: September 19, 2014, 08:13:26 PM »
Quote from: wawrzon;773225
you have had access to the sources and been working on a w3d driver predating os4? wow!


It was a long time ago. I was trying to write some code around the V4 API and it kept having issues on my BVision. Somehow I ended up volunteering to find the source of the bugs and I got access.

Although the driver was never publicly released for the issues stated earlier,  the specific architectural changes that made the updated driver much smaller were adopted in the later drivers for other chips.

I later got involved in Warp3D on OS4 because I was one of few people with the necessary experience and will. I (re)wrote the Permedia driver for OS4 based on my updated 3.x code.

I like Warp3D, but it has far outlived it's usefulness. It's closed, deprecated and for many reasons it'll never deliver the full performance of the hardware it can support.

IMHO, for better 3D in OS3.x (and indeed OS4 on lower end machines), we need a replacement, open-source driver system, designed from the ground up on and for our machines. Such a driver could then have wrappers implemented for both Warp3D and OpenGL.

I have a lot of ideas for this, but no time.
int p; // A