mirror of
https://github.com/skyline-emu/skyline.git
synced 2024-12-23 20:41:50 +01:00
Support forcing regular descriptor sets in VK pipeline cache
This commit is contained in:
parent
0f394d516b
commit
0428e8c7da
@ -324,7 +324,7 @@ namespace skyline::gpu::cache {
|
|||||||
|
|
||||||
GraphicsPipelineCache::CompiledPipeline::CompiledPipeline(const PipelineCacheEntry &entry) : descriptorSetLayout(*entry.descriptorSetLayout), pipelineLayout(*entry.pipelineLayout), pipeline(*entry.pipeline) {}
|
GraphicsPipelineCache::CompiledPipeline::CompiledPipeline(const PipelineCacheEntry &entry) : descriptorSetLayout(*entry.descriptorSetLayout), pipelineLayout(*entry.pipelineLayout), pipeline(*entry.pipeline) {}
|
||||||
|
|
||||||
GraphicsPipelineCache::CompiledPipeline GraphicsPipelineCache::GetCompiledPipeline(const PipelineState &state, span<const vk::DescriptorSetLayoutBinding> layoutBindings, span<const vk::PushConstantRange> pushConstantRanges) {
|
GraphicsPipelineCache::CompiledPipeline GraphicsPipelineCache::GetCompiledPipeline(const PipelineState &state, span<const vk::DescriptorSetLayoutBinding> layoutBindings, span<const vk::PushConstantRange> pushConstantRanges, bool noPushDescriptors) {
|
||||||
std::unique_lock lock(mutex);
|
std::unique_lock lock(mutex);
|
||||||
|
|
||||||
auto it{pipelineCache.find(state)};
|
auto it{pipelineCache.find(state)};
|
||||||
@ -334,7 +334,7 @@ namespace skyline::gpu::cache {
|
|||||||
lock.unlock();
|
lock.unlock();
|
||||||
|
|
||||||
vk::raii::DescriptorSetLayout descriptorSetLayout{gpu.vkDevice, vk::DescriptorSetLayoutCreateInfo{
|
vk::raii::DescriptorSetLayout descriptorSetLayout{gpu.vkDevice, vk::DescriptorSetLayoutCreateInfo{
|
||||||
.flags = vk::DescriptorSetLayoutCreateFlags{},
|
.flags = vk::DescriptorSetLayoutCreateFlags{(!noPushDescriptors && gpu.traits.supportsPushDescriptors) ? vk::DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR : vk::DescriptorSetLayoutCreateFlags{}},
|
||||||
.pBindings = layoutBindings.data(),
|
.pBindings = layoutBindings.data(),
|
||||||
.bindingCount = static_cast<u32>(layoutBindings.size()),
|
.bindingCount = static_cast<u32>(layoutBindings.size()),
|
||||||
}};
|
}};
|
||||||
|
@ -157,6 +157,6 @@ namespace skyline::gpu::cache {
|
|||||||
* @note Shader specializiation constants are **not** supported and will result in UB
|
* @note Shader specializiation constants are **not** supported and will result in UB
|
||||||
* @note Input/Resolve attachments are **not** supported and using them with the supplied pipeline will result in UB
|
* @note Input/Resolve attachments are **not** supported and using them with the supplied pipeline will result in UB
|
||||||
*/
|
*/
|
||||||
CompiledPipeline GetCompiledPipeline(const PipelineState& state, span<const vk::DescriptorSetLayoutBinding> layoutBindings, span<const vk::PushConstantRange> pushConstantRanges = {});
|
CompiledPipeline GetCompiledPipeline(const PipelineState& state, span<const vk::DescriptorSetLayoutBinding> layoutBindings, span<const vk::PushConstantRange> pushConstantRanges = {}, bool noPushDescriptors = false);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user