Skip to content
Snippets Groups Projects
Commit 28a4ed41 authored by Sebastian Gaida's avatar Sebastian Gaida
Browse files

[#105] fix bindless project

parent c68da7d6
No related branches found
No related tags found
1 merge request!88Resolve "Indirect Draw"
Pipeline #27226 failed
...@@ -331,16 +331,16 @@ namespace vkcv ...@@ -331,16 +331,16 @@ namespace vkcv
const std::vector<ImageHandle> &renderTargets, const std::vector<ImageHandle> &renderTargets,
const WindowHandle &windowHandle); const WindowHandle &windowHandle);
void Core::recordIndexedIndirectDrawcallsToCmdStream( void Core::recordIndexedIndirectDrawcallsToCmdStream(
const CommandStreamHandle cmdStreamHandle, const CommandStreamHandle cmdStreamHandle,
const PassHandle renderpassHandle, const PassHandle renderpassHandle,
const GraphicsPipelineHandle &pipelineHandle, const GraphicsPipelineHandle &pipelineHandle,
const PushConstants &pushConstantData, const PushConstants &pushConstantData,
const vkcv::Mesh &compiledMesh, const vkcv::Mesh &compiledMesh,
const std::vector<ImageHandle> &renderTargets, const std::vector<ImageHandle> &renderTargets,
const vkcv::Buffer<vk::DrawIndexedIndirectCommand> &indirectBuffer, const vkcv::Buffer<vk::DrawIndexedIndirectCommand> &indirectBuffer,
const uint32_t drawCount, const uint32_t drawCount,
const WindowHandle &windowHandle); const WindowHandle &windowHandle);
void recordMeshShaderDrawcalls( void recordMeshShaderDrawcalls(
const CommandStreamHandle& cmdStreamHandle, const CommandStreamHandle& cmdStreamHandle,
......
...@@ -12,13 +12,6 @@ int main(int argc, const char** argv) { ...@@ -12,13 +12,6 @@ int main(int argc, const char** argv) {
uint32_t windowWidth = 800; uint32_t windowWidth = 800;
uint32_t windowHeight = 600; uint32_t windowHeight = 600;
vkcv::Window window = vkcv::Window::create(
applicationName,
windowWidth,
windowHeight,
true
);
vkcv::Features features; vkcv::Features features;
features.requireExtension(VK_KHR_SWAPCHAIN_EXTENSION_NAME); features.requireExtension(VK_KHR_SWAPCHAIN_EXTENSION_NAME);
features.requireExtensionFeature<vk::PhysicalDeviceDescriptorIndexingFeatures>( features.requireExtensionFeature<vk::PhysicalDeviceDescriptorIndexingFeatures>(
...@@ -49,13 +42,14 @@ int main(int argc, const char** argv) { ...@@ -49,13 +42,14 @@ int main(int argc, const char** argv) {
); );
vkcv::Core core = vkcv::Core::create( vkcv::Core core = vkcv::Core::create(
window,
applicationName, applicationName,
VK_MAKE_VERSION(0, 0, 1), VK_MAKE_VERSION(0, 0, 1),
{ vk::QueueFlagBits::eGraphics ,vk::QueueFlagBits::eCompute , vk::QueueFlagBits::eTransfer }, { vk::QueueFlagBits::eGraphics ,vk::QueueFlagBits::eCompute , vk::QueueFlagBits::eTransfer },
features features
); );
vkcv::WindowHandle windowHandle = core.createWindow(applicationName, windowWidth,windowHeight,false);
vkcv::asset::Scene mesh; vkcv::asset::Scene mesh;
// TEST DATA // TEST DATA
...@@ -109,7 +103,7 @@ int main(int argc, const char** argv) { ...@@ -109,7 +103,7 @@ int main(int argc, const char** argv) {
const vkcv::AttachmentDescription present_color_attachment( const vkcv::AttachmentDescription present_color_attachment(
vkcv::AttachmentOperation::STORE, vkcv::AttachmentOperation::STORE,
vkcv::AttachmentOperation::CLEAR, vkcv::AttachmentOperation::CLEAR,
core.getSwapchain().getFormat() core.getSwapchain(windowHandle).getFormat()
); );
const vkcv::AttachmentDescription depth_attachment( const vkcv::AttachmentDescription depth_attachment(
...@@ -162,7 +156,7 @@ int main(int argc, const char** argv) { ...@@ -162,7 +156,7 @@ int main(int argc, const char** argv) {
vkcv::DescriptorSetLayoutHandle descriptorSetLayout = core.createDescriptorSetLayout(adjustedBindings); vkcv::DescriptorSetLayoutHandle descriptorSetLayout = core.createDescriptorSetLayout(adjustedBindings);
vkcv::DescriptorSetHandle descriptorSet = core.createDescriptorSet(descriptorSetLayout); vkcv::DescriptorSetHandle descriptorSet = core.createDescriptorSet(descriptorSetLayout);
const vkcv::PipelineConfig firstMeshPipelineConfig { const vkcv::GraphicsPipelineConfig firstMeshPipelineConfig {
firstMeshProgram, firstMeshProgram,
UINT32_MAX, UINT32_MAX,
UINT32_MAX, UINT32_MAX,
...@@ -171,7 +165,7 @@ int main(int argc, const char** argv) { ...@@ -171,7 +165,7 @@ int main(int argc, const char** argv) {
{ core.getDescriptorSetLayout(descriptorSetLayout).vulkanHandle }, { core.getDescriptorSetLayout(descriptorSetLayout).vulkanHandle },
true true
}; };
vkcv::PipelineHandle firstMeshPipeline = core.createGraphicsPipeline(firstMeshPipelineConfig); vkcv::GraphicsPipelineHandle firstMeshPipeline = core.createGraphicsPipeline(firstMeshPipelineConfig);
if (!firstMeshPipeline) { if (!firstMeshPipeline) {
std::cerr << "Error. Could not create graphics pipeline. Exiting." << std::endl; std::cerr << "Error. Could not create graphics pipeline. Exiting." << std::endl;
...@@ -227,7 +221,7 @@ int main(int argc, const char** argv) { ...@@ -227,7 +221,7 @@ int main(int argc, const char** argv) {
vkcv::DescriptorSetUsage descriptorUsage(0, core.getDescriptorSet(descriptorSet).vulkanHandle); vkcv::DescriptorSetUsage descriptorUsage(0, core.getDescriptorSet(descriptorSet).vulkanHandle);
vkcv::DrawcallInfo drawcall(renderMesh, { descriptorUsage },1); vkcv::DrawcallInfo drawcall(renderMesh, { descriptorUsage },1);
vkcv::camera::CameraManager cameraManager(window); vkcv::camera::CameraManager cameraManager(core.getWindow(windowHandle));
uint32_t camIndex0 = cameraManager.addCamera(vkcv::camera::ControllerType::PILOT); uint32_t camIndex0 = cameraManager.addCamera(vkcv::camera::ControllerType::PILOT);
uint32_t camIndex1 = cameraManager.addCamera(vkcv::camera::ControllerType::TRACKBALL); uint32_t camIndex1 = cameraManager.addCamera(vkcv::camera::ControllerType::TRACKBALL);
...@@ -235,14 +229,14 @@ int main(int argc, const char** argv) { ...@@ -235,14 +229,14 @@ int main(int argc, const char** argv) {
auto start = std::chrono::system_clock::now(); auto start = std::chrono::system_clock::now();
while (window.isWindowOpen()) { while (vkcv::Window::hasOpenWindow()) {
vkcv::Window::pollEvents(); vkcv::Window::pollEvents();
if(window.getHeight() == 0 || window.getWidth() == 0) if(core.getWindow(windowHandle).getHeight() == 0 || core.getWindow(windowHandle).getWidth() == 0)
continue; continue;
uint32_t swapchainWidth, swapchainHeight; uint32_t swapchainWidth, swapchainHeight;
if (!core.beginFrame(swapchainWidth, swapchainHeight)) { if (!core.beginFrame(swapchainWidth, swapchainHeight,windowHandle)) {
continue; continue;
} }
...@@ -272,10 +266,11 @@ int main(int argc, const char** argv) { ...@@ -272,10 +266,11 @@ int main(int argc, const char** argv) {
firstMeshPipeline, firstMeshPipeline,
pushConstants, pushConstants,
{ drawcall }, { drawcall },
renderTargets); renderTargets,
windowHandle);
core.prepareSwapchainImageForPresent(cmdStream); core.prepareSwapchainImageForPresent(cmdStream);
core.submitCommandStream(cmdStream); core.submitCommandStream(cmdStream);
core.endFrame(); core.endFrame(windowHandle);
} }
return 0; return 0;
......
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