aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominik Witczak <Dominik.Witczak@amd.com>2015-09-22 18:25:33 +0200
committerCourtney Goeltzenleuchter <courtney@LunarG.com>2015-09-25 09:46:53 -0600
commit2fe1c70a5b44ee5efd25da9fb391cdd3b218d4de (patch)
treec9c82b5e65f4758b3a13a803e496fbbe463e43dd
parentcfffe4ee839f9caf157861cf5608526b062bd7ce (diff)
downloadusermoji-2fe1c70a5b44ee5efd25da9fb391cdd3b218d4de.tar.xz
cube/tri: Changed invalid <size> argument value for vkMapMemory()
-rw-r--r--demos/cube.c57
-rw-r--r--demos/tri.c4
2 files changed, 29 insertions, 32 deletions
diff --git a/demos/cube.c b/demos/cube.c
index 35a28655..884c2b05 100644
--- a/demos/cube.c
+++ b/demos/cube.c
@@ -103,6 +103,7 @@ struct texture_object {
VkImage image;
VkImageLayout imageLayout;
+ VkMemoryAllocInfo mem_alloc;
VkDeviceMemory mem;
VkImageView view;
int32_t tex_width, tex_height;
@@ -353,6 +354,7 @@ struct demo {
VkFormat format;
VkImage image;
+ VkMemoryAllocInfo mem_alloc;
VkDeviceMemory mem;
VkImageView view;
} depth;
@@ -361,6 +363,7 @@ struct demo {
struct {
VkBuffer buf;
+ VkMemoryAllocInfo mem_alloc;
VkDeviceMemory mem;
VkDescriptorInfo desc;
} uniform_data;
@@ -594,7 +597,7 @@ void demo_update_data_buffer(struct demo *demo)
mat4x4_rotate(demo->model_matrix, Model, 0.0f, 1.0f, 0.0f, (float)degreesToRadians(demo->spin_angle));
mat4x4_mul(MVP, VP, demo->model_matrix);
- err = vkMapMemory(demo->device, demo->uniform_data.mem, 0, 0, 0, (void **) &pData);
+ err = vkMapMemory(demo->device, demo->uniform_data.mem, 0, demo->uniform_data.mem_alloc.allocationSize, 0, (void **) &pData);
assert(!err);
memcpy(pData, (const void*) &MVP[0][0], matrixSize);
@@ -843,12 +846,7 @@ static void demo_prepare_depth(struct demo *demo)
.usage = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,
.flags = 0,
};
- VkMemoryAllocInfo mem_alloc = {
- .sType = VK_STRUCTURE_TYPE_MEMORY_ALLOC_INFO,
- .pNext = NULL,
- .allocationSize = 0,
- .memoryTypeIndex = 0,
- };
+
VkImageViewCreateInfo view = {
.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,
.pNext = NULL,
@@ -878,15 +876,19 @@ static void demo_prepare_depth(struct demo *demo)
err = vkGetImageMemoryRequirements(demo->device,
demo->depth.image, &mem_reqs);
- mem_alloc.allocationSize = mem_reqs.size;
+ demo->depth.mem_alloc.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOC_INFO;
+ demo->depth.mem_alloc.pNext = NULL;
+ demo->depth.mem_alloc.allocationSize = mem_reqs.size;
+ demo->depth.mem_alloc.memoryTypeIndex = 0;
+
err = memory_type_from_properties(demo,
mem_reqs.memoryTypeBits,
VK_MEMORY_PROPERTY_DEVICE_ONLY,
- &mem_alloc.memoryTypeIndex);
+ &demo->depth.mem_alloc.memoryTypeIndex);
assert(!err);
/* allocate memory */
- err = vkAllocMemory(demo->device, &mem_alloc, &demo->depth.mem);
+ err = vkAllocMemory(demo->device, &demo->depth.mem_alloc, &demo->depth.mem);
assert(!err);
/* bind memory */
@@ -983,12 +985,6 @@ static void demo_prepare_texture_image(struct demo *demo,
.usage = usage,
.flags = 0,
};
- VkMemoryAllocInfo mem_alloc = {
- .sType = VK_STRUCTURE_TYPE_MEMORY_ALLOC_INFO,
- .pNext = NULL,
- .allocationSize = 0,
- .memoryTypeIndex = 0,
- };
VkMemoryRequirements mem_reqs;
@@ -999,13 +995,16 @@ static void demo_prepare_texture_image(struct demo *demo,
err = vkGetImageMemoryRequirements(demo->device, tex_obj->image, &mem_reqs);
assert(!err);
- mem_alloc.allocationSize = mem_reqs.size;
+ tex_obj->mem_alloc.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOC_INFO;
+ tex_obj->mem_alloc.pNext = NULL;
+ tex_obj->mem_alloc.allocationSize = mem_reqs.size;
+ tex_obj->mem_alloc.memoryTypeIndex = 0;
- err = memory_type_from_properties(demo, mem_reqs.memoryTypeBits, mem_props, &mem_alloc.memoryTypeIndex);
+ err = memory_type_from_properties(demo, mem_reqs.memoryTypeBits, mem_props, &tex_obj->mem_alloc.memoryTypeIndex);
assert(!err);
/* allocate memory */
- err = vkAllocMemory(demo->device, &mem_alloc,
+ err = vkAllocMemory(demo->device, &tex_obj->mem_alloc,
&(tex_obj->mem));
assert(!err);
@@ -1026,7 +1025,7 @@ static void demo_prepare_texture_image(struct demo *demo,
err = vkGetImageSubresourceLayout(demo->device, tex_obj->image, &subres, &layout);
assert(!err);
- err = vkMapMemory(demo->device, tex_obj->mem, 0, 0, 0, &data);
+ err = vkMapMemory(demo->device, tex_obj->mem, 0, tex_obj->mem_alloc.allocationSize, 0, &data);
assert(!err);
if (!loadTexture(filename, data, &layout, &tex_width, &tex_height)) {
@@ -1163,12 +1162,6 @@ static void demo_prepare_textures(struct demo *demo)
void demo_prepare_cube_data_buffer(struct demo *demo)
{
VkBufferCreateInfo buf_info;
- VkMemoryAllocInfo alloc_info = {
- .sType = VK_STRUCTURE_TYPE_MEMORY_ALLOC_INFO,
- .pNext = NULL,
- .allocationSize = 0,
- .memoryTypeIndex = 0,
- };
VkMemoryRequirements mem_reqs;
uint8_t *pData;
int i;
@@ -1202,17 +1195,21 @@ void demo_prepare_cube_data_buffer(struct demo *demo)
err = vkGetBufferMemoryRequirements(demo->device, demo->uniform_data.buf, &mem_reqs);
assert(!err);
- alloc_info.allocationSize = mem_reqs.size;
+ demo->uniform_data.mem_alloc.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOC_INFO;
+ demo->uniform_data.mem_alloc.pNext = NULL;
+ demo->uniform_data.mem_alloc.allocationSize = mem_reqs.size;
+ demo->uniform_data.mem_alloc.memoryTypeIndex = 0;
+
err = memory_type_from_properties(demo,
mem_reqs.memoryTypeBits,
VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT,
- &alloc_info.memoryTypeIndex);
+ &demo->uniform_data.mem_alloc.memoryTypeIndex);
assert(!err);
- err = vkAllocMemory(demo->device, &alloc_info, &(demo->uniform_data.mem));
+ err = vkAllocMemory(demo->device, &demo->uniform_data.mem_alloc, &(demo->uniform_data.mem));
assert(!err);
- err = vkMapMemory(demo->device, demo->uniform_data.mem, 0, 0, 0, (void **) &pData);
+ err = vkMapMemory(demo->device, demo->uniform_data.mem, 0, demo->uniform_data.mem_alloc.allocationSize, 0, (void **) &pData);
assert(!err);
memcpy(pData, &data, sizeof data);
diff --git a/demos/tri.c b/demos/tri.c
index f3749cbb..e50b0912 100644
--- a/demos/tri.c
+++ b/demos/tri.c
@@ -784,7 +784,7 @@ static void demo_prepare_texture_image(struct demo *demo,
err = vkGetImageSubresourceLayout(demo->device, tex_obj->image, &subres, &layout);
assert(!err);
- err = vkMapMemory(demo->device, tex_obj->mem, 0, 0, 0, &data);
+ err = vkMapMemory(demo->device, tex_obj->mem, 0, mem_alloc.allocationSize, 0, &data);
assert(!err);
for (y = 0; y < tex_height; y++) {
@@ -964,7 +964,7 @@ static void demo_prepare_vertices(struct demo *demo)
err = vkAllocMemory(demo->device, &mem_alloc, &demo->vertices.mem);
assert(!err);
- err = vkMapMemory(demo->device, demo->vertices.mem, 0, 0, 0, &data);
+ err = vkMapMemory(demo->device, demo->vertices.mem, 0, mem_alloc.allocationSize, 0, &data);
assert(!err);
memcpy(data, vb, sizeof(vb));