Click Here
home features news forums classifieds faqs links search
6071 members 
Amiga Q&A /  Free for All /  Emulation /  Gaming / (Latest Posts)



Lost Password?

Don't have an account yet?
Register now!

Your support is needed and is appreciated as is primarily dependent upon the support of its users.

Main sections
OS4 Zone
IRC Network
AmigaWorld Radio
Top Members
Amiga Dealers
About Us
Terms of Service

IRC Channel
Ports: 1024,5555, 6665-6669
SSL port: 6697
Channel: #Amigaworld
Channel Policy and Guidelines

Who's Online
0 crawler(s) on-line.
 91 guest(s) on-line.
 2 member(s) on-line.

 matthey,  ktadd

You are an anonymous user.
Register Now!
 ktadd:  2 mins ago
 matthey:  4 mins ago
 zipper:  12 mins ago
 kolla:  22 mins ago
 AMIGASYSTEM:  22 mins ago
 retrofaza:  50 mins ago
 VooDoo:  56 mins ago
 Bugala:  1 hr 6 mins ago
 Beajar:  2 hrs 3 mins ago
 Hypex:  2 hrs 11 mins ago

/  Forum Index
   /  MorphOS Software
      /  Proposed MorphOS GFX/Driver evolution path
Register To Post

Goto page ( Previous Page 1 | 2 )
Re: Proposed MorphOS GFX/Driver evolution path
Posted on 5-Oct-2022 10:32:43
#21 ]
Regular Member
Joined: 25-Sep-2004
Posts: 191

It's time for a new public update of TinyGL. You can download it here.

The highlights of this update are:
- Support for shaders on R500.
- Various shader related bug fixes and optimisations.
- Inclusion of ShaderBoy to test and play around with shaders.

Changes from 2022-09-08 to 2022-10-05
- Library version is now 53.3
- Fixed a bug that could cause problems using certain OpenGL state values and matrices in shaders.

- Library version is now 53.7
- Added vertex and fragment shader support for R500.
- Added support for the exp2() and log2() functions in vertex shaders.
- Fixed an off-by-one bug that caused the Radeon hardware to execute one more instruction than was actually contained in the vertex program, causing unpredictable outcome.
- Fixed a bug that could cause vertex shaders using a large amount of temporary registers to misbehave.
- Fixed an oversight in the fragment program compiler that caused fragment programs on R300/R400 to sometimes erroneously consider a fragment kill instruction to start a new fragment program stage, making some fragment programs fail to compile where they should have worked.
- Added a simple optimisation to the R300/R400 fragment program compiler to try the number of fragment program stages consumed.
- Fixed a problem that could make certain conditional comparisons in vertex shaders to fail to compile.
- Added an optimisation pass to reduce the number of temporary registers used. Currently only enabled for vertex programs and R500 fragment programs, with R300 fragment programs still to come.
- Fixed the reading of gl_FragCoord in fragment shaders where a vertex shader is also present.

Last edited by t0lkien on 05-Oct-2022 at 12:28 PM.

 Status: Offline
Profile     Report this post  
Re: Proposed MorphOS GFX/Driver evolution path
Posted on 5-Oct-2022 10:33:08
#22 ]
Regular Member
Joined: 25-Sep-2004
Posts: 191

Double post

Last edited by t0lkien on 05-Oct-2022 at 10:33 AM.

 Status: Offline
Profile     Report this post  
Re: Proposed MorphOS GFX/Driver evolution path
Posted on 16-Dec-2022 14:17:20
#23 ]
Regular Member
Joined: 25-Sep-2004
Posts: 191

Changes from 2022-10-19 to 2022-12-16
- Library version is now 53.5
- Implemented the fixed function OpenGL vertex and fragment pipeline as dynamically generated shaders. This implementation is used on graphics cards that support shaders instead of the previous limited fixed function support in hardware/drivers.
- Now supports setting and retrieving all OpenGL 2.1 glEnable() and glDisable() states, although no actualy functionality has been added for most of the new states yet.
- Added support for GL_COLOR_SUM.
- Fixed a problem where using glBufferData() to overwrite the contents of an existing vertex buffer object could lead to the new data not being used by the driver right away.
- glGetBufferParameteriv() now supports querying the following attributes: GL_BUFFER_ACCESS, GL_BUFFER_MAPPED and GL_BUFFER_USAGE.
- glTexGen#?() now reject setting GL_TEXTURE_GEN_MODE to GL_SPHERE_MAP for the GL_R and GL_Q coordinates, and setting GL_TEXTURE_GEN_MODE to GL_REFLECTION_MAP for the GL_Q coordinate.
- When using TinyGL to render directly to a window, and that window is being resized, TinyGL will no longer overwrite the window borders.
- Several other problems related to using TinyGL to render directly to a window, that could cause TinyGL to misbehave and misrender, have been fixed.
- The ARB program parser now correctly parses and compiles "state.material.X" operands, and correctly handles accesses to "state.light.X" and "state.lightmodel.X".
- ARB programs that access transposed state matrices now work correctly.
- Setting and getting GL_TEXTURE_GEN_Q now works correctly.
- In ARB programs, several state variables (accessed via 'state.' in the program source code) were not automatically updated in hardware when the OpenGL state changed. This has now been fixed.
- Revamped how TinyGL keeps track of what vertex data is required to complete a draw call. Previously TinyGL could in some cases supply either not enough data, causing misrendering, or too much data, causing performance degradation.
- When using immediate mode rendering (via glBegin()), TinyGL now keeps all 4 components of the texture coordinates passed and not just the first two. This makes for example cube maps and texture matrices work when using with immediate mode.
- Added support for setting GL_LIGHT_MODEL_COLOR_CONTROL via glLightModel#?().
- Added support for getting the following states via glGet#?():
- The initial immediate mode normal value when creating a new context has been fixed to correspond to the value required by OpenGL.
- Added support for supplying secondary colours to OpenGL via glSecondaryColor#?().
- Deleting a vertex buffer object that was currently bound to the normal array would previously keep a stale pointer to the delete vertex buffer object in the vertex array state, potentially leading to TinyGL trying to use the already deleted vertex buffer object.
- If the driver fails to compile an ARB program, the driver's error message is now passed on to the OpenGL application, rather than just returning a generic error message and discarding the driver error message.
- Using glBitmap() while a program/shader or a cubemap texture is active no longer fails.
- The glWindowPos#?() set of functions have been fixed to correctly interpret the y coordinate is having its origin at the bottom of the screen rather than the top of the screen. This primarily caused some OpenGL example code to render status text at the bottom of the display instead of the top, or vice versa.
o Please note that to preserve compatibility with existing software that expects the wrong behaviour, the standards compliant behaviour is only activated for software that calls tglEnableNewExtensions().
- TinyGL's handling of the 'default' textures for each target (texture ID 0) was broken and didn't take into account the different texture target types (GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP, etc). This caused misrendering with mostly OpenGL example apps that reused the default OpenGL texture ID for rendering cube maps, instead of allocating a new texture for it.
- The default state for OpenGL lights is now initialised correctly when creating a new context. Programs that use the default light position and never sets a position of their own now work correctly.
- The following functions now have proper OpenGL error reporting:
o glBindBuffer()
o glBufferData()
o glBufferSubData()
o glDeleteBuffers()
o glDisableClientState()
o glEnableClientState()
o glGetBufferParameteriv
o glIsBuffer()
o glLightf()
o glLightfv()
o glLighti()
o glLightiv()
o glLightModeli()
o glLightModeliv()
o glLightModelf()
o glLightModelfv()
- New OpenGL extensions advertised:
o GL_EXT_secondary_color

- Library version is now 53.4.
- Added support client programs directly supplying the secondary OpenGL colour.

- Library version is now 53.9.
- Added support client programs directly supplying the secondary OpenGL colour.
- Added support for several previously unsupported opcodes in the vertex program compiler and in the fragment program compilers for both R300/R400 and R500.
- Fixed a bug that would lead to a Radeon hardware crash when trying to use a vertex program that used no constant data at all.
- Fixed a bug where using a kill/discard instruction in a fragment program after sampling a texture could lead to program compilation failing.
- Fixed a bug that would in certain cases lead to misrendering when using more than one set of texture coordinates.
- Fixed a bug that could cause wrong texture rendering when switching between using programs/shaders and fixed function rendering.

- New port of FreeGLUT version 3.4.0 to MorphOS. This supercedes TinyGL's built-in GLUT support, is a lot more feature complete and makes it easier to port GLUT OpenGL examples to MorphOS.

- Includes have been reworked a bit to be more MorphOS-like. clib/tinygl_protos.h is now a proper clib include that contains just the prototypes of tinygl.library's public functions.
- the includes now define GL_VERSION_x_y, with x and y corresponding to the OpenGL versions supported by the includes.
- For each OpenGL extension supported, the includes now define a preprocessor macro with the same name as the OpenGL extension, e.g. GL_ARB_vertex_buffer_object.
- Contains includes and link library for freeglut.library.

 Status: Offline
Profile     Report this post  
Goto page ( Previous Page 1 | 2 )

[ home ][ about us ][ privacy ] [ forums ][ classifieds ] [ links ][ news archive ] [ link to us ][ user account ]
Copyright (C) 2000 - 2019 was originally founded by David Doyle