rsx: Relax inheritance checks a bit

- It is not a fatal error for a texture to be defined where a framebuffer once existed.
This commit is contained in:
kd-11 2021-01-27 19:36:33 +03:00 committed by kd-11
parent 5a049d41fd
commit bec91aab7b
2 changed files with 6 additions and 8 deletions

View File

@ -682,10 +682,7 @@ namespace gl
{
// Try and reuse this image data. It is very likely to match our needs
image = dynamic_cast<gl::viewable_image*>(cached.get_raw_texture());
ensure(image);
ensure(cached.is_managed());
if (cached.get_image_type() != type)
if (!image || cached.get_image_type() != type)
{
// Type mismatch, discard
cached.destroy();
@ -693,6 +690,8 @@ namespace gl
}
else
{
ensure(cached.is_managed());
cached.set_dimensions(width, height, depth, pitch);
cached.set_format(texture::format::rgba, texture::type::ubyte, true);

View File

@ -815,10 +815,7 @@ namespace vk
if (region.exists())
{
image = dynamic_cast<vk::viewable_image*>(region.get_raw_texture());
ensure(image);
ensure(region.is_managed());
if (region.get_image_type() != type || image->depth() != depth) // TODO
if (!image || region.get_image_type() != type || image->depth() != depth) // TODO
{
// Incompatible view/type
region.destroy();
@ -826,6 +823,8 @@ namespace vk
}
else
{
ensure(region.is_managed());
// Reuse
region.set_rsx_pitch(pitch);