mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-01 14:58:14 +00:00
Merge pull request #21584 from hrydgard/misc-fixes
Change the default of "Low latency display", revert a bad change
This commit is contained in:
13 files changed
+105
-20
No files matched your search
@@ -131,7 +131,7 @@ bool JsonGet::getBool(const char *child_name) const {
|
||||
return get(child_name)->value.getTag() == JSON_TRUE;
|
||||
}
|
||||
|
||||
bool JsonGet::getBool(const char *child_name, bool default_value) const {
|
||||
bool JsonGet::getBoolOr(const char *child_name, bool default_value) const {
|
||||
const JsonNode *val = get(child_name);
|
||||
if (val) {
|
||||
JsonTag tag = val->value.getTag();
|
||||
|
||||
@@ -30,7 +30,7 @@ struct JsonGet {
|
||||
int getInt(const char *child_name) const;
|
||||
int getInt(const char *child_name, int default_value) const;
|
||||
bool getBool(const char *child_name) const;
|
||||
bool getBool(const char *child_name, bool default_value) const;
|
||||
bool getBoolOr(const char *child_name, bool default_value) const;
|
||||
|
||||
bool hasChild(const char *child_name, JsonTag child_type) const {
|
||||
return get(child_name, child_type) != nullptr;
|
||||
|
||||
@@ -123,7 +123,7 @@ bool GhidraClient::FetchTypes() {
|
||||
type.pathName = entry.getStringOr("pathName", "");
|
||||
type.length = entry.getInt("length", 0);
|
||||
type.alignedLength = entry.getInt("alignedLength", 0);
|
||||
type.zeroLength = entry.getBool("zeroLength", false);
|
||||
type.zeroLength = entry.getBoolOr("zeroLength", false);
|
||||
type.description = entry.getStringOr("description", "");
|
||||
type.kind = ResolveTypeKind(entry.getStringOr("kind", ""));
|
||||
|
||||
|
||||
+1
-1
@@ -769,7 +769,7 @@ static const ConfigSetting graphicsSettings[] = {
|
||||
ConfigSetting("TexDeposterize", SETTING(g_Config, bTexDeposterize), false, CfgFlag::PER_GAME | CfgFlag::REPORT),
|
||||
ConfigSetting("TexHardwareScaling", SETTING(g_Config, bTexHardwareScaling), false, CfgFlag::PER_GAME | CfgFlag::REPORT),
|
||||
ConfigSetting("VerticalSync", SETTING(g_Config, bVSync), true, CfgFlag::PER_GAME),
|
||||
ConfigSetting("LowLatencyPresent", SETTING(g_Config, bLowLatencyPresent), true, CfgFlag::PER_GAME),
|
||||
ConfigSetting("LowLatencyPresent", SETTING(g_Config, bLowLatencyPresent), false, CfgFlag::PER_GAME),
|
||||
ConfigSetting("BloomHack", SETTING(g_Config, iBloomHack), 0, CfgFlag::PER_GAME | CfgFlag::REPORT),
|
||||
|
||||
// Not really a graphics setting...
|
||||
|
||||
+2
-2
@@ -228,7 +228,7 @@ bool LoadDNSForGameID(std::string_view gameID, std::string_view jsonStr, InfraDN
|
||||
dns->revivalTeamURL = revived.getStringOr("url", "");
|
||||
}
|
||||
}
|
||||
dns->connectAdHocForGrouping = def.getBool("connect_adhoc_for_grouping", false);
|
||||
dns->connectAdHocForGrouping = def.getBoolOr("connect_adhoc_for_grouping", false);
|
||||
}
|
||||
|
||||
const JsonNode *games = root.getArray("games");
|
||||
@@ -290,7 +290,7 @@ bool LoadDNSForGameID(std::string_view gameID, std::string_view jsonStr, InfraDN
|
||||
dns->gameName = game.getStringOr("name", "");
|
||||
dns->dns = game.getStringOr("dns", dns->dns.c_str());
|
||||
dns->dyn_dns = game.getStringOr("dyn_dns", "");
|
||||
dns->connectAdHocForGrouping = game.getBool("connect_adhoc_for_grouping", dns->connectAdHocForGrouping);
|
||||
dns->connectAdHocForGrouping = game.getBoolOr("connect_adhoc_for_grouping", dns->connectAdHocForGrouping);
|
||||
if (game.hasChild("domains", JSON_OBJECT)) {
|
||||
const JsonGet domains = game.getDict("domains");
|
||||
for (const auto &iter : domains.value_) {
|
||||
|
||||
@@ -142,6 +142,7 @@ static bool ParseServerListEntriesJSON(std::string_view json) {
|
||||
for (const JsonNode *iter : servers->value) {
|
||||
JsonGet server = iter->value;
|
||||
AdhocServerListEntry entry;
|
||||
entry.hidden = server.getBoolOr("hidden", false);
|
||||
entry.name = server.getStringOr("name", "");
|
||||
entry.discord = server.getStringOr("discord", "");
|
||||
entry.host = server.getStringOr("host", "");
|
||||
|
||||
@@ -114,6 +114,7 @@ struct AdhocServerListEntry {
|
||||
std::string dataJsonUrl;
|
||||
std::string statusXmlUrl;
|
||||
std::string statusWebUrl;
|
||||
bool hidden = false;
|
||||
AdhocDataMode mode = AdhocDataMode::P2P;
|
||||
};
|
||||
|
||||
|
||||
@@ -479,7 +479,7 @@ bool TextureCacheVulkan::RunMultipassCompute(VulkanContext *vulkan, VkCommandBuf
|
||||
stage.useFinalOutputSize ? dstWidth : srcWidth * stage.dstWidthScale,
|
||||
stage.useFinalOutputSize ? dstHeight : srcHeight * stage.dstHeightScale,
|
||||
};
|
||||
VkDescriptorSet stageSet = computeShaderManager_.GetDescriptorSet(outputView, inputBuffer, inputOffset, inputRange);
|
||||
VkDescriptorSet stageSet = computeShaderManager_.GetDescriptorSet(outputView, inputBuffer, inputOffset, inputRange, VK_NULL_HANDLE, 0, 0, inputImage);
|
||||
vkCmdBindPipeline(cmdInit, VK_PIPELINE_BIND_POINT_COMPUTE, computeShaderManager_.GetPipeline(multipassCS_[stage.shaderIndex]));
|
||||
vkCmdBindDescriptorSets(cmdInit, VK_PIPELINE_BIND_POINT_COMPUTE, computeShaderManager_.GetPipelineLayout(), 0, 1, &stageSet, 0, nullptr);
|
||||
vkCmdPushConstants(cmdInit, computeShaderManager_.GetPipelineLayout(), VK_SHADER_STAGE_COMPUTE_BIT, 0, sizeof(params), ¶ms);
|
||||
|
||||
+44
-10
@@ -39,11 +39,6 @@ const VkComponentMapping VULKAN_1555_SWIZZLE = { VK_COMPONENT_SWIZZLE_B, VK_COMP
|
||||
const VkComponentMapping VULKAN_565_SWIZZLE = { VK_COMPONENT_SWIZZLE_B, VK_COMPONENT_SWIZZLE_IDENTITY, VK_COMPONENT_SWIZZLE_R, VK_COMPONENT_SWIZZLE_IDENTITY };
|
||||
const VkComponentMapping VULKAN_8888_SWIZZLE = { VK_COMPONENT_SWIZZLE_IDENTITY, VK_COMPONENT_SWIZZLE_IDENTITY, VK_COMPONENT_SWIZZLE_IDENTITY, VK_COMPONENT_SWIZZLE_IDENTITY };
|
||||
|
||||
static const BindingType bindingTypes[] = {
|
||||
BindingType::STORAGE_IMAGE_COMPUTE,
|
||||
BindingType::STORAGE_BUFFER_COMPUTE,
|
||||
};
|
||||
|
||||
VkPresentModeKHR ConfigPresentModeToVulkan(Draw::DrawContext *draw) {
|
||||
g_frameTiming.ComputePresentMode(draw, false);
|
||||
Draw::PresentMode presentMode = g_frameTiming.PresentMode();
|
||||
@@ -112,7 +107,14 @@ void VulkanComputeShaderManager::InitDeviceObjects(Draw::DrawContext *draw) {
|
||||
VkResult res = vkCreatePipelineCache(vulkan_->GetDevice(), &pc, nullptr, &pipelineCache_);
|
||||
_assert_(VK_SUCCESS == res);
|
||||
|
||||
VkDescriptorSetLayoutBinding bindings[ARRAY_SIZE(bindingTypes)] = {};
|
||||
static const BindingType bindingTypes[4] = {
|
||||
BindingType::STORAGE_IMAGE_COMPUTE,
|
||||
BindingType::STORAGE_BUFFER_COMPUTE,
|
||||
BindingType::STORAGE_BUFFER_COMPUTE,
|
||||
BindingType::STORAGE_IMAGE_COMPUTE,
|
||||
};
|
||||
|
||||
VkDescriptorSetLayoutBinding bindings[4] = {};
|
||||
bindings[0].descriptorCount = 1;
|
||||
bindings[0].descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE;
|
||||
bindings[0].stageFlags = VK_SHADER_STAGE_COMPUTE_BIT;
|
||||
@@ -121,6 +123,14 @@ void VulkanComputeShaderManager::InitDeviceObjects(Draw::DrawContext *draw) {
|
||||
bindings[1].descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER;
|
||||
bindings[1].stageFlags = VK_SHADER_STAGE_COMPUTE_BIT;
|
||||
bindings[1].binding = 1;
|
||||
bindings[2].descriptorCount = 1;
|
||||
bindings[2].descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER;
|
||||
bindings[2].stageFlags = VK_SHADER_STAGE_COMPUTE_BIT;
|
||||
bindings[2].binding = 2;
|
||||
bindings[3].descriptorCount = 1;
|
||||
bindings[3].descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE;
|
||||
bindings[3].stageFlags = VK_SHADER_STAGE_COMPUTE_BIT;
|
||||
bindings[3].binding = 3;
|
||||
|
||||
VkDevice device = vulkan_->GetDevice();
|
||||
|
||||
@@ -171,7 +181,7 @@ void VulkanComputeShaderManager::DestroyDeviceObjects() {
|
||||
}
|
||||
}
|
||||
|
||||
VkDescriptorSet VulkanComputeShaderManager::GetDescriptorSet(VkImageView image, VkBuffer buffer, VkDeviceSize bufferOffset, VkDeviceSize bufferRange) {
|
||||
VkDescriptorSet VulkanComputeShaderManager::GetDescriptorSet(VkImageView image, VkBuffer buffer, VkDeviceSize offset, VkDeviceSize range, VkBuffer buffer2, VkDeviceSize offset2, VkDeviceSize range2, VkImageView image2) {
|
||||
int curFrame = vulkan_->GetCurFrame();
|
||||
FrameData &frameData = frameData_[curFrame];
|
||||
frameData.descPoolUsed = true;
|
||||
@@ -179,7 +189,7 @@ VkDescriptorSet VulkanComputeShaderManager::GetDescriptorSet(VkImageView image,
|
||||
frameData.descPool.Allocate(&desc, 1, &descriptorSetLayout_);
|
||||
_assert_(desc != VK_NULL_HANDLE);
|
||||
|
||||
VkWriteDescriptorSet writes[2]{};
|
||||
VkWriteDescriptorSet writes[4]{};
|
||||
int n = 0;
|
||||
VkDescriptorImageInfo imageInfo[2] = {};
|
||||
VkDescriptorBufferInfo bufferInfo[2] = {};
|
||||
@@ -197,8 +207,8 @@ VkDescriptorSet VulkanComputeShaderManager::GetDescriptorSet(VkImageView image,
|
||||
}
|
||||
if (buffer) {
|
||||
bufferInfo[0].buffer = buffer;
|
||||
bufferInfo[0].offset = bufferOffset;
|
||||
bufferInfo[0].range = bufferRange;
|
||||
bufferInfo[0].offset = offset;
|
||||
bufferInfo[0].range = range;
|
||||
writes[n].sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET;
|
||||
writes[n].dstBinding = 1;
|
||||
writes[n].pBufferInfo = &bufferInfo[0];
|
||||
@@ -207,6 +217,30 @@ VkDescriptorSet VulkanComputeShaderManager::GetDescriptorSet(VkImageView image,
|
||||
writes[n].dstSet = desc;
|
||||
n++;
|
||||
}
|
||||
if (buffer2) {
|
||||
bufferInfo[1].buffer = buffer2;
|
||||
bufferInfo[1].offset = offset2;
|
||||
bufferInfo[1].range = range2;
|
||||
writes[n].sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET;
|
||||
writes[n].dstBinding = 2;
|
||||
writes[n].pBufferInfo = &bufferInfo[1];
|
||||
writes[n].descriptorCount = 1;
|
||||
writes[n].descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER;
|
||||
writes[n].dstSet = desc;
|
||||
n++;
|
||||
}
|
||||
if (image2) {
|
||||
imageInfo[1].imageLayout = VK_IMAGE_LAYOUT_GENERAL;
|
||||
imageInfo[1].imageView = image2;
|
||||
imageInfo[1].sampler = VK_NULL_HANDLE;
|
||||
writes[n].sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET;
|
||||
writes[n].dstBinding = 3;
|
||||
writes[n].pImageInfo = &imageInfo[1];
|
||||
writes[n].descriptorCount = 1;
|
||||
writes[n].descriptorType = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE;
|
||||
writes[n].dstSet = desc;
|
||||
n++;
|
||||
}
|
||||
vkUpdateDescriptorSets(vulkan_->GetDevice(), n, writes, 0, nullptr);
|
||||
return desc;
|
||||
}
|
||||
|
||||
@@ -55,7 +55,7 @@ public:
|
||||
}
|
||||
|
||||
// Note: This doesn't cache. The descriptor is for immediate use only.
|
||||
VkDescriptorSet GetDescriptorSet(VkImageView image, VkBuffer buffer, VkDeviceSize bufferOffset, VkDeviceSize bufferRange);
|
||||
VkDescriptorSet GetDescriptorSet(VkImageView image, VkBuffer buffer, VkDeviceSize offset, VkDeviceSize range, VkBuffer buffer2 = VK_NULL_HANDLE, VkDeviceSize offset2 = 0, VkDeviceSize range2 = 0, VkImageView image2 = VK_NULL_HANDLE);
|
||||
|
||||
// This of course caches though.
|
||||
VkPipeline GetPipeline(VkShaderModule cs);
|
||||
|
||||
@@ -726,6 +726,8 @@ void AdhocServerScreen::CreatePopupContents(UI::ViewGroup *parent) {
|
||||
|
||||
CollapsibleSection *publicSection = innerView->Add(new CollapsibleSection(n->T("Public server list"), new LinearLayoutParams(FILL_PARENT, WRAP_CONTENT)));
|
||||
for (const auto &entry : entries) {
|
||||
if (entry.hidden)
|
||||
continue;
|
||||
AddButtonFromEntry(publicSection, entry, false);
|
||||
}
|
||||
|
||||
|
||||
+33
-1
@@ -1177,10 +1177,34 @@
|
||||
<None Include="..\android\jni\Application.mk" />
|
||||
<None Include="..\android\jni\Locals.mk" />
|
||||
<None Include="..\appveyor.yml" />
|
||||
<None Include="..\assets\adhoc-servers.json">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</None>
|
||||
<None Include="..\assets\compat.ini" />
|
||||
<None Include="..\assets\compatvr.ini" />
|
||||
<None Include="..\assets\infra-dns.json">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</None>
|
||||
<None Include="..\assets\knownfuncs.ini" />
|
||||
<None Include="..\assets\langregion.ini" />
|
||||
<None Include="..\assets\redump.csv">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</None>
|
||||
<None Include="..\atlasscript.txt" />
|
||||
<None Include="..\b.sh" />
|
||||
<None Include="..\build.gradle" />
|
||||
@@ -1411,6 +1435,14 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Text Include="..\asciifont_atlasscript.txt" />
|
||||
<Text Include="..\assets\gamecontrollerdb.txt">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</Text>
|
||||
<Text Include="..\font_atlasscript.txt" />
|
||||
<Text Include="..\libretro\CMakeLists.txt" />
|
||||
<Text Include="..\libretro\README_WINDOWS.txt" />
|
||||
@@ -1426,4 +1458,4 @@
|
||||
<UserProperties RESOURCE_FILE="DaSh.rc" />
|
||||
</VisualStudio>
|
||||
</ProjectExtensions>
|
||||
</Project>
|
||||
</Project>
|
||||
@@ -68,6 +68,9 @@
|
||||
<Filter Include="Windows\Input\Hid">
|
||||
<UniqueIdentifier>{55d277d0-1afa-464d-9bde-672334ad73fe}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="assets">
|
||||
<UniqueIdentifier>{a5b85611-e50f-4179-814d-426816c1e04d}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="Debugger\CtrlDisAsmView.cpp">
|
||||
@@ -830,6 +833,15 @@
|
||||
<None Include="..\scripts\websocket-test.py">
|
||||
<Filter>Other Platforms</Filter>
|
||||
</None>
|
||||
<None Include="..\assets\adhoc-servers.json">
|
||||
<Filter>assets</Filter>
|
||||
</None>
|
||||
<None Include="..\assets\infra-dns.json">
|
||||
<Filter>assets</Filter>
|
||||
</None>
|
||||
<None Include="..\assets\redump.csv">
|
||||
<Filter>assets</Filter>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="ppsspp.rc">
|
||||
@@ -864,5 +876,8 @@
|
||||
<Text Include="..\SDL\README.TXT">
|
||||
<Filter>Other Platforms\SDL</Filter>
|
||||
</Text>
|
||||
<Text Include="..\assets\gamecontrollerdb.txt">
|
||||
<Filter>assets</Filter>
|
||||
</Text>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
</Project>
|
||||
Reference in new issue
Block a user