mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-11-15 02:29:51 +01:00
Merge branch 'master' into TemporaryHackishBranch
This commit is contained in:
commit
c98ce8338a
6 files changed
+16
-10
No files matched your search
@@ -79,7 +79,7 @@ static u32 sceDmacMemcpy(u32 dst, u32 src, u32 size) {
|
||||
}
|
||||
|
||||
if (dmacMemcpyDeadline > CoreTiming::GetTicks()) {
|
||||
WARN_LOG_REPORT(HLE, "sceDmacMemcpy(dest=%08x, src=%08x, size=%i): overlapping read", dst, src, size);
|
||||
WARN_LOG_REPORT_ONCE(overlapDmacMemcpy, HLE, "sceDmacMemcpy(dest=%08x, src=%08x, size=%d): overlapping read", dst, src, size);
|
||||
// TODO: Should block, seems like copy doesn't start until previous finishes.
|
||||
// Might matter for overlapping copies.
|
||||
} else {
|
||||
|
||||
@@ -77,7 +77,7 @@ void ComputeVertexShaderID(ShaderID *id_out, u32 vertType, bool useHWTransform)
|
||||
|
||||
ShaderID id;
|
||||
id.SetBit(VS_BIT_LMODE, lmode);
|
||||
id.SetBit(VS_BIT_IS_THROUGH, gstate.isModeThrough());
|
||||
id.SetBit(VS_BIT_IS_THROUGH, isModeThrough);
|
||||
id.SetBit(VS_BIT_ENABLE_FOG, enableFog);
|
||||
id.SetBit(VS_BIT_HAS_COLOR, hasColor);
|
||||
|
||||
@@ -143,6 +143,9 @@ void ComputeVertexShaderID(ShaderID *id_out, u32 vertType, bool useHWTransform)
|
||||
|
||||
id.SetBit(VS_BIT_FLATSHADE, doFlatShading);
|
||||
|
||||
// These two bits cannot be combined, otherwise havoc occurs. We get reports that indicate this happened somehow... "ERROR: 0:14: 'u_proj' : undeclared identifier"
|
||||
_dbg_assert_msg_(G3D, !id.Bit(VS_BIT_USE_HW_TRANSFORM) || !id.Bit(VS_BIT_IS_THROUGH), "Can't have both THROUGH and USE_HW_TRANSFORM together!");
|
||||
|
||||
*id_out = id;
|
||||
}
|
||||
|
||||
|
||||
@@ -773,10 +773,9 @@ Shader *ShaderManagerGLES::ApplyVertexShader(int prim, u32 vertType, ShaderID *V
|
||||
gstate_c.CleanUniforms();
|
||||
}
|
||||
|
||||
bool useHWTransform = CanUseHardwareTransform(prim);
|
||||
|
||||
if (gstate_c.IsDirty(DIRTY_VERTEXSHADER_STATE)) {
|
||||
gstate_c.Clean(DIRTY_VERTEXSHADER_STATE);
|
||||
bool useHWTransform = CanUseHardwareTransform(prim);
|
||||
ComputeVertexShaderID(VSID, vertType, useHWTransform);
|
||||
} else {
|
||||
*VSID = lastVSID_;
|
||||
@@ -987,6 +986,12 @@ void ShaderManagerGLES::LoadAndPrecompile(const std::string &filename) {
|
||||
return;
|
||||
}
|
||||
if (!vsCache_.Get(id)) {
|
||||
if (id.Bit(VS_BIT_IS_THROUGH) && id.Bit(VS_BIT_USE_HW_TRANSFORM)) {
|
||||
// Clearly corrupt, bailing.
|
||||
ERROR_LOG_REPORT(G3D, "Corrupt shader cache: Both IS_THROUGH and USE_HW_TRANSFORM set.");
|
||||
return;
|
||||
}
|
||||
|
||||
Shader *vs = CompileVertexShader(id);
|
||||
if (vs->Failed()) {
|
||||
// Give up on using the cache, just bail. We can't safely create the fallback shaders here
|
||||
|
||||
@@ -583,8 +583,6 @@ void FramebufferManagerVulkan::EndFrame() {
|
||||
}
|
||||
|
||||
void FramebufferManagerVulkan::DeviceLost() {
|
||||
vulkan2D_->DeviceLost();
|
||||
|
||||
DestroyAllFBOs();
|
||||
DestroyDeviceObjects();
|
||||
}
|
||||
@@ -593,7 +591,6 @@ void FramebufferManagerVulkan::DeviceRestore(VulkanContext *vulkan, Draw::DrawCo
|
||||
vulkan_ = vulkan;
|
||||
draw_ = draw;
|
||||
|
||||
vulkan2D_->DeviceRestore(vulkan_);
|
||||
InitDeviceObjects();
|
||||
}
|
||||
|
||||
|
||||
@@ -609,8 +609,8 @@ void GPU_Vulkan::DestroyDeviceObjects() {
|
||||
|
||||
void GPU_Vulkan::DeviceLost() {
|
||||
DestroyDeviceObjects();
|
||||
|
||||
framebufferManagerVulkan_->DeviceLost();
|
||||
vulkan2D_.DeviceLost();
|
||||
drawEngine_.DeviceLost();
|
||||
pipelineManager_->DeviceLost();
|
||||
textureCacheVulkan_->DeviceLost();
|
||||
@@ -628,6 +628,7 @@ void GPU_Vulkan::DeviceRestore() {
|
||||
UpdateCmdInfo();
|
||||
|
||||
framebufferManagerVulkan_->DeviceRestore(vulkan_, draw_);
|
||||
vulkan2D_.DeviceRestore(vulkan_);
|
||||
drawEngine_.DeviceRestore(vulkan_, draw_);
|
||||
pipelineManager_->DeviceRestore(vulkan_);
|
||||
textureCacheVulkan_->DeviceRestore(vulkan_, draw_);
|
||||
|
||||
@@ -221,7 +221,7 @@ void CwCheatScreen::ParseCheatDB(std::string line, std::vector<std::string> titl
|
||||
continue;
|
||||
}
|
||||
loop:;
|
||||
} while (fs.good() && line[0] != '_' && line[1] != 'S');
|
||||
} while (fs.good() && line[0] == '_' && line[1] != 'S');
|
||||
finished = true;
|
||||
}
|
||||
if (finished == true)
|
||||
@@ -236,7 +236,7 @@ void CwCheatScreen::ParseCheatDB(std::string line, std::vector<std::string> titl
|
||||
File::OpenCPPFile(fs, activeCheatFile, std::ios::out | std::ios::app);
|
||||
|
||||
auto it = title.begin();
|
||||
if (title2[0] != '_' && title2[1] != 'S' && it != title.end() && (++it) != title.end()) {
|
||||
if (title2[0] == '_' && title2[1] != 'S' && it != title.end() && (++it) != title.end()) {
|
||||
fs << title[0] << "\n" << title[1];
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user