Updated DiscordRPC, fixed TTYD and fixed Android compiling

This commit is contained in:
Jarrod Norwell 2024-05-25 15:39:06 +08:00
parent 4ce69bc41f
commit f627a085d3
11 changed files with 63 additions and 22 deletions

2
externals/vcpkg vendored

@ -1 +1 @@
Subproject commit 90542a476c8ef3288039e2443a775e48db279173 Subproject commit 326d8b43e365352ba3ccadf388d989082fe0f2a6

2
externals/xbyak vendored

@ -1 +1 @@
Subproject commit 9c0f5d3ecb06d2c93c2b59becb9b3b763213e74e Subproject commit 80477f635345e8f13efc512d84b01b94cad92cd9

View File

@ -186,7 +186,7 @@ android {
} }
tasks.create<Delete>("ktlintReset") { tasks.create<Delete>("ktlintReset") {
delete(File(buildDir.path + File.separator + "intermediates/ktLint")) delete(File(layout.buildDirectory.toString() + File.separator + "intermediates/ktLint"))
} }
val showFormatHelp = { val showFormatHelp = {
@ -203,13 +203,6 @@ ktlint {
version.set("0.47.1") version.set("0.47.1")
android.set(true) android.set(true)
ignoreFailures.set(false) ignoreFailures.set(false)
disabledRules.set(
setOf(
"no-wildcard-imports",
"package-name",
"import-ordering"
)
)
reporters { reporters {
reporter(ReporterType.CHECKSTYLE) reporter(ReporterType.CHECKSTYLE)
} }

View File

@ -12,7 +12,8 @@ SystemSettings DefaultSystemSettings() {
settings.version = 0x140000; settings.version = 0x140000;
settings.flags = 7; settings.flags = 7;
settings.rebootless_system_version = {.version = 38, .reserved = 1, .display_version = 38}; settings.rebootless_system_version =
RebootlessSystemUpdateVersion{.version = 38, .reserved = {1}, .display_version = {38}};
settings.mii_author_id = Common::UUID::MakeDefault(); settings.mii_author_id = Common::UUID::MakeDefault();

View File

@ -11,7 +11,8 @@ SystemSettings DefaultSystemSettings() {
settings.version = 0x140000; settings.version = 0x140000;
settings.flags = 7; settings.flags = 7;
settings.rebootless_system_version = {.version = 38, .reserved = 1, .display_version = 38}; settings.rebootless_system_version =
RebootlessSystemUpdateVersion{.version = 38, .reserved = {1}, .display_version = {38}};
settings.color_set_id = ColorSet::BasicWhite; settings.color_set_id = ColorSet::BasicWhite;

View File

@ -38,10 +38,7 @@ enum class IoMode : u32 {
}; };
// This is nn::ssl::sf::OptionType // This is nn::ssl::sf::OptionType
enum class OptionType : u32 { enum class OptionType : u32 { DoNotCloseSocket = 0, GetServerCertChain = 1, EnableAlpn = 3 };
DoNotCloseSocket = 0,
GetServerCertChain = 1,
};
// This is nn::ssl::sf::SslVersion // This is nn::ssl::sf::SslVersion
struct SslVersion { struct SslVersion {
@ -96,8 +93,8 @@ public:
{23, nullptr, "GetOption"}, {23, nullptr, "GetOption"},
{24, nullptr, "GetVerifyCertErrors"}, {24, nullptr, "GetVerifyCertErrors"},
{25, nullptr, "GetCipherInfo"}, {25, nullptr, "GetCipherInfo"},
{26, nullptr, "SetNextAlpnProto"}, {26, &ISslConnection::SetNextAlpnProto, "SetNextAlpnProto"},
{27, nullptr, "GetNextAlpnProto"}, {27, &ISslConnection::GetNextAlpnProto, "GetNextAlpnProto"},
{28, nullptr, "SetDtlsSocketDescriptor"}, {28, nullptr, "SetDtlsSocketDescriptor"},
{29, nullptr, "GetDtlsHandshakeTimeout"}, {29, nullptr, "GetDtlsHandshakeTimeout"},
{30, nullptr, "SetPrivateOption"}, {30, nullptr, "SetPrivateOption"},
@ -142,6 +139,7 @@ private:
bool get_server_cert_chain = false; bool get_server_cert_chain = false;
std::shared_ptr<Network::SocketBase> socket; std::shared_ptr<Network::SocketBase> socket;
bool did_handshake = false; bool did_handshake = false;
bool enable_alpn = false;
Result SetSocketDescriptorImpl(s32* out_fd, s32 fd) { Result SetSocketDescriptorImpl(s32* out_fd, s32 fd) {
LOG_DEBUG(Service_SSL, "called, fd={}", fd); LOG_DEBUG(Service_SSL, "called, fd={}", fd);
@ -381,6 +379,10 @@ private:
case OptionType::GetServerCertChain: case OptionType::GetServerCertChain:
get_server_cert_chain = static_cast<bool>(parameters.value); get_server_cert_chain = static_cast<bool>(parameters.value);
break; break;
case OptionType::EnableAlpn:
LOG_ERROR(Service_SSL, "(STUBBED) called.");
enable_alpn = static_cast<bool>(parameters.value);
break;
default: default:
LOG_WARNING(Service_SSL, "Unknown option={}, value={}", parameters.option, LOG_WARNING(Service_SSL, "Unknown option={}, value={}", parameters.option,
parameters.value); parameters.value);
@ -389,6 +391,20 @@ private:
IPC::ResponseBuilder rb{ctx, 2}; IPC::ResponseBuilder rb{ctx, 2};
rb.Push(ResultSuccess); rb.Push(ResultSuccess);
} }
void SetNextAlpnProto(HLERequestContext& ctx) {
LOG_ERROR(Service_SSL, "(STUBBED) called.");
IPC::ResponseBuilder rb{ctx, 2};
rb.Push(ResultSuccess);
}
void GetNextAlpnProto(HLERequestContext& ctx) {
LOG_ERROR(Service_SSL, "(STUBBED) called.");
IPC::ResponseBuilder rb{ctx, 3};
rb.Push(ResultSuccess);
}
}; };
class ISslContext final : public ServiceFramework<ISslContext> { class ISslContext final : public ServiceFramework<ISslContext> {

View File

@ -24,7 +24,7 @@ DiscordImpl::DiscordImpl(Core::System& system_) : system{system_} {
DiscordEventHandlers handlers{}; DiscordEventHandlers handlers{};
// The number is the client ID for sudachi, it's used for images and the // The number is the client ID for sudachi, it's used for images and the
// application name // application name
Discord_Initialize("712465656758665259", &handlers, 1, nullptr); Discord_Initialize("1223291656732934377", &handlers, 1, nullptr);
} }
DiscordImpl::~DiscordImpl() { DiscordImpl::~DiscordImpl() {

View File

@ -1197,6 +1197,10 @@ void RasterizerOpenGL::SyncBlendState() {
} }
} }
bool RasterizerOpenGL::IsAnyFloat(Tegra::Engines::Maxwell3D::Regs::VertexAttribute attribute) {
return attribute.type == Tegra::Engines::Maxwell3D::Regs::VertexAttribute::Type::Float;
};
void RasterizerOpenGL::SyncLogicOpState() { void RasterizerOpenGL::SyncLogicOpState() {
auto& flags = maxwell3d->dirty.flags; auto& flags = maxwell3d->dirty.flags;
if (!flags[Dirty::LogicOp]) { if (!flags[Dirty::LogicOp]) {
@ -1205,7 +1209,16 @@ void RasterizerOpenGL::SyncLogicOpState() {
flags[Dirty::LogicOp] = false; flags[Dirty::LogicOp] = false;
const auto& regs = maxwell3d->regs; const auto& regs = maxwell3d->regs;
if (regs.logic_op.enable) {
bool has_float = false;
if (std::any_of(regs.vertex_attrib_format.begin(), regs.vertex_attrib_format.end(),
[&](Tegra::Engines::Maxwell3D::Regs::VertexAttribute attribute) {
return IsAnyFloat(attribute);
}))
has_float = true;
if (regs.logic_op.enable && !has_float) {
glEnable(GL_COLOR_LOGIC_OP); glEnable(GL_COLOR_LOGIC_OP);
glLogicOp(MaxwellToGL::LogicOp(regs.logic_op.op)); glLogicOp(MaxwellToGL::LogicOp(regs.logic_op.op));
} else { } else {

View File

@ -236,6 +236,8 @@ private:
void QueryFallback(GPUVAddr gpu_addr, VideoCommon::QueryType type, void QueryFallback(GPUVAddr gpu_addr, VideoCommon::QueryType type,
VideoCommon::QueryPropertiesFlags flags, u32 payload, u32 subreport); VideoCommon::QueryPropertiesFlags flags, u32 payload, u32 subreport);
bool IsAnyFloat(Tegra::Engines::Maxwell3D::Regs::VertexAttribute attribute);
Tegra::GPU& gpu; Tegra::GPU& gpu;
Tegra::MaxwellDeviceMemoryManager& device_memory; Tegra::MaxwellDeviceMemoryManager& device_memory;

View File

@ -1310,12 +1310,25 @@ void RasterizerVulkan::UpdateDepthBiasEnable(Tegra::Engines::Maxwell3D::Regs& re
[enable](vk::CommandBuffer cmdbuf) { cmdbuf.SetDepthBiasEnableEXT(enable != 0); }); [enable](vk::CommandBuffer cmdbuf) { cmdbuf.SetDepthBiasEnableEXT(enable != 0); });
} }
bool RasterizerVulkan::IsAnyFloat(Tegra::Engines::Maxwell3D::Regs::VertexAttribute attribute) {
return attribute.type == Tegra::Engines::Maxwell3D::Regs::VertexAttribute::Type::Float;
};
void RasterizerVulkan::UpdateLogicOpEnable(Tegra::Engines::Maxwell3D::Regs& regs) { void RasterizerVulkan::UpdateLogicOpEnable(Tegra::Engines::Maxwell3D::Regs& regs) {
if (!state_tracker.TouchLogicOpEnable()) { if (!state_tracker.TouchLogicOpEnable()) {
return; return;
} }
scheduler.Record([enable = regs.logic_op.enable](vk::CommandBuffer cmdbuf) {
cmdbuf.SetLogicOpEnableEXT(enable != 0); scheduler.Record([&, regs](vk::CommandBuffer cmdbuf) {
bool has_float = false;
if (std::any_of(regs.vertex_attrib_format.begin(), regs.vertex_attrib_format.end(),
[&](Tegra::Engines::Maxwell3D::Regs::VertexAttribute attribute) {
return IsAnyFloat(attribute);
}))
has_float = true;
cmdbuf.SetLogicOpEnableEXT((regs.logic_op.enable != 0 && !has_float) ? true : false);
}); });
} }

View File

@ -180,6 +180,8 @@ private:
void UpdateVertexInput(Tegra::Engines::Maxwell3D::Regs& regs); void UpdateVertexInput(Tegra::Engines::Maxwell3D::Regs& regs);
bool IsAnyFloat(Tegra::Engines::Maxwell3D::Regs::VertexAttribute attribute);
Tegra::GPU& gpu; Tegra::GPU& gpu;
Tegra::MaxwellDeviceMemoryManager& device_memory; Tegra::MaxwellDeviceMemoryManager& device_memory;