Replaced sw::Format with VkFormat
To avoid format conversion issues and simplify the code, sw::Format
was replaced with VkFormat. sw::Format only contained formats with
exact 1:1 correspondence with an equivalent VkFormat, with the
exception of YUV formats, which will require a minor adjustment in
SamplerCore::sampleTexel().
Bug b/119620767
Change-Id: I8124cbc40e1031a5b233156a10e87c35f1334eef
Reviewed-on: https://swiftshader-review.googlesource.com/c/22549
Tested-by: Alexis Hétu <sugoi@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
diff --git a/src/Device/Blitter.cpp b/src/Device/Blitter.cpp
index a4be043..fdeb10c 100644
--- a/src/Device/Blitter.cpp
+++ b/src/Device/Blitter.cpp
@@ -31,7 +31,7 @@
delete blitCache;
}
- void Blitter::clear(void *pixel, sw::Format format, Surface *dest, const SliceRect &dRect, unsigned int rgbaMask)
+ void Blitter::clear(void *pixel, VkFormat format, Surface *dest, const SliceRect &dRect, unsigned int rgbaMask)
{
if(fastClear(pixel, format, dest, dRect, rgbaMask))
{
@@ -44,9 +44,9 @@
delete color;
}
- bool Blitter::fastClear(void *pixel, sw::Format format, Surface *dest, const SliceRect &dRect, unsigned int rgbaMask)
+ bool Blitter::fastClear(void *pixel, VkFormat format, Surface *dest, const SliceRect &dRect, unsigned int rgbaMask)
{
- if(format != FORMAT_A32B32G32R32F)
+ if(format != VK_FORMAT_R32G32B32A32_SFLOAT)
{
return false;
}
@@ -61,20 +61,20 @@
switch(dest->getFormat())
{
- case FORMAT_R5G6B5:
+ case VK_FORMAT_R5G6B5_UNORM_PACK16:
if((rgbaMask & 0x7) != 0x7) return false;
packed = ((uint16_t)(31 * b + 0.5f) << 0) |
((uint16_t)(63 * g + 0.5f) << 5) |
((uint16_t)(31 * r + 0.5f) << 11);
break;
- case FORMAT_A8B8G8R8:
+ case VK_FORMAT_R8G8B8A8_UNORM:
if((rgbaMask & 0xF) != 0xF) return false;
packed = ((uint32_t)(255 * a + 0.5f) << 24) |
((uint32_t)(255 * b + 0.5f) << 16) |
((uint32_t)(255 * g + 0.5f) << 8) |
((uint32_t)(255 * r + 0.5f) << 0);
break;
- case FORMAT_A8R8G8B8:
+ case VK_FORMAT_B8G8R8A8_UNORM:
if((rgbaMask & 0xF) != 0xF) return false;
packed = ((uint32_t)(255 * a + 0.5f) << 24) |
((uint32_t)(255 * r + 0.5f) << 16) |
@@ -122,7 +122,7 @@
void Blitter::blit(Surface *source, const SliceRectF &sourceRect, Surface *dest, const SliceRect &destRect, const Blitter::Options& options)
{
- if(dest->getInternalFormat() == FORMAT_NULL)
+ if(dest->getInternalFormat() == VK_FORMAT_UNDEFINED)
{
return;
}
@@ -211,124 +211,124 @@
switch(state.sourceFormat)
{
- case FORMAT_R8I:
- case FORMAT_R8_SNORM:
+ case VK_FORMAT_R8_SINT:
+ case VK_FORMAT_R8_SNORM:
c.x = Float(Int(*Pointer<SByte>(element)));
c.w = float(0x7F);
break;
- case FORMAT_R8:
- case FORMAT_R8UI:
+ case VK_FORMAT_R8_UNORM:
+ case VK_FORMAT_R8_UINT:
c.x = Float(Int(*Pointer<Byte>(element)));
c.w = float(0xFF);
break;
- case FORMAT_R16I:
+ case VK_FORMAT_R16_SINT:
c.x = Float(Int(*Pointer<Short>(element)));
c.w = float(0x7FFF);
break;
- case FORMAT_R16UI:
+ case VK_FORMAT_R16_UINT:
c.x = Float(Int(*Pointer<UShort>(element)));
c.w = float(0xFFFF);
break;
- case FORMAT_R32I:
+ case VK_FORMAT_R32_SINT:
c.x = Float(*Pointer<Int>(element));
c.w = float(0x7FFFFFFF);
break;
- case FORMAT_R32UI:
+ case VK_FORMAT_R32_UINT:
c.x = Float(*Pointer<UInt>(element));
c.w = float(0xFFFFFFFF);
break;
- case FORMAT_A8R8G8B8:
+ case VK_FORMAT_B8G8R8A8_UNORM:
c = Float4(*Pointer<Byte4>(element)).zyxw;
break;
- case FORMAT_A8B8G8R8I:
- case FORMAT_A8B8G8R8_SNORM:
+ case VK_FORMAT_R8G8B8A8_SINT:
+ case VK_FORMAT_R8G8B8A8_SNORM:
c = Float4(*Pointer<SByte4>(element));
break;
- case FORMAT_A8B8G8R8:
- case FORMAT_A8B8G8R8UI:
- case FORMAT_SRGB8_A8:
+ case VK_FORMAT_R8G8B8A8_UNORM:
+ case VK_FORMAT_R8G8B8A8_UINT:
+ case VK_FORMAT_R8G8B8A8_SRGB:
c = Float4(*Pointer<Byte4>(element));
break;
- case FORMAT_A16B16G16R16I:
+ case VK_FORMAT_R16G16B16A16_SINT:
c = Float4(*Pointer<Short4>(element));
break;
- case FORMAT_A16B16G16R16:
- case FORMAT_A16B16G16R16UI:
+ case VK_FORMAT_R16G16B16A16_UNORM:
+ case VK_FORMAT_R16G16B16A16_UINT:
c = Float4(*Pointer<UShort4>(element));
break;
- case FORMAT_A32B32G32R32I:
+ case VK_FORMAT_R32G32B32A32_SINT:
c = Float4(*Pointer<Int4>(element));
break;
- case FORMAT_A32B32G32R32UI:
+ case VK_FORMAT_R32G32B32A32_UINT:
c = Float4(*Pointer<UInt4>(element));
break;
- case FORMAT_G8R8I:
- case FORMAT_G8R8_SNORM:
+ case VK_FORMAT_R8G8_SINT:
+ case VK_FORMAT_R8G8_SNORM:
c.x = Float(Int(*Pointer<SByte>(element + 0)));
c.y = Float(Int(*Pointer<SByte>(element + 1)));
c.w = float(0x7F);
break;
- case FORMAT_G8R8:
- case FORMAT_G8R8UI:
+ case VK_FORMAT_R8G8_UNORM:
+ case VK_FORMAT_R8G8_UINT:
c.x = Float(Int(*Pointer<Byte>(element + 0)));
c.y = Float(Int(*Pointer<Byte>(element + 1)));
c.w = float(0xFF);
break;
- case FORMAT_G16R16I:
+ case VK_FORMAT_R16G16_SINT:
c.x = Float(Int(*Pointer<Short>(element + 0)));
c.y = Float(Int(*Pointer<Short>(element + 2)));
c.w = float(0x7FFF);
break;
- case FORMAT_G16R16:
- case FORMAT_G16R16UI:
+ case VK_FORMAT_R16G16_UNORM:
+ case VK_FORMAT_R16G16_UINT:
c.x = Float(Int(*Pointer<UShort>(element + 0)));
c.y = Float(Int(*Pointer<UShort>(element + 2)));
c.w = float(0xFFFF);
break;
- case FORMAT_G32R32I:
+ case VK_FORMAT_R32G32_SINT:
c.x = Float(*Pointer<Int>(element + 0));
c.y = Float(*Pointer<Int>(element + 4));
c.w = float(0x7FFFFFFF);
break;
- case FORMAT_G32R32UI:
+ case VK_FORMAT_R32G32_UINT:
c.x = Float(*Pointer<UInt>(element + 0));
c.y = Float(*Pointer<UInt>(element + 4));
c.w = float(0xFFFFFFFF);
break;
- case FORMAT_A32B32G32R32F:
+ case VK_FORMAT_R32G32B32A32_SFLOAT:
c = *Pointer<Float4>(element);
break;
- case FORMAT_G32R32F:
+ case VK_FORMAT_R32G32_SFLOAT:
c.x = *Pointer<Float>(element + 0);
c.y = *Pointer<Float>(element + 4);
break;
- case FORMAT_R32F:
+ case VK_FORMAT_R32_SFLOAT:
c.x = *Pointer<Float>(element);
break;
- case FORMAT_R5G6B5:
+ case VK_FORMAT_R5G6B5_UNORM_PACK16:
c.x = Float(Int((*Pointer<UShort>(element) & UShort(0xF800)) >> UShort(11)));
c.y = Float(Int((*Pointer<UShort>(element) & UShort(0x07E0)) >> UShort(5)));
c.z = Float(Int(*Pointer<UShort>(element) & UShort(0x001F)));
break;
- case FORMAT_A2B10G10R10:
- case FORMAT_A2B10G10R10UI:
+ case VK_FORMAT_A2B10G10R10_UNORM_PACK32:
+ case VK_FORMAT_A2B10G10R10_UINT_PACK32:
c.x = Float(Int((*Pointer<UInt>(element) & UInt(0x000003FF))));
c.y = Float(Int((*Pointer<UInt>(element) & UInt(0x000FFC00)) >> 10));
c.z = Float(Int((*Pointer<UInt>(element) & UInt(0x3FF00000)) >> 20));
c.w = Float(Int((*Pointer<UInt>(element) & UInt(0xC0000000)) >> 30));
break;
- case FORMAT_D16:
+ case VK_FORMAT_D16_UNORM:
c.x = Float(Int((*Pointer<UShort>(element))));
break;
- case FORMAT_D24S8:
- case FORMAT_D24X8:
+ case VK_FORMAT_D24_UNORM_S8_UINT:
+ case VK_FORMAT_X8_D24_UNORM_PACK32:
c.x = Float(Int((*Pointer<UInt>(element) & UInt(0xFFFFFF00)) >> 8));
break;
- case FORMAT_D32F:
- case FORMAT_D32FS8:
+ case VK_FORMAT_D32_SFLOAT:
+ case VK_FORMAT_D32_SFLOAT_S8_UINT:
c.x = *Pointer<Float>(element);
break;
- case FORMAT_S8:
+ case VK_FORMAT_S8_UINT:
c.x = Float(Int(*Pointer<Byte>(element)));
break;
default:
@@ -348,7 +348,7 @@
switch(state.destFormat)
{
- case FORMAT_A8R8G8B8:
+ case VK_FORMAT_B8G8R8A8_UNORM:
if(writeRGBA)
{
Short4 c0 = RoundShort4(c.zyxw);
@@ -362,8 +362,8 @@
if(writeA) { *Pointer<Byte>(element + 3) = Byte(RoundInt(Float(c.w))); }
}
break;
- case FORMAT_A8B8G8R8:
- case FORMAT_SRGB8_A8:
+ case VK_FORMAT_R8G8B8A8_UNORM:
+ case VK_FORMAT_R8G8B8A8_SRGB:
if(writeRGBA)
{
Short4 c0 = RoundShort4(c);
@@ -377,7 +377,7 @@
if(writeA) { *Pointer<Byte>(element + 3) = Byte(RoundInt(Float(c.w))); }
}
break;
- case FORMAT_A32B32G32R32F:
+ case VK_FORMAT_R32G32B32A32_SFLOAT:
if(writeRGBA)
{
*Pointer<Float4>(element) = c;
@@ -390,7 +390,7 @@
if(writeA) { *Pointer<Float>(element + 12) = c.w; }
}
break;
- case FORMAT_G32R32F:
+ case VK_FORMAT_R32G32_SFLOAT:
if(writeR && writeG)
{
*Pointer<Float2>(element) = Float2(c);
@@ -401,31 +401,31 @@
if(writeG) { *Pointer<Float>(element + 4) = c.y; }
}
break;
- case FORMAT_R32F:
+ case VK_FORMAT_R32_SFLOAT:
if(writeR) { *Pointer<Float>(element) = c.x; }
break;
- case FORMAT_A8B8G8R8I:
- case FORMAT_A8B8G8R8_SNORM:
+ case VK_FORMAT_R8G8B8A8_SINT:
+ case VK_FORMAT_R8G8B8A8_SNORM:
if(writeA) { *Pointer<SByte>(element + 3) = SByte(RoundInt(Float(c.w))); }
if(writeB) { *Pointer<SByte>(element + 2) = SByte(RoundInt(Float(c.z))); }
- case FORMAT_G8R8I:
- case FORMAT_G8R8_SNORM:
+ case VK_FORMAT_R8G8_SINT:
+ case VK_FORMAT_R8G8_SNORM:
if(writeG) { *Pointer<SByte>(element + 1) = SByte(RoundInt(Float(c.y))); }
- case FORMAT_R8I:
- case FORMAT_R8_SNORM:
+ case VK_FORMAT_R8_SINT:
+ case VK_FORMAT_R8_SNORM:
if(writeR) { *Pointer<SByte>(element) = SByte(RoundInt(Float(c.x))); }
break;
- case FORMAT_A8B8G8R8UI:
+ case VK_FORMAT_R8G8B8A8_UINT:
if(writeA) { *Pointer<Byte>(element + 3) = Byte(RoundInt(Float(c.w))); }
if(writeB) { *Pointer<Byte>(element + 2) = Byte(RoundInt(Float(c.z))); }
- case FORMAT_G8R8UI:
- case FORMAT_G8R8:
+ case VK_FORMAT_R8G8_UINT:
+ case VK_FORMAT_R8G8_UNORM:
if(writeG) { *Pointer<Byte>(element + 1) = Byte(RoundInt(Float(c.y))); }
- case FORMAT_R8UI:
- case FORMAT_R8:
+ case VK_FORMAT_R8_UINT:
+ case VK_FORMAT_R8_UNORM:
if(writeR) { *Pointer<Byte>(element) = Byte(RoundInt(Float(c.x))); }
break;
- case FORMAT_A16B16G16R16I:
+ case VK_FORMAT_R16G16B16A16_SINT:
if(writeRGBA)
{
*Pointer<Short4>(element) = Short4(RoundInt(c));
@@ -438,7 +438,7 @@
if(writeA) { *Pointer<Short>(element + 6) = Short(RoundInt(Float(c.w))); }
}
break;
- case FORMAT_G16R16I:
+ case VK_FORMAT_R16G16_SINT:
if(writeR && writeG)
{
*Pointer<Short2>(element) = Short2(Short4(RoundInt(c)));
@@ -449,11 +449,11 @@
if(writeG) { *Pointer<Short>(element + 2) = Short(RoundInt(Float(c.y))); }
}
break;
- case FORMAT_R16I:
+ case VK_FORMAT_R16_SINT:
if(writeR) { *Pointer<Short>(element) = Short(RoundInt(Float(c.x))); }
break;
- case FORMAT_A16B16G16R16UI:
- case FORMAT_A16B16G16R16:
+ case VK_FORMAT_R16G16B16A16_UINT:
+ case VK_FORMAT_R16G16B16A16_UNORM:
if(writeRGBA)
{
*Pointer<UShort4>(element) = UShort4(RoundInt(c));
@@ -466,8 +466,8 @@
if(writeA) { *Pointer<UShort>(element + 6) = UShort(RoundInt(Float(c.w))); }
}
break;
- case FORMAT_G16R16UI:
- case FORMAT_G16R16:
+ case VK_FORMAT_R16G16_UINT:
+ case VK_FORMAT_R16G16_UNORM:
if(writeR && writeG)
{
*Pointer<UShort2>(element) = UShort2(UShort4(RoundInt(c)));
@@ -478,10 +478,10 @@
if(writeG) { *Pointer<UShort>(element + 2) = UShort(RoundInt(Float(c.y))); }
}
break;
- case FORMAT_R16UI:
+ case VK_FORMAT_R16_UINT:
if(writeR) { *Pointer<UShort>(element) = UShort(RoundInt(Float(c.x))); }
break;
- case FORMAT_A32B32G32R32I:
+ case VK_FORMAT_R32G32B32A32_SINT:
if(writeRGBA)
{
*Pointer<Int4>(element) = RoundInt(c);
@@ -494,12 +494,12 @@
if(writeA) { *Pointer<Int>(element + 12) = RoundInt(Float(c.w)); }
}
break;
- case FORMAT_G32R32I:
+ case VK_FORMAT_R32G32_SINT:
if(writeG) { *Pointer<Int>(element + 4) = RoundInt(Float(c.y)); }
- case FORMAT_R32I:
+ case VK_FORMAT_R32_SINT:
if(writeR) { *Pointer<Int>(element) = RoundInt(Float(c.x)); }
break;
- case FORMAT_A32B32G32R32UI:
+ case VK_FORMAT_R32G32B32A32_UINT:
if(writeRGBA)
{
*Pointer<UInt4>(element) = UInt4(RoundInt(c));
@@ -512,12 +512,12 @@
if(writeA) { *Pointer<UInt>(element + 12) = As<UInt>(RoundInt(Float(c.w))); }
}
break;
- case FORMAT_G32R32UI:
+ case VK_FORMAT_R32G32_UINT:
if(writeG) { *Pointer<UInt>(element + 4) = As<UInt>(RoundInt(Float(c.y))); }
- case FORMAT_R32UI:
+ case VK_FORMAT_R32_UINT:
if(writeR) { *Pointer<UInt>(element) = As<UInt>(RoundInt(Float(c.x))); }
break;
- case FORMAT_R5G6B5:
+ case VK_FORMAT_R5G6B5_UNORM_PACK16:
if(writeR && writeG && writeB)
{
*Pointer<UShort>(element) = UShort(RoundInt(Float(c.z)) |
@@ -534,8 +534,8 @@
(RoundInt(Float(c.x)) << Int(11))) & UShort(mask));
}
break;
- case FORMAT_A2B10G10R10:
- case FORMAT_A2B10G10R10UI:
+ case VK_FORMAT_A2B10G10R10_UNORM_PACK32:
+ case VK_FORMAT_A2B10G10R10_UINT_PACK32:
if(writeRGBA)
{
*Pointer<UInt>(element) = UInt(RoundInt(Float(c.x)) |
@@ -557,18 +557,18 @@
(RoundInt(Float(c.w)) << 30)) & UInt(mask));
}
break;
- case FORMAT_D16:
+ case VK_FORMAT_D16_UNORM:
*Pointer<UShort>(element) = UShort(RoundInt(Float(c.x)));
break;
- case FORMAT_D24S8:
- case FORMAT_D24X8:
+ case VK_FORMAT_D24_UNORM_S8_UINT:
+ case VK_FORMAT_X8_D24_UNORM_PACK32:
*Pointer<UInt>(element) = UInt(RoundInt(Float(c.x)) << 8);
break;
- case FORMAT_D32F:
- case FORMAT_D32FS8:
+ case VK_FORMAT_D32_SFLOAT:
+ case VK_FORMAT_D32_SFLOAT_S8_UINT:
*Pointer<Float>(element) = c.x;
break;
- case FORMAT_S8:
+ case VK_FORMAT_S8_UINT:
*Pointer<Byte>(element) = Byte(RoundInt(Float(c.x)));
break;
default:
@@ -583,43 +583,43 @@
switch(state.sourceFormat)
{
- case FORMAT_A8B8G8R8I:
+ case VK_FORMAT_R8G8B8A8_SINT:
c = Insert(c, Int(*Pointer<SByte>(element + 3)), 3);
- case FORMAT_G8R8I:
+ case VK_FORMAT_R8G8_SINT:
c = Insert(c, Int(*Pointer<SByte>(element + 1)), 1);
- case FORMAT_R8I:
+ case VK_FORMAT_R8_SINT:
c = Insert(c, Int(*Pointer<SByte>(element)), 0);
break;
- case FORMAT_A8B8G8R8UI:
+ case VK_FORMAT_R8G8B8A8_UINT:
c = Insert(c, Int(*Pointer<Byte>(element + 3)), 3);
- case FORMAT_G8R8UI:
+ case VK_FORMAT_R8G8_UINT:
c = Insert(c, Int(*Pointer<Byte>(element + 1)), 1);
- case FORMAT_R8UI:
+ case VK_FORMAT_R8_UINT:
c = Insert(c, Int(*Pointer<Byte>(element)), 0);
break;
- case FORMAT_A16B16G16R16I:
+ case VK_FORMAT_R16G16B16A16_SINT:
c = Insert(c, Int(*Pointer<Short>(element + 6)), 3);
- case FORMAT_G16R16I:
+ case VK_FORMAT_R16G16_SINT:
c = Insert(c, Int(*Pointer<Short>(element + 2)), 1);
- case FORMAT_R16I:
+ case VK_FORMAT_R16_SINT:
c = Insert(c, Int(*Pointer<Short>(element)), 0);
break;
- case FORMAT_A16B16G16R16UI:
+ case VK_FORMAT_R16G16B16A16_UINT:
c = Insert(c, Int(*Pointer<UShort>(element + 6)), 3);
- case FORMAT_G16R16UI:
+ case VK_FORMAT_R16G16_UINT:
c = Insert(c, Int(*Pointer<UShort>(element + 2)), 1);
- case FORMAT_R16UI:
+ case VK_FORMAT_R16_UINT:
c = Insert(c, Int(*Pointer<UShort>(element)), 0);
break;
- case FORMAT_A32B32G32R32I:
- case FORMAT_A32B32G32R32UI:
+ case VK_FORMAT_R32G32B32A32_SINT:
+ case VK_FORMAT_R32G32B32A32_UINT:
c = *Pointer<Int4>(element);
break;
- case FORMAT_G32R32I:
- case FORMAT_G32R32UI:
+ case VK_FORMAT_R32G32_SINT:
+ case VK_FORMAT_R32G32_UINT:
c = Insert(c, *Pointer<Int>(element + 4), 1);
- case FORMAT_R32I:
- case FORMAT_R32UI:
+ case VK_FORMAT_R32_SINT:
+ case VK_FORMAT_R32_UINT:
c = Insert(c, *Pointer<Int>(element), 0);
break;
default:
@@ -639,39 +639,39 @@
switch(state.destFormat)
{
- case FORMAT_A8B8G8R8I:
+ case VK_FORMAT_R8G8B8A8_SINT:
if(writeA) { *Pointer<SByte>(element + 3) = SByte(Extract(c, 3)); }
if(writeB) { *Pointer<SByte>(element + 2) = SByte(Extract(c, 2)); }
- case FORMAT_G8R8I:
+ case VK_FORMAT_R8G8_SINT:
if(writeG) { *Pointer<SByte>(element + 1) = SByte(Extract(c, 1)); }
- case FORMAT_R8I:
+ case VK_FORMAT_R8_SINT:
if(writeR) { *Pointer<SByte>(element) = SByte(Extract(c, 0)); }
break;
- case FORMAT_A8B8G8R8UI:
+ case VK_FORMAT_R8G8B8A8_UINT:
if(writeA) { *Pointer<Byte>(element + 3) = Byte(Extract(c, 3)); }
if(writeB) { *Pointer<Byte>(element + 2) = Byte(Extract(c, 2)); }
- case FORMAT_G8R8UI:
+ case VK_FORMAT_R8G8_UINT:
if(writeG) { *Pointer<Byte>(element + 1) = Byte(Extract(c, 1)); }
- case FORMAT_R8UI:
+ case VK_FORMAT_R8_UINT:
if(writeR) { *Pointer<Byte>(element) = Byte(Extract(c, 0)); }
break;
- case FORMAT_A16B16G16R16I:
+ case VK_FORMAT_R16G16B16A16_SINT:
if(writeA) { *Pointer<Short>(element + 6) = Short(Extract(c, 3)); }
if(writeB) { *Pointer<Short>(element + 4) = Short(Extract(c, 2)); }
- case FORMAT_G16R16I:
+ case VK_FORMAT_R16G16_SINT:
if(writeG) { *Pointer<Short>(element + 2) = Short(Extract(c, 1)); }
- case FORMAT_R16I:
+ case VK_FORMAT_R16_SINT:
if(writeR) { *Pointer<Short>(element) = Short(Extract(c, 0)); }
break;
- case FORMAT_A16B16G16R16UI:
+ case VK_FORMAT_R16G16B16A16_UINT:
if(writeA) { *Pointer<UShort>(element + 6) = UShort(Extract(c, 3)); }
if(writeB) { *Pointer<UShort>(element + 4) = UShort(Extract(c, 2)); }
- case FORMAT_G16R16UI:
+ case VK_FORMAT_R16G16_UINT:
if(writeG) { *Pointer<UShort>(element + 2) = UShort(Extract(c, 1)); }
- case FORMAT_R16UI:
+ case VK_FORMAT_R16_UINT:
if(writeR) { *Pointer<UShort>(element) = UShort(Extract(c, 0)); }
break;
- case FORMAT_A32B32G32R32I:
+ case VK_FORMAT_R32G32B32A32_SINT:
if(writeRGBA)
{
*Pointer<Int4>(element) = c;
@@ -684,14 +684,14 @@
if(writeA) { *Pointer<Int>(element + 12) = Extract(c, 3); }
}
break;
- case FORMAT_G32R32I:
+ case VK_FORMAT_R32G32_SINT:
if(writeR) { *Pointer<Int>(element) = Extract(c, 0); }
if(writeG) { *Pointer<Int>(element + 4) = Extract(c, 1); }
break;
- case FORMAT_R32I:
+ case VK_FORMAT_R32_SINT:
if(writeR) { *Pointer<Int>(element) = Extract(c, 0); }
break;
- case FORMAT_A32B32G32R32UI:
+ case VK_FORMAT_R32G32B32A32_UINT:
if(writeRGBA)
{
*Pointer<UInt4>(element) = As<UInt4>(c);
@@ -704,11 +704,11 @@
if(writeA) { *Pointer<UInt>(element + 12) = As<UInt>(Extract(c, 3)); }
}
break;
- case FORMAT_G32R32UI:
+ case VK_FORMAT_R32G32_UINT:
if(writeR) { *Pointer<UInt>(element) = As<UInt>(Extract(c, 0)); }
if(writeG) { *Pointer<UInt>(element + 4) = As<UInt>(Extract(c, 1)); }
break;
- case FORMAT_R32UI:
+ case VK_FORMAT_R32_UINT:
if(writeR) { *Pointer<UInt>(element) = As<UInt>(Extract(c, 0)); }
break;
default:
@@ -718,66 +718,66 @@
return true;
}
- bool Blitter::GetScale(float4 &scale, Format format)
+ bool Blitter::GetScale(float4 &scale, VkFormat format)
{
switch(format)
{
- case FORMAT_A8R8G8B8:
- case FORMAT_R8:
- case FORMAT_G8R8:
- case FORMAT_A8B8G8R8:
- case FORMAT_SRGB8_A8:
+ case VK_FORMAT_B8G8R8A8_UNORM:
+ case VK_FORMAT_R8_UNORM:
+ case VK_FORMAT_R8G8_UNORM:
+ case VK_FORMAT_R8G8B8A8_UNORM:
+ case VK_FORMAT_R8G8B8A8_SRGB:
scale = vector(0xFF, 0xFF, 0xFF, 0xFF);
break;
- case FORMAT_R8_SNORM:
- case FORMAT_G8R8_SNORM:
- case FORMAT_A8B8G8R8_SNORM:
+ case VK_FORMAT_R8_SNORM:
+ case VK_FORMAT_R8G8_SNORM:
+ case VK_FORMAT_R8G8B8A8_SNORM:
scale = vector(0x7F, 0x7F, 0x7F, 0x7F);
break;
- case FORMAT_A16B16G16R16:
+ case VK_FORMAT_R16G16B16A16_UNORM:
scale = vector(0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF);
break;
- case FORMAT_R8I:
- case FORMAT_R8UI:
- case FORMAT_G8R8I:
- case FORMAT_G8R8UI:
- case FORMAT_A8B8G8R8I:
- case FORMAT_A8B8G8R8UI:
- case FORMAT_R16I:
- case FORMAT_R16UI:
- case FORMAT_G16R16:
- case FORMAT_G16R16I:
- case FORMAT_G16R16UI:
- case FORMAT_A16B16G16R16I:
- case FORMAT_A16B16G16R16UI:
- case FORMAT_R32I:
- case FORMAT_R32UI:
- case FORMAT_G32R32I:
- case FORMAT_G32R32UI:
- case FORMAT_A32B32G32R32I:
- case FORMAT_A32B32G32R32UI:
- case FORMAT_A32B32G32R32F:
- case FORMAT_G32R32F:
- case FORMAT_R32F:
- case FORMAT_A2B10G10R10UI:
+ case VK_FORMAT_R8_SINT:
+ case VK_FORMAT_R8_UINT:
+ case VK_FORMAT_R8G8_SINT:
+ case VK_FORMAT_R8G8_UINT:
+ case VK_FORMAT_R8G8B8A8_SINT:
+ case VK_FORMAT_R8G8B8A8_UINT:
+ case VK_FORMAT_R16_SINT:
+ case VK_FORMAT_R16_UINT:
+ case VK_FORMAT_R16G16_UNORM:
+ case VK_FORMAT_R16G16_SINT:
+ case VK_FORMAT_R16G16_UINT:
+ case VK_FORMAT_R16G16B16A16_SINT:
+ case VK_FORMAT_R16G16B16A16_UINT:
+ case VK_FORMAT_R32_SINT:
+ case VK_FORMAT_R32_UINT:
+ case VK_FORMAT_R32G32_SINT:
+ case VK_FORMAT_R32G32_UINT:
+ case VK_FORMAT_R32G32B32A32_SINT:
+ case VK_FORMAT_R32G32B32A32_UINT:
+ case VK_FORMAT_R32G32B32A32_SFLOAT:
+ case VK_FORMAT_R32G32_SFLOAT:
+ case VK_FORMAT_R32_SFLOAT:
+ case VK_FORMAT_A2B10G10R10_UINT_PACK32:
scale = vector(1.0f, 1.0f, 1.0f, 1.0f);
break;
- case FORMAT_R5G6B5:
+ case VK_FORMAT_R5G6B5_UNORM_PACK16:
scale = vector(0x1F, 0x3F, 0x1F, 1.0f);
break;
- case FORMAT_A2B10G10R10:
+ case VK_FORMAT_A2B10G10R10_UNORM_PACK32:
scale = vector(0x3FF, 0x3FF, 0x3FF, 0x03);
break;
- case FORMAT_D16:
+ case VK_FORMAT_D16_UNORM:
scale = vector(0xFFFF, 0.0f, 0.0f, 0.0f);
break;
- case FORMAT_D24S8:
- case FORMAT_D24X8:
+ case VK_FORMAT_D24_UNORM_S8_UINT:
+ case VK_FORMAT_X8_D24_UNORM_PACK32:
scale = vector(0xFFFFFF, 0.0f, 0.0f, 0.0f);
break;
- case FORMAT_D32F:
- case FORMAT_D32FS8:
- case FORMAT_S8:
+ case VK_FORMAT_D32_SFLOAT:
+ case VK_FORMAT_D32_SFLOAT_S8_UINT:
+ case VK_FORMAT_S8_UINT:
scale = vector(1.0f, 1.0f, 1.0f, 1.0f);
break;
default:
@@ -798,10 +798,10 @@
// then the whole range of the int or uint color must be scaled between 0 and 1.
switch(state.sourceFormat)
{
- case FORMAT_A32B32G32R32I:
+ case VK_FORMAT_R32G32B32A32_SINT:
unscale = replicate(static_cast<float>(0x7FFFFFFF));
break;
- case FORMAT_A32B32G32R32UI:
+ case VK_FORMAT_R32G32B32A32_UINT:
unscale = replicate(static_cast<float>(0xFFFFFFFF));
break;
default:
diff --git a/src/Device/Blitter.hpp b/src/Device/Blitter.hpp
index e3db745..637a5f8 100644
--- a/src/Device/Blitter.hpp
+++ b/src/Device/Blitter.hpp
@@ -63,8 +63,8 @@
return memcmp(this, &state, sizeof(State)) == 0;
}
- Format sourceFormat;
- Format destFormat;
+ VkFormat sourceFormat;
+ VkFormat destFormat;
int destSamples;
};
@@ -94,18 +94,18 @@
Blitter();
virtual ~Blitter();
- void clear(void *pixel, sw::Format format, Surface *dest, const SliceRect &dRect, unsigned int rgbaMask);
+ void clear(void *pixel, VkFormat format, Surface *dest, const SliceRect &dRect, unsigned int rgbaMask);
void blit(Surface *source, const SliceRectF &sRect, Surface *dest, const SliceRect &dRect, const Options &options);
void blit3D(Surface *source, Surface *dest);
private:
- bool fastClear(void *pixel, sw::Format format, Surface *dest, const SliceRect &dRect, unsigned int rgbaMask);
+ bool fastClear(void *pixel, VkFormat format, Surface *dest, const SliceRect &dRect, unsigned int rgbaMask);
bool read(Float4 &color, Pointer<Byte> element, const State &state);
bool write(Float4 &color, Pointer<Byte> element, const State &state);
bool read(Int4 &color, Pointer<Byte> element, const State &state);
bool write(Int4 &color, Pointer<Byte> element, const State &state);
- static bool GetScale(float4& scale, Format format);
+ static bool GetScale(float4& scale, VkFormat format);
static bool ApplyScaleAndClamp(Float4 &value, const State &state, bool preScaled = false);
static Int ComputeOffset(Int &x, Int &y, Int &pitchB, int bytes, bool quadLayout);
static Float4 LinearToSRGB(Float4 &color);
diff --git a/src/Device/Context.cpp b/src/Device/Context.cpp
index d9bad6b..d955c79 100644
--- a/src/Device/Context.cpp
+++ b/src/Device/Context.cpp
@@ -740,7 +740,7 @@
return renderTarget[0] ? renderTarget[0]->getMultiSampleCount() : 1;
}
- Format Context::renderTargetInternalFormat(int index)
+ VkFormat Context::renderTargetInternalFormat(int index)
{
if(renderTarget[index])
{
@@ -748,7 +748,7 @@
}
else
{
- return FORMAT_NULL;
+ return VK_FORMAT_UNDEFINED;
}
}
@@ -759,7 +759,7 @@
int Context::colorWriteActive(int index)
{
- if(!renderTarget[index] || renderTarget[index]->getInternalFormat() == FORMAT_NULL)
+ if(!renderTarget[index] || renderTarget[index]->getInternalFormat() == VK_FORMAT_UNDEFINED)
{
return 0;
}
diff --git a/src/Device/Context.hpp b/src/Device/Context.hpp
index 64bd0d5..4d826b4 100644
--- a/src/Device/Context.hpp
+++ b/src/Device/Context.hpp
@@ -305,7 +305,7 @@
Sampler sampler[TOTAL_IMAGE_UNITS];
- Format renderTargetInternalFormat(int index);
+ VkFormat renderTargetInternalFormat(int index);
int colorWriteActive();
int colorWriteActive(int index);
bool colorUsed();
diff --git a/src/Device/PixelProcessor.hpp b/src/Device/PixelProcessor.hpp
index d8645b8..6a2c4db 100644
--- a/src/Device/PixelProcessor.hpp
+++ b/src/Device/PixelProcessor.hpp
@@ -73,7 +73,7 @@
BlendOperation blendOperationAlpha : BITS(BLENDOP_LAST);
unsigned int colorWriteMask : RENDERTARGETS * 4; // Four component bit masks
- Format targetFormat[RENDERTARGETS];
+ VkFormat targetFormat[RENDERTARGETS];
bool writeSRGB : 1;
unsigned int multiSample : 3;
unsigned int multiSampleMask : 4;
diff --git a/src/Device/Renderer.cpp b/src/Device/Renderer.cpp
index 6df648e..1963caf 100644
--- a/src/Device/Renderer.cpp
+++ b/src/Device/Renderer.cpp
@@ -598,7 +598,7 @@
}
}
- void Renderer::clear(void *value, Format format, Surface *dest, const Rect &clearRect, unsigned int rgbaMask)
+ void Renderer::clear(void *value, VkFormat format, Surface *dest, const Rect &clearRect, unsigned int rgbaMask)
{
blitter->clear(value, format, dest, clearRect, rgbaMask);
}
diff --git a/src/Device/Renderer.hpp b/src/Device/Renderer.hpp
index 539a48d..232a9be 100644
--- a/src/Device/Renderer.hpp
+++ b/src/Device/Renderer.hpp
@@ -262,7 +262,7 @@
void draw(DrawType drawType, unsigned int indexOffset, unsigned int count, bool update = true);
- void clear(void *value, Format format, Surface *dest, const Rect &rect, unsigned int rgbaMask);
+ void clear(void *value, VkFormat format, Surface *dest, const Rect &rect, unsigned int rgbaMask);
void blit(Surface *source, const SliceRectF &sRect, Surface *dest, const SliceRect &dRect, bool filter, bool isStencil = false, bool sRGBconversion = true);
void blit3D(Surface *source, Surface *dest);
diff --git a/src/Device/Sampler.cpp b/src/Device/Sampler.cpp
index 2fc1bb1..69f1916 100644
--- a/src/Device/Sampler.cpp
+++ b/src/Device/Sampler.cpp
@@ -49,8 +49,8 @@
}
}
- externalTextureFormat = FORMAT_NULL;
- internalTextureFormat = FORMAT_NULL;
+ externalTextureFormat = VK_FORMAT_UNDEFINED;
+ internalTextureFormat = VK_FORMAT_UNDEFINED;
textureType = TEXTURE_NULL;
textureFilter = FILTER_LINEAR;
@@ -222,9 +222,7 @@
mipmap.sliceP[2] = sliceP;
mipmap.sliceP[3] = sliceP;
- if(internalTextureFormat == FORMAT_YV12_BT601 ||
- internalTextureFormat == FORMAT_YV12_BT709 ||
- internalTextureFormat == FORMAT_YV12_JFIF)
+ if(internalTextureFormat == VK_FORMAT_G8_B8R8_2PLANE_420_UNORM)
{
unsigned int YStride = pitchP;
unsigned int YSize = YStride * height;
diff --git a/src/Device/Sampler.hpp b/src/Device/Sampler.hpp
index 81b308d..4fa5390 100644
--- a/src/Device/Sampler.hpp
+++ b/src/Device/Sampler.hpp
@@ -147,7 +147,7 @@
State();
TextureType textureType : BITS(TEXTURE_LAST);
- Format textureFormat : BITS(FORMAT_LAST);
+ VkFormat textureFormat : BITS(VK_FORMAT_END_RANGE);
FilterType textureFilter : BITS(FILTER_LAST);
AddressingMode addressingModeU : BITS(ADDRESSING_LAST);
AddressingMode addressingModeV : BITS(ADDRESSING_LAST);
@@ -214,8 +214,8 @@
AddressingMode getAddressingModeW() const;
CompareFunc getCompareFunc() const;
- Format externalTextureFormat;
- Format internalTextureFormat;
+ VkFormat externalTextureFormat;
+ VkFormat internalTextureFormat;
TextureType textureType;
FilterType textureFilter;
diff --git a/src/Device/Surface.cpp b/src/Device/Surface.cpp
index ea3f488..b4bb17a 100644
--- a/src/Device/Surface.cpp
+++ b/src/Device/Surface.cpp
@@ -84,156 +84,156 @@
switch(format)
{
- case FORMAT_R8_SNORM:
+ case VK_FORMAT_R8_SNORM:
*(char*)element = snorm<8>(r);
break;
- case FORMAT_R8:
+ case VK_FORMAT_R8_UNORM:
*(unsigned char*)element = unorm<8>(r);
break;
- case FORMAT_R8I:
+ case VK_FORMAT_R8_SINT:
*(char*)element = scast<8>(r);
break;
- case FORMAT_R8UI:
+ case VK_FORMAT_R8_UINT:
*(unsigned char*)element = ucast<8>(r);
break;
- case FORMAT_R16I:
+ case VK_FORMAT_R16_SINT:
*(short*)element = scast<16>(r);
break;
- case FORMAT_R16UI:
+ case VK_FORMAT_R16_UINT:
*(unsigned short*)element = ucast<16>(r);
break;
- case FORMAT_R32I:
+ case VK_FORMAT_R32_SINT:
*(int*)element = static_cast<int>(r);
break;
- case FORMAT_R32UI:
+ case VK_FORMAT_R32_UINT:
*(unsigned int*)element = static_cast<unsigned int>(r);
break;
- case FORMAT_R4G4B4A4:
+ case VK_FORMAT_B4G4R4A4_UNORM_PACK16:
*(unsigned short*)element = (unorm<4>(r) << 12) | (unorm<4>(g) << 8) | (unorm<4>(b) << 4) | (unorm<4>(a) << 0);
break;
- case FORMAT_R5G6B5:
+ case VK_FORMAT_R5G6B5_UNORM_PACK16:
*(unsigned short*)element = (unorm<5>(r) << 11) | (unorm<6>(g) << 5) | (unorm<5>(b) << 0);
break;
- case FORMAT_A1R5G5B5:
+ case VK_FORMAT_A1R5G5B5_UNORM_PACK16:
*(unsigned short*)element = (unorm<1>(a) << 15) | (unorm<5>(r) << 10) | (unorm<5>(g) << 5) | (unorm<5>(b) << 0);
break;
- case FORMAT_R5G5B5A1:
+ case VK_FORMAT_R5G5B5A1_UNORM_PACK16:
*(unsigned short*)element = (unorm<5>(r) << 11) | (unorm<5>(g) << 6) | (unorm<5>(b) << 1) | (unorm<5>(a) << 0);
break;
- case FORMAT_A8R8G8B8:
+ case VK_FORMAT_B8G8R8A8_UNORM:
*(unsigned int*)element = (unorm<8>(a) << 24) | (unorm<8>(r) << 16) | (unorm<8>(g) << 8) | (unorm<8>(b) << 0);
break;
- case FORMAT_A8B8G8R8_SNORM:
+ case VK_FORMAT_R8G8B8A8_SNORM:
*(unsigned int*)element = (static_cast<unsigned int>(snorm<8>(a)) << 24) |
(static_cast<unsigned int>(snorm<8>(b)) << 16) |
(static_cast<unsigned int>(snorm<8>(g)) << 8) |
(static_cast<unsigned int>(snorm<8>(r)) << 0);
break;
- case FORMAT_A8B8G8R8:
- case FORMAT_SRGB8_A8:
+ case VK_FORMAT_R8G8B8A8_UNORM:
+ case VK_FORMAT_R8G8B8A8_SRGB:
*(unsigned int*)element = (unorm<8>(a) << 24) | (unorm<8>(b) << 16) | (unorm<8>(g) << 8) | (unorm<8>(r) << 0);
break;
- case FORMAT_A8B8G8R8I:
+ case VK_FORMAT_R8G8B8A8_SINT:
*(unsigned int*)element = (static_cast<unsigned int>(scast<8>(a)) << 24) |
(static_cast<unsigned int>(scast<8>(b)) << 16) |
(static_cast<unsigned int>(scast<8>(g)) << 8) |
(static_cast<unsigned int>(scast<8>(r)) << 0);
break;
- case FORMAT_A8B8G8R8UI:
+ case VK_FORMAT_R8G8B8A8_UINT:
*(unsigned int*)element = (ucast<8>(a) << 24) | (ucast<8>(b) << 16) | (ucast<8>(g) << 8) | (ucast<8>(r) << 0);
break;
- case FORMAT_A2R10G10B10:
+ case VK_FORMAT_A2R10G10B10_UNORM_PACK32:
*(unsigned int*)element = (unorm<2>(a) << 30) | (unorm<10>(r) << 20) | (unorm<10>(g) << 10) | (unorm<10>(b) << 0);
break;
- case FORMAT_A2B10G10R10:
- case FORMAT_A2B10G10R10UI:
+ case VK_FORMAT_A2B10G10R10_UNORM_PACK32:
+ case VK_FORMAT_A2B10G10R10_UINT_PACK32:
*(unsigned int*)element = (unorm<2>(a) << 30) | (unorm<10>(b) << 20) | (unorm<10>(g) << 10) | (unorm<10>(r) << 0);
break;
- case FORMAT_G8R8_SNORM:
+ case VK_FORMAT_R8G8_SNORM:
*(unsigned short*)element = (static_cast<unsigned short>(snorm<8>(g)) << 8) |
(static_cast<unsigned short>(snorm<8>(r)) << 0);
break;
- case FORMAT_G8R8:
+ case VK_FORMAT_R8G8_UNORM:
*(unsigned short*)element = (unorm<8>(g) << 8) | (unorm<8>(r) << 0);
break;
- case FORMAT_G8R8I:
+ case VK_FORMAT_R8G8_SINT:
*(unsigned short*)element = (static_cast<unsigned short>(scast<8>(g)) << 8) |
(static_cast<unsigned short>(scast<8>(r)) << 0);
break;
- case FORMAT_G8R8UI:
+ case VK_FORMAT_R8G8_UINT:
*(unsigned short*)element = (ucast<8>(g) << 8) | (ucast<8>(r) << 0);
break;
- case FORMAT_G16R16:
+ case VK_FORMAT_R16G16_UNORM:
*(unsigned int*)element = (unorm<16>(g) << 16) | (unorm<16>(r) << 0);
break;
- case FORMAT_G16R16I:
+ case VK_FORMAT_R16G16_SINT:
*(unsigned int*)element = (static_cast<unsigned int>(scast<16>(g)) << 16) |
(static_cast<unsigned int>(scast<16>(r)) << 0);
break;
- case FORMAT_G16R16UI:
+ case VK_FORMAT_R16G16_UINT:
*(unsigned int*)element = (ucast<16>(g) << 16) | (ucast<16>(r) << 0);
break;
- case FORMAT_G32R32I:
- case FORMAT_G32R32UI:
+ case VK_FORMAT_R32G32_SINT:
+ case VK_FORMAT_R32G32_UINT:
((unsigned int*)element)[0] = static_cast<unsigned int>(r);
((unsigned int*)element)[1] = static_cast<unsigned int>(g);
break;
- case FORMAT_A16B16G16R16:
+ case VK_FORMAT_R16G16B16A16_UNORM:
((unsigned short*)element)[0] = unorm<16>(r);
((unsigned short*)element)[1] = unorm<16>(g);
((unsigned short*)element)[2] = unorm<16>(b);
((unsigned short*)element)[3] = unorm<16>(a);
break;
- case FORMAT_A16B16G16R16I:
+ case VK_FORMAT_R16G16B16A16_SINT:
((unsigned short*)element)[0] = static_cast<unsigned short>(scast<16>(r));
((unsigned short*)element)[1] = static_cast<unsigned short>(scast<16>(g));
((unsigned short*)element)[2] = static_cast<unsigned short>(scast<16>(b));
((unsigned short*)element)[3] = static_cast<unsigned short>(scast<16>(a));
break;
- case FORMAT_A16B16G16R16UI:
+ case VK_FORMAT_R16G16B16A16_UINT:
((unsigned short*)element)[0] = static_cast<unsigned short>(ucast<16>(r));
((unsigned short*)element)[1] = static_cast<unsigned short>(ucast<16>(g));
((unsigned short*)element)[2] = static_cast<unsigned short>(ucast<16>(b));
((unsigned short*)element)[3] = static_cast<unsigned short>(ucast<16>(a));
break;
- case FORMAT_A32B32G32R32I:
- case FORMAT_A32B32G32R32UI:
+ case VK_FORMAT_R32G32B32A32_SINT:
+ case VK_FORMAT_R32G32B32A32_UINT:
((unsigned int*)element)[0] = static_cast<unsigned int>(r);
((unsigned int*)element)[1] = static_cast<unsigned int>(g);
((unsigned int*)element)[2] = static_cast<unsigned int>(b);
((unsigned int*)element)[3] = static_cast<unsigned int>(a);
break;
- case FORMAT_R16F:
+ case VK_FORMAT_R16_SFLOAT:
*(half*)element = (half)r;
break;
- case FORMAT_G16R16F:
+ case VK_FORMAT_R16G16_SFLOAT:
((half*)element)[0] = (half)r;
((half*)element)[1] = (half)g;
break;
- case FORMAT_A16B16G16R16F:
+ case VK_FORMAT_R16G16B16A16_SFLOAT:
((half*)element)[0] = (half)r;
((half*)element)[1] = (half)g;
((half*)element)[2] = (half)b;
((half*)element)[3] = (half)a;
break;
- case FORMAT_R32F:
+ case VK_FORMAT_R32_SFLOAT:
*(float*)element = r;
break;
- case FORMAT_G32R32F:
+ case VK_FORMAT_R32G32_SFLOAT:
((float*)element)[0] = r;
((float*)element)[1] = g;
break;
- case FORMAT_A32B32G32R32F:
+ case VK_FORMAT_R32G32B32A32_SFLOAT:
((float*)element)[0] = r;
((float*)element)[1] = g;
((float*)element)[2] = b;
((float*)element)[3] = a;
break;
- case FORMAT_D32F:
- case FORMAT_D32FS8:
+ case VK_FORMAT_D32_SFLOAT:
+ case VK_FORMAT_D32_SFLOAT_S8_UINT:
*((float*)element) = r;
break;
- case FORMAT_S8:
+ case VK_FORMAT_S8_UINT:
*((unsigned char*)element) = unorm<8>(r);
break;
default:
@@ -271,19 +271,19 @@
switch(format)
{
- case FORMAT_R8_SNORM:
+ case VK_FORMAT_R8_SNORM:
r = max((*(signed char*)element) * (1.0f / 0x7F), -1.0f);
break;
- case FORMAT_R8:
+ case VK_FORMAT_R8_UNORM:
r = *(unsigned char*)element * (1.0f / 0xFF);
break;
- case FORMAT_R8I:
+ case VK_FORMAT_R8_SINT:
r = *(signed char*)element;
break;
- case FORMAT_R8UI:
+ case VK_FORMAT_R8_UINT:
r = *(unsigned char*)element;
break;
- case FORMAT_R4G4B4A4:
+ case VK_FORMAT_B4G4R4A4_UNORM_PACK16:
{
unsigned short rgba = *(unsigned short*)element;
@@ -293,7 +293,7 @@
a = (rgba & 0x000F) * (1.0f / 0x000F);
}
break;
- case FORMAT_R5G6B5:
+ case VK_FORMAT_R5G6B5_UNORM_PACK16:
{
unsigned short rgb = *(unsigned short*)element;
@@ -302,7 +302,7 @@
b = (rgb & 0x001F) * (1.0f / 0x001F);
}
break;
- case FORMAT_A1R5G5B5:
+ case VK_FORMAT_A1R5G5B5_UNORM_PACK16:
{
unsigned short argb = *(unsigned short*)element;
@@ -312,7 +312,7 @@
b = (argb & 0x001F) * (1.0f / 0x001F);
}
break;
- case FORMAT_R5G5B5A1:
+ case VK_FORMAT_R5G5B5A1_UNORM_PACK16:
{
unsigned short rgba = *(unsigned short*)element;
@@ -322,7 +322,7 @@
a = (rgba & 0x0001) * (1.0f / 0x0001);
}
break;
- case FORMAT_A8R8G8B8:
+ case VK_FORMAT_B8G8R8A8_UNORM:
{
unsigned int argb = *(unsigned int*)element;
@@ -332,7 +332,7 @@
b = (argb & 0x000000FF) * (1.0f / 0x000000FF);
}
break;
- case FORMAT_A8B8G8R8_SNORM:
+ case VK_FORMAT_R8G8B8A8_SNORM:
{
signed char* abgr = (signed char*)element;
@@ -342,8 +342,8 @@
a = max(abgr[3] * (1.0f / 0x7F), -1.0f);
}
break;
- case FORMAT_A8B8G8R8:
- case FORMAT_SRGB8_A8:
+ case VK_FORMAT_R8G8B8A8_UNORM:
+ case VK_FORMAT_R8G8B8A8_SRGB:
{
unsigned int abgr = *(unsigned int*)element;
@@ -353,7 +353,7 @@
r = (abgr & 0x000000FF) * (1.0f / 0x000000FF);
}
break;
- case FORMAT_A8B8G8R8I:
+ case VK_FORMAT_R8G8B8A8_SINT:
{
signed char* abgr = (signed char*)element;
@@ -363,7 +363,7 @@
a = abgr[3];
}
break;
- case FORMAT_A8B8G8R8UI:
+ case VK_FORMAT_R8G8B8A8_UINT:
{
unsigned char* abgr = (unsigned char*)element;
@@ -373,7 +373,7 @@
a = abgr[3];
}
break;
- case FORMAT_G8R8_SNORM:
+ case VK_FORMAT_R8G8_SNORM:
{
signed char* gr = (signed char*)element;
@@ -381,7 +381,7 @@
g = (gr[1] & 0x00FF) * (1.0f / 0x00FF);
}
break;
- case FORMAT_G8R8:
+ case VK_FORMAT_R8G8_UNORM:
{
unsigned short gr = *(unsigned short*)element;
@@ -389,7 +389,7 @@
r = (gr & 0x00FF) * (1.0f / 0x00FF);
}
break;
- case FORMAT_G8R8I:
+ case VK_FORMAT_R8G8_SINT:
{
signed char* gr = (signed char*)element;
@@ -397,7 +397,7 @@
g = gr[1];
}
break;
- case FORMAT_G8R8UI:
+ case VK_FORMAT_R8G8_UINT:
{
unsigned char* gr = (unsigned char*)element;
@@ -405,13 +405,13 @@
g = gr[1];
}
break;
- case FORMAT_R16I:
+ case VK_FORMAT_R16_SINT:
r = *((short*)element);
break;
- case FORMAT_R16UI:
+ case VK_FORMAT_R16_UINT:
r = *((unsigned short*)element);
break;
- case FORMAT_G16R16I:
+ case VK_FORMAT_R16G16_SINT:
{
short* gr = (short*)element;
@@ -419,7 +419,7 @@
g = gr[1];
}
break;
- case FORMAT_G16R16:
+ case VK_FORMAT_R16G16_UNORM:
{
unsigned int gr = *(unsigned int*)element;
@@ -427,7 +427,7 @@
r = (gr & 0x0000FFFF) * (1.0f / 0x0000FFFF);
}
break;
- case FORMAT_G16R16UI:
+ case VK_FORMAT_R16G16_UINT:
{
unsigned short* gr = (unsigned short*)element;
@@ -435,7 +435,7 @@
g = gr[1];
}
break;
- case FORMAT_A2R10G10B10:
+ case VK_FORMAT_A2R10G10B10_UNORM_PACK32:
{
unsigned int argb = *(unsigned int*)element;
@@ -445,7 +445,7 @@
b = (argb & 0x000003FF) * (1.0f / 0x000003FF);
}
break;
- case FORMAT_A2B10G10R10:
+ case VK_FORMAT_A2B10G10R10_UNORM_PACK32:
{
unsigned int abgr = *(unsigned int*)element;
@@ -455,7 +455,7 @@
r = (abgr & 0x000003FF) * (1.0f / 0x000003FF);
}
break;
- case FORMAT_A2B10G10R10UI:
+ case VK_FORMAT_A2B10G10R10_UINT_PACK32:
{
unsigned int abgr = *(unsigned int*)element;
@@ -465,7 +465,7 @@
r = static_cast<float>(abgr & 0x000003FF);
}
break;
- case FORMAT_A16B16G16R16I:
+ case VK_FORMAT_R16G16B16A16_SINT:
{
short* abgr = (short*)element;
@@ -475,13 +475,13 @@
a = abgr[3];
}
break;
- case FORMAT_A16B16G16R16:
+ case VK_FORMAT_R16G16B16A16_UNORM:
r = ((unsigned short*)element)[0] * (1.0f / 0xFFFF);
g = ((unsigned short*)element)[1] * (1.0f / 0xFFFF);
b = ((unsigned short*)element)[2] * (1.0f / 0xFFFF);
a = ((unsigned short*)element)[3] * (1.0f / 0xFFFF);
break;
- case FORMAT_A16B16G16R16UI:
+ case VK_FORMAT_R16G16B16A16_UINT:
{
unsigned short* abgr = (unsigned short*)element;
@@ -491,7 +491,7 @@
a = abgr[3];
}
break;
- case FORMAT_A32B32G32R32I:
+ case VK_FORMAT_R32G32B32A32_SINT:
{
int* abgr = (int*)element;
@@ -501,7 +501,7 @@
a = static_cast<float>(abgr[3]);
}
break;
- case FORMAT_A32B32G32R32UI:
+ case VK_FORMAT_R32G32B32A32_UINT:
{
unsigned int* abgr = (unsigned int*)element;
@@ -511,7 +511,7 @@
a = static_cast<float>(abgr[3]);
}
break;
- case FORMAT_G32R32I:
+ case VK_FORMAT_R32G32_SINT:
{
int* gr = (int*)element;
@@ -519,7 +519,7 @@
g = static_cast<float>(gr[1]);
}
break;
- case FORMAT_G32R32UI:
+ case VK_FORMAT_R32G32_UINT:
{
unsigned int* gr = (unsigned int*)element;
@@ -527,46 +527,46 @@
g = static_cast<float>(gr[1]);
}
break;
- case FORMAT_R32I:
+ case VK_FORMAT_R32_SINT:
r = static_cast<float>(*((int*)element));
break;
- case FORMAT_R32UI:
+ case VK_FORMAT_R32_UINT:
r = static_cast<float>(*((unsigned int*)element));
break;
- case FORMAT_R16F:
+ case VK_FORMAT_R16_SFLOAT:
r = *(half*)element;
break;
- case FORMAT_G16R16F:
+ case VK_FORMAT_R16G16_SFLOAT:
r = ((half*)element)[0];
g = ((half*)element)[1];
break;
- case FORMAT_A16B16G16R16F:
+ case VK_FORMAT_R16G16B16A16_SFLOAT:
r = ((half*)element)[0];
g = ((half*)element)[1];
b = ((half*)element)[2];
a = ((half*)element)[3];
break;
- case FORMAT_R32F:
+ case VK_FORMAT_R32_SFLOAT:
r = *(float*)element;
break;
- case FORMAT_G32R32F:
+ case VK_FORMAT_R32G32_SFLOAT:
r = ((float*)element)[0];
g = ((float*)element)[1];
break;
- case FORMAT_A32B32G32R32F:
+ case VK_FORMAT_R32G32B32A32_SFLOAT:
r = ((float*)element)[0];
g = ((float*)element)[1];
b = ((float*)element)[2];
a = ((float*)element)[3];
break;
- case FORMAT_D32F:
- case FORMAT_D32FS8:
+ case VK_FORMAT_D32_SFLOAT:
+ case VK_FORMAT_D32_SFLOAT_S8_UINT:
r = *(float*)element;
g = r;
b = r;
a = r;
break;
- case FORMAT_S8:
+ case VK_FORMAT_S8_UINT:
r = *(unsigned char*)element * (1.0f / 0xFF);
break;
default:
@@ -676,58 +676,58 @@
switch(format)
{
- case FORMAT_R11_EAC:
- case FORMAT_SIGNED_R11_EAC:
- case FORMAT_RGB8_ETC2:
- case FORMAT_SRGB8_ETC2:
- case FORMAT_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:
- case FORMAT_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:
+ case VK_FORMAT_EAC_R11_UNORM_BLOCK:
+ case VK_FORMAT_EAC_R11_SNORM_BLOCK:
+ case VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK:
+ case VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK:
+ case VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK:
+ case VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK:
return (unsigned char*)buffer + 8 * (x / 4) + (y / 4) * pitchB + z * sliceB;
- case FORMAT_RG11_EAC:
- case FORMAT_SIGNED_RG11_EAC:
- case FORMAT_RGBA8_ETC2_EAC:
- case FORMAT_SRGB8_ALPHA8_ETC2_EAC:
- case FORMAT_RGBA_ASTC_4x4_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_4x4_KHR:
+ case VK_FORMAT_EAC_R11G11_UNORM_BLOCK:
+ case VK_FORMAT_EAC_R11G11_SNORM_BLOCK:
+ case VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK:
+ case VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_4x4_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_4x4_SRGB_BLOCK:
return (unsigned char*)buffer + 16 * (x / 4) + (y / 4) * pitchB + z * sliceB;
- case FORMAT_RGBA_ASTC_5x4_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_5x4_KHR:
+ case VK_FORMAT_ASTC_5x4_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_5x4_SRGB_BLOCK:
return (unsigned char*)buffer + 16 * (x / 5) + (y / 4) * pitchB + z * sliceB;
- case FORMAT_RGBA_ASTC_5x5_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_5x5_KHR:
+ case VK_FORMAT_ASTC_5x5_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_5x5_SRGB_BLOCK:
return (unsigned char*)buffer + 16 * (x / 5) + (y / 5) * pitchB + z * sliceB;
- case FORMAT_RGBA_ASTC_6x5_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_6x5_KHR:
+ case VK_FORMAT_ASTC_6x5_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_6x5_SRGB_BLOCK:
return (unsigned char*)buffer + 16 * (x / 6) + (y / 5) * pitchB + z * sliceB;
- case FORMAT_RGBA_ASTC_6x6_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_6x6_KHR:
+ case VK_FORMAT_ASTC_6x6_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_6x6_SRGB_BLOCK:
return (unsigned char*)buffer + 16 * (x / 6) + (y / 6) * pitchB + z * sliceB;
- case FORMAT_RGBA_ASTC_8x5_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_8x5_KHR:
+ case VK_FORMAT_ASTC_8x5_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_8x5_SRGB_BLOCK:
return (unsigned char*)buffer + 16 * (x / 8) + (y / 5) * pitchB + z * sliceB;
- case FORMAT_RGBA_ASTC_8x6_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_8x6_KHR:
+ case VK_FORMAT_ASTC_8x6_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_8x6_SRGB_BLOCK:
return (unsigned char*)buffer + 16 * (x / 8) + (y / 6) * pitchB + z * sliceB;
- case FORMAT_RGBA_ASTC_8x8_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_8x8_KHR:
+ case VK_FORMAT_ASTC_8x8_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_8x8_SRGB_BLOCK:
return (unsigned char*)buffer + 16 * (x / 8) + (y / 8) * pitchB + z * sliceB;
- case FORMAT_RGBA_ASTC_10x5_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_10x5_KHR:
+ case VK_FORMAT_ASTC_10x5_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_10x5_SRGB_BLOCK:
return (unsigned char*)buffer + 16 * (x / 10) + (y / 5) * pitchB + z * sliceB;
- case FORMAT_RGBA_ASTC_10x6_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_10x6_KHR:
+ case VK_FORMAT_ASTC_10x6_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_10x6_SRGB_BLOCK:
return (unsigned char*)buffer + 16 * (x / 10) + (y / 6) * pitchB + z * sliceB;
- case FORMAT_RGBA_ASTC_10x8_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_10x8_KHR:
+ case VK_FORMAT_ASTC_10x8_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_10x8_SRGB_BLOCK:
return (unsigned char*)buffer + 16 * (x / 10) + (y / 8) * pitchB + z * sliceB;
- case FORMAT_RGBA_ASTC_10x10_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_10x10_KHR:
+ case VK_FORMAT_ASTC_10x10_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_10x10_SRGB_BLOCK:
return (unsigned char*)buffer + 16 * (x / 10) + (y / 10) * pitchB + z * sliceB;
- case FORMAT_RGBA_ASTC_12x10_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_12x10_KHR:
+ case VK_FORMAT_ASTC_12x10_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_12x10_SRGB_BLOCK:
return (unsigned char*)buffer + 16 * (x / 12) + (y / 10) * pitchB + z * sliceB;
- case FORMAT_RGBA_ASTC_12x12_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_12x12_KHR:
+ case VK_FORMAT_ASTC_12x12_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_12x12_SRGB_BLOCK:
return (unsigned char*)buffer + 16 * (x / 12) + (y / 12) * pitchB + z * sliceB;
default:
return (unsigned char*)buffer + x * bytes + y * pitchB + z * samples * sliceB;
@@ -745,9 +745,9 @@
class SurfaceImplementation : public Surface
{
public:
- SurfaceImplementation(int width, int height, int depth, Format format, void *pixels, int pitch, int slice)
+ SurfaceImplementation(int width, int height, int depth, VkFormat format, void *pixels, int pitch, int slice)
: Surface(width, height, depth, format, pixels, pitch, slice) {}
- SurfaceImplementation(Resource *texture, int width, int height, int depth, int border, int samples, Format format, bool lockable, bool renderTarget, int pitchP = 0)
+ SurfaceImplementation(Resource *texture, int width, int height, int depth, int border, int samples, VkFormat format, bool lockable, bool renderTarget, int pitchP = 0)
: Surface(texture, width, height, depth, border, samples, format, lockable, renderTarget, pitchP) {}
~SurfaceImplementation() override {};
@@ -762,17 +762,17 @@
}
};
- Surface *Surface::create(int width, int height, int depth, Format format, void *pixels, int pitch, int slice)
+ Surface *Surface::create(int width, int height, int depth, VkFormat format, void *pixels, int pitch, int slice)
{
return new SurfaceImplementation(width, height, depth, format, pixels, pitch, slice);
}
- Surface *Surface::create(Resource *texture, int width, int height, int depth, int border, int samples, Format format, bool lockable, bool renderTarget, int pitchPprovided)
+ Surface *Surface::create(Resource *texture, int width, int height, int depth, int border, int samples, VkFormat format, bool lockable, bool renderTarget, int pitchPprovided)
{
return new SurfaceImplementation(texture, width, height, depth, border, samples, format, lockable, renderTarget, pitchPprovided);
}
- Surface::Surface(int width, int height, int depth, Format format, void *pixels, int pitch, int slice) : lockable(true), renderTarget(false)
+ Surface::Surface(int width, int height, int depth, VkFormat format, void *pixels, int pitch, int slice) : lockable(true), renderTarget(false)
{
resource = new Resource(0);
hasParent = false;
@@ -814,7 +814,7 @@
stencil.height = height;
stencil.depth = depth;
stencil.samples = 1;
- stencil.format = isStencil(format) ? FORMAT_S8 : FORMAT_NULL;
+ stencil.format = isStencil(format) ? VK_FORMAT_S8_UINT : VK_FORMAT_UNDEFINED;
stencil.bytes = bytes(stencil.format);
stencil.pitchB = pitchB(stencil.width, 0, stencil.format, false);
stencil.pitchP = pitchP(stencil.width, 0, stencil.format, false);
@@ -827,7 +827,7 @@
dirtyContents = true;
}
- Surface::Surface(Resource *texture, int width, int height, int depth, int border, int samples, Format format, bool lockable, bool renderTarget, int pitchPprovided) : lockable(lockable), renderTarget(renderTarget)
+ Surface::Surface(Resource *texture, int width, int height, int depth, int border, int samples, VkFormat format, bool lockable, bool renderTarget, int pitchPprovided) : lockable(lockable), renderTarget(renderTarget)
{
resource = texture ? texture : new Resource(0);
hasParent = texture != nullptr;
@@ -870,7 +870,7 @@
stencil.height = height;
stencil.depth = depth;
stencil.samples = (short)samples;
- stencil.format = isStencil(format) ? FORMAT_S8 : FORMAT_NULL;
+ stencil.format = isStencil(format) ? VK_FORMAT_S8_UINT : VK_FORMAT_UNDEFINED;
stencil.bytes = bytes(stencil.format);
stencil.pitchB = pitchB(stencil.width, 0, stencil.format, renderTarget);
stencil.pitchP = pitchP(stencil.width, 0, stencil.format, renderTarget);
@@ -988,9 +988,9 @@
{
switch(external.format)
{
- case FORMAT_A1R5G5B5:
- case FORMAT_A2R10G10B10:
- case FORMAT_A2B10G10R10:
+ case VK_FORMAT_A1R5G5B5_UNORM_PACK16:
+ case VK_FORMAT_A2R10G10B10_UNORM_PACK32:
+ case VK_FORMAT_A2B10G10R10_UNORM_PACK32:
lockExternal(0, 0, 0, LOCK_READWRITE, client);
unlockExternal();
break;
@@ -1045,7 +1045,7 @@
{
resource->lock(client);
- if(stencil.format == FORMAT_NULL)
+ if(stencil.format == VK_FORMAT_UNDEFINED)
{
return nullptr;
}
@@ -1065,102 +1065,100 @@
resource->unlock();
}
- int Surface::bytes(Format format)
+ int Surface::bytes(VkFormat format)
{
switch(format)
{
- case FORMAT_NULL: return 0;
- case FORMAT_R8I: return 1;
- case FORMAT_R8: return 1;
- case FORMAT_R16I: return 2;
- case FORMAT_R16UI: return 2;
- case FORMAT_R5G6B5: return 2;
- case FORMAT_A1R5G5B5: return 2;
- case FORMAT_R5G5B5A1: return 2;
- case FORMAT_R4G4B4A4: return 2;
- case FORMAT_R32I: return 4;
- case FORMAT_R32UI: return 4;
- case FORMAT_A8R8G8B8: return 4;
- case FORMAT_SRGB8_A8: return 4;
- case FORMAT_A8B8G8R8I: return 4;
- case FORMAT_R8UI: return 1;
- case FORMAT_G8R8UI: return 2;
- case FORMAT_A8B8G8R8UI: return 4;
- case FORMAT_A8B8G8R8: return 4;
- case FORMAT_R8_SNORM: return 1;
- case FORMAT_G8R8_SNORM: return 2;
- case FORMAT_A8B8G8R8_SNORM: return 4;
- case FORMAT_A2R10G10B10: return 4;
- case FORMAT_A2B10G10R10: return 4;
- case FORMAT_A2B10G10R10UI: return 4;
- case FORMAT_G8R8I: return 2;
- case FORMAT_G8R8: return 2;
- case FORMAT_G16R16I: return 4;
- case FORMAT_G16R16UI: return 4;
- case FORMAT_G16R16: return 4;
- case FORMAT_G32R32I: return 8;
- case FORMAT_G32R32UI: return 8;
- case FORMAT_A16B16G16R16I: return 8;
- case FORMAT_A16B16G16R16UI: return 8;
- case FORMAT_A16B16G16R16: return 8;
- case FORMAT_A32B32G32R32I: return 16;
- case FORMAT_A32B32G32R32UI: return 16;
+ case VK_FORMAT_UNDEFINED: return 0;
+ case VK_FORMAT_R8_SINT: return 1;
+ case VK_FORMAT_R8_UNORM: return 1;
+ case VK_FORMAT_R16_SINT: return 2;
+ case VK_FORMAT_R16_UINT: return 2;
+ case VK_FORMAT_R5G6B5_UNORM_PACK16: return 2;
+ case VK_FORMAT_A1R5G5B5_UNORM_PACK16: return 2;
+ case VK_FORMAT_R5G5B5A1_UNORM_PACK16: return 2;
+ case VK_FORMAT_B4G4R4A4_UNORM_PACK16: return 2;
+ case VK_FORMAT_R32_SINT: return 4;
+ case VK_FORMAT_R32_UINT: return 4;
+ case VK_FORMAT_B8G8R8A8_UNORM: return 4;
+ case VK_FORMAT_R8G8B8A8_SRGB: return 4;
+ case VK_FORMAT_R8G8B8A8_SINT: return 4;
+ case VK_FORMAT_R8_UINT: return 1;
+ case VK_FORMAT_R8G8_UINT: return 2;
+ case VK_FORMAT_R8G8B8A8_UINT: return 4;
+ case VK_FORMAT_R8G8B8A8_UNORM: return 4;
+ case VK_FORMAT_R8_SNORM: return 1;
+ case VK_FORMAT_R8G8_SNORM: return 2;
+ case VK_FORMAT_R8G8B8A8_SNORM: return 4;
+ case VK_FORMAT_A2R10G10B10_UNORM_PACK32: return 4;
+ case VK_FORMAT_A2B10G10R10_UNORM_PACK32: return 4;
+ case VK_FORMAT_A2B10G10R10_UINT_PACK32: return 4;
+ case VK_FORMAT_R8G8_SINT: return 2;
+ case VK_FORMAT_R8G8_UNORM: return 2;
+ case VK_FORMAT_R16G16_SINT: return 4;
+ case VK_FORMAT_R16G16_UINT: return 4;
+ case VK_FORMAT_R16G16_UNORM: return 4;
+ case VK_FORMAT_R32G32_SINT: return 8;
+ case VK_FORMAT_R32G32_UINT: return 8;
+ case VK_FORMAT_R16G16B16A16_SINT: return 8;
+ case VK_FORMAT_R16G16B16A16_UINT: return 8;
+ case VK_FORMAT_R16G16B16A16_UNORM: return 8;
+ case VK_FORMAT_R32G32B32A32_SINT: return 16;
+ case VK_FORMAT_R32G32B32A32_UINT: return 16;
// Compressed formats
- case FORMAT_R11_EAC: return 2;
- case FORMAT_SIGNED_R11_EAC: return 2;
- case FORMAT_RG11_EAC: return 4;
- case FORMAT_SIGNED_RG11_EAC: return 4;
- case FORMAT_RGB8_ETC2: return 2;
- case FORMAT_SRGB8_ETC2: return 2;
- case FORMAT_RGB8_PUNCHTHROUGH_ALPHA1_ETC2: return 2;
- case FORMAT_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2: return 2;
- case FORMAT_RGBA8_ETC2_EAC: return 4;
- case FORMAT_SRGB8_ALPHA8_ETC2_EAC: return 4;
- case FORMAT_RGBA_ASTC_4x4_KHR:
- case FORMAT_RGBA_ASTC_5x4_KHR:
- case FORMAT_RGBA_ASTC_5x5_KHR:
- case FORMAT_RGBA_ASTC_6x5_KHR:
- case FORMAT_RGBA_ASTC_6x6_KHR:
- case FORMAT_RGBA_ASTC_8x5_KHR:
- case FORMAT_RGBA_ASTC_8x6_KHR:
- case FORMAT_RGBA_ASTC_8x8_KHR:
- case FORMAT_RGBA_ASTC_10x5_KHR:
- case FORMAT_RGBA_ASTC_10x6_KHR:
- case FORMAT_RGBA_ASTC_10x8_KHR:
- case FORMAT_RGBA_ASTC_10x10_KHR:
- case FORMAT_RGBA_ASTC_12x10_KHR:
- case FORMAT_RGBA_ASTC_12x12_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_4x4_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_5x4_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_5x5_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_6x5_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_6x6_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_8x5_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_8x6_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_8x8_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_10x5_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_10x6_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_10x8_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_10x10_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_12x10_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_12x12_KHR: return 0; // FIXME
+ case VK_FORMAT_EAC_R11_UNORM_BLOCK: return 2;
+ case VK_FORMAT_EAC_R11_SNORM_BLOCK: return 2;
+ case VK_FORMAT_EAC_R11G11_UNORM_BLOCK: return 4;
+ case VK_FORMAT_EAC_R11G11_SNORM_BLOCK: return 4;
+ case VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK: return 2;
+ case VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK: return 2;
+ case VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK: return 2;
+ case VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK: return 2;
+ case VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK: return 4;
+ case VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK: return 4;
+ case VK_FORMAT_ASTC_4x4_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_5x4_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_5x5_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_6x5_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_6x6_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_8x5_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_8x6_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_8x8_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_10x5_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_10x6_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_10x8_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_10x10_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_12x10_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_12x12_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_4x4_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_5x4_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_5x5_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_6x5_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_6x6_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_8x5_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_8x6_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_8x8_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_10x5_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_10x6_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_10x8_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_10x10_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_12x10_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_12x12_SRGB_BLOCK: return 0; // FIXME
// Floating-point formats
- case FORMAT_R16F: return 2;
- case FORMAT_G16R16F: return 4;
- case FORMAT_A16B16G16R16F: return 8;
- case FORMAT_R32F: return 4;
- case FORMAT_G32R32F: return 8;
- case FORMAT_A32B32G32R32F: return 16;
+ case VK_FORMAT_R16_SFLOAT: return 2;
+ case VK_FORMAT_R16G16_SFLOAT: return 4;
+ case VK_FORMAT_R16G16B16A16_SFLOAT: return 8;
+ case VK_FORMAT_R32_SFLOAT: return 4;
+ case VK_FORMAT_R32G32_SFLOAT: return 8;
+ case VK_FORMAT_R32G32B32A32_SFLOAT: return 16;
// Depth/stencil formats
- case FORMAT_D16: return 2;
- case FORMAT_D24X8: return 4;
- case FORMAT_D24S8: return 4;
- case FORMAT_D32F: return 4;
- case FORMAT_D32FS8: return 4;
- case FORMAT_S8: return 1;
- case FORMAT_YV12_BT601: return 1; // Y plane only
- case FORMAT_YV12_BT709: return 1; // Y plane only
- case FORMAT_YV12_JFIF: return 1; // Y plane only
+ case VK_FORMAT_D16_UNORM: return 2;
+ case VK_FORMAT_X8_D24_UNORM_PACK32: return 4;
+ case VK_FORMAT_D24_UNORM_S8_UINT: return 4;
+ case VK_FORMAT_D32_SFLOAT: return 4;
+ case VK_FORMAT_D32_SFLOAT_S8_UINT: return 4;
+ case VK_FORMAT_S8_UINT: return 1;
+ case VK_FORMAT_G8_B8R8_2PLANE_420_UNORM: return 1; // Y plane only
default:
ASSERT(false);
}
@@ -1168,7 +1166,7 @@
return 0;
}
- int Surface::pitchB(int width, int border, Format format, bool target)
+ int Surface::pitchB(int width, int border, VkFormat format, bool target)
{
width += 2 * border;
@@ -1180,68 +1178,66 @@
switch(format)
{
- case FORMAT_R11_EAC:
- case FORMAT_SIGNED_R11_EAC:
- case FORMAT_RGB8_ETC2:
- case FORMAT_SRGB8_ETC2:
- case FORMAT_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:
- case FORMAT_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:
+ case VK_FORMAT_EAC_R11_UNORM_BLOCK:
+ case VK_FORMAT_EAC_R11_SNORM_BLOCK:
+ case VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK:
+ case VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK:
+ case VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK:
+ case VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK:
return 8 * ((width + 3) / 4); // 64 bit per 4x4 block, computed per 4 rows
- case FORMAT_RG11_EAC:
- case FORMAT_SIGNED_RG11_EAC:
- case FORMAT_RGBA8_ETC2_EAC:
- case FORMAT_SRGB8_ALPHA8_ETC2_EAC:
- case FORMAT_RGBA_ASTC_4x4_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_4x4_KHR:
+ case VK_FORMAT_EAC_R11G11_UNORM_BLOCK:
+ case VK_FORMAT_EAC_R11G11_SNORM_BLOCK:
+ case VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK:
+ case VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_4x4_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_4x4_SRGB_BLOCK:
return 16 * ((width + 3) / 4); // 128 bit per 4x4 block, computed per 4 rows
- case FORMAT_RGBA_ASTC_5x4_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_5x4_KHR:
- case FORMAT_RGBA_ASTC_5x5_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_5x5_KHR:
+ case VK_FORMAT_ASTC_5x4_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_5x4_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_5x5_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_5x5_SRGB_BLOCK:
return 16 * ((width + 4) / 5);
- case FORMAT_RGBA_ASTC_6x5_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_6x5_KHR:
- case FORMAT_RGBA_ASTC_6x6_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_6x6_KHR:
+ case VK_FORMAT_ASTC_6x5_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_6x5_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_6x6_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_6x6_SRGB_BLOCK:
return 16 * ((width + 5) / 6);
- case FORMAT_RGBA_ASTC_8x5_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_8x5_KHR:
- case FORMAT_RGBA_ASTC_8x6_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_8x6_KHR:
- case FORMAT_RGBA_ASTC_8x8_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_8x8_KHR:
+ case VK_FORMAT_ASTC_8x5_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_8x5_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_8x6_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_8x6_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_8x8_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_8x8_SRGB_BLOCK:
return 16 * ((width + 7) / 8);
- case FORMAT_RGBA_ASTC_10x5_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_10x5_KHR:
- case FORMAT_RGBA_ASTC_10x6_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_10x6_KHR:
- case FORMAT_RGBA_ASTC_10x8_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_10x8_KHR:
- case FORMAT_RGBA_ASTC_10x10_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_10x10_KHR:
+ case VK_FORMAT_ASTC_10x5_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_10x5_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_10x6_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_10x6_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_10x8_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_10x8_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_10x10_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_10x10_SRGB_BLOCK:
return 16 * ((width + 9) / 10);
- case FORMAT_RGBA_ASTC_12x10_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_12x10_KHR:
- case FORMAT_RGBA_ASTC_12x12_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_12x12_KHR:
+ case VK_FORMAT_ASTC_12x10_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_12x10_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_12x12_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_12x12_SRGB_BLOCK:
return 16 * ((width + 11) / 12);
- case FORMAT_YV12_BT601:
- case FORMAT_YV12_BT709:
- case FORMAT_YV12_JFIF:
+ case VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:
return align<16>(width);
default:
return bytes(format) * width;
}
}
- int Surface::pitchP(int width, int border, Format format, bool target)
+ int Surface::pitchP(int width, int border, VkFormat format, bool target)
{
int B = bytes(format);
return B > 0 ? pitchB(width, border, format, target) / B : 0;
}
- int Surface::sliceB(int width, int height, int border, Format format, bool target)
+ int Surface::sliceB(int width, int height, int border, VkFormat format, bool target)
{
height += 2 * border;
@@ -1253,56 +1249,56 @@
switch(format)
{
- case FORMAT_R11_EAC:
- case FORMAT_SIGNED_R11_EAC:
- case FORMAT_RG11_EAC:
- case FORMAT_SIGNED_RG11_EAC:
- case FORMAT_RGB8_ETC2:
- case FORMAT_SRGB8_ETC2:
- case FORMAT_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:
- case FORMAT_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:
- case FORMAT_RGBA8_ETC2_EAC:
- case FORMAT_SRGB8_ALPHA8_ETC2_EAC:
- case FORMAT_RGBA_ASTC_4x4_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_4x4_KHR:
- case FORMAT_RGBA_ASTC_5x4_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_5x4_KHR:
+ case VK_FORMAT_EAC_R11_UNORM_BLOCK:
+ case VK_FORMAT_EAC_R11_SNORM_BLOCK:
+ case VK_FORMAT_EAC_R11G11_UNORM_BLOCK:
+ case VK_FORMAT_EAC_R11G11_SNORM_BLOCK:
+ case VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK:
+ case VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK:
+ case VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK:
+ case VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK:
+ case VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK:
+ case VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_4x4_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_4x4_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_5x4_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_5x4_SRGB_BLOCK:
return pitchB(width, border, format, target) * ((height + 3) / 4); // Pitch computed per 4 rows
- case FORMAT_RGBA_ASTC_5x5_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_5x5_KHR:
- case FORMAT_RGBA_ASTC_6x5_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_6x5_KHR:
- case FORMAT_RGBA_ASTC_8x5_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_8x5_KHR:
- case FORMAT_RGBA_ASTC_10x5_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_10x5_KHR:
+ case VK_FORMAT_ASTC_5x5_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_5x5_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_6x5_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_6x5_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_8x5_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_8x5_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_10x5_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_10x5_SRGB_BLOCK:
return pitchB(width, border, format, target) * ((height + 4) / 5); // Pitch computed per 5 rows
- case FORMAT_RGBA_ASTC_6x6_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_6x6_KHR:
- case FORMAT_RGBA_ASTC_8x6_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_8x6_KHR:
- case FORMAT_RGBA_ASTC_10x6_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_10x6_KHR:
+ case VK_FORMAT_ASTC_6x6_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_6x6_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_8x6_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_8x6_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_10x6_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_10x6_SRGB_BLOCK:
return pitchB(width, border, format, target) * ((height + 5) / 6); // Pitch computed per 6 rows
- case FORMAT_RGBA_ASTC_8x8_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_8x8_KHR:
- case FORMAT_RGBA_ASTC_10x8_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_10x8_KHR:
+ case VK_FORMAT_ASTC_8x8_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_8x8_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_10x8_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_10x8_SRGB_BLOCK:
return pitchB(width, border, format, target) * ((height + 7) / 8); // Pitch computed per 8 rows
- case FORMAT_RGBA_ASTC_10x10_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_10x10_KHR:
- case FORMAT_RGBA_ASTC_12x10_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_12x10_KHR:
+ case VK_FORMAT_ASTC_10x10_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_10x10_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_12x10_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_12x10_SRGB_BLOCK:
return pitchB(width, border, format, target) * ((height + 9) / 10); // Pitch computed per 10 rows
- case FORMAT_RGBA_ASTC_12x12_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_12x12_KHR:
+ case VK_FORMAT_ASTC_12x12_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_12x12_SRGB_BLOCK:
return pitchB(width, border, format, target) * ((height + 11) / 12); // Pitch computed per 12 rows
default:
return pitchB(width, border, format, target) * height; // Pitch computed per row
}
}
- int Surface::sliceP(int width, int height, int border, Format format, bool target)
+ int Surface::sliceP(int width, int height, int border, VkFormat format, bool target)
{
int B = bytes(format);
@@ -1320,45 +1316,45 @@
switch(source.format)
{
- case FORMAT_R11_EAC: decodeEAC(destination, source, 1, false); break; // FIXME: Check destination format
- case FORMAT_SIGNED_R11_EAC: decodeEAC(destination, source, 1, true); break; // FIXME: Check destination format
- case FORMAT_RG11_EAC: decodeEAC(destination, source, 2, false); break; // FIXME: Check destination format
- case FORMAT_SIGNED_RG11_EAC: decodeEAC(destination, source, 2, true); break; // FIXME: Check destination format
- case FORMAT_RGB8_ETC2: decodeETC2(destination, source, 0, false); break; // FIXME: Check destination format
- case FORMAT_SRGB8_ETC2: decodeETC2(destination, source, 0, true); break; // FIXME: Check destination format
- case FORMAT_RGB8_PUNCHTHROUGH_ALPHA1_ETC2: decodeETC2(destination, source, 1, false); break; // FIXME: Check destination format
- case FORMAT_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2: decodeETC2(destination, source, 1, true); break; // FIXME: Check destination format
- case FORMAT_RGBA8_ETC2_EAC: decodeETC2(destination, source, 8, false); break; // FIXME: Check destination format
- case FORMAT_SRGB8_ALPHA8_ETC2_EAC: decodeETC2(destination, source, 8, true); break; // FIXME: Check destination format
- case FORMAT_RGBA_ASTC_4x4_KHR: decodeASTC(destination, source, 4, 4, 1, false); break; // FIXME: Check destination format
- case FORMAT_RGBA_ASTC_5x4_KHR: decodeASTC(destination, source, 5, 4, 1, false); break; // FIXME: Check destination format
- case FORMAT_RGBA_ASTC_5x5_KHR: decodeASTC(destination, source, 5, 5, 1, false); break; // FIXME: Check destination format
- case FORMAT_RGBA_ASTC_6x5_KHR: decodeASTC(destination, source, 6, 5, 1, false); break; // FIXME: Check destination format
- case FORMAT_RGBA_ASTC_6x6_KHR: decodeASTC(destination, source, 6, 6, 1, false); break; // FIXME: Check destination format
- case FORMAT_RGBA_ASTC_8x5_KHR: decodeASTC(destination, source, 8, 5, 1, false); break; // FIXME: Check destination format
- case FORMAT_RGBA_ASTC_8x6_KHR: decodeASTC(destination, source, 8, 6, 1, false); break; // FIXME: Check destination format
- case FORMAT_RGBA_ASTC_8x8_KHR: decodeASTC(destination, source, 8, 8, 1, false); break; // FIXME: Check destination format
- case FORMAT_RGBA_ASTC_10x5_KHR: decodeASTC(destination, source, 10, 5, 1, false); break; // FIXME: Check destination format
- case FORMAT_RGBA_ASTC_10x6_KHR: decodeASTC(destination, source, 10, 6, 1, false); break; // FIXME: Check destination format
- case FORMAT_RGBA_ASTC_10x8_KHR: decodeASTC(destination, source, 10, 8, 1, false); break; // FIXME: Check destination format
- case FORMAT_RGBA_ASTC_10x10_KHR: decodeASTC(destination, source, 10, 10, 1, false); break; // FIXME: Check destination format
- case FORMAT_RGBA_ASTC_12x10_KHR: decodeASTC(destination, source, 12, 10, 1, false); break; // FIXME: Check destination format
- case FORMAT_RGBA_ASTC_12x12_KHR: decodeASTC(destination, source, 12, 12, 1, false); break; // FIXME: Check destination format
- case FORMAT_SRGB8_ALPHA8_ASTC_4x4_KHR: decodeASTC(destination, source, 4, 4, 1, true); break; // FIXME: Check destination format
- case FORMAT_SRGB8_ALPHA8_ASTC_5x4_KHR: decodeASTC(destination, source, 5, 4, 1, true); break; // FIXME: Check destination format
- case FORMAT_SRGB8_ALPHA8_ASTC_5x5_KHR: decodeASTC(destination, source, 5, 5, 1, true); break; // FIXME: Check destination format
- case FORMAT_SRGB8_ALPHA8_ASTC_6x5_KHR: decodeASTC(destination, source, 6, 5, 1, true); break; // FIXME: Check destination format
- case FORMAT_SRGB8_ALPHA8_ASTC_6x6_KHR: decodeASTC(destination, source, 6, 6, 1, true); break; // FIXME: Check destination format
- case FORMAT_SRGB8_ALPHA8_ASTC_8x5_KHR: decodeASTC(destination, source, 8, 5, 1, true); break; // FIXME: Check destination format
- case FORMAT_SRGB8_ALPHA8_ASTC_8x6_KHR: decodeASTC(destination, source, 8, 6, 1, true); break; // FIXME: Check destination format
- case FORMAT_SRGB8_ALPHA8_ASTC_8x8_KHR: decodeASTC(destination, source, 8, 8, 1, true); break; // FIXME: Check destination format
- case FORMAT_SRGB8_ALPHA8_ASTC_10x5_KHR: decodeASTC(destination, source, 10, 5, 1, true); break; // FIXME: Check destination format
- case FORMAT_SRGB8_ALPHA8_ASTC_10x6_KHR: decodeASTC(destination, source, 10, 6, 1, true); break; // FIXME: Check destination format
- case FORMAT_SRGB8_ALPHA8_ASTC_10x8_KHR: decodeASTC(destination, source, 10, 8, 1, true); break; // FIXME: Check destination format
- case FORMAT_SRGB8_ALPHA8_ASTC_10x10_KHR: decodeASTC(destination, source, 10, 10, 1, true); break; // FIXME: Check destination format
- case FORMAT_SRGB8_ALPHA8_ASTC_12x10_KHR: decodeASTC(destination, source, 12, 10, 1, true); break; // FIXME: Check destination format
- case FORMAT_SRGB8_ALPHA8_ASTC_12x12_KHR: decodeASTC(destination, source, 12, 12, 1, true); break; // FIXME: Check destination format
- default: genericUpdate(destination, source); break;
+ case VK_FORMAT_EAC_R11_UNORM_BLOCK: decodeEAC(destination, source, 1, false); break; // FIXME: Check destination format
+ case VK_FORMAT_EAC_R11_SNORM_BLOCK: decodeEAC(destination, source, 1, true); break; // FIXME: Check destination format
+ case VK_FORMAT_EAC_R11G11_UNORM_BLOCK: decodeEAC(destination, source, 2, false); break; // FIXME: Check destination format
+ case VK_FORMAT_EAC_R11G11_SNORM_BLOCK: decodeEAC(destination, source, 2, true); break; // FIXME: Check destination format
+ case VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK: decodeETC2(destination, source, 0, false); break; // FIXME: Check destination format
+ case VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK: decodeETC2(destination, source, 0, true); break; // FIXME: Check destination format
+ case VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK: decodeETC2(destination, source, 1, false); break; // FIXME: Check destination format
+ case VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK: decodeETC2(destination, source, 1, true); break; // FIXME: Check destination format
+ case VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK: decodeETC2(destination, source, 8, false); break; // FIXME: Check destination format
+ case VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK: decodeETC2(destination, source, 8, true); break; // FIXME: Check destination format
+ case VK_FORMAT_ASTC_4x4_UNORM_BLOCK: decodeASTC(destination, source, 4, 4, 1, false); break; // FIXME: Check destination format
+ case VK_FORMAT_ASTC_5x4_UNORM_BLOCK: decodeASTC(destination, source, 5, 4, 1, false); break; // FIXME: Check destination format
+ case VK_FORMAT_ASTC_5x5_UNORM_BLOCK: decodeASTC(destination, source, 5, 5, 1, false); break; // FIXME: Check destination format
+ case VK_FORMAT_ASTC_6x5_UNORM_BLOCK: decodeASTC(destination, source, 6, 5, 1, false); break; // FIXME: Check destination format
+ case VK_FORMAT_ASTC_6x6_UNORM_BLOCK: decodeASTC(destination, source, 6, 6, 1, false); break; // FIXME: Check destination format
+ case VK_FORMAT_ASTC_8x5_UNORM_BLOCK: decodeASTC(destination, source, 8, 5, 1, false); break; // FIXME: Check destination format
+ case VK_FORMAT_ASTC_8x6_UNORM_BLOCK: decodeASTC(destination, source, 8, 6, 1, false); break; // FIXME: Check destination format
+ case VK_FORMAT_ASTC_8x8_UNORM_BLOCK: decodeASTC(destination, source, 8, 8, 1, false); break; // FIXME: Check destination format
+ case VK_FORMAT_ASTC_10x5_UNORM_BLOCK: decodeASTC(destination, source, 10, 5, 1, false); break; // FIXME: Check destination format
+ case VK_FORMAT_ASTC_10x6_UNORM_BLOCK: decodeASTC(destination, source, 10, 6, 1, false); break; // FIXME: Check destination format
+ case VK_FORMAT_ASTC_10x8_UNORM_BLOCK: decodeASTC(destination, source, 10, 8, 1, false); break; // FIXME: Check destination format
+ case VK_FORMAT_ASTC_10x10_UNORM_BLOCK: decodeASTC(destination, source, 10, 10, 1, false); break; // FIXME: Check destination format
+ case VK_FORMAT_ASTC_12x10_UNORM_BLOCK: decodeASTC(destination, source, 12, 10, 1, false); break; // FIXME: Check destination format
+ case VK_FORMAT_ASTC_12x12_UNORM_BLOCK: decodeASTC(destination, source, 12, 12, 1, false); break; // FIXME: Check destination format
+ case VK_FORMAT_ASTC_4x4_SRGB_BLOCK: decodeASTC(destination, source, 4, 4, 1, true); break; // FIXME: Check destination format
+ case VK_FORMAT_ASTC_5x4_SRGB_BLOCK: decodeASTC(destination, source, 5, 4, 1, true); break; // FIXME: Check destination format
+ case VK_FORMAT_ASTC_5x5_SRGB_BLOCK: decodeASTC(destination, source, 5, 5, 1, true); break; // FIXME: Check destination format
+ case VK_FORMAT_ASTC_6x5_SRGB_BLOCK: decodeASTC(destination, source, 6, 5, 1, true); break; // FIXME: Check destination format
+ case VK_FORMAT_ASTC_6x6_SRGB_BLOCK: decodeASTC(destination, source, 6, 6, 1, true); break; // FIXME: Check destination format
+ case VK_FORMAT_ASTC_8x5_SRGB_BLOCK: decodeASTC(destination, source, 8, 5, 1, true); break; // FIXME: Check destination format
+ case VK_FORMAT_ASTC_8x6_SRGB_BLOCK: decodeASTC(destination, source, 8, 6, 1, true); break; // FIXME: Check destination format
+ case VK_FORMAT_ASTC_8x8_SRGB_BLOCK: decodeASTC(destination, source, 8, 8, 1, true); break; // FIXME: Check destination format
+ case VK_FORMAT_ASTC_10x5_SRGB_BLOCK: decodeASTC(destination, source, 10, 5, 1, true); break; // FIXME: Check destination format
+ case VK_FORMAT_ASTC_10x6_SRGB_BLOCK: decodeASTC(destination, source, 10, 6, 1, true); break; // FIXME: Check destination format
+ case VK_FORMAT_ASTC_10x8_SRGB_BLOCK: decodeASTC(destination, source, 10, 8, 1, true); break; // FIXME: Check destination format
+ case VK_FORMAT_ASTC_10x10_SRGB_BLOCK: decodeASTC(destination, source, 10, 10, 1, true); break; // FIXME: Check destination format
+ case VK_FORMAT_ASTC_12x10_SRGB_BLOCK: decodeASTC(destination, source, 12, 10, 1, true); break; // FIXME: Check destination format
+ case VK_FORMAT_ASTC_12x12_SRGB_BLOCK: decodeASTC(destination, source, 12, 12, 1, true); break; // FIXME: Check destination format
+ default: genericUpdate(destination, source); break;
}
}
}
@@ -1810,7 +1806,7 @@
{
}
- size_t Surface::size(int width, int height, int depth, int border, int samples, Format format)
+ size_t Surface::size(int width, int height, int depth, int border, int samples, VkFormat format)
{
samples = max(1, samples);
@@ -1829,9 +1825,7 @@
// Force an out-of-memory if larger, or let the caller report an error.
return size < 0x80000000u ? (size_t)size : std::numeric_limits<size_t>::max();
}
- case FORMAT_YV12_BT601:
- case FORMAT_YV12_BT709:
- case FORMAT_YV12_JFIF:
+ case VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:
{
width += 2 * border;
height += 2 * border;
@@ -1846,50 +1840,50 @@
}
}
- bool Surface::isStencil(Format format)
+ bool Surface::isStencil(VkFormat format)
{
switch(format)
{
- case FORMAT_D16:
- case FORMAT_D24X8:
- case FORMAT_D32F:
+ case VK_FORMAT_D16_UNORM:
+ case VK_FORMAT_X8_D24_UNORM_PACK32:
+ case VK_FORMAT_D32_SFLOAT:
return false;
- case FORMAT_D24S8:
- case FORMAT_S8:
- case FORMAT_D32FS8:
+ case VK_FORMAT_D24_UNORM_S8_UINT:
+ case VK_FORMAT_S8_UINT:
+ case VK_FORMAT_D32_SFLOAT_S8_UINT:
return true;
default:
return false;
}
}
- bool Surface::isDepth(Format format)
+ bool Surface::isDepth(VkFormat format)
{
switch(format)
{
- case FORMAT_D16:
- case FORMAT_D24X8:
- case FORMAT_D24S8:
- case FORMAT_D32F:
- case FORMAT_D32FS8:
+ case VK_FORMAT_D16_UNORM:
+ case VK_FORMAT_X8_D24_UNORM_PACK32:
+ case VK_FORMAT_D24_UNORM_S8_UINT:
+ case VK_FORMAT_D32_SFLOAT:
+ case VK_FORMAT_D32_SFLOAT_S8_UINT:
return true;
- case FORMAT_S8:
+ case VK_FORMAT_S8_UINT:
return false;
default:
return false;
}
}
- bool Surface::hasQuadLayout(Format format)
+ bool Surface::hasQuadLayout(VkFormat format)
{
switch(format)
{
- case FORMAT_D16:
- case FORMAT_D24X8:
- case FORMAT_D24S8:
- case FORMAT_D32F:
- case FORMAT_D32FS8:
- case FORMAT_S8:
+ case VK_FORMAT_D16_UNORM:
+ case VK_FORMAT_X8_D24_UNORM_PACK32:
+ case VK_FORMAT_D24_UNORM_S8_UINT:
+ case VK_FORMAT_D32_SFLOAT:
+ case VK_FORMAT_D32_SFLOAT_S8_UINT:
+ case VK_FORMAT_S8_UINT:
return true;
default:
break;
@@ -1898,54 +1892,52 @@
return false;
}
- bool Surface::isFloatFormat(Format format)
+ bool Surface::isFloatFormat(VkFormat format)
{
switch(format)
{
- case FORMAT_R5G6B5:
- case FORMAT_A8R8G8B8:
- case FORMAT_SRGB8_A8:
- case FORMAT_A8B8G8R8I:
- case FORMAT_R8UI:
- case FORMAT_G8R8UI:
- case FORMAT_A8B8G8R8UI:
- case FORMAT_A8B8G8R8:
- case FORMAT_G8R8I:
- case FORMAT_G8R8:
- case FORMAT_A2B10G10R10:
- case FORMAT_A2B10G10R10UI:
- case FORMAT_R8_SNORM:
- case FORMAT_G8R8_SNORM:
- case FORMAT_A8B8G8R8_SNORM:
- case FORMAT_R16I:
- case FORMAT_R16UI:
- case FORMAT_G16R16I:
- case FORMAT_G16R16UI:
- case FORMAT_G16R16:
- case FORMAT_A16B16G16R16I:
- case FORMAT_A16B16G16R16UI:
- case FORMAT_A16B16G16R16:
- case FORMAT_R8I:
- case FORMAT_R8:
- case FORMAT_S8:
- case FORMAT_YV12_BT601:
- case FORMAT_YV12_BT709:
- case FORMAT_YV12_JFIF:
- case FORMAT_R32I:
- case FORMAT_R32UI:
- case FORMAT_G32R32I:
- case FORMAT_G32R32UI:
- case FORMAT_A32B32G32R32I:
- case FORMAT_A32B32G32R32UI:
+ case VK_FORMAT_R5G6B5_UNORM_PACK16:
+ case VK_FORMAT_B8G8R8A8_UNORM:
+ case VK_FORMAT_R8G8B8A8_SRGB:
+ case VK_FORMAT_R8G8B8A8_SINT:
+ case VK_FORMAT_R8_UINT:
+ case VK_FORMAT_R8G8_UINT:
+ case VK_FORMAT_R8G8B8A8_UINT:
+ case VK_FORMAT_R8G8B8A8_UNORM:
+ case VK_FORMAT_R8G8_SINT:
+ case VK_FORMAT_R8G8_UNORM:
+ case VK_FORMAT_A2B10G10R10_UNORM_PACK32:
+ case VK_FORMAT_A2B10G10R10_UINT_PACK32:
+ case VK_FORMAT_R8_SNORM:
+ case VK_FORMAT_R8G8_SNORM:
+ case VK_FORMAT_R8G8B8A8_SNORM:
+ case VK_FORMAT_R16_SINT:
+ case VK_FORMAT_R16_UINT:
+ case VK_FORMAT_R16G16_SINT:
+ case VK_FORMAT_R16G16_UINT:
+ case VK_FORMAT_R16G16_UNORM:
+ case VK_FORMAT_R16G16B16A16_SINT:
+ case VK_FORMAT_R16G16B16A16_UINT:
+ case VK_FORMAT_R16G16B16A16_UNORM:
+ case VK_FORMAT_R8_SINT:
+ case VK_FORMAT_R8_UNORM:
+ case VK_FORMAT_S8_UINT:
+ case VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:
+ case VK_FORMAT_R32_SINT:
+ case VK_FORMAT_R32_UINT:
+ case VK_FORMAT_R32G32_SINT:
+ case VK_FORMAT_R32G32_UINT:
+ case VK_FORMAT_R32G32B32A32_SINT:
+ case VK_FORMAT_R32G32B32A32_UINT:
return false;
- case FORMAT_R16F:
- case FORMAT_G16R16F:
- case FORMAT_A16B16G16R16F:
- case FORMAT_R32F:
- case FORMAT_G32R32F:
- case FORMAT_A32B32G32R32F:
- case FORMAT_D32F:
- case FORMAT_D32FS8:
+ case VK_FORMAT_R16_SFLOAT:
+ case VK_FORMAT_R16G16_SFLOAT:
+ case VK_FORMAT_R16G16B16A16_SFLOAT:
+ case VK_FORMAT_R32_SFLOAT:
+ case VK_FORMAT_R32G32_SFLOAT:
+ case VK_FORMAT_R32G32B32A32_SFLOAT:
+ case VK_FORMAT_D32_SFLOAT:
+ case VK_FORMAT_D32_SFLOAT_S8_UINT:
return true;
default:
ASSERT(false);
@@ -1954,53 +1946,51 @@
return false;
}
- bool Surface::isUnsignedComponent(Format format, int component)
+ bool Surface::isUnsignedComponent(VkFormat format, int component)
{
switch(format)
{
- case FORMAT_NULL:
- case FORMAT_R5G6B5:
- case FORMAT_A8R8G8B8:
- case FORMAT_A8B8G8R8:
- case FORMAT_SRGB8_A8:
- case FORMAT_G8R8:
- case FORMAT_A2B10G10R10:
- case FORMAT_A2B10G10R10UI:
- case FORMAT_R16UI:
- case FORMAT_G16R16:
- case FORMAT_G16R16UI:
- case FORMAT_A16B16G16R16:
- case FORMAT_A16B16G16R16UI:
- case FORMAT_R32UI:
- case FORMAT_G32R32UI:
- case FORMAT_A32B32G32R32UI:
- case FORMAT_R8UI:
- case FORMAT_G8R8UI:
- case FORMAT_A8B8G8R8UI:
- case FORMAT_D32F:
- case FORMAT_D32FS8:
- case FORMAT_R8:
- case FORMAT_YV12_BT601:
- case FORMAT_YV12_BT709:
- case FORMAT_YV12_JFIF:
+ case VK_FORMAT_UNDEFINED:
+ case VK_FORMAT_R5G6B5_UNORM_PACK16:
+ case VK_FORMAT_B8G8R8A8_UNORM:
+ case VK_FORMAT_R8G8B8A8_UNORM:
+ case VK_FORMAT_R8G8B8A8_SRGB:
+ case VK_FORMAT_R8G8_UNORM:
+ case VK_FORMAT_A2B10G10R10_UNORM_PACK32:
+ case VK_FORMAT_A2B10G10R10_UINT_PACK32:
+ case VK_FORMAT_R16_UINT:
+ case VK_FORMAT_R16G16_UNORM:
+ case VK_FORMAT_R16G16_UINT:
+ case VK_FORMAT_R16G16B16A16_UNORM:
+ case VK_FORMAT_R16G16B16A16_UINT:
+ case VK_FORMAT_R32_UINT:
+ case VK_FORMAT_R32G32_UINT:
+ case VK_FORMAT_R32G32B32A32_UINT:
+ case VK_FORMAT_R8_UINT:
+ case VK_FORMAT_R8G8_UINT:
+ case VK_FORMAT_R8G8B8A8_UINT:
+ case VK_FORMAT_D32_SFLOAT:
+ case VK_FORMAT_D32_SFLOAT_S8_UINT:
+ case VK_FORMAT_R8_UNORM:
+ case VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:
return true;
- case FORMAT_A8B8G8R8I:
- case FORMAT_A16B16G16R16I:
- case FORMAT_A32B32G32R32I:
- case FORMAT_A8B8G8R8_SNORM:
- case FORMAT_A32B32G32R32F:
+ case VK_FORMAT_R8G8B8A8_SINT:
+ case VK_FORMAT_R16G16B16A16_SINT:
+ case VK_FORMAT_R32G32B32A32_SINT:
+ case VK_FORMAT_R8G8B8A8_SNORM:
+ case VK_FORMAT_R32G32B32A32_SFLOAT:
return false;
- case FORMAT_R32F:
- case FORMAT_R8I:
- case FORMAT_R16I:
- case FORMAT_R32I:
- case FORMAT_R8_SNORM:
+ case VK_FORMAT_R32_SFLOAT:
+ case VK_FORMAT_R8_SINT:
+ case VK_FORMAT_R16_SINT:
+ case VK_FORMAT_R32_SINT:
+ case VK_FORMAT_R8_SNORM:
return component >= 1;
- case FORMAT_G32R32F:
- case FORMAT_G8R8I:
- case FORMAT_G16R16I:
- case FORMAT_G32R32I:
- case FORMAT_G8R8_SNORM:
+ case VK_FORMAT_R32G32_SFLOAT:
+ case VK_FORMAT_R8G8_SINT:
+ case VK_FORMAT_R16G16_SINT:
+ case VK_FORMAT_R32G32_SINT:
+ case VK_FORMAT_R8G8_SNORM:
return component >= 2;
default:
ASSERT(false);
@@ -2009,142 +1999,142 @@
return false;
}
- bool Surface::isSRGBreadable(Format format)
+ bool Surface::isSRGBreadable(VkFormat format)
{
// Keep in sync with Capabilities::isSRGBreadable
switch(format)
{
- case FORMAT_A8R8G8B8:
- case FORMAT_A8B8G8R8:
- case FORMAT_SRGB8_A8:
- case FORMAT_R5G6B5:
- case FORMAT_A1R5G5B5:
+ case VK_FORMAT_B8G8R8A8_UNORM:
+ case VK_FORMAT_R8G8B8A8_UNORM:
+ case VK_FORMAT_R8G8B8A8_SRGB:
+ case VK_FORMAT_R5G6B5_UNORM_PACK16:
+ case VK_FORMAT_A1R5G5B5_UNORM_PACK16:
return true;
default:
return false;
}
}
- bool Surface::isSRGBwritable(Format format)
+ bool Surface::isSRGBwritable(VkFormat format)
{
// Keep in sync with Capabilities::isSRGBwritable
switch(format)
{
- case FORMAT_NULL:
- case FORMAT_A8R8G8B8:
- case FORMAT_A8B8G8R8:
- case FORMAT_SRGB8_A8:
- case FORMAT_R5G6B5:
+ case VK_FORMAT_UNDEFINED:
+ case VK_FORMAT_B8G8R8A8_UNORM:
+ case VK_FORMAT_R8G8B8A8_UNORM:
+ case VK_FORMAT_R8G8B8A8_SRGB:
+ case VK_FORMAT_R5G6B5_UNORM_PACK16:
return true;
default:
return false;
}
}
- bool Surface::isSRGBformat(Format format)
+ bool Surface::isSRGBformat(VkFormat format)
{
switch(format)
{
- case FORMAT_SRGB8_A8:
+ case VK_FORMAT_R8G8B8A8_SRGB:
return true;
default:
return false;
}
}
- bool Surface::isCompressed(Format format)
+ bool Surface::isCompressed(VkFormat format)
{
switch(format)
{
- case FORMAT_R11_EAC:
- case FORMAT_SIGNED_R11_EAC:
- case FORMAT_RG11_EAC:
- case FORMAT_SIGNED_RG11_EAC:
- case FORMAT_RGB8_ETC2:
- case FORMAT_SRGB8_ETC2:
- case FORMAT_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:
- case FORMAT_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:
- case FORMAT_RGBA8_ETC2_EAC:
- case FORMAT_SRGB8_ALPHA8_ETC2_EAC:
- case FORMAT_RGBA_ASTC_4x4_KHR:
- case FORMAT_RGBA_ASTC_5x4_KHR:
- case FORMAT_RGBA_ASTC_5x5_KHR:
- case FORMAT_RGBA_ASTC_6x5_KHR:
- case FORMAT_RGBA_ASTC_6x6_KHR:
- case FORMAT_RGBA_ASTC_8x5_KHR:
- case FORMAT_RGBA_ASTC_8x6_KHR:
- case FORMAT_RGBA_ASTC_8x8_KHR:
- case FORMAT_RGBA_ASTC_10x5_KHR:
- case FORMAT_RGBA_ASTC_10x6_KHR:
- case FORMAT_RGBA_ASTC_10x8_KHR:
- case FORMAT_RGBA_ASTC_10x10_KHR:
- case FORMAT_RGBA_ASTC_12x10_KHR:
- case FORMAT_RGBA_ASTC_12x12_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_4x4_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_5x4_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_5x5_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_6x5_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_6x6_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_8x5_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_8x6_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_8x8_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_10x5_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_10x6_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_10x8_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_10x10_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_12x10_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_12x12_KHR:
+ case VK_FORMAT_EAC_R11_UNORM_BLOCK:
+ case VK_FORMAT_EAC_R11_SNORM_BLOCK:
+ case VK_FORMAT_EAC_R11G11_UNORM_BLOCK:
+ case VK_FORMAT_EAC_R11G11_SNORM_BLOCK:
+ case VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK:
+ case VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK:
+ case VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK:
+ case VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK:
+ case VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK:
+ case VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_4x4_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_5x4_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_5x5_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_6x5_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_6x6_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_8x5_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_8x6_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_8x8_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_10x5_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_10x6_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_10x8_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_10x10_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_12x10_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_12x12_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_4x4_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_5x4_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_5x5_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_6x5_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_6x6_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_8x5_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_8x6_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_8x8_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_10x5_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_10x6_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_10x8_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_10x10_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_12x10_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_12x12_SRGB_BLOCK:
return true;
default:
return false;
}
}
- bool Surface::isSignedNonNormalizedInteger(Format format)
+ bool Surface::isSignedNonNormalizedInteger(VkFormat format)
{
switch(format)
{
- case FORMAT_A8B8G8R8I:
- case FORMAT_G8R8I:
- case FORMAT_R8I:
- case FORMAT_A16B16G16R16I:
- case FORMAT_G16R16I:
- case FORMAT_R16I:
- case FORMAT_A32B32G32R32I:
- case FORMAT_G32R32I:
- case FORMAT_R32I:
+ case VK_FORMAT_R8G8B8A8_SINT:
+ case VK_FORMAT_R8G8_SINT:
+ case VK_FORMAT_R8_SINT:
+ case VK_FORMAT_R16G16B16A16_SINT:
+ case VK_FORMAT_R16G16_SINT:
+ case VK_FORMAT_R16_SINT:
+ case VK_FORMAT_R32G32B32A32_SINT:
+ case VK_FORMAT_R32G32_SINT:
+ case VK_FORMAT_R32_SINT:
return true;
default:
return false;
}
}
- bool Surface::isUnsignedNonNormalizedInteger(Format format)
+ bool Surface::isUnsignedNonNormalizedInteger(VkFormat format)
{
switch(format)
{
- case FORMAT_A8B8G8R8UI:
- case FORMAT_G8R8UI:
- case FORMAT_R8UI:
- case FORMAT_A16B16G16R16UI:
- case FORMAT_G16R16UI:
- case FORMAT_R16UI:
- case FORMAT_A32B32G32R32UI:
- case FORMAT_G32R32UI:
- case FORMAT_R32UI:
+ case VK_FORMAT_R8G8B8A8_UINT:
+ case VK_FORMAT_R8G8_UINT:
+ case VK_FORMAT_R8_UINT:
+ case VK_FORMAT_R16G16B16A16_UINT:
+ case VK_FORMAT_R16G16_UINT:
+ case VK_FORMAT_R16_UINT:
+ case VK_FORMAT_R32G32B32A32_UINT:
+ case VK_FORMAT_R32G32_UINT:
+ case VK_FORMAT_R32_UINT:
return true;
default:
return false;
}
}
- bool Surface::isNonNormalizedInteger(Format format)
+ bool Surface::isNonNormalizedInteger(VkFormat format)
{
return isSignedNonNormalizedInteger(format) ||
isUnsignedNonNormalizedInteger(format);
}
- bool Surface::isNormalizedInteger(Format format)
+ bool Surface::isNormalizedInteger(VkFormat format)
{
return !isFloatFormat(format) &&
!isNonNormalizedInteger(format) &&
@@ -2153,49 +2143,47 @@
!isStencil(format);
}
- int Surface::componentCount(Format format)
+ int Surface::componentCount(VkFormat format)
{
switch(format)
{
- case FORMAT_R5G6B5: return 3;
- case FORMAT_A8R8G8B8: return 4;
- case FORMAT_SRGB8_A8: return 4;
- case FORMAT_A8B8G8R8I: return 4;
- case FORMAT_A8B8G8R8: return 4;
- case FORMAT_G8R8I: return 2;
- case FORMAT_G8R8: return 2;
- case FORMAT_R8_SNORM: return 1;
- case FORMAT_G8R8_SNORM: return 2;
- case FORMAT_A8B8G8R8_SNORM:return 4;
- case FORMAT_R8UI: return 1;
- case FORMAT_G8R8UI: return 2;
- case FORMAT_A8B8G8R8UI: return 4;
- case FORMAT_A2B10G10R10: return 4;
- case FORMAT_A2B10G10R10UI: return 4;
- case FORMAT_G16R16I: return 2;
- case FORMAT_G16R16UI: return 2;
- case FORMAT_G16R16: return 2;
- case FORMAT_G32R32I: return 2;
- case FORMAT_G32R32UI: return 2;
- case FORMAT_A16B16G16R16I: return 4;
- case FORMAT_A16B16G16R16UI: return 4;
- case FORMAT_A16B16G16R16: return 4;
- case FORMAT_A32B32G32R32I: return 4;
- case FORMAT_A32B32G32R32UI: return 4;
- case FORMAT_R32F: return 1;
- case FORMAT_G32R32F: return 2;
- case FORMAT_A32B32G32R32F: return 4;
- case FORMAT_D32F: return 1;
- case FORMAT_D32FS8: return 1;
- case FORMAT_R8I: return 1;
- case FORMAT_R8: return 1;
- case FORMAT_R16I: return 1;
- case FORMAT_R16UI: return 1;
- case FORMAT_R32I: return 1;
- case FORMAT_R32UI: return 1;
- case FORMAT_YV12_BT601: return 3;
- case FORMAT_YV12_BT709: return 3;
- case FORMAT_YV12_JFIF: return 3;
+ case VK_FORMAT_R5G6B5_UNORM_PACK16: return 3;
+ case VK_FORMAT_B8G8R8A8_UNORM: return 4;
+ case VK_FORMAT_R8G8B8A8_SRGB: return 4;
+ case VK_FORMAT_R8G8B8A8_SINT: return 4;
+ case VK_FORMAT_R8G8B8A8_UNORM: return 4;
+ case VK_FORMAT_R8G8_SINT: return 2;
+ case VK_FORMAT_R8G8_UNORM: return 2;
+ case VK_FORMAT_R8_SNORM: return 1;
+ case VK_FORMAT_R8G8_SNORM: return 2;
+ case VK_FORMAT_R8G8B8A8_SNORM: return 4;
+ case VK_FORMAT_R8_UINT: return 1;
+ case VK_FORMAT_R8G8_UINT: return 2;
+ case VK_FORMAT_R8G8B8A8_UINT: return 4;
+ case VK_FORMAT_A2B10G10R10_UNORM_PACK32: return 4;
+ case VK_FORMAT_A2B10G10R10_UINT_PACK32: return 4;
+ case VK_FORMAT_R16G16_SINT: return 2;
+ case VK_FORMAT_R16G16_UINT: return 2;
+ case VK_FORMAT_R16G16_UNORM: return 2;
+ case VK_FORMAT_R32G32_SINT: return 2;
+ case VK_FORMAT_R32G32_UINT: return 2;
+ case VK_FORMAT_R16G16B16A16_SINT: return 4;
+ case VK_FORMAT_R16G16B16A16_UINT: return 4;
+ case VK_FORMAT_R16G16B16A16_UNORM: return 4;
+ case VK_FORMAT_R32G32B32A32_SINT: return 4;
+ case VK_FORMAT_R32G32B32A32_UINT: return 4;
+ case VK_FORMAT_R32_SFLOAT: return 1;
+ case VK_FORMAT_R32G32_SFLOAT: return 2;
+ case VK_FORMAT_R32G32B32A32_SFLOAT: return 4;
+ case VK_FORMAT_D32_SFLOAT: return 1;
+ case VK_FORMAT_D32_SFLOAT_S8_UINT: return 1;
+ case VK_FORMAT_R8_SINT: return 1;
+ case VK_FORMAT_R8_UNORM: return 1;
+ case VK_FORMAT_R16_SINT: return 1;
+ case VK_FORMAT_R16_UINT: return 1;
+ case VK_FORMAT_R32_SINT: return 1;
+ case VK_FORMAT_R32_UINT: return 1;
+ case VK_FORMAT_G8_B8R8_2PLANE_420_UNORM: return 3;
default:
ASSERT(false);
}
@@ -2203,7 +2191,7 @@
return 1;
}
- void *Surface::allocateBuffer(int width, int height, int depth, int border, int samples, Format format)
+ void *Surface::allocateBuffer(int width, int height, int depth, int border, int samples, VkFormat format)
{
return allocate(size(width, height, depth, border, samples, format));
}
@@ -2299,7 +2287,7 @@
return;
}
- if(internal.format == FORMAT_NULL)
+ if(internal.format == VK_FORMAT_UNDEFINED)
{
return;
}
@@ -2430,7 +2418,7 @@
return;
}
- if(stencil.format == FORMAT_NULL)
+ if(stencil.format == VK_FORMAT_UNDEFINED)
{
return;
}
@@ -2714,153 +2702,151 @@
external.samples == internal.samples;
}
- Format Surface::selectInternalFormat(Format format) const
+ VkFormat Surface::selectInternalFormat(VkFormat format) const
{
switch(format)
{
- case FORMAT_NULL:
- return FORMAT_NULL;
- case FORMAT_A1R5G5B5:
- return FORMAT_A8R8G8B8;
- case FORMAT_R8I:
- return FORMAT_R8I;
- case FORMAT_R8UI:
- return FORMAT_R8UI;
- case FORMAT_R8_SNORM:
- return FORMAT_R8_SNORM;
- case FORMAT_R8:
- return FORMAT_R8;
- case FORMAT_R16I:
- return FORMAT_R16I;
- case FORMAT_R16UI:
- return FORMAT_R16UI;
- case FORMAT_R32I:
- return FORMAT_R32I;
- case FORMAT_R32UI:
- return FORMAT_R32UI;
- case FORMAT_A16B16G16R16I:
- return FORMAT_A16B16G16R16I;
- case FORMAT_A16B16G16R16UI:
- return FORMAT_A16B16G16R16UI;
- case FORMAT_A2R10G10B10:
- case FORMAT_A2B10G10R10:
- case FORMAT_A16B16G16R16:
- return FORMAT_A16B16G16R16;
- case FORMAT_A2B10G10R10UI:
- return FORMAT_A16B16G16R16UI;
- case FORMAT_A32B32G32R32I:
- return FORMAT_A32B32G32R32I;
- case FORMAT_A32B32G32R32UI:
- return FORMAT_A32B32G32R32UI;
- case FORMAT_G8R8I:
- return FORMAT_G8R8I;
- case FORMAT_G8R8UI:
- return FORMAT_G8R8UI;
- case FORMAT_G8R8_SNORM:
- return FORMAT_G8R8_SNORM;
- case FORMAT_G8R8:
- return FORMAT_G8R8;
- case FORMAT_G16R16I:
- return FORMAT_G16R16I;
- case FORMAT_G16R16UI:
- return FORMAT_G16R16UI;
- case FORMAT_G16R16:
- return FORMAT_G16R16;
- case FORMAT_G32R32I:
- return FORMAT_G32R32I;
- case FORMAT_G32R32UI:
- return FORMAT_G32R32UI;
- case FORMAT_A8R8G8B8:
- return FORMAT_A8R8G8B8;
- case FORMAT_A8B8G8R8I:
- return FORMAT_A8B8G8R8I;
- case FORMAT_A8B8G8R8UI:
- return FORMAT_A8B8G8R8UI;
- case FORMAT_A8B8G8R8_SNORM:
- return FORMAT_A8B8G8R8_SNORM;
- case FORMAT_R5G5B5A1:
- case FORMAT_R4G4B4A4:
- case FORMAT_A8B8G8R8:
- return FORMAT_A8B8G8R8;
- case FORMAT_R5G6B5:
- return FORMAT_R5G6B5;
- case FORMAT_SRGB8_A8:
- return FORMAT_SRGB8_A8;
+ case VK_FORMAT_UNDEFINED:
+ return VK_FORMAT_UNDEFINED;
+ case VK_FORMAT_A1R5G5B5_UNORM_PACK16:
+ return VK_FORMAT_B8G8R8A8_UNORM;
+ case VK_FORMAT_R8_SINT:
+ return VK_FORMAT_R8_SINT;
+ case VK_FORMAT_R8_UINT:
+ return VK_FORMAT_R8_UINT;
+ case VK_FORMAT_R8_SNORM:
+ return VK_FORMAT_R8_SNORM;
+ case VK_FORMAT_R8_UNORM:
+ return VK_FORMAT_R8_UNORM;
+ case VK_FORMAT_R16_SINT:
+ return VK_FORMAT_R16_SINT;
+ case VK_FORMAT_R16_UINT:
+ return VK_FORMAT_R16_UINT;
+ case VK_FORMAT_R32_SINT:
+ return VK_FORMAT_R32_SINT;
+ case VK_FORMAT_R32_UINT:
+ return VK_FORMAT_R32_UINT;
+ case VK_FORMAT_R16G16B16A16_SINT:
+ return VK_FORMAT_R16G16B16A16_SINT;
+ case VK_FORMAT_R16G16B16A16_UINT:
+ return VK_FORMAT_R16G16B16A16_UINT;
+ case VK_FORMAT_A2R10G10B10_UNORM_PACK32:
+ case VK_FORMAT_A2B10G10R10_UNORM_PACK32:
+ case VK_FORMAT_R16G16B16A16_UNORM:
+ return VK_FORMAT_R16G16B16A16_UNORM;
+ case VK_FORMAT_A2B10G10R10_UINT_PACK32:
+ return VK_FORMAT_R16G16B16A16_UINT;
+ case VK_FORMAT_R32G32B32A32_SINT:
+ return VK_FORMAT_R32G32B32A32_SINT;
+ case VK_FORMAT_R32G32B32A32_UINT:
+ return VK_FORMAT_R32G32B32A32_UINT;
+ case VK_FORMAT_R8G8_SINT:
+ return VK_FORMAT_R8G8_SINT;
+ case VK_FORMAT_R8G8_UINT:
+ return VK_FORMAT_R8G8_UINT;
+ case VK_FORMAT_R8G8_SNORM:
+ return VK_FORMAT_R8G8_SNORM;
+ case VK_FORMAT_R8G8_UNORM:
+ return VK_FORMAT_R8G8_UNORM;
+ case VK_FORMAT_R16G16_SINT:
+ return VK_FORMAT_R16G16_SINT;
+ case VK_FORMAT_R16G16_UINT:
+ return VK_FORMAT_R16G16_UINT;
+ case VK_FORMAT_R16G16_UNORM:
+ return VK_FORMAT_R16G16_UNORM;
+ case VK_FORMAT_R32G32_SINT:
+ return VK_FORMAT_R32G32_SINT;
+ case VK_FORMAT_R32G32_UINT:
+ return VK_FORMAT_R32G32_UINT;
+ case VK_FORMAT_B8G8R8A8_UNORM:
+ return VK_FORMAT_B8G8R8A8_UNORM;
+ case VK_FORMAT_R8G8B8A8_SINT:
+ return VK_FORMAT_R8G8B8A8_SINT;
+ case VK_FORMAT_R8G8B8A8_UINT:
+ return VK_FORMAT_R8G8B8A8_UINT;
+ case VK_FORMAT_R8G8B8A8_SNORM:
+ return VK_FORMAT_R8G8B8A8_SNORM;
+ case VK_FORMAT_R5G5B5A1_UNORM_PACK16:
+ case VK_FORMAT_B4G4R4A4_UNORM_PACK16:
+ case VK_FORMAT_R8G8B8A8_UNORM:
+ return VK_FORMAT_R8G8B8A8_UNORM;
+ case VK_FORMAT_R5G6B5_UNORM_PACK16:
+ return VK_FORMAT_R5G6B5_UNORM_PACK16;
+ case VK_FORMAT_R8G8B8A8_SRGB:
+ return VK_FORMAT_R8G8B8A8_SRGB;
// Compressed formats
- case FORMAT_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:
- case FORMAT_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:
- case FORMAT_RGBA8_ETC2_EAC:
- case FORMAT_SRGB8_ALPHA8_ETC2_EAC:
- case FORMAT_SRGB8_ALPHA8_ASTC_4x4_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_5x4_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_5x5_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_6x5_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_6x6_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_8x5_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_8x6_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_8x8_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_10x5_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_10x6_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_10x8_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_10x10_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_12x10_KHR:
- case FORMAT_SRGB8_ALPHA8_ASTC_12x12_KHR:
- return FORMAT_A8R8G8B8;
- case FORMAT_RGBA_ASTC_4x4_KHR:
- case FORMAT_RGBA_ASTC_5x4_KHR:
- case FORMAT_RGBA_ASTC_5x5_KHR:
- case FORMAT_RGBA_ASTC_6x5_KHR:
- case FORMAT_RGBA_ASTC_6x6_KHR:
- case FORMAT_RGBA_ASTC_8x5_KHR:
- case FORMAT_RGBA_ASTC_8x6_KHR:
- case FORMAT_RGBA_ASTC_8x8_KHR:
- case FORMAT_RGBA_ASTC_10x5_KHR:
- case FORMAT_RGBA_ASTC_10x6_KHR:
- case FORMAT_RGBA_ASTC_10x8_KHR:
- case FORMAT_RGBA_ASTC_10x10_KHR:
- case FORMAT_RGBA_ASTC_12x10_KHR:
- case FORMAT_RGBA_ASTC_12x12_KHR:
+ case VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK:
+ case VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK:
+ case VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK:
+ case VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_4x4_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_5x4_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_5x5_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_6x5_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_6x6_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_8x5_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_8x6_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_8x8_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_10x5_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_10x6_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_10x8_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_10x10_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_12x10_SRGB_BLOCK:
+ case VK_FORMAT_ASTC_12x12_SRGB_BLOCK:
+ return VK_FORMAT_B8G8R8A8_UNORM;
+ case VK_FORMAT_ASTC_4x4_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_5x4_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_5x5_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_6x5_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_6x6_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_8x5_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_8x6_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_8x8_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_10x5_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_10x6_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_10x8_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_10x10_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_12x10_UNORM_BLOCK:
+ case VK_FORMAT_ASTC_12x12_UNORM_BLOCK:
// ASTC supports HDR, so a floating point format is required to represent it properly
- return FORMAT_A32B32G32R32F; // FIXME: 16FP is probably sufficient, but it's currently unsupported
- case FORMAT_R11_EAC:
- case FORMAT_SIGNED_R11_EAC:
- return FORMAT_R32F; // FIXME: Signed 8bit format would be sufficient
- case FORMAT_RG11_EAC:
- case FORMAT_SIGNED_RG11_EAC:
- return FORMAT_G32R32F; // FIXME: Signed 8bit format would be sufficient
- case FORMAT_RGB8_ETC2:
- case FORMAT_SRGB8_ETC2:
- return FORMAT_A8R8G8B8;
+ return VK_FORMAT_R32G32B32A32_SFLOAT; // FIXME: 16FP is probably sufficient, but it's currently unsupported
+ case VK_FORMAT_EAC_R11_UNORM_BLOCK:
+ case VK_FORMAT_EAC_R11_SNORM_BLOCK:
+ return VK_FORMAT_R32_SFLOAT; // FIXME: Signed 8bit format would be sufficient
+ case VK_FORMAT_EAC_R11G11_UNORM_BLOCK:
+ case VK_FORMAT_EAC_R11G11_SNORM_BLOCK:
+ return VK_FORMAT_R32G32_SFLOAT; // FIXME: Signed 8bit format would be sufficient
+ case VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK:
+ case VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK:
+ return VK_FORMAT_B8G8R8A8_UNORM;
// Floating-point formats
- case FORMAT_R16F: return FORMAT_R32F;
- case FORMAT_G16R16F: return FORMAT_G32R32F;
- case FORMAT_A16B16G16R16F: return FORMAT_A32B32G32R32F;
- case FORMAT_R32F: return FORMAT_R32F;
- case FORMAT_G32R32F: return FORMAT_G32R32F;
- case FORMAT_A32B32G32R32F: return FORMAT_A32B32G32R32F;
+ case VK_FORMAT_R16_SFLOAT: return VK_FORMAT_R32_SFLOAT;
+ case VK_FORMAT_R16G16_SFLOAT: return VK_FORMAT_R32G32_SFLOAT;
+ case VK_FORMAT_R16G16B16A16_SFLOAT: return VK_FORMAT_R32G32B32A32_SFLOAT;
+ case VK_FORMAT_R32_SFLOAT: return VK_FORMAT_R32_SFLOAT;
+ case VK_FORMAT_R32G32_SFLOAT: return VK_FORMAT_R32G32_SFLOAT;
+ case VK_FORMAT_R32G32B32A32_SFLOAT: return VK_FORMAT_R32G32B32A32_SFLOAT;
// Depth/stencil formats
- case FORMAT_D16:
- case FORMAT_D24X8:
- return FORMAT_D32F;
- case FORMAT_D24S8:
- return FORMAT_D32FS8;
- case FORMAT_D32F: return FORMAT_D32F;
- case FORMAT_D32FS8: return FORMAT_D32FS8;
- case FORMAT_S8: return FORMAT_S8;
+ case VK_FORMAT_D16_UNORM:
+ case VK_FORMAT_X8_D24_UNORM_PACK32:
+ return VK_FORMAT_D32_SFLOAT;
+ case VK_FORMAT_D24_UNORM_S8_UINT:
+ return VK_FORMAT_D32_SFLOAT_S8_UINT;
+ case VK_FORMAT_D32_SFLOAT: return VK_FORMAT_D32_SFLOAT;
+ case VK_FORMAT_D32_SFLOAT_S8_UINT: return VK_FORMAT_D32_SFLOAT_S8_UINT;
+ case VK_FORMAT_S8_UINT: return VK_FORMAT_S8_UINT;
// YUV formats
- case FORMAT_YV12_BT601: return FORMAT_YV12_BT601;
- case FORMAT_YV12_BT709: return FORMAT_YV12_BT709;
- case FORMAT_YV12_JFIF: return FORMAT_YV12_JFIF;
+ case VK_FORMAT_G8_B8R8_2PLANE_420_UNORM: return VK_FORMAT_G8_B8R8_2PLANE_420_UNORM;
default:
ASSERT(false);
}
- return FORMAT_NULL;
+ return VK_FORMAT_UNDEFINED;
}
void Surface::resolve()
{
- if(internal.samples <= 1 || !internal.dirty || !renderTarget || internal.format == FORMAT_NULL)
+ if(internal.samples <= 1 || !internal.dirty || !renderTarget || internal.format == VK_FORMAT_UNDEFINED)
{
return;
}
@@ -2891,9 +2877,9 @@
unsigned char *sourceE = sourceD + slice;
unsigned char *sourceF = sourceE + slice;
- if(internal.format == FORMAT_A8R8G8B8 ||
- internal.format == FORMAT_A8B8G8R8 ||
- internal.format == FORMAT_SRGB8_A8)
+ if(internal.format == VK_FORMAT_B8G8R8A8_UNORM ||
+ internal.format == VK_FORMAT_R8G8B8A8_UNORM ||
+ internal.format == VK_FORMAT_R8G8B8A8_SRGB)
{
#if defined(__i386__) || defined(__x86_64__)
if(CPUID::supportsSSE2() && (width % 4) == 0)
@@ -3186,7 +3172,7 @@
#undef AVERAGE
}
}
- else if(internal.format == FORMAT_G16R16)
+ else if(internal.format == VK_FORMAT_R16G16_UNORM)
{
#if defined(__i386__) || defined(__x86_64__)
@@ -3480,7 +3466,7 @@
#undef AVERAGE
}
}
- else if(internal.format == FORMAT_A16B16G16R16)
+ else if(internal.format == VK_FORMAT_R16G16B16A16_UNORM)
{
#if defined(__i386__) || defined(__x86_64__)
if(CPUID::supportsSSE2() && (width % 2) == 0)
@@ -3773,7 +3759,7 @@
#undef AVERAGE
}
}
- else if(internal.format == FORMAT_R32F)
+ else if(internal.format == VK_FORMAT_R32_SFLOAT)
{
#if defined(__i386__) || defined(__x86_64__)
if(CPUID::supportsSSE() && (width % 4) == 0)
@@ -4070,7 +4056,7 @@
else ASSERT(false);
}
}
- else if(internal.format == FORMAT_G32R32F)
+ else if(internal.format == VK_FORMAT_R32G32_SFLOAT)
{
#if defined(__i386__) || defined(__x86_64__)
if(CPUID::supportsSSE() && (width % 2) == 0)
@@ -4367,7 +4353,7 @@
else ASSERT(false);
}
}
- else if(internal.format == FORMAT_A32B32G32R32F)
+ else if(internal.format == VK_FORMAT_R32G32B32A32_SFLOAT)
{
#if defined(__i386__) || defined(__x86_64__)
if(CPUID::supportsSSE())
@@ -4664,7 +4650,7 @@
else ASSERT(false);
}
}
- else if(internal.format == FORMAT_R5G6B5)
+ else if(internal.format == VK_FORMAT_R5G6B5_UNORM_PACK16)
{
#if defined(__i386__) || defined(__x86_64__)
if(CPUID::supportsSSE2() && (width % 8) == 0)
diff --git a/src/Device/Surface.hpp b/src/Device/Surface.hpp
index 61e969d..19d0dd1 100644
--- a/src/Device/Surface.hpp
+++ b/src/Device/Surface.hpp
@@ -61,250 +61,6 @@
typedef SliceRectT<int> SliceRect;
typedef SliceRectT<float> SliceRectF;
- enum Format : unsigned char
- {
- FORMAT_NULL = VK_FORMAT_UNDEFINED,
- // VK_FORMAT_R4G4_UNORM_PACK8,
- // VK_FORMAT_R4G4B4A4_UNORM_PACK16,
- FORMAT_R4G4B4A4 = VK_FORMAT_B4G4R4A4_UNORM_PACK16, // Mandatory
- FORMAT_R5G6B5 = VK_FORMAT_R5G6B5_UNORM_PACK16, // Mandatory
- // VK_FORMAT_B5G6R5_UNORM_PACK16,
- FORMAT_R5G5B5A1 = VK_FORMAT_R5G5B5A1_UNORM_PACK16,
- // VK_FORMAT_B5G5R5A1_UNORM_PACK16,
- FORMAT_A1R5G5B5 = VK_FORMAT_A1R5G5B5_UNORM_PACK16, // Mandatory
- FORMAT_R8 = VK_FORMAT_R8_UNORM, // Mandatory
- FORMAT_R8_SNORM = VK_FORMAT_R8_SNORM, // Mandatory
- // VK_FORMAT_R8_USCALED,
- // VK_FORMAT_R8_SSCALED,
- FORMAT_R8UI = VK_FORMAT_R8_UINT, // Mandatory
- FORMAT_R8I = VK_FORMAT_R8_SINT, // Mandatory
- // VK_FORMAT_R8_SRGB,
- FORMAT_G8R8 = VK_FORMAT_R8G8_UNORM, // Mandatory
- FORMAT_G8R8_SNORM = VK_FORMAT_R8G8_SNORM, // Mandatory
- // VK_FORMAT_R8G8_USCALED,
- // VK_FORMAT_R8G8_SSCALED,
- FORMAT_G8R8UI = VK_FORMAT_R8G8_UINT, // Mandatory
- FORMAT_G8R8I = VK_FORMAT_R8G8_SINT, // Mandatory
- // VK_FORMAT_R8G8_SRGB,
- // VK_FORMAT_R8G8B8_UNORM,
- // VK_FORMAT_R8G8B8_SNORM,
- // VK_FORMAT_R8G8B8_USCALED,
- // VK_FORMAT_R8G8B8_SSCALED,
- // VK_FORMAT_R8G8B8_UINT,
- // VK_FORMAT_R8G8B8_SINT,
- // VK_FORMAT_R8G8B8_SRGB,
- // VK_FORMAT_B8G8R8_UNORM,
- // VK_FORMAT_B8G8R8_SNORM,
- // VK_FORMAT_B8G8R8_USCALED,
- // VK_FORMAT_B8G8R8_SSCALED,
- // VK_FORMAT_B8G8R8_UINT,
- // VK_FORMAT_B8G8R8_SINT,
- // VK_FORMAT_B8G8R8_SRGB,
- FORMAT_A8B8G8R8 = VK_FORMAT_R8G8B8A8_UNORM, // Mandatory
- FORMAT_A8B8G8R8_SNORM = VK_FORMAT_R8G8B8A8_SNORM, // Mandatory
- // VK_FORMAT_R8G8B8A8_USCALED,
- // VK_FORMAT_R8G8B8A8_SSCALED,
- FORMAT_A8B8G8R8UI = VK_FORMAT_R8G8B8A8_UINT, // Mandatory
- FORMAT_A8B8G8R8I = VK_FORMAT_R8G8B8A8_SINT, // Mandatory
- FORMAT_SRGB8_A8 = VK_FORMAT_R8G8B8A8_SRGB, // Mandatory
- FORMAT_A8R8G8B8 = VK_FORMAT_B8G8R8A8_UNORM, // Mandatory
- // VK_FORMAT_B8G8R8A8_SNORM,
- // VK_FORMAT_B8G8R8A8_USCALED,
- // VK_FORMAT_B8G8R8A8_SSCALED,
- // VK_FORMAT_B8G8R8A8_UINT,
- // VK_FORMAT_B8G8R8A8_SINT,
- // VK_FORMAT_B8G8R8A8_SRGB, // TODO: Mandatory
- // VK_FORMAT_A8B8G8R8_UNORM_PACK32, // TODO: Mandatory
- // VK_FORMAT_A8B8G8R8_SNORM_PACK32, // TODO: Mandatory
- // VK_FORMAT_A8B8G8R8_USCALED_PACK32,
- // VK_FORMAT_A8B8G8R8_SSCALED_PACK32,
- // VK_FORMAT_A8B8G8R8_UINT_PACK32, // TODO: Mandatory
- // VK_FORMAT_A8B8G8R8_SINT_PACK32, // TODO: Mandatory
- // VK_FORMAT_A8B8G8R8_SRGB_PACK32, // TODO: Mandatory
- FORMAT_A2R10G10B10 = VK_FORMAT_A2R10G10B10_UNORM_PACK32,
- // VK_FORMAT_A2R10G10B10_SNORM_PACK32,
- // VK_FORMAT_A2R10G10B10_USCALED_PACK32,
- // VK_FORMAT_A2R10G10B10_SSCALED_PACK32,
- // VK_FORMAT_A2R10G10B10_UINT_PACK32,
- // VK_FORMAT_A2R10G10B10_SINT_PACK32,
- FORMAT_A2B10G10R10 = VK_FORMAT_A2B10G10R10_UNORM_PACK32, // Mandatory
- // VK_FORMAT_A2B10G10R10_SNORM_PACK32,
- // VK_FORMAT_A2B10G10R10_USCALED_PACK32,
- // VK_FORMAT_A2B10G10R10_SSCALED_PACK32,
- FORMAT_A2B10G10R10UI = VK_FORMAT_A2B10G10R10_UINT_PACK32, // Mandatory
- // VK_FORMAT_A2B10G10R10_SINT_PACK32,
- // VK_FORMAT_R16_UNORM, // Mandatory (Vertex buffer only)
- // VK_FORMAT_R16_SNORM, // Mandatory (Vertex buffer only)
- // VK_FORMAT_R16_USCALED,
- // VK_FORMAT_R16_SSCALED,
- FORMAT_R16UI = VK_FORMAT_R16_UINT, // Mandatory
- FORMAT_R16I = VK_FORMAT_R16_SINT, // Mandatory
- FORMAT_R16F = VK_FORMAT_R16_SFLOAT, // Mandatory
- FORMAT_G16R16 = VK_FORMAT_R16G16_UNORM, // Mandatory (Vertex buffer only)
- // VK_FORMAT_R16G16_SNORM, // Mandatory (Vertex buffer only)
- // VK_FORMAT_R16G16_USCALED,
- // VK_FORMAT_R16G16_SSCALED,
- FORMAT_G16R16UI = VK_FORMAT_R16G16_UINT, // Mandatory
- FORMAT_G16R16I = VK_FORMAT_R16G16_SINT, // Mandatory
- FORMAT_G16R16F = VK_FORMAT_R16G16_SFLOAT, // Mandatory
- // VK_FORMAT_R16G16B16_UNORM,
- // VK_FORMAT_R16G16B16_SNORM,
- // VK_FORMAT_R16G16B16_USCALED,
- // VK_FORMAT_R16G16B16_SSCALED,
- // VK_FORMAT_R16G16B16_UINT,
- // VK_FORMAT_R16G16B16_SINT,
- // VK_FORMAT_R16G16B16_SFLOAT,
- FORMAT_A16B16G16R16 = VK_FORMAT_R16G16B16A16_UNORM, // Mandatory (Vertex buffer only)
- // VK_FORMAT_R16G16B16A16_SNORM, // Mandatory (Vertex buffer only)
- // VK_FORMAT_R16G16B16A16_USCALED,
- // VK_FORMAT_R16G16B16A16_SSCALED,
- FORMAT_A16B16G16R16UI = VK_FORMAT_R16G16B16A16_UINT, // Mandatory
- FORMAT_A16B16G16R16I = VK_FORMAT_R16G16B16A16_SINT, // Mandatory
- FORMAT_A16B16G16R16F = VK_FORMAT_R16G16B16A16_SFLOAT, // Mandatory
- FORMAT_R32UI = VK_FORMAT_R32_UINT, // Mandatory
- FORMAT_R32I = VK_FORMAT_R32_SINT, // Mandatory
- FORMAT_R32F = VK_FORMAT_R32_SFLOAT, // Mandatory
- FORMAT_G32R32UI = VK_FORMAT_R32G32_UINT, // Mandatory
- FORMAT_G32R32I = VK_FORMAT_R32G32_SINT, // Mandatory
- FORMAT_G32R32F = VK_FORMAT_R32G32_SFLOAT, // Mandatory
- // VK_FORMAT_R32G32B32_UINT, // Mandatory (Vertex buffer only)
- // VK_FORMAT_R32G32B32_SINT, // Mandatory (Vertex buffer only)
- // VK_FORMAT_R32G32B32_SFLOAT, // Mandatory (Vertex buffer only)
- FORMAT_A32B32G32R32UI = VK_FORMAT_R32G32B32A32_UINT, // Mandatory
- FORMAT_A32B32G32R32I = VK_FORMAT_R32G32B32A32_SINT, // Mandatory
- FORMAT_A32B32G32R32F = VK_FORMAT_R32G32B32A32_SFLOAT, // Mandatory
- // VK_FORMAT_R64_UINT,
- // VK_FORMAT_R64_SINT,
- // VK_FORMAT_R64_SFLOAT,
- // VK_FORMAT_R64G64_UINT,
- // VK_FORMAT_R64G64_SINT,
- // VK_FORMAT_R64G64_SFLOAT,
- // VK_FORMAT_R64G64B64_UINT,
- // VK_FORMAT_R64G64B64_SINT,
- // VK_FORMAT_R64G64B64_SFLOAT,
- // VK_FORMAT_R64G64B64A64_UINT,
- // VK_FORMAT_R64G64B64A64_SINT,
- // VK_FORMAT_R64G64B64A64_SFLOAT,
- // VK_FORMAT_B10G11R11_UFLOAT_PACK32, // TODO: Mandatory
- // VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, // TODO: Mandatory
- FORMAT_D16 = VK_FORMAT_D16_UNORM, // Mandatory
- FORMAT_D24X8 = VK_FORMAT_X8_D24_UNORM_PACK32, // Feature specific
- FORMAT_D32F = VK_FORMAT_D32_SFLOAT, // Mandatory
- FORMAT_S8 = VK_FORMAT_S8_UINT,
- // VK_FORMAT_D16_UNORM_S8_UINT,
- FORMAT_D24S8 = VK_FORMAT_D24_UNORM_S8_UINT, // Feature specific
- FORMAT_D32FS8 = VK_FORMAT_D32_SFLOAT_S8_UINT, // Feature specific
- // VK_FORMAT_BC1_RGB_UNORM_BLOCK, // Feature specific
- // VK_FORMAT_BC1_RGB_SRGB_BLOCK, // Feature specific
- // VK_FORMAT_BC1_RGBA_UNORM_BLOCK, // Feature specific
- // VK_FORMAT_BC1_RGBA_SRGB_BLOCK, // Feature specific
- // VK_FORMAT_BC2_UNORM_BLOCK, // Feature specific
- // VK_FORMAT_BC2_SRGB_BLOCK, // Feature specific
- // VK_FORMAT_BC3_UNORM_BLOCK, // Feature specific
- // VK_FORMAT_BC3_SRGB_BLOCK, // Feature specific
- // VK_FORMAT_BC4_UNORM_BLOCK, // Feature specific
- // VK_FORMAT_BC4_SNORM_BLOCK, // Feature specific
- // VK_FORMAT_BC5_UNORM_BLOCK, // Feature specific
- // VK_FORMAT_BC5_SNORM_BLOCK, // Feature specific
- // VK_FORMAT_BC6H_UFLOAT_BLOCK, // Feature specific
- // VK_FORMAT_BC6H_SFLOAT_BLOCK, // Feature specific
- // VK_FORMAT_BC7_UNORM_BLOCK, // Feature specific
- // VK_FORMAT_BC7_SRGB_BLOCK, // Feature specific
- FORMAT_RGB8_ETC2 = VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK, // Feature specific
- FORMAT_SRGB8_ETC2 = VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK, // Feature specific
- FORMAT_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 = VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK, // Feature specific
- FORMAT_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 = VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK, // Feature specific
- FORMAT_RGBA8_ETC2_EAC = VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK, // Feature specific
- FORMAT_SRGB8_ALPHA8_ETC2_EAC = VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK, // Feature specific
- FORMAT_R11_EAC = VK_FORMAT_EAC_R11_UNORM_BLOCK, // Feature specific
- FORMAT_SIGNED_R11_EAC = VK_FORMAT_EAC_R11_SNORM_BLOCK, // Feature specific
- FORMAT_RG11_EAC = VK_FORMAT_EAC_R11G11_UNORM_BLOCK, // Feature specific
- FORMAT_SIGNED_RG11_EAC = VK_FORMAT_EAC_R11G11_SNORM_BLOCK, // Feature specific
- FORMAT_RGBA_ASTC_4x4_KHR = VK_FORMAT_ASTC_4x4_UNORM_BLOCK, // Feature specific
- FORMAT_SRGB8_ALPHA8_ASTC_4x4_KHR = VK_FORMAT_ASTC_4x4_SRGB_BLOCK, // Feature specific
- FORMAT_RGBA_ASTC_5x4_KHR = VK_FORMAT_ASTC_5x4_UNORM_BLOCK, // Feature specific
- FORMAT_SRGB8_ALPHA8_ASTC_5x4_KHR = VK_FORMAT_ASTC_5x4_SRGB_BLOCK, // Feature specific
- FORMAT_RGBA_ASTC_5x5_KHR = VK_FORMAT_ASTC_5x5_UNORM_BLOCK, // Feature specific
- FORMAT_SRGB8_ALPHA8_ASTC_5x5_KHR = VK_FORMAT_ASTC_5x5_SRGB_BLOCK, // Feature specific
- FORMAT_RGBA_ASTC_6x5_KHR = VK_FORMAT_ASTC_6x5_UNORM_BLOCK, // Feature specific
- FORMAT_SRGB8_ALPHA8_ASTC_6x5_KHR = VK_FORMAT_ASTC_6x5_SRGB_BLOCK, // Feature specific
- FORMAT_RGBA_ASTC_6x6_KHR = VK_FORMAT_ASTC_6x6_UNORM_BLOCK, // Feature specific
- FORMAT_SRGB8_ALPHA8_ASTC_6x6_KHR = VK_FORMAT_ASTC_6x6_SRGB_BLOCK, // Feature specific
- FORMAT_RGBA_ASTC_8x5_KHR = VK_FORMAT_ASTC_8x5_UNORM_BLOCK, // Feature specific
- FORMAT_SRGB8_ALPHA8_ASTC_8x5_KHR = VK_FORMAT_ASTC_8x5_SRGB_BLOCK, // Feature specific
- FORMAT_RGBA_ASTC_8x6_KHR = VK_FORMAT_ASTC_8x6_UNORM_BLOCK, // Feature specific
- FORMAT_SRGB8_ALPHA8_ASTC_8x6_KHR = VK_FORMAT_ASTC_8x6_SRGB_BLOCK, // Feature specific
- FORMAT_RGBA_ASTC_8x8_KHR = VK_FORMAT_ASTC_8x8_UNORM_BLOCK, // Feature specific
- FORMAT_SRGB8_ALPHA8_ASTC_8x8_KHR = VK_FORMAT_ASTC_8x8_SRGB_BLOCK, // Feature specific
- FORMAT_RGBA_ASTC_10x5_KHR = VK_FORMAT_ASTC_10x5_UNORM_BLOCK, // Feature specific
- FORMAT_SRGB8_ALPHA8_ASTC_10x5_KHR = VK_FORMAT_ASTC_10x5_SRGB_BLOCK, // Feature specific
- FORMAT_RGBA_ASTC_10x6_KHR = VK_FORMAT_ASTC_10x6_UNORM_BLOCK, // Feature specific
- FORMAT_SRGB8_ALPHA8_ASTC_10x6_KHR = VK_FORMAT_ASTC_10x6_SRGB_BLOCK, // Feature specific
- FORMAT_RGBA_ASTC_10x8_KHR = VK_FORMAT_ASTC_10x8_UNORM_BLOCK, // Feature specific
- FORMAT_SRGB8_ALPHA8_ASTC_10x8_KHR = VK_FORMAT_ASTC_10x8_SRGB_BLOCK, // Feature specific
- FORMAT_RGBA_ASTC_10x10_KHR = VK_FORMAT_ASTC_10x10_UNORM_BLOCK, // Feature specific
- FORMAT_SRGB8_ALPHA8_ASTC_10x10_KHR = VK_FORMAT_ASTC_10x10_SRGB_BLOCK, // Feature specific
- FORMAT_RGBA_ASTC_12x10_KHR = VK_FORMAT_ASTC_12x10_UNORM_BLOCK, // Feature specific
- FORMAT_SRGB8_ALPHA8_ASTC_12x10_KHR = VK_FORMAT_ASTC_12x10_SRGB_BLOCK, // Feature specific
- FORMAT_RGBA_ASTC_12x12_KHR = VK_FORMAT_ASTC_12x12_UNORM_BLOCK, // Feature specific
- FORMAT_SRGB8_ALPHA8_ASTC_12x12_KHR = VK_FORMAT_ASTC_12x12_SRGB_BLOCK, // Feature specific
-
- // EXTENSION FORMATS:
- // IMPORTANT: if any of these formats are added, this enum needs
- // to go from "unsigned char" to "unsigned int" and FORMAT_LAST
- // below needs to be updated to take extensions into account.
-
- // VK_FORMAT_G8B8G8R8_422_UNORM,
- // VK_FORMAT_B8G8R8G8_422_UNORM,
- // VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM, // TODO: Mandatory
- // VK_FORMAT_G8_B8R8_2PLANE_420_UNORM, // TODO: Mandatory
- // VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM,
- // VK_FORMAT_G8_B8R8_2PLANE_422_UNORM,
- // VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM,
- // VK_FORMAT_R10X6_UNORM_PACK16,
- // VK_FORMAT_R10X6G10X6_UNORM_2PACK16,
- // VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16,
- // VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16,
- // VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16,
- // VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,
- // VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,
- // VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16,
- // VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16,
- // VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16,
- // VK_FORMAT_R12X4_UNORM_PACK16,
- // VK_FORMAT_R12X4G12X4_UNORM_2PACK16,
- // VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16,
- // VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16,
- // VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16,
- // VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16,
- // VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16,
- // VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16,
- // VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16,
- // VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16,
- // VK_FORMAT_G16B16G16R16_422_UNORM,
- // VK_FORMAT_B16G16R16G16_422_UNORM,
- // VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM,
- // VK_FORMAT_G16_B16R16_2PLANE_420_UNORM,
- // VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM,
- // VK_FORMAT_G16_B16R16_2PLANE_422_UNORM,
- // VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM,
- // VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG,
- // VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG,
- // VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG,
- // VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG,
- // VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG,
- // VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG,
- // VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG,
- // VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG,
-
- // YUV formats
- FORMAT_YV12_BT601 = VK_FORMAT_END_RANGE + 1, // TODO: VK_FORMAT_G8_B8R8_2PLANE_420_UNORM + VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601
- FORMAT_YV12_BT709, // TODO: VK_FORMAT_G8_B8R8_2PLANE_420_UNORM + VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709
- FORMAT_YV12_JFIF, // TODO: VK_FORMAT_G8_B8R8_2PLANE_420_UNORM + VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020
-
- FORMAT_LAST = FORMAT_YV12_JFIF
- };
-
enum Lock
{
LOCK_UNLOCKED,
@@ -348,19 +104,19 @@
int sliceB;
int sliceP;
- Format format;
+ VkFormat format;
AtomicInt lock;
bool dirty; // Sibling internal/external buffer doesn't match.
};
protected:
- Surface(int width, int height, int depth, Format format, void *pixels, int pitch, int slice);
- Surface(Resource *texture, int width, int height, int depth, int border, int samples, Format format, bool lockable, bool renderTarget, int pitchP = 0);
+ Surface(int width, int height, int depth, VkFormat format, void *pixels, int pitch, int slice);
+ Surface(Resource *texture, int width, int height, int depth, int border, int samples, VkFormat format, bool lockable, bool renderTarget, int pitchP = 0);
public:
- static Surface *create(int width, int height, int depth, Format format, void *pixels, int pitch, int slice);
- static Surface *create(Resource *texture, int width, int height, int depth, int border, int samples, Format format, bool lockable, bool renderTarget, int pitchP = 0);
+ static Surface *create(int width, int height, int depth, VkFormat format, void *pixels, int pitch, int slice);
+ static Surface *create(Resource *texture, int width, int height, int depth, int border, int samples, VkFormat format, bool lockable, bool renderTarget, int pitchP = 0);
virtual ~Surface() = 0;
@@ -370,7 +126,7 @@
inline int getHeight() const;
inline int getDepth() const;
inline int getBorder() const;
- inline Format getFormat(bool internal = false) const;
+ inline VkFormat getFormat(bool internal = false) const;
inline int getPitchB(bool internal = false) const;
inline int getPitchP(bool internal = false) const;
inline int getSliceB(bool internal = false) const;
@@ -378,7 +134,7 @@
void *lockExternal(int x, int y, int z, Lock lock, Accessor client);
void unlockExternal();
- inline Format getExternalFormat() const;
+ inline VkFormat getExternalFormat() const;
inline int getExternalPitchB() const;
inline int getExternalPitchP() const;
inline int getExternalSliceB() const;
@@ -386,7 +142,7 @@
virtual void *lockInternal(int x, int y, int z, Lock lock, Accessor client) = 0;
virtual void unlockInternal() = 0;
- inline Format getInternalFormat() const;
+ inline VkFormat getInternalFormat() const;
inline int getInternalPitchB() const;
inline int getInternalPitchP() const;
inline int getInternalSliceB() const;
@@ -394,7 +150,7 @@
void *lockStencil(int x, int y, int front, Accessor client);
void unlockStencil();
- inline Format getStencilFormat() const;
+ inline VkFormat getStencilFormat() const;
inline int getStencilPitchB() const;
inline int getStencilSliceB() const;
@@ -435,28 +191,28 @@
inline bool isExternalDirty() const;
Resource *getResource();
- static int bytes(Format format);
- static int pitchB(int width, int border, Format format, bool target);
- static int pitchP(int width, int border, Format format, bool target);
- static int sliceB(int width, int height, int border, Format format, bool target);
- static int sliceP(int width, int height, int border, Format format, bool target);
- static size_t size(int width, int height, int depth, int border, int samples, Format format);
+ static int bytes(VkFormat format);
+ static int pitchB(int width, int border, VkFormat format, bool target);
+ static int pitchP(int width, int border, VkFormat format, bool target);
+ static int sliceB(int width, int height, int border, VkFormat format, bool target);
+ static int sliceP(int width, int height, int border, VkFormat format, bool target);
+ static size_t size(int width, int height, int depth, int border, int samples, VkFormat format);
- static bool isStencil(Format format);
- static bool isDepth(Format format);
- static bool hasQuadLayout(Format format);
+ static bool isStencil(VkFormat format);
+ static bool isDepth(VkFormat format);
+ static bool hasQuadLayout(VkFormat format);
- static bool isFloatFormat(Format format);
- static bool isUnsignedComponent(Format format, int component);
- static bool isSRGBreadable(Format format);
- static bool isSRGBwritable(Format format);
- static bool isSRGBformat(Format format);
- static bool isCompressed(Format format);
- static bool isSignedNonNormalizedInteger(Format format);
- static bool isUnsignedNonNormalizedInteger(Format format);
- static bool isNonNormalizedInteger(Format format);
- static bool isNormalizedInteger(Format format);
- static int componentCount(Format format);
+ static bool isFloatFormat(VkFormat format);
+ static bool isUnsignedComponent(VkFormat format, int component);
+ static bool isSRGBreadable(VkFormat format);
+ static bool isSRGBwritable(VkFormat format);
+ static bool isSRGBformat(VkFormat format);
+ static bool isCompressed(VkFormat format);
+ static bool isSignedNonNormalizedInteger(VkFormat format);
+ static bool isUnsignedNonNormalizedInteger(VkFormat format);
+ static bool isNonNormalizedInteger(VkFormat format);
+ static bool isNormalizedInteger(VkFormat format);
+ static int componentCount(VkFormat format);
private:
sw::Resource *resource;
@@ -550,11 +306,11 @@
static void update(Buffer &destination, Buffer &source);
static void genericUpdate(Buffer &destination, Buffer &source);
- static void *allocateBuffer(int width, int height, int depth, int border, int samples, Format format);
+ static void *allocateBuffer(int width, int height, int depth, int border, int samples, VkFormat format);
static void memfill4(void *buffer, int pattern, int bytes);
bool identicalBuffers() const;
- Format selectInternalFormat(Format format) const;
+ VkFormat selectInternalFormat(VkFormat format) const;
void resolve();
@@ -607,7 +363,7 @@
return internal.border;
}
- Format Surface::getFormat(bool internal) const
+ VkFormat Surface::getFormat(bool internal) const
{
return internal ? getInternalFormat() : getExternalFormat();
}
@@ -632,7 +388,7 @@
return internal ? getInternalSliceP() : getExternalSliceP();
}
- Format Surface::getExternalFormat() const
+ VkFormat Surface::getExternalFormat() const
{
return external.format;
}
@@ -657,7 +413,7 @@
return external.sliceP;
}
- Format Surface::getInternalFormat() const
+ VkFormat Surface::getInternalFormat() const
{
return internal.format;
}
@@ -682,7 +438,7 @@
return internal.sliceP;
}
- Format Surface::getStencilFormat() const
+ VkFormat Surface::getStencilFormat() const
{
return stencil.format;
}
diff --git a/src/Pipeline/PixelProgram.cpp b/src/Pipeline/PixelProgram.cpp
index 7137a7d..df99196 100644
--- a/src/Pipeline/PixelProgram.cpp
+++ b/src/Pipeline/PixelProgram.cpp
@@ -78,7 +78,7 @@
for(int i = 0; i < RENDERTARGETS; i++)
{
- if(state.targetFormat[i] != FORMAT_NULL)
+ if(state.targetFormat[i] != VK_FORMAT_UNDEFINED)
{
oC[i] = Vector4f(0.0f, 0.0f, 0.0f, 0.0f);
}
@@ -629,20 +629,20 @@
switch(state.targetFormat[index])
{
- case FORMAT_R5G6B5:
- case FORMAT_A8R8G8B8:
- case FORMAT_A8B8G8R8:
- case FORMAT_SRGB8_A8:
- case FORMAT_G8R8:
- case FORMAT_R8:
- case FORMAT_G16R16:
- case FORMAT_A16B16G16R16:
+ case VK_FORMAT_R5G6B5_UNORM_PACK16:
+ case VK_FORMAT_B8G8R8A8_UNORM:
+ case VK_FORMAT_R8G8B8A8_UNORM:
+ case VK_FORMAT_R8G8B8A8_SRGB:
+ case VK_FORMAT_R8G8_UNORM:
+ case VK_FORMAT_R8_UNORM:
+ case VK_FORMAT_R16G16_UNORM:
+ case VK_FORMAT_R16G16B16A16_UNORM:
for(unsigned int q = 0; q < state.multiSample; q++)
{
Pointer<Byte> buffer = cBuffer[index] + q * *Pointer<Int>(data + OFFSET(DrawData, colorSliceB[index]));
Vector4s color;
- if(state.targetFormat[index] == FORMAT_R5G6B5)
+ if(state.targetFormat[index] == VK_FORMAT_R5G6B5_UNORM_PACK16)
{
color.x = UShort4(c[index].x * Float4(0xFBFF), false);
color.y = UShort4(c[index].y * Float4(0xFDFF), false);
@@ -665,27 +665,27 @@
}
}
break;
- case FORMAT_R32F:
- case FORMAT_G32R32F:
- case FORMAT_A32B32G32R32F:
- case FORMAT_R32I:
- case FORMAT_G32R32I:
- case FORMAT_A32B32G32R32I:
- case FORMAT_R32UI:
- case FORMAT_G32R32UI:
- case FORMAT_A32B32G32R32UI:
- case FORMAT_R16I:
- case FORMAT_G16R16I:
- case FORMAT_A16B16G16R16I:
- case FORMAT_R16UI:
- case FORMAT_G16R16UI:
- case FORMAT_A16B16G16R16UI:
- case FORMAT_R8I:
- case FORMAT_G8R8I:
- case FORMAT_A8B8G8R8I:
- case FORMAT_R8UI:
- case FORMAT_G8R8UI:
- case FORMAT_A8B8G8R8UI:
+ case VK_FORMAT_R32_SFLOAT:
+ case VK_FORMAT_R32G32_SFLOAT:
+ case VK_FORMAT_R32G32B32A32_SFLOAT:
+ case VK_FORMAT_R32_SINT:
+ case VK_FORMAT_R32G32_SINT:
+ case VK_FORMAT_R32G32B32A32_SINT:
+ case VK_FORMAT_R32_UINT:
+ case VK_FORMAT_R32G32_UINT:
+ case VK_FORMAT_R32G32B32A32_UINT:
+ case VK_FORMAT_R16_SINT:
+ case VK_FORMAT_R16G16_SINT:
+ case VK_FORMAT_R16G16B16A16_SINT:
+ case VK_FORMAT_R16_UINT:
+ case VK_FORMAT_R16G16_UINT:
+ case VK_FORMAT_R16G16B16A16_UINT:
+ case VK_FORMAT_R8_SINT:
+ case VK_FORMAT_R8G8_SINT:
+ case VK_FORMAT_R8G8B8A8_SINT:
+ case VK_FORMAT_R8_UINT:
+ case VK_FORMAT_R8G8_UINT:
+ case VK_FORMAT_R8G8B8A8_UINT:
for(unsigned int q = 0; q < state.multiSample; q++)
{
Pointer<Byte> buffer = cBuffer[index] + q * *Pointer<Int>(data + OFFSET(DrawData, colorSliceB[index]));
@@ -765,42 +765,42 @@
switch(state.targetFormat[index])
{
- case FORMAT_NULL:
+ case VK_FORMAT_UNDEFINED:
break;
- case FORMAT_R5G6B5:
- case FORMAT_A8R8G8B8:
- case FORMAT_A8B8G8R8:
- case FORMAT_SRGB8_A8:
- case FORMAT_G8R8:
- case FORMAT_R8:
- case FORMAT_G16R16:
- case FORMAT_A16B16G16R16:
+ case VK_FORMAT_R5G6B5_UNORM_PACK16:
+ case VK_FORMAT_B8G8R8A8_UNORM:
+ case VK_FORMAT_R8G8B8A8_UNORM:
+ case VK_FORMAT_R8G8B8A8_SRGB:
+ case VK_FORMAT_R8G8_UNORM:
+ case VK_FORMAT_R8_UNORM:
+ case VK_FORMAT_R16G16_UNORM:
+ case VK_FORMAT_R16G16B16A16_UNORM:
oC[index].x = Max(oC[index].x, Float4(0.0f)); oC[index].x = Min(oC[index].x, Float4(1.0f));
oC[index].y = Max(oC[index].y, Float4(0.0f)); oC[index].y = Min(oC[index].y, Float4(1.0f));
oC[index].z = Max(oC[index].z, Float4(0.0f)); oC[index].z = Min(oC[index].z, Float4(1.0f));
oC[index].w = Max(oC[index].w, Float4(0.0f)); oC[index].w = Min(oC[index].w, Float4(1.0f));
break;
- case FORMAT_R32F:
- case FORMAT_G32R32F:
- case FORMAT_A32B32G32R32F:
- case FORMAT_R32I:
- case FORMAT_G32R32I:
- case FORMAT_A32B32G32R32I:
- case FORMAT_R32UI:
- case FORMAT_G32R32UI:
- case FORMAT_A32B32G32R32UI:
- case FORMAT_R16I:
- case FORMAT_G16R16I:
- case FORMAT_A16B16G16R16I:
- case FORMAT_R16UI:
- case FORMAT_G16R16UI:
- case FORMAT_A16B16G16R16UI:
- case FORMAT_R8I:
- case FORMAT_G8R8I:
- case FORMAT_A8B8G8R8I:
- case FORMAT_R8UI:
- case FORMAT_G8R8UI:
- case FORMAT_A8B8G8R8UI:
+ case VK_FORMAT_R32_SFLOAT:
+ case VK_FORMAT_R32G32_SFLOAT:
+ case VK_FORMAT_R32G32B32A32_SFLOAT:
+ case VK_FORMAT_R32_SINT:
+ case VK_FORMAT_R32G32_SINT:
+ case VK_FORMAT_R32G32B32A32_SINT:
+ case VK_FORMAT_R32_UINT:
+ case VK_FORMAT_R32G32_UINT:
+ case VK_FORMAT_R32G32B32A32_UINT:
+ case VK_FORMAT_R16_SINT:
+ case VK_FORMAT_R16G16_SINT:
+ case VK_FORMAT_R16G16B16A16_SINT:
+ case VK_FORMAT_R16_UINT:
+ case VK_FORMAT_R16G16_UINT:
+ case VK_FORMAT_R16G16B16A16_UINT:
+ case VK_FORMAT_R8_SINT:
+ case VK_FORMAT_R8G8_SINT:
+ case VK_FORMAT_R8G8B8A8_SINT:
+ case VK_FORMAT_R8_UINT:
+ case VK_FORMAT_R8G8_UINT:
+ case VK_FORMAT_R8G8B8A8_UINT:
break;
default:
ASSERT(false);
diff --git a/src/Pipeline/PixelRoutine.cpp b/src/Pipeline/PixelRoutine.cpp
index 0519735..4a989a8 100644
--- a/src/Pipeline/PixelRoutine.cpp
+++ b/src/Pipeline/PixelRoutine.cpp
@@ -931,7 +931,7 @@
switch(state.targetFormat[index])
{
- case FORMAT_R5G6B5:
+ case VK_FORMAT_R5G6B5_UNORM_PACK16:
buffer = cBuffer + 2 * x;
buffer2 = buffer + *Pointer<Int>(data + OFFSET(DrawData, colorPitchB[index]));
c01 = As<Short4>(Int2(*Pointer<Int>(buffer), *Pointer<Int>(buffer2)));
@@ -941,7 +941,7 @@
pixel.z = (c01 & Short4(0x001Fu)) << 11;
pixel.w = Short4(0xFFFFu);
break;
- case FORMAT_A8R8G8B8:
+ case VK_FORMAT_B8G8R8A8_UNORM:
buffer = cBuffer + 4 * x;
c01 = *Pointer<Short4>(buffer);
buffer += *Pointer<Int>(data + OFFSET(DrawData, colorPitchB[index]));
@@ -960,8 +960,8 @@
pixel.z = UnpackLow(As<Byte8>(pixel.z), As<Byte8>(pixel.z));
pixel.w = UnpackHigh(As<Byte8>(pixel.w), As<Byte8>(pixel.w));
break;
- case FORMAT_A8B8G8R8:
- case FORMAT_SRGB8_A8:
+ case VK_FORMAT_R8G8B8A8_UNORM:
+ case VK_FORMAT_R8G8B8A8_SRGB:
buffer = cBuffer + 4 * x;
c01 = *Pointer<Short4>(buffer);
buffer += *Pointer<Int>(data + OFFSET(DrawData, colorPitchB[index]));
@@ -980,7 +980,7 @@
pixel.z = UnpackLow(As<Byte8>(pixel.w), As<Byte8>(pixel.w));
pixel.w = UnpackHigh(As<Byte8>(pixel.w), As<Byte8>(pixel.w));
break;
- case FORMAT_R8:
+ case VK_FORMAT_R8_UNORM:
buffer = cBuffer + 1 * x;
pixel.x = Insert(pixel.x, *Pointer<Short>(buffer), 0);
buffer += *Pointer<Int>(data + OFFSET(DrawData, colorPitchB[index]));
@@ -990,7 +990,7 @@
pixel.z = Short4(0x0000);
pixel.w = Short4(0xFFFFu);
break;
- case FORMAT_G8R8:
+ case VK_FORMAT_R8G8_UNORM:
buffer = cBuffer + 2 * x;
c01 = As<Short4>(Insert(As<Int2>(c01), *Pointer<Int>(buffer), 0));
buffer += *Pointer<Int>(data + OFFSET(DrawData, colorPitchB[index]));
@@ -1000,7 +1000,7 @@
pixel.z = Short4(0x0000u);
pixel.w = Short4(0xFFFFu);
break;
- case FORMAT_A16B16G16R16:
+ case VK_FORMAT_R16G16B16A16_UNORM:
buffer = cBuffer;
pixel.x = *Pointer<Short4>(buffer + 8 * x);
pixel.y = *Pointer<Short4>(buffer + 8 * x + 8);
@@ -1009,7 +1009,7 @@
pixel.w = *Pointer<Short4>(buffer + 8 * x + 8);
transpose4x4(pixel.x, pixel.y, pixel.z, pixel.w);
break;
- case FORMAT_G16R16:
+ case VK_FORMAT_R16G16_UNORM:
buffer = cBuffer;
pixel.x = *Pointer<Short4>(buffer + 4 * x);
buffer += *Pointer<Int>(data + OFFSET(DrawData, colorPitchB[index]));
@@ -1258,16 +1258,16 @@
{
switch(state.targetFormat[index])
{
- case FORMAT_R5G6B5:
+ case VK_FORMAT_R5G6B5_UNORM_PACK16:
current.x = AddSat(As<UShort4>(current.x), UShort4(0x0400));
current.y = AddSat(As<UShort4>(current.y), UShort4(0x0200));
current.z = AddSat(As<UShort4>(current.z), UShort4(0x0400));
break;
- case FORMAT_A8R8G8B8:
- case FORMAT_A8B8G8R8:
- case FORMAT_SRGB8_A8:
- case FORMAT_G8R8:
- case FORMAT_R8:
+ case VK_FORMAT_B8G8R8A8_UNORM:
+ case VK_FORMAT_R8G8B8A8_UNORM:
+ case VK_FORMAT_R8G8B8A8_SRGB:
+ case VK_FORMAT_R8G8_UNORM:
+ case VK_FORMAT_R8_UNORM:
current.x = current.x - As<Short4>(As<UShort4>(current.x) >> 8) + Short4(0x0080);
current.y = current.y - As<Short4>(As<UShort4>(current.y) >> 8) + Short4(0x0080);
current.z = current.z - As<Short4>(As<UShort4>(current.z) >> 8) + Short4(0x0080);
@@ -1283,7 +1283,7 @@
switch(state.targetFormat[index])
{
- case FORMAT_R5G6B5:
+ case VK_FORMAT_R5G6B5_UNORM_PACK16:
{
current.x = current.x & Short4(0xF800u);
current.y = As<UShort4>(current.y & Short4(0xFC00u)) >> 5;
@@ -1292,7 +1292,7 @@
current.x = current.x | current.y | current.z;
}
break;
- case FORMAT_A8R8G8B8:
+ case VK_FORMAT_B8G8R8A8_UNORM:
if(rgbaWriteMask == 0x7)
{
current.x = As<Short4>(As<UShort4>(current.x) >> 8);
@@ -1327,8 +1327,8 @@
current.y = As<Short4>(UnpackHigh(current.y, current.x));
}
break;
- case FORMAT_A8B8G8R8:
- case FORMAT_SRGB8_A8:
+ case VK_FORMAT_R8G8B8A8_UNORM:
+ case VK_FORMAT_R8G8B8A8_SRGB:
if(rgbaWriteMask == 0x7)
{
current.x = As<Short4>(As<UShort4>(current.x) >> 8);
@@ -1363,24 +1363,24 @@
current.y = As<Short4>(UnpackHigh(current.y, current.x));
}
break;
- case FORMAT_G8R8:
+ case VK_FORMAT_R8G8_UNORM:
current.x = As<Short4>(As<UShort4>(current.x) >> 8);
current.y = As<Short4>(As<UShort4>(current.y) >> 8);
current.x = As<Short4>(PackUnsigned(current.x, current.x));
current.y = As<Short4>(PackUnsigned(current.y, current.y));
current.x = UnpackLow(As<Byte8>(current.x), As<Byte8>(current.y));
break;
- case FORMAT_R8:
+ case VK_FORMAT_R8_UNORM:
current.x = As<Short4>(As<UShort4>(current.x) >> 8);
current.x = As<Short4>(PackUnsigned(current.x, current.x));
break;
- case FORMAT_G16R16:
+ case VK_FORMAT_R16G16_UNORM:
current.z = current.x;
current.x = As<Short4>(UnpackLow(current.x, current.y));
current.z = As<Short4>(UnpackHigh(current.z, current.y));
current.y = current.z;
break;
- case FORMAT_A16B16G16R16:
+ case VK_FORMAT_R16G16B16A16_UNORM:
transpose4x4(current.x, current.y, current.z, current.w);
break;
default:
@@ -1408,7 +1408,7 @@
switch(state.targetFormat[index])
{
- case FORMAT_R5G6B5:
+ case VK_FORMAT_R5G6B5_UNORM_PACK16:
{
Pointer<Byte> buffer = cBuffer + 2 * x;
Int value = *Pointer<Int>(buffer);
@@ -1447,12 +1447,12 @@
*Pointer<Int>(buffer) = c23;
}
break;
- case FORMAT_A8R8G8B8:
+ case VK_FORMAT_B8G8R8A8_UNORM:
{
Pointer<Byte> buffer = cBuffer + x * 4;
Short4 value = *Pointer<Short4>(buffer);
- if(state.targetFormat[index] == FORMAT_A8R8G8B8 && bgraWriteMask != 0x0000000F) // FIXME: Need for masking when XRGB && Fh?
+ if(state.targetFormat[index] == VK_FORMAT_B8G8R8A8_UNORM && bgraWriteMask != 0x0000000F) // FIXME: Need for masking when XRGB && Fh?
{
Short4 masked = value;
c01 &= *Pointer<Short4>(constants + OFFSET(Constants,maskB4Q[bgraWriteMask][0]));
@@ -1468,7 +1468,7 @@
buffer += *Pointer<Int>(data + OFFSET(DrawData,colorPitchB[index]));
value = *Pointer<Short4>(buffer);
- if(state.targetFormat[index] == FORMAT_A8R8G8B8 && bgraWriteMask != 0x0000000F) // FIXME: Need for masking when XRGB && Fh?
+ if(state.targetFormat[index] == VK_FORMAT_B8G8R8A8_UNORM && bgraWriteMask != 0x0000000F) // FIXME: Need for masking when XRGB && Fh?
{
Short4 masked = value;
c23 &= *Pointer<Short4>(constants + OFFSET(Constants,maskB4Q[bgraWriteMask][0]));
@@ -1482,13 +1482,13 @@
*Pointer<Short4>(buffer) = c23;
}
break;
- case FORMAT_A8B8G8R8:
- case FORMAT_SRGB8_A8:
+ case VK_FORMAT_R8G8B8A8_UNORM:
+ case VK_FORMAT_R8G8B8A8_SRGB:
{
Pointer<Byte> buffer = cBuffer + x * 4;
Short4 value = *Pointer<Short4>(buffer);
- bool masked = ((state.targetFormat[index] == FORMAT_A8B8G8R8 || state.targetFormat[index] == FORMAT_SRGB8_A8) && rgbaWriteMask != 0x0000000F); // FIXME: Need for masking when XBGR && Fh?
+ bool masked = ((state.targetFormat[index] == VK_FORMAT_R8G8B8A8_UNORM || state.targetFormat[index] == VK_FORMAT_R8G8B8A8_SRGB) && rgbaWriteMask != 0x0000000F); // FIXME: Need for masking when XBGR && Fh?
if(masked)
{
@@ -1520,7 +1520,7 @@
*Pointer<Short4>(buffer) = c23;
}
break;
- case FORMAT_G8R8:
+ case VK_FORMAT_R8G8_UNORM:
if((rgbaWriteMask & 0x00000003) != 0x0)
{
Pointer<Byte> buffer = cBuffer + 2 * x;
@@ -1545,7 +1545,7 @@
*Pointer<UInt>(buffer + pitch) = As<UInt>(Extract(packedCol, 1));
}
break;
- case FORMAT_R8:
+ case VK_FORMAT_R8_UNORM:
if(rgbaWriteMask & 0x00000001)
{
Pointer<Byte> buffer = cBuffer + 1 * x;
@@ -1562,7 +1562,7 @@
*Pointer<Short>(buffer + pitch) = Extract(current.x, 1);
}
break;
- case FORMAT_G16R16:
+ case VK_FORMAT_R16G16_UNORM:
{
Pointer<Byte> buffer = cBuffer + 4 * x;
@@ -1599,7 +1599,7 @@
*Pointer<Short4>(buffer) = current.y;
}
break;
- case FORMAT_A16B16G16R16:
+ case VK_FORMAT_R16G16B16A16_UNORM:
{
Pointer<Byte> buffer = cBuffer + 8 * x;
@@ -1824,9 +1824,9 @@
switch(state.targetFormat[index])
{
- case FORMAT_R32I:
- case FORMAT_R32UI:
- case FORMAT_R32F:
+ case VK_FORMAT_R32_SINT:
+ case VK_FORMAT_R32_UINT:
+ case VK_FORMAT_R32_SFLOAT:
buffer = cBuffer;
// FIXME: movlps
pixel.x.x = *Pointer<Float>(buffer + 4 * x + 0);
@@ -1837,9 +1837,9 @@
pixel.x.w = *Pointer<Float>(buffer + 4 * x + 4);
pixel.y = pixel.z = pixel.w = one;
break;
- case FORMAT_G32R32I:
- case FORMAT_G32R32UI:
- case FORMAT_G32R32F:
+ case VK_FORMAT_R32G32_SINT:
+ case VK_FORMAT_R32G32_UINT:
+ case VK_FORMAT_R32G32_SFLOAT:
buffer = cBuffer;
pixel.x = *Pointer<Float4>(buffer + 8 * x, 16);
buffer += *Pointer<Int>(data + OFFSET(DrawData,colorPitchB[index]));
@@ -1850,9 +1850,9 @@
pixel.y = pixel.z;
pixel.z = pixel.w = one;
break;
- case FORMAT_A32B32G32R32F:
- case FORMAT_A32B32G32R32I:
- case FORMAT_A32B32G32R32UI:
+ case VK_FORMAT_R32G32B32A32_SFLOAT:
+ case VK_FORMAT_R32G32B32A32_SINT:
+ case VK_FORMAT_R32G32B32A32_UINT:
buffer = cBuffer;
pixel.x = *Pointer<Float4>(buffer + 16 * x, 16);
pixel.y = *Pointer<Float4>(buffer + 16 * x + 16, 16);
@@ -1986,33 +1986,33 @@
{
switch(state.targetFormat[index])
{
- case FORMAT_R32F:
- case FORMAT_R32I:
- case FORMAT_R32UI:
- case FORMAT_R16I:
- case FORMAT_R16UI:
- case FORMAT_R8I:
- case FORMAT_R8UI:
+ case VK_FORMAT_R32_SFLOAT:
+ case VK_FORMAT_R32_SINT:
+ case VK_FORMAT_R32_UINT:
+ case VK_FORMAT_R16_SINT:
+ case VK_FORMAT_R16_UINT:
+ case VK_FORMAT_R8_SINT:
+ case VK_FORMAT_R8_UINT:
break;
- case FORMAT_G32R32F:
- case FORMAT_G32R32I:
- case FORMAT_G32R32UI:
- case FORMAT_G16R16I:
- case FORMAT_G16R16UI:
- case FORMAT_G8R8I:
- case FORMAT_G8R8UI:
+ case VK_FORMAT_R32G32_SFLOAT:
+ case VK_FORMAT_R32G32_SINT:
+ case VK_FORMAT_R32G32_UINT:
+ case VK_FORMAT_R16G16_SINT:
+ case VK_FORMAT_R16G16_UINT:
+ case VK_FORMAT_R8G8_SINT:
+ case VK_FORMAT_R8G8_UINT:
oC.z = oC.x;
oC.x = UnpackLow(oC.x, oC.y);
oC.z = UnpackHigh(oC.z, oC.y);
oC.y = oC.z;
break;
- case FORMAT_A32B32G32R32F:
- case FORMAT_A32B32G32R32I:
- case FORMAT_A32B32G32R32UI:
- case FORMAT_A16B16G16R16I:
- case FORMAT_A16B16G16R16UI:
- case FORMAT_A8B8G8R8I:
- case FORMAT_A8B8G8R8UI:
+ case VK_FORMAT_R32G32B32A32_SFLOAT:
+ case VK_FORMAT_R32G32B32A32_SINT:
+ case VK_FORMAT_R32G32B32A32_UINT:
+ case VK_FORMAT_R16G16B16A16_SINT:
+ case VK_FORMAT_R16G16B16A16_UINT:
+ case VK_FORMAT_R8G8B8A8_SINT:
+ case VK_FORMAT_R8G8B8A8_UINT:
transpose4x4(oC.x, oC.y, oC.z, oC.w);
break;
default:
@@ -2042,9 +2042,9 @@
switch(state.targetFormat[index])
{
- case FORMAT_R32F:
- case FORMAT_R32I:
- case FORMAT_R32UI:
+ case VK_FORMAT_R32_SFLOAT:
+ case VK_FORMAT_R32_SINT:
+ case VK_FORMAT_R32_UINT:
if(rgbaWriteMask & 0x00000001)
{
buffer = cBuffer + 4 * x;
@@ -2074,8 +2074,8 @@
*Pointer<Float>(buffer + 4) = oC.x.y;
}
break;
- case FORMAT_R16I:
- case FORMAT_R16UI:
+ case VK_FORMAT_R16_SINT:
+ case VK_FORMAT_R16_UINT:
if(rgbaWriteMask & 0x00000001)
{
buffer = cBuffer + 2 * x;
@@ -2092,7 +2092,7 @@
value = As<Float4>(As<Int4>(value) & *Pointer<Int4>(constants + OFFSET(Constants, invMaskD4X) + xMask * 16, 16));
oC.x = As<Float4>(As<Int4>(oC.x) | As<Int4>(value));
- if(state.targetFormat[index] == FORMAT_R16I)
+ if(state.targetFormat[index] == VK_FORMAT_R16_SINT)
{
Float component = oC.x.z;
*Pointer<Short>(buffer + 0) = Short(As<Int>(component));
@@ -2106,7 +2106,7 @@
component = oC.x.y;
*Pointer<Short>(buffer + 2) = Short(As<Int>(component));
}
- else // FORMAT_R16UI
+ else // VK_FORMAT_R16_UINT
{
Float component = oC.x.z;
*Pointer<UShort>(buffer + 0) = UShort(As<Int>(component));
@@ -2122,8 +2122,8 @@
}
}
break;
- case FORMAT_R8I:
- case FORMAT_R8UI:
+ case VK_FORMAT_R8_SINT:
+ case VK_FORMAT_R8_UINT:
if(rgbaWriteMask & 0x00000001)
{
buffer = cBuffer + x;
@@ -2135,7 +2135,7 @@
xyzw |= UInt(*Pointer<UShort>(buffer)) << 16;
Short4 tmpCol = Short4(As<Int4>(oC.x));
- if(state.targetFormat[index] == FORMAT_R8I)
+ if(state.targetFormat[index] == VK_FORMAT_R8_SINT)
{
tmpCol = As<Short4>(PackSigned(tmpCol, tmpCol));
}
@@ -2153,9 +2153,9 @@
*Pointer<UShort>(buffer) = UShort(packedCol);
}
break;
- case FORMAT_G32R32F:
- case FORMAT_G32R32I:
- case FORMAT_G32R32UI:
+ case VK_FORMAT_R32G32_SFLOAT:
+ case VK_FORMAT_R32G32_SINT:
+ case VK_FORMAT_R32G32_UINT:
buffer = cBuffer + 8 * x;
value = *Pointer<Float4>(buffer);
@@ -2192,8 +2192,8 @@
oC.y = As<Float4>(As<Int4>(oC.y) | As<Int4>(value));
*Pointer<Float4>(buffer) = oC.y;
break;
- case FORMAT_G16R16I:
- case FORMAT_G16R16UI:
+ case VK_FORMAT_R16G16_SINT:
+ case VK_FORMAT_R16G16_UINT:
if((rgbaWriteMask & 0x00000003) != 0x0)
{
buffer = cBuffer + 4 * x;
@@ -2222,8 +2222,8 @@
*Pointer<UInt2>(buffer) = (As<UInt2>(packedCol) & mergedMask) | (As<UInt2>(value) & ~mergedMask);
}
break;
- case FORMAT_G8R8I:
- case FORMAT_G8R8UI:
+ case VK_FORMAT_R8G8_SINT:
+ case VK_FORMAT_R8G8_UINT:
if((rgbaWriteMask & 0x00000003) != 0x0)
{
buffer = cBuffer + 2 * x;
@@ -2234,7 +2234,7 @@
buffer += *Pointer<Int>(data + OFFSET(DrawData, colorPitchB[index]));
xyzw = Insert(xyzw, *Pointer<Int>(buffer), 1);
- if(state.targetFormat[index] == FORMAT_G8R8I)
+ if(state.targetFormat[index] == VK_FORMAT_R8G8_SINT)
{
packedCol = As<Int2>(PackSigned(Short4(As<Int4>(oC.x)), Short4(As<Int4>(oC.y))));
}
@@ -2258,9 +2258,9 @@
*Pointer<UInt>(buffer) = As<UInt>(Extract(packedCol, 0));
}
break;
- case FORMAT_A32B32G32R32F:
- case FORMAT_A32B32G32R32I:
- case FORMAT_A32B32G32R32UI:
+ case VK_FORMAT_R32G32B32A32_SFLOAT:
+ case VK_FORMAT_R32G32B32A32_SINT:
+ case VK_FORMAT_R32G32B32A32_UINT:
buffer = cBuffer + 16 * x;
{
@@ -2333,8 +2333,8 @@
*Pointer<Float4>(buffer + 16, 16) = oC.w;
}
break;
- case FORMAT_A16B16G16R16I:
- case FORMAT_A16B16G16R16UI:
+ case VK_FORMAT_R16G16B16A16_SINT:
+ case VK_FORMAT_R16G16B16A16_UINT:
if((rgbaWriteMask & 0x0000000F) != 0x0)
{
buffer = cBuffer + 8 * x;
@@ -2363,15 +2363,15 @@
*Pointer<UInt4>(buffer) = (As<UInt4>(packedCol) & mergedMask) | (As<UInt4>(value) & ~mergedMask);
}
break;
- case FORMAT_A8B8G8R8I:
- case FORMAT_A8B8G8R8UI:
+ case VK_FORMAT_R8G8B8A8_SINT:
+ case VK_FORMAT_R8G8B8A8_UINT:
if((rgbaWriteMask & 0x0000000F) != 0x0)
{
UInt2 value, packedCol, mergedMask;
buffer = cBuffer + 4 * x;
- if(state.targetFormat[index] == FORMAT_A8B8G8R8I)
+ if(state.targetFormat[index] == VK_FORMAT_R8G8B8A8_SINT)
{
packedCol = As<UInt2>(PackSigned(Short4(As<Int4>(oC.x)), Short4(As<Int4>(oC.y))));
}
@@ -2389,7 +2389,7 @@
buffer += *Pointer<Int>(data + OFFSET(DrawData, colorPitchB[index]));
- if(state.targetFormat[index] == FORMAT_A8B8G8R8I)
+ if(state.targetFormat[index] == VK_FORMAT_R8G8B8A8_SINT)
{
packedCol = As<UInt2>(PackSigned(Short4(As<Int4>(oC.z)), Short4(As<Int4>(oC.w))));
}
diff --git a/src/Pipeline/SamplerCore.cpp b/src/Pipeline/SamplerCore.cpp
index 0b49d4e..ced6c2f 100644
--- a/src/Pipeline/SamplerCore.cpp
+++ b/src/Pipeline/SamplerCore.cpp
@@ -135,7 +135,7 @@
{
if(!hasFloatTexture())
{
- if(state.textureFormat == FORMAT_R5G6B5)
+ if(state.textureFormat == VK_FORMAT_R5G6B5_UNORM_PACK16)
{
c.x = MulHigh(As<UShort4>(c.x), UShort4(0x10000000 / 0xF800));
c.y = MulHigh(As<UShort4>(c.y), UShort4(0x10000000 / 0xFC00));
@@ -164,48 +164,46 @@
switch(state.textureFormat)
{
- case FORMAT_R8_SNORM:
- case FORMAT_G8R8_SNORM:
- case FORMAT_A8B8G8R8_SNORM:
- case FORMAT_R8:
- case FORMAT_R5G6B5:
- case FORMAT_G8R8:
- case FORMAT_R8I:
- case FORMAT_R8UI:
- case FORMAT_G8R8I:
- case FORMAT_G8R8UI:
- case FORMAT_A8B8G8R8I:
- case FORMAT_A8B8G8R8UI:
- case FORMAT_R16I:
- case FORMAT_R16UI:
- case FORMAT_G16R16:
- case FORMAT_G16R16I:
- case FORMAT_G16R16UI:
- case FORMAT_A16B16G16R16:
- case FORMAT_A16B16G16R16I:
- case FORMAT_A16B16G16R16UI:
- case FORMAT_R32I:
- case FORMAT_R32UI:
- case FORMAT_G32R32I:
- case FORMAT_G32R32UI:
- case FORMAT_A32B32G32R32I:
- case FORMAT_A32B32G32R32UI:
- case FORMAT_A8R8G8B8:
- case FORMAT_A8B8G8R8:
- case FORMAT_SRGB8_A8:
- case FORMAT_YV12_BT601:
- case FORMAT_YV12_BT709:
- case FORMAT_YV12_JFIF:
+ case VK_FORMAT_R8_SNORM:
+ case VK_FORMAT_R8G8_SNORM:
+ case VK_FORMAT_R8G8B8A8_SNORM:
+ case VK_FORMAT_R8_UNORM:
+ case VK_FORMAT_R5G6B5_UNORM_PACK16:
+ case VK_FORMAT_R8G8_UNORM:
+ case VK_FORMAT_R8_SINT:
+ case VK_FORMAT_R8_UINT:
+ case VK_FORMAT_R8G8_SINT:
+ case VK_FORMAT_R8G8_UINT:
+ case VK_FORMAT_R8G8B8A8_SINT:
+ case VK_FORMAT_R8G8B8A8_UINT:
+ case VK_FORMAT_R16_SINT:
+ case VK_FORMAT_R16_UINT:
+ case VK_FORMAT_R16G16_UNORM:
+ case VK_FORMAT_R16G16_SINT:
+ case VK_FORMAT_R16G16_UINT:
+ case VK_FORMAT_R16G16B16A16_UNORM:
+ case VK_FORMAT_R16G16B16A16_SINT:
+ case VK_FORMAT_R16G16B16A16_UINT:
+ case VK_FORMAT_R32_SINT:
+ case VK_FORMAT_R32_UINT:
+ case VK_FORMAT_R32G32_SINT:
+ case VK_FORMAT_R32G32_UINT:
+ case VK_FORMAT_R32G32B32A32_SINT:
+ case VK_FORMAT_R32G32B32A32_UINT:
+ case VK_FORMAT_B8G8R8A8_UNORM:
+ case VK_FORMAT_R8G8B8A8_UNORM:
+ case VK_FORMAT_R8G8B8A8_SRGB:
+ case VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:
if(componentCount < 2) c.y = Short4(defaultColorValue);
if(componentCount < 3) c.z = Short4(defaultColorValue);
if(componentCount < 4) c.w = Short4(0x1000);
break;
- case FORMAT_R32F:
+ case VK_FORMAT_R32_SFLOAT:
c.y = Short4(defaultColorValue);
- case FORMAT_G32R32F:
+ case VK_FORMAT_R32G32_SFLOAT:
c.z = Short4(defaultColorValue);
c.w = Short4(0x1000);
- case FORMAT_A32B32G32R32F:
+ case VK_FORMAT_R32G32B32A32_SFLOAT:
break;
default:
ASSERT(false);
@@ -294,7 +292,7 @@
{
switch(state.textureFormat)
{
- case FORMAT_R5G6B5:
+ case VK_FORMAT_R5G6B5_UNORM_PACK16:
c.x *= Float4(1.0f / 0xF800);
c.y *= Float4(1.0f / 0xFC00);
c.z *= Float4(1.0f / 0xF800);
@@ -316,7 +314,7 @@
{
Vector4s cs = sampleTexture(texture, u, v, w, q, bias, dsx, dsy, offset, function, false);
- if(state.textureFormat == FORMAT_R5G6B5)
+ if(state.textureFormat == VK_FORMAT_R5G6B5_UNORM_PACK16)
{
c.x = Float4(As<UShort4>(cs.x)) * Float4(1.0f / 0xF800);
c.y = Float4(As<UShort4>(cs.y)) * Float4(1.0f / 0xFC00);
@@ -345,51 +343,49 @@
{
switch(state.textureFormat)
{
- case FORMAT_R8I:
- case FORMAT_R8UI:
- case FORMAT_R16I:
- case FORMAT_R16UI:
- case FORMAT_R32I:
- case FORMAT_R32UI:
+ case VK_FORMAT_R8_SINT:
+ case VK_FORMAT_R8_UINT:
+ case VK_FORMAT_R16_SINT:
+ case VK_FORMAT_R16_UINT:
+ case VK_FORMAT_R32_SINT:
+ case VK_FORMAT_R32_UINT:
c.y = As<Float4>(UInt4(0));
- case FORMAT_G8R8I:
- case FORMAT_G8R8UI:
- case FORMAT_G16R16I:
- case FORMAT_G16R16UI:
- case FORMAT_G32R32I:
- case FORMAT_G32R32UI:
+ case VK_FORMAT_R8G8_SINT:
+ case VK_FORMAT_R8G8_UINT:
+ case VK_FORMAT_R16G16_SINT:
+ case VK_FORMAT_R16G16_UINT:
+ case VK_FORMAT_R32G32_SINT:
+ case VK_FORMAT_R32G32_UINT:
c.z = As<Float4>(UInt4(0));
- case FORMAT_A8B8G8R8I:
- case FORMAT_A8B8G8R8UI:
- case FORMAT_A16B16G16R16I:
- case FORMAT_A16B16G16R16UI:
- case FORMAT_A32B32G32R32I:
- case FORMAT_A32B32G32R32UI:
+ case VK_FORMAT_R8G8B8A8_SINT:
+ case VK_FORMAT_R8G8B8A8_UINT:
+ case VK_FORMAT_R16G16B16A16_SINT:
+ case VK_FORMAT_R16G16B16A16_UINT:
+ case VK_FORMAT_R32G32B32A32_SINT:
+ case VK_FORMAT_R32G32B32A32_UINT:
break;
- case FORMAT_R8_SNORM:
- case FORMAT_G8R8_SNORM:
- case FORMAT_A8B8G8R8_SNORM:
- case FORMAT_R8:
- case FORMAT_R5G6B5:
- case FORMAT_G8R8:
- case FORMAT_G16R16:
- case FORMAT_A16B16G16R16:
- case FORMAT_A8R8G8B8:
- case FORMAT_A8B8G8R8:
- case FORMAT_SRGB8_A8:
- case FORMAT_YV12_BT601:
- case FORMAT_YV12_BT709:
- case FORMAT_YV12_JFIF:
+ case VK_FORMAT_R8_SNORM:
+ case VK_FORMAT_R8G8_SNORM:
+ case VK_FORMAT_R8G8B8A8_SNORM:
+ case VK_FORMAT_R8_UNORM:
+ case VK_FORMAT_R5G6B5_UNORM_PACK16:
+ case VK_FORMAT_R8G8_UNORM:
+ case VK_FORMAT_R16G16_UNORM:
+ case VK_FORMAT_R16G16B16A16_UNORM:
+ case VK_FORMAT_B8G8R8A8_UNORM:
+ case VK_FORMAT_R8G8B8A8_UNORM:
+ case VK_FORMAT_R8G8B8A8_SRGB:
+ case VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:
if(componentCount < 2) c.y = Float4(defaultColorValue);
if(componentCount < 3) c.z = Float4(defaultColorValue);
if(componentCount < 4) c.w = Float4(1.0f);
break;
- case FORMAT_R32F:
+ case VK_FORMAT_R32_SFLOAT:
c.y = Float4(defaultColorValue);
- case FORMAT_G32R32F:
+ case VK_FORMAT_R32G32_SFLOAT:
c.z = Float4(defaultColorValue);
c.w = Float4(1.0f);
- case FORMAT_A32B32G32R32F:
+ case VK_FORMAT_R32G32B32A32_SFLOAT:
break;
default:
ASSERT(false);
@@ -1672,7 +1668,7 @@
switch(state.textureFormat)
{
- case FORMAT_R5G6B5:
+ case VK_FORMAT_R5G6B5_UNORM_PACK16:
c.z = (c.x & Short4(0x001Fu)) << 11;
c.y = (c.x & Short4(0x07E0u)) << 5;
c.x = (c.x & Short4(0xF800u));
@@ -1696,7 +1692,7 @@
switch(state.textureFormat)
{
- case FORMAT_A8R8G8B8:
+ case VK_FORMAT_B8G8R8A8_UNORM:
c.z = As<Short4>(UnpackLow(c.x, c.y));
c.x = As<Short4>(UnpackHigh(c.x, c.y));
c.y = c.z;
@@ -1706,10 +1702,10 @@
c.x = UnpackLow(As<Byte8>(c.x), As<Byte8>(c.x));
c.w = UnpackHigh(As<Byte8>(c.w), As<Byte8>(c.w));
break;
- case FORMAT_A8B8G8R8:
- case FORMAT_A8B8G8R8I:
- case FORMAT_A8B8G8R8_SNORM:
- case FORMAT_SRGB8_A8:
+ case VK_FORMAT_R8G8B8A8_UNORM:
+ case VK_FORMAT_R8G8B8A8_SINT:
+ case VK_FORMAT_R8G8B8A8_SNORM:
+ case VK_FORMAT_R8G8B8A8_SRGB:
c.z = As<Short4>(UnpackHigh(c.x, c.y));
c.x = As<Short4>(UnpackLow(c.x, c.y));
c.y = c.x;
@@ -1719,7 +1715,7 @@
c.z = UnpackLow(As<Byte8>(c.z), As<Byte8>(c.z));
c.w = UnpackHigh(As<Byte8>(c.w), As<Byte8>(c.w));
// Propagate sign bit
- if(state.textureFormat == FORMAT_A8B8G8R8I)
+ if(state.textureFormat == VK_FORMAT_R8G8B8A8_SINT)
{
c.x >>= 8;
c.y >>= 8;
@@ -1727,7 +1723,7 @@
c.w >>= 8;
}
break;
- case FORMAT_A8B8G8R8UI:
+ case VK_FORMAT_R8G8B8A8_UINT:
c.z = As<Short4>(UnpackHigh(c.x, c.y));
c.x = As<Short4>(UnpackLow(c.x, c.y));
c.y = c.x;
@@ -1750,16 +1746,16 @@
switch(state.textureFormat)
{
- case FORMAT_G8R8:
- case FORMAT_G8R8_SNORM:
+ case VK_FORMAT_R8G8_UNORM:
+ case VK_FORMAT_R8G8_SNORM:
c.y = (c.x & Short4(0xFF00u)) | As<Short4>(As<UShort4>(c.x) >> 8);
c.x = (c.x & Short4(0x00FFu)) | (c.x << 8);
break;
- case FORMAT_G8R8I:
+ case VK_FORMAT_R8G8_SINT:
c.y = c.x >> 8;
c.x = (c.x << 8) >> 8; // Propagate sign bit
break;
- case FORMAT_G8R8UI:
+ case VK_FORMAT_R8G8_UINT:
c.y = As<Short4>(As<UShort4>(c.x) >> 8);
c.x &= Short4(0x00FFu);
break;
@@ -1777,13 +1773,13 @@
switch(state.textureFormat)
{
- case FORMAT_R8I:
- case FORMAT_R8UI:
+ case VK_FORMAT_R8_SINT:
+ case VK_FORMAT_R8_UINT:
{
Int zero(0);
c.x = Unpack(As<Byte4>(c0), As<Byte4>(zero));
// Propagate sign bit
- if(state.textureFormat == FORMAT_R8I)
+ if(state.textureFormat == VK_FORMAT_R8_SINT)
{
c.x = (c.x << 8) >> 8;
}
@@ -1840,7 +1836,7 @@
if(state.sRGB)
{
- if(state.textureFormat == FORMAT_R5G6B5)
+ if(state.textureFormat == VK_FORMAT_R5G6B5_UNORM_PACK16)
{
sRGBtoLinear16_5_16(c.x);
sRGBtoLinear16_6_16(c.y);
@@ -1881,21 +1877,24 @@
switch(state.textureFormat)
{
- case FORMAT_YV12_BT601:
+ case VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:
+ // VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601
Kb = 0.114f;
Kr = 0.299f;
studioSwing = 1;
break;
- case FORMAT_YV12_BT709:
+ /*
+ // VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709
Kb = 0.0722f;
Kr = 0.2126f;
studioSwing = 1;
break;
- case FORMAT_YV12_JFIF:
+ // VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020
Kb = 0.114f;
Kr = 0.299f;
studioSwing = 0;
break;
+ */
default:
ASSERT(false);
}
@@ -2454,42 +2453,40 @@
{
switch(state.textureFormat)
{
- case FORMAT_R5G6B5:
+ case VK_FORMAT_R5G6B5_UNORM_PACK16:
return true;
- case FORMAT_R8_SNORM:
- case FORMAT_G8R8_SNORM:
- case FORMAT_A8B8G8R8_SNORM:
- case FORMAT_R8I:
- case FORMAT_R8UI:
- case FORMAT_G8R8I:
- case FORMAT_G8R8UI:
- case FORMAT_A8B8G8R8I:
- case FORMAT_A8B8G8R8UI:
- case FORMAT_R32I:
- case FORMAT_R32UI:
- case FORMAT_G32R32I:
- case FORMAT_G32R32UI:
- case FORMAT_A32B32G32R32I:
- case FORMAT_A32B32G32R32UI:
- case FORMAT_G8R8:
- case FORMAT_A8R8G8B8:
- case FORMAT_A8B8G8R8:
- case FORMAT_SRGB8_A8:
- case FORMAT_R32F:
- case FORMAT_G32R32F:
- case FORMAT_A32B32G32R32F:
- case FORMAT_R8:
- case FORMAT_G16R16:
- case FORMAT_A16B16G16R16:
- case FORMAT_R16I:
- case FORMAT_R16UI:
- case FORMAT_G16R16I:
- case FORMAT_G16R16UI:
- case FORMAT_A16B16G16R16I:
- case FORMAT_A16B16G16R16UI:
- case FORMAT_YV12_BT601:
- case FORMAT_YV12_BT709:
- case FORMAT_YV12_JFIF:
+ case VK_FORMAT_R8_SNORM:
+ case VK_FORMAT_R8G8_SNORM:
+ case VK_FORMAT_R8G8B8A8_SNORM:
+ case VK_FORMAT_R8_SINT:
+ case VK_FORMAT_R8_UINT:
+ case VK_FORMAT_R8G8_SINT:
+ case VK_FORMAT_R8G8_UINT:
+ case VK_FORMAT_R8G8B8A8_SINT:
+ case VK_FORMAT_R8G8B8A8_UINT:
+ case VK_FORMAT_R32_SINT:
+ case VK_FORMAT_R32_UINT:
+ case VK_FORMAT_R32G32_SINT:
+ case VK_FORMAT_R32G32_UINT:
+ case VK_FORMAT_R32G32B32A32_SINT:
+ case VK_FORMAT_R32G32B32A32_UINT:
+ case VK_FORMAT_R8G8_UNORM:
+ case VK_FORMAT_B8G8R8A8_UNORM:
+ case VK_FORMAT_R8G8B8A8_UNORM:
+ case VK_FORMAT_R8G8B8A8_SRGB:
+ case VK_FORMAT_R32_SFLOAT:
+ case VK_FORMAT_R32G32_SFLOAT:
+ case VK_FORMAT_R32G32B32A32_SFLOAT:
+ case VK_FORMAT_R8_UNORM:
+ case VK_FORMAT_R16G16_UNORM:
+ case VK_FORMAT_R16G16B16A16_UNORM:
+ case VK_FORMAT_R16_SINT:
+ case VK_FORMAT_R16_UINT:
+ case VK_FORMAT_R16G16_SINT:
+ case VK_FORMAT_R16G16_UINT:
+ case VK_FORMAT_R16G16B16A16_SINT:
+ case VK_FORMAT_R16G16B16A16_UINT:
+ case VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:
return false;
default:
ASSERT(false);
@@ -2502,42 +2499,40 @@
{
switch(state.textureFormat)
{
- case FORMAT_G8R8:
- case FORMAT_A8R8G8B8:
- case FORMAT_A8B8G8R8:
- case FORMAT_SRGB8_A8:
- case FORMAT_R8:
- case FORMAT_R8_SNORM:
- case FORMAT_G8R8_SNORM:
- case FORMAT_A8B8G8R8_SNORM:
- case FORMAT_R8I:
- case FORMAT_R8UI:
- case FORMAT_G8R8I:
- case FORMAT_G8R8UI:
- case FORMAT_A8B8G8R8I:
- case FORMAT_A8B8G8R8UI:
+ case VK_FORMAT_R8G8_UNORM:
+ case VK_FORMAT_B8G8R8A8_UNORM:
+ case VK_FORMAT_R8G8B8A8_UNORM:
+ case VK_FORMAT_R8G8B8A8_SRGB:
+ case VK_FORMAT_R8_UNORM:
+ case VK_FORMAT_R8_SNORM:
+ case VK_FORMAT_R8G8_SNORM:
+ case VK_FORMAT_R8G8B8A8_SNORM:
+ case VK_FORMAT_R8_SINT:
+ case VK_FORMAT_R8_UINT:
+ case VK_FORMAT_R8G8_SINT:
+ case VK_FORMAT_R8G8_UINT:
+ case VK_FORMAT_R8G8B8A8_SINT:
+ case VK_FORMAT_R8G8B8A8_UINT:
return true;
- case FORMAT_R5G6B5:
- case FORMAT_R32F:
- case FORMAT_G32R32F:
- case FORMAT_A32B32G32R32F:
- case FORMAT_G16R16:
- case FORMAT_A16B16G16R16:
- case FORMAT_R32I:
- case FORMAT_R32UI:
- case FORMAT_G32R32I:
- case FORMAT_G32R32UI:
- case FORMAT_A32B32G32R32I:
- case FORMAT_A32B32G32R32UI:
- case FORMAT_R16I:
- case FORMAT_R16UI:
- case FORMAT_G16R16I:
- case FORMAT_G16R16UI:
- case FORMAT_A16B16G16R16I:
- case FORMAT_A16B16G16R16UI:
- case FORMAT_YV12_BT601:
- case FORMAT_YV12_BT709:
- case FORMAT_YV12_JFIF:
+ case VK_FORMAT_R5G6B5_UNORM_PACK16:
+ case VK_FORMAT_R32_SFLOAT:
+ case VK_FORMAT_R32G32_SFLOAT:
+ case VK_FORMAT_R32G32B32A32_SFLOAT:
+ case VK_FORMAT_R16G16_UNORM:
+ case VK_FORMAT_R16G16B16A16_UNORM:
+ case VK_FORMAT_R32_SINT:
+ case VK_FORMAT_R32_UINT:
+ case VK_FORMAT_R32G32_SINT:
+ case VK_FORMAT_R32G32_UINT:
+ case VK_FORMAT_R32G32B32A32_SINT:
+ case VK_FORMAT_R32G32B32A32_UINT:
+ case VK_FORMAT_R16_SINT:
+ case VK_FORMAT_R16_UINT:
+ case VK_FORMAT_R16G16_SINT:
+ case VK_FORMAT_R16G16_UINT:
+ case VK_FORMAT_R16G16B16A16_SINT:
+ case VK_FORMAT_R16G16B16A16_UINT:
+ case VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:
return false;
default:
ASSERT(false);
@@ -2550,42 +2545,40 @@
{
switch(state.textureFormat)
{
- case FORMAT_R5G6B5:
- case FORMAT_R8_SNORM:
- case FORMAT_G8R8_SNORM:
- case FORMAT_A8B8G8R8_SNORM:
- case FORMAT_R8I:
- case FORMAT_R8UI:
- case FORMAT_G8R8I:
- case FORMAT_G8R8UI:
- case FORMAT_A8B8G8R8I:
- case FORMAT_A8B8G8R8UI:
- case FORMAT_R32I:
- case FORMAT_R32UI:
- case FORMAT_G32R32I:
- case FORMAT_G32R32UI:
- case FORMAT_A32B32G32R32I:
- case FORMAT_A32B32G32R32UI:
- case FORMAT_G8R8:
- case FORMAT_A8R8G8B8:
- case FORMAT_A8B8G8R8:
- case FORMAT_SRGB8_A8:
- case FORMAT_R32F:
- case FORMAT_G32R32F:
- case FORMAT_A32B32G32R32F:
- case FORMAT_R8:
- case FORMAT_YV12_BT601:
- case FORMAT_YV12_BT709:
- case FORMAT_YV12_JFIF:
+ case VK_FORMAT_R5G6B5_UNORM_PACK16:
+ case VK_FORMAT_R8_SNORM:
+ case VK_FORMAT_R8G8_SNORM:
+ case VK_FORMAT_R8G8B8A8_SNORM:
+ case VK_FORMAT_R8_SINT:
+ case VK_FORMAT_R8_UINT:
+ case VK_FORMAT_R8G8_SINT:
+ case VK_FORMAT_R8G8_UINT:
+ case VK_FORMAT_R8G8B8A8_SINT:
+ case VK_FORMAT_R8G8B8A8_UINT:
+ case VK_FORMAT_R32_SINT:
+ case VK_FORMAT_R32_UINT:
+ case VK_FORMAT_R32G32_SINT:
+ case VK_FORMAT_R32G32_UINT:
+ case VK_FORMAT_R32G32B32A32_SINT:
+ case VK_FORMAT_R32G32B32A32_UINT:
+ case VK_FORMAT_R8G8_UNORM:
+ case VK_FORMAT_B8G8R8A8_UNORM:
+ case VK_FORMAT_R8G8B8A8_UNORM:
+ case VK_FORMAT_R8G8B8A8_SRGB:
+ case VK_FORMAT_R32_SFLOAT:
+ case VK_FORMAT_R32G32_SFLOAT:
+ case VK_FORMAT_R32G32B32A32_SFLOAT:
+ case VK_FORMAT_R8_UNORM:
+ case VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:
return false;
- case FORMAT_G16R16:
- case FORMAT_A16B16G16R16:
- case FORMAT_R16I:
- case FORMAT_R16UI:
- case FORMAT_G16R16I:
- case FORMAT_G16R16UI:
- case FORMAT_A16B16G16R16I:
- case FORMAT_A16B16G16R16UI:
+ case VK_FORMAT_R16G16_UNORM:
+ case VK_FORMAT_R16G16B16A16_UNORM:
+ case VK_FORMAT_R16_SINT:
+ case VK_FORMAT_R16_UINT:
+ case VK_FORMAT_R16G16_SINT:
+ case VK_FORMAT_R16G16_UINT:
+ case VK_FORMAT_R16G16B16A16_SINT:
+ case VK_FORMAT_R16G16B16A16_UINT:
return true;
default:
ASSERT(false);
@@ -2598,42 +2591,40 @@
{
switch(state.textureFormat)
{
- case FORMAT_R5G6B5:
- case FORMAT_R8_SNORM:
- case FORMAT_G8R8_SNORM:
- case FORMAT_A8B8G8R8_SNORM:
- case FORMAT_R8I:
- case FORMAT_R8UI:
- case FORMAT_G8R8I:
- case FORMAT_G8R8UI:
- case FORMAT_A8B8G8R8I:
- case FORMAT_A8B8G8R8UI:
- case FORMAT_G8R8:
- case FORMAT_A8R8G8B8:
- case FORMAT_A8B8G8R8:
- case FORMAT_SRGB8_A8:
- case FORMAT_G16R16:
- case FORMAT_A16B16G16R16:
- case FORMAT_R16I:
- case FORMAT_R16UI:
- case FORMAT_G16R16I:
- case FORMAT_G16R16UI:
- case FORMAT_A16B16G16R16I:
- case FORMAT_A16B16G16R16UI:
- case FORMAT_R32F:
- case FORMAT_G32R32F:
- case FORMAT_A32B32G32R32F:
- case FORMAT_R8:
- case FORMAT_YV12_BT601:
- case FORMAT_YV12_BT709:
- case FORMAT_YV12_JFIF:
+ case VK_FORMAT_R5G6B5_UNORM_PACK16:
+ case VK_FORMAT_R8_SNORM:
+ case VK_FORMAT_R8G8_SNORM:
+ case VK_FORMAT_R8G8B8A8_SNORM:
+ case VK_FORMAT_R8_SINT:
+ case VK_FORMAT_R8_UINT:
+ case VK_FORMAT_R8G8_SINT:
+ case VK_FORMAT_R8G8_UINT:
+ case VK_FORMAT_R8G8B8A8_SINT:
+ case VK_FORMAT_R8G8B8A8_UINT:
+ case VK_FORMAT_R8G8_UNORM:
+ case VK_FORMAT_B8G8R8A8_UNORM:
+ case VK_FORMAT_R8G8B8A8_UNORM:
+ case VK_FORMAT_R8G8B8A8_SRGB:
+ case VK_FORMAT_R16G16_UNORM:
+ case VK_FORMAT_R16G16B16A16_UNORM:
+ case VK_FORMAT_R16_SINT:
+ case VK_FORMAT_R16_UINT:
+ case VK_FORMAT_R16G16_SINT:
+ case VK_FORMAT_R16G16_UINT:
+ case VK_FORMAT_R16G16B16A16_SINT:
+ case VK_FORMAT_R16G16B16A16_UINT:
+ case VK_FORMAT_R32_SFLOAT:
+ case VK_FORMAT_R32G32_SFLOAT:
+ case VK_FORMAT_R32G32B32A32_SFLOAT:
+ case VK_FORMAT_R8_UNORM:
+ case VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:
return false;
- case FORMAT_R32I:
- case FORMAT_R32UI:
- case FORMAT_G32R32I:
- case FORMAT_G32R32UI:
- case FORMAT_A32B32G32R32I:
- case FORMAT_A32B32G32R32UI:
+ case VK_FORMAT_R32_SINT:
+ case VK_FORMAT_R32_UINT:
+ case VK_FORMAT_R32G32_SINT:
+ case VK_FORMAT_R32G32_UINT:
+ case VK_FORMAT_R32G32B32A32_SINT:
+ case VK_FORMAT_R32G32B32A32_UINT:
return true;
default:
ASSERT(false);
@@ -2646,42 +2637,40 @@
{
switch(state.textureFormat)
{
- case FORMAT_YV12_BT601:
- case FORMAT_YV12_BT709:
- case FORMAT_YV12_JFIF:
+ case VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:
return true;
- case FORMAT_R5G6B5:
- case FORMAT_R8_SNORM:
- case FORMAT_G8R8_SNORM:
- case FORMAT_A8B8G8R8_SNORM:
- case FORMAT_R8I:
- case FORMAT_R8UI:
- case FORMAT_G8R8I:
- case FORMAT_G8R8UI:
- case FORMAT_A8B8G8R8I:
- case FORMAT_A8B8G8R8UI:
- case FORMAT_R32I:
- case FORMAT_R32UI:
- case FORMAT_G32R32I:
- case FORMAT_G32R32UI:
- case FORMAT_A32B32G32R32I:
- case FORMAT_A32B32G32R32UI:
- case FORMAT_G8R8:
- case FORMAT_A8R8G8B8:
- case FORMAT_A8B8G8R8:
- case FORMAT_SRGB8_A8:
- case FORMAT_R32F:
- case FORMAT_G32R32F:
- case FORMAT_A32B32G32R32F:
- case FORMAT_R8:
- case FORMAT_G16R16:
- case FORMAT_A16B16G16R16:
- case FORMAT_R16I:
- case FORMAT_R16UI:
- case FORMAT_G16R16I:
- case FORMAT_G16R16UI:
- case FORMAT_A16B16G16R16I:
- case FORMAT_A16B16G16R16UI:
+ case VK_FORMAT_R5G6B5_UNORM_PACK16:
+ case VK_FORMAT_R8_SNORM:
+ case VK_FORMAT_R8G8_SNORM:
+ case VK_FORMAT_R8G8B8A8_SNORM:
+ case VK_FORMAT_R8_SINT:
+ case VK_FORMAT_R8_UINT:
+ case VK_FORMAT_R8G8_SINT:
+ case VK_FORMAT_R8G8_UINT:
+ case VK_FORMAT_R8G8B8A8_SINT:
+ case VK_FORMAT_R8G8B8A8_UINT:
+ case VK_FORMAT_R32_SINT:
+ case VK_FORMAT_R32_UINT:
+ case VK_FORMAT_R32G32_SINT:
+ case VK_FORMAT_R32G32_UINT:
+ case VK_FORMAT_R32G32B32A32_SINT:
+ case VK_FORMAT_R32G32B32A32_UINT:
+ case VK_FORMAT_R8G8_UNORM:
+ case VK_FORMAT_B8G8R8A8_UNORM:
+ case VK_FORMAT_R8G8B8A8_UNORM:
+ case VK_FORMAT_R8G8B8A8_SRGB:
+ case VK_FORMAT_R32_SFLOAT:
+ case VK_FORMAT_R32G32_SFLOAT:
+ case VK_FORMAT_R32G32B32A32_SFLOAT:
+ case VK_FORMAT_R8_UNORM:
+ case VK_FORMAT_R16G16_UNORM:
+ case VK_FORMAT_R16G16B16A16_UNORM:
+ case VK_FORMAT_R16_SINT:
+ case VK_FORMAT_R16_UINT:
+ case VK_FORMAT_R16G16_SINT:
+ case VK_FORMAT_R16G16_UINT:
+ case VK_FORMAT_R16G16B16A16_SINT:
+ case VK_FORMAT_R16G16B16A16_UINT:
return false;
default:
ASSERT(false);
@@ -2694,41 +2683,39 @@
{
switch(state.textureFormat)
{
- case FORMAT_R5G6B5: return component < 3;
- case FORMAT_R8_SNORM: return component < 1;
- case FORMAT_G8R8_SNORM: return component < 2;
- case FORMAT_A8B8G8R8_SNORM: return component < 3;
- case FORMAT_R8I: return component < 1;
- case FORMAT_R8UI: return component < 1;
- case FORMAT_G8R8I: return component < 2;
- case FORMAT_G8R8UI: return component < 2;
- case FORMAT_A8B8G8R8I: return component < 3;
- case FORMAT_A8B8G8R8UI: return component < 3;
- case FORMAT_R32I: return component < 1;
- case FORMAT_R32UI: return component < 1;
- case FORMAT_G32R32I: return component < 2;
- case FORMAT_G32R32UI: return component < 2;
- case FORMAT_A32B32G32R32I: return component < 3;
- case FORMAT_A32B32G32R32UI: return component < 3;
- case FORMAT_G8R8: return component < 2;
- case FORMAT_A8R8G8B8: return component < 3;
- case FORMAT_A8B8G8R8: return component < 3;
- case FORMAT_SRGB8_A8: return component < 3;
- case FORMAT_R32F: return component < 1;
- case FORMAT_G32R32F: return component < 2;
- case FORMAT_A32B32G32R32F: return component < 3;
- case FORMAT_R8: return component < 1;
- case FORMAT_G16R16: return component < 2;
- case FORMAT_A16B16G16R16: return component < 3;
- case FORMAT_R16I: return component < 1;
- case FORMAT_R16UI: return component < 1;
- case FORMAT_G16R16I: return component < 2;
- case FORMAT_G16R16UI: return component < 2;
- case FORMAT_A16B16G16R16I: return component < 3;
- case FORMAT_A16B16G16R16UI: return component < 3;
- case FORMAT_YV12_BT601: return component < 3;
- case FORMAT_YV12_BT709: return component < 3;
- case FORMAT_YV12_JFIF: return component < 3;
+ case VK_FORMAT_R5G6B5_UNORM_PACK16: return component < 3;
+ case VK_FORMAT_R8_SNORM: return component < 1;
+ case VK_FORMAT_R8G8_SNORM: return component < 2;
+ case VK_FORMAT_R8G8B8A8_SNORM: return component < 3;
+ case VK_FORMAT_R8_SINT: return component < 1;
+ case VK_FORMAT_R8_UINT: return component < 1;
+ case VK_FORMAT_R8G8_SINT: return component < 2;
+ case VK_FORMAT_R8G8_UINT: return component < 2;
+ case VK_FORMAT_R8G8B8A8_SINT: return component < 3;
+ case VK_FORMAT_R8G8B8A8_UINT: return component < 3;
+ case VK_FORMAT_R32_SINT: return component < 1;
+ case VK_FORMAT_R32_UINT: return component < 1;
+ case VK_FORMAT_R32G32_SINT: return component < 2;
+ case VK_FORMAT_R32G32_UINT: return component < 2;
+ case VK_FORMAT_R32G32B32A32_SINT: return component < 3;
+ case VK_FORMAT_R32G32B32A32_UINT: return component < 3;
+ case VK_FORMAT_R8G8_UNORM: return component < 2;
+ case VK_FORMAT_B8G8R8A8_UNORM: return component < 3;
+ case VK_FORMAT_R8G8B8A8_UNORM: return component < 3;
+ case VK_FORMAT_R8G8B8A8_SRGB: return component < 3;
+ case VK_FORMAT_R32_SFLOAT: return component < 1;
+ case VK_FORMAT_R32G32_SFLOAT: return component < 2;
+ case VK_FORMAT_R32G32B32A32_SFLOAT: return component < 3;
+ case VK_FORMAT_R8_UNORM: return component < 1;
+ case VK_FORMAT_R16G16_UNORM: return component < 2;
+ case VK_FORMAT_R16G16B16A16_UNORM: return component < 3;
+ case VK_FORMAT_R16_SINT: return component < 1;
+ case VK_FORMAT_R16_UINT: return component < 1;
+ case VK_FORMAT_R16G16_SINT: return component < 2;
+ case VK_FORMAT_R16G16_UINT: return component < 2;
+ case VK_FORMAT_R16G16B16A16_SINT: return component < 3;
+ case VK_FORMAT_R16G16B16A16_UINT: return component < 3;
+ case VK_FORMAT_G8_B8R8_2PLANE_420_UNORM: return component < 3;
default:
ASSERT(false);
}
diff --git a/src/WSI/FrameBuffer.cpp b/src/WSI/FrameBuffer.cpp
index 772c0a0..4b408c1 100644
--- a/src/WSI/FrameBuffer.cpp
+++ b/src/WSI/FrameBuffer.cpp
@@ -40,7 +40,7 @@
this->width = width;
this->height = height;
- format = FORMAT_A8R8G8B8;
+ format = VK_FORMAT_B8G8R8A8_UNORM;
stride = 0;
windowed = !fullscreen || forceWindowed;
@@ -187,13 +187,13 @@
switch(state.destFormat)
{
- case FORMAT_A8R8G8B8:
+ case VK_FORMAT_B8G8R8A8_UNORM:
{
Int x = x0;
switch(state.sourceFormat)
{
- case FORMAT_A8R8G8B8:
+ case VK_FORMAT_B8G8R8A8_UNORM:
For(, x < width - 3, x += 4)
{
*Pointer<Int4>(d, 1) = *Pointer<Int4>(s, sStride % 16 ? 1 : 16);
@@ -202,7 +202,7 @@
d += 4 * dBytes;
}
break;
- case FORMAT_A8B8G8R8:
+ case VK_FORMAT_R8G8B8A8_UNORM:
For(, x < width - 3, x += 4)
{
Int4 bgra = *Pointer<Int4>(s, sStride % 16 ? 1 : 16);
@@ -215,7 +215,7 @@
d += 4 * dBytes;
}
break;
- case FORMAT_A16B16G16R16:
+ case VK_FORMAT_R16G16B16A16_UNORM:
For(, x < width - 1, x += 2)
{
Short4 c0 = As<UShort4>(Swizzle(*Pointer<Short4>(s + 0), 0xC6)) >> 8;
@@ -227,7 +227,7 @@
d += 2 * dBytes;
}
break;
- case FORMAT_R5G6B5:
+ case VK_FORMAT_R5G6B5_UNORM_PACK16:
For(, x < width - 3, x += 4)
{
Int4 rgb = Int4(*Pointer<Short4>(s));
@@ -249,10 +249,10 @@
{
switch(state.sourceFormat)
{
- case FORMAT_A8R8G8B8:
+ case VK_FORMAT_B8G8R8A8_UNORM:
*Pointer<Int>(d) = *Pointer<Int>(s);
break;
- case FORMAT_A8B8G8R8:
+ case VK_FORMAT_R8G8B8A8_UNORM:
{
Int rgba = *Pointer<Int>(s);
@@ -261,14 +261,14 @@
(rgba & Int(0xFF00FF00));
}
break;
- case FORMAT_A16B16G16R16:
+ case VK_FORMAT_R16G16B16A16_UNORM:
{
Short4 c = As<UShort4>(Swizzle(*Pointer<Short4>(s), 0xC6)) >> 8;
*Pointer<Int>(d) = Int(As<Int2>(PackUnsigned(c, c)));
}
break;
- case FORMAT_R5G6B5:
+ case VK_FORMAT_R5G6B5_UNORM_PACK16:
{
Int rgb = Int(*Pointer<Short>(s));
@@ -288,14 +288,14 @@
}
}
break;
- case FORMAT_A8B8G8R8:
- case FORMAT_SRGB8_A8:
+ case VK_FORMAT_R8G8B8A8_UNORM:
+ case VK_FORMAT_R8G8B8A8_SRGB:
{
Int x = x0;
switch(state.sourceFormat)
{
- case FORMAT_A8B8G8R8:
+ case VK_FORMAT_R8G8B8A8_UNORM:
For(, x < width - 3, x += 4)
{
*Pointer<Int4>(d, 1) = *Pointer<Int4>(s, sStride % 16 ? 1 : 16);
@@ -304,7 +304,7 @@
d += 4 * dBytes;
}
break;
- case FORMAT_A8R8G8B8:
+ case VK_FORMAT_B8G8R8A8_UNORM:
For(, x < width - 3, x += 4)
{
Int4 bgra = *Pointer<Int4>(s, sStride % 16 ? 1 : 16);
@@ -317,7 +317,7 @@
d += 4 * dBytes;
}
break;
- case FORMAT_A16B16G16R16:
+ case VK_FORMAT_R16G16B16A16_UNORM:
For(, x < width - 1, x += 2)
{
Short4 c0 = *Pointer<UShort4>(s + 0) >> 8;
@@ -329,7 +329,7 @@
d += 2 * dBytes;
}
break;
- case FORMAT_R5G6B5:
+ case VK_FORMAT_R5G6B5_UNORM_PACK16:
For(, x < width - 3, x += 4)
{
Int4 rgb = Int4(*Pointer<Short4>(s));
@@ -352,10 +352,10 @@
{
switch(state.sourceFormat)
{
- case FORMAT_A8B8G8R8:
+ case VK_FORMAT_R8G8B8A8_UNORM:
*Pointer<Int>(d) = *Pointer<Int>(s);
break;
- case FORMAT_A8R8G8B8:
+ case VK_FORMAT_B8G8R8A8_UNORM:
{
Int bgra = *Pointer<Int>(s);
*Pointer<Int>(d) = ((bgra & Int(0x00FF0000)) >> 16) |
@@ -363,14 +363,14 @@
(bgra & Int(0xFF00FF00));
}
break;
- case FORMAT_A16B16G16R16:
+ case VK_FORMAT_R16G16B16A16_UNORM:
{
Short4 c = *Pointer<UShort4>(s) >> 8;
*Pointer<Int>(d) = Int(As<Int2>(PackUnsigned(c, c)));
}
break;
- case FORMAT_R5G6B5:
+ case VK_FORMAT_R5G6B5_UNORM_PACK16:
{
Int rgb = Int(*Pointer<Short>(s));
@@ -390,13 +390,13 @@
}
}
break;
- case FORMAT_R5G6B5:
+ case VK_FORMAT_R5G6B5_UNORM_PACK16:
{
For(Int x = x0, x < width, x++)
{
switch(state.sourceFormat)
{
- case FORMAT_A8R8G8B8:
+ case VK_FORMAT_B8G8R8A8_UNORM:
{
Int c = *Pointer<Int>(s);
@@ -405,7 +405,7 @@
(c & 0x000000F8) >> 3);
}
break;
- case FORMAT_A8B8G8R8:
+ case VK_FORMAT_R8G8B8A8_UNORM:
{
Int c = *Pointer<Int>(s);
@@ -414,7 +414,7 @@
(c & 0x000000F8) << 8);
}
break;
- case FORMAT_A16B16G16R16:
+ case VK_FORMAT_R16G16B16A16_UNORM:
{
Short4 cc = *Pointer<UShort4>(s) >> 8;
Int c = Int(As<Int2>(PackUnsigned(cc, cc)));
@@ -424,7 +424,7 @@
(c & 0x000000F8) << 8);
}
break;
- case FORMAT_R5G6B5:
+ case VK_FORMAT_R5G6B5_UNORM_PACK16:
*Pointer<Short>(d) = *Pointer<Short>(s);
break;
default:
@@ -488,16 +488,16 @@
switch(state.sourceFormat)
{
- case FORMAT_A8R8G8B8:
+ case VK_FORMAT_B8G8R8A8_UNORM:
c2 = Unpack(*Pointer<Byte4>(s));
break;
- case FORMAT_A8B8G8R8:
+ case VK_FORMAT_R8G8B8A8_UNORM:
c2 = Swizzle(Unpack(*Pointer<Byte4>(s)), 0xC6);
break;
- case FORMAT_A16B16G16R16:
+ case VK_FORMAT_R16G16B16A16_UNORM:
c2 = Swizzle(*Pointer<Short4>(s), 0xC6);
break;
- case FORMAT_R5G6B5:
+ case VK_FORMAT_R5G6B5_UNORM_PACK16:
{
Int rgb(*Pointer<Short>(s));
rgb = 0xFF000000 |
@@ -524,18 +524,18 @@
switch(state.destFormat)
{
- case FORMAT_A8R8G8B8:
+ case VK_FORMAT_B8G8R8A8_UNORM:
*Pointer<Byte4>(d) = Byte4(PackUnsigned(c1, c1));
break;
- case FORMAT_A8B8G8R8:
- case FORMAT_SRGB8_A8:
+ case VK_FORMAT_R8G8B8A8_UNORM:
+ case VK_FORMAT_R8G8B8A8_SRGB:
{
c1 = Swizzle(c1, 0xC6);
*Pointer<Byte4>(d) = Byte4(PackUnsigned(c1, c1));
}
break;
- case FORMAT_R5G6B5:
+ case VK_FORMAT_R5G6B5_UNORM_PACK16:
{
Int c = Int(As<Int2>(PackUnsigned(c1, c1)));
diff --git a/src/WSI/FrameBuffer.hpp b/src/WSI/FrameBuffer.hpp
index 761db18..b41fbe3 100644
--- a/src/WSI/FrameBuffer.hpp
+++ b/src/WSI/FrameBuffer.hpp
@@ -29,8 +29,8 @@
{
int width;
int height;
- Format destFormat;
- Format sourceFormat;
+ VkFormat destFormat;
+ VkFormat sourceFormat;
int destStride;
int sourceStride;
int cursorWidth;
@@ -65,7 +65,7 @@
int width;
int height;
int stride;
- Format format;
+ VkFormat format;
private:
void copyLocked();
diff --git a/src/WSI/FrameBufferAndroid.cpp b/src/WSI/FrameBufferAndroid.cpp
index 8bc114e..415ad69 100644
--- a/src/WSI/FrameBufferAndroid.cpp
+++ b/src/WSI/FrameBufferAndroid.cpp
@@ -100,13 +100,13 @@
switch(buffer->format)
{
- case HAL_PIXEL_FORMAT_RGB_565: format = FORMAT_R5G6B5; break;
- case HAL_PIXEL_FORMAT_RGBA_8888: format = FORMAT_A8B8G8R8; break;
+ case HAL_PIXEL_FORMAT_RGB_565: format = VK_FORMAT_R5G6B5_UNORM_PACK16; break;
+ case HAL_PIXEL_FORMAT_RGBA_8888: format = VK_FORMAT_R8G8B8A8_UNORM; break;
#if ANDROID_PLATFORM_SDK_VERSION > 16
case HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED: format = FORMAT_X8B8G8R8; break;
#endif
case HAL_PIXEL_FORMAT_RGBX_8888: format = FORMAT_X8B8G8R8; break;
- case HAL_PIXEL_FORMAT_BGRA_8888: format = FORMAT_A8R8G8B8; break;
+ case HAL_PIXEL_FORMAT_BGRA_8888: format = VK_FORMAT_B8G8R8A8_UNORM; break;
case HAL_PIXEL_FORMAT_RGB_888:
// Frame buffers are expected to have 16-bit or 32-bit colors, not 24-bit.
TRACE("Unsupported frame buffer format RGB_888"); ASSERT(false);
@@ -114,7 +114,7 @@
break;
default:
TRACE("Unsupported frame buffer format %d", buffer->format); ASSERT(false);
- format = FORMAT_NULL;
+ format = VK_FORMAT_UNDEFINED;
break;
}
diff --git a/src/WSI/FrameBufferDD.cpp b/src/WSI/FrameBufferDD.cpp
index dcf1c9f..48963ee 100644
--- a/src/WSI/FrameBufferDD.cpp
+++ b/src/WSI/FrameBufferDD.cpp
@@ -106,12 +106,12 @@
switch(ddsd.ddpfPixelFormat.dwRGBBitCount)
{
- case 32: format = FORMAT_A8R8G8B8; break;
- case 16: format = FORMAT_R5G6B5; break;
- default: format = FORMAT_NULL; break;
+ case 32: format = VK_FORMAT_B8G8R8A8_UNORM; break;
+ case 16: format = VK_FORMAT_R5G6B5_UNORM_PACK16; break;
+ default: format = VK_FORMAT_UNDEFINED; break;
}
- if((result != DD_OK && result != DDERR_PRIMARYSURFACEALREADYEXISTS) || (format == FORMAT_NULL))
+ if((result != DD_OK && result != DDERR_PRIMARYSURFACEALREADYEXISTS) || (format == VK_FORMAT_UNDEFINED))
{
assert(!"Failed to initialize graphics: Incompatible display mode.");
}
@@ -205,12 +205,12 @@
do
{
- format = FORMAT_A8R8G8B8;
+ format = VK_FORMAT_B8G8R8A8_UNORM;
result = directDraw->SetDisplayMode(width, height, 32);
if(result == DDERR_INVALIDMODE)
{
- format = FORMAT_R5G6B5;
+ format = VK_FORMAT_R5G6B5_UNORM_PACK16;
result = directDraw->SetDisplayMode(width, height, 16);
if(result == DDERR_INVALIDMODE)
diff --git a/src/WSI/FrameBufferGDI.cpp b/src/WSI/FrameBufferGDI.cpp
index e932eb4..f7c7d07 100644
--- a/src/WSI/FrameBufferGDI.cpp
+++ b/src/WSI/FrameBufferGDI.cpp
@@ -37,7 +37,7 @@
init(this->windowHandle);
- format = FORMAT_A8R8G8B8;
+ format = VK_FORMAT_B8G8R8A8_UNORM;
}
FrameBufferGDI::~FrameBufferGDI()