summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/Vulkan/TextureCache.h
diff options
context:
space:
mode:
authorStenzek <stenzek@users.noreply.github.com>2016-12-05 12:15:38 +1000
committerGitHub <noreply@github.com>2016-12-05 12:15:38 +1000
commit15e2133ce706fe8cd5613c81a8866abe03960e3b (patch)
tree56d578484881f78ec684f50804c7348f00bec1bb /Source/Core/VideoBackends/Vulkan/TextureCache.h
parentd1c89db8c809a89d5576dc9ea524629cfc4d29a6 (diff)
parent9736198c3b2552e51dd98445c0439dff759e08af (diff)
Merge pull request #4462 from stenzek/vulkan-faster-xfb
Vulkan: Cleanup/refactoring, faster RealXFB
Diffstat (limited to 'Source/Core/VideoBackends/Vulkan/TextureCache.h')
-rw-r--r--Source/Core/VideoBackends/Vulkan/TextureCache.h22
1 files changed, 4 insertions, 18 deletions
diff --git a/Source/Core/VideoBackends/Vulkan/TextureCache.h b/Source/Core/VideoBackends/Vulkan/TextureCache.h
index 5da9515991..4b60d39272 100644
--- a/Source/Core/VideoBackends/Vulkan/TextureCache.h
+++ b/Source/Core/VideoBackends/Vulkan/TextureCache.h
@@ -12,10 +12,9 @@
namespace Vulkan
{
-class PaletteTextureConverter;
+class TextureConverter;
class StateTracker;
class Texture2D;
-class TextureEncoder;
class TextureCache : public TextureCacheBase
{
@@ -49,6 +48,7 @@ public:
static TextureCache* GetInstance();
+ TextureConverter* GetTextureConverter() const { return m_texture_converter.get(); }
bool Initialize();
bool CompileShaders() override;
@@ -66,17 +66,8 @@ public:
void CopyRectangleFromTexture(TCacheEntry* dst_texture, const MathUtil::Rectangle<int>& dst_rect,
Texture2D* src_texture, const MathUtil::Rectangle<int>& src_rect);
- // Encodes texture to guest memory in XFB (YUYV) format.
- void EncodeYUYVTextureToMemory(void* dst_ptr, u32 dst_width, u32 dst_stride, u32 dst_height,
- Texture2D* src_texture, const MathUtil::Rectangle<int>& src_rect);
-
- // Decodes data from guest memory in XFB (YUYV) format to a RGBA format texture on the GPU.
- void DecodeYUYVTextureFromMemory(TCacheEntry* dst_texture, const void* src_ptr, u32 src_width,
- u32 src_stride, u32 src_height);
-
private:
bool CreateRenderPasses();
- VkRenderPass GetRenderPassForTextureUpdate(const Texture2D* texture) const;
// Copies the contents of a texture using vkCmdCopyImage
void CopyTextureRectangle(TCacheEntry* dst_texture, const MathUtil::Rectangle<int>& dst_rect,
@@ -86,20 +77,15 @@ private:
void ScaleTextureRectangle(TCacheEntry* dst_texture, const MathUtil::Rectangle<int>& dst_rect,
Texture2D* src_texture, const MathUtil::Rectangle<int>& src_rect);
- VkRenderPass m_initialize_render_pass = VK_NULL_HANDLE;
- VkRenderPass m_update_render_pass = VK_NULL_HANDLE;
+ VkRenderPass m_render_pass = VK_NULL_HANDLE;
std::unique_ptr<StreamBuffer> m_texture_upload_buffer;
- std::unique_ptr<TextureEncoder> m_texture_encoder;
-
- std::unique_ptr<PaletteTextureConverter> m_palette_texture_converter;
+ std::unique_ptr<TextureConverter> m_texture_converter;
VkShaderModule m_copy_shader = VK_NULL_HANDLE;
VkShaderModule m_efb_color_to_tex_shader = VK_NULL_HANDLE;
VkShaderModule m_efb_depth_to_tex_shader = VK_NULL_HANDLE;
- VkShaderModule m_rgb_to_yuyv_shader = VK_NULL_HANDLE;
- VkShaderModule m_yuyv_to_rgb_shader = VK_NULL_HANDLE;
};
} // namespace Vulkan