Merge branch 'master' into TemporaryHackishBranch

This commit is contained in:
LunaMoo committed 2017-12-01 12:10:04 +01:00
commit c98ce8338a
6 files changed
+16 -10

No files matched your search

+1 -1
View File
@@ -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 {
+4 -1
View File
@@ -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;
}
+7 -2
View File
@@ -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
-3
View File
@@ -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();
}
+2 -1
View File
@@ -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_);
+2 -2
View File
@@ -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];
}