mirror of
https://github.com/RPCS3/rpcs3.git
synced 2026-06-06 07:05:04 -06:00
vk: Clean up image_view interfaces
This commit is contained in:
parent
e29cd4cc93
commit
794abe2025
@ -911,15 +911,15 @@ namespace vk
|
|||||||
m_cyclic_ref_tracker.reset();
|
m_cyclic_ref_tracker.reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
image_view* render_target::get_view(VkFormat format, const rsx::texture_channel_remap_t& remap, VkImageAspectFlags mask)
|
image_view* render_target::get_view(const rsx::texture_channel_remap_t& remap, VkImageAspectFlags mask)
|
||||||
{
|
{
|
||||||
if (remap.encoded == VK_REMAP_VIEW_MULTISAMPLED)
|
if (remap.encoded == VK_REMAP_VIEW_MULTISAMPLED)
|
||||||
{
|
{
|
||||||
// Special remap flag, intercept here
|
// Special remap flag, intercept here
|
||||||
return vk::viewable_image::get_view(format, remap.with_encoding(VK_REMAP_IDENTITY), mask);
|
return vk::viewable_image::get_view(remap.with_encoding(VK_REMAP_IDENTITY), mask);
|
||||||
}
|
}
|
||||||
|
|
||||||
return vk::viewable_image::get_view(format, remap, mask);
|
return vk::viewable_image::get_view(remap, mask);
|
||||||
}
|
}
|
||||||
|
|
||||||
void render_target::memory_barrier(vk::command_buffer& cmd, rsx::surface_access access)
|
void render_target::memory_barrier(vk::command_buffer& cmd, rsx::surface_access access)
|
||||||
|
|||||||
@ -110,7 +110,7 @@ namespace vk
|
|||||||
bool matches_dimensions(u16 _width, u16 _height) const;
|
bool matches_dimensions(u16 _width, u16 _height) const;
|
||||||
void reset_surface_counters();
|
void reset_surface_counters();
|
||||||
|
|
||||||
image_view* get_view(VkFormat format, const rsx::texture_channel_remap_t& remap,
|
image_view* get_view(const rsx::texture_channel_remap_t& remap,
|
||||||
VkImageAspectFlags mask = VK_IMAGE_ASPECT_COLOR_BIT | VK_IMAGE_ASPECT_DEPTH_BIT) override;
|
VkImageAspectFlags mask = VK_IMAGE_ASPECT_COLOR_BIT | VK_IMAGE_ASPECT_DEPTH_BIT) override;
|
||||||
|
|
||||||
// Memory management
|
// Memory management
|
||||||
|
|||||||
@ -463,7 +463,7 @@ namespace vk
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
image_view* viewable_image::get_view(VkFormat format, const rsx::texture_channel_remap_t& remap, VkImageAspectFlags mask)
|
image_view* viewable_image::get_view(const rsx::texture_channel_remap_t& remap, VkImageAspectFlags mask)
|
||||||
{
|
{
|
||||||
u32 remap_encoding = remap.encoded;
|
u32 remap_encoding = remap.encoded;
|
||||||
if (remap_encoding == VK_REMAP_IDENTITY)
|
if (remap_encoding == VK_REMAP_IDENTITY)
|
||||||
@ -482,7 +482,7 @@ namespace vk
|
|||||||
if (found != views.end())
|
if (found != views.end())
|
||||||
{
|
{
|
||||||
ensure(found->second->info.subresourceRange.aspectMask & mask);
|
ensure(found->second->info.subresourceRange.aspectMask & mask);
|
||||||
return found->second->as(format);
|
return found->second.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
VkComponentMapping real_mapping;
|
VkComponentMapping real_mapping;
|
||||||
@ -506,7 +506,7 @@ namespace vk
|
|||||||
const VkImageSubresourceRange range = { aspect() & mask, 0, info.mipLevels, 0, info.arrayLayers };
|
const VkImageSubresourceRange range = { aspect() & mask, 0, info.mipLevels, 0, info.arrayLayers };
|
||||||
ensure(range.aspectMask);
|
ensure(range.aspectMask);
|
||||||
|
|
||||||
auto view = std::make_unique<vk::image_view>(*g_render_device, this, format, VK_IMAGE_VIEW_TYPE_MAX_ENUM, real_mapping, range);
|
auto view = std::make_unique<vk::image_view>(*g_render_device, this, format(), VK_IMAGE_VIEW_TYPE_MAX_ENUM, real_mapping, range);
|
||||||
auto result = view.get();
|
auto result = view.get();
|
||||||
views.emplace(storage_key, std::move(view));
|
views.emplace(storage_key, std::move(view));
|
||||||
return result;
|
return result;
|
||||||
|
|||||||
@ -150,17 +150,9 @@ namespace vk
|
|||||||
using image::image;
|
using image::image;
|
||||||
|
|
||||||
virtual image_view* get_view(
|
virtual image_view* get_view(
|
||||||
VkFormat format,
|
|
||||||
const rsx::texture_channel_remap_t& remap,
|
const rsx::texture_channel_remap_t& remap,
|
||||||
VkImageAspectFlags mask = VK_IMAGE_ASPECT_COLOR_BIT | VK_IMAGE_ASPECT_DEPTH_BIT);
|
VkImageAspectFlags mask = VK_IMAGE_ASPECT_COLOR_BIT | VK_IMAGE_ASPECT_DEPTH_BIT);
|
||||||
|
|
||||||
image_view* get_view(
|
|
||||||
const rsx::texture_channel_remap_t& remap,
|
|
||||||
VkImageAspectFlags mask = VK_IMAGE_ASPECT_COLOR_BIT | VK_IMAGE_ASPECT_DEPTH_BIT)
|
|
||||||
{
|
|
||||||
return get_view(info.format, remap, mask);
|
|
||||||
}
|
|
||||||
|
|
||||||
void set_native_component_layout(VkComponentMapping new_layout);
|
void set_native_component_layout(VkComponentMapping new_layout);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user