mirror of
https://github.com/OpenEmu/PCSX2-Core.git
synced 2025-11-01 11:07:36 +00:00
Update PCSX2.
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user