Merge branch 'shadps4-emu:main' into doc-clang

This commit is contained in:
Lander Gallastegi 2024-09-27 14:43:24 +02:00 committed by GitHub
commit d5b9b9b906
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 54 additions and 38 deletions

View file

@ -402,6 +402,15 @@ jobs:
fi fi
done done
- name: Get latest release information
id: get_latest_release
env:
GITHUB_TOKEN: ${{ secrets.SHADPS4_TOKEN_REPO }}
run: |
api_url="https://api.github.com/repos/${{ github.repository }}"
latest_release_info=$(curl -H "Authorization: token $GITHUB_TOKEN" "$api_url/releases/latest")
echo "last_release_tag=$(echo "$latest_release_info" | jq -r '.tag_name')" >> $GITHUB_ENV
- name: Create Pre-Release on GitHub - name: Create Pre-Release on GitHub
id: create_release id: create_release
uses: ncipollo/release-action@v1 uses: ncipollo/release-action@v1
@ -411,8 +420,8 @@ jobs:
tag: "Pre-release-shadPS4-${{ needs.get-info.outputs.date }}-${{ needs.get-info.outputs.shorthash }}" tag: "Pre-release-shadPS4-${{ needs.get-info.outputs.date }}-${{ needs.get-info.outputs.shorthash }}"
draft: false draft: false
prerelease: true prerelease: true
artifacts: | body: "Full Changelog: [${{ env.last_release_tag }}...${{ needs.get-info.outputs.shorthash }}](https://github.com/shadps4-emu/shadPS4/compare/${{ env.last_release_tag }}...${{ needs.get-info.outputs.shorthash }})"
./artifacts/*.zip artifacts: ./artifacts/*.zip
- name: Get current pre-release information - name: Get current pre-release information
env: env:

View file

@ -9,7 +9,8 @@
"cmakeCommandArgs": "", "cmakeCommandArgs": "",
"buildCommandArgs": "", "buildCommandArgs": "",
"ctestCommandArgs": "", "ctestCommandArgs": "",
"inheritEnvironments": [ "clang_cl_x64_x64" ] "inheritEnvironments": [ "clang_cl_x64_x64" ],
"intelliSenseMode": "windows-clang-x64"
}, },
{ {
"name": "x64-Clang-Debug", "name": "x64-Clang-Debug",
@ -20,7 +21,8 @@
"cmakeCommandArgs": "", "cmakeCommandArgs": "",
"buildCommandArgs": "", "buildCommandArgs": "",
"ctestCommandArgs": "", "ctestCommandArgs": "",
"inheritEnvironments": [ "clang_cl_x64_x64" ] "inheritEnvironments": [ "clang_cl_x64_x64" ],
"intelliSenseMode": "windows-clang-x64"
}, },
{ {
"name": "x64-Clang-RelWithDebInfo", "name": "x64-Clang-RelWithDebInfo",
@ -31,7 +33,8 @@
"cmakeCommandArgs": "", "cmakeCommandArgs": "",
"buildCommandArgs": "", "buildCommandArgs": "",
"ctestCommandArgs": "", "ctestCommandArgs": "",
"inheritEnvironments": [ "clang_cl_x64_x64" ] "inheritEnvironments": [ "clang_cl_x64_x64" ],
"intelliSenseMode": "windows-clang-x64"
} }
] ]
} }

View file

@ -72,7 +72,8 @@ struct AddressSpace::Impl {
} }
reduction += ReductionOnFail; reduction += ReductionOnFail;
} }
ASSERT_MSG(virtual_base, "Unable to reserve virtual address space!"); ASSERT_MSG(virtual_base, "Unable to reserve virtual address space: {}",
Common::GetLastErrorMsg());
// Take the reduction off of the system managed area, and leave the others unchanged. // Take the reduction off of the system managed area, and leave the others unchanged.
system_managed_base = virtual_base; system_managed_base = virtual_base;

View file

@ -381,12 +381,13 @@ static constexpr vk::FormatFeatureFlags2 GetNumberFormatFeatureFlags(
case AmdGpu::NumberFormat::Uint: case AmdGpu::NumberFormat::Uint:
case AmdGpu::NumberFormat::Sint: case AmdGpu::NumberFormat::Sint:
case AmdGpu::NumberFormat::Float: case AmdGpu::NumberFormat::Float:
return BufferRead | BufferWrite | ImageRead | ImageWrite; return BufferRead | BufferWrite | ImageRead | ImageWrite | Mrt;
case AmdGpu::NumberFormat::Uscaled: case AmdGpu::NumberFormat::Uscaled:
case AmdGpu::NumberFormat::Sscaled: case AmdGpu::NumberFormat::Sscaled:
case AmdGpu::NumberFormat::SnormNz: case AmdGpu::NumberFormat::SnormNz:
return BufferRead | ImageRead; return BufferRead | ImageRead;
case AmdGpu::NumberFormat::Srgb: case AmdGpu::NumberFormat::Srgb:
return ImageRead | Mrt;
case AmdGpu::NumberFormat::Ubnorm: case AmdGpu::NumberFormat::Ubnorm:
case AmdGpu::NumberFormat::UbnromNz: case AmdGpu::NumberFormat::UbnromNz:
case AmdGpu::NumberFormat::Ubint: case AmdGpu::NumberFormat::Ubint:

View file

@ -259,22 +259,6 @@ TileManager::TileManager(const Vulkan::Instance& instance, Vulkan::Scheduler& sc
HostShaders::DETILE_M32X4_COMP, HostShaders::DETILE_M32X4_COMP,
}; };
for (int pl_id = 0; pl_id < DetilerType::Max; ++pl_id) {
auto& ctx = detilers[pl_id];
const auto& module = Vulkan::Compile(
detiler_shaders[pl_id], vk::ShaderStageFlagBits::eCompute, instance.GetDevice());
// Set module debug name
auto module_name = magic_enum::enum_name(static_cast<DetilerType>(pl_id));
Vulkan::SetObjectName(instance.GetDevice(), module, module_name);
const vk::PipelineShaderStageCreateInfo shader_ci = {
.stage = vk::ShaderStageFlagBits::eCompute,
.module = module,
.pName = "main",
};
boost::container::static_vector<vk::DescriptorSetLayoutBinding, 2> bindings{ boost::container::static_vector<vk::DescriptorSetLayoutBinding, 2> bindings{
{ {
.binding = 0, .binding = 0,
@ -295,10 +279,11 @@ TileManager::TileManager(const Vulkan::Instance& instance, Vulkan::Scheduler& sc
.bindingCount = static_cast<u32>(bindings.size()), .bindingCount = static_cast<u32>(bindings.size()),
.pBindings = bindings.data(), .pBindings = bindings.data(),
}; };
auto [desc_layout_result, desc_layout] = auto desc_layout_result = instance.GetDevice().createDescriptorSetLayoutUnique(desc_layout_ci);
instance.GetDevice().createDescriptorSetLayoutUnique(desc_layout_ci); ASSERT_MSG(desc_layout_result.result == vk::Result::eSuccess,
ASSERT_MSG(desc_layout_result == vk::Result::eSuccess, "Failed to create descriptor set layout: {}",
"Failed to create descriptor set layout: {}", vk::to_string(desc_layout_result)); vk::to_string(desc_layout_result.result));
desc_layout = std::move(desc_layout_result.value);
const vk::PushConstantRange push_constants = { const vk::PushConstantRange push_constants = {
.stageFlags = vk::ShaderStageFlagBits::eCompute, .stageFlags = vk::ShaderStageFlagBits::eCompute,
@ -306,6 +291,22 @@ TileManager::TileManager(const Vulkan::Instance& instance, Vulkan::Scheduler& sc
.size = sizeof(DetilerParams), .size = sizeof(DetilerParams),
}; };
for (int pl_id = 0; pl_id < DetilerType::Max; ++pl_id) {
auto& ctx = detilers[pl_id];
const auto& module = Vulkan::Compile(
detiler_shaders[pl_id], vk::ShaderStageFlagBits::eCompute, instance.GetDevice());
// Set module debug name
auto module_name = magic_enum::enum_name(static_cast<DetilerType>(pl_id));
Vulkan::SetObjectName(instance.GetDevice(), module, module_name);
const vk::PipelineShaderStageCreateInfo shader_ci = {
.stage = vk::ShaderStageFlagBits::eCompute,
.module = module,
.pName = "main",
};
const vk::DescriptorSetLayout set_layout = *desc_layout; const vk::DescriptorSetLayout set_layout = *desc_layout;
const vk::PipelineLayoutCreateInfo layout_info = { const vk::PipelineLayoutCreateInfo layout_info = {
.setLayoutCount = 1U, .setLayoutCount = 1U,

View file

@ -51,6 +51,7 @@ private:
private: private:
const Vulkan::Instance& instance; const Vulkan::Instance& instance;
Vulkan::Scheduler& scheduler; Vulkan::Scheduler& scheduler;
vk::UniqueDescriptorSetLayout desc_layout;
std::array<DetilerContext, DetilerType::Max> detilers; std::array<DetilerContext, DetilerType::Max> detilers;
}; };