Update PCSX2.

This commit is contained in:
C.W. Betts
2023-03-27 17:28:31 -06:00
parent 0629913ac6
commit bbb2b35d3f
8 changed files with 75 additions and 67 deletions
+2 -2
View File
@@ -806,9 +806,9 @@ void Host::ReleaseHostDisplay(bool clear_state)
}
}
bool Host::BeginPresentFrame(bool frame_skip)
HostDisplay::PresentResult Host::BeginPresentFrame(bool frame_skip)
{
GET_CURRENT_OR_RETURN(false);
GET_CURRENT_OR_RETURN(HostDisplay::PresentResult::DeviceLost);
return g_host_display.get()->BeginPresent(frame_skip);
}
+43 -26
View File
@@ -492,9 +492,9 @@ GSTexture* GSDeviceMTL::CreateSurface(GSTexture::Type type, int width, int heigh
MTLTextureDescriptor* desc = [MTLTextureDescriptor
texture2DDescriptorWithPixelFormat:fmt
width:std::max(1, std::min(width, m_dev.features.max_texsize))
height:std::max(1, std::min(height, m_dev.features.max_texsize))
mipmapped:levels > 1];
width:std::max(1, std::min(width, m_dev.features.max_texsize))
height:std::max(1, std::min(height, m_dev.features.max_texsize))
mipmapped:levels > 1];
if (levels > 1)
[desc setMipmapLevelCount:levels];
@@ -541,7 +541,7 @@ GSTexture* GSDeviceMTL::CreateSurface(GSTexture::Type type, int width, int heigh
}
}}
void GSDeviceMTL::DoMerge(GSTexture* sTex[3], GSVector4* sRect, GSTexture* dTex, GSVector4* dRect, const GSRegPMODE& PMODE, const GSRegEXTBUF& EXTBUF, const GSVector4& c)
void GSDeviceMTL::DoMerge(GSTexture* sTex[3], GSVector4* sRect, GSTexture* dTex, GSVector4* dRect, const GSRegPMODE& PMODE, const GSRegEXTBUF& EXTBUF, const GSVector4& c, const bool linear)
{ @autoreleasepool {
id<MTLCommandBuffer> cmdbuf = GetRenderCmdBuf();
GSScopedDebugGroupMTL dbg(cmdbuf, @"DoMerge");
@@ -562,12 +562,12 @@ void GSDeviceMTL::DoMerge(GSTexture* sTex[3], GSVector4* sRect, GSTexture* dTex,
{
// 2nd output is enabled and selected. Copy it to destination so we can blend it with 1st output
// Note: value outside of dRect must contains the background color (c)
StretchRect(sTex[1], sRect[1], dTex, dRect[1], ShaderConvert::COPY);
StretchRect(sTex[1], sRect[1], dTex, dRect[1], ShaderConvert::COPY, linear);
}
// Save 2nd output
if (feedback_write_2) // FIXME I'm not sure dRect[1] is always correct
DoStretchRect(dTex, full_r, sTex[2], dRect[1], m_convert_pipeline[static_cast<int>(ShaderConvert::YUV)], true, LoadAction::DontCareIfFull, &cb_yuv, sizeof(cb_yuv));
DoStretchRect(dTex, full_r, sTex[2], dRect[1], m_convert_pipeline[static_cast<int>(ShaderConvert::YUV)], linear, LoadAction::DontCareIfFull, &cb_yuv, sizeof(cb_yuv));
if (feedback_write_2_but_blend_bg)
ClearRenderTarget(dTex, c);
@@ -581,34 +581,26 @@ void GSDeviceMTL::DoMerge(GSTexture* sTex[3], GSVector4* sRect, GSTexture* dTex,
if (PMODE.MMOD == 1)
{
// Blend with a constant alpha
DoStretchRect(sTex[0], sRect[0], dTex, dRect[0], pipeline, true, LoadAction::Load, &cb_c, sizeof(cb_c));
DoStretchRect(sTex[0], sRect[0], dTex, dRect[0], pipeline, linear, LoadAction::Load, &cb_c, sizeof(cb_c));
}
else
{
// Blend with 2 * input alpha
DoStretchRect(sTex[0], sRect[0], dTex, dRect[0], pipeline, true, LoadAction::Load, nullptr, 0);
DoStretchRect(sTex[0], sRect[0], dTex, dRect[0], pipeline, linear, LoadAction::Load, nullptr, 0);
}
}
if (feedback_write_1) // FIXME I'm not sure dRect[0] is always correct
StretchRect(dTex, full_r, sTex[2], dRect[0], ShaderConvert::YUV);
StretchRect(dTex, full_r, sTex[2], dRect[0], ShaderConvert::YUV, linear);
}}
void GSDeviceMTL::DoInterlace(GSTexture* sTex, GSTexture* dTex, int shader, bool linear, float yoffset, int bufIdx)
void GSDeviceMTL::DoInterlace(GSTexture* sTex, const GSVector4& sRect, GSTexture* dTex, const GSVector4& dRect, ShaderInterlace shader, bool linear, const InterlaceConstantBuffer& cb)
{ @autoreleasepool {
id<MTLCommandBuffer> cmdbuf = GetRenderCmdBuf();
GSScopedDebugGroupMTL dbg(cmdbuf, @"DoInterlace");
GSVector4 ds = GSVector4(dTex->GetSize());
GSVector4 sRect(0, 0, 1, 1);
GSVector4 dRect(0.f, yoffset, ds.x, ds.y + yoffset);
GSMTLInterlacePSUniform cb = {};
cb.ZrH = {static_cast<float>(bufIdx), 1.0f / ds.y, ds.y, MAD_SENSITIVITY};
const bool can_discard = shader == 0 || shader == 3;
DoStretchRect(sTex, sRect, dTex, dRect, m_interlace_pipeline[shader], linear, !can_discard ? LoadAction::DontCareIfFull : LoadAction::Load, &cb, sizeof(cb));
const bool can_discard = shader == ShaderInterlace::WEAVE || shader == ShaderInterlace::MAD_BUFFER;
DoStretchRect(sTex, sRect, dTex, dRect, m_interlace_pipeline[static_cast<int>(shader)], linear, !can_discard ? LoadAction::DontCareIfFull : LoadAction::Load, &cb, sizeof(cb));
}}
void GSDeviceMTL::DoFXAA(GSTexture* sTex, GSTexture* dTex)
@@ -740,6 +732,7 @@ bool GSDeviceMTL::Create()
m_features.bptc_textures = true;
m_features.framebuffer_fetch = m_dev.features.framebuffer_fetch;
m_features.dual_source_blend = true;
m_features.clip_control = true;
m_features.stencil_buffer = true;
m_features.cas_sharpening = true;
@@ -747,8 +740,6 @@ bool GSDeviceMTL::Create()
{
// Init metal stuff
m_fn_constants = MRCTransfer([MTLFunctionConstantValues new]);
vector_float2 upscale2 = vector2(GSConfig.UpscaleMultiplier, GSConfig.UpscaleMultiplier);
[m_fn_constants setConstantValue:&upscale2 type:MTLDataTypeFloat2 atIndex:GSMTLConstantIndex_SCALING_FACTOR];
setFnConstantB(m_fn_constants, m_dev.features.framebuffer_fetch, GSMTLConstantIndex_FRAMEBUFFER_FETCH);
m_draw_sync_fence = MRCTransfer([m_dev.dev newFence]);
@@ -1117,7 +1108,7 @@ void GSDeviceMTL::CopyRect(GSTexture* sTex, GSTexture* dTex, const GSVector4i& r
[encoder endEncoding];
}}
void GSDeviceMTL::DoStretchRect(GSTexture* sTex, const GSVector4& sRect, GSTexture* dTex, const GSVector4& dRect, id<MTLRenderPipelineState> pipeline, bool linear, LoadAction load_action, void* frag_uniform, size_t frag_uniform_len)
void GSDeviceMTL::DoStretchRect(GSTexture* sTex, const GSVector4& sRect, GSTexture* dTex, const GSVector4& dRect, id<MTLRenderPipelineState> pipeline, bool linear, LoadAction load_action, const void* frag_uniform, size_t frag_uniform_len)
{
FlushClears(sTex);
@@ -1253,9 +1244,9 @@ void GSDeviceMTL::PresentRect(GSTexture* sTex, const GSVector4& sRect, GSTexture
}
}}
void GSDeviceMTL::UpdateCLUTTexture(GSTexture* sTex, u32 offsetX, u32 offsetY, GSTexture* dTex, u32 dOffset, u32 dSize)
void GSDeviceMTL::UpdateCLUTTexture(GSTexture* sTex, float sScale, u32 offsetX, u32 offsetY, GSTexture* dTex, u32 dOffset, u32 dSize)
{
GSMTLCLUTConvertPSUniform uniform = { ToSimd(sTex->GetScale()), {offsetX, offsetY}, dOffset };
GSMTLCLUTConvertPSUniform uniform = { sScale, {offsetX, offsetY}, dOffset };
const bool is_clut4 = dSize == 16;
const GSVector4i dRect(0, 0, dSize, 1);
@@ -1265,6 +1256,19 @@ void GSDeviceMTL::UpdateCLUTTexture(GSTexture* sTex, u32 offsetX, u32 offsetY, G
RenderCopy(sTex, m_clut_pipeline[!is_clut4], dRect);
}
void GSDeviceMTL::ConvertToIndexedTexture(GSTexture* sTex, float sScale, u32 offsetX, u32 offsetY, u32 SBW, u32 SPSM, GSTexture* dTex, u32 DBW, u32 DPSM)
{ @autoreleasepool {
const ShaderConvert shader = ShaderConvert::RGBA_TO_8I;
id<MTLRenderPipelineState> pipeline = m_convert_pipeline[static_cast<int>(shader)];
if (!pipeline)
[NSException raise:@"StretchRect Missing Pipeline" format:@"No pipeline for %d", static_cast<int>(shader)];
GSMTLIndexedConvertPSUniform uniform = { sScale, SBW, DBW };
const GSVector4 dRect(0, 0, dTex->GetWidth(), dTex->GetHeight());
DoStretchRect(sTex, GSVector4::zero(), dTex, dRect, pipeline, false, LoadAction::DontCareIfFull, &uniform, sizeof(uniform));
}}
void GSDeviceMTL::FlushClears(GSTexture* tex)
{
if (tex)
@@ -1371,16 +1375,19 @@ void GSDeviceMTL::MRESetHWPipelineState(GSHWDrawConfig::VSSelector vssel, GSHWDr
setFnConstantB(m_fn_constants, pssel.ltf, GSMTLConstantIndex_PS_LTF);
setFnConstantB(m_fn_constants, pssel.shuffle, GSMTLConstantIndex_PS_SHUFFLE);
setFnConstantB(m_fn_constants, pssel.read_ba, GSMTLConstantIndex_PS_READ_BA);
setFnConstantB(m_fn_constants, pssel.real16src, GSMTLConstantIndex_PS_READ16_SRC);
setFnConstantB(m_fn_constants, pssel.write_rg, GSMTLConstantIndex_PS_WRITE_RG);
setFnConstantB(m_fn_constants, pssel.fbmask, GSMTLConstantIndex_PS_FBMASK);
setFnConstantI(m_fn_constants, pssel.blend_a, GSMTLConstantIndex_PS_BLEND_A);
setFnConstantI(m_fn_constants, pssel.blend_b, GSMTLConstantIndex_PS_BLEND_B);
setFnConstantI(m_fn_constants, pssel.blend_c, GSMTLConstantIndex_PS_BLEND_C);
setFnConstantI(m_fn_constants, pssel.blend_d, GSMTLConstantIndex_PS_BLEND_D);
setFnConstantI(m_fn_constants, pssel.clr_hw, GSMTLConstantIndex_PS_CLR_HW);
setFnConstantI(m_fn_constants, pssel.blend_hw, GSMTLConstantIndex_PS_BLEND_HW);
setFnConstantB(m_fn_constants, pssel.a_masked, GSMTLConstantIndex_PS_A_MASKED);
setFnConstantB(m_fn_constants, pssel.hdr, GSMTLConstantIndex_PS_HDR);
setFnConstantB(m_fn_constants, pssel.colclip, GSMTLConstantIndex_PS_COLCLIP);
setFnConstantI(m_fn_constants, pssel.blend_mix, GSMTLConstantIndex_PS_BLEND_MIX);
setFnConstantB(m_fn_constants, pssel.round_inv, GSMTLConstantIndex_PS_ROUND_INV);
setFnConstantB(m_fn_constants, pssel.fixed_one_a, GSMTLConstantIndex_PS_FIXED_ONE_A);
setFnConstantB(m_fn_constants, pssel.pabe, GSMTLConstantIndex_PS_PABE);
setFnConstantB(m_fn_constants, pssel.no_color, GSMTLConstantIndex_PS_NO_COLOR);
@@ -1595,6 +1602,7 @@ static_assert(offsetof(GSHWDrawConfig::PSConstantBuffer, ChannelShuffle) == of
static_assert(offsetof(GSHWDrawConfig::PSConstantBuffer, TCOffsetHack) == offsetof(GSMTLMainPSUniform, tc_offset));
static_assert(offsetof(GSHWDrawConfig::PSConstantBuffer, STScale) == offsetof(GSMTLMainPSUniform, st_scale));
static_assert(offsetof(GSHWDrawConfig::PSConstantBuffer, DitherMatrix) == offsetof(GSMTLMainPSUniform, dither_matrix));
static_assert(offsetof(GSHWDrawConfig::PSConstantBuffer, ScaleFactor) == offsetof(GSMTLMainPSUniform, scale_factor));
void GSDeviceMTL::SetupDestinationAlpha(GSTexture* rt, GSTexture* ds, const GSVector4i& r, bool datm)
{
@@ -1699,6 +1707,15 @@ void GSDeviceMTL::RenderHW(GSHWDrawConfig& config)
config.ds = nullptr;
if (!config.ds && m_current_render.color_target == rt && stencil == m_current_render.stencil_target && m_current_render.depth_target != config.tex)
config.ds = m_current_render.depth_target;
if (!rt && !config.ds)
{
// If we were rendering depth-only and depth gets cleared by the above check, that turns into rendering nothing, which should be a no-op
pxAssertDev(0, "RenderHW was given a completely useless draw call!");
[m_current_render.encoder insertDebugSignpost:@"Skipped no-color no-depth draw"];
if (primid_tex)
Recycle(primid_tex);
return;
}
BeginRenderPass(@"RenderHW", rt, MTLLoadActionLoad, config.ds, MTLLoadActionLoad, stencil, MTLLoadActionLoad);
id<MTLRenderCommandEncoder> mtlenc = m_current_render.encoder;
+15 -1
View File
@@ -119,9 +119,23 @@ bool GSDumpReplayer::Initialize(const char* filename)
return true;
}
void GSDumpReplayer::Reset()
bool GSDumpReplayer::ChangeDump(const char* filename)
{
Console.WriteLn("(GSDumpReplayer) Switching to '%s'...", filename);
std::unique_ptr<GSDumpFile> new_dump(GSDumpFile::OpenGSDump(filename));
if (!new_dump || !new_dump->ReadFile())
{
Host::ReportFormattedErrorAsync("GSDumpReplayer", "Failed to open or read '%s'.", filename);
return false;
}
s_dump_file = std::move(new_dump);
s_current_packet = 0;
// Don't forget to reset the GS!
GSDumpReplayerCpuReset();
return true;
}
void GSDumpReplayer::Shutdown()
+5 -4
View File
@@ -95,6 +95,7 @@ void MetalHostDisplay::DetachSurfaceOnMainThread()
bool MetalHostDisplay::CreateDevice(const WindowInfo& wi, VsyncMode vsync)
{ @autoreleasepool {
m_window_info = wi;
pxAssertRel(!m_dev.dev, "Device already created!");
m_dev=GSMTLDevice(MRCRetain([_current metalDevice]));
m_queue = MRCTransfer([m_dev.dev newCommandQueue]);
@@ -238,14 +239,14 @@ void MetalHostDisplay::UpdateTexture(HostDisplayTexture* texture, u32 x, u32 y,
static bool s_capture_next = false;
bool MetalHostDisplay::BeginPresent(bool frame_skip)
HostDisplay::PresentResult MetalHostDisplay::BeginPresent(bool frame_skip)
{ @autoreleasepool {
GSDeviceMTL* dev = static_cast<GSDeviceMTL*>(g_gs_device.get());
if (dev && m_capture_start_frame && dev->FrameNo() == m_capture_start_frame)
s_capture_next = true;
if (frame_skip || m_window_info.type == WindowInfo::Type::Surfaceless || !g_gs_device)
{
return false;
return PresentResult::FrameSkipped;
}
id<MTLCommandBuffer> buf = dev->GetRenderCmdBuf();
m_current_drawable = MRCRetain([m_layer nextDrawable]);
@@ -255,7 +256,7 @@ bool MetalHostDisplay::BeginPresent(bool frame_skip)
[buf pushDebugGroup:@"Present Skipped"];
[buf popDebugGroup];
dev->FlushEncoders();
return false;
return PresentResult::FrameSkipped;
}
[m_pass_desc colorAttachments][0].texture = [m_current_drawable texture];
id<MTLRenderCommandEncoder> enc = [buf renderCommandEncoderWithDescriptor:m_pass_desc];
@@ -263,7 +264,7 @@ bool MetalHostDisplay::BeginPresent(bool frame_skip)
dev->m_current_render.encoder = MRCRetain(enc);
return true;
return PresentResult::OK;
}}
void MetalHostDisplay::EndPresent()
+3 -3
View File
@@ -337,11 +337,11 @@ bool OpenGLHostDisplay::UpdateImGuiFontTexture()
return true;
}
bool OpenGLHostDisplay::BeginPresent(bool frame_skip)
HostDisplay::PresentResult OpenGLHostDisplay::BeginPresent(bool frame_skip)
{
if (frame_skip || m_window_info.type == WindowInfo::Type::Surfaceless)
{
return false;
return PresentResult::FrameSkipped;
}
glDisable(GL_SCISSOR_TEST);
@@ -350,7 +350,7 @@ bool OpenGLHostDisplay::BeginPresent(bool frame_skip)
glClear(GL_COLOR_BUFFER_BIT);
glViewport(0, 0, m_window_info.surface_width, m_window_info.surface_height);
return true;
return PresentResult::OK;
}
void OpenGLHostDisplay::EndPresent()
+4 -28
View File
@@ -154,8 +154,6 @@
551AA47F27935D8800658151 /* crc64_fast.c in Sources */ = {isa = PBXBuildFile; fileRef = 5517F0CB263D4838000219EC /* crc64_fast.c */; };
551AA48027935D9200658151 /* crc64_table.c in Sources */ = {isa = PBXBuildFile; fileRef = 5517F0C1263D4838000219EC /* crc64_table.c */; };
551AA48127935D9A00658151 /* crc32_table.c in Sources */ = {isa = PBXBuildFile; fileRef = 5517F0BA263D4838000219EC /* crc32_table.c */; };
551AA48927935DF400658151 /* GSTextureNull.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 551AA48327935DF400658151 /* GSTextureNull.cpp */; };
551AA48A27935DF400658151 /* GSDeviceNull.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 551AA48427935DF400658151 /* GSDeviceNull.cpp */; };
551AA48B27935DF400658151 /* GSRendererNull.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 551AA48527935DF400658151 /* GSRendererNull.cpp */; };
551AA4A927935E9100658151 /* EthernetFrame.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 551AA49027935E9100658151 /* EthernetFrame.cpp */; };
551AA4AA27935E9100658151 /* UDP_Packet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 551AA49327935E9100658151 /* UDP_Packet.cpp */; };
@@ -1829,8 +1827,6 @@
551AA1082792AB1700658151 /* GS.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GS.cpp; sourceTree = "<group>"; };
551AA1092792AB1700658151 /* GSLzma.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GSLzma.cpp; sourceTree = "<group>"; };
551AA10A2792AB1700658151 /* GSDrawingContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GSDrawingContext.h; sourceTree = "<group>"; };
551AA1112792AB1700658151 /* GSSetting.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GSSetting.cpp; sourceTree = "<group>"; };
551AA1122792AB1700658151 /* GSSetting.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GSSetting.h; sourceTree = "<group>"; };
551AA1142792AB1700658151 /* GSVector.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GSVector.cpp; sourceTree = "<group>"; };
551AA1152792AB1700658151 /* GSClut.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GSClut.cpp; sourceTree = "<group>"; };
551AA1162792AB1700658151 /* GSPerfMon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GSPerfMon.h; sourceTree = "<group>"; };
@@ -1873,12 +1869,8 @@
551AA4182792C82A00658151 /* PINE.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PINE.cpp; sourceTree = "<group>"; };
551AA4192792C82A00658151 /* PINE.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PINE.h; sourceTree = "<group>"; };
551AA41B2792C85500658151 /* SingleRegisterTypes.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SingleRegisterTypes.h; sourceTree = "<group>"; };
551AA48327935DF400658151 /* GSTextureNull.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GSTextureNull.cpp; sourceTree = "<group>"; };
551AA48427935DF400658151 /* GSDeviceNull.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GSDeviceNull.cpp; sourceTree = "<group>"; };
551AA48527935DF400658151 /* GSRendererNull.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GSRendererNull.cpp; sourceTree = "<group>"; };
551AA48627935DF400658151 /* GSRendererNull.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GSRendererNull.h; sourceTree = "<group>"; };
551AA48727935DF400658151 /* GSDeviceNull.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GSDeviceNull.h; sourceTree = "<group>"; };
551AA48827935DF400658151 /* GSTextureNull.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GSTextureNull.h; sourceTree = "<group>"; };
551AA48E27935E9100658151 /* Payload.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Payload.h; sourceTree = "<group>"; };
551AA48F27935E9100658151 /* NetLib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NetLib.h; sourceTree = "<group>"; };
551AA49027935E9100658151 /* EthernetFrame.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EthernetFrame.cpp; sourceTree = "<group>"; };
@@ -5153,7 +5145,6 @@
55B1EFCE295BA71D00DB297F /* MultiISA.cpp */,
55B1EFD0295BA71D00DB297F /* MultiISA.h */,
551AA08B2792AB1700658151 /* Renderers */,
551AA10B2792AB1700658151 /* Window */,
);
path = GS;
sourceTree = "<group>";
@@ -5258,15 +5249,6 @@
path = OpenGL;
sourceTree = "<group>";
};
551AA10B2792AB1700658151 /* Window */ = {
isa = PBXGroup;
children = (
551AA1112792AB1700658151 /* GSSetting.cpp */,
551AA1122792AB1700658151 /* GSSetting.h */,
);
path = Window;
sourceTree = "<group>";
};
551AA1712792B66400658151 /* InternalServers */ = {
isa = PBXGroup;
children = (
@@ -5332,12 +5314,8 @@
551AA48227935DF400658151 /* Null */ = {
isa = PBXGroup;
children = (
551AA48327935DF400658151 /* GSTextureNull.cpp */,
551AA48427935DF400658151 /* GSDeviceNull.cpp */,
551AA48527935DF400658151 /* GSRendererNull.cpp */,
551AA48627935DF400658151 /* GSRendererNull.h */,
551AA48727935DF400658151 /* GSDeviceNull.h */,
551AA48827935DF400658151 /* GSTextureNull.h */,
);
path = Null;
sourceTree = "<group>";
@@ -7985,7 +7963,6 @@
5580652827AB4DE9008CD5D2 /* SettingsWrapper.cpp in Sources */,
551AA4AA27935E9100658151 /* UDP_Packet.cpp in Sources */,
551BF689264241E80008C529 /* DisR5900asm.cpp in Sources */,
551AA48927935DF400658151 /* GSTextureNull.cpp in Sources */,
DD0302C027C491160006ABDC /* ContextAGL.mm in Sources */,
55484D3D28855E740066EDEB /* GSDumpReplayer.cpp in Sources */,
551BF57E26420E9A0008C529 /* Sio.cpp in Sources */,
@@ -8118,7 +8095,6 @@
551BF5AC26420FA50008C529 /* IopHw.cpp in Sources */,
551BF67E264240660008C529 /* ATA_Info.cpp in Sources */,
551BF5A826420FA50008C529 /* HwWrite.cpp in Sources */,
551AA48A27935DF400658151 /* GSDeviceNull.cpp in Sources */,
551BF57826420E720008C529 /* vtlb.cpp in Sources */,
551AA4E52793775E00658151 /* StringUtil.cpp in Sources */,
551BF5D5264212270008C529 /* MTGS.cpp in Sources */,
@@ -8787,7 +8763,7 @@
CLANG_WARN_DOCUMENTATION_COMMENTS = NO;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 1.7.0;
CURRENT_PROJECT_VERSION = 1.7.4280;
EXPORTED_SYMBOLS_FILE = Classes/PCSX2Exports.exp;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = pcsx2/pcsx2/PrecompiledHeader.h;
@@ -8814,7 +8790,7 @@
);
INFOPLIST_FILE = Resources/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles";
MARKETING_VERSION = 1.7.0;
MARKETING_VERSION = 1.7.4280;
PRODUCT_BUNDLE_IDENTIFIER = "org.openemu.${PRODUCT_NAME:identifier}";
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
@@ -8866,7 +8842,7 @@
CLANG_WARN_DOCUMENTATION_COMMENTS = NO;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 1.7.0;
CURRENT_PROJECT_VERSION = 1.7.4280;
DEAD_CODE_STRIPPING = YES;
EXPORTED_SYMBOLS_FILE = Classes/PCSX2Exports.exp;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
@@ -8895,7 +8871,7 @@
INFOPLIST_FILE = Resources/Info.plist;
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles";
LLVM_LTO = YES_THIN;
MARKETING_VERSION = 1.7.0;
MARKETING_VERSION = 1.7.4280;
PRODUCT_BUNDLE_IDENTIFIER = "org.openemu.${PRODUCT_NAME:identifier}";
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
+2 -2
View File
@@ -32,10 +32,10 @@
<true/>
<key>OEGameCoreSupportsCheatCode</key>
<false/>
<key>OEGameCoreSupportsMultipleDiscs</key>
<true/>
<key>OEGameCoreSupportsDisplayModeChange</key>
<true/>
<key>OEGameCoreSupportsMultipleDiscs</key>
<true/>
<key>OERequiredFiles</key>
<array>
<dict>
+1 -1
Submodule pcsx2 updated: cbf91a8d19...2b94cfe782