rsx: Notify the backend to release or delete temporary surfaces after we're done with them.

This commit is contained in:
kd-11 2019-10-17 21:35:04 +03:00 committed by kd-11
parent 97ed95d21b
commit decf9cfcf6
3 changed files with 31 additions and 2 deletions

View file

@ -308,6 +308,7 @@ namespace rsx
*/
virtual image_view_type create_temporary_subresource_view(commandbuffer_type&, image_resource_type* src, u32 gcm_format, u16 x, u16 y, u16 w, u16 h, const texture_channel_remap_t& remap_vector) = 0;
virtual image_view_type create_temporary_subresource_view(commandbuffer_type&, image_storage_type* src, u32 gcm_format, u16 x, u16 y, u16 w, u16 h, const texture_channel_remap_t& remap_vector) = 0;
virtual void release_temporary_subresource(image_view_type rsc) = 0;
virtual section_storage_type* create_new_texture(commandbuffer_type&, const address_range &rsx_range, u16 width, u16 height, u16 depth, u16 mipmaps, u16 pitch, u32 gcm_format,
rsx::texture_upload_context context, rsx::texture_dimension_extended type, texture_create_flags flags) = 0;
virtual section_storage_type* upload_image_from_cpu(commandbuffer_type&, const address_range &rsx_range, u16 width, u16 height, u16 depth, u16 mipmaps, u16 pitch, u32 gcm_format, texture_upload_context context,
@ -1432,6 +1433,7 @@ namespace rsx
const auto& desc = It->second.first;
if (range.overlaps(desc.cache_range))
{
release_temporary_subresource(It->second.second);
It = m_temporary_subresource_cache.erase(It);
}
else