mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-08-06 17:32:40 +00:00
Merge branch 'shadps4-emu:main' into doc-clang
This commit is contained in:
commit
d5b9b9b906
13
.github/workflows/build.yml
vendored
13
.github/workflows/build.yml
vendored
@ -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:
|
||||||
|
@ -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"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
@ -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;
|
||||||
|
@ -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:
|
||||||
|
@ -259,6 +259,38 @@ TileManager::TileManager(const Vulkan::Instance& instance, Vulkan::Scheduler& sc
|
|||||||
HostShaders::DETILE_M32X4_COMP,
|
HostShaders::DETILE_M32X4_COMP,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
boost::container::static_vector<vk::DescriptorSetLayoutBinding, 2> bindings{
|
||||||
|
{
|
||||||
|
.binding = 0,
|
||||||
|
.descriptorType = vk::DescriptorType::eStorageBuffer,
|
||||||
|
.descriptorCount = 1,
|
||||||
|
.stageFlags = vk::ShaderStageFlagBits::eCompute,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.binding = 1,
|
||||||
|
.descriptorType = vk::DescriptorType::eStorageBuffer,
|
||||||
|
.descriptorCount = 1,
|
||||||
|
.stageFlags = vk::ShaderStageFlagBits::eCompute,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
const vk::DescriptorSetLayoutCreateInfo desc_layout_ci = {
|
||||||
|
.flags = vk::DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR,
|
||||||
|
.bindingCount = static_cast<u32>(bindings.size()),
|
||||||
|
.pBindings = bindings.data(),
|
||||||
|
};
|
||||||
|
auto desc_layout_result = instance.GetDevice().createDescriptorSetLayoutUnique(desc_layout_ci);
|
||||||
|
ASSERT_MSG(desc_layout_result.result == vk::Result::eSuccess,
|
||||||
|
"Failed to create descriptor set layout: {}",
|
||||||
|
vk::to_string(desc_layout_result.result));
|
||||||
|
desc_layout = std::move(desc_layout_result.value);
|
||||||
|
|
||||||
|
const vk::PushConstantRange push_constants = {
|
||||||
|
.stageFlags = vk::ShaderStageFlagBits::eCompute,
|
||||||
|
.offset = 0,
|
||||||
|
.size = sizeof(DetilerParams),
|
||||||
|
};
|
||||||
|
|
||||||
for (int pl_id = 0; pl_id < DetilerType::Max; ++pl_id) {
|
for (int pl_id = 0; pl_id < DetilerType::Max; ++pl_id) {
|
||||||
auto& ctx = detilers[pl_id];
|
auto& ctx = detilers[pl_id];
|
||||||
|
|
||||||
@ -275,37 +307,6 @@ TileManager::TileManager(const Vulkan::Instance& instance, Vulkan::Scheduler& sc
|
|||||||
.pName = "main",
|
.pName = "main",
|
||||||
};
|
};
|
||||||
|
|
||||||
boost::container::static_vector<vk::DescriptorSetLayoutBinding, 2> bindings{
|
|
||||||
{
|
|
||||||
.binding = 0,
|
|
||||||
.descriptorType = vk::DescriptorType::eStorageBuffer,
|
|
||||||
.descriptorCount = 1,
|
|
||||||
.stageFlags = vk::ShaderStageFlagBits::eCompute,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.binding = 1,
|
|
||||||
.descriptorType = vk::DescriptorType::eStorageBuffer,
|
|
||||||
.descriptorCount = 1,
|
|
||||||
.stageFlags = vk::ShaderStageFlagBits::eCompute,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
const vk::DescriptorSetLayoutCreateInfo desc_layout_ci = {
|
|
||||||
.flags = vk::DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR,
|
|
||||||
.bindingCount = static_cast<u32>(bindings.size()),
|
|
||||||
.pBindings = bindings.data(),
|
|
||||||
};
|
|
||||||
auto [desc_layout_result, desc_layout] =
|
|
||||||
instance.GetDevice().createDescriptorSetLayoutUnique(desc_layout_ci);
|
|
||||||
ASSERT_MSG(desc_layout_result == vk::Result::eSuccess,
|
|
||||||
"Failed to create descriptor set layout: {}", vk::to_string(desc_layout_result));
|
|
||||||
|
|
||||||
const vk::PushConstantRange push_constants = {
|
|
||||||
.stageFlags = vk::ShaderStageFlagBits::eCompute,
|
|
||||||
.offset = 0,
|
|
||||||
.size = sizeof(DetilerParams),
|
|
||||||
};
|
|
||||||
|
|
||||||
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,
|
||||||
|
@ -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;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user