diff options
author | ameerj <52414509+ameerj@users.noreply.github.com> | 2021-02-13 22:49:24 +0100 |
---|---|---|
committer | ameerj <52414509+ameerj@users.noreply.github.com> | 2021-03-13 18:16:03 +0100 |
commit | 20eb368e147e1c27f05d6923c51596f8dfe24e89 (patch) | |
tree | a8b1c8eb79eb55e189a10dfd43b8b6bb1449220f /src/video_core/renderer_vulkan/vk_compute_pass.h | |
parent | host_shaders: Modify shader cmake integration to allow for larger shaders (diff) | |
download | yuzu-20eb368e147e1c27f05d6923c51596f8dfe24e89.tar yuzu-20eb368e147e1c27f05d6923c51596f8dfe24e89.tar.gz yuzu-20eb368e147e1c27f05d6923c51596f8dfe24e89.tar.bz2 yuzu-20eb368e147e1c27f05d6923c51596f8dfe24e89.tar.lz yuzu-20eb368e147e1c27f05d6923c51596f8dfe24e89.tar.xz yuzu-20eb368e147e1c27f05d6923c51596f8dfe24e89.tar.zst yuzu-20eb368e147e1c27f05d6923c51596f8dfe24e89.zip |
Diffstat (limited to 'src/video_core/renderer_vulkan/vk_compute_pass.h')
-rw-r--r-- | src/video_core/renderer_vulkan/vk_compute_pass.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/video_core/renderer_vulkan/vk_compute_pass.h b/src/video_core/renderer_vulkan/vk_compute_pass.h index 17d781d99..5ea187c30 100644 --- a/src/video_core/renderer_vulkan/vk_compute_pass.h +++ b/src/video_core/renderer_vulkan/vk_compute_pass.h @@ -11,14 +11,21 @@ #include "common/common_types.h" #include "video_core/engines/maxwell_3d.h" #include "video_core/renderer_vulkan/vk_descriptor_pool.h" +#include "video_core/vulkan_common/vulkan_memory_allocator.h" #include "video_core/vulkan_common/vulkan_wrapper.h" +namespace VideoCommon { +struct SwizzleParameters; +} + namespace Vulkan { class Device; class StagingBufferPool; class VKScheduler; class VKUpdateDescriptorQueue; +class Image; +struct StagingBufferRef; class VKComputePass { public: @@ -77,4 +84,29 @@ private: VKUpdateDescriptorQueue& update_descriptor_queue; }; +class ASTCDecoderPass final : public VKComputePass { +public: + explicit ASTCDecoderPass(const Device& device_, VKScheduler& scheduler_, + VKDescriptorPool& descriptor_pool_, + StagingBufferPool& staging_buffer_pool_, + VKUpdateDescriptorQueue& update_descriptor_queue_, + MemoryAllocator& memory_allocator_); + ~ASTCDecoderPass(); + + void Assemble(Image& image, const StagingBufferRef& map, + std::span<const VideoCommon::SwizzleParameters> swizzles); + +private: + void MakeDataBuffer(); + + const Device& device; + VKScheduler& scheduler; + StagingBufferPool& staging_buffer_pool; + VKUpdateDescriptorQueue& update_descriptor_queue; + MemoryAllocator& memory_allocator; + + vk::Buffer data_buffer; + MemoryCommit data_buffer_commit; +}; + } // namespace Vulkan |