mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-11-15 10:40:01 +01:00
Merge branch 'master' into TemporaryHackishBranch
# Conflicts: # Common/KeyMap.cpp # UI/EmuScreen.cpp # Just because I finally improved that code and added to master:)
This commit is contained in:
commit
3ebd810bbd
11 files changed
+39
-31
No files matched your search
@@ -1432,7 +1432,7 @@ static Module *__KernelLoadELFFromPtr(const u8 *ptr, size_t elfSize, u32 loadAdd
|
||||
delete [] newptr;
|
||||
|
||||
if (!reportedModule && IsHLEVersionedModule(modinfo->name)) {
|
||||
INFO_LOG_REPORT(SCEMODULE, "Loading module %s with version %04x, devkit %08x", modinfo->name, modinfo->moduleVersion, devkitVersion);
|
||||
INFO_LOG(SCEMODULE, "Loading module %s with version %04x, devkit %08x", modinfo->name, modinfo->moduleVersion, devkitVersion);
|
||||
|
||||
if (!strcmp(modinfo->name, "sceMpeg_library")) {
|
||||
__MpegLoadModule(modinfo->moduleVersion);
|
||||
|
||||
@@ -394,7 +394,7 @@ void SoftwareTransform(
|
||||
// TODO: This bleeds outside the play area in non-buffered mode. Big deal? Probably not.
|
||||
// TODO: Allow creating a depth clear and a color draw.
|
||||
bool reallyAClear = false;
|
||||
if (maxIndex > 1 && prim == GE_PRIM_RECTANGLES && gstate.isModeClear()) {
|
||||
if (maxIndex > 1 && prim == GE_PRIM_RECTANGLES && gstate.isModeClear() && params->allowClear) {
|
||||
int scissorX2 = gstate.getScissorX2() + 1;
|
||||
int scissorY2 = gstate.getScissorY2() + 1;
|
||||
reallyAClear = IsReallyAClear(transformed, maxIndex, scissorX2, scissorY2);
|
||||
|
||||
@@ -44,6 +44,7 @@ struct SoftwareTransformParams {
|
||||
TransformedVertex *transformedExpanded;
|
||||
FramebufferManagerCommon *fbman;
|
||||
TextureCacheCommon *texCache;
|
||||
bool allowClear;
|
||||
bool allowSeparateAlphaClear;
|
||||
};
|
||||
|
||||
|
||||
@@ -635,16 +635,14 @@ rotateVBO:
|
||||
bool drawIndexed = false;
|
||||
u16 *inds = decIndex;
|
||||
TransformedVertex *drawBuffer = NULL;
|
||||
SoftwareTransformResult result;
|
||||
memset(&result, 0, sizeof(result));
|
||||
|
||||
SoftwareTransformParams params;
|
||||
memset(¶ms, 0, sizeof(params));
|
||||
SoftwareTransformResult result{};
|
||||
SoftwareTransformParams params{};
|
||||
params.decoded = decoded;
|
||||
params.transformed = transformed;
|
||||
params.transformedExpanded = transformedExpanded;
|
||||
params.fbman = framebufferManager_;
|
||||
params.texCache = textureCache_;
|
||||
params.allowClear = true;
|
||||
params.allowSeparateAlphaClear = false; // D3D11 doesn't support separate alpha clears
|
||||
|
||||
int maxIndex = indexGen.MaxIndex();
|
||||
|
||||
@@ -599,16 +599,14 @@ rotateVBO:
|
||||
bool drawIndexed = false;
|
||||
u16 *inds = decIndex;
|
||||
TransformedVertex *drawBuffer = NULL;
|
||||
SoftwareTransformResult result;
|
||||
memset(&result, 0, sizeof(result));
|
||||
|
||||
SoftwareTransformParams params;
|
||||
memset(¶ms, 0, sizeof(params));
|
||||
SoftwareTransformResult result{};
|
||||
SoftwareTransformParams params{};
|
||||
params.decoded = decoded;
|
||||
params.transformed = transformed;
|
||||
params.transformedExpanded = transformedExpanded;
|
||||
params.fbman = framebufferManager_;
|
||||
params.texCache = textureCache_;
|
||||
params.allowClear = true;
|
||||
params.allowSeparateAlphaClear = true;
|
||||
|
||||
int maxIndex = indexGen.MaxIndex();
|
||||
|
||||
@@ -670,17 +670,15 @@ rotateVBO:
|
||||
int numTrans;
|
||||
bool drawIndexed = false;
|
||||
u16 *inds = decIndex;
|
||||
SoftwareTransformResult result;
|
||||
memset(&result, 0, sizeof(result));
|
||||
|
||||
SoftwareTransformResult result{};
|
||||
// TODO: Keep this static? Faster than repopulating?
|
||||
SoftwareTransformParams params;
|
||||
memset(¶ms, 0, sizeof(params));
|
||||
SoftwareTransformParams params{};
|
||||
params.decoded = decoded;
|
||||
params.transformed = transformed;
|
||||
params.transformedExpanded = transformedExpanded;
|
||||
params.fbman = framebufferManager_;
|
||||
params.texCache = textureCache_;
|
||||
params.allowClear = true;
|
||||
params.allowSeparateAlphaClear = true;
|
||||
|
||||
int maxIndex = indexGen.MaxIndex();
|
||||
|
||||
@@ -897,17 +897,17 @@ void DrawEngineVulkan::DoFlush() {
|
||||
int numTrans = 0;
|
||||
bool drawIndexed = false;
|
||||
u16 *inds = decIndex;
|
||||
TransformedVertex *drawBuffer = NULL;
|
||||
SoftwareTransformResult result;
|
||||
memset(&result, 0, sizeof(result));
|
||||
|
||||
SoftwareTransformParams params;
|
||||
memset(¶ms, 0, sizeof(params));
|
||||
TransformedVertex *drawBuffer = nullptr;
|
||||
SoftwareTransformResult result{};
|
||||
SoftwareTransformParams params{};
|
||||
params.decoded = decoded;
|
||||
params.transformed = transformed;
|
||||
params.transformedExpanded = transformedExpanded;
|
||||
params.fbman = framebufferManager_;
|
||||
params.texCache = textureCache_;
|
||||
// We have to force drawing of primitives if g_Config.iRenderingMode == 0 (non-buffered) because Vulkan clears
|
||||
// do not respect scissor rects.
|
||||
params.allowClear = g_Config.iRenderingMode != 0;
|
||||
params.allowSeparateAlphaClear = false;
|
||||
|
||||
int maxIndex = indexGen.MaxIndex();
|
||||
|
||||
+17
-2
@@ -457,12 +457,27 @@ void EmuScreen::onVKeyDown(int virtualKeyCode) {
|
||||
break;
|
||||
}
|
||||
|
||||
#ifndef MOBILE_DEVICE
|
||||
case VIRTKEY_RECORD:
|
||||
{
|
||||
g_Config.bDumpFrames = !g_Config.bDumpFrames;
|
||||
g_Config.bDumpAudio = !g_Config.bDumpAudio;
|
||||
if (g_Config.bDumpFrames == g_Config.bDumpAudio) {
|
||||
g_Config.bDumpFrames = !g_Config.bDumpFrames;
|
||||
g_Config.bDumpAudio = !g_Config.bDumpAudio;
|
||||
} else {
|
||||
// This hotkey should always toggle both audio and video together.
|
||||
// So let's make sure that's the only outcome even if video OR audio was already being dumped.
|
||||
if (g_Config.bDumpFrames) {
|
||||
AVIDump::Stop();
|
||||
AVIDump::Start(PSP_CoreParameter().renderWidth, PSP_CoreParameter().renderHeight);
|
||||
g_Config.bDumpAudio = true;
|
||||
} else {
|
||||
WAVDump::Reset();
|
||||
g_Config.bDumpFrames = true;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
|
||||
case VIRTKEY_AXIS_X_MIN:
|
||||
case VIRTKEY_AXIS_X_MAX:
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="org.ppsspp.ppsspp"
|
||||
android:installLocation="auto"
|
||||
android:versionCode="15000000"
|
||||
android:versionName="1.5.0.0">
|
||||
<!-- For the next release: Note that versionCode should be in the format xyzzrrrr -->
|
||||
android:versionCode="15030000"
|
||||
android:versionName="1.5.3.0">
|
||||
<!-- Note that versionCode should be in the format xyzzrrrr -->
|
||||
|
||||
<uses-sdk
|
||||
android:minSdkVersion="9"
|
||||
|
||||
+1
-1
Submodule assets/lang updated: c37028e6b6...6f00429315.
@@ -594,8 +594,6 @@ void VulkanQueueRunner::PerformBindFramebufferAsRenderTarget(const VKRStep &step
|
||||
w = vulkan_->GetBackbufferWidth();
|
||||
h = vulkan_->GetBackbufferHeight();
|
||||
renderPass = GetBackbufferRenderPass();
|
||||
_dbg_assert_msg_(G3D, step.render.color == VKRRenderPassAction::CLEAR || step.render.color == VKRRenderPassAction::DONT_CARE, "Backbuffer pass should only be CLEAR or DONT_CARE");
|
||||
_dbg_assert_msg_(G3D, step.render.depthStencil == VKRRenderPassAction::CLEAR || step.render.depthStencil == VKRRenderPassAction::DONT_CARE, "Backbuffer pass should only be CLEAR or DONT_CARE");
|
||||
Uint8x4ToFloat4(clearVal[0].color.float32, step.render.clearColor);
|
||||
numClearVals = 2; // We don't bother with a depth buffer here.
|
||||
clearVal[1].depthStencil.depth = 0.0f;
|
||||
|
||||
Reference in new issue
Block a user