Revert "Optimize clearing of depth and stencil images"

This reverts commit af1f215923f24825443ef14adf6f58aff53893b8.

Reason for revert: Fails tests with ASAN crbug.com/1097740

Bug: chromium:1097740
Change-Id: I48d3d1129ad3ea314df29d1f40b595ad6fa169ce
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/45928
Reviewed-by: Corentin Wallez <cwallez@google.com>
Tested-by: Corentin Wallez <cwallez@google.com>
diff --git a/src/Device/Blitter.cpp b/src/Device/Blitter.cpp
index 1f820e9..a860aae 100644
--- a/src/Device/Blitter.cpp
+++ b/src/Device/Blitter.cpp
@@ -154,22 +154,20 @@
 	}
 }
 
-bool Blitter::fastClear(void *clearValue, vk::Format clearFormat, vk::Image *dest, const vk::Format &viewFormat, const VkImageSubresourceRange &subresourceRange, const VkRect2D *renderArea)
+bool Blitter::fastClear(void *pixel, vk::Format format, vk::Image *dest, const vk::Format &viewFormat, const VkImageSubresourceRange &subresourceRange, const VkRect2D *renderArea)
 {
-	if(clearFormat != VK_FORMAT_R32G32B32A32_SFLOAT &&
-	   clearFormat != VK_FORMAT_D32_SFLOAT &&
-	   clearFormat != VK_FORMAT_S8_UINT)
+	if(format != VK_FORMAT_R32G32B32A32_SFLOAT)
 	{
 		return false;
 	}
 
-	float *color = reinterpret_cast<float *>(clearValue);
+	float *color = (float *)pixel;
 	float r = color[0];
 	float g = color[1];
 	float b = color[2];
 	float a = color[3];
 
-	uint32_t packed = 0;
+	uint32_t packed;
 
 	VkImageAspectFlagBits aspect = static_cast<VkImageAspectFlagBits>(subresourceRange.aspectMask);
 	switch(viewFormat)
@@ -204,14 +202,6 @@
 		case VK_FORMAT_E5B9G9R9_UFLOAT_PACK32:
 			packed = RGB9E5(color);
 			break;
-		case VK_FORMAT_D32_SFLOAT:
-			ASSERT(clearFormat == VK_FORMAT_D32_SFLOAT);
-			packed = *reinterpret_cast<uint32_t *>(clearValue);  // float reinterpreted as uint32
-			break;
-		case VK_FORMAT_S8_UINT:
-			ASSERT(clearFormat == VK_FORMAT_S8_UINT);
-			packed = *reinterpret_cast<uint8_t *>(clearValue);
-			break;
 		default:
 			return false;
 	}
@@ -259,14 +249,6 @@
 
 					switch(viewFormat.bytes())
 					{
-						case 4:
-							for(uint32_t i = 0; i < area.extent.height; i++)
-							{
-								ASSERT(d < dest->end());
-								sw::clear((uint32_t *)d, packed, area.extent.width);
-								d += rowPitchBytes;
-							}
-							break;
 						case 2:
 							for(uint32_t i = 0; i < area.extent.height; i++)
 							{
@@ -275,11 +257,11 @@
 								d += rowPitchBytes;
 							}
 							break;
-						case 1:
+						case 4:
 							for(uint32_t i = 0; i < area.extent.height; i++)
 							{
 								ASSERT(d < dest->end());
-								memset(d, packed, area.extent.width);
+								sw::clear((uint32_t *)d, packed, area.extent.width);
 								d += rowPitchBytes;
 							}
 							break;