mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-06 06:51:26 +12:00
rsx: Fixup - fix broken memory protection fail caused by region respec
- Some applications will alternate memory between framebuffer and texture data
This commit is contained in:
parent
f38f61d110
commit
b030d1900c
1 changed files with 2 additions and 1 deletions
|
@ -976,7 +976,6 @@ namespace rsx
|
||||||
no_access_range = region.get_min_max(no_access_range);
|
no_access_range = region.get_min_max(no_access_range);
|
||||||
}
|
}
|
||||||
|
|
||||||
region.protect(utils::protection::no);
|
|
||||||
region.create(width, height, 1, 1, nullptr, image, pitch, false, std::forward<Args>(extras)...);
|
region.create(width, height, 1, 1, nullptr, image, pitch, false, std::forward<Args>(extras)...);
|
||||||
region.set_context(texture_upload_context::framebuffer_storage);
|
region.set_context(texture_upload_context::framebuffer_storage);
|
||||||
region.set_sampler_status(rsx::texture_sampler_status::status_uninitialized);
|
region.set_sampler_status(rsx::texture_sampler_status::status_uninitialized);
|
||||||
|
@ -1018,6 +1017,8 @@ namespace rsx
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Delay protection until here in case the invalidation block above has unprotected pages in this range
|
||||||
|
region.reprotect(utils::protection::no, { 0, memory_size });
|
||||||
update_cache_tag();
|
update_cache_tag();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue