goa / w3d on radeon cards
  • Caterpillar
    Caterpillar
    Posts: 33 from 2013/6/20
    Hello all

    Just to say that I have now Wazp3D ppc using hardware TinyGL on Morphos :-)
    It give around 63 to 66 FPS on Cow3D (Cow3D 68k + Key 'b' = bufferize animation) on a Powerbook G4

    Badly when started a second time Cow3D + Wazp3D crash ...So I cant release such a buggy Wazp3D version :-/

    Crash happen in glAInitializeContextBitMap(bm)
    But TinyGL is ok as glGetString(GL_VENDOR)); works
    and the bitmap bm from WaRp3D (seems) to be ok as WaZp3D can detect bitmap size & format

    So for the moment I have no idea what cause the crash....
    So I deeply need a true Morphos guru

    Henes ? Fab ?

    Alain Thellier

    thellier # free ° fr
  • »18.11.13 - 21:12
    Profile Visit Website
  • Priest of the Order of the Butterfly
    Priest of the Order of the Butterfly
    tolkien
    Posts: 502 from 2013/5/29
    Good news! Well...more or less. Thanks Thellier for the support.
    MorphOS: PowerMac G5 - PowerBook G4 - MacMini.
    Classic: Amiga 1200/060 - A500 PiStorm
  • »18.11.13 - 22:31
    Profile
  • MorphOS Developer
    kiero
    Posts: 129 from 2003/2/28
    Quote:

    thellier wrote:


    Crash happen in glAInitializeContextBitMap(bm)
    But TinyGL is ok as glGetString(GL_VENDOR)); works
    and the bitmap bm from WaRp3D (seems) to be ok as WaZp3D can detect bitmap size & format



    First of all enable tinygl debug. You can do it with setenv save TGLDEBUG 1. Then please post a log here (together with stacktrace). Another thing with GLA context which you have to take special care with is not to delete rendering target before deleting GLA context. So if You have a context for a bit then be really careful to do it like this:

    allocbitmap
    initializecontext (please use tagged glAInitializeContext instead of glAInitializeContextBitMap as that one is deprecated)
    ...rendering...
    glaDestroyContext
    freebitmap

    Michal 'kiero' Wozniak
  • »18.11.13 - 22:32
    Profile Visit Website
  • Caterpillar
    Caterpillar
    Posts: 33 from 2013/6/20
    Hello

    Thanks kiero : this time it works well even if I run Cow3D several times :-)

    In fact the error was that I was closing TinyGL.library in the GL code but this library must stay opened until WaZ/Rp3D.library itself close (ie until all Warp3D tasks are closed)
    Stupid me...

    Now I will clean the code and add some stuffs (not morphos related)
    So expect a Wazp3D for Morphos for christmas ;-)

    BTW many thanks to BSzili that maded the initial Wazp3D port (software only) to Morphos :-)

    Alain Thellier - Wazp3D
  • »21.11.13 - 08:56
    Profile Visit Website
  • Priest of the Order of the Butterfly
    Priest of the Order of the Butterfly
    serge
    Posts: 725 from 2003/2/20
    veru happy news. Thanky very much Alain Thellier. :-)
  • »21.11.13 - 09:04
    Profile
  • Butterfly
    Butterfly
    waldiamiga
    Posts: 90 from 2007/7/25
    From: Krakow, Poland
    Yeahh. Very good information!

    MorphOS.pl
    PowerBook G4 1.67GHz|2GB DDR2|ATI Radeon 9700M 128MB|SSD 80GB|TFT 17"|MorphOS 3.1x
    Core i7 Notebook|WinUAE 3.x/AmigaOS4.1x & Icaros Desktop 2.x & QEmu 6.x.x
  • »21.11.13 - 14:44
    Profile
  • Paladin of the Pegasos
    Paladin of the Pegasos
    redrumloa
    Posts: 1424 from 2003/4/13
    thellier,

    Very good stuff! Much respect! :-)
  • »21.11.13 - 22:10
    Profile
  • Caterpillar
    Caterpillar
    Posts: 33 from 2013/6/20
    Hello folks

    It seems that "perspective texturing" dont works :-(
    I am using this command in the opengl (TinyGL) wrapper
    glTexCoordPointer(4, GL_FLOAT, 4*4,V);
    and it dont seems to works on Morphos
    (but the same code worked on WinUAE/PC version)

    It is needed as WaZ/Rp3D works in "screen space" so need a W coordinate for perspective correction
    Is there a problem in TinyGL concerning this function ???
    Is there an other function that use W coordinate (= q coordinate in OpenGL terminlogy) that works ?

    Alain Thellier

    Wazp3D-Morphos tests:
    Cow3D-68k: works 95%
    BlitzQuake-68k: works but texturing is false (= lack of perspective correction)
    TheVague1-68k: works 100%
    TheVague2-68k: works 100%
    GlExcess-Os3-68k: works but texturing is false too + coloring problems (so StormMesa2010 68k partially works :-) as GlExcess use it)
    WipeOut_2097_Demo: dont start... (problem with my WipeoutLoader usage?)
    Cube-68k: dont start
    Chromium-68k: dont start
    IhaveNoTomatoes-68k: dont start
    ... the lasts 3 are certainly lacking an SDL or ixemul version








    [ Edited by thellier 26.11.2013 - 09:20 ]
  • »26.11.13 - 09:19
    Profile Visit Website
  • MorphOS Developer
    kiero
    Posts: 129 from 2003/2/28
    Hmmm, not sure if we tested use of 4 component texture coordinates. On what hardware are you running it? r200 or r300 radeon?
  • »26.11.13 - 11:09
    Profile Visit Website
  • MorphOS Developer
    kiero
    Posts: 129 from 2003/2/28
    blah, double post

    [ Edited by kiero 26.11.2013 - 10:11 ]
  • »26.11.13 - 11:11
    Profile Visit Website
  • Caterpillar
    Caterpillar
    Posts: 33 from 2013/6/20
    >r200 or r300 radeon?
    Dont know :it is a powebook g4 alu with a big screen
    Will check tomorrow

    BTW do you know if the WipeOut_2097_Demo from aminet also works on Morphos ? or only the full game version ?

    Alain
  • »26.11.13 - 12:33
    Profile Visit Website
  • MorphOS Developer
    kiero
    Posts: 129 from 2003/2/28
    ok, pbook is r300. no idea about wipeout demo
  • »26.11.13 - 13:32
    Profile Visit Website
  • Paladin of the Pegasos
    Paladin of the Pegasos
    Intuition
    Posts: 1110 from 2013/5/24
    From: Nederland
    Quote:

    thellier wrote:
    Hello folks

    It seems that "perspective texturing" dont works :-(
    I am using this command in the opengl (TinyGL) wrapper
    glTexCoordPointer(4, GL_FLOAT, 4*4,V);
    and it dont seems to works on Morphos
    (but the same code worked on WinUAE/PC version)

    It is needed as WaZ/Rp3D works in "screen space" so need a W coordinate for perspective correction
    Is there a problem in TinyGL concerning this function ???
    Is there an other function that use W coordinate (= q coordinate in OpenGL terminlogy) that works ?

    Alain Thellier

    Wazp3D-Morphos tests:
    Cow3D-68k: works 95%
    BlitzQuake-68k: works but texturing is false (= lack of perspective correction)
    TheVague1-68k: works 100%
    TheVague2-68k: works 100%
    GlExcess-Os3-68k: works but texturing is false too + coloring problems (so StormMesa2010 68k partially works :-) as GlExcess use it)
    WipeOut_2097_Demo: dont start... (problem with my WipeoutLoader usage?)
    Cube-68k: dont start
    Chromium-68k: dont start
    IhaveNoTomatoes-68k: dont start
    ... the lasts 3 are certainly lacking an SDL or ixemul version



    Have you tried this?

    http://mos.aminet.net/package/game/patch/WipeoutLoader
    1.67GHz 15" PowerBook G4, 1GB RAM, 128MB Radeon 9700M Pro, 64GB SSD, MorphOS 3.15

    2.7GHz DP G5, 4GB RAM, 512MB Radeon X1950 Pro, 500GB SSHD, MorphOS 3.9
  • »26.11.13 - 16:16
    Profile
  • Yokemate of Keyboards
    Yokemate of Keyboards
    Andreas_Wolf
    Posts: 12074 from 2003/5/22
    From: Germany
    > Have you tried this?
    > http://mos.aminet.net/package/game/patch/WipeoutLoader

    He mentioned "WipeoutLoader usage" in posting #20.
  • »26.11.13 - 16:54
    Profile
  • Butterfly
    Butterfly
    waldiamiga
    Posts: 90 from 2007/7/25
    From: Krakow, Poland
    @Alain Thellier


    Check scenedemos by Encore,that both productions require Warp3D

    Sulaco
    By Night

    MorphOS.pl
    PowerBook G4 1.67GHz|2GB DDR2|ATI Radeon 9700M 128MB|SSD 80GB|TFT 17"|MorphOS 3.1x
    Core i7 Notebook|WinUAE 3.x/AmigaOS4.1x & Icaros Desktop 2.x & QEmu 6.x.x
  • »26.11.13 - 20:41
    Profile
  • MorphOS Developer
    kiero
    Posts: 129 from 2003/2/28
    Oh, one more thing. Are You using immediate mode or vertex arrays?

    kiero
  • »26.11.13 - 23:02
    Profile Visit Website
  • Caterpillar
    Caterpillar
    Posts: 33 from 2013/6/20
    Hello

    @waldiamiga
    Ok will test those demos

    @Intuition
    I have used the patch but perhaps it dont works with the demo WipeOut_2097_Demo
    This demo works some time on os4/wazp3D but finally crash due to the memory hit bug

    @kiero
    I am using only glDrawArrays for all drawings (see below)
    Now Wazp3D convert all primitives (like say a W3D_DrawTriFan) to triangles/points/lines list so now only the "newdraw" code is still present

    /*==================================================================*/
    void HARD3D_DrawPrimitive(void *hc,void *p,unsigned long Pnb,unsigned long primitive)
    {
    struct point3D *P=p;
    struct HARD3D_context *HC=hc;
    unsigned char UsePersp =(HC->state->PerspMode!=0);
    struct TexCoord4f *V=(void*)HC->V;
    unsigned int mode;
    long int n;

    HFUNC(HARD3D_DrawPrimitive);
    OS_CurrentContext(hc);
    VAR(P)
    VAR(Pnb)

    if(Pnb>MAXPRIM)
    return;

    if(UsePersp)
    {
    NLOOP(Pnb)
    {

    V[n].s=P[n].w*P[n].u ;
    V[n].t=P[n].w*P[n].v ;
    V[n].r=0.0;
    V[n].q=P[n].w;
    if(1.0 if(P[n].z<0.0) P[n].z=0.0;
    }
    glTexCoordPointer(4, GL_FLOAT, 4*4,HC->V);
    }
    else
    {
    NLOOP(Pnb)
    {
    if(1.0 if(P[n].z<0.0) P[n].z=0.0;
    }
    glTexCoordPointer(2, GL_FLOAT,PSIZE,(void *)&(P->u));
    }

    NLOOP(Pnb)
    PrintP(&P[n]);

    if(primitive==W3D_PRIMITIVE_POINTS) {primitive=GL_POINTS; goto newdraw;}
    if(primitive==W3D_PRIMITIVE_LINESTRIP) {primitive=GL_LINE_STRIP; goto newdraw;}
    if(primitive==W3D_PRIMITIVE_LINELOOP) {primitive=GL_LINE_LOOP; goto newdraw;}
    if(primitive==W3D_PRIMITIVE_LINES) {primitive=GL_LINES; goto newdraw;}
    if(primitive==W3D_PRIMITIVE_TRISTRIP) {primitive=GL_TRIANGLE_STRIP; goto newdraw;}
    if(primitive==W3D_PRIMITIVE_TRIFAN) {primitive=GL_TRIANGLE_FAN; goto newdraw;}
    if(primitive==W3D_PRIMITIVE_TRIANGLES) {primitive=GL_TRIANGLES; goto newdraw;}
    if(primitive==W3D_PRIMITIVE_POLYGON) {primitive=GL_POLYGON; goto newdraw;}


    newdraw:
    REM(newdraw)
    VAR(primitive)

    if(currentP!=P)
    {
    REM(P changed)
    currentP=P;
    glVertexPointer(3, GL_FLOAT, PSIZE,(void *)&(P->x));
    glEnableClientState(GL_VERTEX_ARRAY);
    glColorPointer(4,GL_UNSIGNED_BYTE,PSIZE,(void *)&(P->RGBA));
    glEnableClientState(GL_COLOR_ARRAY);
    }

    glDrawArrays(primitive,0,Pnb);
    return;
    }
  • »27.11.13 - 09:08
    Profile Visit Website
  • Caterpillar
    Caterpillar
    Posts: 33 from 2013/6/20
    @kiero

    Also I tried to draw the primitive this (old & slow) way

    glBegin(primitive);
    NLOOP(Pnb)
    {
    glVertex3f(P[n].x,P[n].y,P[n].z);

    if(UsePersp)
    glTexCoord4f(P[n].u,P[n].v,0.0,P[n].w);
    else
    glTexCoord2f(P[n].u,P[n].v);

    if(UseColors)
    glColor4f((float)P[n].RGBA[0]/255.0,(float)P[n].RGBA[1]/255.0,(float)P[n].RGBA[2]/255.0,(float)P[n].RGBA[3]/255.0);
    else
    glColor4f( (float)HC->state->CurrentRGBA[0]/255.0,(float)HC->state->CurrentRGBA[1]/255.0,(float)HC->state->CurrentRGBA[2]/255.0,(float)HC->state->CurrentRGBA[3]/255.0);

    }
    glEnd();

    But glTexCoord4f() dont seems to exist in TinyGL as the compiler said :-/

    @waldiamiga
    I have tested the 2 demos : after starting (window/screen mode ?) they just freeze : do they need some dependancies ? (I am using a basic install from morphos cd)

    Alain
  • »28.11.13 - 08:34
    Profile Visit Website
  • Paladin of the Pegasos
    Paladin of the Pegasos
    Intuition
    Posts: 1110 from 2013/5/24
    From: Nederland
    @Alain

    I could send you an iso image of the full game if you like?

    I gave the original CD to Karlos to help him test his BVision driver for OS4 but I'm sure he won't mind making you an iso if I ask him.

    [ Edited by Intuition 28.11.2013 - 13:10 ]
    1.67GHz 15" PowerBook G4, 1GB RAM, 128MB Radeon 9700M Pro, 64GB SSD, MorphOS 3.15

    2.7GHz DP G5, 4GB RAM, 512MB Radeon X1950 Pro, 500GB SSHD, MorphOS 3.9
  • »28.11.13 - 14:08
    Profile
  • Caterpillar
    Caterpillar
    Posts: 33 from 2013/6/20
    @Intuition

    Thanks Would be great to have WipeOut to test as it is certainly the most wanted war/zp3d game

    Alain
  • »29.11.13 - 17:30
    Profile Visit Website
  • MorphOS Developer
    Henes
    Posts: 507 from 2003/6/14
    The Wipeout2097 demo works very fine on MorphOS. I just tried it a few minutes ago on my Pegasos2.
    AFAIR the demo has no "memory hit bug" and does not require a special loader. The illegal chip memory access is only a feature of the full game. So no need to pirate it...
  • »01.12.13 - 23:25
    Profile Visit Website
  • Priest of the Order of the Butterfly
    Priest of the Order of the Butterfly
    Cego
    Posts: 712 from 2006/5/28
    From: Germany
    so any update on this?
    Pegasos II G4 @1.0GHz, 1GB DDR Ram, Radeon 9200Pro, 240GB SSD+160GB HD, MorphOS 3.18, AmigaOS4.1 FE, Debian 8
  • »21.12.13 - 11:44
    Profile
  • Caterpillar
    Caterpillar
    Posts: 33 from 2013/6/20
    >so any update on this?

    Not much :-/
    I have succeeded to make works the screenmode-requester in Wazp3D but the other problems remains (see below)
    As I have no ideas how to fix that I will release Wazp3D55 as it is (including Morphos version)
    Just give me some days to clean up the code

    I know that I promised Wazp3D for Christmas but I wanted to test it with latest Morphos3.4 : it is faster now but problems remains

    Alain Thellier

    From ReadMe:
    -------------------------------------------------------------------------------------------------------
    Beta 55
    o Bug fix about coloring (recent bug in GleXcess scene 4 )
    o OS4: Now Crisot demo "Universe#3 TheTrip" works (but without the bump-mapping effect of course)
    o Morphos: First Wazp3D for Morphos : GleXcess,Blitzquake,TheVague1,TheVague2,Cow3D,Microbe3D-demo,Nukleus-CowsNBubblesFeatVs4 demo works
    This version have software rendering and "renderer:hard" that use hardware TinyGL giving fast performances.
    W3D_MODULATE (texture coloring) dont works
    Perspective-texturing dont works because TinyGL dont know glTexCoordPointer(4,...)
    Lots of 3D progs dont works (cause unknown)
    Note: On Morphos OS4emu dont seems to emulate the Warp3D v5 functions so only old Warp3D progs may works (so Crisot demo draw nothing)
    -------------------------------------------------------------------------------------------------------
  • »27.12.13 - 10:08
    Profile Visit Website
  • Caterpillar
    Caterpillar
    Posts: 33 from 2013/6/20
    Hello & Happy New Year 2014

    Wazp3D for Morphos is NOW on Aminet
    It use TinGL as hardware renderer so people without Goa3D drivers will benefit from it
    Certainly you will be disapointed as there are not much progs that works with it :-/
    And there are lesser progs that run 100% perfect :-(

    One of the major issue is the perspective-texturing that dont works because TinyGL dont support glTexCoordPointer(4,...);

    Alain Thellier - Wazp3D
    http://thellier.free.fr/Wazp3D.htm
  • »02.01.14 - 09:18
    Profile Visit Website