lunarg 12

This commit is contained in:
Hane 2024-11-11 19:26:35 +01:00
commit 692fd70519
2 changed files with 55 additions and 21 deletions

View file

@ -5,5 +5,5 @@ REM clang++ src/main.cpp -o build/window.exe -O0 -g -gcodeview -stdlib=libc++ -l
set VSCMD_SKIP_SENDTELEMETRY=1
set VCPKG_KEEP_ENV_VARS=VSCMD_SKIP_SENDTELEMETRY
vcvarsall.bat x64 && cl.exe /Fe:build\window.exe /std:c++20 /Od /MDd /EHsc -I%VULKAN_SDK%/Include src/main.cpp user32.lib gdi32.lib kernel32.lib vulkan-1.lib SPIRV.lib SPIRV-Toolsd.lib SPIRV-Tools-diffd.lib SPIRV-Tools-optd.lib SPVRemapperd.lib glslangd.lib OSDependentd.lib GenericCodeGend.lib MachineIndependentd.lib glslang-default-resource-limitsd.lib /link /DEBUG:FULL /IGNORE:4099 /LIBPATH:%VULKAN_SDK%/Lib
vcvarsall.bat x64 && cl.exe /Fe:build\window.exe /Fo:build\ /std:c++20 /Od /MDd /EHsc -I%VULKAN_SDK%/Include src/main.cpp user32.lib gdi32.lib kernel32.lib vulkan-1.lib SPIRV.lib SPIRV-Toolsd.lib SPIRV-Tools-diffd.lib SPIRV-Tools-optd.lib SPVRemapperd.lib glslangd.lib OSDependentd.lib GenericCodeGend.lib MachineIndependentd.lib glslang-default-resource-limitsd.lib /link /DEBUG:FULL /IGNORE:4099 /LIBPATH:%VULKAN_SDK%/Lib

View file

@ -687,28 +687,28 @@ int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int n
// the color attachment's layout will be transitioned to
// LAYOUT_PRESENT_SRC_KHR to be ready to present. This is all done as part
// of the renderpass, no barriers are necessary.
VkAttachmentDescription attachments[1];
attachments[0].format = format;
attachments[0].samples = NUM_SAMPLES;
attachments[0].loadOp = VK_ATTACHMENT_LOAD_OP_CLEAR;
attachments[0].storeOp = VK_ATTACHMENT_STORE_OP_STORE;
attachments[0].stencilLoadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE;
attachments[0].stencilStoreOp = VK_ATTACHMENT_STORE_OP_DONT_CARE;
attachments[0].initialLayout = VK_IMAGE_LAYOUT_UNDEFINED;
attachments[0].finalLayout = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR;
attachments[0].flags = 0;
VkAttachmentDescription attachmentsDescription[1];
attachmentsDescription[0].format = format;
attachmentsDescription[0].samples = NUM_SAMPLES;
attachmentsDescription[0].loadOp = VK_ATTACHMENT_LOAD_OP_CLEAR;
attachmentsDescription[0].storeOp = VK_ATTACHMENT_STORE_OP_STORE;
attachmentsDescription[0].stencilLoadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE;
attachmentsDescription[0].stencilStoreOp = VK_ATTACHMENT_STORE_OP_DONT_CARE;
attachmentsDescription[0].initialLayout = VK_IMAGE_LAYOUT_UNDEFINED;
attachmentsDescription[0].finalLayout = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR;
attachmentsDescription[0].flags = 0;
// Depth
/*
* attachments[1].format = info.depth.format;
* attachments[1].samples = NUM_SAMPLES;
* attachments[1].loadOp = VK_ATTACHMENT_LOAD_OP_CLEAR;
* attachments[1].storeOp = VK_ATTACHMENT_STORE_OP_DONT_CARE;
* attachments[1].stencilLoadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE;
* attachments[1].stencilStoreOp = VK_ATTACHMENT_STORE_OP_DONT_CARE;
* attachments[1].initialLayout = VK_IMAGE_LAYOUT_UNDEFINED;
* attachments[1].finalLayout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL;
* attachments[1].flags = 0;
* attachmentsDescription[1].format = info.depth.format;
* attachmentsDescription[1].samples = NUM_SAMPLES;
* attachmentsDescription[1].loadOp = VK_ATTACHMENT_LOAD_OP_CLEAR;
* attachmentsDescription[1].storeOp = VK_ATTACHMENT_STORE_OP_DONT_CARE;
* attachmentsDescription[1].stencilLoadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE;
* attachmentsDescription[1].stencilStoreOp = VK_ATTACHMENT_STORE_OP_DONT_CARE;
* attachmentsDescription[1].initialLayout = VK_IMAGE_LAYOUT_UNDEFINED;
* attachmentsDescription[1].finalLayout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL;
* attachmentsDescription[1].flags = 0;
*/
VkAttachmentReference color_reference = {};
@ -748,7 +748,7 @@ int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int n
renderPassInfo.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO;
renderPassInfo.pNext = NULL;
renderPassInfo.attachmentCount = 1;
renderPassInfo.pAttachments = attachments;
renderPassInfo.pAttachments = attachmentsDescription;
renderPassInfo.subpassCount = 1;
renderPassInfo.pSubpasses = &subpass;
renderPassInfo.dependencyCount = 1;
@ -949,6 +949,35 @@ int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int n
shaderStages[1].pName = "main";
shaderStages[1].module = fragmentShader;
/* Framebuffer setup */
VkImageView attachments[1];
//attachments[1] = info.depth.view;
VkFramebufferCreateInfo framebufferInfo = {};
framebufferInfo.sType = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO;
framebufferInfo.pNext = NULL;
framebufferInfo.renderPass = renderPass;
framebufferInfo.attachmentCount = 1;
framebufferInfo.pAttachments = attachments;
framebufferInfo.width = swapchainExtent.width;
framebufferInfo.height = swapchainExtent.height;
framebufferInfo.layers = 1;
VkFramebuffer* framebuffers;
uint32_t i;
framebuffers = (VkFramebuffer *)malloc(swapchainImageCount * sizeof(VkFramebuffer));
assert(framebuffers);
for (i = 0; i < swapchainImageCount; i++) {
attachments[0] = buffers[i].view;
result = vkCreateFramebuffer(device, &framebufferInfo, NULL, &framebuffers[i]);
assert(result == VK_SUCCESS);
}
/* Vertex buffer setup */
@ -962,6 +991,11 @@ int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int n
DispatchMessage(&msg);
}
for (i = 0; i < swapchainImageCount; i++) {
vkDestroyFramebuffer(device, framebuffers[i], NULL);
}
free(framebuffers);
vkDestroyShaderModule(device, shaderStages[0].module, NULL);
vkDestroyShaderModule(device, shaderStages[1].module, NULL);
vkDestroyRenderPass(device, renderPass, NULL);