Skip to content

Commit

Permalink
WIP: MSVC compatibility with vku::createPipelineStages.
Browse files Browse the repository at this point in the history
  • Loading branch information
stripe2933 committed Aug 19, 2024
1 parent 09de864 commit b59f78a
Show file tree
Hide file tree
Showing 4 changed files with 5 additions and 77 deletions.
26 changes: 1 addition & 25 deletions interface/vulkan/pipeline/DeferredLightRenderer.cppm
Original file line number Diff line number Diff line change
Expand Up @@ -31,34 +31,10 @@ namespace vk_deferred::vulkan::inline pipeline {
}),
} },
pipeline { device, nullptr, vku::getDefaultGraphicsPipelineCreateInfo(
#ifdef _MSC_VER
// TODO: due to the MSVC C++20 module bug, vku::createPipelineStages not works well. Use it instead when fixed.
vku::unsafeProxy({
vk::PipelineShaderStageCreateInfo {
{},
vk::ShaderStageFlagBits::eVertex,
*vk::raii::ShaderModule { device, vk::ShaderModuleCreateInfo {
{},
vku::unsafeProxy(vku::Shader { COMPILED_SHADER_DIR "/light_volume.vert.spv", vk::ShaderStageFlagBits::eVertex }.code),
} },
"main",
},
vk::PipelineShaderStageCreateInfo {
{},
vk::ShaderStageFlagBits::eFragment,
*vk::raii::ShaderModule { device, vk::ShaderModuleCreateInfo {
{},
vku::unsafeProxy(vku::Shader { COMPILED_SHADER_DIR "/deferred_lighting.frag.spv", vk::ShaderStageFlagBits::eFragment }.code),
} },
"main",
},
}),
#else
vku::createPipelineStages(
createPipelineStages(
device,
vku::Shader { COMPILED_SHADER_DIR "/light_volume.vert.spv", vk::ShaderStageFlagBits::eVertex },
vku::Shader { COMPILED_SHADER_DIR "/deferred_lighting.frag.spv", vk::ShaderStageFlagBits::eFragment }).get(),
#endif
*pipelineLayout, 1, true)
.setPVertexInputState(vku::unsafeAddress(vk::PipelineVertexInputStateCreateInfo {
{},
Expand Down
26 changes: 1 addition & 25 deletions interface/vulkan/pipeline/GBufferRenderer.cppm
Original file line number Diff line number Diff line change
Expand Up @@ -28,34 +28,10 @@ namespace vk_deferred::vulkan::inline pipeline {
}),
} },
pipeline { device, nullptr, vku::getDefaultGraphicsPipelineCreateInfo(
#ifdef _MSC_VER
// TODO: due to the MSVC C++20 module bug, vku::createPipelineStages not works well. Use it instead when fixed.
vku::unsafeProxy({
vk::PipelineShaderStageCreateInfo {
{},
vk::ShaderStageFlagBits::eVertex,
*vk::raii::ShaderModule { device, vk::ShaderModuleCreateInfo {
{},
vku::unsafeProxy(vku::Shader { COMPILED_SHADER_DIR "/pn_instanced.vert.spv", vk::ShaderStageFlagBits::eVertex }.code),
} },
"main",
},
vk::PipelineShaderStageCreateInfo {
{},
vk::ShaderStageFlagBits::eFragment,
*vk::raii::ShaderModule { device, vk::ShaderModuleCreateInfo {
{},
vku::unsafeProxy(vku::Shader { COMPILED_SHADER_DIR "/gbuffer.frag.spv", vk::ShaderStageFlagBits::eFragment }.code),
} },
"main",
},
}),
#else
vku::createPipelineStages(
createPipelineStages(
device,
vku::Shader { COMPILED_SHADER_DIR "/pn_instanced.vert.spv", vk::ShaderStageFlagBits::eVertex },
vku::Shader { COMPILED_SHADER_DIR "/gbuffer.frag.spv", vk::ShaderStageFlagBits::eFragment }).get(),
#endif
*pipelineLayout, 2, true)
.setPVertexInputState(vku::unsafeAddress(vk::PipelineVertexInputStateCreateInfo {
{},
Expand Down
26 changes: 1 addition & 25 deletions interface/vulkan/pipeline/ToneMappingRenderer.cppm
Original file line number Diff line number Diff line change
Expand Up @@ -22,34 +22,10 @@ namespace vk_deferred::vulkan::inline pipeline {
vku::unsafeProxy(*descriptorSetLayout),
} },
pipeline { device, nullptr, vku::getDefaultGraphicsPipelineCreateInfo(
#ifdef _MSC_VER
// TODO: due to the MSVC C++20 module bug, vku::createPipelineStages not works well. Use it instead when fixed.
vku::unsafeProxy({
vk::PipelineShaderStageCreateInfo {
{},
vk::ShaderStageFlagBits::eVertex,
*vk::raii::ShaderModule { device, vk::ShaderModuleCreateInfo {
{},
vku::unsafeProxy(vku::Shader { COMPILED_SHADER_DIR "/full_triangle.vert.spv", vk::ShaderStageFlagBits::eVertex }.code),
} },
"main",
},
vk::PipelineShaderStageCreateInfo {
{},
vk::ShaderStageFlagBits::eFragment,
*vk::raii::ShaderModule { device, vk::ShaderModuleCreateInfo {
{},
vku::unsafeProxy(vku::Shader { COMPILED_SHADER_DIR "/rec709.frag.spv", vk::ShaderStageFlagBits::eFragment }.code),
} },
"main",
},
}),
#else
vku::createPipelineStages(
createPipelineStages(
device,
vku::Shader { COMPILED_SHADER_DIR "/full_triangle.vert.spv", vk::ShaderStageFlagBits::eVertex },
vku::Shader { COMPILED_SHADER_DIR "/rec709.frag.spv", vk::ShaderStageFlagBits::eFragment }).get(),
#endif
*pipelineLayout, 1)
.setRenderPass(*renderPass)
.setSubpass(2)
Expand Down
4 changes: 2 additions & 2 deletions overlays/vku/portfile.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO stripe2933/vku
REF v0.1.0-test21
SHA512 97fbf52fa2445f4ae70a43497c5762dd675ddf040801701498ead97355255d27b62102e34fbf1d4c0af2e6877bb5be62b9bfc06710e01ad800f1b4e2234b487d
REF v0.1.0-test22
SHA512 e090d7a4995a4e740272352f24d92b86344a94d1fa65f0697a097f43911490bf4ef3d8416af5904a80a2a276ce4429635679c6db71945c4656538098e132de0a
HEAD_REF module
PATCHES vcpkg-deps.patch
)
Expand Down

0 comments on commit b59f78a

Please sign in to comment.