tests: Fix unexpected errors from new VU checks

Some previous tests were not respecting alignment restrictions; now they do.
diff --git a/tests/layer_validation_tests.cpp b/tests/layer_validation_tests.cpp
index 0840cd2..12c7f7a 100644
--- a/tests/layer_validation_tests.cpp
+++ b/tests/layer_validation_tests.cpp
@@ -658,7 +658,7 @@
 
             VkMemoryAllocateInfo memory_allocate_info = {};
             memory_allocate_info.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO;
-            memory_allocate_info.allocationSize = memory_requirements.size;
+            memory_allocate_info.allocationSize = memory_requirements.size + eOffsetAlignment;
             bool pass = aVulkanDevice->phy().set_memory_type(memory_requirements.memoryTypeBits, &memory_allocate_info,
                                                              VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT);
             if (!pass) {
@@ -9824,11 +9824,11 @@
     mem_alloc.allocationSize = ub_ci.size + sb_ci.size + 1024;  // additional buffer for offset
     mem_alloc.memoryTypeIndex = 0;
 
-    VkMemoryRequirements mem_reqs;
-    vkGetBufferMemoryRequirements(m_device->device(), uniform_buffer, &mem_reqs);
-    bool pass = m_device->phy().set_memory_type(mem_reqs.memoryTypeBits, &mem_alloc, 0);
-    vkGetBufferMemoryRequirements(m_device->device(), storage_buffer, &mem_reqs);
-    pass &= m_device->phy().set_memory_type(mem_reqs.memoryTypeBits, &mem_alloc, 0);
+    VkMemoryRequirements ub_mem_reqs, sb_mem_reqs;
+    vkGetBufferMemoryRequirements(m_device->device(), uniform_buffer, &ub_mem_reqs);
+    bool pass = m_device->phy().set_memory_type(ub_mem_reqs.memoryTypeBits, &mem_alloc, 0);
+    vkGetBufferMemoryRequirements(m_device->device(), storage_buffer, &sb_mem_reqs);
+    pass &= m_device->phy().set_memory_type(sb_mem_reqs.memoryTypeBits, &mem_alloc, 0);
     if (!pass) {
         vkDestroyDescriptorSetLayout(m_device->device(), ds_layout, NULL);
         vkDestroyBuffer(m_device->device(), uniform_buffer, NULL);
@@ -9850,9 +9850,7 @@
     ASSERT_VK_SUCCESS(err);
     err = vkBindBufferMemory(m_device->device(), uniform_buffer, mem, 0);
     ASSERT_VK_SUCCESS(err);
-    auto sb_offset = ub_ci.size + 1024;
-    // Verify offset alignment, I know there's a bit trick to do this but it escapes me
-    sb_offset = (sb_offset % mem_reqs.alignment) ? sb_offset - (sb_offset % mem_reqs.alignment) : sb_offset;
+    auto sb_offset = (ub_ci.size + sb_mem_reqs.alignment - 1) & ~(sb_mem_reqs.alignment - 1);
     err = vkBindBufferMemory(m_device->device(), storage_buffer, mem, sb_offset);
     ASSERT_VK_SUCCESS(err);