mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-04-22 04:24:44 +00:00
fix for image leaking; detiler stream buffer removed
This commit is contained in:
parent
266cca5654
commit
a4f8e220ab
3 changed files with 2 additions and 11 deletions
|
@ -110,7 +110,7 @@ ImageId TextureCache::ResolveOverlap(const ImageInfo& image_info, ImageId cache_
|
|||
if (image_info.pixel_format != tex_cache_image.info.pixel_format ||
|
||||
image_info.size != tex_cache_image.info.size ||
|
||||
image_info.guest_size_bytes <= tex_cache_image.info.guest_size_bytes) {
|
||||
return merged_image_id;
|
||||
return merged_image_id ? merged_image_id : cache_image_id;
|
||||
}
|
||||
|
||||
ImageId new_image_id{};
|
||||
|
|
|
@ -254,11 +254,8 @@ struct DetilerParams {
|
|||
u32 sizes[14];
|
||||
};
|
||||
|
||||
static constexpr size_t StreamBufferSize = 1_GB;
|
||||
|
||||
TileManager::TileManager(const Vulkan::Instance& instance, Vulkan::Scheduler& scheduler)
|
||||
: instance{instance}, scheduler{scheduler},
|
||||
stream_buffer{instance, scheduler, MemoryUsage::Upload, StreamBufferSize} {
|
||||
: instance{instance}, scheduler{scheduler} {
|
||||
static const std::array detiler_shaders{
|
||||
HostShaders::DETILE_M8X1_COMP, HostShaders::DETILE_M8X2_COMP,
|
||||
HostShaders::DETILE_M32X1_COMP, HostShaders::DETILE_M32X2_COMP,
|
||||
|
@ -397,11 +394,6 @@ std::optional<vk::Buffer> TileManager::TryDetile(Image& image) {
|
|||
// Prepare input buffer
|
||||
const u32 image_size = image.info.guest_size_bytes;
|
||||
const auto [in_buffer, in_offset] = [&] -> std::pair<vk::Buffer, u32> {
|
||||
// Use stream buffer for smaller textures.
|
||||
if (image_size <= stream_buffer.GetFreeSize()) {
|
||||
u32 offset = stream_buffer.Copy(image.info.guest_address, image_size);
|
||||
return {stream_buffer.Handle(), offset};
|
||||
}
|
||||
// Request temporary host buffer for larger sizes.
|
||||
auto in_buffer = AllocBuffer(image_size);
|
||||
const auto addr = reinterpret_cast<const void*>(image.info.guest_address);
|
||||
|
|
|
@ -51,7 +51,6 @@ private:
|
|||
private:
|
||||
const Vulkan::Instance& instance;
|
||||
Vulkan::Scheduler& scheduler;
|
||||
StreamBuffer stream_buffer;
|
||||
std::array<DetilerContext, DetilerType::Max> detilers;
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue