Replace all UNIMPLEMENTED() with UNSUPPORTED()

Most cases of UNIMPLEMENTED() are actually for functionality that we do
not support, and correctly advertise as such. It's expected to be an
application bug if these asserts are hit, and not an indication of
something we must still implement to be a compliant Vulkan
implementation.

This change will be immediately followed up by one which restores
UNIMPLEMENTED() where it was used correctly. This two-change approach
makes it much easier to see what still needs to get done.

Bug: b/131243109
Change-Id: Id09b5de5bc73fabfdc3199dcd3091cb72283be65
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/40408
Presubmit-Ready: Nicolas Capens <nicolascapens@google.com>
Tested-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
diff --git a/src/Device/Blitter.cpp b/src/Device/Blitter.cpp
index 946eafc..5333359 100644
--- a/src/Device/Blitter.cpp
+++ b/src/Device/Blitter.cpp
@@ -1750,7 +1750,7 @@
 	if((region.srcSubresource.layerCount != region.dstSubresource.layerCount) ||
 	   (region.srcSubresource.aspectMask != region.dstSubresource.aspectMask))
 	{
-		UNIMPLEMENTED("region");
+		UNSUPPORTED("region");
 	}
 
 	if(region.dstOffsets[0].x > region.dstOffsets[1].x)
@@ -1892,7 +1892,7 @@
 
 	if(state.srcSamples != 1)
 	{
-		UNIMPLEMENTED("state.srcSamples %d", state.srcSamples);
+		UNSUPPORTED("state.srcSamples %d", state.srcSamples);
 	}
 
 	CornerUpdateFunction function;
@@ -1924,8 +1924,8 @@
 {
 	if(image->getArrayLayers() < (subresourceLayers.baseArrayLayer + 6))
 	{
-		UNIMPLEMENTED("image->getArrayLayers() %d, baseArrayLayer %d",
-		              image->getArrayLayers(), subresourceLayers.baseArrayLayer);
+		UNSUPPORTED("image->getArrayLayers() %d, baseArrayLayer %d",
+		            image->getArrayLayers(), subresourceLayers.baseArrayLayer);
 	}
 
 	// From Vulkan 1.1 spec, section 11.5. Image Views:
@@ -1982,7 +1982,7 @@
 
 	if(samples != VK_SAMPLE_COUNT_1_BIT)
 	{
-		UNIMPLEMENTED("Multi-sampled cube: %d samples", static_cast<int>(samples));
+		UNSUPPORTED("Multi-sampled cube: %d samples", static_cast<int>(samples));
 	}
 
 	auto cornerUpdateRoutine = getCornerUpdateRoutine(state);
diff --git a/src/Device/Context.cpp b/src/Device/Context.cpp
index 5275e67..1303e4c 100644
--- a/src/Device/Context.cpp
+++ b/src/Device/Context.cpp
@@ -43,7 +43,7 @@
 		case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN:
 			return polygonModeAware ? (polygonMode == VK_POLYGON_MODE_POINT) : false;
 		default:
-			UNIMPLEMENTED("topology %d", int(topology));
+			UNSUPPORTED("topology %d", int(topology));
 	}
 	return false;
 }
@@ -62,7 +62,7 @@
 		case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN:
 			return polygonModeAware ? (polygonMode == VK_POLYGON_MODE_LINE) : false;
 		default:
-			UNIMPLEMENTED("topology %d", int(topology));
+			UNSUPPORTED("topology %d", int(topology));
 	}
 	return false;
 }
@@ -80,7 +80,7 @@
 		case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN:
 			return polygonModeAware ? (polygonMode == VK_POLYGON_MODE_FILL) : true;
 		default:
-			UNIMPLEMENTED("topology %d", int(topology));
+			UNSUPPORTED("topology %d", int(topology));
 	}
 	return false;
 }
diff --git a/src/Pipeline/PixelProgram.cpp b/src/Pipeline/PixelProgram.cpp
index 7fd52fa..fff8b93 100644
--- a/src/Pipeline/PixelProgram.cpp
+++ b/src/Pipeline/PixelProgram.cpp
@@ -291,7 +291,7 @@
 				}
 				break;
 			default:
-				UNIMPLEMENTED("VkFormat: %d", int(format));
+				UNSUPPORTED("VkFormat: %d", int(format));
 		}
 	}
 }
@@ -363,7 +363,7 @@
 			case VK_FORMAT_A2R10G10B10_UINT_PACK32:
 				break;
 			default:
-				UNIMPLEMENTED("VkFormat: %d", int(state.targetFormat[index]));
+				UNSUPPORTED("VkFormat: %d", int(state.targetFormat[index]));
 		}
 	}
 }
diff --git a/src/Pipeline/PixelRoutine.cpp b/src/Pipeline/PixelRoutine.cpp
index ffb81b8..dc91691 100644
--- a/src/Pipeline/PixelRoutine.cpp
+++ b/src/Pipeline/PixelRoutine.cpp
@@ -370,7 +370,7 @@
 			value ^= Byte8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF);
 			break;
 		default:
-			UNIMPLEMENTED("VkCompareOp: %d", int(stencilCompareMode));
+			UNSUPPORTED("VkCompareOp: %d", int(stencilCompareMode));
 	}
 }
 
@@ -429,7 +429,7 @@
 			zTest = CmpLT(zValue, Z);
 			break;
 		default:
-			UNIMPLEMENTED("VkCompareOp: %d", int(state.depthCompareMode));
+			UNSUPPORTED("VkCompareOp: %d", int(state.depthCompareMode));
 	}
 
 	switch(state.depthCompareMode)
@@ -512,7 +512,7 @@
 			zTest = Int4(CmpGT(Z, zValue));
 			break;
 		default:
-			UNIMPLEMENTED("VkCompareOp: %d", int(state.depthCompareMode));
+			UNSUPPORTED("VkCompareOp: %d", int(state.depthCompareMode));
 	}
 
 	switch(state.depthCompareMode)
@@ -779,7 +779,7 @@
 			output = bufferValue - Byte8(1, 1, 1, 1, 1, 1, 1, 1);
 			break;
 		default:
-			UNIMPLEMENTED("VkStencilOp: %d", int(operation));
+			UNSUPPORTED("VkStencilOp: %d", int(operation));
 	}
 }
 
@@ -860,7 +860,7 @@
 			blendFactor.z = *Pointer<Short4>(data + OFFSET(DrawData, factor.invBlendConstant4W[3]));
 			break;
 		default:
-			UNIMPLEMENTED("VkBlendFactor: %d", int(blendFactorActive));
+			UNSUPPORTED("VkBlendFactor: %d", int(blendFactorActive));
 	}
 }
 
@@ -910,7 +910,7 @@
 			blendFactor.w = *Pointer<Short4>(data + OFFSET(DrawData, factor.invBlendConstant4W[3]));
 			break;
 		default:
-			UNIMPLEMENTED("VkBlendFactor: %d", int(blendFactorAlphaActive));
+			UNSUPPORTED("VkBlendFactor: %d", int(blendFactorAlphaActive));
 	}
 }
 
@@ -1075,7 +1075,7 @@
 		}
 		break;
 		default:
-			UNIMPLEMENTED("VkFormat %d", state.targetFormat[index]);
+			UNSUPPORTED("VkFormat %d", state.targetFormat[index]);
 	}
 
 	if(isSRGB(index))
@@ -1156,7 +1156,7 @@
 			current.z = Short4(0x0000);
 			break;
 		default:
-			UNIMPLEMENTED("VkBlendOp: %d", int(state.blendState[index].blendOperation));
+			UNSUPPORTED("VkBlendOp: %d", int(state.blendState[index].blendOperation));
 	}
 
 	blendFactorAlpha(sourceFactor, current, pixel, state.blendState[index].sourceBlendFactorAlpha);
@@ -1199,7 +1199,7 @@
 			current.w = Short4(0x0000);
 			break;
 		default:
-			UNIMPLEMENTED("VkBlendOp: %d", int(state.blendState[index].blendOperationAlpha));
+			UNSUPPORTED("VkBlendOp: %d", int(state.blendState[index].blendOperationAlpha));
 	}
 }
 
@@ -1392,7 +1392,7 @@
 			break;
 		}
 		default:
-			UNIMPLEMENTED("VkFormat: %d", int(state.targetFormat[index]));
+			UNSUPPORTED("VkFormat: %d", int(state.targetFormat[index]));
 	}
 
 	Short4 c01 = current.z;
@@ -1704,7 +1704,7 @@
 		}
 		break;
 		default:
-			UNIMPLEMENTED("VkFormat: %d", int(state.targetFormat[index]));
+			UNSUPPORTED("VkFormat: %d", int(state.targetFormat[index]));
 	}
 }
 
@@ -1790,7 +1790,7 @@
 			break;
 
 		default:
-			UNIMPLEMENTED("VkBlendFactor: %d", int(blendFactorActive));
+			UNSUPPORTED("VkBlendFactor: %d", int(blendFactorActive));
 	}
 }
 
@@ -1840,7 +1840,7 @@
 			blendFactor.w = *Pointer<Float4>(data + OFFSET(DrawData, factor.invBlendConstant4F[3]));
 			break;
 		default:
-			UNIMPLEMENTED("VkBlendFactor: %d", int(blendFactorAlphaActive));
+			UNSUPPORTED("VkBlendFactor: %d", int(blendFactorAlphaActive));
 	}
 }
 
@@ -1967,7 +1967,7 @@
 			pixel.w = one;
 			break;
 		default:
-			UNIMPLEMENTED("VkFormat: %d", int(state.targetFormat[index]));
+			UNSUPPORTED("VkFormat: %d", int(state.targetFormat[index]));
 	}
 
 	// Final Color = ObjectColor * SourceBlendFactor + PixelColor * DestinationBlendFactor
@@ -2026,7 +2026,7 @@
 			oC.z = Float4(0.0f);
 			break;
 		default:
-			UNIMPLEMENTED("VkBlendOp: %d", int(state.blendState[index].blendOperation));
+			UNSUPPORTED("VkBlendOp: %d", int(state.blendState[index].blendOperation));
 	}
 
 	blendFactorAlpha(sourceFactor, oC, pixel, state.blendState[index].sourceBlendFactorAlpha);
@@ -2063,7 +2063,7 @@
 			oC.w = Float4(0.0f);
 			break;
 		default:
-			UNIMPLEMENTED("VkBlendOp: %d", int(state.blendState[index].blendOperationAlpha));
+			UNSUPPORTED("VkBlendOp: %d", int(state.blendState[index].blendOperationAlpha));
 	}
 
 	if(format.isUnsignedComponent(0)) { oC.x = Max(oC.x, Float4(0.0f)); }
@@ -2114,7 +2114,7 @@
 			transpose4x4(oC.x, oC.y, oC.z, oC.w);
 			break;
 		default:
-			UNIMPLEMENTED("VkFormat: %d", int(state.targetFormat[index]));
+			UNSUPPORTED("VkFormat: %d", int(state.targetFormat[index]));
 	}
 
 	int rgbaWriteMask = state.colorWriteActive(index);
@@ -2698,7 +2698,7 @@
 			}
 			break;
 		default:
-			UNIMPLEMENTED("VkFormat: %d", int(targetFormat));
+			UNSUPPORTED("VkFormat: %d", int(targetFormat));
 	}
 }
 
diff --git a/src/Pipeline/SamplerCore.cpp b/src/Pipeline/SamplerCore.cpp
index 6026600..ae8e787 100644
--- a/src/Pipeline/SamplerCore.cpp
+++ b/src/Pipeline/SamplerCore.cpp
@@ -2031,7 +2031,7 @@
 				break;
 			}
 			default:
-				UNIMPLEMENTED("Format %d", VkFormat(state.textureFormat));
+				UNSUPPORTED("Format %d", VkFormat(state.textureFormat));
 		}
 	}
 	else
@@ -2142,7 +2142,7 @@
 			borderA = Int4(1);
 			break;
 		default:
-			UNIMPLEMENTED("sint/uint/sfloat border: %u", state.border);
+			UNSUPPORTED("sint/uint/sfloat border: %u", state.border);
 	}
 
 	Vector4f out;
diff --git a/src/Pipeline/SpirvShader.cpp b/src/Pipeline/SpirvShader.cpp
index 0da463c..95457fb 100644
--- a/src/Pipeline/SpirvShader.cpp
+++ b/src/Pipeline/SpirvShader.cpp
@@ -272,7 +272,7 @@
 					}
 					case spv::StorageClassAtomicCounter:
 					case spv::StorageClassImage:
-						UNIMPLEMENTED("StorageClass %d not yet implemented", (int)storageClass);
+						UNSUPPORTED("StorageClass %d not yet implemented", (int)storageClass);
 						break;
 
 					case spv::StorageClassCrossWorkgroup:
@@ -722,7 +722,7 @@
 			}
 
 			default:
-				UNIMPLEMENTED("%s", OpcodeName(opcode).c_str());
+				UNSUPPORTED("%s", OpcodeName(opcode).c_str());
 		}
 	}
 
diff --git a/src/Pipeline/SpirvShaderControlFlow.cpp b/src/Pipeline/SpirvShaderControlFlow.cpp
index 824e468..bcaa473 100644
--- a/src/Pipeline/SpirvShaderControlFlow.cpp
+++ b/src/Pipeline/SpirvShaderControlFlow.cpp
@@ -581,12 +581,12 @@
 		{
 			if(insnNumber > 1)
 			{
-				UNIMPLEMENTED("Function block number of instructions: %d", insnNumber);
+				UNSUPPORTED("Function block number of instructions: %d", insnNumber);
 				return EmitResult::Continue;
 			}
 			if(blockInsn.opcode() != wrapOpKill[insnNumber++])
 			{
-				UNIMPLEMENTED("Function block instruction %d : %s", insnNumber - 1, OpcodeName(blockInsn.opcode()).c_str());
+				UNSUPPORTED("Function block instruction %d : %s", insnNumber - 1, OpcodeName(blockInsn.opcode()).c_str());
 				return EmitResult::Continue;
 			}
 			if(blockInsn.opcode() == spv::OpKill)
diff --git a/src/Pipeline/SpirvShaderGroup.cpp b/src/Pipeline/SpirvShaderGroup.cpp
index 97bdd6c..2345ab9 100644
--- a/src/Pipeline/SpirvShaderGroup.cpp
+++ b/src/Pipeline/SpirvShaderGroup.cpp
@@ -69,8 +69,8 @@
 					break;
 				}
 				default:
-					UNIMPLEMENTED("EmitGroupNonUniform op: %s Group operation: %d",
-					              SpirvShader::OpcodeName(type.opcode()).c_str(), insn.word(4));
+					UNSUPPORTED("EmitGroupNonUniform op: %s Group operation: %d",
+					            SpirvShader::OpcodeName(type.opcode()).c_str(), insn.word(4));
 			}
 		}
 	}
@@ -422,7 +422,7 @@
 			break;
 
 		default:
-			UNIMPLEMENTED("EmitGroupNonUniform op: %s", OpcodeName(type.opcode()).c_str());
+			UNSUPPORTED("EmitGroupNonUniform op: %s", OpcodeName(type.opcode()).c_str());
 	}
 	return EmitResult::Continue;
 }
diff --git a/src/Pipeline/SpirvShaderImage.cpp b/src/Pipeline/SpirvShaderImage.cpp
index 40ed41f..4321537 100644
--- a/src/Pipeline/SpirvShaderImage.cpp
+++ b/src/Pipeline/SpirvShaderImage.cpp
@@ -48,7 +48,7 @@
 		case spv::ImageFormatRg16ui: return VK_FORMAT_R16G16_UINT;
 
 		default:
-			UNIMPLEMENTED("SPIR-V ImageFormat %u", format);
+			UNSUPPORTED("SPIR-V ImageFormat %u", format);
 			return VK_FORMAT_UNDEFINED;
 	}
 }
@@ -95,7 +95,8 @@
 		return EmitImageSample({ variant, Grad }, insn, state);
 	}
 	else
-		UNIMPLEMENTED("Image Operands %x", imageOperands);
+		UNSUPPORTED("Image Operands %x", imageOperands);
+
 	return EmitResult::Continue;
 }
 
@@ -836,7 +837,7 @@
 			dst.move(3, SIMD::Float((packed[0] >> 15) & SIMD::Int(0x1)));
 			break;
 		default:
-			UNIMPLEMENTED("VkFormat %d", int(vkFormat));
+			UNSUPPORTED("VkFormat %d", int(vkFormat));
 			break;
 	}
 
@@ -969,7 +970,7 @@
 		case spv::ImageFormatRg8ui:
 		case spv::ImageFormatR16ui:
 		case spv::ImageFormatR8ui:
-			UNIMPLEMENTED("spv::ImageFormat %d", int(format));
+			UNSUPPORTED("spv::ImageFormat %d", int(format));
 			break;
 
 		default:
diff --git a/src/Pipeline/SpirvShaderMemory.cpp b/src/Pipeline/SpirvShaderMemory.cpp
index 8df565f..031ae7c 100644
--- a/src/Pipeline/SpirvShaderMemory.cpp
+++ b/src/Pipeline/SpirvShaderMemory.cpp
@@ -225,7 +225,7 @@
 		Object::ID initializerId = insn.word(4);
 		if(getObject(initializerId).kind != Object::Kind::Constant)
 		{
-			UNIMPLEMENTED("Non-constant initializers not yet implemented");
+			UNSUPPORTED("Non-constant initializers not yet implemented");
 		}
 		switch(objectTy.storageClass)
 		{
diff --git a/src/Pipeline/SpirvShaderSampling.cpp b/src/Pipeline/SpirvShaderSampling.cpp
index 96837a9..e656a78 100644
--- a/src/Pipeline/SpirvShaderSampling.cpp
+++ b/src/Pipeline/SpirvShaderSampling.cpp
@@ -237,7 +237,7 @@
 				case VK_FILTER_NEAREST: return FILTER_POINT;
 				case VK_FILTER_LINEAR: return FILTER_MIN_LINEAR_MAG_POINT;
 				default:
-					UNIMPLEMENTED("minFilter %d", sampler->minFilter);
+					UNSUPPORTED("minFilter %d", sampler->minFilter);
 					return FILTER_POINT;
 			}
 			break;
@@ -247,7 +247,7 @@
 				case VK_FILTER_NEAREST: return FILTER_MIN_POINT_MAG_LINEAR;
 				case VK_FILTER_LINEAR: return FILTER_LINEAR;
 				default:
-					UNIMPLEMENTED("minFilter %d", sampler->minFilter);
+					UNSUPPORTED("minFilter %d", sampler->minFilter);
 					return FILTER_POINT;
 			}
 			break;
@@ -255,7 +255,7 @@
 			break;
 	}
 
-	UNIMPLEMENTED("magFilter %d", sampler->magFilter);
+	UNSUPPORTED("magFilter %d", sampler->magFilter);
 	return FILTER_POINT;
 }
 
@@ -276,7 +276,7 @@
 		case VK_SAMPLER_MIPMAP_MODE_NEAREST: return MIPMAP_POINT;
 		case VK_SAMPLER_MIPMAP_MODE_LINEAR: return MIPMAP_LINEAR;
 		default:
-			UNIMPLEMENTED("mipmapMode %d", sampler->mipmapMode);
+			UNSUPPORTED("mipmapMode %d", sampler->mipmapMode);
 			return MIPMAP_POINT;
 	}
 }
@@ -354,7 +354,7 @@
 			break;
 
 		default:
-			UNIMPLEMENTED("imageViewType %d", imageViewType);
+			UNSUPPORTED("imageViewType %d", imageViewType);
 			return ADDRESSING_WRAP;
 	}
 
@@ -387,7 +387,7 @@
 		case VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER: return ADDRESSING_BORDER;
 		case VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE: return ADDRESSING_MIRRORONCE;
 		default:
-			UNIMPLEMENTED("addressMode %d", addressMode);
+			UNSUPPORTED("addressMode %d", addressMode);
 			return ADDRESSING_WRAP;
 	}
 }
diff --git a/src/Vulkan/VkCommandBuffer.cpp b/src/Vulkan/VkCommandBuffer.cpp
index 9f38549..414e748 100644
--- a/src/Vulkan/VkCommandBuffer.cpp
+++ b/src/Vulkan/VkCommandBuffer.cpp
@@ -555,7 +555,7 @@
 			ASSERT(executionState.dynamicState.maxDepthBounds >= 0.0f &&
 			       executionState.dynamicState.maxDepthBounds <= 1.0f);
 
-			UNIMPLEMENTED("depthBoundsTestEnable");
+			UNSUPPORTED("depthBoundsTestEnable");
 		}
 		if(pipeline->hasDynamicState(VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK) && context.stencilEnable)
 		{
@@ -593,7 +593,7 @@
 						processPrimitiveRestart(static_cast<uint32_t *>(indexBuffer), count, pipeline, indexBuffers);
 						break;
 					default:
-						UNIMPLEMENTED("executionState.indexType %d", int(executionState.indexType));
+						UNSUPPORTED("executionState.indexType %d", int(executionState.indexType));
 				}
 			}
 			else
@@ -1427,7 +1427,7 @@
 			addCommand<::CmdPipelineBind>(pipelineBindPoint, pipeline);
 			break;
 		default:
-			UNIMPLEMENTED("pipelineBindPoint");
+			UNSUPPORTED("pipelineBindPoint");
 	}
 }
 
@@ -1476,7 +1476,7 @@
 {
 	if(firstViewport != 0 || viewportCount > 1)
 	{
-		UNIMPLEMENTED("viewport");
+		UNSUPPORTED("viewport");
 	}
 
 	for(uint32_t i = 0; i < viewportCount; i++)
@@ -1489,7 +1489,7 @@
 {
 	if(firstScissor != 0 || scissorCount > 1)
 	{
-		UNIMPLEMENTED("scissor");
+		UNSUPPORTED("scissor");
 	}
 
 	for(uint32_t i = 0; i < scissorCount; i++)
diff --git a/src/Vulkan/VkDescriptorSetLayout.cpp b/src/Vulkan/VkDescriptorSetLayout.cpp
index 5e45d81..704f6f8 100644
--- a/src/Vulkan/VkDescriptorSetLayout.cpp
+++ b/src/Vulkan/VkDescriptorSetLayout.cpp
@@ -108,7 +108,7 @@
 		case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC:
 			return sizeof(BufferDescriptor);
 		default:
-			UNIMPLEMENTED("Unsupported Descriptor Type");
+			UNSUPPORTED("Unsupported Descriptor Type");
 			return 0;
 	}
 }
@@ -619,7 +619,7 @@
 			break;
 
 		default:
-			UNIMPLEMENTED("descriptor type %u", writeDescriptorSet.descriptorType);
+			UNSUPPORTED("descriptor type %u", writeDescriptorSet.descriptorType);
 	}
 
 	WriteDescriptorSet(device, dstSet, e, reinterpret_cast<char const *>(ptr));
diff --git a/src/Vulkan/VkDevice.cpp b/src/Vulkan/VkDevice.cpp
index 8a92ac3..901a511 100644
--- a/src/Vulkan/VkDevice.cpp
+++ b/src/Vulkan/VkDevice.cpp
@@ -93,7 +93,7 @@
 	if(pCreateInfo->enabledLayerCount)
 	{
 		// "The ppEnabledLayerNames and enabledLayerCount members of VkDeviceCreateInfo are deprecated and their values must be ignored by implementations."
-		UNIMPLEMENTED("enabledLayerCount");  // TODO(b/119321052): UNIMPLEMENTED() should be used only for features that must still be implemented. Use a more informational macro here.
+		UNSUPPORTED("enabledLayerCount");  // TODO(b/119321052): UNSUPPORTED() should be used only for features that must still be implemented. Use a more informational macro here.
 	}
 
 	// FIXME (b/119409619): use an allocator here so we can control all memory allocations
diff --git a/src/Vulkan/VkDeviceMemoryExternalAndroid.hpp b/src/Vulkan/VkDeviceMemoryExternalAndroid.hpp
index 6cd2c93..281773b 100644
--- a/src/Vulkan/VkDeviceMemoryExternalAndroid.hpp
+++ b/src/Vulkan/VkDeviceMemoryExternalAndroid.hpp
@@ -55,7 +55,7 @@
 
 						if(exportInfo->handleTypes != VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID)
 						{
-							UNIMPLEMENTED("exportInfo->handleTypes");
+							UNSUPPORTED("exportInfo->handleTypes");
 						}
 						exportAhb = true;
 					}
@@ -146,7 +146,7 @@
 
 	static VkResult getAhbProperties(const struct AHardwareBuffer *buffer, VkAndroidHardwareBufferPropertiesANDROID *pProperties)
 	{
-		UNIMPLEMENTED("getAhbProperties");
+		UNSUPPORTED("getAhbProperties");
 		return VK_SUCCESS;
 	}
 
diff --git a/src/Vulkan/VkDeviceMemoryExternalLinux.hpp b/src/Vulkan/VkDeviceMemoryExternalLinux.hpp
index 89dd4f9..b85aecd 100644
--- a/src/Vulkan/VkDeviceMemoryExternalLinux.hpp
+++ b/src/Vulkan/VkDeviceMemoryExternalLinux.hpp
@@ -47,7 +47,7 @@
 
 						if(importInfo->handleType != VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT)
 						{
-							UNIMPLEMENTED("importInfo->handleType");
+							UNSUPPORTED("importInfo->handleType");
 						}
 						importFd = true;
 						fd = importInfo->fd;
@@ -59,7 +59,7 @@
 
 						if(exportInfo->handleTypes != VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT)
 						{
-							UNIMPLEMENTED("exportInfo->handleTypes");
+							UNSUPPORTED("exportInfo->handleTypes");
 						}
 						exportFd = true;
 					}
diff --git a/src/Vulkan/VkFormat.cpp b/src/Vulkan/VkFormat.cpp
index edd8f12..8eddb9c 100644
--- a/src/Vulkan/VkFormat.cpp
+++ b/src/Vulkan/VkFormat.cpp
@@ -454,7 +454,7 @@
 		case VK_FORMAT_D32_SFLOAT_S8_UINT:
 			return true;
 		default:
-			UNIMPLEMENTED("Format: %d", int(format));
+			UNSUPPORTED("Format: %d", int(format));
 	}
 
 	return false;
@@ -578,7 +578,7 @@
 		case VK_FORMAT_BC5_SNORM_BLOCK:
 			return VK_FORMAT_R8G8_SNORM;
 		default:
-			UNIMPLEMENTED("format: %d", int(format));
+			UNSUPPORTED("format: %d", int(format));
 			return VK_FORMAT_UNDEFINED;
 	}
 }
@@ -1266,7 +1266,7 @@
 		case VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK:
 			return 4;
 		default:
-			UNIMPLEMENTED("Format: %d", int(format));
+			UNSUPPORTED("Format: %d", int(format));
 	}
 
 	return 1;
@@ -1439,7 +1439,7 @@
 		case VK_FORMAT_R64G64B64_SFLOAT:
 			return component >= 3;
 		default:
-			UNIMPLEMENTED("Format: %d", int(format));
+			UNSUPPORTED("Format: %d", int(format));
 	}
 
 	return false;
@@ -1665,7 +1665,7 @@
 			// TODO: ASSERT to ensure this is only called per-aspect?
 			return 1;  // Y plane only
 		default:
-			UNIMPLEMENTED("Format: %d", int(format));
+			UNSUPPORTED("Format: %d", int(format));
 	}
 
 	return 0;
@@ -2032,7 +2032,7 @@
 		case VK_FORMAT_S8_UINT:
 			return false;
 		default:
-			UNIMPLEMENTED("Format: %d", int(format));
+			UNSUPPORTED("Format: %d", int(format));
 	}
 
 	return false;
@@ -2100,7 +2100,7 @@
 		case VK_FORMAT_D16_UNORM:
 			return false;
 		default:
-			UNIMPLEMENTED("Format: %d", int(format));
+			UNSUPPORTED("Format: %d", int(format));
 	}
 
 	return false;
@@ -2168,7 +2168,7 @@
 		case VK_FORMAT_D16_UNORM:
 			return true;
 		default:
-			UNIMPLEMENTED("Format: %d", int(format));
+			UNSUPPORTED("Format: %d", int(format));
 	}
 
 	return false;
@@ -2236,7 +2236,7 @@
 		case VK_FORMAT_R32G32B32A32_UINT:
 			return true;
 		default:
-			UNIMPLEMENTED("Format: %d", int(format));
+			UNSUPPORTED("Format: %d", int(format));
 	}
 
 	return false;
@@ -2303,7 +2303,7 @@
 		case VK_FORMAT_S8_UINT:
 			return false;
 		default:
-			UNIMPLEMENTED("Format: %d", int(format));
+			UNSUPPORTED("Format: %d", int(format));
 	}
 
 	return false;
diff --git a/src/Vulkan/VkImage.cpp b/src/Vulkan/VkImage.cpp
index b1e7916..0cdd5ca 100644
--- a/src/Vulkan/VkImage.cpp
+++ b/src/Vulkan/VkImage.cpp
@@ -49,7 +49,7 @@
 		case VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK:
 			return ETC_Decoder::ETC_RGBA;
 		default:
-			UNIMPLEMENTED("format: %d", int(format));
+			UNSUPPORTED("format: %d", int(format));
 			return ETC_Decoder::ETC_RGBA;
 	}
 }
@@ -76,7 +76,7 @@
 		case VK_FORMAT_BC5_SNORM_BLOCK:
 			return 5;
 		default:
-			UNIMPLEMENTED("format: %d", int(format));
+			UNSUPPORTED("format: %d", int(format));
 			return 0;
 	}
 }
@@ -103,7 +103,7 @@
 		case VK_FORMAT_BC5_SNORM_BLOCK:
 			return false;
 		default:
-			UNIMPLEMENTED("format: %d", int(format));
+			UNSUPPORTED("format: %d", int(format));
 			return false;
 	}
 }
@@ -894,7 +894,7 @@
 {
 	if(!(subresourceRange.aspectMask == VK_IMAGE_ASPECT_COLOR_BIT))
 	{
-		UNIMPLEMENTED("aspectMask");
+		UNSUPPORTED("aspectMask");
 	}
 
 	device->getBlitter()->clear((void *)color.float32, getClearFormat(), this, format, subresourceRange);
@@ -905,7 +905,7 @@
 	if((subresourceRange.aspectMask & ~(VK_IMAGE_ASPECT_DEPTH_BIT |
 	                                    VK_IMAGE_ASPECT_STENCIL_BIT)) != 0)
 	{
-		UNIMPLEMENTED("aspectMask");
+		UNSUPPORTED("aspectMask");
 	}
 
 	if(subresourceRange.aspectMask & VK_IMAGE_ASPECT_DEPTH_BIT)
@@ -929,7 +929,7 @@
 	     (subresourceRange.aspectMask & (VK_IMAGE_ASPECT_DEPTH_BIT |
 	                                     VK_IMAGE_ASPECT_STENCIL_BIT))))
 	{
-		UNIMPLEMENTED("subresourceRange");
+		UNSUPPORTED("subresourceRange");
 	}
 
 	if(subresourceRange.aspectMask == VK_IMAGE_ASPECT_COLOR_BIT)
diff --git a/src/Vulkan/VkImageView.cpp b/src/Vulkan/VkImageView.cpp
index cc1d558..8f065fe 100644
--- a/src/Vulkan/VkImageView.cpp
+++ b/src/Vulkan/VkImageView.cpp
@@ -120,12 +120,12 @@
 
 	if(!imageTypesMatch(image->getImageType()))
 	{
-		UNIMPLEMENTED("imageTypesMatch");
+		UNSUPPORTED("imageTypesMatch");
 	}
 
 	if(!format.isCompatible(image->getFormat()))
 	{
-		UNIMPLEMENTED("incompatible formats");
+		UNSUPPORTED("incompatible formats");
 	}
 
 	VkImageSubresourceRange sr = subresourceRange;
@@ -139,12 +139,12 @@
 
 	if(!imageTypesMatch(image->getImageType()))
 	{
-		UNIMPLEMENTED("imageTypesMatch");
+		UNSUPPORTED("imageTypesMatch");
 	}
 
 	if(!format.isCompatible(image->getFormat()))
 	{
-		UNIMPLEMENTED("incompatible formats");
+		UNSUPPORTED("incompatible formats");
 	}
 
 	VkImageSubresourceRange sr;
@@ -173,7 +173,7 @@
 {
 	if((subresourceRange.levelCount != 1) || (resolveAttachment->subresourceRange.levelCount != 1))
 	{
-		UNIMPLEMENTED("levelCount");
+		UNSUPPORTED("levelCount");
 	}
 
 	VkImageCopy region;
@@ -201,7 +201,7 @@
 {
 	if((subresourceRange.levelCount != 1) || (resolveAttachment->subresourceRange.levelCount != 1))
 	{
-		UNIMPLEMENTED("levelCount");
+		UNSUPPORTED("levelCount");
 	}
 
 	VkImageCopy region;
@@ -244,7 +244,7 @@
 		case SAMPLING:
 			return image->getSampledImage(format);
 		default:
-			UNIMPLEMENTED("usage %d", int(usage));
+			UNSUPPORTED("usage %d", int(usage));
 			return nullptr;
 	}
 }
diff --git a/src/Vulkan/VkImageView.hpp b/src/Vulkan/VkImageView.hpp
index 73fdcc6..20df400 100644
--- a/src/Vulkan/VkImageView.hpp
+++ b/src/Vulkan/VkImageView.hpp
@@ -66,7 +66,7 @@
 			case VK_SAMPLE_COUNT_1_BIT: return 1;
 			case VK_SAMPLE_COUNT_4_BIT: return 4;
 			default:
-				UNIMPLEMENTED("Sample count flags %d", image->getSampleCountFlagBits());
+				UNSUPPORTED("Sample count flags %d", image->getSampleCountFlagBits());
 				return 1;
 		}
 	}
diff --git a/src/Vulkan/VkPipeline.cpp b/src/Vulkan/VkPipeline.cpp
index cdf4873..19ab8a3 100644
--- a/src/Vulkan/VkPipeline.cpp
+++ b/src/Vulkan/VkPipeline.cpp
@@ -155,7 +155,7 @@
 	       VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT)) != 0) ||
 	   (pCreateInfo->pTessellationState != nullptr))
 	{
-		UNIMPLEMENTED("pCreateInfo settings");
+		UNSUPPORTED("pCreateInfo settings");
 	}
 
 	if(pCreateInfo->pDynamicState)
@@ -178,7 +178,7 @@
 					dynamicStateFlags |= (1 << dynamicState);
 					break;
 				default:
-					UNIMPLEMENTED("dynamic state");
+					UNSUPPORTED("dynamic state");
 			}
 		}
 	}
@@ -186,7 +186,7 @@
 	const VkPipelineVertexInputStateCreateInfo *vertexInputState = pCreateInfo->pVertexInputState;
 	if(vertexInputState->flags != 0)
 	{
-		UNIMPLEMENTED("vertexInputState->flags");
+		UNSUPPORTED("vertexInputState->flags");
 	}
 
 	// Context must always have a PipelineLayout set.
@@ -217,7 +217,7 @@
 	const VkPipelineInputAssemblyStateCreateInfo *assemblyState = pCreateInfo->pInputAssemblyState;
 	if(assemblyState->flags != 0)
 	{
-		UNIMPLEMENTED("pCreateInfo->pInputAssemblyState settings");
+		UNSUPPORTED("pCreateInfo->pInputAssemblyState settings");
 	}
 
 	primitiveRestartEnable = (assemblyState->primitiveRestartEnable != VK_FALSE);
@@ -230,7 +230,7 @@
 		   (viewportState->viewportCount != 1) ||
 		   (viewportState->scissorCount != 1))
 		{
-			UNIMPLEMENTED("pCreateInfo->pViewportState settings");
+			UNSUPPORTED("pCreateInfo->pViewportState settings");
 		}
 
 		if(!hasDynamicState(VK_DYNAMIC_STATE_SCISSOR))
@@ -248,7 +248,7 @@
 	if((rasterizationState->flags != 0) ||
 	   (rasterizationState->depthClampEnable != VK_FALSE))
 	{
-		UNIMPLEMENTED("pCreateInfo->pRasterizationState settings");
+		UNSUPPORTED("pCreateInfo->pRasterizationState settings");
 	}
 
 	context.rasterizerDiscard = (rasterizationState->rasterizerDiscardEnable != VK_FALSE);
@@ -299,7 +299,7 @@
 				context.sampleCount = 4;
 				break;
 			default:
-				UNIMPLEMENTED("Unsupported sample count");
+				UNSUPPORTED("Unsupported sample count");
 		}
 
 		if(multisampleState->pSampleMask)
@@ -313,7 +313,7 @@
 		   (multisampleState->sampleShadingEnable != VK_FALSE) ||
 		   (multisampleState->alphaToOneEnable != VK_FALSE))
 		{
-			UNIMPLEMENTED("multisampleState");
+			UNSUPPORTED("multisampleState");
 		}
 	}
 	else
@@ -327,7 +327,7 @@
 		if((depthStencilState->flags != 0) ||
 		   (depthStencilState->depthBoundsTestEnable != VK_FALSE))
 		{
-			UNIMPLEMENTED("depthStencilState");
+			UNSUPPORTED("depthStencilState");
 		}
 
 		context.depthBoundsTestEnable = (depthStencilState->depthBoundsTestEnable != VK_FALSE);
@@ -349,7 +349,7 @@
 		if((colorBlendState->flags != 0) ||
 		   ((colorBlendState->logicOpEnable != VK_FALSE)))
 		{
-			UNIMPLEMENTED("colorBlendState");
+			UNSUPPORTED("colorBlendState");
 		}
 
 		if(!hasDynamicState(VK_DYNAMIC_STATE_BLEND_CONSTANTS))
@@ -427,7 +427,7 @@
 	{
 		if(pStage->flags != 0)
 		{
-			UNIMPLEMENTED("pStage->flags");
+			UNSUPPORTED("pStage->flags");
 		}
 
 		const ShaderModule *module = vk::Cast(pStage->module);
@@ -479,7 +479,7 @@
 		case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN:
 			return std::max<uint32_t>(vertexCount, 2) - 2;
 		default:
-			UNIMPLEMENTED("context.topology %d", int(context.topology));
+			UNSUPPORTED("context.topology %d", int(context.topology));
 	}
 
 	return 0;
diff --git a/src/Vulkan/VkQueryPool.cpp b/src/Vulkan/VkQueryPool.cpp
index 8dbfb26..9330b08 100644
--- a/src/Vulkan/VkQueryPool.cpp
+++ b/src/Vulkan/VkQueryPool.cpp
@@ -100,7 +100,7 @@
 	//  pipelineStatistics member of the VkQueryPoolCreateInfo structure."
 	if(type == VK_QUERY_TYPE_PIPELINE_STATISTICS)
 	{
-		UNIMPLEMENTED("pCreateInfo->queryType");
+		UNSUPPORTED("pCreateInfo->queryType");
 	}
 
 	// Construct all queries
@@ -189,7 +189,7 @@
 
 	if(flags != 0)
 	{
-		UNIMPLEMENTED("flags");
+		UNSUPPORTED("flags");
 	}
 
 	pool[query].prepare(type);
diff --git a/src/Vulkan/VkQueue.cpp b/src/Vulkan/VkQueue.cpp
index 55ce531..56434a9 100644
--- a/src/Vulkan/VkQueue.cpp
+++ b/src/Vulkan/VkQueue.cpp
@@ -178,7 +178,7 @@
 				submitQueue(task);
 				break;
 			default:
-				UNIMPLEMENTED("task.type %d", static_cast<int>(task.type));
+				UNSUPPORTED("task.type %d", static_cast<int>(task.type));
 				break;
 		}
 	}
diff --git a/src/Vulkan/VkSemaphore.cpp b/src/Vulkan/VkSemaphore.cpp
index 31eb5fd..efc6c4c 100644
--- a/src/Vulkan/VkSemaphore.cpp
+++ b/src/Vulkan/VkSemaphore.cpp
@@ -56,7 +56,7 @@
 				exportSemaphore = true;
 				if(exportInfo->handleTypes != Semaphore::External::kExternalSemaphoreHandleType)
 				{
-					UNIMPLEMENTED("exportInfo->handleTypes");
+					UNSUPPORTED("exportInfo->handleTypes");
 				}
 				break;
 			}
diff --git a/src/Vulkan/libVulkan.cpp b/src/Vulkan/libVulkan.cpp
index 7ad1de9..1dfe97f 100644
--- a/src/Vulkan/libVulkan.cpp
+++ b/src/Vulkan/libVulkan.cpp
@@ -267,7 +267,7 @@
 
 	if(pCreateInfo->enabledLayerCount)
 	{
-		UNIMPLEMENTED("pCreateInfo->enabledLayerCount");
+		UNSUPPORTED("pCreateInfo->enabledLayerCount");
 	}
 
 	uint32_t extensionPropertiesCount = sizeof(instanceExtensionProperties) / sizeof(instanceExtensionProperties[0]);
@@ -371,7 +371,7 @@
 			break;
 
 		default:
-			UNIMPLEMENTED("tiling");
+			UNSUPPORTED("tiling");
 			features = 0;
 	}
 
@@ -507,7 +507,7 @@
 	if(pCreateInfo->enabledLayerCount)
 	{
 		// "The ppEnabledLayerNames and enabledLayerCount members of VkDeviceCreateInfo are deprecated and their values must be ignored by implementations."
-		UNIMPLEMENTED("pCreateInfo->enabledLayerCount");  // TODO(b/119321052): UNIMPLEMENTED() should be used only for features that must still be implemented. Use a more informational macro here.
+		UNSUPPORTED("pCreateInfo->enabledLayerCount");
 	}
 
 	uint32_t extensionPropertiesCount = sizeof(deviceExtensionProperties) / sizeof(deviceExtensionProperties[0]);
@@ -662,7 +662,7 @@
 		const VkDeviceQueueCreateInfo &queueCreateInfo = pCreateInfo->pQueueCreateInfos[i];
 		if(queueCreateInfo.flags)
 		{
-			UNIMPLEMENTED("queueCreateInfo.flags");
+			UNSUPPORTED("queueCreateInfo.flags");
 		}
 
 		auto extInfo = reinterpret_cast<VkBaseInStructure const *>(queueCreateInfo.pNext);
@@ -1052,7 +1052,7 @@
 VKAPI_ATTR VkResult VKAPI_CALL vkQueueBindSparse(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo *pBindInfo, VkFence fence)
 {
 	TRACE("()");
-	UNIMPLEMENTED("vkQueueBindSparse");
+	UNSUPPORTED("vkQueueBindSparse");
 	return VK_SUCCESS;
 }
 
@@ -1114,7 +1114,7 @@
 
 	if(pCreateInfo->flags)
 	{
-		UNIMPLEMENTED("pCreateInfo->flags");
+		UNSUPPORTED("pCreateInfo->flags");
 	}
 
 	return vk::Semaphore::Create(pAllocator, pCreateInfo, pSemaphore, pAllocator);
@@ -1136,7 +1136,7 @@
 
 	if(pGetFdInfo->handleType != VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT)
 	{
-		UNIMPLEMENTED("pGetFdInfo->handleType");
+		UNSUPPORTED("pGetFdInfo->handleType");
 	}
 
 	return vk::Cast(pGetFdInfo->semaphore)->exportFd(pFd);
@@ -1149,7 +1149,7 @@
 
 	if(pImportSemaphoreInfo->handleType != VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT)
 	{
-		UNIMPLEMENTED("pImportSemaphoreInfo->handleType");
+		UNSUPPORTED("pImportSemaphoreInfo->handleType");
 	}
 	bool temporaryImport = (pImportSemaphoreInfo->flags & VK_SEMAPHORE_IMPORT_TEMPORARY_BIT) != 0;
 
@@ -1167,7 +1167,7 @@
 
 	if(pImportSemaphoreZirconHandleInfo->handleType != VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_TEMP_ZIRCON_EVENT_BIT_FUCHSIA)
 	{
-		UNIMPLEMENTED("pImportSemaphoreZirconHandleInfo->handleType");
+		UNSUPPORTED("pImportSemaphoreZirconHandleInfo->handleType");
 	}
 	bool temporaryImport = (pImportSemaphoreZirconHandleInfo->flags & VK_SEMAPHORE_IMPORT_TEMPORARY_BIT) != 0;
 
@@ -1184,7 +1184,7 @@
 
 	if(pGetZirconHandleInfo->handleType != VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_TEMP_ZIRCON_EVENT_BIT_FUCHSIA)
 	{
-		UNIMPLEMENTED("pGetZirconHandleInfo->handleType");
+		UNSUPPORTED("pGetZirconHandleInfo->handleType");
 	}
 
 	return vk::Cast(pGetZirconHandleInfo->semaphore)->exportHandle(pZirconHandle);
@@ -1198,7 +1198,7 @@
 
 	if(pCreateInfo->flags)
 	{
-		UNIMPLEMENTED("pCreateInfo->flags");
+		UNSUPPORTED("pCreateInfo->flags");
 	}
 
 	auto extInfo = reinterpret_cast<VkBaseInStructure const *>(pCreateInfo->pNext);
@@ -1251,7 +1251,7 @@
 
 	if(pCreateInfo->flags)
 	{
-		UNIMPLEMENTED("pCreateInfo->flags");
+		UNSUPPORTED("pCreateInfo->flags");
 	}
 
 	auto extInfo = reinterpret_cast<VkBaseInStructure const *>(pCreateInfo->pNext);
@@ -1318,7 +1318,7 @@
 
 	if(pCreateInfo->flags)
 	{
-		UNIMPLEMENTED("pCreateInfo->flags");
+		UNSUPPORTED("pCreateInfo->flags");
 	}
 
 	auto extInfo = reinterpret_cast<VkBaseInStructure const *>(pCreateInfo->pNext);
@@ -1452,7 +1452,7 @@
 
 	if(pCreateInfo->flags)
 	{
-		UNIMPLEMENTED("pCreateInfo->flags");
+		UNSUPPORTED("pCreateInfo->flags");
 	}
 
 	const VkBaseInStructure *extensionCreateInfo = reinterpret_cast<const VkBaseInStructure *>(pCreateInfo->pNext);
@@ -1508,7 +1508,7 @@
 
 	if(pCreateInfo->flags)
 	{
-		UNIMPLEMENTED("pCreateInfo->flags");
+		UNSUPPORTED("pCreateInfo->flags");
 	}
 
 	auto *nextInfo = reinterpret_cast<const VkBaseInStructure *>(pCreateInfo->pNext);
@@ -1536,7 +1536,7 @@
 
 	if(pCreateInfo->flags)
 	{
-		UNIMPLEMENTED("pCreateInfo->flags");
+		UNSUPPORTED("pCreateInfo->flags");
 	}
 
 	auto extInfo = reinterpret_cast<VkBaseInStructure const *>(pCreateInfo->pNext);
@@ -1652,7 +1652,7 @@
 
 	if(pCreateInfo->flags)
 	{
-		UNIMPLEMENTED("pCreateInfo->flags");
+		UNSUPPORTED("pCreateInfo->flags");
 	}
 
 	auto *nextInfo = reinterpret_cast<const VkBaseInStructure *>(pCreateInfo->pNext);
@@ -1680,7 +1680,7 @@
 
 	if(pCreateInfo->flags)
 	{
-		UNIMPLEMENTED("pCreateInfo->flags");
+		UNSUPPORTED("pCreateInfo->flags");
 	}
 
 	const VkBaseInStructure *extensionCreateInfo = reinterpret_cast<const VkBaseInStructure *>(pCreateInfo->pNext);
@@ -1778,7 +1778,7 @@
 
 	if(flags)
 	{
-		UNIMPLEMENTED("flags");
+		UNSUPPORTED("flags");
 	}
 
 	return vk::Cast(descriptorPool)->reset();
@@ -1824,7 +1824,7 @@
 
 	if(pCreateInfo->flags)
 	{
-		UNIMPLEMENTED("pCreateInfo->flags");
+		UNSUPPORTED("pCreateInfo->flags");
 	}
 
 	auto *nextInfo = reinterpret_cast<const VkBaseInStructure *>(pCreateInfo->pNext);
@@ -1852,7 +1852,7 @@
 
 	if(pCreateInfo->flags)
 	{
-		UNIMPLEMENTED("pCreateInfo->flags");
+		UNSUPPORTED("pCreateInfo->flags");
 	}
 
 	const VkBaseInStructure *extensionCreateInfo = reinterpret_cast<const VkBaseInStructure *>(pCreateInfo->pNext);
@@ -3033,7 +3033,7 @@
 
 	if(pCreateInfo->flags || (pCreateInfo->templateType != VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET))
 	{
-		UNIMPLEMENTED("pCreateInfo->flags || (pCreateInfo->templateType != VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET)");
+		UNSUPPORTED("pCreateInfo->flags || (pCreateInfo->templateType != VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET)");
 	}
 
 	auto extInfo = reinterpret_cast<VkBaseInStructure const *>(pCreateInfo->pNext);
@@ -3099,7 +3099,7 @@
 	TRACE("(VkCommandBuffer commandBuffer = %p, uint32_t lineStippleFactor = %u, uint16_t lineStipplePattern = %u",
 	      commandBuffer, lineStippleFactor, lineStipplePattern);
 
-	UNIMPLEMENTED("Line stipple not supported");
+	UNSUPPORTED("Line stipple not supported");
 }
 
 #ifdef VK_USE_PLATFORM_XCB_KHR