Vulkan Rasterizer: Fix clears on integer textures.
This commit is contained in:
parent
7f45ef70f3
commit
91357303b1
3 changed files with 84 additions and 1 deletions
|
@ -306,6 +306,53 @@ bool IsPixelFormatInteger(PixelFormat format) {
|
|||
}
|
||||
}
|
||||
|
||||
bool IsPixelFormatSignedInteger(PixelFormat format) {
|
||||
switch (format) {
|
||||
case PixelFormat::A8B8G8R8_SINT:
|
||||
case PixelFormat::R8_SINT:
|
||||
case PixelFormat::R16G16B16A16_SINT:
|
||||
case PixelFormat::R32G32B32A32_SINT:
|
||||
case PixelFormat::R32G32_SINT:
|
||||
case PixelFormat::R16_SINT:
|
||||
case PixelFormat::R16G16_SINT:
|
||||
case PixelFormat::R8G8_SINT:
|
||||
case PixelFormat::R32_SINT:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
size_t PixelComponentSizeBitsInteger(PixelFormat format) {
|
||||
switch (format) {
|
||||
case PixelFormat::A8B8G8R8_SINT:
|
||||
case PixelFormat::A8B8G8R8_UINT:
|
||||
case PixelFormat::R8_SINT:
|
||||
case PixelFormat::R8_UINT:
|
||||
case PixelFormat::R8G8_SINT:
|
||||
case PixelFormat::R8G8_UINT:
|
||||
return 8;
|
||||
case PixelFormat::A2B10G10R10_UINT:
|
||||
return 10;
|
||||
case PixelFormat::R16G16B16A16_SINT:
|
||||
case PixelFormat::R16G16B16A16_UINT:
|
||||
case PixelFormat::R16_UINT:
|
||||
case PixelFormat::R16_SINT:
|
||||
case PixelFormat::R16G16_UINT:
|
||||
case PixelFormat::R16G16_SINT:
|
||||
return 16;
|
||||
case PixelFormat::R32G32B32A32_UINT:
|
||||
case PixelFormat::R32G32B32A32_SINT:
|
||||
case PixelFormat::R32G32_SINT:
|
||||
case PixelFormat::R32G32_UINT:
|
||||
case PixelFormat::R32_UINT:
|
||||
case PixelFormat::R32_SINT:
|
||||
return 32;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
std::pair<u32, u32> GetASTCBlockSize(PixelFormat format) {
|
||||
return {DefaultBlockWidth(format), DefaultBlockHeight(format)};
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue