0.8.0rc1 Release Notes
From ShWiki
Codename: Hoegaarden
This is the second release candidate for the stable release of Sh.
It fixes most issues related to 64-bit operating systems, ATI GPUs, Visual Studio 2005 and OS X.
Aside from a number of small bug fixes, two memory leaks have also been eliminated and the dead code remover has been improved.
An SDL example is now available in the examples directory along with Visual Studio project files for all other examples.
The following issues are still outstanding:
- particle example doesn't work with the ARB backend on NVIDIA
- particle example crashes on exit on Windows
- textures example doesn't work on Windows
- textures example doesn't work on some ATI cards
If you encounter any other problems with this release, please contact us through our mailing list.
--Francois 12:41, 16 February 2006 (EST)
[edit]
Changes
2006-02-13 Francois Marier <[email protected]> * backends/gl/GlslBackend.cpp, ArbBackend.cpp: Remove the calls to new and delete in DLLMain, it's now handled by instantiate_backend. 2006-02-10 Francois Marier <[email protected]> * backends/gl/GlBackend.cpp (GlBackend): Prevent double registration of the GlBackend DLL. 2006-02-09 Francois Marier <[email protected]> * src/sh/ShSyntax.hpp: Add extra brackets to SH_BEGIN and SH_END to prevent compilation when SH_END is missing (issue290). * backends/cc/Cc.cpp (allocate_outputs): Initialize outputs to zero in order to be consistent with GPU backends. * backends/gl/GlslEmit.cpp, ArbEmit.cpp: Remove the ATI hacks for DIV and MOD. Tweak the unit tests instead. * backends/gl/ArbCode.cpp (ArbCode): Fix the ATI_draw_buffers code for ATI on Linux. 2006-02-08 Francois Marier <[email protected]> * src/sh/ShBackend.cpp (load_all_backends): Fix an exception thrown when SH_BACKEND_DIR is not set and no backend has been specified. * backends/gl/ArbCode.cpp (print): The option to output in the shader should be ARB_draw_buffers if ATI_draw_buffers is not defined. * backends/cc/Cc.cpp (load_shader_func): Must compile the programs with -fPIC to work on 64-bit machines. * src/sh/ShTextureNode.cpp (initialize_memories): Improve the size check for mipmapped textures and make it a runtime error instead of an assertion. Move that check to build_mipmaps since textures filtering might be set incorrectly the first time the memory is initialized. 2006-02-08 Stefanus Du Toit <[email protected]> * src/sh/ShSwizzleImpl.hpp: Check for __BIG_ENDIAN__ define. * src/sh/ShArray.hpp: Remove cyclic reference on BaseTexture.hpp. * src/sh/ShBackend.cpp: If an environment variable SH_BACKEND_DIR is set on OS X or Linux, use it (and only it) to search for backends. This is useful for IDEs. Should probably be done on Windows as well. 2006-02-07 Francois Marier <[email protected]> * src/sh/ShAttribImpl.hpp, ShAttrib.hpp (ShAttrib): Make the constructor take a const array (issue283). 2006-02-07 Filip Spacek <[email protected]> * src/sh/ShVariableNode.cpp, ShVariableNode.hpp: Delete variable nodes allocated using the global operator new 2006-02-07 Andrew Lauritzen <[email protected]> * backends/gl/GlslSet.cpp, GlslSet.hpp, GlBackend.hpp, GlBackend.cpp: Changed GLSL backend sets to always bind, and query the GL state to determine whether to unbind. This is necessary for multi-GL-context situations. 2006-02-02 Francois Marier <[email protected]> * backends/gl/GlslEmit.cpp, src/sh/ShTransformer.cpp (allocate_constant): Fix memory leak. 2006-02-01 Francois Marier <[email protected]> * backends/gl/GlslEmit.cpp, GlslCode.hpp (emit_logic): Fix the destination cast. (emit_log): Work-around for log(1) != 0 on ATI. (emit_ati_workaround): Work-around for DIV and MOD on ATI. 2006-01-31 Francois Marier <[email protected]> * backends/gl/GlslEmit.cpp, GlslCode.cpp: Remove the table lookup caching code to work around gcc crashes with ATI on Linux. 2006-01-31 Filip Spacek <[email protected]> * src/sh/ShOptimizations.cpp: Add a simple pass to reorder statements in order to reduce the number of live variables at any time. 2006-01-30 Francois Marier <[email protected]> * backends/gl/GlTextures.cpp: Check for errors when getting the list of GL_EXTENSIONS and display a warning. 2006-01-30 Stefanus Du Toit <[email protected]> * src/ShMeta.hpp, src/ShMetaImpl.hpp, src/ShMetaForwarder.hpp, src/ShMetaForwarder.cpp: Allow iterating through meta data with begin_meta and end_meta functions. 2006-01-28 Andrew Lauritzen <[email protected]> * backends/gl/GlslEmit.cpp: Cast GLSL logical operations (<, >, ==, etc) to statement destination types (ex. float). This resolves issue279, where not having this case would cause the shader to fail to compile. Fixed discard on ATI cards. (Needs to cast operand of bool/bvec and use "any" on vector operands). 2006-01-27 Francois Marier <[email protected]> * backends/gl/ArbEmit.cpp, ArbCode.hpp (emit_div): Add a hack for fixing division by the same number on ATI. (real_div): refactor the code to remove this function 2006-01-19 Stefanus Du Toit <[email protected]> * src/ShOptimizations.cpp: Don't mark variables with decls outside this programs as live because decls are currently broken. Luckily, they're not really necessary. * src/ArbCode.cpp: Remove unnecessary TODO. NVVP and NVFP are different things entirely. 2006-01-19 Barold Genova <[email protected]> * configure.ac: Add configure check for zlib, which libpng depends on. This fixes the case where libpng and zlib are both static libraries and the linker is not aware of the dependency. 2006-01-18 Stefanus Du Toit <[email protected]> * src/ShVariantImpl.hpp (encodeArray): Use "," since the purpose of encodeArray is to provide C-style array declarations. * backends/gl/WGLPBufferContext.hpp: Prefer ATI extensions for floating point buffers. 2006-01-16 Francois Marier <[email protected]> * backends/gl/GlslEmit.cpp (emit_texture): Apply the right swizzle if the destination size doesn't match the texture size. 2006-01-12 Francois Marier <[email protected]> * src/ShLibGeometryImpl.hpp (reflect): Actually normalize b as mentioned in the book. 2006-01-10 Francois Marier <[email protected]> * src/ShBackend.cpp, ShBackend.hpp, backends/cc/Cc.hpp, Cc.cpp, backends/gl/ArbBackend.cpp, GlslBackend.cpp, GlBackend.cpp, GlBackend.hpp: Turn name() and version() into non-virtual functions which return the contents of member variables set by the backend constructors. * src/ShBackend.cpp (~ShBackend): Add assertions to make sure the backend name is valid and exists in the map. 2006-01-06 Barold Genova <[email protected]> * src/ShBackend*: Add new LibraryInformation class that stores the backend handle and entry points. This allows the use of statically linked backends. * src/ShSyntax*: Add new shRegisterBackend to allow using backends that are not dynamically loaded. * src/ShSwizzleImpl.hpp: Use __PPC__ as big endian flag instead of __APPLE__. 2006-01-04 Francois Marier <[email protected]> * src/ShVariantImpl.hpp: Use semicolons instead of commas as the separator for array initialization. This avoids a problem with the stringstream constructor in VS2005. * backends/gl/GlslVariable.cpp (GlslVariable): Replace semicolons with commas since the behaviour of encodeArray() changed. 2005-12-12 Francois Marier <[email protected]> * backends/gl/GlslEmit.cpp (emit_cond): Check the GL_VENDOR safely and ignore it if it returns a NULL string. 2005-11-30 Stefanus Du Toit <[email protected]> * src/ShGeneric*: Undo Hans's change from 2005-11-29 as it breaks a few things. This is done with the intention on adding it back and fixing those things properly in 0.9. 2005-11-30 Francois Marier <[email protected]> * src/ShLibMiscImpl.hpp (poly, sort): Avoid using ShGeneric as a temporary variable. This fixes the 'poly' unit test. 2005-11-29 Hans-Friedrich Pabst <[email protected]> * src/ShGeneric*: The C++ Standard says that a templated copy c'tor will be never instanciated for the class type itself. Example: You need to provide ShGeneric(const ShGeneric& other) also if you have already implemented an conversion copy c'tor: template<typename T2> ShGeneric(const ShGeneric<N, T2>& other). Before the fix: A copy construction of a ShGeneric (without conversion) slices the other ShGeneric down to a ShVariable. ShGeneric provides a copy c'tor now. 2005-11-21 Francois Marier <[email protected]> * backends/gl/ArbCode.cpp (updateUniform): Only display the warning once. * src/, backends/gl, backends/cc: Convert most ShPointer parameters to const references to ShPointer (thanks to pmr for the patch) 2005-11-20 Stefanus Du Toit <[email protected]> * src/ShTexData.hpp, src/ShTexDataImpl.hpp, src/ShAttrib.hp, src/ShBaseTexture.hpp: Avoid circular inclusion of Impl files. * xcode: Update to Xcode 2.2, many many fixes. * backends/gl: Several small fixes for Apple OS X build. 2005-11-20 Hans-Friedrich Pabst <[email protected]> * src: Some tiny problems (compile warnings) avoided. Assignment operator could not be generated. Base-from-member initialization problem. * src/ShStructural.cpp: Add range check before iterator decrement (remove duplicate successors; make succs unique). * backends/gl: Some tiny problems (compile warnings) avoided. Assignment operator could not be generated. Some bit-ops (unsigned int) forced to bool. * src/ShStructural.hpp: Public nested classes (CfgMatch) needs (different heaps) to be exported (SH_DLLEXPORT). 2005-11-19 Hans-Friedrich Pabst <[email protected]> * src: Some conditions (preprocessor) are modified to allow new targets (platform/compiler). 2005-11-18 Francois Marier <[email protected]> * src/ShProgramNode.cpp (compile): Add a check for empty ShProgram and return an error. 2005-11-18 Hans-Friedrich Pabst <[email protected]> * src/ShStructural.cpp: C'tor (make preds unique) Decrementing an iterator needs some check against the begin of the range. * src/ShLinearAllocator.cpp (allocate): multiset requires strict weak ordering; LifeToken (operator<): if (a<b) -> !(b<a). 2005-11-17 Hans-Friedrich Pabst <[email protected]> * Boost Build System V2 (www.boost.org/tools/build/v2/index.html) added (how to build instructions coming soon). 2005-11-09 Hans-Friedrich Pabst <[email protected]> * backends/gl/GlBackend.cpp: glUniform[X]fvARB/glUniform[X]ivARB Match definitions as declared in GlBackend.hpp (Win32 only, VC8).
