Render-to-texture flush, interval math fix
This commit is contained in:
parent
5025b35563
commit
66b0d799ee
@ -12,7 +12,7 @@ namespace MathUtil
|
||||
{
|
||||
|
||||
inline bool IntervalsIntersect(unsigned start0, unsigned length0, unsigned start1, unsigned length1) {
|
||||
return (std::max(start0, start1) <= std::min(start0 + length0, start1 + length1));
|
||||
return (std::max(start0, start1) < std::min(start0 + length0, start1 + length1));
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
|
@ -217,7 +217,19 @@ void RasterizerOpenGL::DrawTriangles() {
|
||||
|
||||
vertex_batch.clear();
|
||||
|
||||
// TODO: Flush the resource cache at the current depth and color framebuffer addresses for render-to-texture
|
||||
// Flush the resource cache at the current depth and color framebuffer addresses for render-to-texture
|
||||
const auto& regs = Pica::g_state.regs;
|
||||
|
||||
PAddr cur_fb_color_addr = regs.framebuffer.GetColorBufferPhysicalAddress();
|
||||
u32 cur_fb_color_size = Pica::Regs::BytesPerColorPixel(regs.framebuffer.color_format)
|
||||
* regs.framebuffer.GetWidth() * regs.framebuffer.GetHeight();
|
||||
|
||||
PAddr cur_fb_depth_addr = regs.framebuffer.GetDepthBufferPhysicalAddress();
|
||||
u32 cur_fb_depth_size = Pica::Regs::BytesPerDepthPixel(regs.framebuffer.depth_format)
|
||||
* regs.framebuffer.GetWidth() * regs.framebuffer.GetHeight();
|
||||
|
||||
res_cache.NotifyFlush(cur_fb_color_addr, cur_fb_color_size);
|
||||
res_cache.NotifyFlush(cur_fb_depth_addr, cur_fb_depth_size);
|
||||
}
|
||||
|
||||
void RasterizerOpenGL::CommitFramebuffer() {
|
||||
|
Loading…
Reference in New Issue
Block a user