diff --git a/tests/xglrenderframework.cpp b/tests/xglrenderframework.cpp
index b7b3742..22d3216 100644
--- a/tests/xglrenderframework.cpp
+++ b/tests/xglrenderframework.cpp
@@ -38,7 +38,7 @@
 {
     m_renderTargetCount = 1;
 
-    m_render_target_fmt = XGL_FMT_R8G8B8A8_UNORM;
+    m_render_target_fmt = XGL_FMT_B8G8R8A8_UNORM;
 
     m_depthStencilBinding.view = XGL_NULL_HANDLE;
 }
@@ -83,7 +83,7 @@
 {
     XGL_RESULT err;
 
-    m_render_target_fmt = XGL_FMT_R8G8B8A8_UNORM;
+    m_render_target_fmt = XGL_FMT_B8G8R8A8_UNORM;
 
     // create a raster state (solid, back-face culling)
     XGL_DYNAMIC_RS_STATE_CREATE_INFO raster = {};
@@ -383,7 +383,7 @@
         XGL_STRUCTURE_TYPE_COLOR_ATTACHMENT_VIEW_CREATE_INFO,
         XGL_NULL_HANDLE,
         obj(),
-        XGL_FMT_R8G8B8A8_UNORM,
+        XGL_FMT_B8G8R8A8_UNORM,
         0,
         0,
         1
@@ -805,7 +805,7 @@
 
     XGL_PIPELINE_CB_ATTACHMENT_STATE att = {};
     att.blendEnable = XGL_FALSE;
-    att.format = XGL_FMT_R8G8B8A8_UNORM;
+    att.format = XGL_FMT_B8G8R8A8_UNORM;
     att.channelWriteMask = 0xf;
     AddColorAttachment(0, &att);
 
diff --git a/tests/xgltestbinding.h b/tests/xgltestbinding.h
index a47b44a..676fcab 100644
--- a/tests/xgltestbinding.h
+++ b/tests/xgltestbinding.h
@@ -407,6 +407,7 @@
     XGL_IMAGE_SUBRESOURCE_RANGE subresource_range(XGL_IMAGE_ASPECT aspect) const { return subresource_range(create_info_, aspect); }
     XGL_EXTENT3D extent() const { return create_info_.extent; }
     XGL_EXTENT3D extent(uint32_t mip_level) const { return extent(create_info_.extent, mip_level); }
+    XGL_FORMAT format() const {return create_info_.format;}
 
     XGL_IMAGE_MEMORY_BARRIER image_memory_barrier(XGL_FLAGS output_mask, XGL_FLAGS input_mask,
                                                   XGL_IMAGE_LAYOUT old_layout,
diff --git a/tests/xgltestframework.cpp b/tests/xgltestframework.cpp
index fa648a3..7b83596 100644
--- a/tests/xgltestframework.cpp
+++ b/tests/xgltestframework.cpp
@@ -214,11 +214,27 @@
     file << 255 << "\n";
 
     for (y = 0; y < image->height(); y++) {
-        const char *row = ptr;
+        const int *row = (const int *) ptr;
+        int swapped;
 
-        for (x = 0; x < image->width(); x++) {
-            file.write(row, 3);
-            row += 4;
+        if (image->format() == XGL_FMT_B8G8R8A8_UNORM)
+        {
+            for (x = 0; x < image->width(); x++) {
+                swapped = (*row & 0xff00ff00) | (*row & 0x000000ff) << 16 | (*row & 0x00ff0000) >> 16;
+                file.write((char *) &swapped, 3);
+                row++;
+            }
+        }
+        else if (image->format() == XGL_FMT_R8G8B8A8_UNORM)
+        {
+            for (x = 0; x < image->width(); x++) {
+                file.write((char *) row, 3);
+                row++;
+            }
+        }
+        else {
+            printf("Unrecognized image format - will not write image files");
+            break;
         }
 
         ptr += sr_layout.rowPitch;
