Skip to content
Snippets Groups Projects
Commit 915e0b90 authored by Lars Hoerttrich's avatar Lars Hoerttrich
Browse files

[#91] small fixes, still not working

parent 0fcdae9d
No related branches found
No related tags found
1 merge request!79Draft: Resolve "Compute: First Network"
Pipeline #26767 passed
...@@ -27,7 +27,8 @@ int main(int argc, const char** argv) { ...@@ -27,7 +27,8 @@ int main(int argc, const char** argv) {
); );
int input[64] = { 0 }; int input[64] = { 0 };
vkcv::Buffer<int> inputBuffer = core.createBuffer<int>(vkcv::BufferType::STORAGE, 64); std::fill_n(input, 64, 2);
vkcv::Buffer<int> inputBuffer = core.createBuffer<int>(vkcv::BufferType::STORAGE, 64, vkcv::BufferMemoryType::HOST_VISIBLE);
inputBuffer.fill(input); inputBuffer.fill(input);
vkcv::PassConfig computePassDefinition({}); vkcv::PassConfig computePassDefinition({});
...@@ -64,7 +65,7 @@ int main(int argc, const char** argv) { ...@@ -64,7 +65,7 @@ int main(int argc, const char** argv) {
} }
auto cmdStream = core.createCommandStream(vkcv::QueueType::Compute); auto cmdStream = core.createCommandStream(vkcv::QueueType::Compute);
uint32_t computeDispatchCount[3] = {inputBuffer.getSize(),1,1 }; uint32_t computeDispatchCount[3] = {64,1,1 };
vkcv::PushConstants pushConstantsCompute(sizeof(int)); vkcv::PushConstants pushConstantsCompute(sizeof(int));
pushConstantsCompute.appendDrawcall(1); pushConstantsCompute.appendDrawcall(1);
...@@ -76,9 +77,13 @@ int main(int argc, const char** argv) { ...@@ -76,9 +77,13 @@ int main(int argc, const char** argv) {
pushConstantsCompute); pushConstantsCompute);
int output[64] = { 0 }; int output[64] = { 0 };
std::fill_n(output, 64, -1);
core.readBufferMemoryBarrier(cmdStream, inputBuffer.getHandle(), &output); core.readBufferMemoryBarrier(cmdStream, inputBuffer.getHandle(), &output);
core.submitCommandStream(cmdStream); core.submitCommandStream(cmdStream);
std::cout << "[";
std::cout << output << std::endl; for (int i = 0; i < 64; i++) {
std::cout << output[i] << ", ";
}
std::cout << "]" << std::endl;
return 0; return 0;
} }
...@@ -350,9 +350,8 @@ namespace vkcv { ...@@ -350,9 +350,8 @@ namespace vkcv {
const size_t max_size = std::min(size, buffer.m_size); const size_t max_size = std::min(size, buffer.m_size);
void* mapped = allocator.mapMemory(buffer.m_allocation); void* mapped = allocator.mapMemory(buffer.m_allocation);
memcpy(data, reinterpret_cast<char*>(mapped) , max_size); memcpy(reinterpret_cast<int*>(data), reinterpret_cast<char*>(mapped) , max_size);
allocator.unmapMemory(buffer.m_allocation); allocator.unmapMemory(buffer.m_allocation);
} }
void BufferManager ::readBufferMemoryBarrier(const BufferHandle& handle, vk::CommandBuffer cmdBuffer, void *data) { void BufferManager ::readBufferMemoryBarrier(const BufferHandle& handle, vk::CommandBuffer cmdBuffer, void *data) {
...@@ -376,8 +375,8 @@ namespace vkcv { ...@@ -376,8 +375,8 @@ namespace vkcv {
buffer.m_size); buffer.m_size);
cmdBuffer.pipelineBarrier( cmdBuffer.pipelineBarrier(
vk::PipelineStageFlagBits::eTopOfPipe, vk::PipelineStageFlagBits::eComputeShader,
vk::PipelineStageFlagBits::eBottomOfPipe, vk::PipelineStageFlagBits::eTransfer,
{}, {},
nullptr, nullptr,
memoryBarrier, memoryBarrier,
...@@ -395,8 +394,8 @@ namespace vkcv { ...@@ -395,8 +394,8 @@ namespace vkcv {
buffer.m_size); buffer.m_size);
cmdBuffer.pipelineBarrier( cmdBuffer.pipelineBarrier(
vk::PipelineStageFlagBits::eTopOfPipe, vk::PipelineStageFlagBits::eTransfer,
vk::PipelineStageFlagBits::eBottomOfPipe, vk::PipelineStageFlagBits::eHost,
{}, {},
nullptr, nullptr,
memoryBarrier2, memoryBarrier2,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment