From 517399f5d953ea3569783e66b2d8a01192431f1f Mon Sep 17 00:00:00 2001
From: cosmonaut <evan@moonside.games>
Date: Fri, 25 Feb 2022 13:42:11 -0800
Subject: [PATCH] convert all spaces to tabs

---
 .editorconfig               |  13 +
 include/Refresh.h           | 164 ++++----
 include/Refresh_Image.h     |  10 +-
 src/Refresh.c               | 720 ++++++++++++++++++------------------
 src/Refresh_Driver.h        | 600 +++++++++++++++---------------
 src/Refresh_Driver_Vulkan.c | 605 +++++++++++++++---------------
 src/Refresh_Image.c         |  94 ++---
 7 files changed, 1110 insertions(+), 1096 deletions(-)
 create mode 100644 .editorconfig

diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..728d2cb
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,13 @@
+# EditorConfig is awesome: https://EditorConfig.org
+
+# top-most EditorConfig file
+root = true
+
+[*]
+indent_style = tab
+insert_final_newline = true
+trim_trailing_whitespace = true
+
+[*.{c,h}]
+charset = utf-8-bom
+max_line_length = 100
diff --git a/include/Refresh.h b/include/Refresh.h
index 66605f3..9442757 100644
--- a/include/Refresh.h
+++ b/include/Refresh.h
@@ -74,7 +74,7 @@ typedef enum Refresh_PresentMode
 
 typedef enum Refresh_PrimitiveType
 {
-    REFRESH_PRIMITIVETYPE_POINTLIST,
+	REFRESH_PRIMITIVETYPE_POINTLIST,
 	REFRESH_PRIMITIVETYPE_LINELIST,
 	REFRESH_PRIMITIVETYPE_LINESTRIP,
 	REFRESH_PRIMITIVETYPE_TRIANGLELIST,
@@ -83,59 +83,59 @@ typedef enum Refresh_PrimitiveType
 
 typedef enum Refresh_LoadOp
 {
-    REFRESH_LOADOP_LOAD,
-    REFRESH_LOADOP_CLEAR,
-    REFRESH_LOADOP_DONT_CARE
+	REFRESH_LOADOP_LOAD,
+	REFRESH_LOADOP_CLEAR,
+	REFRESH_LOADOP_DONT_CARE
 } Refresh_LoadOp;
 
 typedef enum Refresh_StoreOp
 {
-    REFRESH_STOREOP_STORE,
-    REFRESH_STOREOP_DONT_CARE
+	REFRESH_STOREOP_STORE,
+	REFRESH_STOREOP_DONT_CARE
 } Refresh_StoreOp;
 
 typedef enum Refresh_ClearOptionsBits
 {
-    REFRESH_CLEAROPTIONS_COLOR   = 0x00000001,
-    REFRESH_CLEAROPTIONS_DEPTH   = 0x00000002,
-    REFRESH_CLEAROPTIONS_STENCIL = 0x00000004,
+	REFRESH_CLEAROPTIONS_COLOR   = 0x00000001,
+	REFRESH_CLEAROPTIONS_DEPTH   = 0x00000002,
+	REFRESH_CLEAROPTIONS_STENCIL = 0x00000004,
 } Refresh_ClearOptionsBits;
 
 typedef uint32_t Refresh_ClearOptions;
 
 typedef enum Refresh_IndexElementSize
 {
-    REFRESH_INDEXELEMENTSIZE_16BIT,
-    REFRESH_INDEXELEMENTSIZE_32BIT
+	REFRESH_INDEXELEMENTSIZE_16BIT,
+	REFRESH_INDEXELEMENTSIZE_32BIT
 } Refresh_IndexElementSize;
 
 typedef enum Refresh_TextureFormat
 {
 	/* Color Formats */
-    REFRESH_TEXTUREFORMAT_R8G8B8A8,
-    REFRESH_TEXTUREFORMAT_R5G6B5,
-    REFRESH_TEXTUREFORMAT_A1R5G5B5,
-    REFRESH_TEXTUREFORMAT_B4G4R4A4,
-    REFRESH_TEXTUREFORMAT_BC1,
-    REFRESH_TEXTUREFORMAT_BC2,
-    REFRESH_TEXTUREFORMAT_BC3,
-    REFRESH_TEXTUREFORMAT_R8G8_SNORM,
-    REFRESH_TEXTUREFORMAT_R8G8B8A8_SNORM,
-    REFRESH_TEXTUREFORMAT_A2R10G10B10,
-    REFRESH_TEXTUREFORMAT_R16G16,
-    REFRESH_TEXTUREFORMAT_R16G16B16A16,
-    REFRESH_TEXTUREFORMAT_R8,
-    REFRESH_TEXTUREFORMAT_R32_SFLOAT,
-    REFRESH_TEXTUREFORMAT_R32G32_SFLOAT,
-    REFRESH_TEXTUREFORMAT_R32G32B32A32_SFLOAT,
-    REFRESH_TEXTUREFORMAT_R16_SFLOAT,
-    REFRESH_TEXTUREFORMAT_R16G16_SFLOAT,
-    REFRESH_TEXTUREFORMAT_R16G16B16A16_SFLOAT,
+	REFRESH_TEXTUREFORMAT_R8G8B8A8,
+	REFRESH_TEXTUREFORMAT_R5G6B5,
+	REFRESH_TEXTUREFORMAT_A1R5G5B5,
+	REFRESH_TEXTUREFORMAT_B4G4R4A4,
+	REFRESH_TEXTUREFORMAT_BC1,
+	REFRESH_TEXTUREFORMAT_BC2,
+	REFRESH_TEXTUREFORMAT_BC3,
+	REFRESH_TEXTUREFORMAT_R8G8_SNORM,
+	REFRESH_TEXTUREFORMAT_R8G8B8A8_SNORM,
+	REFRESH_TEXTUREFORMAT_A2R10G10B10,
+	REFRESH_TEXTUREFORMAT_R16G16,
+	REFRESH_TEXTUREFORMAT_R16G16B16A16,
+	REFRESH_TEXTUREFORMAT_R8,
+	REFRESH_TEXTUREFORMAT_R32_SFLOAT,
+	REFRESH_TEXTUREFORMAT_R32G32_SFLOAT,
+	REFRESH_TEXTUREFORMAT_R32G32B32A32_SFLOAT,
+	REFRESH_TEXTUREFORMAT_R16_SFLOAT,
+	REFRESH_TEXTUREFORMAT_R16G16_SFLOAT,
+	REFRESH_TEXTUREFORMAT_R16G16B16A16_SFLOAT,
 	/* Depth Formats */
 	REFRESH_TEXTUREFORMAT_D16_UNORM,
 	REFRESH_TEXTUREFORMAT_D32_SFLOAT,
-    REFRESH_TEXTUREFORMAT_D16_UNORM_S8_UINT,
-    REFRESH_TEXTUREFORMAT_D32_SFLOAT_S8_UINT
+	REFRESH_TEXTUREFORMAT_D16_UNORM_S8_UINT,
+	REFRESH_TEXTUREFORMAT_D32_SFLOAT_S8_UINT
 } Refresh_TextureFormat;
 
 typedef enum Refresh_TextureUsageFlagBits
@@ -160,12 +160,12 @@ typedef enum Refresh_SampleCount
 
 typedef enum Refresh_CubeMapFace
 {
-    REFRESH_CUBEMAPFACE_POSITIVEX,
-    REFRESH_CUBEMAPFACE_NEGATIVEX,
-    REFRESH_CUBEMAPFACE_POSITIVEY,
-    REFRESH_CUBEMAPFACE_NEGATIVEY,
-    REFRESH_CUBEMAPFACE_POSITIVEZ,
-    REFRESH_CUBEMAPFACE_NEGATIVEZ
+	REFRESH_CUBEMAPFACE_POSITIVEX,
+	REFRESH_CUBEMAPFACE_NEGATIVEX,
+	REFRESH_CUBEMAPFACE_POSITIVEY,
+	REFRESH_CUBEMAPFACE_NEGATIVEY,
+	REFRESH_CUBEMAPFACE_POSITIVEZ,
+	REFRESH_CUBEMAPFACE_NEGATIVEZ
 } Refresh_CubeMapFace;
 
 typedef enum Refresh_BufferUsageFlagBits
@@ -256,52 +256,52 @@ typedef enum Refresh_BlendOp
 typedef enum Refresh_LogicOp
 {
 	REFRESH_LOGICOP_CLEAR = 0,
-    REFRESH_LOGICOP_AND = 1,
-    REFRESH_LOGICOP_AND_REVERSE = 2,
-    REFRESH_LOGICOP_COPY = 3,
-    REFRESH_LOGICOP_AND_INVERTED = 4,
-    REFRESH_LOGICOP_NO_OP = 5,
-    REFRESH_LOGICOP_XOR = 6,
-    REFRESH_LOGICOP_OR = 7,
-    REFRESH_LOGICOP_NOR = 8,
-    REFRESH_LOGICOP_EQUIVALENT = 9,
-    REFRESH_LOGICOP_INVERT = 10,
-    REFRESH_LOGICOP_OR_REVERSE = 11,
-    REFRESH_LOGICOP_COPY_INVERTED = 12,
-    REFRESH_LOGICOP_OR_INVERTED = 13,
-    REFRESH_LOGICOP_NAND = 14,
-    REFRESH_LOGICOP_SET = 15
+	REFRESH_LOGICOP_AND = 1,
+	REFRESH_LOGICOP_AND_REVERSE = 2,
+	REFRESH_LOGICOP_COPY = 3,
+	REFRESH_LOGICOP_AND_INVERTED = 4,
+	REFRESH_LOGICOP_NO_OP = 5,
+	REFRESH_LOGICOP_XOR = 6,
+	REFRESH_LOGICOP_OR = 7,
+	REFRESH_LOGICOP_NOR = 8,
+	REFRESH_LOGICOP_EQUIVALENT = 9,
+	REFRESH_LOGICOP_INVERT = 10,
+	REFRESH_LOGICOP_OR_REVERSE = 11,
+	REFRESH_LOGICOP_COPY_INVERTED = 12,
+	REFRESH_LOGICOP_OR_INVERTED = 13,
+	REFRESH_LOGICOP_NAND = 14,
+	REFRESH_LOGICOP_SET = 15
 } Refresh_LogicOp;
 
 typedef enum Refresh_BlendFactor
 {
-    REFRESH_BLENDFACTOR_ZERO = 0,
-    REFRESH_BLENDFACTOR_ONE = 1,
-    REFRESH_BLENDFACTOR_SRC_COLOR = 2,
-    REFRESH_BLENDFACTOR_ONE_MINUS_SRC_COLOR = 3,
-    REFRESH_BLENDFACTOR_DST_COLOR = 4,
-    REFRESH_BLENDFACTOR_ONE_MINUS_DST_COLOR = 5,
-    REFRESH_BLENDFACTOR_SRC_ALPHA = 6,
-    REFRESH_BLENDFACTOR_ONE_MINUS_SRC_ALPHA = 7,
-    REFRESH_BLENDFACTOR_DST_ALPHA = 8,
-    REFRESH_BLENDFACTOR_ONE_MINUS_DST_ALPHA = 9,
-    REFRESH_BLENDFACTOR_CONSTANT_COLOR = 10,
-    REFRESH_BLENDFACTOR_ONE_MINUS_CONSTANT_COLOR = 11,
-    REFRESH_BLENDFACTOR_CONSTANT_ALPHA = 12,
-    REFRESH_BLENDFACTOR_ONE_MINUS_CONSTANT_ALPHA = 13,
-    REFRESH_BLENDFACTOR_SRC_ALPHA_SATURATE = 14,
-    REFRESH_BLENDFACTOR_SRC1_COLOR = 15,
-    REFRESH_BLENDFACTOR_ONE_MINUS_SRC1_COLOR = 16,
-    REFRESH_BLENDFACTOR_SRC1_ALPHA = 17,
-    REFRESH_BLENDFACTOR_ONE_MINUS_SRC1_ALPHA = 18
+	REFRESH_BLENDFACTOR_ZERO = 0,
+	REFRESH_BLENDFACTOR_ONE = 1,
+	REFRESH_BLENDFACTOR_SRC_COLOR = 2,
+	REFRESH_BLENDFACTOR_ONE_MINUS_SRC_COLOR = 3,
+	REFRESH_BLENDFACTOR_DST_COLOR = 4,
+	REFRESH_BLENDFACTOR_ONE_MINUS_DST_COLOR = 5,
+	REFRESH_BLENDFACTOR_SRC_ALPHA = 6,
+	REFRESH_BLENDFACTOR_ONE_MINUS_SRC_ALPHA = 7,
+	REFRESH_BLENDFACTOR_DST_ALPHA = 8,
+	REFRESH_BLENDFACTOR_ONE_MINUS_DST_ALPHA = 9,
+	REFRESH_BLENDFACTOR_CONSTANT_COLOR = 10,
+	REFRESH_BLENDFACTOR_ONE_MINUS_CONSTANT_COLOR = 11,
+	REFRESH_BLENDFACTOR_CONSTANT_ALPHA = 12,
+	REFRESH_BLENDFACTOR_ONE_MINUS_CONSTANT_ALPHA = 13,
+	REFRESH_BLENDFACTOR_SRC_ALPHA_SATURATE = 14,
+	REFRESH_BLENDFACTOR_SRC1_COLOR = 15,
+	REFRESH_BLENDFACTOR_ONE_MINUS_SRC1_COLOR = 16,
+	REFRESH_BLENDFACTOR_SRC1_ALPHA = 17,
+	REFRESH_BLENDFACTOR_ONE_MINUS_SRC1_ALPHA = 18
 } Refresh_BlendFactor;
 
 typedef enum Refresh_ColorComponentFlagBits
 {
-    REFRESH_COLORCOMPONENT_R_BIT = 0x00000001,
-    REFRESH_COLORCOMPONENT_G_BIT = 0x00000002,
-    REFRESH_COLORCOMPONENT_B_BIT = 0x00000004,
-    REFRESH_COLORCOMPONENT_A_BIT = 0x00000008
+	REFRESH_COLORCOMPONENT_R_BIT = 0x00000001,
+	REFRESH_COLORCOMPONENT_G_BIT = 0x00000002,
+	REFRESH_COLORCOMPONENT_B_BIT = 0x00000004,
+	REFRESH_COLORCOMPONENT_A_BIT = 0x00000008
 } Refresh_ColorComponentFlagBits;
 
 typedef uint32_t Refresh_ColorComponentFlags;
@@ -336,12 +336,12 @@ typedef enum Refresh_SamplerAddressMode
 /* FIXME: we should probably make a library-level decision about color types */
 typedef enum Refresh_BorderColor
 {
-    REFRESH_BORDERCOLOR_FLOAT_TRANSPARENT_BLACK = 0,
-    REFRESH_BORDERCOLOR_INT_TRANSPARENT_BLACK = 1,
-    REFRESH_BORDERCOLOR_FLOAT_OPAQUE_BLACK = 2,
-    REFRESH_BORDERCOLOR_INT_OPAQUE_BLACK = 3,
-    REFRESH_BORDERCOLOR_FLOAT_OPAQUE_WHITE = 4,
-    REFRESH_BORDERCOLOR_INT_OPAQUE_WHITE = 5
+	REFRESH_BORDERCOLOR_FLOAT_TRANSPARENT_BLACK = 0,
+	REFRESH_BORDERCOLOR_INT_TRANSPARENT_BLACK = 1,
+	REFRESH_BORDERCOLOR_FLOAT_OPAQUE_BLACK = 2,
+	REFRESH_BORDERCOLOR_INT_OPAQUE_BLACK = 3,
+	REFRESH_BORDERCOLOR_FLOAT_OPAQUE_WHITE = 4,
+	REFRESH_BORDERCOLOR_INT_OPAQUE_WHITE = 5
 } Refresh_BorderColor;
 
 /* Structures */
diff --git a/include/Refresh_Image.h b/include/Refresh_Image.h
index cbab4c6..fa1593a 100644
--- a/include/Refresh_Image.h
+++ b/include/Refresh_Image.h
@@ -54,10 +54,10 @@ extern "C" {
  * Be sure to free the memory with Refresh_Image_Free after use!
  */
 REFRESHAPI uint8_t* Refresh_Image_Load(
-    char const *filename,
+	char const *filename,
 	int32_t *w,
 	int32_t *h,
-    int32_t *numChannels
+	int32_t *numChannels
 );
 
 /* Frees memory returned by Refresh_Image_Load. (Do NOT free the memory yourself!)
@@ -76,9 +76,9 @@ REFRESHAPI void Refresh_Image_Free(uint8_t *mem);
  * data:	    The raw RGBA8 image data.
  */
 REFRESHAPI void Refresh_Image_SavePNG(
-    char const *filename,
-    int32_t w,
-    int32_t h,
+	char const *filename,
+	int32_t w,
+	int32_t h,
 	uint8_t *data
 );
 
diff --git a/src/Refresh.c b/src/Refresh.c
index 7936df7..6802771 100644
--- a/src/Refresh.c
+++ b/src/Refresh.c
@@ -34,8 +34,8 @@
 /* Drivers */
 
 static const Refresh_Driver *drivers[] = {
-    &VulkanDriver,
-    NULL
+	&VulkanDriver,
+	NULL
 };
 
 /* Logging */
@@ -127,230 +127,230 @@ uint32_t Refresh_LinkedVersion(void)
 static int32_t selectedDriver = 0;
 
 Refresh_Device* Refresh_CreateDevice(
-    Refresh_PresentationParameters *presentationParameters,
-    uint8_t debugMode
+	Refresh_PresentationParameters *presentationParameters,
+	uint8_t debugMode
 ) {
-    if (selectedDriver < 0)
-    {
-        return NULL;
-    }
+	if (selectedDriver < 0)
+	{
+		return NULL;
+	}
 
-    return drivers[selectedDriver]->CreateDevice(
-        presentationParameters,
-        debugMode
-    );
+	return drivers[selectedDriver]->CreateDevice(
+		presentationParameters,
+		debugMode
+	);
 }
 
 void Refresh_DestroyDevice(Refresh_Device *device)
 {
-    NULL_RETURN(device);
-    device->DestroyDevice(device);
+	NULL_RETURN(device);
+	device->DestroyDevice(device);
 }
 
 void Refresh_Clear(
-    Refresh_Device *device,
+	Refresh_Device *device,
 	Refresh_CommandBuffer *commandBuffer,
 	Refresh_Rect *clearRect,
 	Refresh_ClearOptions options,
 	Refresh_Vec4 *colors,
 	uint32_t colorCount,
-    Refresh_DepthStencilValue depthStencil
+	Refresh_DepthStencilValue depthStencil
 ) {
-    NULL_RETURN(device);
-    device->Clear(
-        device->driverData,
-        commandBuffer,
-        clearRect,
-        options,
-        colors,
-        colorCount,
-        depthStencil
-    );
+	NULL_RETURN(device);
+	device->Clear(
+		device->driverData,
+		commandBuffer,
+		clearRect,
+		options,
+		colors,
+		colorCount,
+		depthStencil
+	);
 }
 
 void Refresh_DrawIndexedPrimitives(
 	Refresh_Device *device,
-    Refresh_CommandBuffer *commandBuffer,
+	Refresh_CommandBuffer *commandBuffer,
 	uint32_t baseVertex,
 	uint32_t startIndex,
 	uint32_t primitiveCount,
-    uint32_t vertexParamOffset,
+	uint32_t vertexParamOffset,
 	uint32_t fragmentParamOffset
 ) {
-    NULL_RETURN(device);
-    device->DrawIndexedPrimitives(
-        device->driverData,
-        commandBuffer,
-        baseVertex,
-        startIndex,
-        primitiveCount,
-        vertexParamOffset,
-        fragmentParamOffset
-    );
+	NULL_RETURN(device);
+	device->DrawIndexedPrimitives(
+		device->driverData,
+		commandBuffer,
+		baseVertex,
+		startIndex,
+		primitiveCount,
+		vertexParamOffset,
+		fragmentParamOffset
+	);
 }
 
 void Refresh_DrawInstancedPrimitives(
 	Refresh_Device *device,
-    Refresh_CommandBuffer *commandBuffer,
+	Refresh_CommandBuffer *commandBuffer,
 	uint32_t baseVertex,
 	uint32_t startIndex,
 	uint32_t primitiveCount,
 	uint32_t instanceCount,
-    uint32_t vertexParamOffset,
+	uint32_t vertexParamOffset,
 	uint32_t fragmentParamOffset
 ) {
-    NULL_RETURN(device);
-    device->DrawInstancedPrimitives(
-        device->driverData,
-        commandBuffer,
-        baseVertex,
-        startIndex,
-        primitiveCount,
-        instanceCount,
-        vertexParamOffset,
-        fragmentParamOffset
-    );
+	NULL_RETURN(device);
+	device->DrawInstancedPrimitives(
+		device->driverData,
+		commandBuffer,
+		baseVertex,
+		startIndex,
+		primitiveCount,
+		instanceCount,
+		vertexParamOffset,
+		fragmentParamOffset
+	);
 }
 
 void Refresh_DrawPrimitives(
 	Refresh_Device *device,
-    Refresh_CommandBuffer *commandBuffer,
+	Refresh_CommandBuffer *commandBuffer,
 	uint32_t vertexStart,
 	uint32_t primitiveCount,
-    uint32_t vertexParamOffset,
+	uint32_t vertexParamOffset,
 	uint32_t fragmentParamOffset
 ) {
-    NULL_RETURN(device);
-    device->DrawPrimitives(
-        device->driverData,
-        commandBuffer,
-        vertexStart,
-        primitiveCount,
-        vertexParamOffset,
-        fragmentParamOffset
-    );
+	NULL_RETURN(device);
+	device->DrawPrimitives(
+		device->driverData,
+		commandBuffer,
+		vertexStart,
+		primitiveCount,
+		vertexParamOffset,
+		fragmentParamOffset
+	);
 }
 
 void Refresh_DispatchCompute(
-    Refresh_Device *device,
-    Refresh_CommandBuffer *commandBuffer,
-    uint32_t groupCountX,
-    uint32_t groupCountY,
-    uint32_t groupCountZ,
-    uint32_t computeParamOffset
+	Refresh_Device *device,
+	Refresh_CommandBuffer *commandBuffer,
+	uint32_t groupCountX,
+	uint32_t groupCountY,
+	uint32_t groupCountZ,
+	uint32_t computeParamOffset
 ) {
-    NULL_RETURN(device);
-    device->DispatchCompute(
-        device->driverData,
-        commandBuffer,
-        groupCountX,
-        groupCountY,
-        groupCountZ,
-        computeParamOffset
-    );
+	NULL_RETURN(device);
+	device->DispatchCompute(
+		device->driverData,
+		commandBuffer,
+		groupCountX,
+		groupCountY,
+		groupCountZ,
+		computeParamOffset
+	);
 }
 
 Refresh_ComputePipeline* Refresh_CreateComputePipeline(
-    Refresh_Device *device,
-    Refresh_ComputePipelineCreateInfo *pipelineCreateInfo
+	Refresh_Device *device,
+	Refresh_ComputePipelineCreateInfo *pipelineCreateInfo
 ) {
-    NULL_RETURN_NULL(device);
-    return device->CreateComputePipeline(
-        device->driverData,
-        pipelineCreateInfo
-    );
+	NULL_RETURN_NULL(device);
+	return device->CreateComputePipeline(
+		device->driverData,
+		pipelineCreateInfo
+	);
 }
 
 Refresh_GraphicsPipeline* Refresh_CreateGraphicsPipeline(
 	Refresh_Device *device,
 	Refresh_GraphicsPipelineCreateInfo *pipelineCreateInfo
 ) {
-    NULL_RETURN_NULL(device);
-    return device->CreateGraphicsPipeline(
-        device->driverData,
-        pipelineCreateInfo
-    );
+	NULL_RETURN_NULL(device);
+	return device->CreateGraphicsPipeline(
+		device->driverData,
+		pipelineCreateInfo
+	);
 }
 
 Refresh_Sampler* Refresh_CreateSampler(
 	Refresh_Device *device,
 	Refresh_SamplerStateCreateInfo *samplerStateCreateInfo
 ) {
-    NULL_RETURN_NULL(device);
-    return device->CreateSampler(
-        device->driverData,
-        samplerStateCreateInfo
-    );
+	NULL_RETURN_NULL(device);
+	return device->CreateSampler(
+		device->driverData,
+		samplerStateCreateInfo
+	);
 }
 
 Refresh_ShaderModule* Refresh_CreateShaderModule(
 	Refresh_Device *device,
 	Refresh_ShaderModuleCreateInfo *shaderModuleCreateInfo
 ) {
-    NULL_RETURN_NULL(device);
-    return device->CreateShaderModule(
-        device->driverData,
-        shaderModuleCreateInfo
-    );
+	NULL_RETURN_NULL(device);
+	return device->CreateShaderModule(
+		device->driverData,
+		shaderModuleCreateInfo
+	);
 }
 
 Refresh_Texture* Refresh_CreateTexture(
 	Refresh_Device *device,
-    Refresh_TextureCreateInfo *textureCreateInfo
+	Refresh_TextureCreateInfo *textureCreateInfo
 ) {
-    NULL_RETURN_NULL(device);
-    return device->CreateTexture(
-        device->driverData,
-        textureCreateInfo
-    );
+	NULL_RETURN_NULL(device);
+	return device->CreateTexture(
+		device->driverData,
+		textureCreateInfo
+	);
 }
 
 Refresh_RenderTarget* Refresh_CreateRenderTarget(
 	Refresh_Device *device,
 	Refresh_TextureSlice *textureSlice,
-    Refresh_SampleCount multisampleCount
+	Refresh_SampleCount multisampleCount
 ) {
-    NULL_RETURN_NULL(device);
-    return device->CreateRenderTarget(
-        device->driverData,
-        textureSlice,
-        multisampleCount
-    );
+	NULL_RETURN_NULL(device);
+	return device->CreateRenderTarget(
+		device->driverData,
+		textureSlice,
+		multisampleCount
+	);
 }
 
 Refresh_Buffer* Refresh_CreateBuffer(
 	Refresh_Device *device,
-    Refresh_BufferUsageFlags usageFlags,
+	Refresh_BufferUsageFlags usageFlags,
 	uint32_t sizeInBytes
 ) {
-    NULL_RETURN_NULL(device);
-    return device->CreateBuffer(
-        device->driverData,
-        usageFlags,
-        sizeInBytes
-    );
+	NULL_RETURN_NULL(device);
+	return device->CreateBuffer(
+		device->driverData,
+		usageFlags,
+		sizeInBytes
+	);
 }
 
 void Refresh_SetTextureData(
 	Refresh_Device *device,
-    Refresh_CommandBuffer *commandBuffer,
+	Refresh_CommandBuffer *commandBuffer,
 	Refresh_TextureSlice *textureSlice,
 	void *data,
 	uint32_t dataLengthInBytes
 ) {
-    NULL_RETURN(device);
-    device->SetTextureData(
-        device->driverData,
-        commandBuffer,
-        textureSlice,
-        data,
-        dataLengthInBytes
-    );
+	NULL_RETURN(device);
+	device->SetTextureData(
+		device->driverData,
+		commandBuffer,
+		textureSlice,
+		data,
+		dataLengthInBytes
+	);
 }
 
 void Refresh_SetTextureDataYUV(
 	Refresh_Device *device,
-    Refresh_CommandBuffer* commandBuffer,
+	Refresh_CommandBuffer* commandBuffer,
 	Refresh_Texture *y,
 	Refresh_Texture *u,
 	Refresh_Texture *v,
@@ -361,37 +361,37 @@ void Refresh_SetTextureDataYUV(
 	void* data,
 	uint32_t dataLength
 ) {
-    NULL_RETURN(device);
-    device->SetTextureDataYUV(
-        device->driverData,
-        commandBuffer,
-        y,
-        u,
-        v,
-        yWidth,
-        yHeight,
-        uvWidth,
-        uvHeight,
-        data,
-        dataLength
-    );
+	NULL_RETURN(device);
+	device->SetTextureDataYUV(
+		device->driverData,
+		commandBuffer,
+		y,
+		u,
+		v,
+		yWidth,
+		yHeight,
+		uvWidth,
+		uvHeight,
+		data,
+		dataLength
+	);
 }
 
 void Refresh_CopyTextureToTexture(
-    Refresh_Device *device,
+	Refresh_Device *device,
 	Refresh_CommandBuffer *commandBuffer,
 	Refresh_TextureSlice *sourceTextureSlice,
 	Refresh_TextureSlice *destinationTextureSlice,
 	Refresh_Filter filter
 ) {
-    NULL_RETURN(device);
-    device->CopyTextureToTexture(
-        device->driverData,
-        commandBuffer,
-        sourceTextureSlice,
-        destinationTextureSlice,
-        filter
-    );
+	NULL_RETURN(device);
+	device->CopyTextureToTexture(
+		device->driverData,
+		commandBuffer,
+		sourceTextureSlice,
+		destinationTextureSlice,
+		filter
+	);
 }
 
 void Refresh_CopyTextureToBuffer(
@@ -400,122 +400,122 @@ void Refresh_CopyTextureToBuffer(
 	Refresh_TextureSlice *textureSlice,
 	Refresh_Buffer *buffer
 ) {
-    NULL_RETURN(device);
-    device->CopyTextureToBuffer(
-        device->driverData,
-        commandBuffer,
-        textureSlice,
-        buffer
-    );
+	NULL_RETURN(device);
+	device->CopyTextureToBuffer(
+		device->driverData,
+		commandBuffer,
+		textureSlice,
+		buffer
+	);
 }
 
 void Refresh_SetBufferData(
 	Refresh_Device *device,
-    Refresh_CommandBuffer *commandBuffer,
+	Refresh_CommandBuffer *commandBuffer,
 	Refresh_Buffer *buffer,
 	uint32_t offsetInBytes,
 	void* data,
 	uint32_t dataLength
 ) {
-    NULL_RETURN(device);
-    device->SetBufferData(
-        device->driverData,
-        commandBuffer,
-        buffer,
-        offsetInBytes,
-        data,
-        dataLength
-    );
+	NULL_RETURN(device);
+	device->SetBufferData(
+		device->driverData,
+		commandBuffer,
+		buffer,
+		offsetInBytes,
+		data,
+		dataLength
+	);
 }
 
 uint32_t Refresh_PushVertexShaderUniforms(
 	Refresh_Device *device,
-    Refresh_CommandBuffer *commandBuffer,
+	Refresh_CommandBuffer *commandBuffer,
 	void *data,
 	uint32_t dataLengthInBytes
 ) {
-    if (device == NULL) { return 0; }
-    return device->PushVertexShaderUniforms(
-        device->driverData,
-        commandBuffer,
-        data,
-        dataLengthInBytes
-    );
+	if (device == NULL) { return 0; }
+	return device->PushVertexShaderUniforms(
+		device->driverData,
+		commandBuffer,
+		data,
+		dataLengthInBytes
+	);
 }
 
 uint32_t Refresh_PushFragmentShaderUniforms(
 	Refresh_Device *device,
-    Refresh_CommandBuffer *commandBuffer,
+	Refresh_CommandBuffer *commandBuffer,
 	void *data,
 	uint32_t dataLengthInBytes
 ) {
-    if (device == NULL) { return 0; }
-    return device->PushFragmentShaderUniforms(
-        device->driverData,
-        commandBuffer,
-        data,
-        dataLengthInBytes
-    );
+	if (device == NULL) { return 0; }
+	return device->PushFragmentShaderUniforms(
+		device->driverData,
+		commandBuffer,
+		data,
+		dataLengthInBytes
+	);
 }
 
 uint32_t Refresh_PushComputeShaderUniforms(
-    Refresh_Device *device,
-    Refresh_CommandBuffer *commandBuffer,
-    void *data,
-    uint32_t dataLengthInBytes
+	Refresh_Device *device,
+	Refresh_CommandBuffer *commandBuffer,
+	void *data,
+	uint32_t dataLengthInBytes
 ) {
-    if (device == NULL) { return 0; }
-    return device->PushComputeShaderUniforms(
-        device->driverData,
-        commandBuffer,
-        data,
-        dataLengthInBytes
-    );
+	if (device == NULL) { return 0; }
+	return device->PushComputeShaderUniforms(
+		device->driverData,
+		commandBuffer,
+		data,
+		dataLengthInBytes
+	);
 }
 
 void Refresh_BindVertexSamplers(
 	Refresh_Device *device,
-    Refresh_CommandBuffer *commandBuffer,
+	Refresh_CommandBuffer *commandBuffer,
 	Refresh_Texture **pTextures,
 	Refresh_Sampler **pSamplers
 ) {
-    NULL_RETURN(device);
-    device->BindVertexSamplers(
-        device->driverData,
-        commandBuffer,
-        pTextures,
-        pSamplers
-    );
+	NULL_RETURN(device);
+	device->BindVertexSamplers(
+		device->driverData,
+		commandBuffer,
+		pTextures,
+		pSamplers
+	);
 }
 
 void Refresh_BindFragmentSamplers(
 	Refresh_Device *device,
-    Refresh_CommandBuffer *commandBuffer,
+	Refresh_CommandBuffer *commandBuffer,
 	Refresh_Texture **pTextures,
 	Refresh_Sampler **pSamplers
 ) {
-    NULL_RETURN(device);
-    device->BindFragmentSamplers(
-        device->driverData,
-        commandBuffer,
-        pTextures,
-        pSamplers
-    );
+	NULL_RETURN(device);
+	device->BindFragmentSamplers(
+		device->driverData,
+		commandBuffer,
+		pTextures,
+		pSamplers
+	);
 }
 
 void Refresh_GetBufferData(
-    Refresh_Device *device,
-    Refresh_Buffer *buffer,
-    void *data,
-    uint32_t dataLengthInBytes
+	Refresh_Device *device,
+	Refresh_Buffer *buffer,
+	void *data,
+	uint32_t dataLengthInBytes
 ) {
-    NULL_RETURN(device);
-    device->GetBufferData(
-        device->driverData,
-        buffer,
-        data,
-        dataLengthInBytes
-    );
+	NULL_RETURN(device);
+	device->GetBufferData(
+		device->driverData,
+		buffer,
+		data,
+		dataLengthInBytes
+	);
 }
 
 void Refresh_QueueDestroyTexture(
@@ -523,12 +523,12 @@ void Refresh_QueueDestroyTexture(
 	Refresh_CommandBuffer *commandBuffer,
 	Refresh_Texture *texture
 ) {
-    NULL_RETURN(device);
-    device->QueueDestroyTexture(
-        device->driverData,
+	NULL_RETURN(device);
+	device->QueueDestroyTexture(
+		device->driverData,
 		commandBuffer,
-        texture
-    );
+		texture
+	);
 }
 
 void Refresh_QueueDestroySampler(
@@ -536,12 +536,12 @@ void Refresh_QueueDestroySampler(
 	Refresh_CommandBuffer *commandBuffer,
 	Refresh_Sampler *sampler
 ) {
-    NULL_RETURN(device);
-    device->QueueDestroySampler(
-        device->driverData,
+	NULL_RETURN(device);
+	device->QueueDestroySampler(
+		device->driverData,
 		commandBuffer,
-        sampler
-    );
+		sampler
+	);
 }
 
 void Refresh_QueueDestroyBuffer(
@@ -549,12 +549,12 @@ void Refresh_QueueDestroyBuffer(
 	Refresh_CommandBuffer *commandBuffer,
 	Refresh_Buffer *buffer
 ) {
-    NULL_RETURN(device);
-    device->QueueDestroyBuffer(
-        device->driverData,
+	NULL_RETURN(device);
+	device->QueueDestroyBuffer(
+		device->driverData,
 		commandBuffer,
-        buffer
-    );
+		buffer
+	);
 }
 
 void Refresh_QueueDestroyRenderTarget(
@@ -562,12 +562,12 @@ void Refresh_QueueDestroyRenderTarget(
 	Refresh_CommandBuffer *commandBuffer,
 	Refresh_RenderTarget *renderTarget
 ) {
-    NULL_RETURN(device);
-    device->QueueDestroyRenderTarget(
-        device->driverData,
+	NULL_RETURN(device);
+	device->QueueDestroyRenderTarget(
+		device->driverData,
 		commandBuffer,
-        renderTarget
-    );
+		renderTarget
+	);
 }
 
 void Refresh_QueueDestroyShaderModule(
@@ -575,12 +575,12 @@ void Refresh_QueueDestroyShaderModule(
 	Refresh_CommandBuffer *commandBuffer,
 	Refresh_ShaderModule *shaderModule
 ) {
-    NULL_RETURN(device);
-    device->QueueDestroyShaderModule(
-        device->driverData,
+	NULL_RETURN(device);
+	device->QueueDestroyShaderModule(
+		device->driverData,
 		commandBuffer,
-        shaderModule
-    );
+		shaderModule
+	);
 }
 
 void Refresh_QueueDestroyComputePipeline(
@@ -588,12 +588,12 @@ void Refresh_QueueDestroyComputePipeline(
 	Refresh_CommandBuffer *commandBuffer,
 	Refresh_ComputePipeline *computePipeline
 ) {
-    NULL_RETURN(device);
-    device->QueueDestroyComputePipeline(
-        device->driverData,
+	NULL_RETURN(device);
+	device->QueueDestroyComputePipeline(
+		device->driverData,
 		commandBuffer,
-        computePipeline
-    );
+		computePipeline
+	);
 }
 
 void Refresh_QueueDestroyGraphicsPipeline(
@@ -601,12 +601,12 @@ void Refresh_QueueDestroyGraphicsPipeline(
 	Refresh_CommandBuffer *commandBuffer,
 	Refresh_GraphicsPipeline *graphicsPipeline
 ) {
-    NULL_RETURN(device);
-    device->QueueDestroyGraphicsPipeline(
-        device->driverData,
+	NULL_RETURN(device);
+	device->QueueDestroyGraphicsPipeline(
+		device->driverData,
 		commandBuffer,
-        graphicsPipeline
-    );
+		graphicsPipeline
+	);
 }
 
 void Refresh_BeginRenderPass(
@@ -617,166 +617,166 @@ void Refresh_BeginRenderPass(
 	uint32_t colorAttachmentCount,
 	Refresh_DepthStencilAttachmentInfo *depthStencilAttachmentInfo
 ) {
-    NULL_RETURN(device);
-    device->BeginRenderPass(
-        device->driverData,
-        commandBuffer,
-        renderArea,
-        colorAttachmentInfos,
-        colorAttachmentCount,
-        depthStencilAttachmentInfo
-    );
+	NULL_RETURN(device);
+	device->BeginRenderPass(
+		device->driverData,
+		commandBuffer,
+		renderArea,
+		colorAttachmentInfos,
+		colorAttachmentCount,
+		depthStencilAttachmentInfo
+	);
 }
 
 void Refresh_EndRenderPass(
 	Refresh_Device *device,
-    Refresh_CommandBuffer *commandBuffer
+	Refresh_CommandBuffer *commandBuffer
 ) {
-    NULL_RETURN(device);
-    device->EndRenderPass(
-        device->driverData,
-        commandBuffer
-    );
+	NULL_RETURN(device);
+	device->EndRenderPass(
+		device->driverData,
+		commandBuffer
+	);
 }
 
 void Refresh_BindGraphicsPipeline(
 	Refresh_Device *device,
-    Refresh_CommandBuffer *commandBuffer,
+	Refresh_CommandBuffer *commandBuffer,
 	Refresh_GraphicsPipeline *graphicsPipeline
 ) {
-    NULL_RETURN(device);
-    device->BindGraphicsPipeline(
-        device->driverData,
-        commandBuffer,
-        graphicsPipeline
-    );
+	NULL_RETURN(device);
+	device->BindGraphicsPipeline(
+		device->driverData,
+		commandBuffer,
+		graphicsPipeline
+	);
 }
 
 void Refresh_BindVertexBuffers(
 	Refresh_Device *device,
-    Refresh_CommandBuffer *commandBuffer,
+	Refresh_CommandBuffer *commandBuffer,
 	uint32_t firstBinding,
 	uint32_t bindingCount,
 	Refresh_Buffer **pBuffers,
 	uint64_t *pOffsets
 ) {
-    NULL_RETURN(device);
-    device->BindVertexBuffers(
-        device->driverData,
-        commandBuffer,
-        firstBinding,
-        bindingCount,
-        pBuffers,
-        pOffsets
-    );
+	NULL_RETURN(device);
+	device->BindVertexBuffers(
+		device->driverData,
+		commandBuffer,
+		firstBinding,
+		bindingCount,
+		pBuffers,
+		pOffsets
+	);
 }
 
 void Refresh_BindIndexBuffer(
-    Refresh_Device *device,
-    Refresh_CommandBuffer *commandBuffer,
-    Refresh_Buffer *buffer,
+	Refresh_Device *device,
+	Refresh_CommandBuffer *commandBuffer,
+	Refresh_Buffer *buffer,
 	uint64_t offset,
 	Refresh_IndexElementSize indexElementSize
 ) {
-    NULL_RETURN(device);
-    device->BindIndexBuffer(
-        device->driverData,
-        commandBuffer,
-        buffer,
-        offset,
-        indexElementSize
-    );
+	NULL_RETURN(device);
+	device->BindIndexBuffer(
+		device->driverData,
+		commandBuffer,
+		buffer,
+		offset,
+		indexElementSize
+	);
 }
 
 void Refresh_BindComputePipeline(
-    Refresh_Device *device,
-    Refresh_CommandBuffer *commandBuffer,
-    Refresh_ComputePipeline *computePipeline
+	Refresh_Device *device,
+	Refresh_CommandBuffer *commandBuffer,
+	Refresh_ComputePipeline *computePipeline
 ) {
-    NULL_RETURN(device);
-    device->BindComputePipeline(
-        device->driverData,
-        commandBuffer,
-        computePipeline
-    );
+	NULL_RETURN(device);
+	device->BindComputePipeline(
+		device->driverData,
+		commandBuffer,
+		computePipeline
+	);
 }
 
 void Refresh_BindComputeBuffers(
-    Refresh_Device *device,
-    Refresh_CommandBuffer *commandBuffer,
-    Refresh_Buffer **pBuffers
+	Refresh_Device *device,
+	Refresh_CommandBuffer *commandBuffer,
+	Refresh_Buffer **pBuffers
 ) {
-    NULL_RETURN(device);
-    device->BindComputeBuffers(
-        device->driverData,
-        commandBuffer,
-        pBuffers
-    );
+	NULL_RETURN(device);
+	device->BindComputeBuffers(
+		device->driverData,
+		commandBuffer,
+		pBuffers
+	);
 }
 
 void Refresh_BindComputeTextures(
-    Refresh_Device *device,
-    Refresh_CommandBuffer *commandBuffer,
-    Refresh_Texture **pTextures
+	Refresh_Device *device,
+	Refresh_CommandBuffer *commandBuffer,
+	Refresh_Texture **pTextures
 ) {
-    NULL_RETURN(device);
-    device->BindComputeTextures(
-        device->driverData,
-        commandBuffer,
-        pTextures
-    );
+	NULL_RETURN(device);
+	device->BindComputeTextures(
+		device->driverData,
+		commandBuffer,
+		pTextures
+	);
 }
 
 Refresh_CommandBuffer* Refresh_AcquireCommandBuffer(
-    Refresh_Device *device,
-    uint8_t fixed
+	Refresh_Device *device,
+	uint8_t fixed
 ) {
-    NULL_RETURN_NULL(device);
-    return device->AcquireCommandBuffer(
-        device->driverData,
-        fixed
-    );
+	NULL_RETURN_NULL(device);
+	return device->AcquireCommandBuffer(
+		device->driverData,
+		fixed
+	);
 }
 
 void Refresh_QueuePresent(
-    Refresh_Device *device,
-    Refresh_CommandBuffer *commandBuffer,
-    Refresh_TextureSlice* textureSlice,
-    Refresh_Rect *destinationRectangle,
-    Refresh_Filter filter,
+	Refresh_Device *device,
+	Refresh_CommandBuffer *commandBuffer,
+	Refresh_TextureSlice* textureSlice,
+	Refresh_Rect *destinationRectangle,
+	Refresh_Filter filter,
 	void *windowHandle
 ) {
-    NULL_RETURN(device);
-    device->QueuePresent(
-        device->driverData,
-        commandBuffer,
-        textureSlice,
-        destinationRectangle,
-        filter,
+	NULL_RETURN(device);
+	device->QueuePresent(
+		device->driverData,
+		commandBuffer,
+		textureSlice,
+		destinationRectangle,
+		filter,
 		windowHandle
-    );
+	);
 }
 
 void Refresh_Submit(
-    Refresh_Device *device,
+	Refresh_Device *device,
 	uint32_t commandBufferCount,
 	Refresh_CommandBuffer **pCommandBuffers
 ) {
-    NULL_RETURN(device);
-    device->Submit(
-        device->driverData,
-        commandBufferCount,
-        pCommandBuffers
-    );
+	NULL_RETURN(device);
+	device->Submit(
+		device->driverData,
+		commandBufferCount,
+		pCommandBuffers
+	);
 }
 
 void Refresh_Wait(
-    Refresh_Device *device
+	Refresh_Device *device
 ) {
-    NULL_RETURN(device);
-    device->Wait(
-        device->driverData
-    );
+	NULL_RETURN(device);
+	device->Wait(
+		device->driverData
+	);
 }
 
 /* vim: set noexpandtab shiftwidth=8 tabstop=8: */
diff --git a/src/Refresh_Driver.h b/src/Refresh_Driver.h
index fb917e3..d7e6538 100644
--- a/src/Refresh_Driver.h
+++ b/src/Refresh_Driver.h
@@ -151,7 +151,7 @@ static inline int32_t BytesPerImage(
 #define MAX_VERTEXTEXTURE_SAMPLERS	4
 #define MAX_TOTAL_SAMPLERS		(MAX_TEXTURE_SAMPLERS + MAX_VERTEXTEXTURE_SAMPLERS)
 
-#define MAX_BUFFER_BINDINGS	        16
+#define MAX_BUFFER_BINDINGS			16
 
 #define MAX_COLOR_TARGET_BINDINGS	4
 
@@ -168,309 +168,309 @@ struct Refresh_Device
 	/* Drawing */
 
 	void (*Clear)(
-        Refresh_Renderer *driverData,
-        Refresh_CommandBuffer *commandBuffer,
-        Refresh_Rect *clearRect,
-        Refresh_ClearOptions options,
-        Refresh_Vec4 *colors,
-        uint32_t colorCount,
-        Refresh_DepthStencilValue depthStencil
+		Refresh_Renderer *driverData,
+		Refresh_CommandBuffer *commandBuffer,
+		Refresh_Rect *clearRect,
+		Refresh_ClearOptions options,
+		Refresh_Vec4 *colors,
+		uint32_t colorCount,
+		Refresh_DepthStencilValue depthStencil
 	);
 
 	void (*DrawInstancedPrimitives)(
-        Refresh_Renderer *driverData,
-        Refresh_CommandBuffer *commandBuffer,
-        uint32_t baseVertex,
-        uint32_t startIndex,
-        uint32_t primitiveCount,
-        uint32_t instanceCount,
-        uint32_t vertexParamOffset,
-        uint32_t fragmentParamOffset
+		Refresh_Renderer *driverData,
+		Refresh_CommandBuffer *commandBuffer,
+		uint32_t baseVertex,
+		uint32_t startIndex,
+		uint32_t primitiveCount,
+		uint32_t instanceCount,
+		uint32_t vertexParamOffset,
+		uint32_t fragmentParamOffset
 	);
 
 	void (*DrawIndexedPrimitives)(
-        Refresh_Renderer *driverData,
-        Refresh_CommandBuffer *commandBuffer,
-        uint32_t baseVertex,
-        uint32_t startIndex,
-        uint32_t primitiveCount,
-        uint32_t vertexParamOffset,
-        uint32_t fragmentParamOffset
+		Refresh_Renderer *driverData,
+		Refresh_CommandBuffer *commandBuffer,
+		uint32_t baseVertex,
+		uint32_t startIndex,
+		uint32_t primitiveCount,
+		uint32_t vertexParamOffset,
+		uint32_t fragmentParamOffset
 	);
 
 	void (*DrawPrimitives)(
-	    Refresh_Renderer *driverData,
-        Refresh_CommandBuffer *commandBuffer,
-        uint32_t vertexStart,
-        uint32_t primitiveCount,
-        uint32_t vertexParamOffset,
-        uint32_t fragmentParamOffset
+		Refresh_Renderer *driverData,
+		Refresh_CommandBuffer *commandBuffer,
+		uint32_t vertexStart,
+		uint32_t primitiveCount,
+		uint32_t vertexParamOffset,
+		uint32_t fragmentParamOffset
 	);
 
-    void (*DispatchCompute)(
-        Refresh_Renderer *device,
-        Refresh_CommandBuffer *commandBuffer,
-        uint32_t groupCountX,
-        uint32_t groupCountY,
-        uint32_t groupCountZ,
-        uint32_t computeParamOffset
-    );
-
-    /* State Creation */
-
-    Refresh_ComputePipeline* (*CreateComputePipeline)(
-        Refresh_Renderer *driverData,
-        Refresh_ComputePipelineCreateInfo *pipelineCreateInfo
-    );
-
-    Refresh_GraphicsPipeline* (*CreateGraphicsPipeline)(
-        Refresh_Renderer *driverData,
-        Refresh_GraphicsPipelineCreateInfo *pipelineCreateInfo
-    );
-
-    Refresh_Sampler* (*CreateSampler)(
-        Refresh_Renderer *driverData,
-	    Refresh_SamplerStateCreateInfo *samplerStateCreateInfo
-    );
-
-    Refresh_ShaderModule* (*CreateShaderModule)(
-        Refresh_Renderer *driverData,
-	    Refresh_ShaderModuleCreateInfo *shaderModuleCreateInfo
-    );
-
-    Refresh_Texture* (*CreateTexture)(
-        Refresh_Renderer *driverData,
-        Refresh_TextureCreateInfo *textureCreateInfo
-    );
-
-    Refresh_RenderTarget* (*CreateRenderTarget)(
-        Refresh_Renderer *driverData,
-        Refresh_TextureSlice *textureSlice,
-        Refresh_SampleCount multisampleCount
-    );
-
-    Refresh_Buffer* (*CreateBuffer)(
-        Refresh_Renderer *driverData,
-        Refresh_BufferUsageFlags usageFlags,
-        uint32_t sizeInBytes
-    );
-
-    /* Setters */
-
-    void(*SetTextureData)(
-        Refresh_Renderer *driverData,
-        Refresh_CommandBuffer *commandBuffer,
-        Refresh_TextureSlice *textureSlice,
-        void *data,
-        uint32_t dataLengthInBytes
-    );
-
-    void(*SetTextureDataYUV)(
-        Refresh_Renderer *driverData,
-        Refresh_CommandBuffer* commandBuffer,
-        Refresh_Texture *y,
-        Refresh_Texture *u,
-        Refresh_Texture *v,
-        uint32_t yWidth,
-        uint32_t yHeight,
-        uint32_t uvWidth,
-        uint32_t uvHeight,
-        void* data,
-        uint32_t dataLength
-    );
-
-    void(*CopyTextureToTexture)(
-        Refresh_Renderer *driverData,
-        Refresh_CommandBuffer *commandBuffer,
-        Refresh_TextureSlice *sourceTextureSlice,
-        Refresh_TextureSlice *destinationTextureSlice,
-        Refresh_Filter filter
-    );
-
-    void(*CopyTextureToBuffer)(
-        Refresh_Renderer *driverData,
-        Refresh_CommandBuffer *commandBuffer,
-        Refresh_TextureSlice *textureSlice,
-        Refresh_Buffer *buffer
-    );
-
-    void(*SetBufferData)(
-        Refresh_Renderer *driverData,
-        Refresh_CommandBuffer *commandBuffer,
-        Refresh_Buffer *buffer,
-        uint32_t offsetInBytes,
-        void* data,
-        uint32_t dataLength
-    );
-
-    uint32_t(*PushVertexShaderUniforms)(
-        Refresh_Renderer *driverData,
-        Refresh_CommandBuffer *commandBuffer,
-        void *data,
-        uint32_t dataLengthInBytes
-    );
-
-    uint32_t(*PushFragmentShaderUniforms)(
-        Refresh_Renderer *driverData,
-        Refresh_CommandBuffer *commandBuffer,
-        void *data,
-        uint32_t dataLengthInBytes
-    );
-
-    uint32_t (*PushComputeShaderUniforms)(
-        Refresh_Renderer *driverData,
-        Refresh_CommandBuffer *commandBuffer,
-        void *data,
-        uint32_t dataLengthInBytes
-    );
-
-    void(*BindVertexSamplers)(
-        Refresh_Renderer *driverData,
-        Refresh_CommandBuffer *commandBuffer,
-        Refresh_Texture **pTextures,
-        Refresh_Sampler **pSamplers
-    );
-
-    void(*BindFragmentSamplers)(
-        Refresh_Renderer *driverData,
-        Refresh_CommandBuffer *commandBuffer,
-        Refresh_Texture **pTextures,
-        Refresh_Sampler **pSamplers
-    );
-
-    /* Getters */
-
-    void(*GetBufferData)(
-        Refresh_Renderer *driverData,
-        Refresh_Buffer *buffer,
-        void *data,
-        uint32_t dataLengthInBytes
-    );
-
-    /* Disposal */
-
-    void(*QueueDestroyTexture)(
-        Refresh_Renderer *driverData,
+	void (*DispatchCompute)(
+		Refresh_Renderer *device,
 		Refresh_CommandBuffer *commandBuffer,
-        Refresh_Texture *texture
-    );
+		uint32_t groupCountX,
+		uint32_t groupCountY,
+		uint32_t groupCountZ,
+		uint32_t computeParamOffset
+	);
 
-    void(*QueueDestroySampler)(
-        Refresh_Renderer *driverData,
+	/* State Creation */
+
+	Refresh_ComputePipeline* (*CreateComputePipeline)(
+		Refresh_Renderer *driverData,
+		Refresh_ComputePipelineCreateInfo *pipelineCreateInfo
+	);
+
+	Refresh_GraphicsPipeline* (*CreateGraphicsPipeline)(
+		Refresh_Renderer *driverData,
+		Refresh_GraphicsPipelineCreateInfo *pipelineCreateInfo
+	);
+
+	Refresh_Sampler* (*CreateSampler)(
+		Refresh_Renderer *driverData,
+		Refresh_SamplerStateCreateInfo *samplerStateCreateInfo
+	);
+
+	Refresh_ShaderModule* (*CreateShaderModule)(
+		Refresh_Renderer *driverData,
+		Refresh_ShaderModuleCreateInfo *shaderModuleCreateInfo
+	);
+
+	Refresh_Texture* (*CreateTexture)(
+		Refresh_Renderer *driverData,
+		Refresh_TextureCreateInfo *textureCreateInfo
+	);
+
+	Refresh_RenderTarget* (*CreateRenderTarget)(
+		Refresh_Renderer *driverData,
+		Refresh_TextureSlice *textureSlice,
+		Refresh_SampleCount multisampleCount
+	);
+
+	Refresh_Buffer* (*CreateBuffer)(
+		Refresh_Renderer *driverData,
+		Refresh_BufferUsageFlags usageFlags,
+		uint32_t sizeInBytes
+	);
+
+	/* Setters */
+
+	void(*SetTextureData)(
+		Refresh_Renderer *driverData,
 		Refresh_CommandBuffer *commandBuffer,
-        Refresh_Sampler *sampler
-    );
+		Refresh_TextureSlice *textureSlice,
+		void *data,
+		uint32_t dataLengthInBytes
+	);
 
-    void(*QueueDestroyBuffer)(
-        Refresh_Renderer *driverData,
+	void(*SetTextureDataYUV)(
+		Refresh_Renderer *driverData,
+		Refresh_CommandBuffer* commandBuffer,
+		Refresh_Texture *y,
+		Refresh_Texture *u,
+		Refresh_Texture *v,
+		uint32_t yWidth,
+		uint32_t yHeight,
+		uint32_t uvWidth,
+		uint32_t uvHeight,
+		void* data,
+		uint32_t dataLength
+	);
+
+	void(*CopyTextureToTexture)(
+		Refresh_Renderer *driverData,
 		Refresh_CommandBuffer *commandBuffer,
-        Refresh_Buffer *buffer
-    );
+		Refresh_TextureSlice *sourceTextureSlice,
+		Refresh_TextureSlice *destinationTextureSlice,
+		Refresh_Filter filter
+	);
 
-    void(*QueueDestroyRenderTarget)(
-        Refresh_Renderer *driverData,
+	void(*CopyTextureToBuffer)(
+		Refresh_Renderer *driverData,
 		Refresh_CommandBuffer *commandBuffer,
-	    Refresh_RenderTarget *renderTarget
-    );
+		Refresh_TextureSlice *textureSlice,
+		Refresh_Buffer *buffer
+	);
 
-    void(*QueueDestroyShaderModule)(
-        Refresh_Renderer *driverData,
+	void(*SetBufferData)(
+		Refresh_Renderer *driverData,
 		Refresh_CommandBuffer *commandBuffer,
-        Refresh_ShaderModule *shaderModule
-    );
+		Refresh_Buffer *buffer,
+		uint32_t offsetInBytes,
+		void* data,
+		uint32_t dataLength
+	);
 
-    void(*QueueDestroyComputePipeline)(
-        Refresh_Renderer *driverData,
+	uint32_t(*PushVertexShaderUniforms)(
+		Refresh_Renderer *driverData,
 		Refresh_CommandBuffer *commandBuffer,
-        Refresh_ComputePipeline *computePipeline
-    );
+		void *data,
+		uint32_t dataLengthInBytes
+	);
 
-    void(*QueueDestroyGraphicsPipeline)(
-        Refresh_Renderer *driverData,
+	uint32_t(*PushFragmentShaderUniforms)(
+		Refresh_Renderer *driverData,
 		Refresh_CommandBuffer *commandBuffer,
-        Refresh_GraphicsPipeline *graphicsPipeline
-    );
+		void *data,
+		uint32_t dataLengthInBytes
+	);
 
-    /* Graphics State */
+	uint32_t (*PushComputeShaderUniforms)(
+		Refresh_Renderer *driverData,
+		Refresh_CommandBuffer *commandBuffer,
+		void *data,
+		uint32_t dataLengthInBytes
+	);
 
-    void(*BeginRenderPass)(
-        Refresh_Renderer *driverData,
+	void(*BindVertexSamplers)(
+		Refresh_Renderer *driverData,
+		Refresh_CommandBuffer *commandBuffer,
+		Refresh_Texture **pTextures,
+		Refresh_Sampler **pSamplers
+	);
+
+	void(*BindFragmentSamplers)(
+		Refresh_Renderer *driverData,
+		Refresh_CommandBuffer *commandBuffer,
+		Refresh_Texture **pTextures,
+		Refresh_Sampler **pSamplers
+	);
+
+	/* Getters */
+
+	void(*GetBufferData)(
+		Refresh_Renderer *driverData,
+		Refresh_Buffer *buffer,
+		void *data,
+		uint32_t dataLengthInBytes
+	);
+
+	/* Disposal */
+
+	void(*QueueDestroyTexture)(
+		Refresh_Renderer *driverData,
+		Refresh_CommandBuffer *commandBuffer,
+		Refresh_Texture *texture
+	);
+
+	void(*QueueDestroySampler)(
+		Refresh_Renderer *driverData,
+		Refresh_CommandBuffer *commandBuffer,
+		Refresh_Sampler *sampler
+	);
+
+	void(*QueueDestroyBuffer)(
+		Refresh_Renderer *driverData,
+		Refresh_CommandBuffer *commandBuffer,
+		Refresh_Buffer *buffer
+	);
+
+	void(*QueueDestroyRenderTarget)(
+		Refresh_Renderer *driverData,
+		Refresh_CommandBuffer *commandBuffer,
+		Refresh_RenderTarget *renderTarget
+	);
+
+	void(*QueueDestroyShaderModule)(
+		Refresh_Renderer *driverData,
+		Refresh_CommandBuffer *commandBuffer,
+		Refresh_ShaderModule *shaderModule
+	);
+
+	void(*QueueDestroyComputePipeline)(
+		Refresh_Renderer *driverData,
+		Refresh_CommandBuffer *commandBuffer,
+		Refresh_ComputePipeline *computePipeline
+	);
+
+	void(*QueueDestroyGraphicsPipeline)(
+		Refresh_Renderer *driverData,
+		Refresh_CommandBuffer *commandBuffer,
+		Refresh_GraphicsPipeline *graphicsPipeline
+	);
+
+	/* Graphics State */
+
+	void(*BeginRenderPass)(
+		Refresh_Renderer *driverData,
 		Refresh_CommandBuffer *commandBuffer,
 		Refresh_Rect *renderArea,
 		Refresh_ColorAttachmentInfo *colorAttachmentInfos,
 		uint32_t colorAttachmentCount,
 		Refresh_DepthStencilAttachmentInfo *depthStencilAttachmentInfo
-    );
+	);
 
-    void(*EndRenderPass)(
-        Refresh_Renderer *driverData,
-        Refresh_CommandBuffer *commandBuffer
-    );
+	void(*EndRenderPass)(
+		Refresh_Renderer *driverData,
+		Refresh_CommandBuffer *commandBuffer
+	);
 
-    void(*BindGraphicsPipeline)(
-        Refresh_Renderer *driverData,
-        Refresh_CommandBuffer *commandBuffer,
-        Refresh_GraphicsPipeline *graphicsPipeline
-    );
+	void(*BindGraphicsPipeline)(
+		Refresh_Renderer *driverData,
+		Refresh_CommandBuffer *commandBuffer,
+		Refresh_GraphicsPipeline *graphicsPipeline
+	);
 
-    void(*BindVertexBuffers)(
-        Refresh_Renderer *driverData,
-        Refresh_CommandBuffer *commandBuffer,
-        uint32_t firstBinding,
-        uint32_t bindingCount,
-        Refresh_Buffer **pBuffers,
-        uint64_t *pOffsets
-    );
+	void(*BindVertexBuffers)(
+		Refresh_Renderer *driverData,
+		Refresh_CommandBuffer *commandBuffer,
+		uint32_t firstBinding,
+		uint32_t bindingCount,
+		Refresh_Buffer **pBuffers,
+		uint64_t *pOffsets
+	);
 
-    void(*BindIndexBuffer)(
-        Refresh_Renderer *driverData,
-        Refresh_CommandBuffer *commandBuffer,
-        Refresh_Buffer *buffer,
-        uint64_t offset,
-        Refresh_IndexElementSize indexElementSize
-    );
+	void(*BindIndexBuffer)(
+		Refresh_Renderer *driverData,
+		Refresh_CommandBuffer *commandBuffer,
+		Refresh_Buffer *buffer,
+		uint64_t offset,
+		Refresh_IndexElementSize indexElementSize
+	);
 
-    void(*BindComputePipeline)(
-        Refresh_Renderer *driverData,
-        Refresh_CommandBuffer *commandBuffer,
-        Refresh_ComputePipeline *computePipeline
-    );
+	void(*BindComputePipeline)(
+		Refresh_Renderer *driverData,
+		Refresh_CommandBuffer *commandBuffer,
+		Refresh_ComputePipeline *computePipeline
+	);
 
-    void(*BindComputeBuffers)(
-        Refresh_Renderer *driverData,
-        Refresh_CommandBuffer *commandBuffer,
-        Refresh_Buffer **pBuffers
-    );
+	void(*BindComputeBuffers)(
+		Refresh_Renderer *driverData,
+		Refresh_CommandBuffer *commandBuffer,
+		Refresh_Buffer **pBuffers
+	);
 
-    void(*BindComputeTextures)(
-        Refresh_Renderer *driverData,
-        Refresh_CommandBuffer *commandBuffer,
-        Refresh_Texture **pTextures
-    );
+	void(*BindComputeTextures)(
+		Refresh_Renderer *driverData,
+		Refresh_CommandBuffer *commandBuffer,
+		Refresh_Texture **pTextures
+	);
 
-    Refresh_CommandBuffer* (*AcquireCommandBuffer)(
-        Refresh_Renderer *driverData,
-        uint8_t fixed
-    );
+	Refresh_CommandBuffer* (*AcquireCommandBuffer)(
+		Refresh_Renderer *driverData,
+		uint8_t fixed
+	);
 
-    void(*QueuePresent)(
-        Refresh_Renderer *driverData,
-        Refresh_CommandBuffer *commandBuffer,
-        Refresh_TextureSlice *textureSlice,
-        Refresh_Rect *destinationRectangle,
-        Refresh_Filter filter,
+	void(*QueuePresent)(
+		Refresh_Renderer *driverData,
+		Refresh_CommandBuffer *commandBuffer,
+		Refresh_TextureSlice *textureSlice,
+		Refresh_Rect *destinationRectangle,
+		Refresh_Filter filter,
 		void *windowHandle
-    );
+	);
 
-    void(*Submit)(
-        Refresh_Renderer *driverData,
-        uint32_t commandBufferCount,
-        Refresh_CommandBuffer **pCommandBuffers
-    );
+	void(*Submit)(
+		Refresh_Renderer *driverData,
+		uint32_t commandBufferCount,
+		Refresh_CommandBuffer **pCommandBuffers
+	);
 
-    void(*Wait)(
-        Refresh_Renderer *driverData
-    );
+	void(*Wait)(
+		Refresh_Renderer *driverData
+	);
 
 	/* Opaque pointer for the Driver */
 	Refresh_Renderer *driverData;
@@ -484,51 +484,51 @@ struct Refresh_Device
 	ASSIGN_DRIVER_FUNC(DrawIndexedPrimitives, name) \
 	ASSIGN_DRIVER_FUNC(DrawInstancedPrimitives, name) \
 	ASSIGN_DRIVER_FUNC(DrawPrimitives, name) \
-    ASSIGN_DRIVER_FUNC(DispatchCompute, name) \
-    ASSIGN_DRIVER_FUNC(CreateComputePipeline, name) \
-    ASSIGN_DRIVER_FUNC(CreateGraphicsPipeline, name) \
-    ASSIGN_DRIVER_FUNC(CreateSampler, name) \
-    ASSIGN_DRIVER_FUNC(CreateShaderModule, name) \
-    ASSIGN_DRIVER_FUNC(CreateTexture, name) \
-    ASSIGN_DRIVER_FUNC(CreateRenderTarget, name) \
-    ASSIGN_DRIVER_FUNC(CreateBuffer, name) \
-    ASSIGN_DRIVER_FUNC(SetTextureData, name) \
-    ASSIGN_DRIVER_FUNC(SetTextureDataYUV, name) \
-    ASSIGN_DRIVER_FUNC(CopyTextureToTexture, name) \
-    ASSIGN_DRIVER_FUNC(CopyTextureToBuffer, name) \
-    ASSIGN_DRIVER_FUNC(SetBufferData, name) \
-    ASSIGN_DRIVER_FUNC(PushVertexShaderUniforms, name) \
-    ASSIGN_DRIVER_FUNC(PushFragmentShaderUniforms, name) \
-    ASSIGN_DRIVER_FUNC(PushComputeShaderUniforms, name) \
-    ASSIGN_DRIVER_FUNC(BindVertexSamplers, name) \
-    ASSIGN_DRIVER_FUNC(BindFragmentSamplers, name) \
-    ASSIGN_DRIVER_FUNC(GetBufferData, name) \
-    ASSIGN_DRIVER_FUNC(QueueDestroyTexture, name) \
-    ASSIGN_DRIVER_FUNC(QueueDestroySampler, name) \
-    ASSIGN_DRIVER_FUNC(QueueDestroyBuffer, name) \
-    ASSIGN_DRIVER_FUNC(QueueDestroyRenderTarget, name) \
-    ASSIGN_DRIVER_FUNC(QueueDestroyShaderModule, name) \
-    ASSIGN_DRIVER_FUNC(QueueDestroyComputePipeline, name) \
-    ASSIGN_DRIVER_FUNC(QueueDestroyGraphicsPipeline, name) \
-    ASSIGN_DRIVER_FUNC(BeginRenderPass, name) \
-    ASSIGN_DRIVER_FUNC(EndRenderPass, name) \
-    ASSIGN_DRIVER_FUNC(BindGraphicsPipeline, name) \
-    ASSIGN_DRIVER_FUNC(BindVertexBuffers, name) \
-    ASSIGN_DRIVER_FUNC(BindIndexBuffer, name) \
-    ASSIGN_DRIVER_FUNC(BindComputePipeline, name) \
-    ASSIGN_DRIVER_FUNC(BindComputeBuffers, name) \
-    ASSIGN_DRIVER_FUNC(BindComputeTextures, name) \
-    ASSIGN_DRIVER_FUNC(AcquireCommandBuffer, name) \
-    ASSIGN_DRIVER_FUNC(QueuePresent, name) \
-    ASSIGN_DRIVER_FUNC(Submit, name) \
-    ASSIGN_DRIVER_FUNC(Wait, name)
+	ASSIGN_DRIVER_FUNC(DispatchCompute, name) \
+	ASSIGN_DRIVER_FUNC(CreateComputePipeline, name) \
+	ASSIGN_DRIVER_FUNC(CreateGraphicsPipeline, name) \
+	ASSIGN_DRIVER_FUNC(CreateSampler, name) \
+	ASSIGN_DRIVER_FUNC(CreateShaderModule, name) \
+	ASSIGN_DRIVER_FUNC(CreateTexture, name) \
+	ASSIGN_DRIVER_FUNC(CreateRenderTarget, name) \
+	ASSIGN_DRIVER_FUNC(CreateBuffer, name) \
+	ASSIGN_DRIVER_FUNC(SetTextureData, name) \
+	ASSIGN_DRIVER_FUNC(SetTextureDataYUV, name) \
+	ASSIGN_DRIVER_FUNC(CopyTextureToTexture, name) \
+	ASSIGN_DRIVER_FUNC(CopyTextureToBuffer, name) \
+	ASSIGN_DRIVER_FUNC(SetBufferData, name) \
+	ASSIGN_DRIVER_FUNC(PushVertexShaderUniforms, name) \
+	ASSIGN_DRIVER_FUNC(PushFragmentShaderUniforms, name) \
+	ASSIGN_DRIVER_FUNC(PushComputeShaderUniforms, name) \
+	ASSIGN_DRIVER_FUNC(BindVertexSamplers, name) \
+	ASSIGN_DRIVER_FUNC(BindFragmentSamplers, name) \
+	ASSIGN_DRIVER_FUNC(GetBufferData, name) \
+	ASSIGN_DRIVER_FUNC(QueueDestroyTexture, name) \
+	ASSIGN_DRIVER_FUNC(QueueDestroySampler, name) \
+	ASSIGN_DRIVER_FUNC(QueueDestroyBuffer, name) \
+	ASSIGN_DRIVER_FUNC(QueueDestroyRenderTarget, name) \
+	ASSIGN_DRIVER_FUNC(QueueDestroyShaderModule, name) \
+	ASSIGN_DRIVER_FUNC(QueueDestroyComputePipeline, name) \
+	ASSIGN_DRIVER_FUNC(QueueDestroyGraphicsPipeline, name) \
+	ASSIGN_DRIVER_FUNC(BeginRenderPass, name) \
+	ASSIGN_DRIVER_FUNC(EndRenderPass, name) \
+	ASSIGN_DRIVER_FUNC(BindGraphicsPipeline, name) \
+	ASSIGN_DRIVER_FUNC(BindVertexBuffers, name) \
+	ASSIGN_DRIVER_FUNC(BindIndexBuffer, name) \
+	ASSIGN_DRIVER_FUNC(BindComputePipeline, name) \
+	ASSIGN_DRIVER_FUNC(BindComputeBuffers, name) \
+	ASSIGN_DRIVER_FUNC(BindComputeTextures, name) \
+	ASSIGN_DRIVER_FUNC(AcquireCommandBuffer, name) \
+	ASSIGN_DRIVER_FUNC(QueuePresent, name) \
+	ASSIGN_DRIVER_FUNC(Submit, name) \
+	ASSIGN_DRIVER_FUNC(Wait, name)
 
 typedef struct Refresh_Driver
 {
 	const char *Name;
 	Refresh_Device* (*CreateDevice)(
 		Refresh_PresentationParameters *presentationParameters,
-        uint8_t debugMode
+		uint8_t debugMode
 	);
 } Refresh_Driver;
 
diff --git a/src/Refresh_Driver_Vulkan.c b/src/Refresh_Driver_Vulkan.c
index 1b3aa84..a1d237c 100644
--- a/src/Refresh_Driver_Vulkan.c
+++ b/src/Refresh_Driver_Vulkan.c
@@ -92,29 +92,29 @@ static uint32_t deviceExtensionCount = SDL_arraysize(deviceExtensionNames);
 #define NULL_RENDER_PASS (Refresh_RenderPass*) 0
 
 #define EXPAND_ELEMENTS_IF_NEEDED(arr, initialValue, type)	\
-	if (arr->count == arr->capacity)		\
-	{						\
-		if (arr->capacity == 0)			\
-		{					\
-			arr->capacity = initialValue;	\
-		}					\
-		else					\
-		{					\
-			arr->capacity *= 2;		\
-		}					\
-		arr->elements = (type*) SDL_realloc(	\
-			arr->elements,			\
-			arr->capacity * sizeof(type)	\
-		);					\
+	if (arr->count == arr->capacity)						\
+	{														\
+		if (arr->capacity == 0)								\
+		{													\
+			arr->capacity = initialValue;					\
+		}													\
+		else												\
+		{													\
+			arr->capacity *= 2;								\
+		}													\
+		arr->elements = (type*) SDL_realloc(				\
+			arr->elements,									\
+			arr->capacity * sizeof(type)					\
+		);													\
 	}
 
 #define EXPAND_ARRAY_IF_NEEDED(arr, elementType, newCount, capacity, newCapacity)	\
 	if (newCount >= capacity)														\
 	{																				\
 		capacity = newCapacity;														\
-		arr = (elementType*) SDL_realloc(													\
+		arr = (elementType*) SDL_realloc(											\
 			arr,																	\
-			sizeof(elementType) * capacity													\
+			sizeof(elementType) * capacity											\
 		);																			\
 	}
 
@@ -189,24 +189,24 @@ static const uint8_t DEVICE_PRIORITY[] =
 
 static VkFormat RefreshToVK_SurfaceFormat[] =
 {
-	VK_FORMAT_R8G8B8A8_UNORM,		    /* R8G8B8A8 */
+	VK_FORMAT_R8G8B8A8_UNORM,			/* R8G8B8A8 */
 	VK_FORMAT_R5G6B5_UNORM_PACK16,		/* R5G6B5 */
 	VK_FORMAT_A1R5G5B5_UNORM_PACK16,	/* A1R5G5B5 */
 	VK_FORMAT_B4G4R4A4_UNORM_PACK16,	/* B4G4R4A4 */
 	VK_FORMAT_BC1_RGBA_UNORM_BLOCK,		/* BC1 */
-	VK_FORMAT_BC2_UNORM_BLOCK,		    /* BC3 */
-	VK_FORMAT_BC3_UNORM_BLOCK,		    /* BC5 */
-	VK_FORMAT_R8G8_SNORM,			    /* R8G8_SNORM */
-	VK_FORMAT_R8G8B8A8_SNORM,		    /* R8G8B8A8_SNORM */
+	VK_FORMAT_BC2_UNORM_BLOCK,			/* BC3 */
+	VK_FORMAT_BC3_UNORM_BLOCK,			/* BC5 */
+	VK_FORMAT_R8G8_SNORM,				/* R8G8_SNORM */
+	VK_FORMAT_R8G8B8A8_SNORM,			/* R8G8B8A8_SNORM */
 	VK_FORMAT_A2R10G10B10_UNORM_PACK32,	/* A2R10G10B10 */
-	VK_FORMAT_R16G16_UNORM,			    /* R16G16 */
+	VK_FORMAT_R16G16_UNORM,				/* R16G16 */
 	VK_FORMAT_R16G16B16A16_UNORM,		/* R16G16B16A16 */
-	VK_FORMAT_R8_UNORM,			        /* R8 */
-	VK_FORMAT_R32_SFLOAT,			    /* R32_SFLOAT */
-	VK_FORMAT_R32G32_SFLOAT,		    /* R32G32_SFLOAT */
+	VK_FORMAT_R8_UNORM,					/* R8 */
+	VK_FORMAT_R32_SFLOAT,				/* R32_SFLOAT */
+	VK_FORMAT_R32G32_SFLOAT,			/* R32G32_SFLOAT */
 	VK_FORMAT_R32G32B32A32_SFLOAT,		/* R32G32B32A32_SFLOAT */
-	VK_FORMAT_R16_SFLOAT,			    /* R16_SFLOAT */
-	VK_FORMAT_R16G16_SFLOAT,		    /* R16G16_SFLOAT */
+	VK_FORMAT_R16_SFLOAT,				/* R16_SFLOAT */
+	VK_FORMAT_R16G16_SFLOAT,			/* R16G16_SFLOAT */
 	VK_FORMAT_R16G16B16A16_SFLOAT,		/* R16G16B16A16_SFLOAT */
 	VK_FORMAT_D16_UNORM,				/* D16 */
 	VK_FORMAT_D32_SFLOAT,				/* D32 */
@@ -344,26 +344,26 @@ static VkStencilOp RefreshToVK_StencilOp[] =
 
 static VkAttachmentLoadOp RefreshToVK_LoadOp[] =
 {
-    VK_ATTACHMENT_LOAD_OP_LOAD,
-    VK_ATTACHMENT_LOAD_OP_CLEAR,
-    VK_ATTACHMENT_LOAD_OP_DONT_CARE
+	VK_ATTACHMENT_LOAD_OP_LOAD,
+	VK_ATTACHMENT_LOAD_OP_CLEAR,
+	VK_ATTACHMENT_LOAD_OP_DONT_CARE
 };
 
 static VkAttachmentStoreOp RefreshToVK_StoreOp[] =
 {
-    VK_ATTACHMENT_STORE_OP_STORE,
-    VK_ATTACHMENT_STORE_OP_DONT_CARE
+	VK_ATTACHMENT_STORE_OP_STORE,
+	VK_ATTACHMENT_STORE_OP_DONT_CARE
 };
 
 static VkSampleCountFlagBits RefreshToVK_SampleCount[] =
 {
-    VK_SAMPLE_COUNT_1_BIT,
-    VK_SAMPLE_COUNT_2_BIT,
-    VK_SAMPLE_COUNT_4_BIT,
-    VK_SAMPLE_COUNT_8_BIT,
-    VK_SAMPLE_COUNT_16_BIT,
-    VK_SAMPLE_COUNT_32_BIT,
-    VK_SAMPLE_COUNT_64_BIT
+	VK_SAMPLE_COUNT_1_BIT,
+	VK_SAMPLE_COUNT_2_BIT,
+	VK_SAMPLE_COUNT_4_BIT,
+	VK_SAMPLE_COUNT_8_BIT,
+	VK_SAMPLE_COUNT_16_BIT,
+	VK_SAMPLE_COUNT_32_BIT,
+	VK_SAMPLE_COUNT_64_BIT
 };
 
 static VkVertexInputRate RefreshToVK_VertexInputRate[] =
@@ -528,9 +528,9 @@ static const VulkanResourceAccessInfo AccessMap[RESOURCE_ACCESS_TYPES_COUNT] =
 	},
 
 	/* RESOURCE_ACCESS_COMPUTE_SHADER_READ_SAMPLED_IMAGE_OR_UNIFORM_TEXEL_BUFFER */
-    {   VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT,
-        VK_ACCESS_SHADER_READ_BIT,
-        VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL
+	{   VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT,
+		VK_ACCESS_SHADER_READ_BIT,
+		VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL
 	},
 
 	/* RESOURCE_ACCESS_COMPUTE_SHADER_READ_OTHER */
@@ -876,9 +876,9 @@ static inline VkDescriptorSetLayout DescriptorSetLayoutHashTable_Fetch(
 	for (i = 0; i < arr->count; i += 1)
 	{
 		const DescriptorSetLayoutHash *e = &arr->elements[i].key;
-		if (    key.descriptorType == e->descriptorType &&
+		if (	key.descriptorType == e->descriptorType &&
 			key.bindingCount == e->bindingCount &&
-			key.stageFlag == e->stageFlag   )
+			key.stageFlag == e->stageFlag	)
 		{
 			return arr->elements[i].value;
 		}
@@ -1499,14 +1499,14 @@ static inline void CommandPoolHashTable_Insert(
 
 typedef struct VulkanRenderer
 {
-    VkInstance instance;
-    VkPhysicalDevice physicalDevice;
-    VkPhysicalDeviceProperties2 physicalDeviceProperties;
-    VkPhysicalDeviceDriverPropertiesKHR physicalDeviceDriverProperties;
-    VkDevice logicalDevice;
+	VkInstance instance;
+	VkPhysicalDevice physicalDevice;
+	VkPhysicalDeviceProperties2 physicalDeviceProperties;
+	VkPhysicalDeviceDriverPropertiesKHR physicalDeviceDriverProperties;
+	VkDevice logicalDevice;
 
-    uint8_t supportsDebugUtils;
-    uint8_t debugMode;
+	uint8_t supportsDebugUtils;
+	uint8_t debugMode;
 
 	VulkanMemoryAllocator *memoryAllocator;
 	VkPhysicalDeviceMemoryProperties memoryProperties;
@@ -1515,7 +1515,7 @@ typedef struct VulkanRenderer
 	uint32_t swapchainDataCount;
 	uint32_t swapchainDataCapacity;
 
-    QueueFamilyIndices queueFamilyIndices;
+	QueueFamilyIndices queueFamilyIndices;
 	VkQueue graphicsQueue;
 	VkQueue presentQueue;
 	VkQueue computeQueue;
@@ -1572,7 +1572,7 @@ typedef struct VulkanRenderer
 	SDL_mutex *renderPassFetchLock;
 	SDL_mutex *framebufferFetchLock;
 
-    #define VULKAN_INSTANCE_FUNCTION(ext, ret, func, params) \
+	#define VULKAN_INSTANCE_FUNCTION(ext, ret, func, params) \
 		vkfntype_##func func;
 	#define VULKAN_DEVICE_FUNCTION(ext, ret, func, params) \
 		vkfntype_##func func;
@@ -3706,22 +3706,22 @@ static uint8_t VULKAN_INTERNAL_ChooseSwapPresentMode(
 		Refresh_LogInfo(#m " unsupported.");
 
 	uint32_t i;
-    if (desiredPresentInterval == REFRESH_PRESENTMODE_IMMEDIATE)
+	if (desiredPresentInterval == REFRESH_PRESENTMODE_IMMEDIATE)
 	{
 		CHECK_MODE(VK_PRESENT_MODE_IMMEDIATE_KHR)
 	}
-    else if (desiredPresentInterval == REFRESH_PRESENTMODE_MAILBOX)
-    {
-        CHECK_MODE(VK_PRESENT_MODE_MAILBOX_KHR)
-    }
-    else if (desiredPresentInterval == REFRESH_PRESENTMODE_FIFO)
-    {
-        CHECK_MODE(VK_PRESENT_MODE_FIFO_KHR)
-    }
-    else if (desiredPresentInterval == REFRESH_PRESENTMODE_FIFO_RELAXED)
-    {
-        CHECK_MODE(VK_PRESENT_MODE_FIFO_RELAXED_KHR)
-    }
+	else if (desiredPresentInterval == REFRESH_PRESENTMODE_MAILBOX)
+	{
+		CHECK_MODE(VK_PRESENT_MODE_MAILBOX_KHR)
+	}
+	else if (desiredPresentInterval == REFRESH_PRESENTMODE_FIFO)
+	{
+		CHECK_MODE(VK_PRESENT_MODE_FIFO_KHR)
+	}
+	else if (desiredPresentInterval == REFRESH_PRESENTMODE_FIFO_RELAXED)
+	{
+		CHECK_MODE(VK_PRESENT_MODE_FIFO_RELAXED_KHR)
+	}
 	else
 	{
 		Refresh_LogError(
@@ -4203,7 +4203,7 @@ static void VULKAN_INTERNAL_EndCommandBuffer(
 }
 
 static void VULKAN_DestroyDevice(
-    Refresh_Device *device
+	Refresh_Device *device
 ) {
 	VulkanRenderer* renderer = (VulkanRenderer*) device->driverData;
 	CommandPoolHashArray commandPoolHashArray;
@@ -4724,165 +4724,165 @@ static VkRenderPass VULKAN_INTERNAL_CreateRenderPass(
 	uint32_t colorAttachmentCount,
 	Refresh_DepthStencilAttachmentInfo *depthStencilAttachmentInfo
 ) {
-    VkResult vulkanResult;
-    VkAttachmentDescription attachmentDescriptions[2 * MAX_COLOR_TARGET_BINDINGS + 1];
-    VkAttachmentReference colorAttachmentReferences[MAX_COLOR_TARGET_BINDINGS];
-    VkAttachmentReference resolveReferences[MAX_COLOR_TARGET_BINDINGS + 1];
-    VkAttachmentReference depthStencilAttachmentReference;
+	VkResult vulkanResult;
+	VkAttachmentDescription attachmentDescriptions[2 * MAX_COLOR_TARGET_BINDINGS + 1];
+	VkAttachmentReference colorAttachmentReferences[MAX_COLOR_TARGET_BINDINGS];
+	VkAttachmentReference resolveReferences[MAX_COLOR_TARGET_BINDINGS + 1];
+	VkAttachmentReference depthStencilAttachmentReference;
 	VkRenderPassCreateInfo renderPassCreateInfo;
-    VkSubpassDescription subpass;
-    VkRenderPass renderPass;
-    uint32_t i;
+	VkSubpassDescription subpass;
+	VkRenderPass renderPass;
+	uint32_t i;
 	uint8_t multisampling = 0;
 
-    uint32_t attachmentDescriptionCount = 0;
-    uint32_t colorAttachmentReferenceCount = 0;
-    uint32_t resolveReferenceCount = 0;
+	uint32_t attachmentDescriptionCount = 0;
+	uint32_t colorAttachmentReferenceCount = 0;
+	uint32_t resolveReferenceCount = 0;
 
 	VulkanRenderTarget *colorTarget;
 	VulkanRenderTarget *depthStencilTarget;
 
-    for (i = 0; i < colorAttachmentCount; i += 1)
-    {
+	for (i = 0; i < colorAttachmentCount; i += 1)
+	{
 		colorTarget = (VulkanRenderTarget*) colorAttachmentInfos[attachmentDescriptionCount].pRenderTarget;
 
-        if (colorTarget->multisampleCount > VK_SAMPLE_COUNT_1_BIT)
-        {
+		if (colorTarget->multisampleCount > VK_SAMPLE_COUNT_1_BIT)
+		{
 			multisampling = 1;
 
-            /* Resolve attachment and multisample attachment */
+			/* Resolve attachment and multisample attachment */
 
-            attachmentDescriptions[attachmentDescriptionCount].flags = 0;
-            attachmentDescriptions[attachmentDescriptionCount].format = colorTarget->texture->format;
-            attachmentDescriptions[attachmentDescriptionCount].samples =
-                VK_SAMPLE_COUNT_1_BIT;
-            attachmentDescriptions[attachmentDescriptionCount].loadOp = RefreshToVK_LoadOp[
-                colorAttachmentInfos[i].loadOp
-            ];
-            attachmentDescriptions[attachmentDescriptionCount].storeOp = RefreshToVK_StoreOp[
-                colorAttachmentInfos[i].storeOp
-            ];
-            attachmentDescriptions[attachmentDescriptionCount].stencilLoadOp =
-                VK_ATTACHMENT_LOAD_OP_DONT_CARE;
-            attachmentDescriptions[attachmentDescriptionCount].stencilStoreOp =
-                VK_ATTACHMENT_STORE_OP_DONT_CARE;
-            attachmentDescriptions[attachmentDescriptionCount].initialLayout =
-                VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
-            attachmentDescriptions[attachmentDescriptionCount].finalLayout =
-                VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
+			attachmentDescriptions[attachmentDescriptionCount].flags = 0;
+			attachmentDescriptions[attachmentDescriptionCount].format = colorTarget->texture->format;
+			attachmentDescriptions[attachmentDescriptionCount].samples =
+				VK_SAMPLE_COUNT_1_BIT;
+			attachmentDescriptions[attachmentDescriptionCount].loadOp = RefreshToVK_LoadOp[
+				colorAttachmentInfos[i].loadOp
+			];
+			attachmentDescriptions[attachmentDescriptionCount].storeOp = RefreshToVK_StoreOp[
+				colorAttachmentInfos[i].storeOp
+			];
+			attachmentDescriptions[attachmentDescriptionCount].stencilLoadOp =
+				VK_ATTACHMENT_LOAD_OP_DONT_CARE;
+			attachmentDescriptions[attachmentDescriptionCount].stencilStoreOp =
+				VK_ATTACHMENT_STORE_OP_DONT_CARE;
+			attachmentDescriptions[attachmentDescriptionCount].initialLayout =
+				VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
+			attachmentDescriptions[attachmentDescriptionCount].finalLayout =
+				VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
 
-            resolveReferences[resolveReferenceCount].attachment =
-                attachmentDescriptionCount;
-            resolveReferences[resolveReferenceCount].layout =
-                VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
+			resolveReferences[resolveReferenceCount].attachment =
+				attachmentDescriptionCount;
+			resolveReferences[resolveReferenceCount].layout =
+				VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
 
-            attachmentDescriptionCount += 1;
-            resolveReferenceCount += 1;
+			attachmentDescriptionCount += 1;
+			resolveReferenceCount += 1;
 
-            attachmentDescriptions[attachmentDescriptionCount].flags = 0;
-            attachmentDescriptions[attachmentDescriptionCount].format = colorTarget->texture->format;
-            attachmentDescriptions[attachmentDescriptionCount].samples = colorTarget->multisampleCount;
-            attachmentDescriptions[attachmentDescriptionCount].loadOp = RefreshToVK_LoadOp[
-                colorAttachmentInfos[i].loadOp
-            ];
-            attachmentDescriptions[attachmentDescriptionCount].storeOp = RefreshToVK_StoreOp[
-                colorAttachmentInfos[i].storeOp
-            ];
-            attachmentDescriptions[attachmentDescriptionCount].stencilLoadOp =
-                VK_ATTACHMENT_LOAD_OP_DONT_CARE;
-            attachmentDescriptions[attachmentDescriptionCount].stencilStoreOp =
-                VK_ATTACHMENT_STORE_OP_DONT_CARE;
-            attachmentDescriptions[attachmentDescriptionCount].initialLayout =
-                VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
-            attachmentDescriptions[attachmentDescriptionCount].finalLayout =
-                VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
+			attachmentDescriptions[attachmentDescriptionCount].flags = 0;
+			attachmentDescriptions[attachmentDescriptionCount].format = colorTarget->texture->format;
+			attachmentDescriptions[attachmentDescriptionCount].samples = colorTarget->multisampleCount;
+			attachmentDescriptions[attachmentDescriptionCount].loadOp = RefreshToVK_LoadOp[
+				colorAttachmentInfos[i].loadOp
+			];
+			attachmentDescriptions[attachmentDescriptionCount].storeOp = RefreshToVK_StoreOp[
+				colorAttachmentInfos[i].storeOp
+			];
+			attachmentDescriptions[attachmentDescriptionCount].stencilLoadOp =
+				VK_ATTACHMENT_LOAD_OP_DONT_CARE;
+			attachmentDescriptions[attachmentDescriptionCount].stencilStoreOp =
+				VK_ATTACHMENT_STORE_OP_DONT_CARE;
+			attachmentDescriptions[attachmentDescriptionCount].initialLayout =
+				VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
+			attachmentDescriptions[attachmentDescriptionCount].finalLayout =
+				VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
 
-            colorAttachmentReferences[colorAttachmentReferenceCount].attachment =
-                attachmentDescriptionCount;
-            colorAttachmentReferences[colorAttachmentReferenceCount].layout =
-                VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
+			colorAttachmentReferences[colorAttachmentReferenceCount].attachment =
+				attachmentDescriptionCount;
+			colorAttachmentReferences[colorAttachmentReferenceCount].layout =
+				VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
 
-            attachmentDescriptionCount += 1;
-            colorAttachmentReferenceCount += 1;
-        }
-        else
-        {
-            attachmentDescriptions[attachmentDescriptionCount].flags = 0;
-            attachmentDescriptions[attachmentDescriptionCount].format = colorTarget->texture->format;
-            attachmentDescriptions[attachmentDescriptionCount].samples =
-                VK_SAMPLE_COUNT_1_BIT;
-            attachmentDescriptions[attachmentDescriptionCount].loadOp = RefreshToVK_LoadOp[
-                colorAttachmentInfos[i].loadOp
-            ];
-            attachmentDescriptions[attachmentDescriptionCount].storeOp = RefreshToVK_StoreOp[
-                colorAttachmentInfos[i].storeOp
-            ];
-            attachmentDescriptions[attachmentDescriptionCount].stencilLoadOp =
-                VK_ATTACHMENT_LOAD_OP_DONT_CARE;
-            attachmentDescriptions[attachmentDescriptionCount].stencilStoreOp =
-                VK_ATTACHMENT_STORE_OP_DONT_CARE;
-            attachmentDescriptions[attachmentDescriptionCount].initialLayout =
-                VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
-            attachmentDescriptions[attachmentDescriptionCount].finalLayout =
-                VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
+			attachmentDescriptionCount += 1;
+			colorAttachmentReferenceCount += 1;
+		}
+		else
+		{
+			attachmentDescriptions[attachmentDescriptionCount].flags = 0;
+			attachmentDescriptions[attachmentDescriptionCount].format = colorTarget->texture->format;
+			attachmentDescriptions[attachmentDescriptionCount].samples =
+				VK_SAMPLE_COUNT_1_BIT;
+			attachmentDescriptions[attachmentDescriptionCount].loadOp = RefreshToVK_LoadOp[
+				colorAttachmentInfos[i].loadOp
+			];
+			attachmentDescriptions[attachmentDescriptionCount].storeOp = RefreshToVK_StoreOp[
+				colorAttachmentInfos[i].storeOp
+			];
+			attachmentDescriptions[attachmentDescriptionCount].stencilLoadOp =
+				VK_ATTACHMENT_LOAD_OP_DONT_CARE;
+			attachmentDescriptions[attachmentDescriptionCount].stencilStoreOp =
+				VK_ATTACHMENT_STORE_OP_DONT_CARE;
+			attachmentDescriptions[attachmentDescriptionCount].initialLayout =
+				VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
+			attachmentDescriptions[attachmentDescriptionCount].finalLayout =
+				VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
 
 
-            colorAttachmentReferences[colorAttachmentReferenceCount].attachment = attachmentDescriptionCount;
-            colorAttachmentReferences[colorAttachmentReferenceCount].layout =
-                VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
+			colorAttachmentReferences[colorAttachmentReferenceCount].attachment = attachmentDescriptionCount;
+			colorAttachmentReferences[colorAttachmentReferenceCount].layout =
+				VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
 
-            attachmentDescriptionCount += 1;
-            colorAttachmentReferenceCount += 1;
-        }
-    }
+			attachmentDescriptionCount += 1;
+			colorAttachmentReferenceCount += 1;
+		}
+	}
 
-    subpass.pipelineBindPoint = VK_PIPELINE_BIND_POINT_GRAPHICS;
-    subpass.flags = 0;
-    subpass.inputAttachmentCount = 0;
-    subpass.pInputAttachments = NULL;
-    subpass.colorAttachmentCount = colorAttachmentCount;
-    subpass.pColorAttachments = colorAttachmentReferences;
-    subpass.preserveAttachmentCount = 0;
-    subpass.pPreserveAttachments = NULL;
+	subpass.pipelineBindPoint = VK_PIPELINE_BIND_POINT_GRAPHICS;
+	subpass.flags = 0;
+	subpass.inputAttachmentCount = 0;
+	subpass.pInputAttachments = NULL;
+	subpass.colorAttachmentCount = colorAttachmentCount;
+	subpass.pColorAttachments = colorAttachmentReferences;
+	subpass.preserveAttachmentCount = 0;
+	subpass.pPreserveAttachments = NULL;
 
-    if (depthStencilAttachmentInfo == NULL)
-    {
-        subpass.pDepthStencilAttachment = NULL;
-    }
-    else
-    {
+	if (depthStencilAttachmentInfo == NULL)
+	{
+		subpass.pDepthStencilAttachment = NULL;
+	}
+	else
+	{
 		depthStencilTarget = (VulkanRenderTarget*) depthStencilAttachmentInfo->pDepthStencilTarget;
-        attachmentDescriptions[attachmentDescriptionCount].flags = 0;
-        attachmentDescriptions[attachmentDescriptionCount].format = depthStencilTarget->texture->format;
-        attachmentDescriptions[attachmentDescriptionCount].samples =
-            VK_SAMPLE_COUNT_1_BIT; /* FIXME: do these take multisamples? */
-        attachmentDescriptions[attachmentDescriptionCount].loadOp = RefreshToVK_LoadOp[
-            depthStencilAttachmentInfo->loadOp
-        ];
-        attachmentDescriptions[attachmentDescriptionCount].storeOp = RefreshToVK_StoreOp[
-            depthStencilAttachmentInfo->storeOp
-        ];
-        attachmentDescriptions[attachmentDescriptionCount].stencilLoadOp = RefreshToVK_LoadOp[
-            depthStencilAttachmentInfo->stencilLoadOp
-        ];
-        attachmentDescriptions[attachmentDescriptionCount].stencilStoreOp = RefreshToVK_StoreOp[
-            depthStencilAttachmentInfo->stencilStoreOp
-        ];
-        attachmentDescriptions[attachmentDescriptionCount].initialLayout =
-            VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL;
-        attachmentDescriptions[attachmentDescriptionCount].finalLayout =
-            VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL;
+		attachmentDescriptions[attachmentDescriptionCount].flags = 0;
+		attachmentDescriptions[attachmentDescriptionCount].format = depthStencilTarget->texture->format;
+		attachmentDescriptions[attachmentDescriptionCount].samples =
+			VK_SAMPLE_COUNT_1_BIT; /* FIXME: do these take multisamples? */
+		attachmentDescriptions[attachmentDescriptionCount].loadOp = RefreshToVK_LoadOp[
+			depthStencilAttachmentInfo->loadOp
+		];
+		attachmentDescriptions[attachmentDescriptionCount].storeOp = RefreshToVK_StoreOp[
+			depthStencilAttachmentInfo->storeOp
+		];
+		attachmentDescriptions[attachmentDescriptionCount].stencilLoadOp = RefreshToVK_LoadOp[
+			depthStencilAttachmentInfo->stencilLoadOp
+		];
+		attachmentDescriptions[attachmentDescriptionCount].stencilStoreOp = RefreshToVK_StoreOp[
+			depthStencilAttachmentInfo->stencilStoreOp
+		];
+		attachmentDescriptions[attachmentDescriptionCount].initialLayout =
+			VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL;
+		attachmentDescriptions[attachmentDescriptionCount].finalLayout =
+			VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL;
 
-        depthStencilAttachmentReference.attachment =
-            attachmentDescriptionCount;
-        depthStencilAttachmentReference.layout =
-            VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL;
+		depthStencilAttachmentReference.attachment =
+			attachmentDescriptionCount;
+		depthStencilAttachmentReference.layout =
+			VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL;
 
-        subpass.pDepthStencilAttachment =
-            &depthStencilAttachmentReference;
+		subpass.pDepthStencilAttachment =
+			&depthStencilAttachmentReference;
 
-        attachmentDescriptionCount += 1;
-    }
+		attachmentDescriptionCount += 1;
+	}
 
 	if (multisampling)
 	{
@@ -4893,22 +4893,22 @@ static VkRenderPass VULKAN_INTERNAL_CreateRenderPass(
 		subpass.pResolveAttachments = NULL;
 	}
 
-    renderPassCreateInfo.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO;
-    renderPassCreateInfo.pNext = NULL;
-    renderPassCreateInfo.flags = 0;
-    renderPassCreateInfo.pAttachments = attachmentDescriptions;
-    renderPassCreateInfo.attachmentCount = attachmentDescriptionCount;
-    renderPassCreateInfo.subpassCount = 1;
-    renderPassCreateInfo.pSubpasses = &subpass;
-    renderPassCreateInfo.dependencyCount = 0;
-    renderPassCreateInfo.pDependencies = NULL;
+	renderPassCreateInfo.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO;
+	renderPassCreateInfo.pNext = NULL;
+	renderPassCreateInfo.flags = 0;
+	renderPassCreateInfo.pAttachments = attachmentDescriptions;
+	renderPassCreateInfo.attachmentCount = attachmentDescriptionCount;
+	renderPassCreateInfo.subpassCount = 1;
+	renderPassCreateInfo.pSubpasses = &subpass;
+	renderPassCreateInfo.dependencyCount = 0;
+	renderPassCreateInfo.pDependencies = NULL;
 
-    vulkanResult = renderer->vkCreateRenderPass(
-        renderer->logicalDevice,
-        &renderPassCreateInfo,
-        NULL,
-        &renderPass
-    );
+	vulkanResult = renderer->vkCreateRenderPass(
+		renderer->logicalDevice,
+		&renderPassCreateInfo,
+		NULL,
+		&renderPass
+	);
 
 	if (vulkanResult != VK_SUCCESS)
 	{
@@ -4916,7 +4916,7 @@ static VkRenderPass VULKAN_INTERNAL_CreateRenderPass(
 		LogVulkanResultAsError("vkCreateRenderPass", vulkanResult);
 	}
 
-    return renderPass;
+	return renderPass;
 }
 
 static VkRenderPass VULKAN_INTERNAL_CreateTransientRenderPass(
@@ -4928,13 +4928,13 @@ static VkRenderPass VULKAN_INTERNAL_CreateTransientRenderPass(
 	VkAttachmentReference resolveReferences[MAX_COLOR_TARGET_BINDINGS + 1];
 	VkAttachmentReference depthStencilAttachmentReference;
 	Refresh_ColorAttachmentDescription attachmentDescription;
-    VkSubpassDescription subpass;
+	VkSubpassDescription subpass;
 	VkRenderPassCreateInfo renderPassCreateInfo;
-    VkRenderPass renderPass;
+	VkRenderPass renderPass;
 	VkResult result;
 
 	uint32_t multisampling = 0;
-    uint32_t attachmentDescriptionCount = 0;
+	uint32_t attachmentDescriptionCount = 0;
 	uint32_t colorAttachmentReferenceCount = 0;
 	uint32_t resolveReferenceCount = 0;
 	uint32_t i;
@@ -4980,42 +4980,42 @@ static VkRenderPass VULKAN_INTERNAL_CreateTransientRenderPass(
 			attachmentDescriptions[attachmentDescriptionCount].finalLayout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
 
 			colorAttachmentReferences[colorAttachmentReferenceCount].attachment =
-                attachmentDescriptionCount;
-            colorAttachmentReferences[colorAttachmentReferenceCount].layout =
-                VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
+				attachmentDescriptionCount;
+			colorAttachmentReferences[colorAttachmentReferenceCount].layout =
+				VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
 
-            attachmentDescriptionCount += 1;
-            colorAttachmentReferenceCount += 1;
+			attachmentDescriptionCount += 1;
+			colorAttachmentReferenceCount += 1;
 		}
 		else
-        {
-            attachmentDescriptions[attachmentDescriptionCount].flags = 0;
-            attachmentDescriptions[attachmentDescriptionCount].format = RefreshToVK_SurfaceFormat[
+		{
+			attachmentDescriptions[attachmentDescriptionCount].flags = 0;
+			attachmentDescriptions[attachmentDescriptionCount].format = RefreshToVK_SurfaceFormat[
 				attachmentDescription.format
 			];
-            attachmentDescriptions[attachmentDescriptionCount].samples =
+			attachmentDescriptions[attachmentDescriptionCount].samples =
 				VK_SAMPLE_COUNT_1_BIT;
-            attachmentDescriptions[attachmentDescriptionCount].loadOp =
+			attachmentDescriptions[attachmentDescriptionCount].loadOp =
 				VK_ATTACHMENT_LOAD_OP_DONT_CARE;
-            attachmentDescriptions[attachmentDescriptionCount].storeOp =
+			attachmentDescriptions[attachmentDescriptionCount].storeOp =
 				VK_ATTACHMENT_STORE_OP_DONT_CARE;
-            attachmentDescriptions[attachmentDescriptionCount].stencilLoadOp =
+			attachmentDescriptions[attachmentDescriptionCount].stencilLoadOp =
 				VK_ATTACHMENT_LOAD_OP_DONT_CARE;
-            attachmentDescriptions[attachmentDescriptionCount].stencilStoreOp =
+			attachmentDescriptions[attachmentDescriptionCount].stencilStoreOp =
 				VK_ATTACHMENT_STORE_OP_DONT_CARE;
-            attachmentDescriptions[attachmentDescriptionCount].initialLayout =
+			attachmentDescriptions[attachmentDescriptionCount].initialLayout =
 				VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
-            attachmentDescriptions[attachmentDescriptionCount].finalLayout =
+			attachmentDescriptions[attachmentDescriptionCount].finalLayout =
 				VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
 
 
-            colorAttachmentReferences[colorAttachmentReferenceCount].attachment = attachmentDescriptionCount;
-            colorAttachmentReferences[colorAttachmentReferenceCount].layout =
-                VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
+			colorAttachmentReferences[colorAttachmentReferenceCount].attachment = attachmentDescriptionCount;
+			colorAttachmentReferences[colorAttachmentReferenceCount].layout =
+				VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
 
-            attachmentDescriptionCount += 1;
-            colorAttachmentReferenceCount += 1;
-        }
+			attachmentDescriptionCount += 1;
+			colorAttachmentReferenceCount += 1;
+		}
 	}
 
 	subpass.pipelineBindPoint = VK_PIPELINE_BIND_POINT_GRAPHICS;
@@ -5030,29 +5030,29 @@ static VkRenderPass VULKAN_INTERNAL_CreateTransientRenderPass(
 	if (attachmentInfo.hasDepthStencilAttachment)
 	{
 		attachmentDescriptions[attachmentDescriptionCount].flags = 0;
-        attachmentDescriptions[attachmentDescriptionCount].format = RefreshToVK_SurfaceFormat[
+		attachmentDescriptions[attachmentDescriptionCount].format = RefreshToVK_SurfaceFormat[
 			attachmentInfo.depthStencilFormat
 		];
-        attachmentDescriptions[attachmentDescriptionCount].samples =
-            VK_SAMPLE_COUNT_1_BIT; /* FIXME: do these take multisamples? */
-        attachmentDescriptions[attachmentDescriptionCount].loadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE;
-        attachmentDescriptions[attachmentDescriptionCount].storeOp = VK_ATTACHMENT_STORE_OP_DONT_CARE;
-        attachmentDescriptions[attachmentDescriptionCount].stencilLoadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE;
-        attachmentDescriptions[attachmentDescriptionCount].stencilStoreOp = VK_ATTACHMENT_STORE_OP_DONT_CARE;
-        attachmentDescriptions[attachmentDescriptionCount].initialLayout =
-            VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL;
-        attachmentDescriptions[attachmentDescriptionCount].finalLayout =
-            VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL;
+		attachmentDescriptions[attachmentDescriptionCount].samples =
+			VK_SAMPLE_COUNT_1_BIT; /* FIXME: do these take multisamples? */
+		attachmentDescriptions[attachmentDescriptionCount].loadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE;
+		attachmentDescriptions[attachmentDescriptionCount].storeOp = VK_ATTACHMENT_STORE_OP_DONT_CARE;
+		attachmentDescriptions[attachmentDescriptionCount].stencilLoadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE;
+		attachmentDescriptions[attachmentDescriptionCount].stencilStoreOp = VK_ATTACHMENT_STORE_OP_DONT_CARE;
+		attachmentDescriptions[attachmentDescriptionCount].initialLayout =
+			VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL;
+		attachmentDescriptions[attachmentDescriptionCount].finalLayout =
+			VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL;
 
-        depthStencilAttachmentReference.attachment =
-            attachmentDescriptionCount;
-        depthStencilAttachmentReference.layout =
-            VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL;
+		depthStencilAttachmentReference.attachment =
+			attachmentDescriptionCount;
+		depthStencilAttachmentReference.layout =
+			VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL;
 
-        subpass.pDepthStencilAttachment =
-            &depthStencilAttachmentReference;
+		subpass.pDepthStencilAttachment =
+			&depthStencilAttachmentReference;
 
-        attachmentDescriptionCount += 1;
+		attachmentDescriptionCount += 1;
 	}
 	else
 	{
@@ -5068,15 +5068,15 @@ static VkRenderPass VULKAN_INTERNAL_CreateTransientRenderPass(
 		subpass.pResolveAttachments = NULL;
 	}
 
-    renderPassCreateInfo.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO;
-    renderPassCreateInfo.pNext = NULL;
-    renderPassCreateInfo.flags = 0;
-    renderPassCreateInfo.pAttachments = attachmentDescriptions;
-    renderPassCreateInfo.attachmentCount = attachmentDescriptionCount;
-    renderPassCreateInfo.subpassCount = 1;
-    renderPassCreateInfo.pSubpasses = &subpass;
-    renderPassCreateInfo.dependencyCount = 0;
-    renderPassCreateInfo.pDependencies = NULL;
+	renderPassCreateInfo.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO;
+	renderPassCreateInfo.pNext = NULL;
+	renderPassCreateInfo.flags = 0;
+	renderPassCreateInfo.pAttachments = attachmentDescriptions;
+	renderPassCreateInfo.attachmentCount = attachmentDescriptionCount;
+	renderPassCreateInfo.subpassCount = 1;
+	renderPassCreateInfo.pSubpasses = &subpass;
+	renderPassCreateInfo.dependencyCount = 0;
+	renderPassCreateInfo.pDependencies = NULL;
 
 	result = renderer->vkCreateRenderPass(
 		renderer->logicalDevice,
@@ -8614,7 +8614,7 @@ static void VULKAN_INTERNAL_CleanCommandBuffer(
 }
 
 static void VULKAN_Wait(
-    Refresh_Renderer *driverData
+	Refresh_Renderer *driverData
 ) {
 	VulkanRenderer *renderer = (VulkanRenderer*) driverData;
 	VulkanCommandBuffer *commandBuffer;
@@ -8643,7 +8643,7 @@ static void VULKAN_Wait(
 }
 
 static void VULKAN_Submit(
-    Refresh_Renderer *driverData,
+	Refresh_Renderer *driverData,
 	uint32_t commandBufferCount,
 	Refresh_CommandBuffer **pCommandBuffers
 ) {
@@ -8950,8 +8950,8 @@ static uint8_t VULKAN_INTERNAL_CheckValidationLayers(
 }
 
 static uint8_t VULKAN_INTERNAL_CreateInstance(
-    VulkanRenderer *renderer,
-    void *deviceWindowHandle
+	VulkanRenderer *renderer,
+	void *deviceWindowHandle
 ) {
 	VkResult vulkanResult;
 	VkApplicationInfo appInfo;
@@ -8968,18 +8968,18 @@ static uint8_t VULKAN_INTERNAL_CreateInstance(
 	appInfo.engineVersion = REFRESH_COMPILED_VERSION;
 	appInfo.apiVersion = VK_MAKE_VERSION(1, 0, 0);
 
-    if (!SDL_Vulkan_GetInstanceExtensions(
-        (SDL_Window*) deviceWindowHandle,
-        &instanceExtensionCount,
-        NULL
-    )) {
-        Refresh_LogError(
-            "SDL_Vulkan_GetInstanceExtensions(): getExtensionCount: %s",
-            SDL_GetError()
-        );
+	if (!SDL_Vulkan_GetInstanceExtensions(
+		(SDL_Window*) deviceWindowHandle,
+		&instanceExtensionCount,
+		NULL
+	)) {
+		Refresh_LogError(
+			"SDL_Vulkan_GetInstanceExtensions(): getExtensionCount: %s",
+			SDL_GetError()
+		);
 
-        return 0;
-    }
+		return 0;
+	}
 
 	/* Extra space for the following extensions:
 	 * VK_KHR_get_physical_device_properties2
@@ -9000,8 +9000,8 @@ static uint8_t VULKAN_INTERNAL_CreateInstance(
 			SDL_GetError()
 		);
 
-        SDL_stack_free((char*) instanceExtensionNames);
-        return 0;
+		SDL_stack_free((char*) instanceExtensionNames);
+		return 0;
 	}
 
 	/* Core since 1.1 */
@@ -9017,8 +9017,8 @@ static uint8_t VULKAN_INTERNAL_CreateInstance(
 			"Required Vulkan instance extensions not supported"
 		);
 
-        SDL_stack_free((char*) instanceExtensionNames);
-        return 0;
+		SDL_stack_free((char*) instanceExtensionNames);
+		return 0;
 	}
 
 	if (renderer->supportsDebugUtils)
@@ -9035,7 +9035,7 @@ static uint8_t VULKAN_INTERNAL_CreateInstance(
 		);
 	}
 
-    createInfo.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
+	createInfo.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
 	createInfo.pNext = NULL;
 	createInfo.flags = 0;
 	createInfo.pApplicationInfo = &appInfo;
@@ -9062,7 +9062,7 @@ static uint8_t VULKAN_INTERNAL_CreateInstance(
 		createInfo.enabledLayerCount = 0;
 	}
 
-    vulkanResult = vkCreateInstance(&createInfo, NULL, &renderer->instance);
+	vulkanResult = vkCreateInstance(&createInfo, NULL, &renderer->instance);
 	if (vulkanResult != VK_SUCCESS)
 	{
 		Refresh_LogError(
@@ -9070,8 +9070,8 @@ static uint8_t VULKAN_INTERNAL_CreateInstance(
 			VkErrorMessages(vulkanResult)
 		);
 
-        SDL_stack_free((char*) instanceExtensionNames);
-        return 0;
+		SDL_stack_free((char*) instanceExtensionNames);
+		return 0;
 	}
 
 	SDL_stack_free((char*) instanceExtensionNames);
@@ -9524,8 +9524,8 @@ static Refresh_Device* VULKAN_CreateDevice(
 	VulkanRenderer *renderer = (VulkanRenderer*) SDL_malloc(sizeof(VulkanRenderer));
 	VkSurfaceKHR surface;
 
-    Refresh_Device *result;
-    VkResult vulkanResult;
+	Refresh_Device *result;
+	VkResult vulkanResult;
 	uint32_t i;
 
 	/* Variables: Descriptor set layouts */
@@ -9621,11 +9621,12 @@ static Refresh_Device* VULKAN_CreateDevice(
 		renderer->physicalDeviceDriverProperties.conformanceVersion.patch
 	);
 	Refresh_LogWarn(
-		"\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"
-		"! Refresh Vulkan is still in development!    !\n"
-		"! The API is unstable and subject to change! !\n"
-		"! You have been warned!                      !\n"
-		"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
+		"\n"
+		"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"
+		"! Refresh Vulkan is still in development!	!\n"
+		"! The API is unstable and subject to change!\n"
+		"! You have been warned!					!\n"
+		"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
 	);
 
 	if (!VULKAN_INTERNAL_CreateLogicalDevice(
@@ -9639,9 +9640,9 @@ static Refresh_Device* VULKAN_CreateDevice(
 
 	/* FIXME: just move this into this function */
 	result = (Refresh_Device*) SDL_malloc(sizeof(Refresh_Device));
-    ASSIGN_DRIVER(VULKAN)
+	ASSIGN_DRIVER(VULKAN)
 
-    result->driverData = (Refresh_Renderer*) renderer;
+	result->driverData = (Refresh_Renderer*) renderer;
 
 	/*
 	 * Create initial swapchain
@@ -9989,12 +9990,12 @@ static Refresh_Device* VULKAN_CreateDevice(
 	renderer->transferBufferPool.availableBufferCount = 0;
 	renderer->transferBufferPool.availableBuffers = SDL_malloc(renderer->transferBufferPool.availableBufferCapacity * sizeof(VulkanTransferBuffer*));
 
-    return result;
+	return result;
 }
 
 Refresh_Driver VulkanDriver = {
-    "Vulkan",
-    VULKAN_CreateDevice
+	"Vulkan",
+	VULKAN_CreateDevice
 };
 
 #endif //REFRESH_DRIVER_VULKAN
diff --git a/src/Refresh_Image.c b/src/Refresh_Image.c
index e87c516..17f59fd 100644
--- a/src/Refresh_Image.c
+++ b/src/Refresh_Image.c
@@ -89,53 +89,53 @@
 static void *
 SDL_SIMDRealloc(void *mem, const size_t len)
 {
-    const size_t alignment = SDL_SIMDGetAlignment();
-    const size_t padding = alignment - (len % alignment);
-    const size_t padded = (padding != alignment) ? (len + padding) : len;
-    Uint8 *retval = (Uint8*) mem;
-    void *oldmem = mem;
-    size_t memdiff, ptrdiff;
-    Uint8 *ptr;
+	const size_t alignment = SDL_SIMDGetAlignment();
+	const size_t padding = alignment - (len % alignment);
+	const size_t padded = (padding != alignment) ? (len + padding) : len;
+	Uint8 *retval = (Uint8*) mem;
+	void *oldmem = mem;
+	size_t memdiff, ptrdiff;
+	Uint8 *ptr;
 
-    if (mem) {
-        void **realptr = (void **) mem;
-        realptr--;
-        mem = *(((void **) mem) - 1);
+	if (mem) {
+		void **realptr = (void **) mem;
+		realptr--;
+		mem = *(((void **) mem) - 1);
 
-        /* Check the delta between the real pointer and user pointer */
-        memdiff = ((size_t) oldmem) - ((size_t) mem);
-    }
+		/* Check the delta between the real pointer and user pointer */
+		memdiff = ((size_t) oldmem) - ((size_t) mem);
+	}
 
-    ptr = (Uint8 *) SDL_realloc(mem, padded + alignment + sizeof (void *));
+	ptr = (Uint8 *) SDL_realloc(mem, padded + alignment + sizeof (void *));
 
-    if (ptr == mem) {
-        return retval; /* Pointer didn't change, nothing to do */
-    }
-    if (ptr == NULL) {
-        return NULL; /* Out of memory, bail! */
-    }
+	if (ptr == mem) {
+		return retval; /* Pointer didn't change, nothing to do */
+	}
+	if (ptr == NULL) {
+		return NULL; /* Out of memory, bail! */
+	}
 
-    /* Store the actual malloc pointer right before our aligned pointer. */
-    retval = ptr + sizeof (void *);
-    retval += alignment - (((size_t) retval) % alignment);
+	/* Store the actual malloc pointer right before our aligned pointer. */
+	retval = ptr + sizeof (void *);
+	retval += alignment - (((size_t) retval) % alignment);
 
-    /* Make sure the delta is the same! */
-    if (mem) {
-        ptrdiff = ((size_t) retval) - ((size_t) ptr);
-        if (memdiff != ptrdiff) { /* Delta has changed, copy to new offset! */
-            oldmem = (void*) (((size_t) ptr) + memdiff);
+	/* Make sure the delta is the same! */
+	if (mem) {
+		ptrdiff = ((size_t) retval) - ((size_t) ptr);
+		if (memdiff != ptrdiff) { /* Delta has changed, copy to new offset! */
+			oldmem = (void*) (((size_t) ptr) + memdiff);
 
-            /* Even though the data past the old `len` is undefined, this is the
-             * only length value we have, and it guarantees that we copy all the
-             * previous memory anyhow.
-             */
-            SDL_memmove(retval, oldmem, len);
-        }
-    }
+			/* Even though the data past the old `len` is undefined, this is the
+			 * only length value we have, and it guarantees that we copy all the
+			 * previous memory anyhow.
+			 */
+			SDL_memmove(retval, oldmem, len);
+		}
+	}
 
-    /* Actually store the malloc pointer, finally. */
-    *(((void **) retval) - 1) = ptr;
-    return retval;
+	/* Actually store the malloc pointer, finally. */
+	*(((void **) retval) - 1) = ptr;
+	return retval;
 }
 #endif
 
@@ -190,28 +190,28 @@ static unsigned char* dgibson_stbi_zlib_compress(
 /* Image Read API */
 
 uint8_t* Refresh_Image_Load(
-    char const *filename,
+	char const *filename,
 	int32_t *w,
 	int32_t *h,
-    int32_t *numChannels
+	int32_t *numChannels
 ) {
-    return stbi_load(filename, w, h, numChannels, STBI_rgb_alpha);
+	return stbi_load(filename, w, h, numChannels, STBI_rgb_alpha);
 }
 
 void Refresh_Image_Free(uint8_t *mem)
 {
-    stbi_image_free(mem);
+	stbi_image_free(mem);
 }
 
 /* Image Write API */
 
 void Refresh_Image_SavePNG(
-    const char *filename,
-    int32_t w,
-    int32_t h,
+	const char *filename,
+	int32_t w,
+	int32_t h,
 	uint8_t *data
 ) {
-    stbi_write_png(filename, w, h, 4, data, w * 4);
+	stbi_write_png(filename, w, h, 4, data, w * 4);
 }
 
 /* vim: set noexpandtab shiftwidth=8 tabstop=8: */