Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problem with ProcessDefragmentationPass on AMD Ryzen™ 9 7950X #339

Open
IAmNotHanni opened this issue May 14, 2023 · 1 comment
Open
Labels
bug Something isn't working investigating Still to be determined whether we work on this

Comments

@IAmNotHanni
Copy link
Contributor

When running the tests on my AMD 7950X, I first get the validation error I mentioned in #338 and then the application crashes here:

grafik

Running the tests with my Intel Arc A770 works without any problems. I will try to find a solution for #338, but I don't have any experience with the memory defragmentation, so this might take a while for me to find a solution.

@adam-sawicki-a adam-sawicki-a added bug Something isn't working investigating Still to be determined whether we work on this labels May 18, 2023
@IAmNotHanni
Copy link
Contributor Author

IAmNotHanni commented Jun 18, 2024

Update: Running the test in the sample application in current main branch (7942b79) still leads to a crash.

Important: In the following log files, I am not showing the validation error from issue #421.

Crash when testing on AMD Ryzen™ 9 7950X (AMD Radeon(TM) Graphics)

TESTING:
Test JSON
Saving JSON dump to file "JSON_VULKAN.json"
Test basics
Test vnaGetAllocatorInfo
Test virtual blocks
Test virtual blocks algorithms
Benchmark virtual blocks algorithms
Alignment,Algorithm,Strategy,Alloc time ms,Random operation time ms,Free time ms
1,TLSF,Default,0.5822,1.8574,0.6692
1,Linear,Default,0.4207,2.0422,1.0309
1,TLSF,MIN_MEMORY,0.4893,1.9405,0.6699
1,Linear,MIN_MEMORY,0.4235,2.0261,1.0105
1,TLSF,MIN_TIME,0.4757,1.7916,0.6704
1,Linear,MIN_TIME,0.4324,1.9287,1.0312
16,TLSF,Default,1.3285,2.3473,0.7442
16,Linear,Default,0.4238,1.9242,1.0801
16,TLSF,MIN_MEMORY,1.896,3.7825,0.7374
16,Linear,MIN_MEMORY,0.4213,1.913,1.015
16,TLSF,MIN_TIME,0.7587,2.2685,0.7573
16,Linear,MIN_TIME,0.4419,1.9501,1.0532
64,TLSF,Default,1.7115,4.1813,0.957
64,Linear,Default,0.4224,1.8968,1.0144
64,TLSF,MIN_MEMORY,1.8802,4.8508,0.7216
64,Linear,MIN_MEMORY,0.4218,1.8996,1.0355
64,TLSF,MIN_TIME,0.7702,2.4236,0.7489
64,Linear,MIN_TIME,0.4223,1.8981,1.0144
256,TLSF,Default,1.9706,4.7946,0.7377
256,Linear,Default,0.4273,1.9132,1.0168
256,TLSF,MIN_MEMORY,1.9096,4.9976,0.7216
256,Linear,MIN_MEMORY,0.422,1.9032,1.0277
256,TLSF,MIN_TIME,0.783,2.1417,0.7389
256,Linear,MIN_TIME,0.4221,2.2032,1.0232
Test allocation versus resource size
Test Pool MinBlockCount
Test Pool MinAllocationAlignment
Test pools and allocation parameters
Test heap size limit
Testing memory usage:
  VMA_MEMORY_USAGE_UNKNOWN:
    Buffer TRANSFER_DST + TRANSFER_SRC: memoryTypeBits=0xFF, memoryTypeIndex=0
    Buffer TRANSFER_DST + VERTEX_BUFFER: memoryTypeBits=0xFF, memoryTypeIndex=0
    Image OPTIMAL TRANSFER_DST + TRANSFER_SRC: memoryTypeBits=0xFF, memoryTypeIndex=0
    Image OPTIMAL TRANSFER_DST + SAMPLED: memoryTypeBits=0xFF, memoryTypeIndex=0
    Image OPTIMAL SAMPLED + COLOR_ATTACHMENT: memoryTypeBits=0xFF, memoryTypeIndex=0
  VMA_MEMORY_USAGE_GPU_ONLY:
    Buffer TRANSFER_DST + TRANSFER_SRC: memoryTypeBits=0xFF, memoryTypeIndex=0
    Buffer TRANSFER_DST + VERTEX_BUFFER: memoryTypeBits=0xFF, memoryTypeIndex=0
    Image OPTIMAL TRANSFER_DST + TRANSFER_SRC: memoryTypeBits=0xFF, memoryTypeIndex=0
    Image OPTIMAL TRANSFER_DST + SAMPLED: memoryTypeBits=0xFF, memoryTypeIndex=0
    Image OPTIMAL SAMPLED + COLOR_ATTACHMENT: memoryTypeBits=0xFF, memoryTypeIndex=0
  VMA_MEMORY_USAGE_CPU_ONLY:
    Buffer TRANSFER_DST + TRANSFER_SRC: memoryTypeBits=0xFF, memoryTypeIndex=1
    Buffer TRANSFER_DST + VERTEX_BUFFER: memoryTypeBits=0xFF, memoryTypeIndex=1
    Image OPTIMAL TRANSFER_DST + TRANSFER_SRC: memoryTypeBits=0xFF, memoryTypeIndex=1
    Image OPTIMAL TRANSFER_DST + SAMPLED: memoryTypeBits=0xFF, memoryTypeIndex=1
    Image OPTIMAL SAMPLED + COLOR_ATTACHMENT: memoryTypeBits=0xFF, memoryTypeIndex=1
  VMA_MEMORY_USAGE_CPU_TO_GPU:
    Buffer TRANSFER_DST + TRANSFER_SRC: memoryTypeBits=0xFF, memoryTypeIndex=2
    Buffer TRANSFER_DST + VERTEX_BUFFER: memoryTypeBits=0xFF, memoryTypeIndex=2
    Image OPTIMAL TRANSFER_DST + TRANSFER_SRC: memoryTypeBits=0xFF, memoryTypeIndex=2
    Image OPTIMAL TRANSFER_DST + SAMPLED: memoryTypeBits=0xFF, memoryTypeIndex=2
    Image OPTIMAL SAMPLED + COLOR_ATTACHMENT: memoryTypeBits=0xFF, memoryTypeIndex=2
  VMA_MEMORY_USAGE_GPU_TO_CPU:
    Buffer TRANSFER_DST + TRANSFER_SRC: memoryTypeBits=0xFF, memoryTypeIndex=3
    Buffer TRANSFER_DST + VERTEX_BUFFER: memoryTypeBits=0xFF, memoryTypeIndex=3
    Image OPTIMAL TRANSFER_DST + TRANSFER_SRC: memoryTypeBits=0xFF, memoryTypeIndex=3
    Image OPTIMAL TRANSFER_DST + SAMPLED: memoryTypeBits=0xFF, memoryTypeIndex=3
    Image OPTIMAL SAMPLED + COLOR_ATTACHMENT: memoryTypeBits=0xFF, memoryTypeIndex=3
  VMA_MEMORY_USAGE_CPU_COPY:
    Buffer TRANSFER_DST + TRANSFER_SRC: memoryTypeBits=0xFF, memoryTypeIndex=1
    Buffer TRANSFER_DST + VERTEX_BUFFER: memoryTypeBits=0xFF, memoryTypeIndex=1
    Image OPTIMAL TRANSFER_DST + TRANSFER_SRC: memoryTypeBits=0xFF, memoryTypeIndex=1
    Image OPTIMAL TRANSFER_DST + SAMPLED: memoryTypeBits=0xFF, memoryTypeIndex=1
    Image OPTIMAL SAMPLED + COLOR_ATTACHMENT: memoryTypeBits=0xFF, memoryTypeIndex=1
  VMA_MEMORY_USAGE_GPU_LAZILY_ALLOCATED:
    Buffer TRANSFER_DST + TRANSFER_SRC: memoryTypeBits=0xFF, FAILED with res=-8
    Buffer TRANSFER_DST + VERTEX_BUFFER: memoryTypeBits=0xFF, FAILED with res=-8
    Image OPTIMAL TRANSFER_DST + TRANSFER_SRC: memoryTypeBits=0xFF, FAILED with res=-8
    Image OPTIMAL TRANSFER_DST + SAMPLED: memoryTypeBits=0xFF, FAILED with res=-8
    Image OPTIMAL SAMPLED + COLOR_ATTACHMENT: memoryTypeBits=0xFF, FAILED with res=-8
Testing device coherent memory...
Testing statistics...
Testing aliasing...
  size: max(1441792, 8896880) = 8896880
  alignment: max(65536, 65536) = 65536
  memoryTypeBits: 255 & 255 = 255
Testing allocation aliasing...
VUID-vkAllocateMemory-pAllocateInfo-01713 ║ Validation Error: [ VUID-vkAllocateMemory-pAllocateInfo-01713 ] | MessageID = 0xe9a2b96f | vkAllocateMemory(): pAllocateInfo->allocationSize is 314572800 bytes from heap 0,but size of that heap is only 268435456 bytes. The Vulkan spec states: pAllocateInfo->allocationSize must be less than or equal to VkPhysicalDeviceMemoryProperties::memoryHeaps[memindex].size where memindex = VkPhysicalDeviceMemoryProperties::memoryTypes[pAllocateInfo->memoryTypeIndex].heapIndex as returned by vkGetPhysicalDeviceMemoryProperties for the VkPhysicalDevice that device was created from (https://vulkan.lunarg.com/doc/view/1.3.275.0/windows/1.3-extensions/vkspec.html#VUID-vkAllocateMemory-pAllocateInfo-01713)
Testing mapping...
Testing allocation-memory copy...
Test mapping hysteresis
Testing mapping multithreaded...
Test linear allocator
Manually test linear allocator
Test linear allocator multi block
Test allocation algorithm correctness
Basic test TLSF
Basic test allocate pages
Test buffer device address
Test memory priority
Benchmark algorithms
    Algorithm=TLSF Empty Allocation=MIN_MEMORY FreeOrder=BACKWARD: allocations 0.0254064 s, free 0.0078822 s
    Algorithm=TLSF Empty Allocation=MIN_TIME FreeOrder=BACKWARD: allocations 0.0126458 s, free 0.0077356 s
    Algorithm=Linear Empty Allocation=Default FreeOrder=BACKWARD: allocations 0.010418 s, free 0.0074427 s
    Algorithm=TLSF Not empty Allocation=MIN_MEMORY FreeOrder=BACKWARD: allocations 0.0317757 s, free 0.0089939 s
    Algorithm=TLSF Not empty Allocation=MIN_TIME FreeOrder=BACKWARD: allocations 0.0143247 s, free 0.0095558 s
    Algorithm=Linear Not empty Allocation=Default FreeOrder=BACKWARD: allocations 0.0102426 s, free 0.0074697 s
    Algorithm=TLSF Empty Allocation=MIN_MEMORY FreeOrder=FORWARD: allocations 0.0280679 s, free 0.0101228 s
    Algorithm=TLSF Empty Allocation=MIN_TIME FreeOrder=FORWARD: allocations 0.0125365 s, free 0.0089156 s
    Algorithm=Linear Empty Allocation=Default FreeOrder=FORWARD: allocations 0.0101971 s, free 0.007439 s
    Algorithm=TLSF Not empty Allocation=MIN_MEMORY FreeOrder=FORWARD: allocations 0.0295029 s, free 0.0096086 s
    Algorithm=TLSF Not empty Allocation=MIN_TIME FreeOrder=FORWARD: allocations 0.0146636 s, free 0.0092856 s
    Algorithm=Linear Not empty Allocation=Default FreeOrder=FORWARD: allocations 0.0105259 s, free 0.0096939 s
Test defragmentation simple
  Persistently mapped option = 0
  Persistently mapped option = 1
Test defragmentation vs mapping
    Pass 0 moving 31 allocations
    Pass 1 moving 42 allocations
    Pass 2 moving 6 allocations
    Defragmentation: moved 59 allocations, 3866624 B, freed 1 memory blocks, 1048576 B
Test defragmentation simple
  Algorithm = Fast
Saving JSON dump to file "Fast_NoMove_Before.json"
Saving JSON dump to file "Fast_NoMove_After.json"
Saving JSON dump to file "Fast_Move_Before.json"
Saving JSON dump to file "Fast_Move_After.json"
  Algorithm = Balanced
Saving JSON dump to file "Balanced_NoMove_Before.json"
Saving JSON dump to file "Balanced_NoMove_After.json"
Saving JSON dump to file "Balanced_Move_Before.json"
Saving JSON dump to file "Balanced_Move_After.json"
  Algorithm = Full
Saving JSON dump to file "Full_NoMove_Before.json"
Saving JSON dump to file "Full_NoMove_After.json"
Saving JSON dump to file "Full_Move_Before.json"
Saving JSON dump to file "Full_Move_After.json"
  Algorithm = Extensive
Saving JSON dump to file "Extensive_NoMove_Before.json"
Saving JSON dump to file "Extensive_NoMove_After.json"
Saving JSON dump to file "Extensive_Move_Before.json"
Saving JSON dump to file "Extensive_Move_After.json"
Defragmentation #0
Moved allocations 48, bytes 37540864
Freed blocks 5, bytes 167772160
Time: 0.02 s
Test defragmentation GPU
Saving JSON dump to file "GPU_defragmentation_A_before.json"

Intel Arc A770 passes all tests

TESTING:
Test JSON
Saving JSON dump to file "JSON_VULKAN.json"
Test basics
Test vnaGetAllocatorInfo
Test virtual blocks
Test virtual blocks algorithms
Benchmark virtual blocks algorithms
Alignment,Algorithm,Strategy,Alloc time ms,Random operation time ms,Free time ms
1,TLSF,Default,0.5948,1.8478,0.6695
1,Linear,Default,0.4341,2.0028,1.0637
1,TLSF,MIN_MEMORY,0.5315,1.9002,0.6675
1,Linear,MIN_MEMORY,0.4213,2.0072,1.0312
1,TLSF,MIN_TIME,0.4738,1.8146,0.6748
1,Linear,MIN_TIME,0.4239,1.9106,1.0337
16,TLSF,Default,1.2198,2.406,0.7747
16,Linear,Default,0.421,1.9105,1.0175
16,TLSF,MIN_MEMORY,1.7002,3.4607,0.7345
16,Linear,MIN_MEMORY,0.4215,1.9198,1.0258
16,TLSF,MIN_TIME,0.8089,2.2892,0.7472
16,Linear,MIN_TIME,0.4219,1.905,1.0221
64,TLSF,Default,1.5461,3.8765,0.7471
64,Linear,Default,0.4244,1.9127,1.0752
64,TLSF,MIN_MEMORY,1.9042,4.2635,0.7236
64,Linear,MIN_MEMORY,0.4235,1.9058,1.0378
64,TLSF,MIN_TIME,0.7552,2.2082,0.7527
64,Linear,MIN_TIME,0.4566,1.9658,1.0279
256,TLSF,Default,1.6471,4.306,0.7395
256,Linear,Default,0.4878,1.9016,1.014
256,TLSF,MIN_MEMORY,1.6752,4.4408,0.9503
256,Linear,MIN_MEMORY,0.424,1.9043,1.0141
256,TLSF,MIN_TIME,0.7594,2.0894,0.7575
256,Linear,MIN_TIME,0.4228,1.896,1.065
Test allocation versus resource size
Test Pool MinBlockCount
Test Pool MinAllocationAlignment
Test pools and allocation parameters
Test heap size limit
Testing memory usage:
  VMA_MEMORY_USAGE_UNKNOWN:
    Buffer TRANSFER_DST + TRANSFER_SRC: memoryTypeBits=0xF, memoryTypeIndex=0
    Buffer TRANSFER_DST + VERTEX_BUFFER: memoryTypeBits=0xF, memoryTypeIndex=0
    Image OPTIMAL TRANSFER_DST + TRANSFER_SRC: memoryTypeBits=0xF, memoryTypeIndex=0
    Image OPTIMAL TRANSFER_DST + SAMPLED: memoryTypeBits=0xF, memoryTypeIndex=0
    Image OPTIMAL SAMPLED + COLOR_ATTACHMENT: memoryTypeBits=0xF, memoryTypeIndex=0
  VMA_MEMORY_USAGE_GPU_ONLY:
    Buffer TRANSFER_DST + TRANSFER_SRC: memoryTypeBits=0xF, memoryTypeIndex=0
    Buffer TRANSFER_DST + VERTEX_BUFFER: memoryTypeBits=0xF, memoryTypeIndex=0
    Image OPTIMAL TRANSFER_DST + TRANSFER_SRC: memoryTypeBits=0xF, memoryTypeIndex=0
    Image OPTIMAL TRANSFER_DST + SAMPLED: memoryTypeBits=0xF, memoryTypeIndex=0
    Image OPTIMAL SAMPLED + COLOR_ATTACHMENT: memoryTypeBits=0xF, memoryTypeIndex=0
  VMA_MEMORY_USAGE_CPU_ONLY:
    Buffer TRANSFER_DST + TRANSFER_SRC: memoryTypeBits=0xF, memoryTypeIndex=1
    Buffer TRANSFER_DST + VERTEX_BUFFER: memoryTypeBits=0xF, memoryTypeIndex=1
    Image OPTIMAL TRANSFER_DST + TRANSFER_SRC: memoryTypeBits=0xF, memoryTypeIndex=1
    Image OPTIMAL TRANSFER_DST + SAMPLED: memoryTypeBits=0xF, memoryTypeIndex=1
    Image OPTIMAL SAMPLED + COLOR_ATTACHMENT: memoryTypeBits=0xF, memoryTypeIndex=1
  VMA_MEMORY_USAGE_CPU_TO_GPU:
    Buffer TRANSFER_DST + TRANSFER_SRC: memoryTypeBits=0xF, memoryTypeIndex=3
    Buffer TRANSFER_DST + VERTEX_BUFFER: memoryTypeBits=0xF, memoryTypeIndex=3
    Image OPTIMAL TRANSFER_DST + TRANSFER_SRC: memoryTypeBits=0xF, memoryTypeIndex=3
    Image OPTIMAL TRANSFER_DST + SAMPLED: memoryTypeBits=0xF, memoryTypeIndex=3
    Image OPTIMAL SAMPLED + COLOR_ATTACHMENT: memoryTypeBits=0xF, memoryTypeIndex=3
  VMA_MEMORY_USAGE_GPU_TO_CPU:
    Buffer TRANSFER_DST + TRANSFER_SRC: memoryTypeBits=0xF, memoryTypeIndex=2
    Buffer TRANSFER_DST + VERTEX_BUFFER: memoryTypeBits=0xF, memoryTypeIndex=2
    Image OPTIMAL TRANSFER_DST + TRANSFER_SRC: memoryTypeBits=0xF, memoryTypeIndex=2
    Image OPTIMAL TRANSFER_DST + SAMPLED: memoryTypeBits=0xF, memoryTypeIndex=2
    Image OPTIMAL SAMPLED + COLOR_ATTACHMENT: memoryTypeBits=0xF, memoryTypeIndex=2
  VMA_MEMORY_USAGE_CPU_COPY:
    Buffer TRANSFER_DST + TRANSFER_SRC: memoryTypeBits=0xF, memoryTypeIndex=1
    Buffer TRANSFER_DST + VERTEX_BUFFER: memoryTypeBits=0xF, memoryTypeIndex=1
    Image OPTIMAL TRANSFER_DST + TRANSFER_SRC: memoryTypeBits=0xF, memoryTypeIndex=1
    Image OPTIMAL TRANSFER_DST + SAMPLED: memoryTypeBits=0xF, memoryTypeIndex=1
    Image OPTIMAL SAMPLED + COLOR_ATTACHMENT: memoryTypeBits=0xF, memoryTypeIndex=1
  VMA_MEMORY_USAGE_GPU_LAZILY_ALLOCATED:
    Buffer TRANSFER_DST + TRANSFER_SRC: memoryTypeBits=0xF, FAILED with res=-8
    Buffer TRANSFER_DST + VERTEX_BUFFER: memoryTypeBits=0xF, FAILED with res=-8
    Image OPTIMAL TRANSFER_DST + TRANSFER_SRC: memoryTypeBits=0xF, FAILED with res=-8
    Image OPTIMAL TRANSFER_DST + SAMPLED: memoryTypeBits=0xF, FAILED with res=-8
    Image OPTIMAL SAMPLED + COLOR_ATTACHMENT: memoryTypeBits=0xF, FAILED with res=-8
Testing statistics...
Testing aliasing...
  size: max(1572992, 8847488) = 8847488
  alignment: max(65536, 65536) = 65536
  memoryTypeBits: 15 & 15 = 15
Testing allocation aliasing...
Testing mapping...
Testing allocation-memory copy...
Test mapping hysteresis
Testing mapping multithreaded...
Test linear allocator
Manually test linear allocator
Test linear allocator multi block
Test allocation algorithm correctness
Basic test TLSF
Basic test allocate pages
Test buffer device address
Test memory priority
Benchmark algorithms
    Algorithm=TLSF Empty Allocation=MIN_MEMORY FreeOrder=BACKWARD: allocations 0.050787 s, free 0.016624 s
    Algorithm=TLSF Empty Allocation=MIN_TIME FreeOrder=BACKWARD: allocations 0.0164562 s, free 0.0108733 s
    Algorithm=Linear Empty Allocation=Default FreeOrder=BACKWARD: allocations 0.0115937 s, free 0.0088282 s
    Algorithm=TLSF Not empty Allocation=MIN_MEMORY FreeOrder=BACKWARD: allocations 0.0542588 s, free 0.0098114 s
    Algorithm=TLSF Not empty Allocation=MIN_TIME FreeOrder=BACKWARD: allocations 0.0158684 s, free 0.0105534 s
    Algorithm=Linear Not empty Allocation=Default FreeOrder=BACKWARD: allocations 0.0116474 s, free 0.0089315 s
    Algorithm=TLSF Empty Allocation=MIN_MEMORY FreeOrder=FORWARD: allocations 0.0304386 s, free 0.010459 s
    Algorithm=TLSF Empty Allocation=MIN_TIME FreeOrder=FORWARD: allocations 0.0140195 s, free 0.0104108 s
    Algorithm=Linear Empty Allocation=Default FreeOrder=FORWARD: allocations 0.011533 s, free 0.0087669 s
    Algorithm=TLSF Not empty Allocation=MIN_MEMORY FreeOrder=FORWARD: allocations 0.0524279 s, free 0.0107302 s
    Algorithm=TLSF Not empty Allocation=MIN_TIME FreeOrder=FORWARD: allocations 0.0157247 s, free 0.0111186 s
    Algorithm=Linear Not empty Allocation=Default FreeOrder=FORWARD: allocations 0.0115555 s, free 0.0111763 s
Test defragmentation simple
  Persistently mapped option = 0
  Persistently mapped option = 1
Test defragmentation vs mapping
    Pass 0 moving 31 allocations
    Pass 1 moving 42 allocations
    Pass 2 moving 6 allocations
    Defragmentation: moved 59 allocations, 3866624 B, freed 1 memory blocks, 1048576 B
Test defragmentation simple
  Algorithm = Fast
Saving JSON dump to file "Fast_NoMove_Before.json"
Saving JSON dump to file "Fast_NoMove_After.json"
Saving JSON dump to file "Fast_Move_Before.json"
Saving JSON dump to file "Fast_Move_After.json"
  Algorithm = Balanced
Saving JSON dump to file "Balanced_NoMove_Before.json"
Saving JSON dump to file "Balanced_NoMove_After.json"
Saving JSON dump to file "Balanced_Move_Before.json"
Saving JSON dump to file "Balanced_Move_After.json"
  Algorithm = Full
Saving JSON dump to file "Full_NoMove_Before.json"
Saving JSON dump to file "Full_NoMove_After.json"
Saving JSON dump to file "Full_Move_Before.json"
Saving JSON dump to file "Full_Move_After.json"
  Algorithm = Extensive
Saving JSON dump to file "Extensive_NoMove_Before.json"
Saving JSON dump to file "Extensive_NoMove_After.json"
Saving JSON dump to file "Extensive_Move_Before.json"
Saving JSON dump to file "Extensive_Move_After.json"
Defragmentation #0
Moved allocations 51, bytes 41038848
Freed blocks 6, bytes 201326592
Time: 0.01 s
Test defragmentation GPU
Saving JSON dump to file "GPU_defragmentation_A_before.json"
Saving JSON dump to file "GPU_defragmentation_B_after.json"
Test defragmentation incremental basic
Saving JSON dump to file "GPU_defragmentation_incremental_basic_A_before.json"
Saving JSON dump to file "GPU_defragmentation_incremental_basic_B_after.json"
Test defragmentation incremental complex
Saving JSON dump to file "GPU_defragmentation_incremental_complex_A_before.json"
Saving JSON dump to file "GPU_defragmentation_incremental_complex_B_after.json"
MAIN TESTS:
1_thread,Buffers,Small Varying_sizes,Allocate_100%,MinMemory,FORWARD #0
1_thread,Buffers,Small Varying_sizes,Allocate_100%,MinTime,FORWARD #0
1_thread,Buffers,Small Varying_sizes,Allocate_50%+Operations,MinMemory,FORWARD #0
1_thread,Buffers,Small Varying_sizes,Allocate_50%+Operations,MinTime,FORWARD #0
1_thread,Buffers,Small Varying_sizes,Allocate_5%+Operations,MinMemory,FORWARD #0
1_thread,Buffers,Small Varying_sizes,Allocate_5%+Operations,MinTime,FORWARD #0
1_thread,Buffers,Small Constant_sizes,Allocate_100%,MinMemory,FORWARD #0
1_thread,Buffers,Small Constant_sizes,Allocate_100%,MinTime,FORWARD #0
1_thread,Buffers,Small Constant_sizes,Allocate_50%+Operations,MinMemory,FORWARD #0
1_thread,Buffers,Small Constant_sizes,Allocate_50%+Operations,MinTime,FORWARD #0
1_thread,Buffers,Small Constant_sizes,Allocate_5%+Operations,MinMemory,FORWARD #0
1_thread,Buffers,Small Constant_sizes,Allocate_5%+Operations,MinTime,FORWARD #0
1_thread,Buffers,Large Varying_sizes,Allocate_100%,MinMemory,FORWARD #0
1_thread,Buffers,Large Varying_sizes,Allocate_100%,MinTime,FORWARD #0
1_thread,Buffers,Large Varying_sizes,Allocate_50%+Operations,MinMemory,FORWARD #0
1_thread,Buffers,Large Varying_sizes,Allocate_50%+Operations,MinTime,FORWARD #0
1_thread,Buffers,Large Varying_sizes,Allocate_5%+Operations,MinMemory,FORWARD #0
1_thread,Buffers,Large Varying_sizes,Allocate_5%+Operations,MinTime,FORWARD #0
1_thread,Buffers,Large Constant_sizes,Allocate_100%,MinMemory,FORWARD #0
1_thread,Buffers,Large Constant_sizes,Allocate_100%,MinTime,FORWARD #0
1_thread,Buffers,Large Constant_sizes,Allocate_50%+Operations,MinMemory,FORWARD #0
1_thread,Buffers,Large Constant_sizes,Allocate_50%+Operations,MinTime,FORWARD #0
1_thread,Buffers,Large Constant_sizes,Allocate_5%+Operations,MinMemory,FORWARD #0
1_thread,Buffers,Large Constant_sizes,Allocate_5%+Operations,MinTime,FORWARD #0
1_thread,Images,Small Varying_sizes,Allocate_100%,MinMemory,FORWARD #0
1_thread,Images,Small Varying_sizes,Allocate_100%,MinTime,FORWARD #0
1_thread,Images,Small Varying_sizes,Allocate_50%+Operations,MinMemory,FORWARD #0
1_thread,Images,Small Varying_sizes,Allocate_50%+Operations,MinTime,FORWARD #0
1_thread,Images,Small Varying_sizes,Allocate_5%+Operations,MinMemory,FORWARD #0
1_thread,Images,Small Varying_sizes,Allocate_5%+Operations,MinTime,FORWARD #0
1_thread,Images,Small Constant_sizes,Allocate_100%,MinMemory,FORWARD #0
1_thread,Images,Small Constant_sizes,Allocate_100%,MinTime,FORWARD #0
1_thread,Images,Small Constant_sizes,Allocate_50%+Operations,MinMemory,FORWARD #0
1_thread,Images,Small Constant_sizes,Allocate_50%+Operations,MinTime,FORWARD #0
1_thread,Images,Small Constant_sizes,Allocate_5%+Operations,MinMemory,FORWARD #0
1_thread,Images,Small Constant_sizes,Allocate_5%+Operations,MinTime,FORWARD #0
1_thread,Images,Large Varying_sizes,Allocate_100%,MinMemory,FORWARD #0
1_thread,Images,Large Varying_sizes,Allocate_100%,MinTime,FORWARD #0
1_thread,Images,Large Varying_sizes,Allocate_50%+Operations,MinMemory,FORWARD #0
1_thread,Images,Large Varying_sizes,Allocate_50%+Operations,MinTime,FORWARD #0
1_thread,Images,Large Varying_sizes,Allocate_5%+Operations,MinMemory,FORWARD #0
1_thread,Images,Large Varying_sizes,Allocate_5%+Operations,MinTime,FORWARD #0
1_thread,Images,Large Constant_sizes,Allocate_100%,MinMemory,FORWARD #0
1_thread,Images,Large Constant_sizes,Allocate_100%,MinTime,FORWARD #0
1_thread,Images,Large Constant_sizes,Allocate_50%+Operations,MinMemory,FORWARD #0
1_thread,Images,Large Constant_sizes,Allocate_50%+Operations,MinTime,FORWARD #0
1_thread,Images,Large Constant_sizes,Allocate_5%+Operations,MinMemory,FORWARD #0
1_thread,Images,Large Constant_sizes,Allocate_5%+Operations,MinTime,FORWARD #0
16_threads+0%_common,Buffers,Small Varying_sizes,Allocate_100%,MinMemory,FORWARD #0
16_threads+0%_common,Buffers,Small Varying_sizes,Allocate_100%,MinTime,FORWARD #0
16_threads+0%_common,Buffers,Small Varying_sizes,Allocate_50%+Operations,MinMemory,FORWARD #0
16_threads+0%_common,Buffers,Small Varying_sizes,Allocate_50%+Operations,MinTime,FORWARD #0
16_threads+0%_common,Buffers,Small Varying_sizes,Allocate_5%+Operations,MinMemory,FORWARD #0
16_threads+0%_common,Buffers,Small Varying_sizes,Allocate_5%+Operations,MinTime,FORWARD #0
16_threads+0%_common,Buffers,Small Constant_sizes,Allocate_100%,MinMemory,FORWARD #0
16_threads+0%_common,Buffers,Small Constant_sizes,Allocate_100%,MinTime,FORWARD #0
16_threads+0%_common,Buffers,Small Constant_sizes,Allocate_50%+Operations,MinMemory,FORWARD #0
16_threads+0%_common,Buffers,Small Constant_sizes,Allocate_50%+Operations,MinTime,FORWARD #0
16_threads+0%_common,Buffers,Small Constant_sizes,Allocate_5%+Operations,MinMemory,FORWARD #0
16_threads+0%_common,Buffers,Small Constant_sizes,Allocate_5%+Operations,MinTime,FORWARD #0
16_threads+0%_common,Buffers,Large Varying_sizes,Allocate_100%,MinMemory,FORWARD #0
16_threads+0%_common,Buffers,Large Varying_sizes,Allocate_100%,MinTime,FORWARD #0
16_threads+0%_common,Buffers,Large Varying_sizes,Allocate_50%+Operations,MinMemory,FORWARD #0
16_threads+0%_common,Buffers,Large Varying_sizes,Allocate_50%+Operations,MinTime,FORWARD #0
16_threads+0%_common,Buffers,Large Varying_sizes,Allocate_5%+Operations,MinMemory,FORWARD #0
16_threads+0%_common,Buffers,Large Varying_sizes,Allocate_5%+Operations,MinTime,FORWARD #0
16_threads+0%_common,Buffers,Large Constant_sizes,Allocate_100%,MinMemory,FORWARD #0
16_threads+0%_common,Buffers,Large Constant_sizes,Allocate_100%,MinTime,FORWARD #0
16_threads+0%_common,Buffers,Large Constant_sizes,Allocate_50%+Operations,MinMemory,FORWARD #0
16_threads+0%_common,Buffers,Large Constant_sizes,Allocate_50%+Operations,MinTime,FORWARD #0
16_threads+0%_common,Buffers,Large Constant_sizes,Allocate_5%+Operations,MinMemory,FORWARD #0
16_threads+0%_common,Buffers,Large Constant_sizes,Allocate_5%+Operations,MinTime,FORWARD #0
16_threads+0%_common,Images,Small Varying_sizes,Allocate_100%,MinMemory,FORWARD #0
16_threads+0%_common,Images,Small Varying_sizes,Allocate_100%,MinTime,FORWARD #0
16_threads+0%_common,Images,Small Varying_sizes,Allocate_50%+Operations,MinMemory,FORWARD #0
16_threads+0%_common,Images,Small Varying_sizes,Allocate_50%+Operations,MinTime,FORWARD #0
16_threads+0%_common,Images,Small Varying_sizes,Allocate_5%+Operations,MinMemory,FORWARD #0
16_threads+0%_common,Images,Small Varying_sizes,Allocate_5%+Operations,MinTime,FORWARD #0
16_threads+0%_common,Images,Small Constant_sizes,Allocate_100%,MinMemory,FORWARD #0
16_threads+0%_common,Images,Small Constant_sizes,Allocate_100%,MinTime,FORWARD #0
16_threads+0%_common,Images,Small Constant_sizes,Allocate_50%+Operations,MinMemory,FORWARD #0
16_threads+0%_common,Images,Small Constant_sizes,Allocate_50%+Operations,MinTime,FORWARD #0
16_threads+0%_common,Images,Small Constant_sizes,Allocate_5%+Operations,MinMemory,FORWARD #0
16_threads+0%_common,Images,Small Constant_sizes,Allocate_5%+Operations,MinTime,FORWARD #0
16_threads+0%_common,Images,Large Varying_sizes,Allocate_100%,MinMemory,FORWARD #0
16_threads+0%_common,Images,Large Varying_sizes,Allocate_100%,MinTime,FORWARD #0
16_threads+0%_common,Images,Large Varying_sizes,Allocate_50%+Operations,MinMemory,FORWARD #0
16_threads+0%_common,Images,Large Varying_sizes,Allocate_50%+Operations,MinTime,FORWARD #0
16_threads+0%_common,Images,Large Varying_sizes,Allocate_5%+Operations,MinMemory,FORWARD #0
16_threads+0%_common,Images,Large Varying_sizes,Allocate_5%+Operations,MinTime,FORWARD #0
16_threads+0%_common,Images,Large Constant_sizes,Allocate_100%,MinMemory,FORWARD #0
16_threads+0%_common,Images,Large Constant_sizes,Allocate_100%,MinTime,FORWARD #0
16_threads+0%_common,Images,Large Constant_sizes,Allocate_50%+Operations,MinMemory,FORWARD #0
16_threads+0%_common,Images,Large Constant_sizes,Allocate_50%+Operations,MinTime,FORWARD #0
16_threads+0%_common,Images,Large Constant_sizes,Allocate_5%+Operations,MinMemory,FORWARD #0
16_threads+0%_common,Images,Large Constant_sizes,Allocate_5%+Operations,MinTime,FORWARD #0
16_threads+50%_common,Buffers,Small Varying_sizes,Allocate_100%,MinMemory,FORWARD #0
16_threads+50%_common,Buffers,Small Varying_sizes,Allocate_100%,MinTime,FORWARD #0
16_threads+50%_common,Buffers,Small Varying_sizes,Allocate_50%+Operations,MinMemory,FORWARD #0
16_threads+50%_common,Buffers,Small Varying_sizes,Allocate_50%+Operations,MinTime,FORWARD #0
16_threads+50%_common,Buffers,Small Varying_sizes,Allocate_5%+Operations,MinMemory,FORWARD #0
16_threads+50%_common,Buffers,Small Varying_sizes,Allocate_5%+Operations,MinTime,FORWARD #0
16_threads+50%_common,Buffers,Small Constant_sizes,Allocate_100%,MinMemory,FORWARD #0
16_threads+50%_common,Buffers,Small Constant_sizes,Allocate_100%,MinTime,FORWARD #0
16_threads+50%_common,Buffers,Small Constant_sizes,Allocate_50%+Operations,MinMemory,FORWARD #0
16_threads+50%_common,Buffers,Small Constant_sizes,Allocate_50%+Operations,MinTime,FORWARD #0
16_threads+50%_common,Buffers,Small Constant_sizes,Allocate_5%+Operations,MinMemory,FORWARD #0
16_threads+50%_common,Buffers,Small Constant_sizes,Allocate_5%+Operations,MinTime,FORWARD #0
16_threads+50%_common,Buffers,Large Varying_sizes,Allocate_100%,MinMemory,FORWARD #0
16_threads+50%_common,Buffers,Large Varying_sizes,Allocate_100%,MinTime,FORWARD #0
16_threads+50%_common,Buffers,Large Varying_sizes,Allocate_50%+Operations,MinMemory,FORWARD #0
16_threads+50%_common,Buffers,Large Varying_sizes,Allocate_50%+Operations,MinTime,FORWARD #0
16_threads+50%_common,Buffers,Large Varying_sizes,Allocate_5%+Operations,MinMemory,FORWARD #0
16_threads+50%_common,Buffers,Large Varying_sizes,Allocate_5%+Operations,MinTime,FORWARD #0
16_threads+50%_common,Buffers,Large Constant_sizes,Allocate_100%,MinMemory,FORWARD #0
16_threads+50%_common,Buffers,Large Constant_sizes,Allocate_100%,MinTime,FORWARD #0
16_threads+50%_common,Buffers,Large Constant_sizes,Allocate_50%+Operations,MinMemory,FORWARD #0
16_threads+50%_common,Buffers,Large Constant_sizes,Allocate_50%+Operations,MinTime,FORWARD #0
16_threads+50%_common,Buffers,Large Constant_sizes,Allocate_5%+Operations,MinMemory,FORWARD #0
16_threads+50%_common,Buffers,Large Constant_sizes,Allocate_5%+Operations,MinTime,FORWARD #0
16_threads+50%_common,Images,Small Varying_sizes,Allocate_100%,MinMemory,FORWARD #0
16_threads+50%_common,Images,Small Varying_sizes,Allocate_100%,MinTime,FORWARD #0
16_threads+50%_common,Images,Small Varying_sizes,Allocate_50%+Operations,MinMemory,FORWARD #0
16_threads+50%_common,Images,Small Varying_sizes,Allocate_50%+Operations,MinTime,FORWARD #0
16_threads+50%_common,Images,Small Varying_sizes,Allocate_5%+Operations,MinMemory,FORWARD #0
16_threads+50%_common,Images,Small Varying_sizes,Allocate_5%+Operations,MinTime,FORWARD #0
16_threads+50%_common,Images,Small Constant_sizes,Allocate_100%,MinMemory,FORWARD #0
16_threads+50%_common,Images,Small Constant_sizes,Allocate_100%,MinTime,FORWARD #0
16_threads+50%_common,Images,Small Constant_sizes,Allocate_50%+Operations,MinMemory,FORWARD #0
16_threads+50%_common,Images,Small Constant_sizes,Allocate_50%+Operations,MinTime,FORWARD #0
16_threads+50%_common,Images,Small Constant_sizes,Allocate_5%+Operations,MinMemory,FORWARD #0
16_threads+50%_common,Images,Small Constant_sizes,Allocate_5%+Operations,MinTime,FORWARD #0
16_threads+50%_common,Images,Large Varying_sizes,Allocate_100%,MinMemory,FORWARD #0
16_threads+50%_common,Images,Large Varying_sizes,Allocate_100%,MinTime,FORWARD #0
16_threads+50%_common,Images,Large Varying_sizes,Allocate_50%+Operations,MinMemory,FORWARD #0
16_threads+50%_common,Images,Large Varying_sizes,Allocate_50%+Operations,MinTime,FORWARD #0
16_threads+50%_common,Images,Large Varying_sizes,Allocate_5%+Operations,MinMemory,FORWARD #0
16_threads+50%_common,Images,Large Varying_sizes,Allocate_5%+Operations,MinTime,FORWARD #0
16_threads+50%_common,Images,Large Constant_sizes,Allocate_100%,MinMemory,FORWARD #0
16_threads+50%_common,Images,Large Constant_sizes,Allocate_100%,MinTime,FORWARD #0
16_threads+50%_common,Images,Large Constant_sizes,Allocate_50%+Operations,MinMemory,FORWARD #0
16_threads+50%_common,Images,Large Constant_sizes,Allocate_50%+Operations,MinTime,FORWARD #0
16_threads+50%_common,Images,Large Constant_sizes,Allocate_5%+Operations,MinMemory,FORWARD #0
16_threads+50%_common,Images,Large Constant_sizes,Allocate_5%+Operations,MinTime,FORWARD #0
POOL TESTS:
1_thread Buffers Small Varying_sizes Subscription_66% #0
1_thread Buffers Small Varying_sizes Subscription_133% #0
1_thread Buffers Small Varying_sizes Subscription_100% #0
1_thread Buffers Small Constant_sizes Subscription_66% #0
1_thread Buffers Small Constant_sizes Subscription_133% #0
1_thread Buffers Small Constant_sizes Subscription_100% #0
1_thread Buffers Large Varying_sizes Subscription_66% #0
1_thread Buffers Large Varying_sizes Subscription_133% #0
1_thread Buffers Large Varying_sizes Subscription_100% #0
1_thread Buffers Large Constant_sizes Subscription_66% #0
1_thread Buffers Large Constant_sizes Subscription_133% #0
1_thread Buffers Large Constant_sizes Subscription_100% #0
1_thread Images Small Varying_sizes Subscription_66% #0
1_thread Images Small Varying_sizes Subscription_133% #0
1_thread Images Small Varying_sizes Subscription_100% #0
1_thread Images Small Constant_sizes Subscription_66% #0
1_thread Images Small Constant_sizes Subscription_133% #0
1_thread Images Small Constant_sizes Subscription_100% #0
1_thread Images Large Varying_sizes Subscription_66% #0
1_thread Images Large Varying_sizes Subscription_133% #0
1_thread Images Large Varying_sizes Subscription_100% #0
1_thread Images Large Constant_sizes Subscription_66% #0
1_thread Images Large Constant_sizes Subscription_133% #0
1_thread Images Large Constant_sizes Subscription_100% #0
16_threads Buffers Small Varying_sizes Subscription_66% #0
16_threads Buffers Small Varying_sizes Subscription_133% #0
16_threads Buffers Small Varying_sizes Subscription_100% #0
16_threads Buffers Small Constant_sizes Subscription_66% #0
16_threads Buffers Small Constant_sizes Subscription_133% #0
16_threads Buffers Small Constant_sizes Subscription_100% #0
16_threads Buffers Large Varying_sizes Subscription_66% #0
16_threads Buffers Large Varying_sizes Subscription_133% #0
16_threads Buffers Large Varying_sizes Subscription_100% #0
16_threads Buffers Large Constant_sizes Subscription_66% #0
16_threads Buffers Large Constant_sizes Subscription_133% #0
16_threads Buffers Large Constant_sizes Subscription_100% #0
16_threads Images Small Varying_sizes Subscription_66% #0
16_threads Images Small Varying_sizes Subscription_133% #0
16_threads Images Small Varying_sizes Subscription_100% #0
16_threads Images Small Constant_sizes Subscription_66% #0
16_threads Images Small Constant_sizes Subscription_133% #0
16_threads Images Small Constant_sizes Subscription_100% #0
16_threads Images Large Varying_sizes Subscription_66% #0
16_threads Images Large Varying_sizes Subscription_133% #0
16_threads Images Large Varying_sizes Subscription_100% #0
16_threads Images Large Constant_sizes Subscription_66% #0
16_threads Images Large Constant_sizes Subscription_133% #0
16_threads Images Large Constant_sizes Subscription_100% #0
Done, all PASSED.

Crash when testing on NVidia RTX 3090 (infinite loop of validation errors)

TESTING:
Test JSON
Saving JSON dump to file "JSON_VULKAN.json"
Test basics
Test vnaGetAllocatorInfo
Test virtual blocks
Test virtual blocks algorithms
Benchmark virtual blocks algorithms
Alignment,Algorithm,Strategy,Alloc time ms,Random operation time ms,Free time ms
1,TLSF,Default,0.8683,1.9644,0.6968
1,Linear,Default,0.4501,1.9759,1.0393
1,TLSF,MIN_MEMORY,0.5542,1.8697,0.6747
1,Linear,MIN_MEMORY,0.4277,1.9545,1.0324
1,TLSF,MIN_TIME,0.4838,1.7939,0.7068
1,Linear,MIN_TIME,0.5023,1.9511,1.0267
16,TLSF,Default,1.475,2.3691,0.7475
16,Linear,Default,0.44,1.9559,1.0447
16,TLSF,MIN_MEMORY,1.8215,3.5448,0.7413
16,Linear,MIN_MEMORY,0.4307,1.9208,1.0501
16,TLSF,MIN_TIME,0.7536,2.287,0.7677
16,Linear,MIN_TIME,0.4334,1.9472,1.0469
64,TLSF,Default,1.553,3.9169,0.7531
64,Linear,Default,0.4387,1.9565,1.0517
64,TLSF,MIN_MEMORY,1.8469,4.536,0.8009
64,Linear,MIN_MEMORY,0.433,1.951,1.0555
64,TLSF,MIN_TIME,0.7629,2.2192,0.7585
64,Linear,MIN_TIME,0.4442,1.9544,1.0469
256,TLSF,Default,1.8158,4.5182,0.7826
256,Linear,Default,0.4409,1.9617,1.0433
256,TLSF,MIN_MEMORY,1.771,4.434,0.7337
256,Linear,MIN_MEMORY,0.4375,1.9494,1.0511
256,TLSF,MIN_TIME,0.7781,2.1551,0.7544
256,Linear,MIN_TIME,0.4368,1.9581,1.0577
Test allocation versus resource size
Test Pool MinBlockCount
Test Pool MinAllocationAlignment
Test pools and allocation parameters
Test heap size limit
Testing memory usage:
  VMA_MEMORY_USAGE_UNKNOWN:
    Buffer TRANSFER_DST + TRANSFER_SRC: memoryTypeBits=0x3B, memoryTypeIndex=0
    Buffer TRANSFER_DST + VERTEX_BUFFER: memoryTypeBits=0x3B, memoryTypeIndex=0
    Image OPTIMAL TRANSFER_DST + TRANSFER_SRC: memoryTypeBits=0x3, memoryTypeIndex=0
    Image OPTIMAL TRANSFER_DST + SAMPLED: memoryTypeBits=0x3, memoryTypeIndex=0
    Image OPTIMAL SAMPLED + COLOR_ATTACHMENT: memoryTypeBits=0x3, memoryTypeIndex=0
  VMA_MEMORY_USAGE_GPU_ONLY:
    Buffer TRANSFER_DST + TRANSFER_SRC: memoryTypeBits=0x3B, memoryTypeIndex=1
    Buffer TRANSFER_DST + VERTEX_BUFFER: memoryTypeBits=0x3B, memoryTypeIndex=1
    Image OPTIMAL TRANSFER_DST + TRANSFER_SRC: memoryTypeBits=0x3, memoryTypeIndex=1
    Image OPTIMAL TRANSFER_DST + SAMPLED: memoryTypeBits=0x3, memoryTypeIndex=1
    Image OPTIMAL SAMPLED + COLOR_ATTACHMENT: memoryTypeBits=0x3, memoryTypeIndex=1
  VMA_MEMORY_USAGE_CPU_ONLY:
    Buffer TRANSFER_DST + TRANSFER_SRC: memoryTypeBits=0x3B, memoryTypeIndex=3
    Buffer TRANSFER_DST + VERTEX_BUFFER: memoryTypeBits=0x3B, memoryTypeIndex=3
    Image OPTIMAL TRANSFER_DST + TRANSFER_SRC: memoryTypeBits=0x3, FAILED with res=-8
    Image OPTIMAL TRANSFER_DST + SAMPLED: memoryTypeBits=0x3, FAILED with res=-8
    Image OPTIMAL SAMPLED + COLOR_ATTACHMENT: memoryTypeBits=0x3, FAILED with res=-8
  VMA_MEMORY_USAGE_CPU_TO_GPU:
    Buffer TRANSFER_DST + TRANSFER_SRC: memoryTypeBits=0x3B, memoryTypeIndex=5
    Buffer TRANSFER_DST + VERTEX_BUFFER: memoryTypeBits=0x3B, memoryTypeIndex=5
    Image OPTIMAL TRANSFER_DST + TRANSFER_SRC: memoryTypeBits=0x3, FAILED with res=-8
    Image OPTIMAL TRANSFER_DST + SAMPLED: memoryTypeBits=0x3, FAILED with res=-8
    Image OPTIMAL SAMPLED + COLOR_ATTACHMENT: memoryTypeBits=0x3, FAILED with res=-8
  VMA_MEMORY_USAGE_GPU_TO_CPU:
    Buffer TRANSFER_DST + TRANSFER_SRC: memoryTypeBits=0x3B, memoryTypeIndex=4
    Buffer TRANSFER_DST + VERTEX_BUFFER: memoryTypeBits=0x3B, memoryTypeIndex=4
    Image OPTIMAL TRANSFER_DST + TRANSFER_SRC: memoryTypeBits=0x3, FAILED with res=-8
    Image OPTIMAL TRANSFER_DST + SAMPLED: memoryTypeBits=0x3, FAILED with res=-8
    Image OPTIMAL SAMPLED + COLOR_ATTACHMENT: memoryTypeBits=0x3, FAILED with res=-8
  VMA_MEMORY_USAGE_CPU_COPY:
    Buffer TRANSFER_DST + TRANSFER_SRC: memoryTypeBits=0x3B, memoryTypeIndex=0
    Buffer TRANSFER_DST + VERTEX_BUFFER: memoryTypeBits=0x3B, memoryTypeIndex=0
    Image OPTIMAL TRANSFER_DST + TRANSFER_SRC: memoryTypeBits=0x3, memoryTypeIndex=0
    Image OPTIMAL TRANSFER_DST + SAMPLED: memoryTypeBits=0x3, memoryTypeIndex=0
    Image OPTIMAL SAMPLED + COLOR_ATTACHMENT: memoryTypeBits=0x3, memoryTypeIndex=0
  VMA_MEMORY_USAGE_GPU_LAZILY_ALLOCATED:
    Buffer TRANSFER_DST + TRANSFER_SRC: memoryTypeBits=0x3B, FAILED with res=-8
    Buffer TRANSFER_DST + VERTEX_BUFFER: memoryTypeBits=0x3B, FAILED with res=-8
    Image OPTIMAL TRANSFER_DST + TRANSFER_SRC: memoryTypeBits=0x3, FAILED with res=-8
    Image OPTIMAL TRANSFER_DST + SAMPLED: memoryTypeBits=0x3, FAILED with res=-8
    Image OPTIMAL SAMPLED + COLOR_ATTACHMENT: memoryTypeBits=0x3, FAILED with res=-8
Testing statistics...
Testing aliasing...
  size: max(1399808, 8847360) = 8847360
  alignment: max(1024, 1024) = 1024
  memoryTypeBits: 3 & 3 = 3
Testing allocation aliasing...
Testing mapping...
Testing allocation-memory copy...
Test mapping hysteresis
Test VK_KHR_maintenance5
Testing mapping multithreaded...
Test linear allocator
Manually test linear allocator
Test linear allocator multi block
Test allocation algorithm correctness
Basic test TLSF
Basic test allocate pages
Test buffer device address
Test memory priority
Benchmark algorithms
    Algorithm=TLSF Empty Allocation=MIN_MEMORY FreeOrder=BACKWARD: allocations 0.0304009 s, free 0.0090137 s
    Algorithm=TLSF Empty Allocation=MIN_TIME FreeOrder=BACKWARD: allocations 0.0139352 s, free 0.0089325 s
    Algorithm=Linear Empty Allocation=Default FreeOrder=BACKWARD: allocations 0.011355 s, free 0.0084895 s
    Algorithm=TLSF Not empty Allocation=MIN_MEMORY FreeOrder=BACKWARD: allocations 0.0486588 s, free 0.0090518 s
    Algorithm=TLSF Not empty Allocation=MIN_TIME FreeOrder=BACKWARD: allocations 0.0158069 s, free 0.0106145 s
    Algorithm=Linear Not empty Allocation=Default FreeOrder=BACKWARD: allocations 0.0113662 s, free 0.0086673 s
    Algorithm=TLSF Empty Allocation=MIN_MEMORY FreeOrder=FORWARD: allocations 0.0297251 s, free 0.0101225 s
    Algorithm=TLSF Empty Allocation=MIN_TIME FreeOrder=FORWARD: allocations 0.0139524 s, free 0.0099312 s
    Algorithm=Linear Empty Allocation=Default FreeOrder=FORWARD: allocations 0.011273 s, free 0.008372 s
    Algorithm=TLSF Not empty Allocation=MIN_MEMORY FreeOrder=FORWARD: allocations 0.0494525 s, free 0.0103591 s
    Algorithm=TLSF Not empty Allocation=MIN_TIME FreeOrder=FORWARD: allocations 0.0158748 s, free 0.010693 s
    Algorithm=Linear Not empty Allocation=Default FreeOrder=FORWARD: allocations 0.0113684 s, free 0.0108735 s
Test defragmentation simple
  Persistently mapped option = 0
  Persistently mapped option = 1
Test defragmentation vs mapping
    Pass 0 moving 31 allocations
    Pass 1 moving 6 allocations
    Defragmentation: moved 31 allocations, 2031616 B, freed 5 memory blocks, 5242880 B
Test defragmentation simple
  Algorithm = Fast
VUID-vkBindImageMemory-memory-01047 ║ Validation Error: [ VUID-vkBindImageMemory-memory-01047 ] Object 0: handle = 0xec3f770000002066, type = VK_OBJECT_TYPE_DEVICE_MEMORY; | MessageID = 0xa316549f | vkBindImageMemory(): image require memoryTypeBits (0x3) but VkDeviceMemory 0xec3f770000002066[] was allocated with memoryTypeIndex (4). The Vulkan spec states: memory must have been allocated using one of the memory types allowed in the memoryTypeBits member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements with image (https://vulkan.lunarg.com/doc/view/1.3.275.0/windows/1.3-extensions/vkspec.html#VUID-vkBindImageMemory-memory-01047)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working investigating Still to be determined whether we work on this
Projects
None yet
Development

No branches or pull requests

2 participants