TinyGL: FBO, Shaders and futur improvements
  • MorphOS Developer
    bigfoot
    Posts: 510 from 2003/4/11
    Today I've released the tenth public TinyGL beta release.

    The main focus of this release is implementing support for framebuffer objects. However, in the course of doing that, many other related and unrelated parts of TinyGL have been improved as well, resulting in better OpenGL compliance and more features being implemented.

    Please note that the R600 driver is absent from this release, but that it will be readded in a future release once I've updated it to the current TinyGL requirements.

    For software developers, please make sure you read the included ReadMe file for important information on using new TinyGL features and fixes.

    I'd like to thank everyone who's helped test this release, but especially beworld for his tireless testing and feedback regarding framebuffer objects and my general TinyGL improvements as well as jPV for his very helpful testing in this last week that helped me fix a handful of problems that would otherwise have made it into this release undetected.
    I rarely log in to MorphZone which means that I often miss private messages sent on here. If you wish to contact me, please email me at [username]@asgaard.morphos-team.net, where [username] is my username here on MorphZone.
  • »29.09.24 - 02:48
    Profile Visit Website
  • ASiegel
    Posts: 1386 from 2003/2/15
    From: Central Europe
    Yay!
  • »29.09.24 - 03:14
    Profile
  • Priest of the Order of the Butterfly
    Priest of the Order of the Butterfly
    tolkien
    Posts: 546 from 2013/5/29
    Thanks so much bigfoot, beworld and jpv! Will try right now.
    MorphOS: PowerMac G5 - PowerBook G4 - MacMini.
    Classic: Amiga 1200/060 - A500 PiStorm
  • »29.09.24 - 08:10
    Profile
  • Butterfly
    Butterfly
    waldiamiga
    Posts: 95 from 2007/7/25
    From: Krakow, Poland
    Wow! Good news!

    MorphOS.pl
    PowerBook G4 1.67GHz|2GB DDR2|ATI Radeon 9700M 128MB|SSD 80GB|TFT 17"|MorphOS 3.1x
    Alienware 15 R3|WinUAE 5.x/AmigaOS4.1x & Icaros Desktop 2.x & QEmu 9.x.x
  • »29.09.24 - 09:54
    Profile
  • Order of the Butterfly
    Order of the Butterfly
    MoerBoer
    Posts: 237 from 2019/10/15
    From: South Africa
    Great news, thanks bigfoot, beworld and jPV!
  • »29.09.24 - 12:56
    Profile
  • Order of the Butterfly
    Order of the Butterfly
    Brumiga
    Posts: 262 from 2004/4/3
    From: France
    At every boot I have the activity indicator of debug 'on'. I do not know what/who is responsible, sdl 2 or tinygl latest releases. So here is the log that I obtain.

    20.070| 128 bytes read
    20.070| block#0 bytesum 0x0
    20.070| 0x00: 00 ff ff ff ff ff ff 00 26 cd 11 66 26 0b 00 00 .ÿÿÿÿÿÿ..Í.f....
    20.070| 0x10: 10 19 01 03 80 3c 22 78 2a 2f a5 a5 54 50 9e 27 .......x....TP..
    20.070| 0x20: 10 50 54 33 08 00 71 00 81 40 81 80 a9 40 b3 00 .PT3..q.........
    20.070| 0x30: 95 00 d1 c0 01 01 02 3a 80 18 71 38 2d 40 58 2c ..ÑÀ......q8..X.
    20.071| 0x40: 45 00 56 50 21 00 00 1e 00 00 00 ff 00 31 31 32 E.VP.......ÿ.112
    20.071| 0x50: 38 31 35 31 36 30 32 38 35 34 00 00 00 fd 00 37 8151602854...ý.7
    20.071| 0x60: 4c 1e 53 11 00 0a 20 20 20 20 20 20 00 00 00 fc L.S............ü
    20.071| 0x70: 00 50 4c 58 32 37 38 33 48 0a 20 20 20 20 00 61 .PLX2783H......a
    20.071|
    20.071| ID manufacturer Name = 'IVM'
    20.071| ProductCode = 0x6611
    20.071| Serial Number 260b0000
    20.071| Week of Manufacture 16
    20.071| Year of Manufacture 2015
    20.071| EDID Structure Version 1.3
    20.071|
    20.071| Basic Display Parameters and Features
    20.071| checkDDCdata: Video input: Digital signal
    20.071| Max. Horizontal Image Size 60 cm
    20.071| Max. Vertical Image Size 34 cm
    20.071| Display Transfer Characteristic (Gamma): 2.2
    20.071|
    20.071| Feature Support (0x2a)
    20.071| Supports Active Off/Very Low Power
    20.071| RGB color display
    20.071| Preferred timing mode is indicated in the first detailed timing block
    20.071| (Note: Use of preferred timing mode is required by EDID structure version 1.3 and higher
    20.071|
    20.071| Phosphor or filter chromacity
    20.071| red_x 0.6445 red_y 0.3301
    20.071| green_x 0.3154 green_y 0.6201
    20.071| blue_x 0.1543 blue_y 0.06445
    20.071| white_x 0.2354 white_y 0.1338
    20.071|
    20.071| Established Timings
    20.072| 640 x 480 @ 60Hz (IBM, VGA)
    20.072| 640 x 480 @ 67Hz (Apple, MacII)
    20.072| 800 x 600 @ 56Hz (VESA)
    20.072| 800 x 600 @ 60Hz (VESA)
    20.072| 1024 x 768 @ 60Hz (VESA)
    20.072|
    20.072| Standard timing identification #1
    20.072| code 0x7100 (HActive 1152 Pixels VActive 720 Lines RefreshRate 60Hz Aspect 16:10)
    20.072| Standard timing identification #2
    20.072| code 0x8140 (HActive 1280 Pixels VActive 960 Lines RefreshRate 60Hz Aspect 4:3)
    20.072| Standard timing identification #3
    20.072| code 0x8180 (HActive 1280 Pixels VActive 1024 Lines RefreshRate 60Hz Aspect 5:4)
    20.072| Standard timing identification #4
    20.072| code 0xa940 (HActive 1600 Pixels VActive 1200 Lines RefreshRate 60Hz Aspect 4:3)
    20.072| Standard timing identification #5
    20.072| code 0xb300 (HActive 1680 Pixels VActive 1050 Lines RefreshRate 60Hz Aspect 16:10)
    20.072| Standard timing identification #6
    20.072| code 0x9500 (HActive 1440 Pixels VActive 900 Lines RefreshRate 60Hz Aspect 16:10)
    20.072| Standard timing identification #7
    20.072| code 0xd1c0 (HActive 1920 Pixels VActive 1080 Lines RefreshRate 60Hz Aspect 16:9)
    20.072|
    20.072| monitor descriptor 2 type 0xff
    20.072| Monitor S/N: 1128151602854
    20.072| monitor descriptor 3 type 0xfd
    20.072| Monitor range limits
    20.072| min vfreq 55 max vfreq 76
    20.073| min hfreq 30 max hfreq 83
    20.073| max pixclk 170MHz (0)
    20.073|
    20.073| monitor descriptor 4 type 0xfc
    20.073| Monitor name: PLX2783H

    I forgot to say that I obtain this debug log only with my macmini. On my amigaone x5000 I do not obtain any debug log.

    Brumiga

    [ Edité par Brumiga 29.09.2024 - 18:33 ]
  • »29.09.24 - 14:20
    Profile
  • MorphOS Developer
    jacadcaps
    Posts: 3199 from 2003/3/5
    From: Canada
    @Brumiga

    Ignore it.
  • »29.09.24 - 14:33
    Profile Visit Website
  • MorphOS Developer
    bigfoot
    Posts: 510 from 2003/4/11
    Quote:

    Brumiga wrote:
    At every boot I have the activity indicator of debug 'on'. I do not know what/who is responsible, sdl 2 or tinygl latest releases. So here is the log that I obtain.

    20.070| 128 bytes read


    This is indeed from the TinyGL update, from MOSSYS:Devs/Monitors/Radeon. It's harmless and you can ignore it. It'll be removed in the next TinyGL update I release.
    I rarely log in to MorphZone which means that I often miss private messages sent on here. If you wish to contact me, please email me at [username]@asgaard.morphos-team.net, where [username] is my username here on MorphZone.
  • »30.09.24 - 06:14
    Profile Visit Website
  • Order of the Butterfly
    Order of the Butterfly
    Brumiga
    Posts: 262 from 2004/4/3
    From: France
    Thank you bigfoot for your clarification.

    Brumiga
  • »30.09.24 - 12:31
    Profile
  • Caterpillar
    Caterpillar
    Falcon_11
    Posts: 32 from 2004/2/7
    From: Slovakia
    Thank you Bigfoot for your hard work. Offcourse also others.

    Falcon_11

    [ Edited by Falcon_11 30.09.2024 - 19:29 ]
    DEAD
    MB :Pegasos-II
    CPU :G4/1GHz
    OS :MOS 2.2 reg, MOS 1.4.5, Ubuntu 8.04, MACOSX Panther on MOLk
    RAM :512MB-DDR266 Apacer
    GFX :ATI-Radeon 9200 128MB
    HDD :MAXTOR-160+80GB ATA133
    TV :Pinnacle Studio PCTV


    Powerbook G4 A1139, MOS3.18
  • »30.09.24 - 15:27
    Profile Visit Website
  • Yokemate of Keyboards
    Yokemate of Keyboards
    Papiosaur
    Posts: 2402 from 2003/4/10
    From: France
    This is a new stage for MorphOS! Thanks a lot bigfoot for this new TinyGL! Many games are more speed and new games with FBO support will be ported!

    Thanks a lot to jPV and BeWorld of course too!
  • »01.10.24 - 14:01
    Profile Visit Website
  • Just looking around
    anchor
    Posts: 8 from 2014/1/1
    For me FBO is not advertised with SDL2.
    - I updated TinyGL with TinyGL-Update-2024-09-29.lha
    - I calling tglEnableNewExtensions(0) after calling SDL_GL_CreateContext(), and before listing extensions.

    but EXT_framebuffer_object is not advertised.

    tinygl1.jpg

    tinygl2.jpg

    could anyone use FBO with SDL2?
  • »20.10.24 - 06:27
    Profile Visit Website
  • Priest of the Order of the Butterfly
    Priest of the Order of the Butterfly
    beworld
    Posts: 662 from 2010/2/10
    From: FRANCE
    Quote:

    anchor a écrit :
    For me FBO is not advertised with SDL2.
    - I updated TinyGL with TinyGL-Update-2024-09-29.lha
    - I calling tglEnableNewExtensions(0) after calling SDL_GL_CreateContext(), and before listing extensions.

    but EXT_framebuffer_object is not advertised.

    tinygl1.jpg

    tinygl2.jpg

    could anyone use FBO with SDL2?


    Have you update to last SDL2 ?

    No need to call tglEnableNewExtensions, SDL2 do it: https://github.com/BeWorld2018/SDL/blob/SDL-2.30.7-release/src/video/morphos/SDL_mosopengl.c#L178

    I think you need to force OpenGL 2.0 detection, i see "OpenGL 2.0 not available".. force that. tinygl send you OpenGL 1.2...

    After i need source to check and test
    PowerMac G5 Quad 2.5, IMac G5 2.1, PowerBook G4 1.5, MacMini 1.5
    My MOS ports
  • »20.10.24 - 07:12
    Profile Visit Website
  • Just looking around
    anchor
    Posts: 8 from 2014/1/1
    Thanks Beworld, my SDL2 was deifinitely outdated.
    I updated to SDL-2.30.7, but now i'm getting compile error:

    tinygl3.jpg
  • »20.10.24 - 08:45
    Profile Visit Website
  • Priest of the Order of the Butterfly
    Priest of the Order of the Butterfly
    beworld
    Posts: 662 from 2010/2/10
    From: FRANCE
    Quote:

    anchor a écrit :
    Thanks Beworld, my SDL2 was deifinitely outdated.
    I updated to SDL-2.30.7, but now i'm getting compile error:

    tinygl3.jpg




    ok wiht last version of SDL2, you need to put "-lGL" after -lSDL2
    PowerMac G5 Quad 2.5, IMac G5 2.1, PowerBook G4 1.5, MacMini 1.5
    My MOS ports
  • »20.10.24 - 10:45
    Profile Visit Website
  • Just looking around
    anchor
    Posts: 8 from 2014/1/1
    Thanks for your response Beworld!

    Actually i had no -lGL in the makefile. If i put it after -lSDL2, the error is the same :/
  • »20.10.24 - 14:53
    Profile Visit Website
  • Priest of the Order of the Butterfly
    Priest of the Order of the Butterfly
    beworld
    Posts: 662 from 2010/2/10
    From: FRANCE
    so... you dont have last TinyGL SDK :-)
    PowerMac G5 Quad 2.5, IMac G5 2.1, PowerBook G4 1.5, MacMini 1.5
    My MOS ports
  • »21.10.24 - 08:47
    Profile Visit Website
  • Just looking around
    anchor
    Posts: 8 from 2014/1/1
    Beworld: seems yes, but i ran the latest update... how can i check the installed TinyGL SDK version?
  • »21.10.24 - 09:10
    Profile Visit Website
  • Priest of the Order of the Butterfly
    Priest of the Order of the Butterfly
    beworld
    Posts: 662 from 2010/2/10
    From: FRANCE
    Into last archive: https://tinygl.molsen.co.za/TinyGL-Update-2024-09-29.lha

    You need to read "readme".... :-)

    Part SDK:

    Quote:


    delete gg:ppc-morphos/lib/libGL.a
    copy SDK/GG/#? gg: all quiet clone

    PowerMac G5 Quad 2.5, IMac G5 2.1, PowerBook G4 1.5, MacMini 1.5
    My MOS ports
  • »21.10.24 - 10:34
    Profile Visit Website
  • Just looking around
    anchor
    Posts: 8 from 2014/1/1
    Thanks Beworld!

    Now my test project is compiling.

    The binary format geometry loader has endian problems, it's easy to modify.

    The real problem is the shader compilation:

    Image: tinygl4.png

    Would be good to know is the max uniform count, and other limits.

    Anyway, this TinyGL is promising from now :)
  • »22.10.24 - 06:55
    Profile Visit Website
  • Priest of the Order of the Butterfly
    Priest of the Order of the Butterfly
    Tcheko
    Posts: 538 from 2003/2/25
    From: France
    Quote:

    anchor wrote:

    Would be good to know is the max uniform count, and other limits.

    Anyway, this TinyGL is promising from now :)



    Keep in mind. R300 is pretty limited to only 64 instructions. Instructions not natively supported are emulated with multiple instructions as well, which doesn't help either. :)

    Multipass is the only way to get around that. If your shader is failing, simplify until it compiles...
    Quelque soit le chemin que tu prendras dans la vie, sache que tu auras des ampoules aux pieds.
    -------
    I need to practice my Kung Fu.
  • »22.10.24 - 09:35
    Profile Visit Website
  • Priest of the Order of the Butterfly
    Priest of the Order of the Butterfly
    matt3
    Posts: 747 from 2004/2/10
    @Bigfoot

    I was just checking in to see if there was any update?
  • »20.03.25 - 19:47
    Profile
  • Cocoon
    Cocoon
    Posts: 45 from 2018/6/9
    So, I wanted to get an issue that I'm experiencing reported somewhere. Please note that my system is perfectly usable, it's just that if it turns out there is some bug, then obviously someone somewhere needs to know. I guess probably @bigfoot

    I figured I'd start here but if after my description it's more appropriate for me to file a bug report then please let me know.

    I have a bit of a weird hardware config, but I know I'm not the only one. I have a Cyrus X5040 board. My primary 16x slot has an RX560 card for OS4. I have a Sound Blaster Live (EMU10K1) in the first PCI slot (the one next to the PCIe slots) and I have added a 256MB X1600 Pro card to the system via both a x16->x4 pcie adapter and a x16->x1 pcie adapter. Not at the same time! This causes a number of issues.

    My serial cable is permanently connected to the X5000 so I get debug messages over serial console to my Mac.

    1. I get the following messages repeated a lot. If the card is direct in the x16 slot (no RX card) then I get them once in a while, if it is in the x4 slot (with RX card in the x16) I get them a lot more often, in the x1 slot, almost constantly. My question is, are these coming from the driver (Rnnn ?) or somewhere else? And are they just benign and can be ignored?
    Code:

    173.122| Int: Spurious int
    173.124| Spurious stuff!
    174.122| Int: Spurious int
    174.124| Spurious stuff!
    etc.


    2. If I use the x4 slot / adapter then my sound card has massively distorted/corrupt sound in many apps and is largely unusable. A consequence of these spurious interrupts perhaps? This is why I currently use the x1 adapter which is one of those ones designed for crypto mining. At x1, I have only seen some sound corruption in Fallout2-ce. Would be nice to play that, but hardly the end of the world. Otherwise the sound is fine in this config.

    3. If I use the application 'easy2install' then I have to disable image previews for the application. If I don't then after the application has updated the list for any category then I get a complete system hard lockup. Since there is no core dump or error reported over serial, I would assume this is a GPU system lockup. But also the lack of error message anywhere means it's not desperately easy to give much info. I can't replicate the problem on my PowerBook G4 so it's definitely related to my X5000 or X1600 pro card. I haven't yet tried moving the card to the primary 16x slot to see if the problem goes away. Largely because I'm getting to the point of being fed up keep taking the system apart but in the interests of science I can of course do this.

    Apologies for such a long post / report.
  • »19.05.25 - 11:22
    Profile
  • Cocoon
    Cocoon
    Posts: 45 from 2018/6/9
    Just wanted to update this. I've spent a long weekend getting Linux installed on the same machine and that process has provided a little clarity.

    On point 3, the crash, I've moved the X1600 Pro to be my only card and it's in the x16 slot. I still get the crash with preview in easy2install. So it's driver, or card related I guess, but nothing to do with those spurious interrupts because I don't get any of those messages now.

    Point 2, the various adapters - the x1 PCIe adapter is out. Linux would not boot with it at all. Well, I think it was booting but there was a constant stream of error messages so it never fully came up. I do know it's possible to use these kind of adapters however as others have done so, so I will order a new x4 adapter if I can find one.

    Hopefully someone is seeing these potential bug reports. Looking forward to a new release at some point. Along the way I also bought a passively cooled HD2600. It works in 2D and appears to be on the "todo" list for one day. Silence is golden :-D
  • »27.05.25 - 09:27
    Profile