More vulkan fixes

This commit is contained in:
Henrik Rydgard 2017-05-07 10:53:04 +02:00
parent 5974e0ee6d
commit ff6fcc9179
3 changed files with 7 additions and 2 deletions

View file

@ -159,6 +159,7 @@ GPU_Vulkan::GPU_Vulkan(GraphicsContext *gfxCtx, Draw::DrawContext *draw)
GPU_Vulkan::~GPU_Vulkan() {
framebufferManagerVulkan_->DestroyAllFBOs();
depalShaderCache_.Clear();
delete textureCacheVulkan_;
delete pipelineManager_;
delete shaderManagerVulkan_;
}

View file

@ -138,6 +138,8 @@ static VkBool32 VKAPI_CALL Vulkan_Dbg(VkDebugReportFlagsEXT msgFlags, VkDebugRep
return false;
if (msgCode == 11)
return false;
if (msgCode == 63 && startsWith(pMsg, "vkCmdClearAttachments() issued on command buffer "))
return false;
#ifdef _WIN32
std::string msg = message.str();

View file

@ -262,11 +262,12 @@ public:
class VKPipeline : public Pipeline {
public:
VKPipeline(size_t size) {
VKPipeline(VulkanContext *vulkan, size_t size) : vulkan_(vulkan) {
uboSize_ = (int)size;
ubo_ = new uint8_t[uboSize_];
}
~VKPipeline() {
vulkan_->Delete().QueueDeletePipeline(vkpipeline);
delete[] ubo_;
}
@ -292,6 +293,7 @@ public:
int dynamicUniformSize = 0;
private:
VulkanContext *vulkan_;
uint8_t *ubo_;
int uboSize_;
};
@ -831,7 +833,7 @@ VkDescriptorSet VKContext::GetOrCreateDescriptorSet(VkBuffer buf) {
}
Pipeline *VKContext::CreateGraphicsPipeline(const PipelineDesc &desc) {
VKPipeline *pipeline = new VKPipeline(desc.uniformDesc ? desc.uniformDesc->uniformBufferSize : 16 * sizeof(float));
VKPipeline *pipeline = new VKPipeline(vulkan_, desc.uniformDesc ? desc.uniformDesc->uniformBufferSize : 16 * sizeof(float));
VKInputLayout *input = (VKInputLayout *)desc.inputLayout;
VKBlendState *blend = (VKBlendState *)desc.blend;
VKDepthStencilState *depth = (VKDepthStencilState *)desc.depthStencil;