<?xml version="1.0"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>10 Most Recently Updated Pages</title>
		<link>http://hdrlab.org.nz/home/</link>
		<atom:link href="http://hdrlab.org.nz/home/" rel="self" type="application/rss+xml" />
		<description>Shows a list of the 10 most recently updated pages.</description>

		
		<item>
			<title>RadeonHD Driver Hardware Compatibility</title>
			<link>http://hdrlab.org.nz/radeonhd-driver-hardware-compatibility/</link>
			<description>&lt;p style=&quot;text-align: justify;&quot;&gt;This page lists all hardware that has been tested with the RadeonHD.chip driver. A list of places to buy these cards can be found &lt;a title=&quot;Where to buy Radeon HD cards&quot; href=&quot;http://hdrlab.org.nz/where-to-buy-radeonhd-chip-compatible-pci-cards&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;strong&gt;DISCLAIMER:&lt;/strong&gt; While every effort will be made to keep these lists accurate and up to date, it depends on the testing and feedback of others. As such, I do not guarantee the completeness or accuracy.&lt;/p&gt;
&lt;h3&gt;Graphics Cards&lt;/h3&gt;
&lt;p&gt;The &quot;driver version&quot; column lists the most recent driver version that a particular card was tested with.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;
&lt;table border=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Graphics Card&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Chipset&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Driver Version&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Status&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Notes&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;VisionTek Radeon X1300 256MB PCI&lt;/td&gt;
&lt;td&gt;RV515&lt;/td&gt;
&lt;td&gt;0.3&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;color:green&quot;&gt;Working&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;Was last tested when it was a framebuffer only driver (the card that I used had a hardware defect, so I don't have it any more)&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HIS Radeon X1550 256 MB PCI&lt;/td&gt;
&lt;td&gt;RV516&lt;/td&gt;
&lt;td&gt;0.7&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;color:green&quot;&gt;Working&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Club3D Radeon HD2400 PRO PCI 256MB low profile&lt;/td&gt;
&lt;td&gt;RV610&lt;/td&gt;
&lt;td&gt;0.7&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;color:green&quot;&gt;Working&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;No hardware acceleration yet&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Diamond Radeon HD 2400 Pro PCI, SB Edition (256 MB)&lt;/td&gt;
&lt;td&gt;RV610&lt;/td&gt;
&lt;td&gt;0.5&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;color:green&quot;&gt;Working&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HIS Radeon HD 4350 PCI (512 MB)&lt;/td&gt;
&lt;td&gt;RV710&lt;/td&gt;
&lt;td&gt;0.7&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;color:olive&quot;&gt;Partial&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;VGA output only&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/p&gt;
&lt;h3 style=&quot;text-align: justify;&quot;&gt;Motherboards&lt;/h3&gt;
&lt;p&gt;The &quot;driver version&quot; column lists the most recent driver version that a  particular card was tested with.&lt;/p&gt;
&lt;p&gt;
&lt;table border=&quot;0&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Motherboard&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Driver Version&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Status&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Notes&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AmigaOne SE&lt;/td&gt;
&lt;td&gt;0.5&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;color:green&quot;&gt;Working&lt;/span&gt;&lt;span style=&quot;color:red&quot;&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;Use Amiga OS 4.1 update 1 or higher for stability (previous versions had stability issues when Radeon HD cards were plugged in whether in use or not)&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AmigaOne XE (Unfixed)&lt;/td&gt;
&lt;td&gt;0.7&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;color:green&quot;&gt;Working&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;33 MHz slot only; UBoot does not detect the card properly when plugged into the 66 MHz slot&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AmigaOne XE (with DMA fix)&lt;/td&gt;
&lt;td&gt;0.7&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;color:olive&quot;&gt;Partial&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;USB must be disabled or the machine will freeze. The DMA fix appears to cause a hard lockup when large amounts of data (e.g., bitmaps) are sent over the bus and USB is active (possibly a conflict with USB DMA transfers)&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Micro AmigaOne&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;td&gt;Untested&lt;/td&gt;
&lt;td&gt;The Micro AmigaOne has the AmigaOne-XE's DMA fix built in, so it will probably behave in the same manner as fixed AmigaOne-XE motherboards&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SAM 440ep&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;td&gt;Untested&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SAM 440-flex&lt;/td&gt;
&lt;td&gt;0.7&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;color:green&quot;&gt;Working&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pegasos 2&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;td&gt;&lt;span style=&quot;color:red&quot;&gt;Failed&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;OpenFirmware fails to detect the card, so the driver cannot even be tested&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AmigaOne X1000&lt;/td&gt;
&lt;td&gt;N/A&lt;/td&gt;
&lt;td&gt;Untested&lt;/td&gt;
&lt;td&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/p&gt;
&lt;h3&gt;Submitting Updates&lt;/h3&gt;
&lt;p&gt;At present only beta testers can update this page.&lt;/p&gt;</description>
			<pubDate>Sun, 20 Dec 2009 23:17:16 -0600</pubDate>
			
			<guid>http://hdrlab.org.nz/radeonhd-driver-hardware-compatibility/</guid>
		</item>
		
		<item>
			<title>make: Interrupt/Exception caught (code = 0xc00000fd, addr = 0x4217b3</title>
			<link>http://hdrlab.org.nz/make-interrupt-exception-caught-code-0xc00000fd-addr-0x4217b/</link>
			<description>&lt;p style=&quot;text-align: justify;&quot;&gt;I was using GCC on Windows recently for an embedded project, and discovered that I couldn't use &quot;make&quot; to build my projects. It always failed with the cryptic error:&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;make: Interrupt/Exception caught (code =  0xc00000fd, addr = 0x4217b3)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Searches on the internet suggested that there is a bug in &quot;make&quot; that causes it to crash when the path to the GCC executables contain &quot;(&quot; or &quot;)&quot;. With a 64-bit version of windows (such as the one that I'm using), GCC is installed to &quot;C:\Program Files (X86)\&quot; by default. So, I reinstalled it to a directory without spaces or parentheses, and it still failed. At this point further searches proved futile.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;The problem lies with the way that the PATH environment variable works. When &quot;make&quot; (or any other application) searches for a command in PATH, it starts by looking at the first directory that is listed in the PATH environment variable for that command. If it does not find it there, then it moves on to the next directory in the list, and so on, until it either finds the command that it is looking for, or runs out of directories to search. This means that &lt;strong&gt;any&lt;/strong&gt; directory in the PATH with parentheses that occurs &lt;strong&gt;before&lt;/strong&gt; the directory containing the GCC executables will cause &quot;make&quot; to fail. By default, the installer will add the directory to the end of the list. Thus, shifting the directory containing the GCC executables to the start of the list, solved the problem.&lt;/p&gt;
&lt;h3 style=&quot;text-align: justify;&quot;&gt;Working Around the Make Bug&lt;/h3&gt;
&lt;p&gt;This particular bug in the &quot;make&quot; tool can be worked around by doing the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In the Windows control panel, open &quot;System,&quot; and click on the advanced tab,&lt;/li&gt;
&lt;li&gt;Click on the &quot;environment variables&quot; button,&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img class=&quot;center&quot; src=&quot;http://hdrlab.org.nz/assets/WindowsDevelopment/system-properties-advancedenvironmentvars.jpg&quot; alt=&quot;In Windows System Properties, click on environment variables&quot; width=&quot;419&quot; height=&quot;488&quot; title=&quot;&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In &quot;System variables&quot; edit the &quot;Path&quot; variable; move the directory containing the GCC executables to the front of the path list,&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img class=&quot;center&quot; src=&quot;http://hdrlab.org.nz/assets/WindowsDevelopment/editenvironmentvarspath.jpg&quot; alt=&quot;Move the directory containing the GCC executables to the front of the Path list&quot; width=&quot;447&quot; height=&quot;463&quot; title=&quot;&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Click &quot;OK,&quot; and then &quot;OK&quot; again (in the main window of &quot;System Properties&quot;), and&lt;/li&gt;
&lt;li&gt;Reboot the machine to make sure that the updated path variable is used.&lt;/li&gt;
&lt;/ul&gt;</description>
			<pubDate>Fri, 05 Feb 2010 15:15:08 -0600</pubDate>
			
			<guid>http://hdrlab.org.nz/make-interrupt-exception-caught-code-0xc00000fd-addr-0x4217b/</guid>
		</item>
		
		<item>
			<title>MiniGL</title>
			<link>http://hdrlab.org.nz/minigl/</link>
			<description>&lt;table border=&quot;0&quot; align=&quot;right&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;http://hdrlab.org.nz/assets/galleries/minigl-2-0-gallery/gears.jpg&quot; title=&quot;gears.jpg&quot;&gt;&lt;img class=&quot;left&quot; src=&quot;http://hdrlab.org.nz/assets/galleries/minigl-2-0-gallery/_resampled/ResizedImage160120-gears.jpg&quot; title=&quot;null&quot; hspace=&quot;null&quot; vspace=&quot;null&quot; width=&quot;160&quot; height=&quot;120&quot; align=&quot;null&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;nbsp;A gears demo&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p align=&quot;justify&quot;&gt;MiniGL is not actually one of my projects, but I have spent a significant amount of time and effort on MiniGL, so it deserves a mention. MiniGL for Amiga OS was originally developed by Hans-J&amp;ouml;rg Frieden and Thomas Frieden for &lt;a href=&quot;http://www.hyperion-entertainment.biz:8080/index_html&quot; target=&quot;_blank&quot; title=&quot;Hyperion Entertainment VOF&quot;&gt;Hyperion-Entertainment's&lt;/a&gt; game ports to the Amiga (e.g., Freespace, shogo). As such, it was designed to support the subset of the OpenGL 1.3 API that was used by these games - hence the &quot;mini.&quot; The goal was also to make it as fast and efficient as possible, particularly as Motorola's 68K series processors were already lagging behind in processing power. 3D hardware acceleration was performed via the Warp3D library.&lt;/p&gt;
&lt;p align=&quot;justify&quot;&gt;&lt;a href=&quot;http://hdrlab.org.nz/learning-how-to-program-in-opengl-book-recommendations/&quot; title=&quot;Learning How to Program in OpenGL (Book Recommendations)&quot;&gt;Want to learn how to program in OpenGL? Click here.&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align=&quot;justify&quot;&gt;I first got involved in late 2007. By this point MiniGL had been open-source for some time, and various people had asked if it were possible to add display-lists. The answer was, &quot;of course, the source-code is open, feel free to add it.&quot; The Friedens were hard at work on Amiga OS 4.0, and thus did not have the time required to add additional features. No one else took on the task of adding display-lists, so I did it. Two to three weeks later, MiniGL version 1.5 was released, containing display-lists and various bug-fixes.&lt;/p&gt;
&lt;p align=&quot;justify&quot;&gt;After the MiniGL 1.5 update, I asked people to email me if there were additional OpenGL features that they required. At this point a few others who had been working on MiniGL related projects came out of the wood-work and a small team (including the Friedens) started work on expanding the feature-set. Thus, MiniGL 2.x was born.&lt;/p&gt;
&lt;h2&gt;&lt;a name=&quot;MiniGL 2.0&quot; title=&quot;MiniGL 2.0&quot;&gt;&lt;/a&gt;MiniGL 2.x&lt;/h2&gt;
&lt;table border=&quot;0&quot; width=&quot;169&quot; align=&quot;right&quot; style=&quot;height: 189px;&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;http://hdrlab.org.nz/assets/galleries/minigl-2-0-gallery/texturesurf.jpg&quot; title=&quot;texturesurf.jpg&quot;&gt;&lt;img class=&quot;left&quot; src=&quot;http://hdrlab.org.nz/assets/galleries/minigl-2-0-gallery/_resampled/ResizedImage160161-texturesurf.jpg&quot; title=&quot;null&quot; hspace=&quot;null&quot; vspace=&quot;null&quot; width=&quot;160&quot; height=&quot;161&quot; align=&quot;null&quot; alt=&quot;&quot; /&gt;&lt;/a&gt; &lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A NURBS surface using the new evaluators&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;MiniGL 2.x constitues a major update to MiniGL, with a significant expansion of its feature set. Essentially, MiniGL is no longer so mini. The new features and changes are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Added support for evaluators (glMap*, glEvalCoord*, glMapGrid*, glEvalMesh*, glEvalPoint*)&lt;/li&gt;
&lt;li&gt;Added selection support (glListBase(), glNewList(), glInitNames(), glLoadName(), glPushName(), glPopName(), glSelectBuffer(), and glRenderMode())&lt;/li&gt;
&lt;li&gt;Added gluPickMatrix()&lt;/li&gt;
&lt;li&gt;Added gluProject()/gluUnProject()&lt;/li&gt;
&lt;li&gt;Added glGetDoublev()&lt;/li&gt;
&lt;li&gt;Added glIsTexture()&lt;/li&gt;
&lt;li&gt;Added glGetTexEnviv()&lt;/li&gt;
&lt;li&gt;Added glGetLight*() functions&lt;/li&gt;
&lt;li&gt;Added GL_PROXY_TEXTURE support&lt;/li&gt;
&lt;li&gt;Fixed some rendering bugs (e.g., a bug causing incorrect lighting for clipped primitives)&lt;/li&gt;
&lt;li&gt;Added const qualifiers to improve OpenGL compliance&lt;/li&gt;
&lt;li&gt;Mglut.library now has glutKeyboardUpFunc(), glutSpecialUpFunc(), and glutIgnoreKeyRepeat()&lt;/li&gt;
&lt;li&gt;Added text functions to Mglut.library (glutBitmap*(),&amp;nbsp; glutStroke*())&lt;/li&gt;
&lt;li&gt;Added glPushClientAttrib()/glPopClientAttrib()&lt;/li&gt;
&lt;li&gt;Added glDrawPixels()&lt;/li&gt;
&lt;li&gt;Added game mode to mglut.library&lt;/li&gt;
&lt;li&gt;Added glutDeviceGet(), glutLayerGet(), glutGetModifiers(), glutSetOptions() and expanded the number of attributes supported by glutGet()&lt;/li&gt;
&lt;li&gt;Added glut geometry rendering functions including the teapot functions&lt;/li&gt;
&lt;li&gt;Added glut overlay function stubs for completeness (overlay is not actually supported)&lt;/li&gt;
&lt;li&gt;Added glGetMaterial*()&lt;/li&gt;
&lt;li&gt;Added the complete set of glNormal*() functions &lt;/li&gt;
&lt;li&gt;Added glGetTexImage&lt;/li&gt;
&lt;li&gt;Added full set of glPixelStore modes, as well as glPixelTransfer&lt;/li&gt;
&lt;li&gt;Added glutTimerFunc(), glutCloseFunc(), glutWMCloseFunc()&lt;/li&gt;
&lt;li&gt;Added glutWarpPointer()&lt;/li&gt;
&lt;li&gt;Added glutExtensionSupported(), glutIgnoreKeyRepeat(), glutSetKeyRepeat(), glutKeyUp(), glutSpecialUp(), and glutForceJoystickFunc() (note: no joystick support yet)&lt;/li&gt;
&lt;li&gt;Added stubs for glutSetColor(), glutGetColor(), and glutCopyColormap() (note: these functions really don't make sense any more but they're in the GLUT spec. Like FreeGLUT, these don't do anything as we're using truecolour modes)&lt;/li&gt;
&lt;li&gt;Added glDrawBuffer and cleaned up the whole video code&lt;/li&gt;
&lt;li&gt;Added the SGI GLU library into MiniGL. MiniGL now supports all of GLU&lt;/li&gt;
&lt;/ul&gt;
&lt;p align=&quot;justify&quot;&gt;A public beta (MiniGL 2.1) was released 4 April 2009. It can be downloaded from &lt;a href=&quot;http://os4depot.net/index.php?function=showfile&amp;amp;file=driver/graphics/minigl.lha&quot; target=&quot;_blank&quot; title=&quot;The current public release of MiniGL&quot;&gt;os4depot.net&lt;/a&gt;. MiniGL 2.2 was released in Amiga OS 4.1 Update 1.&lt;/p&gt;
&lt;h2&gt;That's Nice, but What Does all this Mean?&lt;/h2&gt;
&lt;p align=&quot;justify&quot;&gt;If you are asking this question then you are obviously not a 3D graphics software developer. For users, this means more 3D games; more 3D software. All the features listed above are really only important to people who are writing OpenGL based software, or porting existing ones. MiniGL 2.0 provides developers with a more complete implementation of the OpenGL API making it much easier to port existing OpenGL games/applications. It also provides developers of new 3D software with a wider range of functions for generating the effects that they desire.&lt;/p&gt;
&lt;table border=&quot;0&quot; cellspacing=&quot;1&quot; cellpadding=&quot;0&quot; align=&quot;center&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td valign=&quot;middle&quot; style=&quot;width: 160px; height: 120px;&quot;&gt;&lt;a href=&quot;http://hdrlab.org.nz/assets/galleries/minigl-2-0-gallery/ChromiumBSU1.jpg&quot;&gt;&lt;img class=&quot;left&quot; src=&quot;http://hdrlab.org.nz/assets/galleries/minigl-2-0-gallery/_resampled/ResizedImage160120-ChromiumBSU1.jpg&quot; alt=&quot;Chromium B.S.U&quot; title=&quot;null&quot; hspace=&quot;null&quot; vspace=&quot;null&quot; width=&quot;160&quot; height=&quot;120&quot; align=&quot;null&quot; /&gt;&lt;/a&gt; &lt;br /&gt;&lt;/td&gt;
&lt;td valign=&quot;middle&quot; style=&quot;width: 160px; height: 120px;&quot;&gt;&lt;a href=&quot;http://hdrlab.org.nz/assets/galleries/minigl-2-0-gallery/celestia003.jpg&quot;&gt;&lt;img class=&quot;left&quot; src=&quot;http://hdrlab.org.nz/assets/galleries/minigl-2-0-gallery/_resampled/ResizedImage160120-celestia003.jpg&quot; alt=&quot;Celestia&quot; title=&quot;null&quot; hspace=&quot;null&quot; vspace=&quot;null&quot; width=&quot;160&quot; height=&quot;120&quot; align=&quot;null&quot; /&gt;&lt;/a&gt; &lt;br /&gt;&lt;/td&gt;
&lt;td valign=&quot;middle&quot; style=&quot;width: 160px; height: 120px;&quot;&gt;&lt;a href=&quot;http://hdrlab.org.nz/assets/galleries/minigl-2-0-gallery/Cube000.jpg&quot; title=&quot;Cube&quot;&gt;&lt;img class=&quot;left&quot; src=&quot;http://hdrlab.org.nz/assets/galleries/minigl-2-0-gallery/_resampled/ResizedImage160120-Cube000.jpg&quot; title=&quot;null&quot; hspace=&quot;null&quot; vspace=&quot;null&quot; width=&quot;160&quot; height=&quot;120&quot; align=&quot;null&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a href=&quot;http://hdrlab.org.nz/minigl-2-x-gallery/&quot; title=&quot;MiniGL 2.0 Screenshot Gallery&quot;&gt;More screenshots...&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;MiniGL's Future&lt;/h2&gt;
&lt;p align=&quot;justify&quot;&gt;MiniGL 2.x will be the end of the line as far as MiniGL is concerned. It is provided as a stop-gap solution until a complete &lt;a href=&quot;http://www.mesa3d.org/&quot; target=&quot;_blank&quot; title=&quot;Mesa 3D home&quot;&gt;MESA&lt;/a&gt; port is available. Eventually it will simply be a stub that maps on to &lt;a href=&quot;http://www.mesa3d.org/&quot; target=&quot;_blank&quot; title=&quot;Mesa 3D home&quot;&gt;MESA&lt;/a&gt;. &lt;a href=&quot;http://www.mesa3d.org/&quot; target=&quot;_blank&quot; title=&quot;Mesa 3D home&quot;&gt;MESA&lt;/a&gt; will provide a complete OpenGL implementation that is up-to-date. However, a full MESA port may take some time. In the interim, MiniGL 2.x provides enough functionality to increase the amount of 3D software that is available for Amiga OS 4.0.&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Links&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://hdrlab.org.nz/minigl-templates/&quot; title=&quot;MiniGL templates&quot;&gt;Code templates for getting started with MiniGL&lt;/a&gt; (on this website) &lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://os4depot.net/index.php?function=showfile&amp;amp;file=driver/graphics/minigl.lha&quot; target=&quot;_blank&quot; title=&quot;The current public release of MiniGL&quot;&gt;Public MiniGL release (v2.1)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://hyperion-entertainment.biz/projects/minigl&quot; target=&quot;_blank&quot; title=&quot;The MiniGL project page&quot;&gt;The MiniGL project page&lt;/a&gt; (for developers wishing to compile the SVN version only). ** Currently Unavailable ** Those who wish to compile the SVN version themselves can checkout the code using subversion with the following command: svn checkout http://www.hyperion-entertainment.biz/svn/MiniGL/trunk MiniGL&lt;/li&gt;
&lt;/ul&gt;</description>
			<pubDate>Thu, 05 Jun 2008 22:01:32 -0500</pubDate>
			
			<guid>http://hdrlab.org.nz/minigl/</guid>
		</item>
		
		<item>
			<title>Full-Screen GLUT</title>
			<link>http://hdrlab.org.nz/full-screen-glut/</link>
			<description>&lt;table align=&quot;right&quot; border=&quot;0&quot; width=&quot;148&quot; height=&quot;178&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;img class=&quot;left&quot; src=&quot;http://hdrlab.org.nz/assets/MiniGL-templates/_resampled/ResizedImage200150-GLUT-fullscreen-screenshot.jpg&quot; alt=&quot;The same rotating triangle as previous templates, but on its own screen.&quot; title=&quot;null&quot; hspace=&quot;null&quot; vspace=&quot;null&quot; width=&quot;200&quot; height=&quot;150&quot; align=&quot;null&quot; /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;The same rotating triangle as in previous templates, but full-screen.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p align=&quot;justify&quot;&gt;Sometimes it is preferable to run a 3D application in its own screen, particularly for games. The first time that I wanted to do this, it took a surprizingly long time to find the documentation required, particularly considering that obtaining full-screen operation requires only 1-2 lines of code. This template has two different methods of opening a full-screen. These can be found in files GLUT-fullscreen.c, and GLUT-fullscreen2.c. The makefile will build both examples. &lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;This template includes a project file for Visual Studio 2008 (i.e., Windows), and a makefile for Amiga OS 4.x+. Users of other systems should be able to modify the makefile for their systems easily. &lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;&lt;a href=&quot;http://hdrlab.org.nz/learning-how-to-program-in-opengl-book-recommendations/&quot; title=&quot;Learning How to Program in OpenGL (Book Recommendations)&quot;&gt;Learn more about programming in OpenGL. Click here.&lt;/a&gt;&amp;nbsp; &lt;/p&gt;&lt;h2&gt;GLUT Game-Mode (GLUT-fullscreen.c)&lt;/h2&gt;&lt;p align=&quot;justify&quot;&gt;GLUT game-mode opens a screen of specific resolution and properties (e.g., bit-depth). The advange of this method over the other one is that it offers more control over the screen's properties. This advantage is somewhat diminished on Amiga OS, since its concept of screens is different from other operating-systems. More about that later. &lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;Achieving full-screen using the game-mode requires removing the glutCreateWindow() call, and replacing it with two new lines of code. For example:&lt;/p&gt;&lt;blockquote&gt;&lt;pre align=&quot;justify&quot;&gt;glutGameModeString(&amp;quot;640x480:24&amp;quot;);&lt;br /&gt;glutEnterGameMode(); &lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;p align=&quot;justify&quot;&gt;The first line specifies the desired screen properties. GLUT will try to match those. It is possible to suggest a refresh-rate too, but this is currently ignored by MiniGL (the graphics drivers do not give you that option). The second line opens the full-screen window. Leaving GLUT game mode is achieved simply by calling glutLeaveGameMode(). &lt;/p&gt;&lt;h2&gt;GLUT Full-Screen (GLUT-fullscreen2.c) &lt;/h2&gt;&lt;p align=&quot;justify&quot;&gt;The other method of switching to full-screen is simply to call glutFullScreen() after opening the window. Exiting full-screen and returning to a window view can be achieved by calling glutReshape().&amp;nbsp; &lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;So why have two separate methods of switching to full-screen? Well, the specification for glutFullScreen() simply states that the image should cover the complete screen. In many systems, this means enlarging the window to cover the whole screen, and making it borderless. GLUT game-mode, on the other hand, allows specifying the resolution of the display. The reason for this implementation probably stems from the fact that most systems have no concept of multiple screens like the Amiga does. MiniGL&amp;nbsp; on Amiga OS 4 opens a separate screen in both cases. For glutFullScreen(), it tries to choose the screen-mode that most closely matches the original window. &lt;/p&gt;&lt;h2&gt;Download&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://hdrlab.org.nz/assets/MiniGL-templates/GLUT-fullscreen-template.lha&quot; target=&quot;_blank&quot; title=&quot;The GLUT full-screen template.&quot;&gt;GLUT full-screen templates&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align=&quot;justify&quot;&gt;NOTE: For Amiga OS users/developers, this template requires features that are only available in &lt;a href=&quot;http://hdrlab.org.nz/minigl/&quot; title=&quot;MiniGL 2.0&quot;&gt;MiniGL 2.0&lt;/a&gt; or better.&amp;nbsp; &lt;/p&gt;</description>
			<pubDate>Fri, 27 Jun 2008 10:36:18 -0500</pubDate>
			
			<guid>http://hdrlab.org.nz/full-screen-glut/</guid>
		</item>
		
		<item>
			<title>Frame-Rate Independent Animation using GLUT</title>
			<link>http://hdrlab.org.nz/frame-rate-independent-animation-using-glut/</link>
			<description>&lt;table align=&quot;right&quot; border=&quot;0&quot; width=&quot;207&quot; height=&quot;181&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href=&quot;http://hdrlab.org.nz/assets/MiniGL-templates/GLUT-template-screenshot.jpg&quot;&gt;&lt;img class=&quot;left&quot; src=&quot;http://hdrlab.org.nz/assets/MiniGL-templates/_resampled/ResizedImage200153-GLUT-template-screenshot.jpg&quot; alt=&quot;A screenshot of the unaltered GLUT template&quot; title=&quot;null&quot; hspace=&quot;null&quot; vspace=&quot;null&quot; width=&quot;200&quot; height=&quot;153&quot; align=&quot;null&quot; /&gt;&lt;/a&gt; &lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&amp;nbsp;A triangle that rotates at constant speed regardless of CPU load. &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p align=&quot;justify&quot;&gt;You may have experienced old computer games running so blazingly fast that they are unplayable, when run on a newer, faster, machine. This is due to the game relying on the timing of the specific machine for which it was designed. The &lt;a href=&quot;http://hdrlab.org.nz/a-basic-glut-application/&quot; title=&quot;The basic GLUT template&quot;&gt;basic GLUT template&lt;/a&gt; has the same problem. Try resizing the window. Make it small; notice how the triangle now spins at a ridiculously fast rate? Now make the window as big as the screen; the triangle slows down? This is because the different window sizes take different amounts of time to draw, resulting in different timing depending on the window size. The template simply uses 100% of the available CPU time to render and animate the triangle, with no regard to timing. This becomes even more annoying when another CPU intensive task is involved; the other task (or tasks) will cause the GLUT application timing to vary, resulting in stuttering animation. Thus, software such as games must be designed to compensate for variable timing. Methods for achieving this using GLUT are given below.&amp;nbsp; &lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;This template includes a project file for Visual Studio 2008 (i.e., Windows), and a makefile for Amiga OS 4.x+. Users of other systems should be able to modify the makefile for their systems easily. &lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;&lt;a href=&quot;http://hdrlab.org.nz/learning-how-to-program-in-opengl-book-recommendations/&quot; title=&quot;Learning How to Program in OpenGL (Book Recommendations)&quot;&gt;Learn more about programming in OpenGL. Click here.&lt;/a&gt;&amp;nbsp; &lt;/p&gt;&lt;h2&gt;Frame-Rate Limited Animation &lt;/h2&gt;&lt;p align=&quot;justify&quot;&gt;The easiest method of obtaining constant-speed animation, is to limit the frame-rate via the use of a timer. GLUT offers a hook that calls a specified function after a desired delay. Thus, this can be achieved simply by changing the animate() function in the basic template to:&lt;/p&gt;&lt;blockquote&gt;&lt;pre align=&quot;justify&quot;&gt;void animate(int value)&lt;br /&gt;{ &lt;br /&gt;    glutTimerFunc(TIMERMSECS, animate, 0);&lt;br /&gt;    ... the rest of the animate code ... &lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;p align=&quot;justify&quot;&gt;Here, TIMERMSECS is the delay in milliseconds between calls to animate. The new parameter &amp;quot;value&amp;quot; is ignored, but could be used for a single call-back function to differentiate between different timer events. The only other change left is to replace the following in the main() function:&lt;/p&gt;&lt;blockquote&gt;&lt;pre align=&quot;justify&quot;&gt;glutIdleFunc(animate);&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;p align=&quot;justify&quot;&gt;with this: &lt;/p&gt;&lt;blockquote&gt;&lt;pre align=&quot;justify&quot;&gt;glutTimerFunc(TIMERMSECS, animate, 0);&lt;/pre&gt;&lt;/blockquote&gt;&lt;p align=&quot;justify&quot;&gt;This call starts the timer. This is all that is required for timer-based animation.&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;If you have a CPU monitoring utility, you will also note that this template uses a fraction of the CPU power of the other. This is because it only performs the processing required to render the animation at the desired speed. I recommend using a timer instead of an idle function (when in windowed mode) simply because there is no point in rendering 100+ fps on a display with a refresh rate of 60-75 Hz.&amp;nbsp; &lt;/p&gt;&lt;p&gt;The link to the template source code can be found in the &lt;a href=&quot;http://hdrlab.org.nz/#downloads&quot; title=&quot;Downloads&quot;&gt;downloads section below&lt;/a&gt;.&lt;/p&gt;&lt;h2&gt;Achieving Frame-Rate Independent Animation&lt;br /&gt;&lt;/h2&gt;&lt;p align=&quot;justify&quot;&gt;The timer based template above does not completely solve the animation speed problem. It effectively sets a constant frame-rate. However, if one were to run other programs simultaneously with the timer-based GLUT template, the animation will still stutter. Likewise, if processing time for any operation within a GLUT application takes longer than the timer period, the animation speed would still change. This is because the timing is not guaranteed; the computer will take &amp;quot;best-efforts&amp;quot; to meet the timing, but overloading the CPU will make this impossible. What is required is a mechanism for measuring elapsed time (and/or the time since the last frame), and responding appropriately.&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;Fortunately, GLUT offers an easy way to obtain the elapsed time since the application was started via the following line of code:&lt;/p&gt;&lt;blockquote&gt;&lt;pre align=&quot;justify&quot;&gt;int time = glutGet(GLUT_ELAPSED_TIME); &lt;/pre&gt;&lt;/blockquote&gt;&lt;p align=&quot;justify&quot;&gt;The animate template provides two variables in the animate method that can be used for animation timing. ElapsedTime gives the number of milliseconds since the first timer tick; timeSincePrevFrame is the time in milliseconds since the previous frame occurred. You may notice that the template has a startTime variable that is initialised with a glutGet(GLUT_ELAPSED_TIME); call. This is just me being cautious. It also offers the ability to reset the timer if you so wish (e.g., when a new game is started).&amp;nbsp;&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;The template's default code rotates a triangle at constant angular velocity. This is achieved simply by multiplying the elapsed time with a constant, i.e.,:&lt;/p&gt;&lt;blockquote&gt;&lt;pre align=&quot;justify&quot;&gt;rot = ROTRATE / 1000 *&amp;nbsp; elapsedTime;&lt;/pre&gt;&lt;/blockquote&gt;&lt;p align=&quot;justify&quot;&gt;Try running this template simultaneously with the timer-based template, and then run other applications in order to bring CPU usage to 100%. Whilst the frame rate may drop and stutter, this template will keep the triangle rotating at constant speed, whereas the timer-based template will not. This shows frame-rate independent animation in action.&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;For more complicated animations, or game engines, it may be necessary to calculate the average frame-rate too. Often a game/animation engine will take varying lengths of time to perform all computations depending on factors such as the number of collisions, etc. In this case, one wishes to estimate what time it will be when the image is redrawn, not what time it is at the start of processing. However, the basic principles remain the same. &amp;nbsp; &lt;/p&gt;&lt;h2&gt;Downloads&lt;a name=&quot;downloads&quot; title=&quot;downloads&quot;&gt;&lt;/a&gt;&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://hdrlab.org.nz/assets/MiniGL-templates/GLUT-timertick-template.lha&quot; target=&quot;_blank&quot; title=&quot;A timer-based animation template for GLUT&quot;&gt;GLUT timer based animation template&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://hdrlab.org.nz/assets/MiniGL-templates/GLUT-animate-template.lha&quot; target=&quot;_blank&quot; title=&quot;The GLUT frame-rate independent animation template&quot;&gt;GLUT frame-rate independent animation template&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align=&quot;justify&quot;&gt;NOTE: For Amiga OS users this template requires features that are only available in &lt;a href=&quot;http://hdrlab.org.nz/minigl/&quot; title=&quot;MiniGL 2.0&quot;&gt;MiniGL 2.0&lt;/a&gt; or better. &lt;/p&gt;</description>
			<pubDate>Wed, 18 Jun 2008 21:56:09 -0500</pubDate>
			
			<guid>http://hdrlab.org.nz/frame-rate-independent-animation-using-glut/</guid>
		</item>
		
		<item>
			<title>Silverstripe/PHP Projects</title>
			<link>http://hdrlab.org.nz/silverstripe-php-projects/</link>
			<description>&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img class=&quot;right&quot; src=&quot;http://hdrlab.org.nz/assets/Uploads/SilverStripeLogo.png&quot; alt=&quot;Silverstripe logo&quot; title=&quot;Silverstripe logo&quot; width=&quot;200&quot; /&gt;This section is devoted to projects related to &lt;a href=&quot;http://silverstripe.org&quot; title=&quot;Silverstripe&quot;&gt;Silverstripe&lt;/a&gt;, and PHP/web-programming in general. These projects were often started in order to extend this site's functionality. &lt;a href=&quot;http://silverstripe.org&quot; title=&quot;Silverstripe&quot;&gt;Silverstripe&lt;/a&gt; is the Content Management System (CMS) that runs this website; it is written in &lt;a href=&quot;http://php.net/&quot; title=&quot;PHP.net&quot;&gt;PHP&lt;/a&gt;, a powerful scripting language that is well suited to web-development.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Links will be added to the menu on the left as projects are ready.&lt;/p&gt;</description>
			<pubDate>Thu, 19 Mar 2009 21:57:28 -0500</pubDate>
			
			<guid>http://hdrlab.org.nz/silverstripe-php-projects/</guid>
		</item>
		
		<item>
			<title>R5xx Compositing is Done</title>
			<link>http://hdrlab.org.nz/r5xx-compositing-is-done/</link>
			<description>&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;img class=&quot;left&quot; src=&quot;http://hdrlab.org.nz/assets/Projects/RadeonHD/r5xx-compositing-thumbnail.jpg&quot; alt=&quot;R5xx compositing on Amiga OS 4.x&quot; title=&quot;R5cc compositing on Amiga OS 4.x&quot; width=&quot;150&quot; height=&quot;126&quot; /&gt;I am pleased to announce that compositing for R5xx based cards (Radeon X1000 series) is now done. This marks a major milestone in the development of the RadeonHD.chip driver. Namely, full 2D graphics acceleration is implemented for an entire series of graphics cards. The screenshot below shows&amp;nbsp; Workbench with compositing effects enabled being displayed by a Radeon X1550 graphics card. As you can see, the errors that were present in the previous screenshot are now gone (the development log entry containing the previous screenshot is included in the image below for comparison).&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;Implementing compositing proved to be a major undertaking. As I said earlier, Amiga OS 4.x's compositing contains a powerful array of features, all of which must be implemented correctly by the driver. Added to this, a slight eror in the data sent to the graphics card could cause a freeze, requiring a hard reset. This makes debugging rather time consuming. Needless to say, I am glad that it is done, and working correctly.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;With full 2D acceleration implemented for R5xx chipsets, it is now time to turn my attention to hardware accelerated blitter for R6xx/R7xx based cards.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://hdrlab.org.nz/assets/Projects/RadeonHD/r5xx-compositing.jpg&quot; title=&quot;Click to view at full resolution&quot;&gt;&lt;img class=&quot;center&quot; src=&quot;http://hdrlab.org.nz/assets/Projects/RadeonHD/r5xx-compositing.jpg&quot; alt=&quot;R5xx compositing on Amiga OS 4.x&quot; title=&quot;R5xx compositing on Amiga OS 4.x&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description>
			<pubDate>Mon, 28 Dec 2009 00:00:00 -0600</pubDate>
			
			<dc:creator>Hans de Ruiter</dc:creator>
			<guid>http://hdrlab.org.nz/r5xx-compositing-is-done/</guid>
		</item>
		
		<item>
			<title>RadeonHD Driver</title>
			<link>http://hdrlab.org.nz/radeonhd-driver/</link>
			<description>&lt;p align=&quot;justify&quot;&gt;&lt;img class=&quot;right&quot; src=&quot;http://hdrlab.org.nz/assets/Projects/RadeonHD/_resampled/ResizedImage225165-x1300256pci.jpg&quot; title=&quot;null&quot; hspace=&quot;null&quot; vspace=&quot;null&quot; width=&quot;225&quot; height=&quot;165&quot; align=&quot;null&quot; alt=&quot;&quot; /&gt;The goal of this project is to write an Amiga OS 4.x graphics driver for R5xx and higher graphics cards. One of the motivations for this is that, my computer vision research extensively uses shaders that are present in modern GPUs. None of the existing supported graphics cards for Amiga OS 4.x support shaders.&amp;nbsp; Shaders are rapidly becoming an essential component for running newer games. This project, however, focuses on the 2D driver, not 3D. Without a 2D driver, there will be no 3D driver. Hence, this is the first important step toward supporting more modern graphics cards. Once the 2D driver is in place, and a full MESA port is underway, a 3D OpenGL driver can be considered.&lt;/p&gt;
&lt;p align=&quot;justify&quot;&gt;&lt;strong&gt;IMPORTANT:&lt;/strong&gt; Developing a driver will take a considerable amount of time. This page will be updated as and when progress occurs. For those wishing to follow progress, keep an eye on the &lt;a href=&quot;http://hdrlab.org.nz/radeonhd-development-log/&quot; title=&quot;RadeonHD Driver Development Log&quot;&gt;development log&lt;/a&gt;.&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Current Project Status&lt;/h2&gt;
&lt;p&gt;The following features/functionality are operational:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Framebuffer,&lt;/li&gt;
&lt;li&gt;VGA and DVI output for all cards (VGA only for Radeon HD 4000 series),&lt;/li&gt;
&lt;li&gt;Full 2D acceleration for R5xx chipsets (Radeon X1000 series), including compositing, and&lt;/li&gt;
&lt;li&gt;Hardware mouse pointer.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;a href=&quot;http://hdrlab.org.nz/radeonhd-development-log/&quot; title=&quot;RadeonHD Driver Development Log&quot;&gt;The Development Log&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Follow the progress of this project in the &lt;a href=&quot;http://hdrlab.org.nz/radeonhd-development-log/&quot; title=&quot;RadeonHD Driver Development Log&quot;&gt;RadeonHD Development Log&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Tested Cards&lt;/h3&gt;
&lt;table border=&quot;0&quot; align=&quot;center&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&amp;nbsp;&lt;strong&gt;Card Name&lt;br /&gt;&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Chipset&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Status&lt;/strong&gt; &lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Visiontek Radeon X1300 PCI&lt;/td&gt;
&lt;td&gt;&amp;nbsp;RV515&lt;/td&gt;
&lt;td&gt;Framebuffer works in 32-bit (&lt;a href=&quot;http://hdrlab.org.nz/radeon-x1300-hardware-issues/&quot; title=&quot;Radeon X1300 Hardware Issues&quot;&gt;there are hardware issues&lt;/a&gt;)&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HIS Radeon X1550 PCI&lt;br /&gt;&lt;/td&gt;
&lt;td&gt;&amp;nbsp;RV505&lt;/td&gt;
&lt;td&gt;Framebuffer fully operational, both VGA and DVI output tested and working. 2D blitter hardware acceleration working.&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Diamond Radeon HD 2400 Pro PCI&lt;/td&gt;
&lt;td&gt;&amp;nbsp;RV610&lt;/td&gt;
&lt;td&gt;Framebuffer fully operational&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HIS Radeon 4350 PCI&lt;/td&gt;
&lt;td style=&quot;text-align: center;&quot;&gt;RV710&lt;/td&gt;
&lt;td&gt;Framebuffer fully operational&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p align=&quot;justify&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;table border=&quot;0&quot; align=&quot;center&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;http://hdrlab.org.nz/assets/Projects/RadeonHD/RadeonX1300-testscreen.jpg&quot; title=&quot;Click here to see this photo at high resolution&quot;&gt;&lt;img src=&quot;http://hdrlab.org.nz/assets/Projects/RadeonHD/RadeonX1300-testscreen.jpg&quot; alt=&quot;The Screen Mode Preferences test screen as displayed by a Radeon X1300.&quot; title=&quot;undefined&quot; hspace=&quot;null&quot; vspace=&quot;null&quot; width=&quot;500&quot; /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;The Screen Mode Preferences test screen as displayed by a Radeon X1300.&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p align=&quot;justify&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table border=&quot;0&quot; align=&quot;center&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;http://hdrlab.org.nz/assets/Projects/RadeonHD/RadeonX1300-workbench.jpg&quot; title=&quot;Click here to see a full resolution version.&quot;&gt;&lt;img class=&quot;left&quot; src=&quot;http://hdrlab.org.nz/assets/Projects/RadeonHD/RadeonX1300-workbench.jpg&quot; alt=&quot;Workbench being displayed by a Radeon X1300 graphics card.&quot; title=&quot;null&quot; hspace=&quot;null&quot; vspace=&quot;null&quot; width=&quot;500&quot; align=&quot;null&quot; /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;nbsp;Workbench being displayed by a Radeon X1300 graphics card.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p align=&quot;justify&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
			<pubDate>Sat, 28 Jun 2008 22:50:05 -0500</pubDate>
			
			<guid>http://hdrlab.org.nz/radeonhd-driver/</guid>
		</item>
		
		<item>
			<title>Month in Review - January 2009</title>
			<link>http://hdrlab.org.nz/month-in-review-january-200/</link>
			<description>&lt;p align=&quot;justify&quot;&gt;This month has seen a move to a newer, faster server. Just to give an idea of how much difference this makes, Google's search-bot took an average of 2.2 seconds to download a page on the old server, whereas a page download now takes about 0.5 seconds. That's approximately 4 times faster.&amp;nbsp;&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;I have finally received my Amigaone, which I had sent to myself from Canada to New Zealand back in November. As a result, the &lt;a href=&quot;http://hdrlab.org.nz/radeonhd-driver/&quot; title=&quot;RadeonHD Driver for Amiga OS 4.x&quot;&gt;RadeonHD driver for Amiga OS 4.x&lt;/a&gt; is progressing again. &lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;There have also been a number of more minor changes. &lt;a href=&quot;http://hdrlab.org.nz/improving-website-navigation-usability/&quot; title=&quot;Improving Website Navigation/Usability&quot;&gt;Drop-down menus&lt;/a&gt; have been added (plus a few other layout changes) in order to improve this website's usability. &lt;a href=&quot;http://hdrlab.org.nz/akismet-no-longer-working-on-this-website/&quot; title=&quot;Akismet no Longer Working on this Website&quot;&gt;Akismet was replaced&lt;/a&gt; with math based spam protection. As usual, more content has also been added. &lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;The statistics for the last month:&lt;/p&gt;&lt;table align=&quot;center&quot; border=&quot;0&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Attribute&lt;/b&gt; &lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Value&lt;/b&gt; &lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&amp;nbsp;Number of Pages&lt;br /&gt;&lt;/td&gt;&lt;td&gt;144&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&amp;nbsp;Size of site &lt;/td&gt;&lt;td&gt;80.0 MiB (HELM provides the total)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&amp;nbsp;Number of Visits&lt;/td&gt;&lt;td&gt;1247 (Google Analytics)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&amp;nbsp;Number of unique visitors&lt;br /&gt;&lt;/td&gt;&lt;td&gt;972 (Google Analytics)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&amp;nbsp;Total page views&lt;br /&gt;&lt;/td&gt;&lt;td&gt;2314 (Google Analytics)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&amp;nbsp;Bandwidth&lt;/td&gt;&lt;td&gt;912.2 MiB (server control panel)&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&amp;nbsp;Adsense Revenue&lt;br /&gt;&lt;/td&gt;&lt;td&gt;$2.49&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p align=&quot;justify&quot;&gt;One important thing to note is that Google Analytics only sees page-views on the public part of the site, whereas AWStats and Webalizer also log the accesses by me to the CMS pages that are used to maintain and update the sit. &lt;/p&gt;&lt;table align=&quot;center&quot; border=&quot;0&quot; width=&quot;484&quot; height=&quot;232&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href=&quot;http://hdrlab.org.nz/assets/MonthlyReview/20090201-hdrlab.org.nz-world.jpg&quot; title=&quot;Click for full-scale image&quot;&gt;&lt;img src=&quot;http://hdrlab.org.nz/assets/MonthlyReview/_resampled/ResizedImage500188-20090201-hdrlab.org.nz-world.jpg&quot; alt=&quot;null&quot; title=&quot;undefined&quot; hspace=&quot;null&quot; vspace=&quot;null&quot; width=&quot;500&quot; height=&quot;188&quot;   /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A snap-shot of visitor locations on 1 February 2009.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
			<pubDate>Sun, 01 Feb 2009 00:00:00 -0600</pubDate>
			
			<dc:creator>Hans de Ruiter</dc:creator>
			<guid>http://hdrlab.org.nz/month-in-review-january-200/</guid>
		</item>
		
		<item>
			<title>Month in Review - February 2009</title>
			<link>http://hdrlab.org.nz/month-in-review-february-200/</link>
			<description>&lt;p align=&quot;justify&quot;&gt;This month has seen further development of the &lt;a href=&quot;http://hdrlab.org.nz/radeonhd-driver/&quot; title=&quot;RadeonHD Driver&quot;&gt;RadeonHD driver&lt;/a&gt;, and a few more &lt;a href=&quot;http://hdrlab.org.nz/minigl-templates/&quot; title=&quot;OpenGL/MiniGL Templates&quot;&gt;OpenGL templates&lt;/a&gt;. Fewer additions to this website occurred because I have been spending more time working on various projects. Unlike other websites, adding pages to this site requires extra work to develop the software/technology upon which the page is based (except for &lt;a href=&quot;http://hdrlab.org.nz/are-web-directories-obsolete/&quot; title=&quot;Are Web Directories Obsolete?&quot;&gt;random musings&lt;/a&gt; in this blog). This results in fewer updates, but also less rambling. &lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;The Google AdSense revenue spiked this month. However, this is probably an outlier because the increase is disproportionate to the increase in page views. &lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;The statistics for the last month:&lt;/p&gt;&lt;table align=&quot;center&quot; border=&quot;0&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Attribute&lt;/b&gt; &lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Value&lt;/b&gt; &lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&amp;nbsp;Number of Pages&lt;br /&gt;&lt;/td&gt;&lt;td&gt;153&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&amp;nbsp;Size of site &lt;/td&gt;&lt;td&gt;74.4 MiB (HELM provides the total)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&amp;nbsp;Number of Visits&lt;/td&gt;&lt;td&gt;1456 (Google Analytics)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&amp;nbsp;Number of unique visitors&lt;br /&gt;&lt;/td&gt;&lt;td&gt;1069 (Google Analytics)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&amp;nbsp;Total page views&lt;br /&gt;&lt;/td&gt;&lt;td&gt;3358 (Google Analytics)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&amp;nbsp;Bandwidth&lt;/td&gt;&lt;td&gt;1.07 GiB (server control panel)&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&amp;nbsp;Adsense Revenue&lt;br /&gt;&lt;/td&gt;&lt;td&gt;$10.53&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p align=&quot;justify&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;table width=&quot;484&quot; align=&quot;center&quot; border=&quot;0&quot; height=&quot;232&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href=&quot;http://hdrlab.org.nz/assets/MonthlyReview/20090301-hdrlab.org.nz-world.jpg&quot; title=&quot;Click for full-scale image&quot;&gt;&lt;img src=&quot;http://hdrlab.org.nz/assets/MonthlyReview/_resampled/ResizedImage500188-20090301-hdrlab.org.nz-world.jpg&quot; alt=&quot;null&quot; title=&quot;undefined&quot; hspace=&quot;null&quot; vspace=&quot;null&quot; width=&quot;500&quot; height=&quot;188&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A snap-shot of visitor locations on 1 March 2009.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
			<pubDate>Sun, 01 Mar 2009 00:00:00 -0600</pubDate>
			
			<dc:creator>Hans de Ruiter</dc:creator>
			<guid>http://hdrlab.org.nz/month-in-review-february-200/</guid>
		</item>
		

	</channel>
</rss>