+ de::toString(pos));
break;
}
- }
- reference.set(pos, value ^ mask);
+ reference.set(pos, reference.get(pos) ^ mask);
+ }
}
}
else if (m_read)
break;
}
}
-
- reference.set(pos, value);
}
}
else if (m_write)
void prepare (PrepareContext& context);
void logSubmit (TestLog& log, size_t commandIndex) const;
void submit (SubmitContext& context);
+ void verify (VerifyContext& context, size_t);
+
+private:
+ vk::VkDeviceSize m_imageMemorySize;
};
void ImageTransition::logSubmit (TestLog& log, size_t commandIndex) const
{
- log << TestLog::Message << commandIndex << ":" << getName() << " Use pipeline barrier to trasition to VK_IMAGE_LAYOUT_GENERAL." << TestLog::EndMessage;
+ log << TestLog::Message << commandIndex << ":" << getName() << " Use pipeline barrier to transition to VK_IMAGE_LAYOUT_GENERAL." << TestLog::EndMessage;
}
void ImageTransition::prepare (PrepareContext& context)
{
context.setImageLayout(vk::VK_IMAGE_LAYOUT_GENERAL);
+ m_imageMemorySize = context.getImageMemorySize();
}
void ImageTransition::submit (SubmitContext& context)
vkd.cmdPipelineBarrier(cmd, ALL_PIPELINE_STAGES, ALL_PIPELINE_STAGES, (vk::VkDependencyFlags)0, 0, (const vk::VkMemoryBarrier*)DE_NULL, 0, (const vk::VkBufferMemoryBarrier*)DE_NULL, 1, &barrier);
}
+void ImageTransition::verify (VerifyContext& context, size_t)
+{
+ context.getReference().setUndefined(0, (size_t)m_imageMemorySize);
+}
+
class FillBuffer : public CmdCommand
{
public:
break;
}
}
- else
- reference.set(pos, data[pos]);
}
}
break;
}
}
- else
- reference.set(pos, data[pos]);
}
}
state.hostFlushed = false;
state.memoryDefined = true;
+ state.imageDefined = false;
state.rng.getUint32();
break;
state.commandBufferIsEmpty = false;
state.memoryDefined = true;
+ state.imageDefined = false;
state.cache.perform(vk::VK_PIPELINE_STAGE_TRANSFER_BIT, vk::VK_ACCESS_TRANSFER_WRITE_BIT);
break;
DE_ASSERT(state.stage == STAGE_COMMAND_BUFFER);
state.commandBufferIsEmpty = false;
- state.imageDefined = true;
state.memoryDefined = false;
+ state.imageDefined = true;
state.cache.perform(vk::VK_PIPELINE_STAGE_TRANSFER_BIT, vk::VK_ACCESS_TRANSFER_WRITE_BIT);
break;