feat: 대역폭 추정 및 DAU 표시 기능 추가

- 동시접속자 기반 월간 대역폭 자동 추정
- DAU(일일활성사용자) 추정치 표시 (동접 × 10-14)
- 대역폭 기반 Linode/Vultr 자동 선택 로직
- 비용 분석에 대역폭 비용 포함
- 지역 미선택시 서울/도쿄/오사카/싱가포르 기본 표시
- 지역별 서버 분리 표시 (GROUP BY instance + region)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
kappa
2026-01-25 09:40:36 +09:00
commit 4cb9da06dc
3337 changed files with 1048645 additions and 0 deletions

View File

@@ -0,0 +1,618 @@
==========
VULKANINFO
==========
Vulkan Instance Version: 1.2.135
Instance Extensions: count = 16
===============================
VK_EXT_acquire_xlib_display : extension revision 1
VK_EXT_debug_report : extension revision 8
VK_EXT_debug_utils : extension revision 1
VK_EXT_direct_mode_display : extension revision 1
VK_EXT_display_surface_counter : extension revision 1
VK_KHR_device_group_creation : extension revision 1
VK_KHR_display : extension revision 23
VK_KHR_external_fence_capabilities : extension revision 1
VK_KHR_external_memory_capabilities : extension revision 1
VK_KHR_external_semaphore_capabilities : extension revision 1
VK_KHR_get_display_properties2 : extension revision 1
VK_KHR_get_physical_device_properties2 : extension revision 1
VK_KHR_get_surface_capabilities2 : extension revision 1
VK_KHR_surface : extension revision 25
VK_KHR_xcb_surface : extension revision 6
VK_KHR_xlib_surface : extension revision 6
Layers: count = 0
=================
Presentable Surfaces:
=====================
GPU id : 0 (AMD RADV POLARIS10 (LLVM 8.0.1)):
Surface types: count = 2
VK_KHR_xcb_surface
VK_KHR_xlib_surface
Formats: count = 2
SurfaceFormat[0]:
format = FORMAT_B8G8R8A8_SRGB
colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
SurfaceFormat[1]:
format = FORMAT_B8G8R8A8_UNORM
colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
Present Modes: count = 3
PRESENT_MODE_IMMEDIATE_KHR
PRESENT_MODE_MAILBOX_KHR
PRESENT_MODE_FIFO_KHR
VkSurfaceCapabilitiesKHR:
-------------------------
minImageCount = 2
maxImageCount = 0
currentExtent:
width = 256
height = 256
minImageExtent:
width = 256
height = 256
maxImageExtent:
width = 256
height = 256
maxImageArrayLayers = 1
supportedTransforms: count = 1
SURFACE_TRANSFORM_IDENTITY_BIT_KHR
currentTransform = SURFACE_TRANSFORM_IDENTITY_BIT_KHR
supportedCompositeAlpha: count = 2
COMPOSITE_ALPHA_OPAQUE_BIT_KHR
COMPOSITE_ALPHA_INHERIT_BIT_KHR
supportedUsageFlags: count = 5
IMAGE_USAGE_TRANSFER_SRC_BIT
IMAGE_USAGE_TRANSFER_DST_BIT
IMAGE_USAGE_SAMPLED_BIT
IMAGE_USAGE_STORAGE_BIT
IMAGE_USAGE_COLOR_ATTACHMENT_BIT
VkSurfaceCapabilities2EXT:
--------------------------
supportedSurfaceCounters: count = 0
None
Device Groups:
==============
Group 0:
--------
Properties:
physicalDevices: count = 1
AMD RADV POLARIS10 (LLVM 8.0.1) (ID: 0)
subsetAllocation = 0
Present Capabilities:
AMD RADV POLARIS10 (LLVM 8.0.1) (ID: 0):
Can present images from the following devices: count = 1
AMD RADV POLARIS10 (LLVM 8.0.1) (ID: 0)
Present modes: count = 1
DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR
Device Properties and Extensions:
=================================
GPU0:
VkPhysicalDeviceProperties:
---------------------------
apiVersion = 4198490 (1.1.90)
driverVersion = 79691784 (0x4c00008)
vendorID = 0x1002
deviceID = 0x67df
deviceType = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
deviceName = AMD RADV POLARIS10 (LLVM 8.0.1)
VkPhysicalDeviceLimits:
-----------------------
maxImageDimension1D = 16384
maxImageDimension2D = 16384
maxImageDimension3D = 2048
maxImageDimensionCube = 16384
maxImageArrayLayers = 2048
maxTexelBufferElements = 134217728
maxUniformBufferRange = 4294967295
maxStorageBufferRange = 4294967295
maxPushConstantsSize = 128
maxMemoryAllocationCount = 4294967295
maxSamplerAllocationCount = 65536
bufferImageGranularity = 0x00000040
sparseAddressSpaceSize = 0xffffffff
maxBoundDescriptorSets = 32
maxPerStageDescriptorSamplers = 9586978
maxPerStageDescriptorUniformBuffers = 9586978
maxPerStageDescriptorStorageBuffers = 9586978
maxPerStageDescriptorSampledImages = 9586978
maxPerStageDescriptorStorageImages = 9586978
maxPerStageDescriptorInputAttachments = 9586978
maxPerStageResources = 9586978
maxDescriptorSetSamplers = 9586978
maxDescriptorSetUniformBuffers = 9586978
maxDescriptorSetUniformBuffersDynamic = 16
maxDescriptorSetStorageBuffers = 9586978
maxDescriptorSetStorageBuffersDynamic = 8
maxDescriptorSetSampledImages = 9586978
maxDescriptorSetStorageImages = 9586978
maxDescriptorSetInputAttachments = 9586978
maxVertexInputAttributes = 32
maxVertexInputBindings = 32
maxVertexInputAttributeOffset = 2047
maxVertexInputBindingStride = 2048
maxVertexOutputComponents = 128
maxTessellationGenerationLevel = 64
maxTessellationPatchSize = 32
maxTessellationControlPerVertexInputComponents = 128
maxTessellationControlPerVertexOutputComponents = 128
maxTessellationControlPerPatchOutputComponents = 120
maxTessellationControlTotalOutputComponents = 4096
maxTessellationEvaluationInputComponents = 128
maxTessellationEvaluationOutputComponents = 128
maxGeometryShaderInvocations = 127
maxGeometryInputComponents = 64
maxGeometryOutputComponents = 128
maxGeometryOutputVertices = 256
maxGeometryTotalOutputComponents = 1024
maxFragmentInputComponents = 128
maxFragmentOutputAttachments = 8
maxFragmentDualSrcAttachments = 1
maxFragmentCombinedOutputResources = 8
maxComputeSharedMemorySize = 32768
maxComputeWorkGroupCount: count = 3
65535
65535
65535
maxComputeWorkGroupInvocations = 2048
maxComputeWorkGroupSize: count = 3
2048
2048
2048
subPixelPrecisionBits = 8
subTexelPrecisionBits = 8
mipmapPrecisionBits = 8
maxDrawIndexedIndexValue = 4294967295
maxDrawIndirectCount = 4294967295
maxSamplerLodBias = 16
maxSamplerAnisotropy = 16
maxViewports = 16
maxViewportDimensions: count = 2
16384
16384
viewportBoundsRange: count = 2
-32768
32767
viewportSubPixelBits = 8
minMemoryMapAlignment = 4096
minTexelBufferOffsetAlignment = 0x00000001
minUniformBufferOffsetAlignment = 0x00000004
minStorageBufferOffsetAlignment = 0x00000004
minTexelOffset = -32
maxTexelOffset = 31
minTexelGatherOffset = -32
maxTexelGatherOffset = 31
minInterpolationOffset = -2
maxInterpolationOffset = 2
subPixelInterpolationOffsetBits = 8
maxFramebufferWidth = 16384
maxFramebufferHeight = 16384
maxFramebufferLayers = 1024
framebufferColorSampleCounts: count = 4
SAMPLE_COUNT_1_BIT
SAMPLE_COUNT_2_BIT
SAMPLE_COUNT_4_BIT
SAMPLE_COUNT_8_BIT
framebufferDepthSampleCounts: count = 4
SAMPLE_COUNT_1_BIT
SAMPLE_COUNT_2_BIT
SAMPLE_COUNT_4_BIT
SAMPLE_COUNT_8_BIT
framebufferStencilSampleCounts: count = 4
SAMPLE_COUNT_1_BIT
SAMPLE_COUNT_2_BIT
SAMPLE_COUNT_4_BIT
SAMPLE_COUNT_8_BIT
framebufferNoAttachmentsSampleCounts: count = 4
SAMPLE_COUNT_1_BIT
SAMPLE_COUNT_2_BIT
SAMPLE_COUNT_4_BIT
SAMPLE_COUNT_8_BIT
maxColorAttachments = 8
sampledImageColorSampleCounts: count = 4
SAMPLE_COUNT_1_BIT
SAMPLE_COUNT_2_BIT
SAMPLE_COUNT_4_BIT
SAMPLE_COUNT_8_BIT
sampledImageIntegerSampleCounts: count = 1
SAMPLE_COUNT_1_BIT
sampledImageDepthSampleCounts: count = 4
SAMPLE_COUNT_1_BIT
SAMPLE_COUNT_2_BIT
SAMPLE_COUNT_4_BIT
SAMPLE_COUNT_8_BIT
sampledImageStencilSampleCounts: count = 4
SAMPLE_COUNT_1_BIT
SAMPLE_COUNT_2_BIT
SAMPLE_COUNT_4_BIT
SAMPLE_COUNT_8_BIT
storageImageSampleCounts: count = 4
SAMPLE_COUNT_1_BIT
SAMPLE_COUNT_2_BIT
SAMPLE_COUNT_4_BIT
SAMPLE_COUNT_8_BIT
maxSampleMaskWords = 1
timestampComputeAndGraphics = true
timestampPeriod = 40
maxClipDistances = 8
maxCullDistances = 8
maxCombinedClipAndCullDistances = 8
discreteQueuePriorities = 2
pointSizeRange: count = 2
0
8192
lineWidthRange: count = 2
0
7.99219
pointSizeGranularity = 0.125
lineWidthGranularity = 0.0078125
strictLines = false
standardSampleLocations = true
optimalBufferCopyOffsetAlignment = 0x00000080
optimalBufferCopyRowPitchAlignment = 0x00000080
nonCoherentAtomSize = 0x00000040
VkPhysicalDeviceSparseProperties:
---------------------------------
residencyStandard2DBlockShape = false
residencyStandard2DMultisampleBlockShape = false
residencyStandard3DBlockShape = false
residencyAlignedMipSize = false
residencyNonResidentStrict = false
VkPhysicalDeviceDiscardRectanglePropertiesEXT:
----------------------------------------------
maxDiscardRectangles = 4
VkPhysicalDeviceDriverPropertiesKHR:
------------------------------------
driverID = DRIVER_ID_MESA_RADV
driverName = radv
driverInfo = Mesa 19.0.8 (LLVM 8.0.1)
conformanceVersion = 1.1.2.0
VkPhysicalDeviceExternalMemoryHostPropertiesEXT:
------------------------------------------------
minImportedHostPointerAlignment = 0x00001000
VkPhysicalDeviceIDProperties:
-----------------------------
deviceNodeMask = 0
deviceLUIDValid = false
VkPhysicalDeviceMaintenance3Properties:
---------------------------------------
maxPerSetDescriptors = 22369621
maxMemoryAllocationSize = 0xffffffff
VkPhysicalDeviceMultiviewProperties:
------------------------------------
maxMultiviewViewCount = 8
maxMultiviewInstanceIndex = 2147483647
VkPhysicalDevicePCIBusInfoPropertiesEXT:
----------------------------------------
pciDomain = 0
pciBus = 15
pciDevice = 0
pciFunction = 0
VkPhysicalDevicePointClippingProperties:
----------------------------------------
pointClippingBehavior = POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES
VkPhysicalDeviceProtectedMemoryProperties:
------------------------------------------
protectedNoFault = false
VkPhysicalDevicePushDescriptorPropertiesKHR:
--------------------------------------------
maxPushDescriptors = 32
VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT:
-------------------------------------------------
filterMinmaxSingleComponentFormats = true
filterMinmaxImageComponentMapping = false
VkPhysicalDeviceSubgroupProperties:
-----------------------------------
subgroupSize = 64
supportedStages: count = 16
SHADER_STAGE_VERTEX_BIT
SHADER_STAGE_TESSELLATION_CONTROL_BIT
SHADER_STAGE_TESSELLATION_EVALUATION_BIT
SHADER_STAGE_GEOMETRY_BIT
SHADER_STAGE_FRAGMENT_BIT
SHADER_STAGE_COMPUTE_BIT
SHADER_STAGE_ALL_GRAPHICS
SHADER_STAGE_ALL
SHADER_STAGE_RAYGEN_BIT_KHR
SHADER_STAGE_ANY_HIT_BIT_KHR
SHADER_STAGE_CLOSEST_HIT_BIT_KHR
SHADER_STAGE_MISS_BIT_KHR
SHADER_STAGE_INTERSECTION_BIT_KHR
SHADER_STAGE_CALLABLE_BIT_KHR
SHADER_STAGE_TASK_BIT_NV
SHADER_STAGE_MESH_BIT_NV
supportedOperations: count = 7
SUBGROUP_FEATURE_BASIC_BIT
SUBGROUP_FEATURE_VOTE_BIT
SUBGROUP_FEATURE_ARITHMETIC_BIT
SUBGROUP_FEATURE_BALLOT_BIT
SUBGROUP_FEATURE_SHUFFLE_BIT
SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT
SUBGROUP_FEATURE_QUAD_BIT
quadOperationsInAllStages = true
VkPhysicalDeviceTransformFeedbackPropertiesEXT:
-----------------------------------------------
maxTransformFeedbackStreams = 4
maxTransformFeedbackBuffers = 4
maxTransformFeedbackBufferSize = 0xffffffff
maxTransformFeedbackStreamDataSize = 512
maxTransformFeedbackBufferDataSize = 4294967295
maxTransformFeedbackBufferDataStride = 512
transformFeedbackQueries = true
transformFeedbackStreamsLinesTriangles = false
transformFeedbackRasterizationStreamSelect = false
transformFeedbackDraw = true
VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT:
----------------------------------------------------
maxVertexAttribDivisor = 4294967295
Device Extensions: count = 53
-----------------------------
VK_AMD_draw_indirect_count : extension revision 1
VK_AMD_gcn_shader : extension revision 1
VK_AMD_rasterization_order : extension revision 1
VK_AMD_shader_core_properties : extension revision 1
VK_AMD_shader_info : extension revision 1
VK_AMD_shader_trinary_minmax : extension revision 1
VK_EXT_calibrated_timestamps : extension revision 1
VK_EXT_conditional_rendering : extension revision 1
VK_EXT_depth_range_unrestricted : extension revision 1
VK_EXT_discard_rectangles : extension revision 1
VK_EXT_display_control : extension revision 1
VK_EXT_external_memory_dma_buf : extension revision 1
VK_EXT_external_memory_host : extension revision 1
VK_EXT_global_priority : extension revision 1
VK_EXT_memory_budget : extension revision 1
VK_EXT_memory_priority : extension revision 1
VK_EXT_pci_bus_info : extension revision 2
VK_EXT_sampler_filter_minmax : extension revision 1
VK_EXT_scalar_block_layout : extension revision 1
VK_EXT_shader_stencil_export : extension revision 1
VK_EXT_shader_viewport_index_layer : extension revision 1
VK_EXT_transform_feedback : extension revision 1
VK_EXT_vertex_attribute_divisor : extension revision 3
VK_GOOGLE_decorate_string : extension revision 1
VK_GOOGLE_hlsl_functionality1 : extension revision 1
VK_KHR_16bit_storage : extension revision 1
VK_KHR_bind_memory2 : extension revision 1
VK_KHR_create_renderpass2 : extension revision 1
VK_KHR_dedicated_allocation : extension revision 1
VK_KHR_descriptor_update_template : extension revision 1
VK_KHR_device_group : extension revision 1
VK_KHR_draw_indirect_count : extension revision 1
VK_KHR_driver_properties : extension revision 1
VK_KHR_external_fence : extension revision 1
VK_KHR_external_fence_fd : extension revision 1
VK_KHR_external_memory : extension revision 1
VK_KHR_external_memory_fd : extension revision 1
VK_KHR_external_semaphore : extension revision 1
VK_KHR_external_semaphore_fd : extension revision 1
VK_KHR_get_memory_requirements2 : extension revision 1
VK_KHR_image_format_list : extension revision 1
VK_KHR_incremental_present : extension revision 1
VK_KHR_maintenance1 : extension revision 1
VK_KHR_maintenance2 : extension revision 1
VK_KHR_maintenance3 : extension revision 1
VK_KHR_multiview : extension revision 1
VK_KHR_push_descriptor : extension revision 1
VK_KHR_relaxed_block_layout : extension revision 1
VK_KHR_sampler_mirror_clamp_to_edge : extension revision 1
VK_KHR_shader_draw_parameters : extension revision 1
VK_KHR_storage_buffer_storage_class : extension revision 1
VK_KHR_swapchain : extension revision 68
VK_KHR_variable_pointers : extension revision 1
VkQueueFamilyProperties:
========================
queueProperties[0]:
-------------------
minImageTransferGranularity = (1,1,1)
queueCount = 1
queueFlags = QUEUE_GRAPHICS | QUEUE_COMPUTE | QUEUE_TRANSFER | QUEUE_SPARSE_BINDING
timestampValidBits = 64
present support:
VK_KHR_xcb_surface = true
VK_KHR_xlib_surface = true
queueProperties[1]:
-------------------
minImageTransferGranularity = (1,1,1)
queueCount = 8
queueFlags = QUEUE_COMPUTE | QUEUE_TRANSFER | QUEUE_SPARSE_BINDING
timestampValidBits = 64
present support:
VK_KHR_xcb_surface = true
VK_KHR_xlib_surface = true
VkPhysicalDeviceMemoryProperties:
=================================
memoryHeaps: count = 3
memoryHeaps[0]:
size = 4026531840 (0xf0000000) (3.75 GiB)
budget = 3808608256 (0xe302c000) (3.55 GiB)
usage = 0 (0x00000000) (0.00 B)
flags: count = 1
MEMORY_HEAP_DEVICE_LOCAL_BIT
memoryHeaps[1]:
size = 268435456 (0x10000000) (256.00 MiB)
budget = 232423424 (0x0dda8000) (221.66 MiB)
usage = 0 (0x00000000) (0.00 B)
flags: count = 1
MEMORY_HEAP_DEVICE_LOCAL_BIT
memoryHeaps[2]:
size = 4294967296 (0x100000000) (4.00 GiB)
budget = 4212793344 (0xfb1a2000) (3.92 GiB)
usage = 0 (0x00000000) (0.00 B)
flags: count = 0
None
memoryTypes: count = 4
memoryTypes[0]:
heapIndex = 0
propertyFlags = 0x0001: count = 1
MEMORY_PROPERTY_DEVICE_LOCAL_BIT
usable for:
IMAGE_TILING_OPTIMAL: color images, FORMAT_D16_UNORM, FORMAT_D32_SFLOAT, FORMAT_S8_UINT, FORMAT_D16_UNORM_S8_UINT, FORMAT_D32_SFLOAT_S8_UINT
IMAGE_TILING_LINEAR: color images
memoryTypes[1]:
heapIndex = 2
propertyFlags = 0x0006: count = 2
MEMORY_PROPERTY_HOST_VISIBLE_BIT
MEMORY_PROPERTY_HOST_COHERENT_BIT
usable for:
IMAGE_TILING_OPTIMAL: color images, FORMAT_D16_UNORM, FORMAT_D32_SFLOAT, FORMAT_S8_UINT, FORMAT_D16_UNORM_S8_UINT, FORMAT_D32_SFLOAT_S8_UINT
IMAGE_TILING_LINEAR: color images
memoryTypes[2]:
heapIndex = 1
propertyFlags = 0x0007: count = 3
MEMORY_PROPERTY_DEVICE_LOCAL_BIT
MEMORY_PROPERTY_HOST_VISIBLE_BIT
MEMORY_PROPERTY_HOST_COHERENT_BIT
usable for:
IMAGE_TILING_OPTIMAL: color images, FORMAT_D16_UNORM, FORMAT_D32_SFLOAT, FORMAT_S8_UINT, FORMAT_D16_UNORM_S8_UINT, FORMAT_D32_SFLOAT_S8_UINT
IMAGE_TILING_LINEAR: color images
memoryTypes[3]:
heapIndex = 2
propertyFlags = 0x000e: count = 3
MEMORY_PROPERTY_HOST_VISIBLE_BIT
MEMORY_PROPERTY_HOST_COHERENT_BIT
MEMORY_PROPERTY_HOST_CACHED_BIT
usable for:
IMAGE_TILING_OPTIMAL: color images, FORMAT_D16_UNORM, FORMAT_D32_SFLOAT, FORMAT_S8_UINT, FORMAT_D16_UNORM_S8_UINT, FORMAT_D32_SFLOAT_S8_UINT
IMAGE_TILING_LINEAR: color images
VkPhysicalDeviceFeatures:
=========================
robustBufferAccess = true
fullDrawIndexUint32 = true
imageCubeArray = true
independentBlend = true
geometryShader = true
tessellationShader = true
sampleRateShading = true
dualSrcBlend = true
logicOp = true
multiDrawIndirect = true
drawIndirectFirstInstance = true
depthClamp = true
depthBiasClamp = true
fillModeNonSolid = true
depthBounds = true
wideLines = true
largePoints = true
alphaToOne = true
multiViewport = true
samplerAnisotropy = true
textureCompressionETC2 = false
textureCompressionASTC_LDR = false
textureCompressionBC = true
occlusionQueryPrecise = true
pipelineStatisticsQuery = true
vertexPipelineStoresAndAtomics = true
fragmentStoresAndAtomics = true
shaderTessellationAndGeometryPointSize = true
shaderImageGatherExtended = true
shaderStorageImageExtendedFormats = true
shaderStorageImageMultisample = true
shaderStorageImageReadWithoutFormat = true
shaderStorageImageWriteWithoutFormat = true
shaderUniformBufferArrayDynamicIndexing = true
shaderSampledImageArrayDynamicIndexing = true
shaderStorageBufferArrayDynamicIndexing = true
shaderStorageImageArrayDynamicIndexing = true
shaderClipDistance = true
shaderCullDistance = true
shaderFloat64 = true
shaderInt64 = true
shaderInt16 = false
shaderResourceResidency = false
shaderResourceMinLod = false
sparseBinding = true
sparseResidencyBuffer = false
sparseResidencyImage2D = false
sparseResidencyImage3D = false
sparseResidency2Samples = false
sparseResidency4Samples = false
sparseResidency8Samples = false
sparseResidency16Samples = false
sparseResidencyAliased = false
variableMultisampleRate = true
inheritedQueries = true
VkPhysicalDevice16BitStorageFeatures:
-------------------------------------
storageBuffer16BitAccess = true
uniformAndStorageBuffer16BitAccess = true
storagePushConstant16 = true
storageInputOutput16 = false
VkPhysicalDeviceConditionalRenderingFeaturesEXT:
------------------------------------------------
conditionalRendering = true
inheritedConditionalRendering = false
VkPhysicalDeviceMemoryPriorityFeaturesEXT:
------------------------------------------
memoryPriority = true
VkPhysicalDeviceMultiviewFeatures:
----------------------------------
multiview = true
multiviewGeometryShader = true
multiviewTessellationShader = true
VkPhysicalDeviceProtectedMemoryFeatures:
----------------------------------------
protectedMemory = false
VkPhysicalDeviceSamplerYcbcrConversionFeatures:
-----------------------------------------------
samplerYcbcrConversion = false
VkPhysicalDeviceScalarBlockLayoutFeaturesEXT:
---------------------------------------------
scalarBlockLayout = true
VkPhysicalDeviceShaderDrawParametersFeatures:
---------------------------------------------
shaderDrawParameters = true
VkPhysicalDeviceTransformFeedbackFeaturesEXT:
---------------------------------------------
transformFeedback = true
geometryStreams = true
VkPhysicalDeviceVariablePointersFeatures:
-----------------------------------------
variablePointersStorageBuffer = true
variablePointers = true
VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT:
--------------------------------------------------
vertexAttributeInstanceRateDivisor = true
vertexAttributeInstanceRateZeroDivisor = true