diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..3e4e445 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,13 @@ +# EditorConfig helps developers define and maintain consistent +# coding styles between different editors and IDEs +# http://editorconfig.org + +root = true + +[*.js] +indent_style = space +indent_size = 4 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 0000000..41ad922 --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,21 @@ +{ + "parserOptions": { + "ecmaVersion": 6 + }, + "env": { + "es6": true, + "node": true, + "mocha": true + }, + "extends": "eslint:recommended", + "rules": { + "semi": ["error", "never"], + "indent": ["error", 4], + "linebreak-style": ["error", "unix"], + "comma-dangle": ["error", "always-multiline"], + "quotes": ["error", "single"], + "camelcase": ["error", {"properties": "always"}], + "max-len": ["error", 140], + "strict": ["error", "global"] + } +} diff --git a/.gitignore b/.gitignore index 5148e52..e0c95a1 100644 --- a/.gitignore +++ b/.gitignore @@ -35,3 +35,6 @@ jspm_packages # Optional REPL history .node_repl_history +.vs/LugBench-API/v15/.suo +.vs/ProjectSettings.json +.vs/slnx.sqlite diff --git a/.jshintignore b/.jshintignore deleted file mode 100644 index c075a02..0000000 --- a/.jshintignore +++ /dev/null @@ -1,2 +0,0 @@ -# Folders to ignore -node_modules/ diff --git a/.jshintrc b/.jshintrc deleted file mode 100644 index 800605a..0000000 --- a/.jshintrc +++ /dev/null @@ -1,15 +0,0 @@ -{ - "esversion": 6, - "camelcase": true, - "node": true, - "unused": true, - "undef": true, - "strict": true, - "globals": { - // Globals for tests - "describe": true, - "it": true, - "before": true, - "after": true - } -} diff --git a/README.md b/README.md index 8de5296..a7be334 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,18 @@ # LugBench-API ## Table of contents +- [Continuous integration](#continuous-integration) - [Prerequisites](#prerequisites) - [Clone the repository](#clone-the-repository) - [Installation](#installation) - [Run the API](#run-the-api) - [Routes](#routes) +# Continuous integration + +### restify-api +[](https://circleci.com/gh/Lugdunum3D/LugBench-API/tree/restify-api) + # Prerequisites Program | Version @@ -45,10 +51,17 @@ export PORT=3000 # Routes -Routes | Description ----------------------------- | ----------- -`GET /api/:version/gpus` | Return an array containing all existing gpus -`GET /api/:version/gpus/:id` | Return a specific gpu with a specific id -`PUT /api/:version/gpus` | Add a new gpu - -Details for a Gpu can be found [here](./v1/models/gpu.js) +Routes | Description +--------------------- | ----------- +`GET /devices` | Return an array containing all existing devices +`GET /devices/:id` | Return a specific device with a specific id +`POST /devices` | Add a new device +`GET /scenarios` | Return an array containing all existing scenarios +`GET /scenarios/:id` | Return a specific scenario with a specific id +`GET /scores` | Return an array containing all existing scores +`GET /scores/:id` | Return a specific score with a specific id +`POST /scores` | Add a new score + +Details for a device can be found [here](./models/device.js) +Details for a scenario can be found [here](./models/scenario.js) +Details for a score can be found [here](./models/score.js) diff --git a/assets/mocks/devices/530.json b/assets/mocks/devices/530.json new file mode 100644 index 0000000..abb6aaf --- /dev/null +++ b/assets/mocks/devices/530.json @@ -0,0 +1,3334 @@ +{ + "name": "Intel(R) HD Graphics 530 (Skylake GT2)", + "os": "Linux", + "deviceId": 6427, + "vendorId": 32902, + "driverVersion": 1, + "vulkanInfo": { + "extensions": [{ + "extensionName": "VK_KHR_swapchain", + "specVersion": 68 + }, + { + "extensionName": "VK_KHR_sampler_mirror_clamp_to_edge", + "specVersion": 1 + } + ], + "features": { + "alphaToOne": true, + "depthBiasClamp": true, + "depthBounds": false, + "depthClamp": true, + "drawIndirectFirstInstance": true, + "dualSrcBlend": true, + "fillModeNonSolid": true, + "fragmentStoresAndAtomics": true, + "fullDrawIndexUint32": true, + "geometryShader": true, + "imageCubeArray": true, + "independentBlend": true, + "inheritedQueries": false, + "largePoints": true, + "logicOp": true, + "multiDrawIndirect": false, + "multiViewport": true, + "occlusionQueryPrecise": true, + "pipelineStatisticsQuery": false, + "robustBufferAccess": true, + "sampleRateShading": true, + "samplerAnisotropy": true, + "shaderClipDistance": true, + "shaderCullDistance": true, + "shaderFloat64": true, + "shaderImageGatherExtended": true, + "shaderInt16": false, + "shaderInt64": false, + "shaderResourceMinLod": false, + "shaderResourceResidency": false, + "shaderSampledImageArrayDynamicIndexing": true, + "shaderStorageBufferArrayDynamicIndexing": true, + "shaderStorageImageArrayDynamicIndexing": true, + "shaderStorageImageExtendedFormats": true, + "shaderStorageImageMultisample": false, + "shaderStorageImageReadWithoutFormat": false, + "shaderStorageImageWriteWithoutFormat": false, + "shaderTessellationAndGeometryPointSize": true, + "shaderUniformBufferArrayDynamicIndexing": true, + "sparseBinding": false, + "sparseResidency16Samples": false, + "sparseResidency2Samples": false, + "sparseResidency4Samples": false, + "sparseResidency8Samples": false, + "sparseResidencyAliased": false, + "sparseResidencyBuffer": false, + "sparseResidencyImage2D": false, + "sparseResidencyImage3D": false, + "tessellationShader": true, + "textureCompressionASTC_LDR": true, + "textureCompressionBC": true, + "textureCompressionETC2": true, + "variableMultisampleRate": false, + "vertexPipelineStoresAndAtomics": true, + "wideLines": true + }, + "formats": [ + [ + "VK_FORMAT_ASTC_12x12_SRGB_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_ASTC_12x12_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_ASTC_12x10_SRGB_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_ASTC_12x10_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_ASTC_10x10_SRGB_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_ASTC_10x10_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_ASTC_10x8_SRGB_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_ASTC_10x8_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_ASTC_10x6_SRGB_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_ASTC_10x6_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_ASTC_10x5_SRGB_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_ASTC_10x5_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_ASTC_8x8_SRGB_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_ASTC_8x8_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_ASTC_8x6_SRGB_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_ASTC_8x6_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_ASTC_8x5_SRGB_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_ASTC_8x5_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_ASTC_6x6_SRGB_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_ASTC_6x6_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_ASTC_6x5_SRGB_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_ASTC_6x5_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_ASTC_5x5_SRGB_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_ASTC_5x5_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_ASTC_5x4_SRGB_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_ASTC_5x4_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_ASTC_4x4_SRGB_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_ASTC_4x4_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_EAC_R11G11_SNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_EAC_R11G11_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_EAC_R11_SNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_EAC_R11_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_BC7_SRGB_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_BC7_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_BC6H_SFLOAT_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_BC6H_UFLOAT_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_BC5_SNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_BC5_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_BC4_SNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_BC4_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_BC3_SRGB_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_BC3_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_BC2_SRGB_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_BC2_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_BC1_RGBA_SRGB_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_BC1_RGBA_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_BC1_RGB_SRGB_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_BC1_RGB_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_D32_SFLOAT_S8_UINT", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ] + } + ], + [ + "VK_FORMAT_D24_UNORM_S8_UINT", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ] + } + ], + [ + "VK_FORMAT_D16_UNORM_S8_UINT", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_S8_UINT", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ] + } + ], + [ + "VK_FORMAT_D32_SFLOAT", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ] + } + ], + [ + "VK_FORMAT_X8_D24_UNORM_PACK32", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ] + } + ], + [ + "VK_FORMAT_D16_UNORM", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ] + } + ], + [ + "VK_FORMAT_E5B9G9R9_UFLOAT_PACK32", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_B10G11R11_UFLOAT_PACK32", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_R64G64B64A64_SFLOAT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R64G64B64A64_SINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R64G64B64A64_UINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R64G64B64_SFLOAT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R64G64B64_SINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R64G64B64_UINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R64G64_SFLOAT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R64G64_SINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R64G64_UINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R64_SFLOAT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R64_SINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R64_UINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R32G32B32A32_SFLOAT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_R32G32B32A32_SINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ] + } + ], + [ + "VK_FORMAT_R32G32B32A32_UINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ] + } + ], + [ + "VK_FORMAT_R32G32B32_SFLOAT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_R32G32B32_SINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT" + ] + } + ], + [ + "VK_FORMAT_R32G32B32_UINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT" + ] + } + ], + [ + "VK_FORMAT_R32G32_SFLOAT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_R32G32_SINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ] + } + ], + [ + "VK_FORMAT_R32G32_UINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ] + } + ], + [ + "VK_FORMAT_R32_SFLOAT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_R32_SINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ] + } + ], + [ + "VK_FORMAT_R32_UINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ] + } + ], + [ + "VK_FORMAT_R16G16B16A16_SFLOAT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_R16G16B16A16_SINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ] + } + ], + [ + "VK_FORMAT_B8G8R8A8_SNORM", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_B8G8R8A8_UNORM", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_R8G8B8A8_SRGB", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_R8G8B8A8_SINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ] + } + ], + [ + "VK_FORMAT_R8G8B8A8_UINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ] + } + ], + [ + "VK_FORMAT_R8G8B8A8_SSCALED", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R8G8B8A8_USCALED", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R8G8B8A8_SNORM", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_R8G8B8A8_UNORM", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_B8G8R8_SRGB", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_B8G8R8_SINT", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_B8G8R8_UINT", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_B8G8R8_SSCALED", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_B8G8R8_USCALED", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_B8G8R8_SNORM", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_B8G8R8_UNORM", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R8G8B8_SRGB", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_R8G8B8_SINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT" + ] + } + ], + [ + "VK_FORMAT_R8G8B8_UINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT" + ] + } + ], + [ + "VK_FORMAT_R8G8B8_SSCALED", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R8G8B8_USCALED", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R8G8B8_SNORM", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_R8G8B8_UNORM", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_R8G8_SRGB", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R8_UNORM", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_A1R5G5B5_UNORM_PACK16", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_B5G5R5A1_UNORM_PACK16", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R5G5B5A1_UNORM_PACK16", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_B5G6R5_UNORM_PACK16", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_R5G6B5_UNORM_PACK16", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_UNDEFINED", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R4G4_UNORM_PACK8", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R4G4B4A4_UNORM_PACK16", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_B4G4R4A4_UNORM_PACK16", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_R8_SNORM", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_R8_USCALED", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R8_SSCALED", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R8_UINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ] + } + ], + [ + "VK_FORMAT_R8_SINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ] + } + ], + [ + "VK_FORMAT_R8_SRGB", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R8G8_UNORM", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_R8G8_SNORM", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_R8G8_USCALED", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R8G8_SSCALED", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R8G8_UINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ] + } + ], + [ + "VK_FORMAT_R8G8_SINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ] + } + ], + [ + "VK_FORMAT_B8G8R8A8_USCALED", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_B8G8R8A8_SSCALED", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_B8G8R8A8_UINT", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_B8G8R8A8_SINT", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_B8G8R8A8_SRGB", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_A8B8G8R8_UNORM_PACK32", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_A8B8G8R8_SNORM_PACK32", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_A8B8G8R8_USCALED_PACK32", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_A8B8G8R8_SSCALED_PACK32", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_A8B8G8R8_UINT_PACK32", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ] + } + ], + [ + "VK_FORMAT_A8B8G8R8_SINT_PACK32", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ] + } + ], + [ + "VK_FORMAT_A8B8G8R8_SRGB_PACK32", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_A2R10G10B10_UNORM_PACK32", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_A2R10G10B10_SNORM_PACK32", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_A2R10G10B10_USCALED_PACK32", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_A2R10G10B10_SSCALED_PACK32", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_A2R10G10B10_UINT_PACK32", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_A2R10G10B10_SINT_PACK32", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_A2B10G10R10_UNORM_PACK32", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_A2B10G10R10_SNORM_PACK32", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_A2B10G10R10_USCALED_PACK32", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_A2B10G10R10_SSCALED_PACK32", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_A2B10G10R10_UINT_PACK32", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ] + } + ], + [ + "VK_FORMAT_A2B10G10R10_SINT_PACK32", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R16_UNORM", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_R16_SNORM", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_R16_USCALED", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R16_SSCALED", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R16_UINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ] + } + ], + [ + "VK_FORMAT_R16_SINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ] + } + ], + [ + "VK_FORMAT_R16_SFLOAT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_R16G16_UNORM", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_R16G16_SNORM", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_R16G16_USCALED", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R16G16_SSCALED", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R16G16_UINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ] + } + ], + [ + "VK_FORMAT_R16G16_SINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ] + } + ], + [ + "VK_FORMAT_R16G16_SFLOAT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_R16G16B16_UNORM", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_R16G16B16_SNORM", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_R16G16B16_USCALED", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R16G16B16_SSCALED", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R16G16B16_UINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT" + ] + } + ], + [ + "VK_FORMAT_R16G16B16_SINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT" + ] + } + ], + [ + "VK_FORMAT_R16G16B16_SFLOAT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_R16G16B16A16_UNORM", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_R16G16B16A16_SNORM", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" + ] + } + ], + [ + "VK_FORMAT_R16G16B16A16_USCALED", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R16G16B16A16_SSCALED", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R16G16B16A16_UINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT" + ] + } + ] + ], + "memory": { + "memoryHeaps": [{ + "flags": [ + "VK_MEMORY_HEAP_DEVICE_LOCAL_BIT" + ], + "size": 3208289280 + }], + "memoryTypes": [{ + "heapIndex": 0, + "propertyFlags": [ + "VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT", + "VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT", + "VK_MEMORY_PROPERTY_HOST_COHERENT_BIT", + "VK_MEMORY_PROPERTY_HOST_CACHED_BIT" + ] + }] + }, + "properties": { + "apiVersion": { + "major": 1, + "minor": 0, + "patch": 5 + }, + "deviceID": 6427, + "deviceName": "Intel(R) HD Graphics 530 (Skylake GT2)", + "deviceType": "VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU", + "driverVersion": 1, + "limits": { + "bufferImageGranularity": 64, + "discreteQueuePriorities": 1, + "framebufferColorSampleCounts": [ + "VK_SAMPLE_COUNT_1_BIT", + "VK_SAMPLE_COUNT_2_BIT", + "VK_SAMPLE_COUNT_4_BIT", + "VK_SAMPLE_COUNT_8_BIT", + "VK_SAMPLE_COUNT_16_BIT" + ], + "framebufferDepthSampleCounts": [ + "VK_SAMPLE_COUNT_1_BIT", + "VK_SAMPLE_COUNT_2_BIT", + "VK_SAMPLE_COUNT_4_BIT", + "VK_SAMPLE_COUNT_8_BIT", + "VK_SAMPLE_COUNT_16_BIT" + ], + "framebufferNoAttachmentsSampleCounts": [ + "VK_SAMPLE_COUNT_1_BIT", + "VK_SAMPLE_COUNT_2_BIT", + "VK_SAMPLE_COUNT_4_BIT", + "VK_SAMPLE_COUNT_8_BIT", + "VK_SAMPLE_COUNT_16_BIT" + ], + "framebufferStencilSampleCounts": [ + "VK_SAMPLE_COUNT_1_BIT", + "VK_SAMPLE_COUNT_2_BIT", + "VK_SAMPLE_COUNT_4_BIT", + "VK_SAMPLE_COUNT_8_BIT", + "VK_SAMPLE_COUNT_16_BIT" + ], + "lineWidthGranularity": 0.0078125, + "lineWidthRange": [ + 0.0, + 7.9921875 + ], + "maxBoundDescriptorSets": 8, + "maxClipDistances": 8, + "maxColorAttachments": 8, + "maxCombinedClipAndCullDistances": 8, + "maxComputeSharedMemorySize": 32768, + "maxComputeWorkGroupCount": [ + 65535, + 65535, + 65535 + ], + "maxComputeWorkGroupInvocations": 896, + "maxComputeWorkGroupSize": [ + 896, + 896, + 896 + ], + "maxCullDistances": 8, + "maxDescriptorSetInputAttachments": 256, + "maxDescriptorSetSampledImages": 256, + "maxDescriptorSetSamplers": 256, + "maxDescriptorSetStorageBuffers": 256, + "maxDescriptorSetStorageBuffersDynamic": 8, + "maxDescriptorSetStorageImages": 256, + "maxDescriptorSetUniformBuffers": 256, + "maxDescriptorSetUniformBuffersDynamic": 8, + "maxDrawIndexedIndexValue": 4294967295, + "maxDrawIndirectCount": 4294967295, + "maxFragmentCombinedOutputResources": 8, + "maxFragmentDualSrcAttachments": 1, + "maxFragmentInputComponents": 128, + "maxFragmentOutputAttachments": 8, + "maxFramebufferHeight": 16384, + "maxFramebufferLayers": 2048, + "maxFramebufferWidth": 16384, + "maxGeometryInputComponents": 64, + "maxGeometryOutputComponents": 128, + "maxGeometryOutputVertices": 256, + "maxGeometryShaderInvocations": 32, + "maxGeometryTotalOutputComponents": 1024, + "maxImageArrayLayers": 2048, + "maxImageDimension1D": 16384, + "maxImageDimension2D": 16384, + "maxImageDimension3D": 2048, + "maxImageDimensionCube": 16384, + "maxInterpolationOffset": 0.4375, + "maxMemoryAllocationCount": 4294967295, + "maxPerStageDescriptorInputAttachments": 64, + "maxPerStageDescriptorSampledImages": 64, + "maxPerStageDescriptorSamplers": 64, + "maxPerStageDescriptorStorageBuffers": 64, + "maxPerStageDescriptorStorageImages": 64, + "maxPerStageDescriptorUniformBuffers": 64, + "maxPerStageResources": 128, + "maxPushConstantsSize": 128, + "maxSampleMaskWords": 1, + "maxSamplerAllocationCount": 65536, + "maxSamplerAnisotropy": 16.0, + "maxSamplerLodBias": 16.0, + "maxStorageBufferRange": 1073741824, + "maxTessellationControlPerPatchOutputComponents": 128, + "maxTessellationControlPerVertexInputComponents": 128, + "maxTessellationControlPerVertexOutputComponents": 128, + "maxTessellationControlTotalOutputComponents": 2048, + "maxTessellationEvaluationInputComponents": 128, + "maxTessellationEvaluationOutputComponents": 128, + "maxTessellationGenerationLevel": 64, + "maxTessellationPatchSize": 32, + "maxTexelBufferElements": 134217728, + "maxTexelGatherOffset": 31, + "maxTexelOffset": 7, + "maxUniformBufferRange": 134217728, + "maxVertexInputAttributeOffset": 2047, + "maxVertexInputAttributes": 32, + "maxVertexInputBindingStride": 2048, + "maxVertexInputBindings": 32, + "maxVertexOutputComponents": 128, + "maxViewportDimensions": [ + 16384, + 16384 + ], + "maxViewports": 16, + "minInterpolationOffset": -0.5, + "minMemoryMapAlignment": 4096, + "minStorageBufferOffsetAlignment": 4, + "minTexelBufferOffsetAlignment": 1, + "minTexelGatherOffset": -32, + "minTexelOffset": -8, + "minUniformBufferOffsetAlignment": 16, + "mipmapPrecisionBits": 4, + "nonCoherentAtomSize": 64, + "optimalBufferCopyOffsetAlignment": 128, + "optimalBufferCopyRowPitchAlignment": 128, + "pointSizeGranularity": 0.125, + "pointSizeRange": [ + 0.125, + 255.875 + ], + "sampledImageColorSampleCounts": [ + "VK_SAMPLE_COUNT_1_BIT", + "VK_SAMPLE_COUNT_2_BIT", + "VK_SAMPLE_COUNT_4_BIT", + "VK_SAMPLE_COUNT_8_BIT", + "VK_SAMPLE_COUNT_16_BIT" + ], + "sampledImageDepthSampleCounts": [ + "VK_SAMPLE_COUNT_1_BIT", + "VK_SAMPLE_COUNT_2_BIT", + "VK_SAMPLE_COUNT_4_BIT", + "VK_SAMPLE_COUNT_8_BIT", + "VK_SAMPLE_COUNT_16_BIT" + ], + "sampledImageIntegerSampleCounts": [ + "VK_SAMPLE_COUNT_1_BIT" + ], + "sampledImageStencilSampleCounts": [ + "VK_SAMPLE_COUNT_1_BIT", + "VK_SAMPLE_COUNT_2_BIT", + "VK_SAMPLE_COUNT_4_BIT", + "VK_SAMPLE_COUNT_8_BIT", + "VK_SAMPLE_COUNT_16_BIT" + ], + "sparseAddressSpaceSize": 0, + "standardSampleLocations": true, + "storageImageSampleCounts": [ + "VK_SAMPLE_COUNT_1_BIT" + ], + "strictLines": false, + "subPixelInterpolationOffsetBits": 4, + "subPixelPrecisionBits": 4, + "subTexelPrecisionBits": 4, + "timestampComputeAndGraphics": false, + "timestampPeriod": 83.3330001831055, + "viewportBoundsRange": [-32768.0, + 32767.0 + ], + "viewportSubPixelBits": 13 + }, + "pipelineCacheUUID": [ + 97, + 110, + 118, + 45, + 49, + 52, + 57, + 51, + 52, + 55, + 57, + 49, + 52, + 54, + 0, + 0 + ], + "sparseProperties": { + "residencyAlignedMipSize": false, + "residencyNonResidentStrict": false, + "residencyStandard2DBlockShape": false, + "residencyStandard2DMultisampleBlockShape": false, + "residencyStandard3DBlockShape": false + }, + "vendorID": 32902 + }, + "queues": [{ + "minImageTransferGranularity": { + "depth": 1, + "height": 1, + "width": 1 + }, + "queueCount": 1, + "queueFlags": [ + "VK_QUEUE_GRAPHICS_BIT", + "VK_QUEUE_COMPUTE_BIT", + "VK_QUEUE_TRANSFER_BIT" + ], + "timestampValidBits": 36 + }], + "swapchain": { + "maxImageArrayLayers": 1, + "minImageCount": 2, + "maxImageCount": 0, + "formats": [ + "VK_FORMAT_B8G8R8A8_SRGB", + "VK_FORMAT_" + ], + "presentModes": [ + "VK_PRESENT_MODE_IMMEDIATE_KHR", + "VK_PRESENT_MODE_MAILBOX_KHR", + "VK_PRESENT_MODE_FIFO_KHR" + ], + "supportedTransforms": [ + "VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR" + ], + "supportedCompositeAlpha": [ + "VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR", + "VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR" + ], + "supportedUsageFlags": [ + "VK_IMAGE_USAGE_TRANSFER_SRC_BIT", + "VK_IMAGE_USAGE_TRANSFER_DST_BIT", + "VK_IMAGE_USAGE_SAMPLED_BIT", + "VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT" + ], + "surfaceExtension": "VK_KHR_xlib_surface" + } + } +} diff --git a/assets/mocks/devices/960M.json b/assets/mocks/devices/960M.json new file mode 100644 index 0000000..cde89d7 --- /dev/null +++ b/assets/mocks/devices/960M.json @@ -0,0 +1,3421 @@ +{ + "name": "GeForce GTX 960M", + "os": "Windows", + "deviceId": 5159, + "vendorId": 4318, + "driverVersion": 378520, + "vulkanInfo": { + "extensions": [ + { + "extensionName": "VK_KHR_swapchain", + "specVersion": 1 + }, + { + "extensionName": "VK_KHR_display_swapchain", + "specVersion": 1 + }, + { + "extensionName": "VK_KHR_maintenance1", + "specVersion": 1 + }, + { + "extensionName": "VK_KHR_shader_draw_parameters", + "specVersion": 1 + }, + { + "extensionName": "VK_KHR_sampler_mirror_clamp_to_edge", + "specVersion": 1 + }, + { + "extensionName": "VK_EXT_shader_subgroup_ballot", + "specVersion": 1 + }, + { + "extensionName": "VK_EXT_shader_subgroup_vote", + "specVersion": 1 + }, + { + "extensionName": "VK_NV_dedicated_allocation", + "specVersion": 1 + }, + { + "extensionName": "VK_NV_external_memory", + "specVersion": 1 + }, + { + "extensionName": "VK_NV_glsl_shader", + "specVersion": 1 + }, + { + "extensionName": "VK_NVX_device_generated_commands", + "specVersion": 1 + } + ], + "features": { + "alphaToOne": true, + "depthBiasClamp": true, + "depthBounds": true, + "depthClamp": true, + "drawIndirectFirstInstance": true, + "dualSrcBlend": true, + "fillModeNonSolid": true, + "fragmentStoresAndAtomics": true, + "fullDrawIndexUint32": true, + "geometryShader": true, + "imageCubeArray": true, + "independentBlend": true, + "inheritedQueries": true, + "largePoints": true, + "logicOp": true, + "multiDrawIndirect": true, + "multiViewport": true, + "occlusionQueryPrecise": true, + "pipelineStatisticsQuery": true, + "robustBufferAccess": true, + "sampleRateShading": true, + "samplerAnisotropy": true, + "shaderClipDistance": true, + "shaderCullDistance": true, + "shaderFloat64": true, + "shaderImageGatherExtended": true, + "shaderInt16": false, + "shaderInt64": true, + "shaderResourceMinLod": true, + "shaderResourceResidency": true, + "shaderSampledImageArrayDynamicIndexing": true, + "shaderStorageBufferArrayDynamicIndexing": true, + "shaderStorageImageArrayDynamicIndexing": true, + "shaderStorageImageExtendedFormats": true, + "shaderStorageImageMultisample": true, + "shaderStorageImageReadWithoutFormat": true, + "shaderStorageImageWriteWithoutFormat": true, + "shaderTessellationAndGeometryPointSize": true, + "shaderUniformBufferArrayDynamicIndexing": true, + "sparseBinding": true, + "sparseResidency16Samples": true, + "sparseResidency2Samples": true, + "sparseResidency4Samples": true, + "sparseResidency8Samples": true, + "sparseResidencyAliased": true, + "sparseResidencyBuffer": true, + "sparseResidencyImage2D": true, + "sparseResidencyImage3D": true, + "tessellationShader": true, + "textureCompressionASTC_LDR": false, + "textureCompressionBC": true, + "textureCompressionETC2": false, + "variableMultisampleRate": true, + "vertexPipelineStoresAndAtomics": true, + "wideLines": true + }, + "formats": [ + [ + "VK_FORMAT_ASTC_12x12_SRGB_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_ASTC_12x12_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_ASTC_12x10_SRGB_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_ASTC_12x10_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_ASTC_10x10_SRGB_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_ASTC_10x10_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_ASTC_10x8_SRGB_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_ASTC_10x8_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_ASTC_10x6_SRGB_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_ASTC_10x6_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_ASTC_10x5_SRGB_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_ASTC_10x5_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_ASTC_8x8_SRGB_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_ASTC_8x8_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_ASTC_8x6_SRGB_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_ASTC_8x6_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_ASTC_8x5_SRGB_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_ASTC_8x5_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_ASTC_6x6_SRGB_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_ASTC_6x6_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_ASTC_6x5_SRGB_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_ASTC_6x5_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_ASTC_5x5_SRGB_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_ASTC_5x5_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_ASTC_5x4_SRGB_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_ASTC_5x4_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_ASTC_4x4_SRGB_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_ASTC_4x4_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_EAC_R11G11_SNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_EAC_R11G11_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_EAC_R11_SNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_EAC_R11_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_BC7_SRGB_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_BC7_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_BC6H_SFLOAT_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_BC6H_UFLOAT_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_BC5_SNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_BC5_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_BC4_SNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_BC4_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_BC3_SRGB_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_BC3_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_BC2_SRGB_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_BC2_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_BC1_RGBA_SRGB_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_BC1_RGBA_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_BC1_RGB_SRGB_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_BC1_RGB_UNORM_BLOCK", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_D32_SFLOAT_S8_UINT", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_D24_UNORM_S8_UINT", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_D16_UNORM_S8_UINT", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_S8_UINT", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_D32_SFLOAT", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_X8_D24_UNORM_PACK32", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_D16_UNORM", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_E5B9G9R9_UFLOAT_PACK32", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_B10G11R11_UFLOAT_PACK32", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_R64G64B64A64_SFLOAT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R64G64B64A64_SINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R64G64B64A64_UINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R64G64B64_SFLOAT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R64G64B64_SINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R64G64B64_UINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R64G64_SFLOAT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R64G64_SINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R64G64_UINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R64_SFLOAT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R64_SINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R64_UINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R32G32B32A32_SFLOAT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_R32G32B32A32_SINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_R32G32B32A32_UINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_R32G32B32_SFLOAT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R32G32B32_SINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R32G32B32_UINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R32G32_SFLOAT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_R32G32_SINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_R32G32_UINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_R32_SFLOAT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_R32_SINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_R32_UINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_R16G16B16A16_SFLOAT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_R16G16B16A16_SINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_B8G8R8A8_SNORM", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_B8G8R8A8_UNORM", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_R8G8B8A8_SRGB", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_R8G8B8A8_SINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_R8G8B8A8_UINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_R8G8B8A8_SSCALED", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R8G8B8A8_USCALED", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R8G8B8A8_SNORM", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_R8G8B8A8_UNORM", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_B8G8R8_SRGB", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_B8G8R8_SINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_B8G8R8_UINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_B8G8R8_SSCALED", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_B8G8R8_USCALED", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_B8G8R8_SNORM", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_B8G8R8_UNORM", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R8G8B8_SRGB", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R8G8B8_SINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R8G8B8_UINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R8G8B8_SSCALED", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R8G8B8_USCALED", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R8G8B8_SNORM", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R8G8B8_UNORM", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R8G8_SRGB", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R8_UNORM", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_A1R5G5B5_UNORM_PACK16", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_B5G5R5A1_UNORM_PACK16", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_R5G5B5A1_UNORM_PACK16", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_B5G6R5_UNORM_PACK16", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_R5G6B5_UNORM_PACK16", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_UNDEFINED", + { + "bufferFeatures": [], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R4G4_UNORM_PACK8", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_R4G4B4A4_UNORM_PACK16", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_B4G4R4A4_UNORM_PACK16", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_R8_SNORM", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_R8_USCALED", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R8_SSCALED", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R8_UINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_R8_SINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_R8_SRGB", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_R8G8_UNORM", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_R8G8_SNORM", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_R8G8_USCALED", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R8G8_SSCALED", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R8G8_UINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_R8G8_SINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_B8G8R8A8_USCALED", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_B8G8R8A8_SSCALED", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_B8G8R8A8_UINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_B8G8R8A8_SINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_B8G8R8A8_SRGB", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_A8B8G8R8_UNORM_PACK32", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_A8B8G8R8_SNORM_PACK32", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_A8B8G8R8_USCALED_PACK32", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_A8B8G8R8_SSCALED_PACK32", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_A8B8G8R8_UINT_PACK32", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_A8B8G8R8_SINT_PACK32", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_A8B8G8R8_SRGB_PACK32", + { + "bufferFeatures": [], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_A2R10G10B10_UNORM_PACK32", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_A2R10G10B10_SNORM_PACK32", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_A2R10G10B10_USCALED_PACK32", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_A2R10G10B10_SSCALED_PACK32", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_A2R10G10B10_UINT_PACK32", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_A2R10G10B10_SINT_PACK32", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_A2B10G10R10_UNORM_PACK32", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_A2B10G10R10_SNORM_PACK32", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_A2B10G10R10_USCALED_PACK32", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_A2B10G10R10_SSCALED_PACK32", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_A2B10G10R10_UINT_PACK32", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_A2B10G10R10_SINT_PACK32", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R16_UNORM", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_R16_SNORM", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_R16_USCALED", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R16_SSCALED", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R16_UINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_R16_SINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_R16_SFLOAT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_R16G16_UNORM", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_R16G16_SNORM", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_R16G16_USCALED", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R16G16_SSCALED", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R16G16_UINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_R16G16_SINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_R16G16_SFLOAT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_R16G16B16_UNORM", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R16G16B16_SNORM", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R16G16B16_USCALED", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R16G16B16_SSCALED", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R16G16B16_UINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R16G16B16_SINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R16G16B16_SFLOAT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R16G16B16A16_UNORM", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_R16G16B16A16_SNORM", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ], + [ + "VK_FORMAT_R16G16B16A16_USCALED", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R16G16B16A16_SSCALED", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [], + "optimalTilingFeatures": [] + } + ], + [ + "VK_FORMAT_R16G16B16A16_UINT", + { + "bufferFeatures": [ + "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT", + "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT" + ], + "linearTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ], + "optimalTilingFeatures": [ + "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT", + "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT", + "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT", + "VK_FORMAT_FEATURE_BLIT_SRC_BIT", + "VK_FORMAT_FEATURE_BLIT_DST_BIT", + "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR", + "VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR" + ] + } + ] + ], + "memory": { + "memoryHeaps": [ + { + "flags": [ + "VK_MEMORY_HEAP_DEVICE_LOCAL_BIT" + ], + "size": 4294967296 + }, + { + "flags": [], + "size": 12537090048 + } + ], + "memoryTypes": [ + { + "heapIndex": 1, + "propertyFlags": [] + }, + { + "heapIndex": 1, + "propertyFlags": [] + }, + { + "heapIndex": 1, + "propertyFlags": [] + }, + { + "heapIndex": 1, + "propertyFlags": [] + }, + { + "heapIndex": 1, + "propertyFlags": [] + }, + { + "heapIndex": 1, + "propertyFlags": [] + }, + { + "heapIndex": 1, + "propertyFlags": [] + }, + { + "heapIndex": 0, + "propertyFlags": [ + "VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT" + ] + }, + { + "heapIndex": 0, + "propertyFlags": [ + "VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT" + ] + }, + { + "heapIndex": 1, + "propertyFlags": [ + "VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT", + "VK_MEMORY_PROPERTY_HOST_COHERENT_BIT" + ] + }, + { + "heapIndex": 1, + "propertyFlags": [ + "VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT", + "VK_MEMORY_PROPERTY_HOST_COHERENT_BIT", + "VK_MEMORY_PROPERTY_HOST_CACHED_BIT" + ] + } + ] + }, + "properties": { + "apiVersion": { + "major": 1, + "minor": 0, + "patch": 37 + }, + "deviceID": 5159, + "deviceName": "GeForce GTX 965M", + "deviceType": "VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU", + "driverVersion": 378520, + "limits": { + "bufferImageGranularity": 1024, + "discreteQueuePriorities": 2, + "framebufferColorSampleCounts": [ + "VK_SAMPLE_COUNT_1_BIT", + "VK_SAMPLE_COUNT_2_BIT", + "VK_SAMPLE_COUNT_4_BIT", + "VK_SAMPLE_COUNT_8_BIT" + ], + "framebufferDepthSampleCounts": [ + "VK_SAMPLE_COUNT_1_BIT", + "VK_SAMPLE_COUNT_2_BIT", + "VK_SAMPLE_COUNT_4_BIT", + "VK_SAMPLE_COUNT_8_BIT" + ], + "framebufferNoAttachmentsSampleCounts": [ + "VK_SAMPLE_COUNT_1_BIT", + "VK_SAMPLE_COUNT_2_BIT", + "VK_SAMPLE_COUNT_4_BIT", + "VK_SAMPLE_COUNT_8_BIT" + ], + "framebufferStencilSampleCounts": [ + "VK_SAMPLE_COUNT_1_BIT", + "VK_SAMPLE_COUNT_2_BIT", + "VK_SAMPLE_COUNT_4_BIT", + "VK_SAMPLE_COUNT_8_BIT", + "VK_SAMPLE_COUNT_16_BIT" + ], + "lineWidthGranularity": 0.125, + "lineWidthRange": [ + 0.5, + 10.0 + ], + "maxBoundDescriptorSets": 8, + "maxClipDistances": 8, + "maxColorAttachments": 8, + "maxCombinedClipAndCullDistances": 8, + "maxComputeSharedMemorySize": 49152, + "maxComputeWorkGroupCount": [ + 2147483647, + 65535, + 65535 + ], + "maxComputeWorkGroupInvocations": 1536, + "maxComputeWorkGroupSize": [ + 1536, + 1024, + 64 + ], + "maxCullDistances": 8, + "maxDescriptorSetInputAttachments": 8, + "maxDescriptorSetSampledImages": 49152, + "maxDescriptorSetSamplers": 4000, + "maxDescriptorSetStorageBuffers": 96, + "maxDescriptorSetStorageBuffersDynamic": 96, + "maxDescriptorSetStorageImages": 49152, + "maxDescriptorSetUniformBuffers": 72, + "maxDescriptorSetUniformBuffersDynamic": 72, + "maxDrawIndexedIndexValue": 4294967295, + "maxDrawIndirectCount": 4294967295, + "maxFragmentCombinedOutputResources": 16, + "maxFragmentDualSrcAttachments": 1, + "maxFragmentInputComponents": 128, + "maxFragmentOutputAttachments": 8, + "maxFramebufferHeight": 16384, + "maxFramebufferLayers": 2048, + "maxFramebufferWidth": 16384, + "maxGeometryInputComponents": 128, + "maxGeometryOutputComponents": 128, + "maxGeometryOutputVertices": 1024, + "maxGeometryShaderInvocations": 32, + "maxGeometryTotalOutputComponents": 1024, + "maxImageArrayLayers": 2048, + "maxImageDimension1D": 16384, + "maxImageDimension2D": 16384, + "maxImageDimension3D": 2048, + "maxImageDimensionCube": 16384, + "maxInterpolationOffset": 0.4375, + "maxMemoryAllocationCount": 4294967295, + "maxPerStageDescriptorInputAttachments": 8, + "maxPerStageDescriptorSampledImages": 8192, + "maxPerStageDescriptorSamplers": 4000, + "maxPerStageDescriptorStorageBuffers": 16, + "maxPerStageDescriptorStorageImages": 8192, + "maxPerStageDescriptorUniformBuffers": 12, + "maxPerStageResources": 24612, + "maxPushConstantsSize": 256, + "maxSampleMaskWords": 1, + "maxSamplerAllocationCount": 4000, + "maxSamplerAnisotropy": 16.0, + "maxSamplerLodBias": 15.0, + "maxStorageBufferRange": 2147483647, + "maxTessellationControlPerPatchOutputComponents": 120, + "maxTessellationControlPerVertexInputComponents": 128, + "maxTessellationControlPerVertexOutputComponents": 128, + "maxTessellationControlTotalOutputComponents": 4216, + "maxTessellationEvaluationInputComponents": 128, + "maxTessellationEvaluationOutputComponents": 128, + "maxTessellationGenerationLevel": 64, + "maxTessellationPatchSize": 32, + "maxTexelBufferElements": 134217728, + "maxTexelGatherOffset": 31, + "maxTexelOffset": 7, + "maxUniformBufferRange": 65536, + "maxVertexInputAttributeOffset": 2047, + "maxVertexInputAttributes": 32, + "maxVertexInputBindingStride": 2048, + "maxVertexInputBindings": 32, + "maxVertexOutputComponents": 128, + "maxViewportDimensions": [ + 16384, + 16384 + ], + "maxViewports": 16, + "minInterpolationOffset": -0.5, + "minMemoryMapAlignment": 64, + "minStorageBufferOffsetAlignment": 32, + "minTexelBufferOffsetAlignment": 16, + "minTexelGatherOffset": -32, + "minTexelOffset": -8, + "minUniformBufferOffsetAlignment": 256, + "mipmapPrecisionBits": 8, + "nonCoherentAtomSize": 64, + "optimalBufferCopyOffsetAlignment": 1, + "optimalBufferCopyRowPitchAlignment": 1, + "pointSizeGranularity": 0.125, + "pointSizeRange": [ + 1.0, + 189.875 + ], + "sampledImageColorSampleCounts": [ + "VK_SAMPLE_COUNT_1_BIT", + "VK_SAMPLE_COUNT_2_BIT", + "VK_SAMPLE_COUNT_4_BIT", + "VK_SAMPLE_COUNT_8_BIT" + ], + "sampledImageDepthSampleCounts": [ + "VK_SAMPLE_COUNT_1_BIT", + "VK_SAMPLE_COUNT_2_BIT", + "VK_SAMPLE_COUNT_4_BIT", + "VK_SAMPLE_COUNT_8_BIT" + ], + "sampledImageIntegerSampleCounts": [ + "VK_SAMPLE_COUNT_1_BIT", + "VK_SAMPLE_COUNT_2_BIT", + "VK_SAMPLE_COUNT_4_BIT", + "VK_SAMPLE_COUNT_8_BIT" + ], + "sampledImageStencilSampleCounts": [ + "VK_SAMPLE_COUNT_1_BIT", + "VK_SAMPLE_COUNT_2_BIT", + "VK_SAMPLE_COUNT_4_BIT", + "VK_SAMPLE_COUNT_8_BIT", + "VK_SAMPLE_COUNT_16_BIT" + ], + "sparseAddressSpaceSize": 18446744073709551615, + "standardSampleLocations": true, + "storageImageSampleCounts": [ + "VK_SAMPLE_COUNT_1_BIT", + "VK_SAMPLE_COUNT_2_BIT", + "VK_SAMPLE_COUNT_4_BIT", + "VK_SAMPLE_COUNT_8_BIT" + ], + "strictLines": true, + "subPixelInterpolationOffsetBits": 4, + "subPixelPrecisionBits": 8, + "subTexelPrecisionBits": 8, + "timestampComputeAndGraphics": true, + "timestampPeriod": 1.0, + "viewportBoundsRange": [ + -32768.0, + 32768.0 + ], + "viewportSubPixelBits": 8 + }, + "pipelineCacheUUID": [ + 241, + 161, + 212, + 194, + 251, + 164, + 211, + 65, + 111, + 27, + 138, + 36, + 240, + 87, + 71, + 227 + ], + "sparseProperties": { + "residencyAlignedMipSize": false, + "residencyNonResidentStrict": true, + "residencyStandard2DBlockShape": true, + "residencyStandard2DMultisampleBlockShape": true, + "residencyStandard3DBlockShape": true + }, + "vendorID": 4318 + }, + "queues": [ + { + "minImageTransferGranularity": { + "depth": 1, + "height": 1, + "width": 1 + }, + "queueCount": 16, + "queueFlags": [ + "VK_QUEUE_GRAPHICS_BIT", + "VK_QUEUE_COMPUTE_BIT", + "VK_QUEUE_TRANSFER_BIT", + "VK_QUEUE_SPARSE_BINDING_BIT" + ], + "timestampValidBits": 64 + }, + { + "minImageTransferGranularity": { + "depth": 1, + "height": 1, + "width": 1 + }, + "queueCount": 1, + "queueFlags": [ + "VK_QUEUE_TRANSFER_BIT" + ], + "timestampValidBits": 64 + } + ], + "swapchain": { + "maxImageArrayLayers": 1, + "minImageCount": 2, + "maxImageCount": 0, + "formats": [ + "VK_FORMAT_B8G8R8A8_SRGB", + "VK_FORMAT_" + ], + "presentModes": [ + "VK_PRESENT_MODE_IMMEDIATE_KHR", + "VK_PRESENT_MODE_MAILBOX_KHR", + "VK_PRESENT_MODE_FIFO_KHR" + ], + "supportedTransforms": [ + "VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR" + ], + "supportedCompositeAlpha": [ + "VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR", + "VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR" + ], + "supportedUsageFlags": [ + "VK_IMAGE_USAGE_TRANSFER_SRC_BIT", + "VK_IMAGE_USAGE_TRANSFER_DST_BIT", + "VK_IMAGE_USAGE_SAMPLED_BIT", + "VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT" + ], + "surfaceExtension": "VK_KHR_win32_surface" + } + } +} diff --git a/assets/mocks/scenarios/enterprise.json b/assets/mocks/scenarios/enterprise.json new file mode 100644 index 0000000..f5a0668 --- /dev/null +++ b/assets/mocks/scenarios/enterprise.json @@ -0,0 +1,4 @@ +{ + "name": "Enterprise scene", + "description": "Nulla nisl." +} diff --git a/assets/mocks/scenarios/force.json b/assets/mocks/scenarios/force.json new file mode 100644 index 0000000..e1d1111 --- /dev/null +++ b/assets/mocks/scenarios/force.json @@ -0,0 +1,4 @@ +{ + "name": "Force scene", + "description": "Suspendisse accumsan tortor quis turpis." +} diff --git a/assets/mocks/scores/120.json b/assets/mocks/scores/120.json new file mode 100644 index 0000000..2ecc94c --- /dev/null +++ b/assets/mocks/scores/120.json @@ -0,0 +1,5 @@ +{ + "nbFrames": 12000, + "averageFps": 120.00, + "date": "2017-07-04T01:38:21.727Z" +} diff --git a/assets/mocks/scores/160.json b/assets/mocks/scores/160.json new file mode 100644 index 0000000..17e051e --- /dev/null +++ b/assets/mocks/scores/160.json @@ -0,0 +1,5 @@ +{ + "nbFrames": 16000, + "averageFps": 160.00, + "date": "2017-07-04T01:38:21.727Z" +} diff --git a/assets/mocks/scores/40.json b/assets/mocks/scores/40.json new file mode 100644 index 0000000..df2e247 --- /dev/null +++ b/assets/mocks/scores/40.json @@ -0,0 +1,5 @@ +{ + "nbFrames": 4000, + "averageFps": 40.00, + "date": "2017-07-04T01:38:21.727Z" +} diff --git a/assets/mocks/scores/80.json b/assets/mocks/scores/80.json new file mode 100644 index 0000000..f524d75 --- /dev/null +++ b/assets/mocks/scores/80.json @@ -0,0 +1,5 @@ +{ + "nbFrames": 8000, + "averageFps": 80.00, + "date": "2017-07-04T01:38:21.727Z" +} diff --git a/circle.yml b/circle.yml deleted file mode 100644 index df269f2..0000000 --- a/circle.yml +++ /dev/null @@ -1,4 +0,0 @@ -machine: - environment: - MONGODB_URI: mongodb://localhost:27017/test - AUTH_TOKEN: tokentest diff --git a/common/userAgent.js b/common/userAgent.js new file mode 100644 index 0000000..40de484 --- /dev/null +++ b/common/userAgent.js @@ -0,0 +1,48 @@ +'use strict' + +/** + * @param {String} family This is the Client Name for us Lugbench + * @param {Int} major This is the major number of client version + * @param {Int} minor This is the minor number of client version + * @param {Int} patch This is the patch number of client version + * @param {String} source This is the actual user agent string + */ +function Agent(family, major, minor, patch, source) { + this.family = family || '' + this.major = major || 0 + this.minor = minor || 0 + this.patch = patch || 0 + this.source = source || '' +} + +/** + * Display a readable version of the user agent + * @returns a String contqining the version + */ +Agent.prototype.version = function version() { + return this.major + '.' + this.minor + '.' + this.patch +} + +/** + * Transform a String to a Agent Object + * @param {String} userAgent This is the string to parse + * @return {Agent} This return an Agent object + */ +function parse(userAgent) { + let userAgentSplited = userAgent.split('/') + if (userAgentSplited.length !== 2 || userAgentSplited[0] !== 'LugBench' ) { + return new Agent('', 0, 0, 0, userAgent) + } + let family = userAgentSplited[0] + let versionSplitted = userAgentSplited[1].split('.') + if (versionSplitted.length !== 3) { + return new Agent('', 0, 0, 0, userAgent) + } + return new Agent(family, + versionSplitted[0], + versionSplitted[1], + versionSplitted[2], + userAgent) +} +module.exports.parse = parse +module.exports.Agent = Agent diff --git a/config.js b/config.js new file mode 100644 index 0000000..c4a3848 --- /dev/null +++ b/config.js @@ -0,0 +1,13 @@ +'use strict' + +module.exports = { + name: 'API', + version: '1.0.0', + env: process.env.NODE_ENV || 'development', + port: process.env.PORT || 5000, + baseUrl: process.env.BASE_URL || 'http://localhost:5000', + clientVersion: process.env.LUGBENCH_CLIENT_VERSION || '0.1.0', + db: { + uri: process.env.MONGODB_URI || 'mongodb://localhost:27017/lugbench', + }, +} diff --git a/config/index.js b/config/index.js deleted file mode 100644 index cf3476f..0000000 --- a/config/index.js +++ /dev/null @@ -1,7 +0,0 @@ -module.exports = { - server: { - port: process.env.PORT || 5000 - }, - mongodbUri: process.env.MONGODB_URI || 'mongodb://localhost:27017/lugbench_localdb', - authToken: process.env.AUTH_TOKEN -}; diff --git a/v1/customTypes/formats.js b/customTypes/formats.js similarity index 61% rename from v1/customTypes/formats.js rename to customTypes/formats.js index f2deb05..45644cf 100644 --- a/v1/customTypes/formats.js +++ b/customTypes/formats.js @@ -1,24 +1,24 @@ -'use strict'; +'use strict' module.exports = (mongoose) => { function Formats(key, options) { - mongoose.SchemaType.call(this, key, options, 'Formats'); + mongoose.SchemaType.call(this, key, options, 'Formats') } - Formats.prototype = Object.create(mongoose.SchemaType.prototype); + Formats.prototype = Object.create(mongoose.SchemaType.prototype) Formats.prototype.cast = (val) => { if (!(val instanceof Array)) { - throw new Error(val + " is not an array"); + throw new Error(val + ' is not an array') } else if (val.length != 2) { - throw new Error('Not enough parameters'); + throw new Error('Not enough parameters') } else if ((typeof val[0].toString()) != 'string') { - throw new Error(val[0] + ` (first parameter of ${val}) is not a String`); + throw new Error(val[0] + ` (first parameter of ${val}) is not a String`) } else if (!(val[1] instanceof Object)) { - throw new Error(val[1] + ` (second parameter of ${val}) is not an Object`); + throw new Error(val[1] + ` (second parameter of ${val}) is not an Object`) } - return val; - }; + return val + } - mongoose.Schema.Types.Formats = Formats; -}; + mongoose.Schema.Types.Formats = Formats +} diff --git a/v1/customTypes/uint10.js b/customTypes/uint10.js similarity index 65% rename from v1/customTypes/uint10.js rename to customTypes/uint10.js index 110e48c..3b8d795 100644 --- a/v1/customTypes/uint10.js +++ b/customTypes/uint10.js @@ -1,25 +1,25 @@ -'use strict'; +'use strict' module.exports = (mongoose) => { function Uint10(key, options) { - mongoose.SchemaType.call(this, key, options, 'Uint10'); + mongoose.SchemaType.call(this, key, options, 'Uint10') } - Uint10.prototype = Object.create(mongoose.SchemaType.prototype); + Uint10.prototype = Object.create(mongoose.SchemaType.prototype) Uint10.prototype.cast = (val) => { - let _val = Number(val); + let _val = Number(val) if (isNaN(_val)) { - throw new Error('Uint10: ' + val + ' is not a number'); + throw new Error('Uint10: ' + val + ' is not a number') } - _val = Math.round(_val); + _val = Math.round(_val) if (_val < 0 || _val > 0x3FF) { throw new Error('Uint10: ' + val + - ' is outside of the range of valid unsigned 10-bit ints'); + ' is outside of the range of valid unsigned 10-bit ints') } - return _val; - }; + return _val + } - mongoose.Schema.Types.Uint10 = Uint10; -}; + mongoose.Schema.Types.Uint10 = Uint10 +} diff --git a/v1/customTypes/uint12.js b/customTypes/uint12.js similarity index 65% rename from v1/customTypes/uint12.js rename to customTypes/uint12.js index e5311ac..34223d5 100644 --- a/v1/customTypes/uint12.js +++ b/customTypes/uint12.js @@ -1,25 +1,25 @@ -'use strict'; +'use strict' module.exports = (mongoose) => { function Uint12(key, options) { - mongoose.SchemaType.call(this, key, options, 'Uint12'); + mongoose.SchemaType.call(this, key, options, 'Uint12') } - Uint12.prototype = Object.create(mongoose.SchemaType.prototype); + Uint12.prototype = Object.create(mongoose.SchemaType.prototype) Uint12.prototype.cast = (val) => { - let _val = Number(val); + let _val = Number(val) if (isNaN(_val)) { - throw new Error('Uint12: ' + val + ' is not a number'); + throw new Error('Uint12: ' + val + ' is not a number') } - _val = Math.round(_val); + _val = Math.round(_val) if (_val < 0 || _val > 0xFFF) { throw new Error('Uint12: ' + val + - ' is outside of the range of valid unsigned 12-bit ints'); + ' is outside of the range of valid unsigned 12-bit ints') } - return _val; - }; + return _val + } - mongoose.Schema.Types.Uint12 = Uint12; -}; + mongoose.Schema.Types.Uint12 = Uint12 +} diff --git a/index.js b/index.js index ae754b6..17cb12d 100644 --- a/index.js +++ b/index.js @@ -1,14 +1,140 @@ -"use strict"; - -module.exports = function(req, res, next) { - try { - let version = require(`./${req.params.version}`); - version(req, res, next); - } catch (e) { - if (e.code == "MODULE_NOT_FOUND") { - res.status(404).send(); - } else { - res.status(e.code).send(); +'use strict' + +/** + * Module Dependencies + */ +const config = require('./config') +const restify = require('restify') +const paginate = require('restify-paginate') +const winston = require('winston') +const bunyanWinston = require('bunyan-winston-adapter') +const mongoose = require('mongoose') +const autoload = require('auto-load') +const validator = require('restify-joi-middleware') +const errors = require('restify-errors') + +const checkClientVersion = require('./middlewares/checkClientVersion').checkClientVersion +const checkContentType = require('./middlewares/checkContentType').checkContentType +const corsMiddleware = require('./middlewares/cors').allowCrossDomain + +const validateDevicesGet = require('./validation/devices/get') +const validateDevicesGetId = require('./validation/devices/get/id') +const validateDevicesPost = require('./validation/devices/post') + +const validateScoresGet = require('./validation/scores/get') +const validateScoresGetId = require('./validation/scores/get/id') +const validateScoresPost = require('./validation/scores/post') + +const validateScenariosGet = require('./validation/scenarios/get') +const validateScenariosGetId = require('./validation/scenarios/get/id') + +/** + * Logging + */ +const log = new winston.Logger({ + transports: [ + new winston.transports.Console({ + level: 'info', + timestamp: () => { + return new Date().toString() + }, + json: true, + }), + ], +}) + +/** + * Validation + */ +const joiOptions = {} +const joiOverrides = { + errorResponder: (err, req, res, next) => { + if (process.env.NODE_ENV !== 'test') { + log.error(err) + } + return next(new errors.BadRequestError(err.body.data[0].message)) + }, +} + +/** + * Initialize Server + */ +const server = restify.createServer({ + name : config.name, + version : config.version, + log : bunyanWinston.createAdapter(log), +}) + +/** + * Middleware + */ +server.use(checkClientVersion) +server.use(checkContentType) +server.use(corsMiddleware) +server.use(restify.jsonBodyParser({ mapParams: true })) +server.use(restify.acceptParser(server.acceptable)) +server.use(restify.queryParser({ mapParams: true })) +server.use(restify.fullResponse()) +server.use(paginate(server)) +server.use(validator(joiOptions, joiOverrides)) + +/** + * Error Handling + */ +server.on('uncaughtException', (req, res, route, err) => { + log.error(err.stack) + res.send(err) +}) + +const configRoutes = function(server, handlers) { + // Devices + server.get({ path: '/devices', validation: validateDevicesGet }, [corsMiddleware], handlers.devices.index.get) + server.post({ path: '/devices', validation: validateDevicesPost }, [corsMiddleware, checkClientVersion], handlers.devices.index.post) + + server.get({ path: '/devices/:id', validation: validateDevicesGetId }, [corsMiddleware], handlers.devices.id.index.get) + + // Scores + server.get({ path: '/scores', validation: validateScoresGet }, [corsMiddleware], handlers.scores.index.get) + server.post({ path: '/scores', validation: validateScoresPost }, [corsMiddleware], handlers.scores.index.post) + + server.get({ path: '/scores/:id', validation: validateScoresGetId }, [corsMiddleware], handlers.scores.id.index.get) + + // Scenarios + server.get({ path: '/scenarios', validation: validateScenariosGet }, [corsMiddleware], handlers.scenarios.index.get) + + server.get({ path: '/scenarios/:id', validation: validateScenariosGetId }, [corsMiddleware], handlers.scenarios.id.index.get) +} + +/** + * Lift Server, Connect to DB & Bind Routes + */ +server.listen(config.port, function() { + mongoose.connection.on('error', function(err) { + log.error('Mongoose default connection error: ' + err) + process.exit(1) + }) + + mongoose.connection.on('open', function(err) { + + if (err) { + log.error('Mongoose default connection error: ' + err) + process.exit(1) } - } -}; + + log.info( + '%s v%s ready to accept connections on port %s in %s environment.', + server.name, + config.version, + config.port, + config.env + ) + + const handlers = autoload(__dirname + '/routes') + configRoutes(server, handlers) + }) + + mongoose.connect(config.db.uri) +}) + +module.exports.log = log +module.exports.server = server diff --git a/middlewares/authentication.js b/middlewares/authentication.js deleted file mode 100644 index 429997a..0000000 --- a/middlewares/authentication.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict'; - -var config = require('../config'); - -module.exports = (req, res, next) => { - let accessToken = req.headers['x-access-token']; - - if (!accessToken) { - return res.status(401).send('Authentication token is required'); - } else if (accessToken !== config.authToken) { - return res.status(401).send('Authentication token is not correct'); - } - - next(); - -}; diff --git a/middlewares/checkClientVersion.js b/middlewares/checkClientVersion.js new file mode 100644 index 0000000..9d09cad --- /dev/null +++ b/middlewares/checkClientVersion.js @@ -0,0 +1,17 @@ +'use strict' + +const errors = require('restify-errors') +const config = require('../config') + + +module.exports.checkClientVersion = function(req, res, next) { + if (!req.headers['user-agent']) { + return next(new errors.UnauthorizedError('Bad user-agent')) + } + + const elementToCheck = 'LugBench/' + config.clientVersion + if (req.headers['user-agent'].indexOf(elementToCheck) === 0){ + return next() + } + return next(new errors.UnauthorizedError('Bad user-agent: missing Lugbench client version')) +} diff --git a/middlewares/checkContentType.js b/middlewares/checkContentType.js new file mode 100644 index 0000000..3cd8942 --- /dev/null +++ b/middlewares/checkContentType.js @@ -0,0 +1,12 @@ +'use strict' + +const errors = require('restify-errors') + + +module.exports.checkContentType = function(req, res, next) { + const contentType = req.headers['content-type'] + if (!contentType || contentType.indexOf('application/json') !== 0) { + return next(new errors.UnauthorizedError('Bad content-type')) + } + return next() +} diff --git a/middlewares/cors.js b/middlewares/cors.js index 226bb47..7d51bd3 100644 --- a/middlewares/cors.js +++ b/middlewares/cors.js @@ -1,15 +1,8 @@ -'use strict'; +'use strict' -module.exports = (_, res, next) => { - // Website you wish to allow to connect - res.setHeader('Access-Control-Allow-Origin', '*'); - // Request methods you wish to allow - res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE'); - // Request headers you wish to allow - res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type'); - // Set to true if you need the website to include cookies in the requests sent - // to the API (e.g. in case you use sessions) - res.setHeader('Access-Control-Allow-Credentials', true); - // Pass to next layer of middleware - next(); -}; +module.exports.allowCrossDomain = function(res, req, next) { + res.header('Access-Control-Allow-Origin', '*') + res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE') + res.header('Access-Control-Allow-Headers', 'Content-Type') + next() +} diff --git a/models/device.js b/models/device.js new file mode 100644 index 0000000..74a334a --- /dev/null +++ b/models/device.js @@ -0,0 +1,251 @@ +'use strict' + +const mongoose = require('mongoose') + +require('../customTypes/uint12.js')(mongoose) +require('../customTypes/uint10.js')(mongoose) +require('../customTypes/formats.js')(mongoose) + +const DeviceSchema = new mongoose.Schema({ + 'name': { type: String, required: true }, + 'os': { type: String, required: true, enum: ['Windows', 'Linux', 'Android'] }, + 'deviceId': { type: Number, required: true }, + 'vendorId': { type: Number, required: true }, + 'driverVersion': { type: Number, required: true }, + 'vulkanInfo': { + 'properties': { + 'apiVersion': { + 'major': { type: mongoose.Schema.Types.Uint10, required: true }, + 'minor': { type: mongoose.Schema.Types.Uint10, required: true }, + 'patch': { type: mongoose.Schema.Types.Uint12, required: true }, + }, + 'driverVersion': { type: Number, required: true }, + 'vendorID': { type: Number, required: true }, + 'deviceID': { type: Number, required: true }, + 'deviceName': { type: String, required: true }, + 'deviceType': { type: String, required: true }, + 'pipelineCacheUUID': { type: [Number], required: true }, + 'limits': { + 'maxImageDimension1D': { type: Number, required: true }, + 'maxImageDimension2D': { type: Number, required: true }, + 'maxImageDimension3D': { type: Number, required: true }, + 'maxImageDimensionCube': { type: Number, required: true }, + 'maxImageArrayLayers': { type: Number, required: true }, + 'maxTexelBufferElements': { type: Number, required: true }, + 'maxUniformBufferRange': { type: Number, required: true }, + 'maxStorageBufferRange': { type: Number, required: true }, + 'maxPushConstantsSize': { type: Number, required: true }, + 'maxMemoryAllocationCount': { type: Number, required: true }, + 'maxSamplerAllocationCount': { type: Number, required: true }, + 'bufferImageGranularity': { type: Number, required: true }, + 'sparseAddressSpaceSize': { type: Number, required: true }, + 'maxBoundDescriptorSets': { type: Number, required: true }, + 'maxPerStageDescriptorSamplers': { type: Number, required: true }, + 'maxPerStageDescriptorUniformBuffers': { type: Number, required: true }, + 'maxPerStageDescriptorStorageBuffers': { type: Number, required: true }, + 'maxPerStageDescriptorSampledImages': { type: Number, required: true }, + 'maxPerStageDescriptorStorageImages': { type: Number, required: true }, + 'maxPerStageDescriptorInputAttachments': { type: Number, required: true }, + 'maxPerStageResources': { type: Number, required: true }, + 'maxDescriptorSetSamplers': { type: Number, required: true }, + 'maxDescriptorSetUniformBuffers': { type: Number, required: true }, + 'maxDescriptorSetUniformBuffersDynamic': { type: Number, required: true }, + 'maxDescriptorSetStorageBuffers': { type: Number, required: true }, + 'maxDescriptorSetStorageBuffersDynamic': { type: Number, required: true }, + 'maxDescriptorSetSampledImages': { type: Number, required: true }, + 'maxDescriptorSetStorageImages': { type: Number, required: true }, + 'maxDescriptorSetInputAttachments': { type: Number, required: true }, + 'maxVertexInputAttributes': { type: Number, required: true }, + 'maxVertexInputBindings': { type: Number, required: true }, + 'maxVertexInputAttributeOffset': { type: Number, required: true }, + 'maxVertexInputBindingStride': { type: Number, required: true }, + 'maxVertexOutputComponents': { type: Number, required: true }, + 'maxTessellationGenerationLevel': { type: Number, required: true }, + 'maxTessellationPatchSize': { type: Number, required: true }, + 'maxTessellationControlPerVertexInputComponents': { type: Number, required: true }, + 'maxTessellationControlPerVertexOutputComponents': { type: Number, required: true }, + 'maxTessellationControlPerPatchOutputComponents': { type: Number, required: true }, + 'maxTessellationControlTotalOutputComponents': { type: Number, required: true }, + 'maxTessellationEvaluationInputComponents': { type: Number, required: true }, + 'maxTessellationEvaluationOutputComponents': { type: Number, required: true }, + 'maxGeometryShaderInvocations': { type: Number, required: true }, + 'maxGeometryInputComponents': { type: Number, required: true }, + 'maxGeometryOutputComponents': { type: Number, required: true }, + 'maxGeometryOutputVertices': { type: Number, required: true }, + 'maxGeometryTotalOutputComponents': { type: Number, required: true }, + 'maxFragmentInputComponents': { type: Number, required: true }, + 'maxFragmentOutputAttachments': { type: Number, required: true }, + 'maxFragmentDualSrcAttachments': { type: Number, required: true }, + 'maxFragmentCombinedOutputResources': { type: Number, required: true }, + 'maxComputeSharedMemorySize': { type: Number, required: true }, + 'maxComputeWorkGroupCount': { type: [Number], required: true }, + 'maxComputeWorkGroupInvocations': { type: Number, required: true }, + 'maxComputeWorkGroupSize': { type: [Number], required: true }, + 'subPixelPrecisionBits': { type: Number, required: true }, + 'subTexelPrecisionBits': { type: Number, required: true }, + 'mipmapPrecisionBits': { type: Number, required: true }, + 'maxDrawIndexedIndexValue': { type: Number, required: true }, + 'maxDrawIndirectCount': { type: Number, required: true }, + 'maxSamplerLodBias': { type: Number, required: true }, + 'maxSamplerAnisotropy': { type: Number, required: true }, + 'maxViewports': { type: Number, required: true }, + 'maxViewportDimensions': { type: [Number], required: true }, + 'viewportBoundsRange': { type: [Number], required: true }, + 'viewportSubPixelBits': { type: Number, required: true }, + 'minMemoryMapAlignment': { type: Number, required: true }, + 'minTexelBufferOffsetAlignment': { type: Number, required: true }, + 'minUniformBufferOffsetAlignment': { type: Number, required: true }, + 'minStorageBufferOffsetAlignment': { type: Number, required: true }, + 'minTexelOffset': { type: Number, required: true }, + 'maxTexelOffset': { type: Number, required: true }, + 'minTexelGatherOffset': { type: Number, required: true }, + 'maxTexelGatherOffset': { type: Number, required: true }, + 'minInterpolationOffset': { type: Number, required: true }, + 'maxInterpolationOffset': { type: Number, required: true }, + 'subPixelInterpolationOffsetBits': { type: Number, required: true }, + 'maxFramebufferWidth': { type: Number, required: true }, + 'maxFramebufferHeight': { type: Number, required: true }, + 'maxFramebufferLayers': { type: Number, required: true }, + 'framebufferColorSampleCounts': { type: [String], required: true }, + 'framebufferDepthSampleCounts': { type: [String], required: true }, + 'framebufferStencilSampleCounts': { type: [String], required: true }, + 'framebufferNoAttachmentsSampleCounts': { type: [String], required: true }, + 'maxColorAttachments': { type: Number, required: true }, + 'sampledImageColorSampleCounts': { type: [String], required: true }, + 'sampledImageIntegerSampleCounts': { type: [String], required: true }, + 'sampledImageDepthSampleCounts': { type: [String], required: true }, + 'sampledImageStencilSampleCounts': { type: [String], required: true }, + 'storageImageSampleCounts': { type: [String], required: true }, + 'maxSampleMaskWords': { type: Number, required: true }, + 'timestampComputeAndGraphics': { type: Boolean, required: true }, + 'timestampPeriod': { type: Number, required: true }, + 'maxClipDistances': { type: Number, required: true }, + 'maxCullDistances': { type: Number, required: true }, + 'maxCombinedClipAndCullDistances': { type: Number, required: true }, + 'discreteQueuePriorities': { type: Number, required: true }, + 'pointSizeRange': { type: [Number], required: true }, + 'lineWidthRange': { type: [Number], required: true }, + 'pointSizeGranularity': { type: Number, required: true }, + 'lineWidthGranularity': { type: Number, required: true }, + 'strictLines': { type: Boolean, required: true }, + 'standardSampleLocations': { type: Boolean, required: true }, + 'optimalBufferCopyOffsetAlignment': { type: Number, required: true }, + 'optimalBufferCopyRowPitchAlignment': { type: Number, required: true }, + 'nonCoherentAtomSize': { type: Number, required: true }, + }, + 'sparseProperties': { + 'residencyStandard2DBlockShape': { type: Boolean, required: true }, + 'residencyStandard2DMultisampleBlockShape': { type: Boolean, required: true }, + 'residencyStandard3DBlockShape': { type: Boolean, required: true }, + 'residencyAlignedMipSize': { type: Boolean, required: true }, + 'residencyNonResidentStrict': { type: Boolean, required: true }, + }, + }, + 'features': { + 'robustBufferAccess': { type: Boolean, required: true }, + 'fullDrawIndexUint32': { type: Boolean, required: true }, + 'imageCubeArray': { type: Boolean, required: true }, + 'independentBlend': { type: Boolean, required: true }, + 'geometryShader': { type: Boolean, required: true }, + 'tessellationShader': { type: Boolean, required: true }, + 'sampleRateShading': { type: Boolean, required: true }, + 'dualSrcBlend': { type: Boolean, required: true }, + 'logicOp': { type: Boolean, required: true }, + 'multiDrawIndirect': { type: Boolean, required: true }, + 'drawIndirectFirstInstance': { type: Boolean, required: true }, + 'depthClamp': { type: Boolean, required: true }, + 'depthBiasClamp': { type: Boolean, required: true }, + 'fillModeNonSolid': { type: Boolean, required: true }, + 'depthBounds': { type: Boolean, required: true }, + 'wideLines': { type: Boolean, required: true }, + 'largePoints': { type: Boolean, required: true }, + 'alphaToOne': { type: Boolean, required: true }, + 'multiViewport': { type: Boolean, required: true }, + 'samplerAnisotropy': { type: Boolean, required: true }, + 'textureCompressionETC2': { type: Boolean, required: true }, + 'textureCompressionASTC_LDR': { type: Boolean, required: true }, + 'textureCompressionBC': { type: Boolean, required: true }, + 'occlusionQueryPrecise': { type: Boolean, required: true }, + 'pipelineStatisticsQuery': { type: Boolean, required: true }, + 'vertexPipelineStoresAndAtomics': { type: Boolean, required: true }, + 'fragmentStoresAndAtomics': { type: Boolean, required: true }, + 'shaderTessellationAndGeometryPointSize': { type: Boolean, required: true }, + 'shaderImageGatherExtended': { type: Boolean, required: true }, + 'shaderStorageImageExtendedFormats': { type: Boolean, required: true }, + 'shaderStorageImageMultisample': { type: Boolean, required: true }, + 'shaderStorageImageReadWithoutFormat': { type: Boolean, required: true }, + 'shaderStorageImageWriteWithoutFormat': { type: Boolean, required: true }, + 'shaderUniformBufferArrayDynamicIndexing': { type: Boolean, required: true }, + 'shaderSampledImageArrayDynamicIndexing': { type: Boolean, required: true }, + 'shaderStorageBufferArrayDynamicIndexing': { type: Boolean, required: true }, + 'shaderStorageImageArrayDynamicIndexing': { type: Boolean, required: true }, + 'shaderClipDistance': { type: Boolean, required: true }, + 'shaderCullDistance': { type: Boolean, required: true }, + 'shaderFloat64': { type: Boolean, required: true }, + 'shaderInt64': { type: Boolean, required: true }, + 'shaderInt16': { type: Boolean, required: true }, + 'shaderResourceResidency': { type: Boolean, required: true }, + 'shaderResourceMinLod': { type: Boolean, required: true }, + 'sparseBinding': { type: Boolean, required: true }, + 'sparseResidencyBuffer': { type: Boolean, required: true }, + 'sparseResidencyImage2D': { type: Boolean, required: true }, + 'sparseResidencyImage3D': { type: Boolean, required: true }, + 'sparseResidency2Samples': { type: Boolean, required: true }, + 'sparseResidency4Samples': { type: Boolean, required: true }, + 'sparseResidency8Samples': { type: Boolean, required: true }, + 'sparseResidency16Samples': { type: Boolean, required: true }, + 'sparseResidencyAliased': { type: Boolean, required: true }, + 'variableMultisampleRate': { type: Boolean, required: true }, + 'inheritedQueries': { type: Boolean, required: true }, + }, + 'memory': { + 'memoryTypes': [{ + 'heapIndex': Number, + 'propertyFlags': [String], + }], + 'memoryHeaps': [{ + 'size': Number, + 'flags': [String], + }], + }, + 'queues': [{ + 'minImageTransferGranularity': { + 'depth': { type: Number, required: true }, + 'height': { type: Number, required: true }, + 'width': { type: Number, required: true }, + }, + 'queueCount': { type: Number, required: true }, + 'queueFlags': { type: [String], required: true }, + 'timestampValidBits': { type: Number, required: true }, + }], + 'swapchain': { + 'maxImageArrayLayers': Number, + 'minImageCount': Number, + 'maxImageCount': Number, + 'formats': [String], + 'presentModes': [String], + 'supportedTransforms': [String], + 'supportedCompositeAlpha': [String], + 'supportedUsageFlags': [String], + 'surfaceExtension': String, + }, + 'extensions': [{ + 'extensionName': { type: String, required: true }, + 'specVersion': { type: Number, required: true }, + }], + 'formats': { type: [mongoose.Schema.Types.Formats], required: true }, + }, +}, { + versionKey: false, +}) + +DeviceSchema.index({ + 'name': 1, + 'os': 1, + 'deviceId': 1, + 'vendorId': 1, + 'driverVersion': 1, +}, { unique: true }) + +const Device = mongoose.model('Device', DeviceSchema) +module.exports = Device diff --git a/models/scenario.js b/models/scenario.js new file mode 100644 index 0000000..ffe2b9e --- /dev/null +++ b/models/scenario.js @@ -0,0 +1,13 @@ +'use strict' + +const mongoose = require('mongoose') + +const ScenarioSchema = new mongoose.Schema({ + 'name': { type: String, required: true, unique: true }, + 'description': { type: String, required: true }, +}, { + versionKey: false, +}) + +const Scenario = mongoose.model('Scenario', ScenarioSchema) +module.exports = Scenario diff --git a/models/score.js b/models/score.js new file mode 100644 index 0000000..abc7a4e --- /dev/null +++ b/models/score.js @@ -0,0 +1,16 @@ +'use strict' + +const mongoose = require('mongoose') + +const ScoreSchema = new mongoose.Schema({ + 'device': { type: mongoose.Schema.ObjectId, required: true, ref: 'Device' }, + 'scenario': { type: mongoose.Schema.ObjectId, required: true, ref: 'Scenario' }, + 'nbFrames': { type: Number, required: true }, + 'averageFps': { type: Number, required: true }, + date: { type: Date, required: true, default: Date.now }, +}, { + versionKey: false, +}) + +const Score = mongoose.model('Score', ScoreSchema) +module.exports = Score diff --git a/notfound.html b/notfound.html deleted file mode 100644 index 2438686..0000000 --- a/notfound.html +++ /dev/null @@ -1,41 +0,0 @@ - - - -
- -