1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2024-12-02 10:24:12 +01:00

[dxvk] Add format info flag for integer formats

This commit is contained in:
Philip Rebohle 2018-04-11 16:21:59 +02:00
parent 6a0ab19049
commit 9970dfaeca
No known key found for this signature in database
GPG Key ID: C8CC613427A31C99
2 changed files with 86 additions and 43 deletions

View File

@ -43,10 +43,12 @@ namespace dxvk {
{ 1, VK_IMAGE_ASPECT_COLOR_BIT },
// VK_FORMAT_R8_UINT
{ 1, VK_IMAGE_ASPECT_COLOR_BIT },
{ 1, VK_IMAGE_ASPECT_COLOR_BIT,
DxvkFormatFlag::SampledInteger },
// VK_FORMAT_R8_SINT
{ 1, VK_IMAGE_ASPECT_COLOR_BIT },
{ 1, VK_IMAGE_ASPECT_COLOR_BIT,
DxvkFormatFlag::SampledInteger },
// VK_FORMAT_R8_SRGB
{ 1, VK_IMAGE_ASPECT_COLOR_BIT },
@ -64,10 +66,12 @@ namespace dxvk {
{ 2, VK_IMAGE_ASPECT_COLOR_BIT },
// VK_FORMAT_R8G8_UINT
{ 2, VK_IMAGE_ASPECT_COLOR_BIT },
{ 2, VK_IMAGE_ASPECT_COLOR_BIT,
DxvkFormatFlag::SampledInteger },
// VK_FORMAT_R8G8_SINT
{ 2, VK_IMAGE_ASPECT_COLOR_BIT },
{ 2, VK_IMAGE_ASPECT_COLOR_BIT,
DxvkFormatFlag::SampledInteger },
// VK_FORMAT_R8G8_SRGB
{ 2, VK_IMAGE_ASPECT_COLOR_BIT },
@ -85,10 +89,12 @@ namespace dxvk {
{ 3, VK_IMAGE_ASPECT_COLOR_BIT },
// VK_FORMAT_R8G8B8_UINT
{ 3, VK_IMAGE_ASPECT_COLOR_BIT },
{ 3, VK_IMAGE_ASPECT_COLOR_BIT,
DxvkFormatFlag::SampledInteger },
// VK_FORMAT_R8G8B8_SINT
{ 3, VK_IMAGE_ASPECT_COLOR_BIT },
{ 3, VK_IMAGE_ASPECT_COLOR_BIT,
DxvkFormatFlag::SampledInteger },
// VK_FORMAT_R8G8B8_SRGB
{ 3, VK_IMAGE_ASPECT_COLOR_BIT },
@ -106,10 +112,12 @@ namespace dxvk {
{ 3, VK_IMAGE_ASPECT_COLOR_BIT },
// VK_FORMAT_B8G8R8_UINT
{ 3, VK_IMAGE_ASPECT_COLOR_BIT },
{ 3, VK_IMAGE_ASPECT_COLOR_BIT,
DxvkFormatFlag::SampledInteger },
// VK_FORMAT_B8G8R8_SINT
{ 3, VK_IMAGE_ASPECT_COLOR_BIT },
{ 3, VK_IMAGE_ASPECT_COLOR_BIT,
DxvkFormatFlag::SampledInteger },
// VK_FORMAT_B8G8R8_SRGB
{ 3, VK_IMAGE_ASPECT_COLOR_BIT },
@ -127,10 +135,12 @@ namespace dxvk {
{ 4, VK_IMAGE_ASPECT_COLOR_BIT },
// VK_FORMAT_R8G8B8A8_UINT
{ 4, VK_IMAGE_ASPECT_COLOR_BIT },
{ 4, VK_IMAGE_ASPECT_COLOR_BIT,
DxvkFormatFlag::SampledInteger },
// VK_FORMAT_R8G8B8A8_SINT
{ 4, VK_IMAGE_ASPECT_COLOR_BIT },
{ 4, VK_IMAGE_ASPECT_COLOR_BIT,
DxvkFormatFlag::SampledInteger },
// VK_FORMAT_R8G8B8A8_SRGB
{ 4, VK_IMAGE_ASPECT_COLOR_BIT },
@ -148,10 +158,12 @@ namespace dxvk {
{ 4, VK_IMAGE_ASPECT_COLOR_BIT },
// VK_FORMAT_B8G8R8A8_UINT
{ 4, VK_IMAGE_ASPECT_COLOR_BIT },
{ 4, VK_IMAGE_ASPECT_COLOR_BIT,
DxvkFormatFlag::SampledInteger },
// VK_FORMAT_B8G8R8A8_SINT
{ 4, VK_IMAGE_ASPECT_COLOR_BIT },
{ 4, VK_IMAGE_ASPECT_COLOR_BIT,
DxvkFormatFlag::SampledInteger },
// VK_FORMAT_B8G8R8A8_SRGB
{ 4, VK_IMAGE_ASPECT_COLOR_BIT },
@ -169,10 +181,12 @@ namespace dxvk {
{ 4, VK_IMAGE_ASPECT_COLOR_BIT },
// VK_FORMAT_A8B8G8R8_UINT_PACK32
{ 4, VK_IMAGE_ASPECT_COLOR_BIT },
{ 4, VK_IMAGE_ASPECT_COLOR_BIT,
DxvkFormatFlag::SampledInteger },
// VK_FORMAT_A8B8G8R8_SINT_PACK32
{ 4, VK_IMAGE_ASPECT_COLOR_BIT },
{ 4, VK_IMAGE_ASPECT_COLOR_BIT,
DxvkFormatFlag::SampledInteger },
// VK_FORMAT_A8B8G8R8_SRGB_PACK32
{ 4, VK_IMAGE_ASPECT_COLOR_BIT },
@ -190,10 +204,12 @@ namespace dxvk {
{ 4, VK_IMAGE_ASPECT_COLOR_BIT },
// VK_FORMAT_A2R10G10B10_UINT_PACK32
{ 4, VK_IMAGE_ASPECT_COLOR_BIT },
{ 4, VK_IMAGE_ASPECT_COLOR_BIT,
DxvkFormatFlag::SampledInteger },
// VK_FORMAT_A2R10G10B10_SINT_PACK32
{ 4, VK_IMAGE_ASPECT_COLOR_BIT },
{ 4, VK_IMAGE_ASPECT_COLOR_BIT,
DxvkFormatFlag::SampledInteger },
// VK_FORMAT_A2B10G10R10_UNORM_PACK32
{ 4, VK_IMAGE_ASPECT_COLOR_BIT },
@ -208,10 +224,12 @@ namespace dxvk {
{ 4, VK_IMAGE_ASPECT_COLOR_BIT },
// VK_FORMAT_A2B10G10R10_UINT_PACK32
{ 4, VK_IMAGE_ASPECT_COLOR_BIT },
{ 4, VK_IMAGE_ASPECT_COLOR_BIT,
DxvkFormatFlag::SampledInteger },
// VK_FORMAT_A2B10G10R10_SINT_PACK32
{ 4, VK_IMAGE_ASPECT_COLOR_BIT },
{ 4, VK_IMAGE_ASPECT_COLOR_BIT,
DxvkFormatFlag::SampledInteger },
// VK_FORMAT_R16_UNORM
{ 2, VK_IMAGE_ASPECT_COLOR_BIT },
@ -226,10 +244,12 @@ namespace dxvk {
{ 2, VK_IMAGE_ASPECT_COLOR_BIT },
// VK_FORMAT_R16_UINT
{ 2, VK_IMAGE_ASPECT_COLOR_BIT },
{ 2, VK_IMAGE_ASPECT_COLOR_BIT,
DxvkFormatFlag::SampledInteger },
// VK_FORMAT_R16_SINT
{ 2, VK_IMAGE_ASPECT_COLOR_BIT },
{ 2, VK_IMAGE_ASPECT_COLOR_BIT,
DxvkFormatFlag::SampledInteger },
// VK_FORMAT_R16_SFLOAT
{ 2, VK_IMAGE_ASPECT_COLOR_BIT },
@ -247,10 +267,12 @@ namespace dxvk {
{ 4, VK_IMAGE_ASPECT_COLOR_BIT },
// VK_FORMAT_R16G16_UINT
{ 4, VK_IMAGE_ASPECT_COLOR_BIT },
{ 4, VK_IMAGE_ASPECT_COLOR_BIT,
DxvkFormatFlag::SampledInteger },
// VK_FORMAT_R16G16_SINT
{ 4, VK_IMAGE_ASPECT_COLOR_BIT },
{ 4, VK_IMAGE_ASPECT_COLOR_BIT,
DxvkFormatFlag::SampledInteger },
// VK_FORMAT_R16G16_SFLOAT
{ 4, VK_IMAGE_ASPECT_COLOR_BIT },
@ -268,10 +290,12 @@ namespace dxvk {
{ 6, VK_IMAGE_ASPECT_COLOR_BIT },
// VK_FORMAT_R16G16B16_UINT
{ 6, VK_IMAGE_ASPECT_COLOR_BIT },
{ 6, VK_IMAGE_ASPECT_COLOR_BIT,
DxvkFormatFlag::SampledInteger },
// VK_FORMAT_R16G16B16_SINT
{ 6, VK_IMAGE_ASPECT_COLOR_BIT },
{ 6, VK_IMAGE_ASPECT_COLOR_BIT,
DxvkFormatFlag::SampledInteger },
// VK_FORMAT_R16G16B16_SFLOAT
{ 6, VK_IMAGE_ASPECT_COLOR_BIT },
@ -289,82 +313,100 @@ namespace dxvk {
{ 8, VK_IMAGE_ASPECT_COLOR_BIT },
// VK_FORMAT_R16G16B16A16_UINT
{ 8, VK_IMAGE_ASPECT_COLOR_BIT },
{ 8, VK_IMAGE_ASPECT_COLOR_BIT,
DxvkFormatFlag::SampledInteger },
// VK_FORMAT_R16G16B16A16_SINT
{ 8, VK_IMAGE_ASPECT_COLOR_BIT },
{ 8, VK_IMAGE_ASPECT_COLOR_BIT,
DxvkFormatFlag::SampledInteger },
// VK_FORMAT_R16G16B16A16_SFLOAT
{ 8, VK_IMAGE_ASPECT_COLOR_BIT },
// VK_FORMAT_R32_UINT
{ 4, VK_IMAGE_ASPECT_COLOR_BIT },
{ 4, VK_IMAGE_ASPECT_COLOR_BIT,
DxvkFormatFlag::SampledInteger },
// VK_FORMAT_R32_SINT
{ 4, VK_IMAGE_ASPECT_COLOR_BIT },
{ 4, VK_IMAGE_ASPECT_COLOR_BIT,
DxvkFormatFlag::SampledInteger },
// VK_FORMAT_R32_SFLOAT
{ 4, VK_IMAGE_ASPECT_COLOR_BIT },
// VK_FORMAT_R32G32_UINT
{ 8, VK_IMAGE_ASPECT_COLOR_BIT },
{ 8, VK_IMAGE_ASPECT_COLOR_BIT,
DxvkFormatFlag::SampledInteger },
// VK_FORMAT_R32G32_SINT
{ 8, VK_IMAGE_ASPECT_COLOR_BIT },
{ 8, VK_IMAGE_ASPECT_COLOR_BIT,
DxvkFormatFlag::SampledInteger },
// VK_FORMAT_R32G32_SFLOAT
{ 8, VK_IMAGE_ASPECT_COLOR_BIT },
// VK_FORMAT_R32G32B32_UINT
{ 12, VK_IMAGE_ASPECT_COLOR_BIT },
{ 12, VK_IMAGE_ASPECT_COLOR_BIT,
DxvkFormatFlag::SampledInteger },
// VK_FORMAT_R32G32B32_SINT
{ 12, VK_IMAGE_ASPECT_COLOR_BIT },
{ 12, VK_IMAGE_ASPECT_COLOR_BIT,
DxvkFormatFlag::SampledInteger },
// VK_FORMAT_R32G32B32_SFLOAT
{ 12, VK_IMAGE_ASPECT_COLOR_BIT },
// VK_FORMAT_R32G32B32A32_UINT
{ 16, VK_IMAGE_ASPECT_COLOR_BIT },
{ 16, VK_IMAGE_ASPECT_COLOR_BIT,
DxvkFormatFlag::SampledInteger },
// VK_FORMAT_R32G32B32A32_SINT
{ 16, VK_IMAGE_ASPECT_COLOR_BIT },
{ 16, VK_IMAGE_ASPECT_COLOR_BIT,
DxvkFormatFlag::SampledInteger },
// VK_FORMAT_R32G32B32A32_SFLOAT
{ 16, VK_IMAGE_ASPECT_COLOR_BIT },
// VK_FORMAT_R64_UINT
{ 8, VK_IMAGE_ASPECT_COLOR_BIT },
{ 8, VK_IMAGE_ASPECT_COLOR_BIT,
DxvkFormatFlag::SampledInteger },
// VK_FORMAT_R64_SINT
{ 8, VK_IMAGE_ASPECT_COLOR_BIT },
{ 8, VK_IMAGE_ASPECT_COLOR_BIT,
DxvkFormatFlag::SampledInteger },
// VK_FORMAT_R64_SFLOAT
{ 8, VK_IMAGE_ASPECT_COLOR_BIT },
// VK_FORMAT_R64G64_UINT
{ 16, VK_IMAGE_ASPECT_COLOR_BIT },
{ 16, VK_IMAGE_ASPECT_COLOR_BIT,
DxvkFormatFlag::SampledInteger },
// VK_FORMAT_R64G64_SINT
{ 16, VK_IMAGE_ASPECT_COLOR_BIT },
{ 16, VK_IMAGE_ASPECT_COLOR_BIT,
DxvkFormatFlag::SampledInteger },
// VK_FORMAT_R64G64_SFLOAT
{ 16, VK_IMAGE_ASPECT_COLOR_BIT },
// VK_FORMAT_R64G64B64_UINT
{ 24, VK_IMAGE_ASPECT_COLOR_BIT },
{ 24, VK_IMAGE_ASPECT_COLOR_BIT,
DxvkFormatFlag::SampledInteger },
// VK_FORMAT_R64G64B64_SINT
{ 24, VK_IMAGE_ASPECT_COLOR_BIT },
{ 24, VK_IMAGE_ASPECT_COLOR_BIT,
DxvkFormatFlag::SampledInteger },
// VK_FORMAT_R64G64B64_SFLOAT
{ 24, VK_IMAGE_ASPECT_COLOR_BIT },
// VK_FORMAT_R64G64B64A64_UINT
{ 32, VK_IMAGE_ASPECT_COLOR_BIT },
{ 32, VK_IMAGE_ASPECT_COLOR_BIT,
DxvkFormatFlag::SampledInteger },
// VK_FORMAT_R64G64B64A64_SINT
{ 32, VK_IMAGE_ASPECT_COLOR_BIT },
{ 32, VK_IMAGE_ASPECT_COLOR_BIT,
DxvkFormatFlag::SampledInteger },
// VK_FORMAT_R64G64B64A64_SFLOAT
{ 32, VK_IMAGE_ASPECT_COLOR_BIT },

View File

@ -5,7 +5,8 @@
namespace dxvk {
enum class DxvkFormatFlag {
BlockCompressed,
BlockCompressed = 0, ///< Image format is block compressed
SampledInteger = 1, ///< Sampled type is an integer type
};
using DxvkFormatFlags = Flags<DxvkFormatFlag>;