mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-01 14:58:14 +00:00
Merge pull request #21244 from hrydgard/more-fixes
Fix black background in Mahjong Artifacts, minor GE debugger improvement
This commit is contained in:
7 files changed
+44
-12
No files matched your search
@@ -508,6 +508,9 @@ public:
|
||||
return displayLayoutConfigCopy_;
|
||||
}
|
||||
|
||||
// For the debugger.
|
||||
inline int PeekBindSeqCount() const { return fbBindSeqCount_; }
|
||||
|
||||
protected:
|
||||
virtual void ReadbackFramebuffer(VirtualFramebuffer *vfb, int x, int y, int w, int h, RasterChannel channel, Draw::ReadbackMode mode);
|
||||
// Used for when a shader is required, such as GLES.
|
||||
@@ -565,9 +568,8 @@ protected:
|
||||
dstBuffer->reallyDirtyAfterDisplay = true;
|
||||
}
|
||||
|
||||
inline int GetBindSeqCount() {
|
||||
return fbBindSeqCount_++;
|
||||
}
|
||||
// For use when binding.
|
||||
inline int GetBindSeqCount() { return fbBindSeqCount_++; }
|
||||
|
||||
static SkipGPUReadbackMode GetSkipGPUReadbackMode();
|
||||
|
||||
|
||||
@@ -1090,6 +1090,10 @@ bool TextureCacheCommon::MatchFramebuffer(
|
||||
matchInfo->xOffset = entry.bufw == 0 ? 0 : -(-texelOffset % (int)entry.bufw);
|
||||
}
|
||||
|
||||
if (matchInfo->yOffset >= 512) {
|
||||
// Reject unreasonably large y offsets. 512 is the largest texture size.
|
||||
return false;
|
||||
}
|
||||
if (matchInfo->yOffset > 0 && matchInfo->yOffset + minSubareaHeight >= framebuffer->height) {
|
||||
// Can't be inside the framebuffer.
|
||||
return false;
|
||||
@@ -1121,14 +1125,14 @@ bool TextureCacheCommon::MatchFramebuffer(
|
||||
// Check for CLUT. The framebuffer is always RGB, but it can be interpreted as a CLUT texture.
|
||||
// 3rd Birthday (and a bunch of other games) render to a 16 bit clut texture.
|
||||
if (matchingClutFormat) {
|
||||
if (!noOffset) {
|
||||
WARN_LOG_ONCE(subareaClut, Log::G3D, "Matching framebuffer (%s) using %s with offset at %08x +%dx%d", RasterChannelToString(channel), GeTextureFormatToString(entry.format), fb_address, matchInfo->xOffset, matchInfo->yOffset);
|
||||
}
|
||||
if (channel == RasterChannel::RASTER_DEPTH && framebuffer->last_frame_depth_updated < 0) {
|
||||
// Reject depth textures that have not been rendered to. See #15828
|
||||
// We're right before the final check here, so we can bail.
|
||||
return false;
|
||||
} else {
|
||||
if (!noOffset) {
|
||||
WARN_LOG_ONCE(subareaClut, Log::G3D, "Matching framebuffer (%s) using %s with offset at %08x +%dx%d", RasterChannelToString(channel), GeTextureFormatToString(entry.format), fb_address, matchInfo->xOffset, matchInfo->yOffset);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
} else if (IsClutFormat((GETextureFormat)(entry.format)) || IsDXTFormat((GETextureFormat)(entry.format))) {
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
#include "Common/GPU/Vulkan/VulkanLoader.h"
|
||||
#include "Common/GPU/Vulkan/VulkanRenderManager.h"
|
||||
|
||||
#include "GPU/GPUState.h"
|
||||
|
||||
+12
-1
@@ -33,11 +33,16 @@ void DrawFramebuffersWindow(ImConfig &cfg, FramebufferManagerCommon *framebuffer
|
||||
return;
|
||||
}
|
||||
|
||||
ImGui::BeginTable("framebuffers", 4);
|
||||
ImGui::Text("Cur frame: %d seq: %d", gpuStats.numFlips, framebufferManager->PeekBindSeqCount());
|
||||
|
||||
ImGui::BeginTable("framebuffers", 7);
|
||||
ImGui::TableSetupColumn("Tag", ImGuiTableColumnFlags_WidthFixed);
|
||||
ImGui::TableSetupColumn("Color Addr", ImGuiTableColumnFlags_WidthFixed);
|
||||
ImGui::TableSetupColumn("Depth Addr", ImGuiTableColumnFlags_WidthFixed);
|
||||
ImGui::TableSetupColumn("Size", ImGuiTableColumnFlags_WidthFixed);
|
||||
ImGui::TableSetupColumn("BindSeq", ImGuiTableColumnFlags_WidthFixed);
|
||||
ImGui::TableSetupColumn("LastRender", ImGuiTableColumnFlags_WidthFixed);
|
||||
ImGui::TableSetupColumn("LastUse", ImGuiTableColumnFlags_WidthFixed);
|
||||
|
||||
ImGui::TableHeadersRow();
|
||||
|
||||
@@ -69,6 +74,12 @@ void DrawFramebuffersWindow(ImConfig &cfg, FramebufferManagerCommon *framebuffer
|
||||
ImGui::Text("Framebuffer: %s", tag);
|
||||
ImGui::EndPopup();
|
||||
}
|
||||
ImGui::TableNextColumn();
|
||||
ImGui::Text("%d/%d", vfb->colorBindSeq, vfb->depthBindSeq);
|
||||
ImGui::TableNextColumn();
|
||||
ImGui::Text("%d/%d", vfb->last_frame_render, vfb->last_frame_depth_updated);
|
||||
ImGui::TableNextColumn();
|
||||
ImGui::Text("%d/%d", vfb->last_frame_used, vfb->last_frame_depth_render);
|
||||
ImGui::PopID();
|
||||
}
|
||||
ImGui::EndTable();
|
||||
|
||||
@@ -24,9 +24,9 @@
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="px"
|
||||
inkscape:zoom="2.8284275"
|
||||
inkscape:cx="173.06436"
|
||||
inkscape:cy="581.41847"
|
||||
inkscape:zoom="2.0000003"
|
||||
inkscape:cx="302.24996"
|
||||
inkscape:cy="339.74995"
|
||||
inkscape:window-width="3840"
|
||||
inkscape:window-height="2071"
|
||||
inkscape:window-x="-9"
|
||||
@@ -4312,7 +4312,7 @@
|
||||
sodipodi:nodetypes="sscssssscssscccccc" /><g
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:3"
|
||||
id="I_EXIT"
|
||||
transform="matrix(0.16780779,0,0,0.16780779,40.523958,144.13668)"><path
|
||||
transform="matrix(-0.16780779,0,0,0.16780779,51.550514,144.13668)"><path
|
||||
id="asdf"
|
||||
style="color:#000000;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3.49782;-inkscape-stroke:none"
|
||||
d="M 8.5630832,3.4509903 C 5.808118,3.4114746 3.50815,5.6543991 3.4789128,8.409493 v 0.010771 46.913683 c -2.832e-4,2.775449 2.3090041,5.0556 5.0841704,5.015949 H 37.908371 c 2.752855,0.0073 5.026739,-2.262539 5.026721,-5.015949 V 39.223301 H 38.46131 v 14.96168 c 0,0.860175 -0.662202,1.518788 -1.522378,1.518788 H 36.93534 9.4463499 9.4319878 c -0.8672443,0 -1.5368289,-0.651488 -1.5367403,-1.518788 V 9.1383681 C 7.9043418,8.2781405 8.5717112,7.6375317 9.4319878,7.6375317 h 0.014362 27.4889902 0.0036 c 0.853184,0 1.513243,0.6477012 1.522378,1.5008364 V 23.855892 H 42.9351 V 8.420264 8.409493 C 42.905739,5.6771648 40.64003,3.4448758 37.908371,3.4509903 Z M 49.441108,19.062553 46.967242,21.532829 55.537804,30.10339 H 17.388572 v 3.497163 h 38.149232 l -8.570562,8.570562 2.473866,2.473865 12.789418,-12.793008 z" /></g><g
|
||||
|
||||
|
Before Width: | Height: | Size: 257 KiB After Width: | Height: | Size: 257 KiB |
@@ -0,0 +1,13 @@
|
||||
#This file is generated by updateDaemonJvm
|
||||
toolchainUrl.FREE_BSD.AARCH64=https\://api.foojay.io/disco/v3.0/ids/536afcd1dff540251f85e5d2c80458cf/redirect
|
||||
toolchainUrl.FREE_BSD.X86_64=https\://api.foojay.io/disco/v3.0/ids/67a0fee3c4236b6397dcbe8575ca2011/redirect
|
||||
toolchainUrl.LINUX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/536afcd1dff540251f85e5d2c80458cf/redirect
|
||||
toolchainUrl.LINUX.X86_64=https\://api.foojay.io/disco/v3.0/ids/67a0fee3c4236b6397dcbe8575ca2011/redirect
|
||||
toolchainUrl.MAC_OS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/10fc3bf1ee0001078a473afe6e43cfdb/redirect
|
||||
toolchainUrl.MAC_OS.X86_64=https\://api.foojay.io/disco/v3.0/ids/9c55677aff3966382f3d853c0959bfb2/redirect
|
||||
toolchainUrl.UNIX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/536afcd1dff540251f85e5d2c80458cf/redirect
|
||||
toolchainUrl.UNIX.X86_64=https\://api.foojay.io/disco/v3.0/ids/67a0fee3c4236b6397dcbe8575ca2011/redirect
|
||||
toolchainUrl.WINDOWS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/39846e8427e64a3824c13e399d7d813c/redirect
|
||||
toolchainUrl.WINDOWS.X86_64=https\://api.foojay.io/disco/v3.0/ids/ac151d55def6b6a9a159dc4cb4642851/redirect
|
||||
toolchainVendor=JETBRAINS
|
||||
toolchainVersion=21
|
||||
@@ -5,6 +5,9 @@ pluginManagement {
|
||||
gradlePluginPortal()
|
||||
}
|
||||
}
|
||||
plugins {
|
||||
id("org.gradle.toolchains.foojay-resolver-convention") version "1.0.0"
|
||||
}
|
||||
|
||||
dependencyResolutionManagement {
|
||||
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
|
||||
|
||||
Reference in new issue
Block a user