From: Pyry Haulos Date: Tue, 27 Sep 2016 22:49:46 +0000 (-0700) Subject: Fix alignment issues in uploading image data in ShaderExecutor X-Git-Tag: upstream/0.1.0~662^2~21 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=9141d25d08d53c203f8ac5a9c5937a41e1d83d02;p=platform%2Fupstream%2FVK-GL-CTS.git Fix alignment issues in uploading image data in ShaderExecutor Fixes #485 Change-Id: If04aebab19fb25ef26b51b4af86e718004438d82 --- diff --git a/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderExecutor.cpp b/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderExecutor.cpp index 1f09cbd..977ba41 100644 --- a/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderExecutor.cpp +++ b/external/vulkancts/modules/vulkan/shaderexecutor/vktShaderExecutor.cpp @@ -3149,7 +3149,8 @@ void ShaderExecutor::uploadImage (const VkDevice& vkDevice, const VkImageAspectFlags aspectMask, VkImage destImage) { - deUint32 textureSize = texSize.x() * texSize.y() * texSize.z() * texFormat.getPixelSize(); + const deUint32 unalignedTextureSize = texSize.x() * texSize.y() * texSize.z() * texFormat.getPixelSize(); + const deUint32 alignedTextureSize = deAlign32(unalignedTextureSize, 4u); deUint32 bufferSize; Move buffer; de::MovePtr bufferAlloc; @@ -3159,7 +3160,7 @@ void ShaderExecutor::uploadImage (const VkDevice& vkDevice, std::vector levelDataSizes; // Calculate buffer size - bufferSize = arraySize * textureSize; + bufferSize = arraySize * alignedTextureSize; // Create source buffer { @@ -3305,7 +3306,7 @@ void ShaderExecutor::uploadImage (const VkDevice& vkDevice, }; copyRegions.push_back(layerRegion); - layerDataOffset += textureSize; + layerDataOffset += alignedTextureSize; } } @@ -3320,7 +3321,7 @@ void ShaderExecutor::uploadImage (const VkDevice& vkDevice, tcu::PixelBufferAccess destAccess (texFormat, texSize, destPtr + levelOffset); tcu::copy(destAccess, access); - levelOffset += textureSize; + levelOffset += alignedTextureSize; } }