mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-29 21:28:37 +01:00
Vulkan: Fix depal and shader blending.
This commit is contained in:
1 parent
07dfda0633
commit
ed2731d197
12 files changed
+76
-72
No files matched your search
@@ -303,13 +303,22 @@ VkCommandBuffer VulkanRenderManager::GetInitCmd() {
|
||||
|
||||
void VulkanRenderManager::BindFramebufferAsRenderTarget(VKRFramebuffer *fb, VKRRenderPassAction color, VKRRenderPassAction depth, uint32_t clearColor, float clearDepth, uint8_t clearStencil) {
|
||||
// Eliminate dupes.
|
||||
if (steps_.size() && steps_.back()->stepType == VKRStepType::RENDER && steps_.back()->render.framebuffer == fb) {
|
||||
if (steps_.size() && steps_.back()->render.framebuffer == fb && steps_.back()->stepType == VKRStepType::RENDER) {
|
||||
if (color != VKRRenderPassAction::CLEAR && depth != VKRRenderPassAction::CLEAR) {
|
||||
// We don't move to a new step, this bind was unnecessary.
|
||||
ILOG("Redundant bind");
|
||||
// We don't move to a new step, this bind was unnecessary and we can safely skip it.
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (curRenderStep_ && curRenderStep_->commands.size() == 0 && curRenderStep_->render.color == VKRRenderPassAction::KEEP && curRenderStep_->render.depthStencil == VKRRenderPassAction::KEEP) {
|
||||
// Can trivially kill the last empty render step.
|
||||
assert(steps_.back() == curRenderStep_);
|
||||
delete steps_.back();
|
||||
steps_.pop_back();
|
||||
curRenderStep_ = nullptr;
|
||||
}
|
||||
if (curRenderStep_ && curRenderStep_->commands.size() == 0) {
|
||||
ILOG("Empty render step. Usually happens after uploading pixels..");
|
||||
}
|
||||
|
||||
VKRStep *step = new VKRStep{ VKRStepType::RENDER };
|
||||
// This is what queues up new passes, and can end previous ones.
|
||||
@@ -656,7 +665,6 @@ void VulkanRenderManager::Run(int frame) {
|
||||
|
||||
EndSubmitFrame(frame);
|
||||
|
||||
|
||||
VLOG("PULL: Finished running frame %d", frame);
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user