summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar tfarley2015-05-29 21:54:53 -0400
committerGravatar tfarley2015-06-08 19:18:20 -0400
commit66b0d799ee0e22e07ca9a409d42bafe790695f3c (patch)
treec668e0500c940d30490baf156b045a3d350d6ab6 /src
parentLiberal texture unbind (clout menu) (diff)
downloadyuzu-66b0d799ee0e22e07ca9a409d42bafe790695f3c.tar.gz
yuzu-66b0d799ee0e22e07ca9a409d42bafe790695f3c.tar.xz
yuzu-66b0d799ee0e22e07ca9a409d42bafe790695f3c.zip
Render-to-texture flush, interval math fix
Diffstat (limited to '')
-rw-r--r--src/common/math_util.h2
-rw-r--r--src/video_core/renderer_opengl/gl_rasterizer.cpp14
2 files changed, 14 insertions, 2 deletions
diff --git a/src/common/math_util.h b/src/common/math_util.h
index 4b0910741..d44b06e74 100644
--- a/src/common/math_util.h
+++ b/src/common/math_util.h
@@ -12,7 +12,7 @@ namespace MathUtil
12{ 12{
13 13
14inline bool IntervalsIntersect(unsigned start0, unsigned length0, unsigned start1, unsigned length1) { 14inline bool IntervalsIntersect(unsigned start0, unsigned length0, unsigned start1, unsigned length1) {
15 return (std::max(start0, start1) <= std::min(start0 + length0, start1 + length1)); 15 return (std::max(start0, start1) < std::min(start0 + length0, start1 + length1));
16} 16}
17 17
18template<typename T> 18template<typename T>
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp
index 3396d72cc..faab77ff5 100644
--- a/src/video_core/renderer_opengl/gl_rasterizer.cpp
+++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp
@@ -217,7 +217,19 @@ void RasterizerOpenGL::DrawTriangles() {
217 217
218 vertex_batch.clear(); 218 vertex_batch.clear();
219 219
220 // TODO: Flush the resource cache at the current depth and color framebuffer addresses for render-to-texture 220 // Flush the resource cache at the current depth and color framebuffer addresses for render-to-texture
221 const auto& regs = Pica::g_state.regs;
222
223 PAddr cur_fb_color_addr = regs.framebuffer.GetColorBufferPhysicalAddress();
224 u32 cur_fb_color_size = Pica::Regs::BytesPerColorPixel(regs.framebuffer.color_format)
225 * regs.framebuffer.GetWidth() * regs.framebuffer.GetHeight();
226
227 PAddr cur_fb_depth_addr = regs.framebuffer.GetDepthBufferPhysicalAddress();
228 u32 cur_fb_depth_size = Pica::Regs::BytesPerDepthPixel(regs.framebuffer.depth_format)
229 * regs.framebuffer.GetWidth() * regs.framebuffer.GetHeight();
230
231 res_cache.NotifyFlush(cur_fb_color_addr, cur_fb_color_size);
232 res_cache.NotifyFlush(cur_fb_depth_addr, cur_fb_depth_size);
221} 233}
222 234
223void RasterizerOpenGL::CommitFramebuffer() { 235void RasterizerOpenGL::CommitFramebuffer() {