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 <francois@serioushack.com> * 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 <francois@serioushack.com> * backends/gl/GlBackend.cpp (GlBackend): Prevent double registration of the GlBackend DLL. 2006-02-09 Francois Marier <francois@serioushack.com> * 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 <francois@serioushack.com> * 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 <sdt@serioushack.com> * 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 <francois@serioushack.com> * src/sh/ShAttribImpl.hpp, ShAttrib.hpp (ShAttrib): Make the constructor take a const array (issue283). 2006-02-07 Filip Spacek <filip@serioushack.com> * src/sh/ShVariableNode.cpp, ShVariableNode.hpp: Delete variable nodes allocated using the global operator new 2006-02-07 Andrew Lauritzen <atlaurit@serioushack.com> * 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 <francois@serioushack.com> * backends/gl/GlslEmit.cpp, src/sh/ShTransformer.cpp (allocate_constant): Fix memory leak. 2006-02-01 Francois Marier <francois@serioushack.com> * 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 <francois@serioushack.com> * 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 <filip@serioushack.com> * 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 <francois@serioushack.com> * backends/gl/GlTextures.cpp: Check for errors when getting the list of GL_EXTENSIONS and display a warning. 2006-01-30 Stefanus Du Toit <sdt@serioushack.com> * 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 <atlaurit@serioushack.com> * 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 <francois@serioushack.com> * 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 <sdt@serioushack.com> * 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 <barold@serioushack.com> * 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 <sdt@serioushack.com> * 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 <francois@serioushack.com> * 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 <francois@serioushack.com> * src/ShLibGeometryImpl.hpp (reflect): Actually normalize b as mentioned in the book. 2006-01-10 Francois Marier <francois@serioushack.com> * 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 <barold@serioushack.com> * 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 <francois@serioushack.com> * 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 <francois@serioushack.com> * 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 <sdt@serioushack.com> * 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 <francois@serioushack.com> * src/ShLibMiscImpl.hpp (poly, sort): Avoid using ShGeneric as a temporary variable. This fixes the 'poly' unit test. 2005-11-29 Hans-Friedrich Pabst <hfp@users.sf.net> * 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 <francois@serioushack.com> * 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 <sjdutoit@uwaterloo.ca> * 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 <hfp@users.sf.net> * 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 <hfp@users.sf.net> * src: Some conditions (preprocessor) are modified to allow new targets (platform/compiler). 2005-11-18 Francois Marier <francois@serioushack.com> * src/ShProgramNode.cpp (compile): Add a check for empty ShProgram and return an error. 2005-11-18 Hans-Friedrich Pabst <hfp@users.sf.net> * 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 <hfp@users.sf.net> * 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 <hfp@users.sf.net> * backends/gl/GlBackend.cpp: glUniform[X]fvARB/glUniform[X]ivARB Match definitions as declared in GlBackend.hpp (Win32 only, VC8).