summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_vulkan/pipeline_helper.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/video_core/renderer_vulkan/pipeline_helper.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/video_core/renderer_vulkan/pipeline_helper.h b/src/video_core/renderer_vulkan/pipeline_helper.h
index eebe5d569..decf0d32c 100644
--- a/src/video_core/renderer_vulkan/pipeline_helper.h
+++ b/src/video_core/renderer_vulkan/pipeline_helper.h
@@ -93,6 +93,9 @@ public:
for ([[maybe_unused]] const auto& desc : info.texture_descriptors) {
Add(VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, stage);
}
+ for (const auto& desc : info.texture_buffer_descriptors) {
+ Add(VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, stage);
+ }
}
private:
@@ -146,6 +149,8 @@ inline VideoCommon::ImageViewType CastType(Shader::TextureType type) {
case Shader::TextureType::ColorArrayCube:
case Shader::TextureType::ShadowArrayCube:
return VideoCommon::ImageViewType::CubeArray;
+ case Shader::TextureType::Buffer:
+ break;
}
UNREACHABLE_MSG("Invalid texture type {}", type);
return {};
@@ -161,6 +166,11 @@ inline void PushImageDescriptors(const Shader::Info& info, const VkSampler* samp
update_descriptor_queue.AddSampledImage(vk_image_view, sampler);
++index;
}
+ for (const auto& desc : info.texture_buffer_descriptors) {
+ ImageView& image_view{texture_cache.GetImageView(image_view_ids[index])};
+ update_descriptor_queue.AddTexelBuffer(image_view.BufferView());
+ ++index;
+ }
}
} // namespace Vulkan