• What are you working on? v67 - March 2017
    3,527 replies, posted
Half-Payne mod has additional gameplay mods, but maintaining them became a hassle, even more when I'm going to output additional info about them in the game menu. At the moment, I have to define the mod in my ConfigFile class, then mark the variable that mod is active, then also mark the simillar variable in Player class (the one that gets saved and then used as source of truth), and now there's gonna be another point in the codebase where I have to describe each case for each mod. this shit is prone to forget-mistakes and has to stop, I'm going to put all mod definitions in one place which will define the mod keyword, it's description AND will contain a function IN PLACE that will properly affect Player class. activated mods will be contained in array that I can traverse. Just want to point out that I really like this approach, but I think I wouldn't realise it if I wasn't doing Javascript, where anonymous functions are everywhere and storing them is no problem. It can make you wonder if it's possible to do simillar thing in C++ and it's indeed possible with std::function and lambdas, the latter one sounding scary and weird when I had no proper experience with both C++ and Javascript. So when people suggest learning other languages - this might be a good example of why.
Dauumn i feel so reassured in my programming skills: first time on mint first cpp project on linux first time cmake on linux first time working with codeblocks vulkan -.- intel hd 4000 -.- [QUOTE][IMG]http://blog.sigsegowl.xyz/wp-content/uploads/2017/06/Screenshot-from-2017-06-05-18-14-12.png[/IMG][/QUOTE]
[QUOTE=Pappschachtel;52315120]Dauumn i feel so reassured in my programming skills: first time on mint first cpp project on linux first time cmake on linux first time working with codeblocks vulkan -.- intel hd 4000 -.-[/QUOTE] "engine_project" aaaaaaaaaaaaaaaand down the rabbit hole?
[QUOTE=JWki;52315148]"engine_project" aaaaaaaaaaaaaaaand down the rabbit hole?[/QUOTE] always, 4th attempt i guess... i stopped counting
[QUOTE=Pappschachtel;52315120]Dauumn i feel so reassured in my programming skills: first time on mint first cpp project on linux first time cmake on linux first time working with codeblocks vulkan -.- intel hd 4000 -.-[/QUOTE] Whats the queue family setup on that look like? I guess the one perk is that you're not going to be heavily restricted by PCIe bandwidth at any point... even if you face memory restrictions otherwise :v:. Kinda wonder what the feature set is like too, does that kind of physical device support things like texture compression? [QUOTE=JWki;52315148]"engine_project" aaaaaaaaaaaaaaaand down the rabbit hole?[/QUOTE] I'd be lying if I didn't say I love falling down this rabbit hole, no matter how many times I re-start or discard a project. I really enjoy engine programming, and since my free time is about doing what I enjoy I'm going to make a dozen hardly-complete engines goddamnit I spent ages fucking around to get ImGui working based on the ImGui repo's Vulkan example, which involved doing some nasty-ass static function bullshit with a templated sub-class where the template parameter was a pointer to the parent class. It was disgusting, to say the least. Turns out that isn't at all necessary (not even in the [I]slightest[/I]), and that Sascha's examples have a much nicer ImGui setup that got me a simple frame timer and camera position indicator in no time at all: [t]http://i.imgur.com/14rFNLS.png[/t] A little bit of work also gave me checkboxes that enabled/disabled rendering of the three main rendered objects (skybox, "terrain", AABBs), which was incredibly easy thanks to Vulkans command-buffer setup. Unfortunately, I'm realizing that my Terrain LOD system is utter shite and I'm going ot have to rewrite it. Fun has reached 0% with that stuff, mostly due to my poor design choices and shoddy implementation. I'm not terribly upset given that it was my first (vaguely) working attempt at any sort of dynamic asset creation and loading system (I always used to have static assets, even in my voxel engine), plus I pulled this all off in Vulkan. I tried to make CDLOD work, but I like Thatcher Ulrich's LOD stuff better because the geometry generated isn't subdivided based on camera distance alone but also gives consideration to the actual complexity of the heightmap in a region. So, it ends up lowering the amount of mesh data required pretty sharply. That and looking through Proland's sources more has given me more ideas on how to manage things in a modular manner that should make dynamic stuff (like tweakable GUI parameters and such) a lot easier, and I really like the idea of starting with a base heightmap that is then upsampled and modulated with fractals. It begs for something like a nodegraph setup to generate terrain[URL="https://github.com/Flix01/imgui/tree/2015-10-Addons/addons/imguinodegrapheditor"]...[/URL]
[QUOTE=Matthew0505;52314261]-snip-[/QUOTE] Well shit...this made me go back and look up the default accessibility for class/struct members. I always thought it was internal, but I must've got that mixed up with the actual class/struct definition in a namespace. Thanks for pointing that out, I actually learned something today! :v:
[QUOTE=paindoc;52315318]Whats the queue family setup on that look like? I guess the one perk is that you're not going to be heavily restricted by PCIe bandwidth at any point... even if you face memory restrictions otherwise :v:. Kinda wonder what the feature set is like too, does that kind of physical device support things like texture compression? [...] [/QUOTE] here's the vulkaninfo output: [CODE]=========== VULKAN INFO =========== Vulkan API Version: 1.0.21 INFO: [loader] Code 0 : Found manifest file /usr/share/vulkan/icd.d/intel_icd.json, version "1.0.0" Instance Extensions: ==================== Instance Extensions count = 3 VK_KHR_surface : extension revision 25 VK_KHR_xcb_surface : extension revision 5 VK_EXT_debug_report : extension revision 3 Layers: count = 0 ======= Presentable Surface formats: ============================ GPU id : 0 (Intel(R) Ivybridge Mobile) Surface type : VK_KHR_xcb_surface Format count = 1 B8G8R8A8_SRGB Device Properties and Extensions : ================================== GPU0 VkPhysicalDeviceProperties: =========================== apiVersion = 0x400005 (1.0.5) driverVersion = 1 (0x1) vendorID = 0x8086 deviceID = 0x0166 deviceType = INTEGRATED_GPU deviceName = Intel(R) Ivybridge Mobile VkPhysicalDeviceLimits: ----------------------- maxImageDimension1D = 16384 maxImageDimension2D = 16384 maxImageDimension3D = 2048 maxImageDimensionCube = 16384 maxImageArrayLayers = 2048 maxTexelBufferElements = 0x8000000 maxUniformBufferRange = 0x8000000 maxStorageBufferRange = 0x40000000 maxPushConstantsSize = 128 maxMemoryAllocationCount = 4294967295 maxSamplerAllocationCount = 65536 bufferImageGranularity = 0x40 sparseAddressSpaceSize = 0x0 maxBoundDescriptorSets = 8 maxPerStageDescriptorSamplers = 64 maxPerStageDescriptorUniformBuffers = 64 maxPerStageDescriptorStorageBuffers = 64 maxPerStageDescriptorSampledImages = 64 maxPerStageDescriptorStorageImages = 64 maxPerStageDescriptorInputAttachments = 64 maxPerStageResources = 128 maxDescriptorSetSamplers = 256 maxDescriptorSetUniformBuffers = 256 maxDescriptorSetUniformBuffersDynamic = 256 maxDescriptorSetStorageBuffers = 256 maxDescriptorSetStorageBuffersDynamic = 256 maxDescriptorSetSampledImages = 256 maxDescriptorSetStorageImages = 256 maxDescriptorSetInputAttachments = 256 maxVertexInputAttributes = 32 maxVertexInputBindings = 32 maxVertexInputAttributeOffset = 0x7ff maxVertexInputBindingStride = 0x800 maxVertexOutputComponents = 128 maxTessellationGenerationLevel = 0 maxTessellationPatchSize = 0 maxTessellationControlPerVertexInputComponents = 0 maxTessellationControlPerVertexOutputComponents = 0 maxTessellationControlPerPatchOutputComponents = 0 maxTessellationControlTotalOutputComponents = 0 maxTessellationEvaluationInputComponents = 0 maxTessellationEvaluationOutputComponents = 0 maxGeometryShaderInvocations = 32 maxGeometryInputComponents = 64 maxGeometryOutputComponents = 128 maxGeometryOutputVertices = 256 maxGeometryTotalOutputComponents = 1024 maxFragmentInputComponents = 128 maxFragmentOutputAttachments = 8 maxFragmentDualSrcAttachments = 2 maxFragmentCombinedOutputResources = 8 maxComputeSharedMemorySize = 0x8000 maxComputeWorkGroupCount[0] = 65535 maxComputeWorkGroupCount[1] = 65535 maxComputeWorkGroupCount[2] = 65535 maxComputeWorkGroupInvocations = 1024 maxComputeWorkGroupSize[0] = 1024 maxComputeWorkGroupSize[1] = 1024 maxComputeWorkGroupSize[2] = 1024 subPixelPrecisionBits = 4 subTexelPrecisionBits = 4 mipmapPrecisionBits = 4 maxDrawIndexedIndexValue = 4294967295 maxDrawIndirectCount = 4294967295 maxSamplerLodBias = 16.000000 maxSamplerAnisotropy = 16.000000 maxViewports = 16 maxViewportDimensions[0] = 16384 maxViewportDimensions[1] = 16384 viewportBoundsRange[0] =-32768.000000 viewportBoundsRange[1] = 32767.000000 viewportSubPixelBits = 13 minMemoryMapAlignment = 4096 minTexelBufferOffsetAlignment = 0x1 minUniformBufferOffsetAlignment = 0x1 minStorageBufferOffsetAlignment = 0x1 minTexelOffset = -8 maxTexelOffset = 7 minTexelGatherOffset = -8 maxTexelGatherOffset = 7 minInterpolationOffset = 0.000000 maxInterpolationOffset = 0.000000 subPixelInterpolationOffsetBits = 0 maxFramebufferWidth = 16384 maxFramebufferHeight = 16384 maxFramebufferLayers = 1024 framebufferColorSampleCounts = 13 framebufferDepthSampleCounts = 13 framebufferStencilSampleCounts = 13 framebufferNoAttachmentsSampleCounts = 13 maxColorAttachments = 8 sampledImageColorSampleCounts = 13 sampledImageDepthSampleCounts = 13 sampledImageStencilSampleCounts = 13 sampledImageIntegerSampleCounts = 1 storageImageSampleCounts = 1 maxSampleMaskWords = 1 timestampComputeAndGraphics = 0 timestampPeriod = 0.000000 maxClipDistances = 0 maxCullDistances = 0 maxCombinedClipAndCullDistances = 0 discreteQueuePriorities = 1 pointSizeRange[0] = 0.125000 pointSizeRange[1] = 255.875000 lineWidthRange[0] = 0.000000 lineWidthRange[1] = 7.992188 pointSizeGranularity = 0.125000 lineWidthGranularity = 0.007812 strictLines = 0 standardSampleLocations = 1 optimalBufferCopyOffsetAlignment = 0x80 optimalBufferCopyRowPitchAlignment = 0x80 nonCoherentAtomSize = 0x40 VkPhysicalDeviceSparseProperties: --------------------------------- residencyStandard2DBlockShape = 0 residencyStandard2DMultisampleBlockShape = 0 residencyStandard3DBlockShape = 0 residencyAlignedMipSize = 0 residencyNonResidentStrict = 0 Device Extensions count = 1 VK_KHR_swapchain : extension revision 67 VkQueueFamilyProperties[0]: =========================== queueFlags = GRAPHICS | COMPUTE | TRANSFER queueCount = 1 timestampValidBits = 36 minImageTransferGranularity = (1, 1, 1) VkPhysicalDeviceMemoryProperties: ================================= memoryTypeCount = 1 memoryTypes[0] : heapIndex = 0 propertyFlags = 0xf: VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT VK_MEMORY_PROPERTY_HOST_COHERENT_BIT VK_MEMORY_PROPERTY_HOST_CACHED_BIT memoryHeapCount = 1 memoryHeaps[0] : size = 1605574656 (0x5fb32000) flags: VK_MEMORY_HEAP_DEVICE_LOCAL_BIT VkPhysicalDeviceFeatures: ========================= robustBufferAccess = 1 fullDrawIndexUint32 = 1 imageCubeArray = 0 independentBlend = 1 geometryShader = 1 tessellationShader = 0 sampleRateShading = 0 dualSrcBlend = 1 logicOp = 1 multiDrawIndirect = 0 drawIndirectFirstInstance = 0 depthClamp = 1 depthBiasClamp = 0 fillModeNonSolid = 1 depthBounds = 0 wideLines = 1 largePoints = 1 textureCompressionETC2 = 0 textureCompressionASTC_LDR = 0 textureCompressionBC = 1 occlusionQueryPrecise = 1 pipelineStatisticsQuery = 0 vertexSideEffects = 0 tessellationSideEffects = 1 geometrySideEffects = 1 shaderImageGatherExtended = 0 shaderStorageImageExtendedFormats = 0 shaderStorageImageMultisample = 0 shaderStorageImageReadWithoutFormat = 0 shaderStorageImageWriteWithoutFormat = 1 shaderUniformBufferArrayDynamicIndexing = 1 shaderSampledImageArrayDynamicIndexing = 1 shaderStorageBufferArrayDynamicIndexing = 1 shaderStorageImageArrayDynamicIndexing = 1 shaderClipDistance = 0 shaderCullDistance = 0 shaderFloat64 = 0 shaderInt64 = 0 shaderInt16 = 0 shaderResourceResidency = 0 shaderResourceMinLod = 0 alphaToOne = 1 sparseBinding = 0 sparseResidencyBuffer = 0 sparseResidencyImage2D = 0 sparseResidencyImage3D = 0 sparseResidency2Samples = 0 sparseResidency4Samples = 0 sparseResidency8Samples = 0 sparseResidency16Samples = 0 sparseResidencyAliased = 0 variableMultisampleRate = 0 iheritedQueries = 0 Format Properties: ================== FORMAT_UNDEFINED: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: None FORMAT_R4G4_UNORM_PACK8: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: None FORMAT_R4G4B4A4_UNORM_PACK16: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: None FORMAT_B4G4R4A4_UNORM_PACK16: linearTiling FormatFeatureFlags: VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT VK_FORMAT_FEATURE_BLIT_SRC_BIT VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT optimalTiling FormatFeatureFlags: VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT VK_FORMAT_FEATURE_BLIT_SRC_BIT VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT FORMAT_R5G6B5_UNORM_PACK16: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT FORMAT_B5G6R5_UNORM_PACK16: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT FORMAT_R5G5B5A1_UNORM_PACK16: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: None FORMAT_B5G5R5A1_UNORM_PACK16: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: None FORMAT_A1R5G5B5_UNORM_PACK16: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT FORMAT_R8_UNORM: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R8_SNORM: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R8_USCALED: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R8_SSCALED: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R8_UINT: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R8_SINT: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R8_SRGB: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: None FORMAT_R8G8_UNORM: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R8G8_SNORM: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R8G8_USCALED: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R8G8_SSCALED: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R8G8_UINT: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R8G8_SINT: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R8G8_SRGB: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: None FORMAT_R8G8B8_UNORM: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT VK_FORMAT_FEATURE_BLIT_SRC_BIT VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R8G8B8_SNORM: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT VK_FORMAT_FEATURE_BLIT_SRC_BIT VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R8G8B8_USCALED: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R8G8B8_SSCALED: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R8G8B8_UINT: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT VK_FORMAT_FEATURE_BLIT_SRC_BIT bufferFeatures FormatFeatureFlags: None FORMAT_R8G8B8_SINT: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT VK_FORMAT_FEATURE_BLIT_SRC_BIT bufferFeatures FormatFeatureFlags: None FORMAT_R8G8B8_SRGB: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: None FORMAT_B8G8R8_UNORM: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: None FORMAT_B8G8R8_SNORM: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: None FORMAT_B8G8R8_USCALED: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: None FORMAT_B8G8R8_SSCALED: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: None FORMAT_B8G8R8_UINT: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: None FORMAT_B8G8R8_SINT: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: None FORMAT_B8G8R8_SRGB: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: None FORMAT_R8G8B8A8_UNORM: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R8G8B8A8_SNORM: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R8G8B8A8_USCALED: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R8G8B8A8_SSCALED: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R8G8B8A8_UINT: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R8G8B8A8_SINT: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R8G8B8A8_SRGB: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT FORMAT_B8G8R8A8_UNORM: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_B8G8R8A8_SNORM: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: None FORMAT_B8G8R8A8_USCALED: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: None FORMAT_B8G8R8A8_SSCALED: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: None FORMAT_B8G8R8A8_UINT: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: None FORMAT_B8G8R8A8_SINT: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: None FORMAT_B8G8R8A8_SRGB: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT FORMAT_A8B8G8R8_UNORM_PACK32: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_A8B8G8R8_SNORM_PACK32: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_A8B8G8R8_USCALED_PACK32: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_A8B8G8R8_SSCALED_PACK32: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_A8B8G8R8_UINT_PACK32: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_A8B8G8R8_SINT_PACK32: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_A8B8G8R8_SRGB_PACK32: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT FORMAT_A2R10G10B10_UNORM_PACK32: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT FORMAT_A2R10G10B10_SNORM_PACK32: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: None FORMAT_A2R10G10B10_USCALED_PACK32: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: None FORMAT_A2R10G10B10_SSCALED_PACK32: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: None FORMAT_A2R10G10B10_UINT_PACK32: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: None FORMAT_A2R10G10B10_SINT_PACK32: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: None FORMAT_A2B10G10R10_UNORM_PACK32: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_A2B10G10R10_SNORM_PACK32: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: None FORMAT_A2B10G10R10_USCALED_PACK32: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: None FORMAT_A2B10G10R10_SSCALED_PACK32: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: None FORMAT_A2B10G10R10_UINT_PACK32: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_A2B10G10R10_SINT_PACK32: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: None FORMAT_R16_UNORM: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R16_SNORM: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R16_USCALED: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R16_SSCALED: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R16_UINT: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R16_SINT: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R16_SFLOAT: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R16G16_UNORM: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R16G16_SNORM: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R16G16_USCALED: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R16G16_SSCALED: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R16G16_UINT: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R16G16_SINT: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R16G16_SFLOAT: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R16G16B16_UNORM: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT VK_FORMAT_FEATURE_BLIT_SRC_BIT VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R16G16B16_SNORM: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT VK_FORMAT_FEATURE_BLIT_SRC_BIT VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R16G16B16_USCALED: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R16G16B16_SSCALED: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R16G16B16_UINT: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT VK_FORMAT_FEATURE_BLIT_SRC_BIT bufferFeatures FormatFeatureFlags: None FORMAT_R16G16B16_SINT: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT VK_FORMAT_FEATURE_BLIT_SRC_BIT bufferFeatures FormatFeatureFlags: None FORMAT_R16G16B16_SFLOAT: linearTiling FormatFeatureFlags: VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT VK_FORMAT_FEATURE_BLIT_SRC_BIT VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT optimalTiling FormatFeatureFlags: VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT VK_FORMAT_FEATURE_BLIT_SRC_BIT VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R16G16B16A16_UNORM: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R16G16B16A16_SNORM: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R16G16B16A16_USCALED: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R16G16B16A16_SSCALED: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R16G16B16A16_UINT: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R16G16B16A16_SINT: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R16G16B16A16_SFLOAT: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R32_UINT: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: 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 FORMAT_R32_SINT: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: 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 FORMAT_R32_SFLOAT: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R32G32_UINT: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R32G32_SINT: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R32G32_SFLOAT: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R32G32B32_UINT: linearTiling FormatFeatureFlags: VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT VK_FORMAT_FEATURE_BLIT_SRC_BIT optimalTiling FormatFeatureFlags: VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT VK_FORMAT_FEATURE_BLIT_SRC_BIT bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R32G32B32_SINT: linearTiling FormatFeatureFlags: VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT VK_FORMAT_FEATURE_BLIT_SRC_BIT optimalTiling FormatFeatureFlags: VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT VK_FORMAT_FEATURE_BLIT_SRC_BIT bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R32G32B32_SFLOAT: linearTiling FormatFeatureFlags: VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT VK_FORMAT_FEATURE_BLIT_SRC_BIT VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT optimalTiling FormatFeatureFlags: VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT VK_FORMAT_FEATURE_BLIT_SRC_BIT VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R32G32B32A32_UINT: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R32G32B32A32_SINT: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R32G32B32A32_SFLOAT: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R64_UINT: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: None FORMAT_R64_SINT: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: None FORMAT_R64_SFLOAT: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R64G64_UINT: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: None FORMAT_R64G64_SINT: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: None FORMAT_R64G64_SFLOAT: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R64G64B64_UINT: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: None FORMAT_R64G64B64_SINT: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: None FORMAT_R64G64B64_SFLOAT: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_R64G64B64A64_UINT: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: None FORMAT_R64G64B64A64_SINT: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: None FORMAT_R64G64B64A64_SFLOAT: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_B10G11R11_UFLOAT_PACK32: linearTiling FormatFeatureFlags: 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 optimalTiling FormatFeatureFlags: 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 bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT FORMAT_E5B9G9R9_UFLOAT_PACK32: linearTiling FormatFeatureFlags: VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT VK_FORMAT_FEATURE_BLIT_SRC_BIT VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT optimalTiling FormatFeatureFlags: VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT VK_FORMAT_FEATURE_BLIT_SRC_BIT VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT bufferFeatures FormatFeatureFlags: VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT FORMAT_D16_UNORM: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT VK_FORMAT_FEATURE_BLIT_SRC_BIT VK_FORMAT_FEATURE_BLIT_DST_BIT bufferFeatures FormatFeatureFlags: None FORMAT_X8_D24_UNORM_PACK32: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT VK_FORMAT_FEATURE_BLIT_SRC_BIT VK_FORMAT_FEATURE_BLIT_DST_BIT bufferFeatures FormatFeatureFlags: None FORMAT_D32_SFLOAT: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT VK_FORMAT_FEATURE_BLIT_SRC_BIT VK_FORMAT_FEATURE_BLIT_DST_BIT bufferFeatures FormatFeatureFlags: None FORMAT_S8_UINT: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT VK_FORMAT_FEATURE_BLIT_SRC_BIT VK_FORMAT_FEATURE_BLIT_DST_BIT bufferFeatures FormatFeatureFlags: None FORMAT_D16_UNORM_S8_UINT: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: None bufferFeatures FormatFeatureFlags: None FORMAT_D24_UNORM_S8_UINT: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT VK_FORMAT_FEATURE_BLIT_SRC_BIT VK_FORMAT_FEATURE_BLIT_DST_BIT bufferFeatures FormatFeatureFlags: None FORMAT_D32_SFLOAT_S8_UINT: linearTiling FormatFeatureFlags: None optimalTiling FormatFeatureFlags: VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT VK_FORMAT_FEATURE_BLIT_SRC_BIT VK_FORMAT_FEATURE_BLIT_DST_BIT bufferFeatures FormatFeatureFlags: None FORMAT_BC1_RGB_UNORM_BLOCK: linearTiling Forma
[QUOTE=Pappschachtel;52315584]here's the vulkaninfo output:[/QUOTE] For the love of god please use Pastebin...
[QUOTE=Pappschachtel;52315584]here's the vulkaninfo output:[/QUOTE] agree with previous poster, use pastebin pls One queue family, no cubemaps or texture arrays, no tesselation shading, limited compression support. Shouldn't be surprised, but oof the lack of cubemaps and texture arrays is rough. I hadn't even considered how to work around that in my project, and honestly I can't say I want to [editline]edited[/editline] the gist of it is that while most people playing with vulkan are at least slightly masochistic you're even more so like [I]goddamn[/I] kudos to you Queue family setup can really make things complex though, I haven't yet figured out a good way to leverage multiple queues when available while easily scaling back when there's only 1 per family or one for all families. I programmed around the 16/8/1 (graphics/compute/transfer) of my 1070 until that crashed renderdoc, since that assumes one for all families :v
So the current project I'm working on has some code style quirks. No aggregate initialisers, no filling out PoD types with a.whatever = value initialisation, which means you end up with this: [cpp] class SomeInfo { public: int some_thing; std::shared_ptr<spoiler> some_thing; int some_thing; vec3f some_thing; int some_thing; int some_thing; float some_thing; float some_thing; float some_thing; int some_thing; std::shared_ptr<spoiler> some_thing; vec3f some_thing; float some_thing; std::shared_ptr<spoiler> some_thing; vec3f some_thing; SomeInfo() { } SomeInfo(int some_thing, std::shared_ptr<spoiler> some_thing, int some_thing, vec3f some_thing, int some_thing, int some_thing, float some_thing, float some_thing, float some_thing, int some_thing, std::shared_ptr<spoiler> some_thing, vec3f some_thing, float some_thing, std::shared_ptr<spoiler> some_thing, vec3f some_thing) : some_thing(some_thing), some_thing(some_thing), some_thing(some_thing), some_thing(some_thing), some_thing(some_thing), some_thing(some_thing), some_thing(some_thing), some_thing(some_thing), some_thing(some_thing), some_thing(some_thing), some_thing(some_thing), some_thing(some_thing), some_thing(some_thing) { } }; [/cpp] Names are changed to protect the innocent. This is a descriptor for a collection of values which are intermediate to be put somewhere else, and is never used outside this context ;_; I suppose I did always enjoy signing things in triplicate
Hey guys back with another update to the Metrocop AI. I've got wireframe mode on so you guys can them moving even when they're out of sight. [video=youtube;BjaWZhTRgKc]https://www.youtube.com/watch?v=BjaWZhTRgKc&feature=youtu.be[/video]
Nice one Comfort Jones :)) what do you use to program behavior?
[vid]http://files.1337upload.net/2017-06-06_16-55-11-b3700f.mp4[/vid] physically based rendering! still a few things to do to make this usable in real projects, but all the basics are there
[QUOTE=DarKSunrise;52318863] -vid of dirt- physically based rendering! still a few things to do to make this usable in real projects, but all the basics are there[/QUOTE] Nice dirt
[QUOTE=paindoc;52315715]agree with previous poster, use pastebin pls One queue family, no cubemaps or texture arrays, no tesselation shading, limited compression support. Shouldn't be surprised, but oof the lack of cubemaps and texture arrays is rough. I hadn't even considered how to work around that in my project, and honestly I can't say I want to [editline]edited[/editline] the gist of it is that while most people playing with vulkan are at least slightly masochistic you're even more so like [I]goddamn[/I] kudos to you [...] [/QUOTE] Updated mesa3d to a more recent version which wasnt in the package repo by default... cubemap and tesselation support (and more) :)
[QUOTE=Fourier;52318242]Nice one Comfort Jones :)) what do you use to program behavior?[/QUOTE] Honestly just Valve's schedule system alone does a lot of the work for me. It's really pretty easy to work with once you start to understand some of the finer details. I'm basically just giving them finer pointers on what they should do in their combat schedule function, before they pretty much just shot at you when they could, ran after you if you hid, and took cover if you hurt them. Now they take cover if they can't shoot at you and only one of them directly chases you when you hide while another flanks which makes them seem a bit more cautious. The squad as a whole preserves itself more.
A few weeks ago I decided that manually opening and closing my binds every day was simply too much for me to do anymore. Not only did I have to pull the cord to open the blinds, I also had to position myself next to the blinds in order to reach the cord. It was a significant time waster, consuming an estimated 10 seconds of my life each day just simply opening and closing blinds. I did some important calculations and discovered that if I spent 10 seconds a day on the frankly old-fashioned task of opening the blinds myself, I’d be wasting[B] 70 seconds a [I]week[/I][/B]. That adds up to approximately[B] 4.6 minutes a [I]month[/I][/B]. Which is a whopping [B]hour every year[/B], or [B][I]0.0001% of my life[/I][/B]. If I live to 90, I’d have spent nearly 80 hours of my life opening and closing blinds, assuming I was opening and closing blinds from the age of 10. Obviously, the only sane thing to do was invest nearly half that into developing some kind of blinds control system. I wouldn’t rest until I’d solved this vitally important problem. The only breaks I took were to open or close my blinds. [quote] [vid]http://bitnode.co.uk/wp/wp-content/uploads/2017/06/autobinds.mp4[/vid] [/quote] This is the overall gist: [t]http://bitnode.co.uk/wp/wp-content/uploads/2017/02/Process-overview-2.png[/t] Honestly there's nothing really special to it - it's just a novel (mis)use of the Alexa Skills API. You're not really supposed to be able to say "Alexa, open the X" or "Alexa close the X", but I made a workaround. If you want to read about it: [url]http://bitnode.co.uk/voice-controlled-blinds-with-amazon-echo/[/url]
I skimmed the blog post but couldn't actually find the part where you worked around the alexa restriction. Care to share?
[QUOTE=LennyPenny;52321624]I skimmed the blog post but couldn't actually find the part where you worked around the alexa restriction. Care to share?[/QUOTE] I'm guessing here, but if it's anything like the Cortana API then the voice commands all have to contain the app name. Of course that's not much of a hurdle if you name it 'the blinds'. [editline]not really an edite[/editline] [URL="https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/overviews/understanding-custom-skills#conducting-a-conversation-with-the-user"]I looked it up[/URL][URL="https://archive.is/S6gF7"].[/URL] Invocations have to follow one of a certain amount of predefined patterns, but one of them is 'Alexa, Open [invocation name]'. I assume a similar one exists as 'Alexa, Close [...]'. I wonder when a decent freeform speech API will become available, though that's probably not consumer-compatible due to privacy issues with freeform invocations.
I'm really liking ImGui. I started implementing it back on Saturday but I've been busy until yesterday. Within a couple of hours I got a 99% functional properties manager that works with multiple selected objects across different entity types. Today I spent the whole day trying to make an undo/redo system. It was shit and kept being shit all day, until a few hours ago. It finally clicked and I made a general "Action" class and subclassed it for every conceivable other action, pushing the actions onto undo/redo stacks. The only issue was that due to the nature of ImGui elements, draggable elements that triggered editor actions would flood the undo stack, or other things like typing 255 into a color field would trigger a change of '2', '25', and '255'. To circumvent that, if the last action and the incoming one are the same category, and their targets are the same, the old one consumes the new one's end state, preventing a flooding of similar entries. I'm really pleased with how this editor is turning out.
[QUOTE=Karmah;52321876]I'm really liking ImGui. I started implementing it back on Saturday but I've been busy until yesterday. Within a couple of hours I got a 99% functional properties manager that works with multiple selected objects across different entity types. Today I spent the whole day trying to make an undo/redo system. It was shit and kept being shit all day, until a few hours ago. It finally clicked and I made a general "Action" class and subclassed it for every conceivable other action, pushing the actions onto undo/redo stacks. The only issue was that due to the nature of ImGui elements, draggable elements that triggered editor actions would flood the undo stack, or other things like typing 255 into a color field would trigger a change of '2', '25', and '255'. To circumvent that, if the last action and the incoming one are the same category, and their targets are the same, the old one consumes the new one's end state, preventing a flooding of similar entries. I'm really pleased with how this editor is turning out.[/QUOTE] Meanwhile I can't get fuckin LOD stuff to work well still, I got things kinda working and then realized my current system was all kinds of bad (God classes and God methods errywhere). This lead to me tearing apart and rebuilding my quadtree structure. I've got that mostly done, but now I can't get meshing to work again and the LOD-ing is broke af because its like my view position isn't the same as my logical/tree position, so my view is on the edge of the "sphere" making up the LOD zone. That and I still can't figure out how to get heightmap reading and stitching between chunks working. This is becoming less and less fun, more and more just discouraging :/ BUT. On the upside, I vaguely helped someone find Imgui and do really cool shit with it so I'm going to enjoy some undeserved self-satisfaction from that tyvm
[QUOTE=Karmah;52321876]I'm really liking ImGui. I started implementing it back on Saturday but I've been busy until yesterday. Within a couple of hours I got a 99% functional properties manager that works with multiple selected objects across different entity types. Today I spent the whole day trying to make an undo/redo system. It was shit and kept being shit all day, until a few hours ago. It finally clicked and I made a general "Action" class and subclassed it for every conceivable other action, pushing the actions onto undo/redo stacks. The only issue was that due to the nature of ImGui elements, draggable elements that triggered editor actions would flood the undo stack, or other things like typing 255 into a color field would trigger a change of '2', '25', and '255'. To circumvent that, if the last action and the incoming one are the same category, and their targets are the same, the old one consumes the new one's end state, preventing a flooding of similar entries. I'm really pleased with how this editor is turning out.[/QUOTE] Another solution that doesn't involve having to implement command classes for every possible command would be to just store the whole edited state on a stack. So literally for every modification you copy the whole world state after that modification. That way, you get undo and redo consistently without additional work when implementing new editor features. Obviously requires way more memory, but it's an option to consider when your world state isn't super huge. Photoshop does it that way (at least used to up to Cs5/6).
[thumb]http://carp.tk/$/LibTech_2017-06-07_13-17-19.png[/thumb] [I]How in the flying fuck???[/I] This is not even a C++ project! I'm doing everything in C#!
[QUOTE=Handsome Matt;52322770]I mean, you do a lot of unsafe shit in C# cartman lmao[/QUOTE] This happened when i replaced [code] Files.Initialize("basegame"); [/code] with [code] Files.Initialize(Path.Combine(Application.StartupPath, "basegame")); [/code] :scream:
Oh it looks innocent enough, but I can only imagine the horrors that lay inside that "Initialize" function!
Cool, I have been booked for a live-shader gig. I don't get any money, but atleast free food and beer during the event!
[QUOTE=Matthew0505;52325536]Figured out how to make a proper generic Enum.HasFlag equivalent [code] public static Func<T, T, bool> CompileHasAllFlags<T>() where T : struct, IConvertible { if (!typeof(T).IsEnum || typeof(T).GetCustomAttribute<FlagsAttribute>() == null) return null; var paramA = Expression.Parameter(typeof(T), "a"); var paramB = Expression.Parameter(typeof(T), "b"); var realType = Enum.GetUnderlyingType(typeof(T)); var realA = Expression.Convert(paramA, realType); var realB = Expression.Convert(paramB, realType); return Expression.Lambda<Func<T, T, bool>>( Expression.Equal(Expression.And(realA, realB), realB), paramA, paramB).Compile(); } public static bool HasAllFlags<T>(this T test, T flags) where T : struct, IConvertible => EnumCompiledCache<T>.allFlags(test, flags); [/code] [img]https://i.imgur.com/kcnsxJf.png[/img][/QUOTE] Neato. What's with the blue dots between everything, though?
[QUOTE=Matthew0505;52325536]Figured out how to make a proper generic Enum.HasFlag equivalent [code] public static Func<T, T, bool> CompileHasAllFlags<T>() where T : struct, IConvertible { if (!typeof(T).IsEnum || typeof(T).GetCustomAttribute<FlagsAttribute>() == null) return null; var paramA = Expression.Parameter(typeof(T), "a"); var paramB = Expression.Parameter(typeof(T), "b"); var realType = Enum.GetUnderlyingType(typeof(T)); var realA = Expression.Convert(paramA, realType); var realB = Expression.Convert(paramB, realType); return Expression.Lambda<Func<T, T, bool>>( Expression.Equal(Expression.And(realA, realB), realB), paramA, paramB).Compile(); } public static bool HasAllFlags<T>(this T test, T flags) where T : struct, IConvertible => EnumCompiledCache<T>.allFlags(test, flags); [/code] [img]https://i.imgur.com/kcnsxJf.png[/img][/QUOTE] [URL="https://codeblog.jonskeet.uk/2009/09/10/generic-constraints-for-enums-and-delegates/"]Technically you can actually properly constrain this in .NET[/URL][URL="https://archive.is/GqfH0"],[/URL] but C# arbitrarily doesn't support it :eng101s:
[QUOTE=DrDevil;52324943]Cool, I have been booked for a live-shader gig. I don't get any money, but atleast free food and beer during the event![/QUOTE] You could wire some LED controllers to your shaders too :P
[QUOTE=phygon;52325570]Neato. What's with the blue dots between everything, though?[/QUOTE] Actually arrows showing they have their IDE set up incorrectly and it's inserting tabs instead of spaces.
Sorry, you need to Log In to post a reply to this thread.