diff options
author | Rodrigo Locatti <reinuseslisp@airmail.cc> | 2020-04-13 22:08:04 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-13 22:08:04 +0200 |
commit | 7e4a132a77fd1c2d48b1410ac1f1da81869daa90 (patch) | |
tree | 79f2f04b5d7233eb3b57f86af3281f6ef5f30282 /src/video_core/renderer_vulkan/vk_shader_util.cpp | |
parent | Merge pull request #3651 from ReinUsesLisp/line-widths (diff) | |
parent | renderer_vulkan: Drop Vulkan-Hpp (diff) | |
download | yuzu-7e4a132a77fd1c2d48b1410ac1f1da81869daa90.tar yuzu-7e4a132a77fd1c2d48b1410ac1f1da81869daa90.tar.gz yuzu-7e4a132a77fd1c2d48b1410ac1f1da81869daa90.tar.bz2 yuzu-7e4a132a77fd1c2d48b1410ac1f1da81869daa90.tar.lz yuzu-7e4a132a77fd1c2d48b1410ac1f1da81869daa90.tar.xz yuzu-7e4a132a77fd1c2d48b1410ac1f1da81869daa90.tar.zst yuzu-7e4a132a77fd1c2d48b1410ac1f1da81869daa90.zip |
Diffstat (limited to '')
-rw-r--r-- | src/video_core/renderer_vulkan/vk_shader_util.cpp | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/src/video_core/renderer_vulkan/vk_shader_util.cpp b/src/video_core/renderer_vulkan/vk_shader_util.cpp index b97c4cb3d..784839327 100644 --- a/src/video_core/renderer_vulkan/vk_shader_util.cpp +++ b/src/video_core/renderer_vulkan/vk_shader_util.cpp @@ -8,27 +8,25 @@ #include "common/alignment.h" #include "common/assert.h" #include "common/common_types.h" -#include "video_core/renderer_vulkan/declarations.h" #include "video_core/renderer_vulkan/vk_device.h" #include "video_core/renderer_vulkan/vk_shader_util.h" +#include "video_core/renderer_vulkan/wrapper.h" namespace Vulkan { -UniqueShaderModule BuildShader(const VKDevice& device, std::size_t code_size, const u8* code_data) { +vk::ShaderModule BuildShader(const VKDevice& device, std::size_t code_size, const u8* code_data) { // Avoid undefined behavior by copying to a staging allocation ASSERT(code_size % sizeof(u32) == 0); const auto data = std::make_unique<u32[]>(code_size / sizeof(u32)); std::memcpy(data.get(), code_data, code_size); - const auto dev = device.GetLogical(); - const auto& dld = device.GetDispatchLoader(); - const vk::ShaderModuleCreateInfo shader_ci({}, code_size, data.get()); - vk::ShaderModule shader_module; - if (dev.createShaderModule(&shader_ci, nullptr, &shader_module, dld) != vk::Result::eSuccess) { - UNREACHABLE_MSG("Shader module failed to build!"); - } - - return UniqueShaderModule(shader_module, vk::ObjectDestroy(dev, nullptr, dld)); + VkShaderModuleCreateInfo ci; + ci.sType = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO; + ci.pNext = nullptr; + ci.flags = 0; + ci.codeSize = code_size; + ci.pCode = data.get(); + return device.GetLogical().CreateShaderModule(ci); } } // namespace Vulkan |