Friday, May 19, 2006

Mesa continues ..

Its been pretty hard goin with Mesa over the last week or so..

Firstly, The mesagl.hidd started working properly with mesa3.5, so I started merging the code with the newest refresh of Mesa (6.5) - quite a jump!

Well, today I finally got the binaries to output something - though there where clearly a couple of bugs and some unexpected surprises =)

The accelerated software line and triangle functions which didnt get called with mesa3.5 now are being utilised, so those demos arew now running a little faster. Morph3D is showing a bug - the glclear function isnt operating correctly yet.

Over the next few days I will tidy up the AROSMesa linklib code to work properly with 6.5 which will hopefully make it a bit more efficient, and then start about updating the mesagl.hidd to operate properly with the new setup.

If i find time l8r I will try and "port" a small shader test to check mesa is indeed working properly with all the latest gl functionality.

Monday, May 08, 2006

mesagl.hidd

Expect Spam in this blog !

Ive started to rework the AROSMesa software rasterizing code into hidds (namely mesagl.hidd and mesaglrast.hidd) in the hope of bringing atleast a basic level of hardware accelerateble OpenGL to AROS. So far tests of the basic class operations themselves (not the actual linklib) have been successfull.

Code is inplace for a gfx.hidd to identify a mesagl.hidd replacement to use, and for the replacement to register and be used instead of mesagl.hidd's object.

Anyhow this is the current debug output - the hidd is only intially used at the moment for testing, then it returns to the default AROSMesa code.


OpenWorkbenchObject: name = AROS Live CD:Extras/Gfx/Mesa/Demos-old/morph3d
OpenWorkbenchObject: isDefaultIcon = 1
OpenWorkbenchObject: it's a TOOL
OpenWorkbenchObject: it's a CLI program
OpenWorkbenchObject: success = 1
The function ChangeExtSpriteA() is not implemented.
[AROSMESA] AROSMesaCreateContext(taglist @ 1f39ac0)
[AROSMESA] AROSMesaCreateContext: Opened OOP subsystem

[hiddmesagl][libinit] Initialising MesaGL.hidd ..
[hiddmesagl][libinit] Memory Pool Allocated @ 1ca16e0
[hiddmesagl][libinit] Driver List Prepared ..
[hiddmesagl][libinit] Context List Prepared ..
[hiddmesagl][libexpunge] Expunging MesaGL.hidd ..
[hiddmesaglrast][libinit] Initialising MesaGLRast.hidd ..
[hiddmesaglrast][libexpunge] Expunging MesaGLRast.hidd ..
[hiddmesagl][root] MesaGL__Root__New()
[hiddmesagl][root] MesaGL__Root__New: Finding Hidd for specified RastPort @ 1ca0698
[hiddmesagl][root] MesaGL__Root__New: Using base mesaGL.hidd (software rendering)
[hiddmesagl][root] MesaGL__Root__New: MesaGL Hidd Object allocated @ 1ca1308

[AROSMESA] AROSMesaCreateContext: MesaGL.hidd object @ 1ca1308

[hiddmesagl] CreateContext(taglist @ 1f39ac0)
[hiddmesagl] CreateContext: context record allocated @ 1c7e46c
[hiddmesagl] CreateContext: rasterizer record allocated @ 1ca132c
[hiddmesagl] CreateContext: Called with RastPort @ 1ca0698
[hiddmesagl] CreateContext: Using Rasterizer 'hidd.mesagl.rast' (pointer = 1ca15c8)
[hiddmesaglrast][root] MesaGLRast__Root__New()
[hiddmesaglrast][root] MesaGLRast__Root__New: MesaGLRast Hidd Object allocated @ 1ca1710
[hiddmesagl] CreateContext: Rasterizer Object @ 1ca1710

[AROSMESA] AROSMesaCreateContext: MesaGL.hidd_CreateContext() returns 1c7e46c
[AROSMESA] AROSMesaCreateContext: AROSMesaContext Allocated @ 1ca0e54
[AROSMESA] AROSMesaCreateContext: gl_ctx Allocated @ 1ffad4c
[AROSMESA] AROSMesaCreateContext: Screen @ 1725a28
[AROSMESA] AROSMesaCreateContext: window @ 1ca0790
[AROSMESA] AROSMesaCreateContext: Using RastPort @ 1ca0698
[AROSMESA] AROSMesaCreateContext: Creating new AROSMesaVisual

[hiddmesagl] CreateVisual(taglist @ 1f39ac0)
[hiddmesagl] CreateVisual: visual record allocated @ 1ca1734
[hiddmesagl] CreateVisual: Visual Rastport @ 1ca1d48 [24bit]
[hiddmesagl] CreateVisual: Allocated BackBuffer RastPort @ 1d55468 (DOUBLEBUFFER)
[hiddmesagl] CreateVisual: RastPort Dimensions [width:647, height:510]

[AROSMESA] AROSMesaCreateContext: MesaGL.hidd_CreateVisual() returns 1ca1734
[AROSMESA] AROSMesaCreateVisual(taglist @ 1f39a60)
[AROSMESA] AROSMesaCreateVisual: amesa Context @ 1ca0e54
[AROSMESA] AROSMesaCreateVisual: Using RastPort @ 1ca0698
[AROSMESA] AROSMesaCreateVisual: RastPort.BitMap Depth = 24
[AROSMESA] AROSMesaCreateVisual: Using RGB Mode
[AROSMESA] AROSMesaCreateContext: [ASSERT] RastPort @ 1ca0698
[AROSMESA] AROSMesaCreateContext: [ASSERT] RastPort @ 1ca0698
[AROSMESA] AROSMesaCreateContext: Enabled Mesa Software Extensions
[AROSMESA] AROSMesaCreateContext: Using Direct Rendering on RastPort @ 1ca0698
[AROSMESA:TC] arosTC_Standard_init(amesa @ 1ca0e54, taglist @ 1f39ac0)
[AROSMESA:TC] arosTC_Standard_init: Using RastPort @ 1ca0698
[AROSMESA:TC] arosTC_Standard_init: Cloned RastPort @ 1ca17a8
[AROSMESA:TC] arosTC_Standard_init: Clipping Rastport to Window's dimensions
[AROSMESA:TC] arosTC_Standard_init: Context Base dimensions set -:
[AROSMESA:TC] arosTC_Standard_init: amesa->RealWidth = 647
[AROSMESA:TC] arosTC_Standard_init: amesa->RealHeight = 510
[AROSMESA:TC] arosTC_Standard_init: amesa->width = 637
[AROSMESA:TC] arosTC_Standard_init: amesa->height = 477
[AROSMESA:TC] arosTC_Standard_init: amesa->left = 5
[AROSMESA:TC] arosTC_Standard_init: amesa->right = 5
[AROSMESA:TC] arosTC_Standard_init: amesa->top = 18
[AROSMESA:TC] arosTC_Standard_init: amesa->bottom = 15
[AROSMESA:TC] arosTC_Standard_init: amesa->depth = 24
[AROSMESA:RAST] arosRasterizer_make_rastport()
[AROSMESA:TC] arosTC_Standard_init: Allocated BackBuffer RastPort (DOUBLEBUFFER)
[AROSMESA:RAST] arosRasterizer_AllocOneLine()
[AROSMESA] AROSMesaCreateContext: AROS Rasterizer initialised.

[hiddmesagl] CreateBuffers(hiddMesaGLVisual @ 1ca1734)
[hiddmesagl] CreateBuffers: buffer record allocated @ 1ca0744
[hiddmesagl] CreateBuffers: Single Line Render Buffer allocated @ 216363c

[AROSMESA] AROSMesaCreateContext: MesaGL.hidd_CreateBuffers(visual @ 1ca1734) returns 1ca0744
[AROSMESA] AROSMesaCreateBuffer(visual @ 1b77c8c)
[AROSMESA] AROSMesaCreateBuffer: Context Buffers created
[AROSMESA] AROSMesaCreateContext: Using framebuffer @ 1c1d204.
[AROSMESA] AROSMesaCreateContext: Mesa CORE Contexts Created
[AROSMESA] AROSMesaCreateContext: Context Created
[AROSMESA] AROSMesaMakeCurrent(amesa @ 1ca0e54, buffer @ 1c1d204)
[AROSMESA:TC] arosTC_update_state(ctx @ 1ffad4c, state -1)
[AROSMESA:TC] arosTC_update_state: SWDD @ 2016c74
[AROSMESA:TC] arosTC_update_state: TNL @ 22e6140
[AROSMESA] AROSMesaMakeCurrent: set current mesa context/buffer
[AROSMESA] AROSMesaMakeCurrent: initialised rasterizer driver functions
[AROSMESA] AROSMesaMakeCurrent: call glViewport(0, 0, 637, 477)
[AROSMESA:TC] arosTC_buffer_size(amesa @ 1ca0e54)
[AROSMESA:TC] arosTC_buffer_size(ctx=1ffad4c) = w:637 x h:477
[AROSMESA:TC] arosTC_buffer_size: amesa->RealWidth =647
[AROSMESA:TC] arosTC_buffer_size: amesa->RealHeight=510
[AROSMESA:TC] arosTC_buffer_size: amesa->width =637
[AROSMESA:TC] arosTC_buffer_size: amesa->height=477
[AROSMESA:TC] arosTC_buffer_size: amesa->left =5
[AROSMESA:TC] arosTC_buffer_size: amesa->bottom=15
[AROSMESA:TC] arosTC_buffer_size: amesa->depth =24
[AROSMESA:TC] arosTC_clear_color(c=1ffad4c,r=0,g=0,b=0,a=255) = ff000000
[AROSMESA:TC] arosTC_update_state(ctx @ 1ffad4c, state -1)
[AROSMESA:TC] arosTC_update_state: SWDD @ 2016c74
[AROSMESA:TC] arosTC_update_state: TNL @ 22e6140
[AROSMESA:TC] arosTC_clear(all:1,x:0,y:0,w:637,h:477)
[AROSMESA:TC] arosTC_clear: back_rp->Clearing viewport (ALL)
[AROSMESA:TC] arosTC_flush(ctx @ 1ffad4c) : Unimplemented - glFlush()
[AROSMESA] AROSMesaSwapBuffers(amesa @ 1ca0e54)
[AROSMESA:RAST] arosRasterizer_Standard_SwapBuffer(amesa @ 1ca0e54)
[AROSMESA:TC] arosTC_update_state(ctx @ 1ffad4c, state 525376)
[AROSMESA:TC] arosTC_update_state: SWDD @ 2016c74
[AROSMESA:TC] arosTC_update_state: TNL @ 22e6140
[AROSMESA:TC] arosTC_buffer_size(amesa @ 1ca0e54)
[AROSMESA:TC] arosTC_buffer_size(ctx=1ffad4c) = w:637 x h:477
[AROSMESA:TC] arosTC_buffer_size: amesa->RealWidth =647
[AROSMESA:TC] arosTC_buffer_size: amesa->RealHeight=510
[AROSMESA:TC] arosTC_buffer_size: amesa->width =637
[AROSMESA:TC] arosTC_buffer_size: amesa->height=477
[AROSMESA:TC] arosTC_buffer_size: amesa->left =5
[AROSMESA:TC] arosTC_buffer_size: amesa->bottom=15
[AROSMESA:TC] arosTC_buffer_size: amesa->depth =24
[AROSMESA:TC] arosTC_update_state(ctx @ 1ffad4c, state 1573378)
[AROSMESA:TC] arosTC_update_state: SWDD @ 2016c74
[AROSMESA:TC] arosTC_update_state: TNL @ 22e6140
[AROSMESA:TC] arosTC_clear(all:1,x:0,y:0,w:637,h:477)
[AROSMESA:TC] arosTC_clear: back_rp->Clearing viewport (ALL)
[AROSMESA:TC] arosTC_update_state(ctx @ 1ffad4c, state 1)
[AROSMESA:TC] arosTC_update_state: SWDD @ 2016c74
[AROSMESA:TC] arosTC_update_state: TNL @ 22e6140
[AROSMESA:TC] arosTC_write_rgba_span3(count=1,x=324,y=149)FAST nomask
[AROSMESA:TC] arosTC_write_rgba_span3(count=2,x=323,y=150)FAST nomask
[AROSMESA:TC] arosTC_write_rgba_span3(count=1,x=323,y=149)FAST nomask
[AROSMESA:TC] arosTC_write_rgba_span3(count=1,x=325,y=148)FAST nomask