This is an automated email from the git hooks/post-receive script. ecsv-guest pushed a commit to branch armhf_test in repository mupen64plus-video-glide64mk2.
commit 568972534358719f59744214adff43dbd8cf6bb1 Author: Sven Eckelmann <[email protected]> Date: Sat May 2 10:42:48 2015 +0200 Fix negative frame_buffer indices --- debian/changelog | 2 + .../fix_negative_framebuffers_indices.patch | 108 +++++++++++++++++++++ debian/patches/series | 1 + 3 files changed, 111 insertions(+) diff --git a/debian/changelog b/debian/changelog index 8ff24cb..c51e8f3 100644 --- a/debian/changelog +++ b/debian/changelog @@ -12,6 +12,8 @@ mupen64plus-video-glide64mk2 (2.5-1) UNRELEASED; urgency=medium path_max_war.patch, s3tc_removal.patch, shader_reset.patch - Add revert_forced_linux_flto_jobserver.patch, Remove forced flto=jobserver on linux + - Add fix_negative_framebuffers_indices.patch, Fix negative + frame_buffer indices -- Sven Eckelmann <[email protected]> Sat, 20 Sep 2014 11:04:52 +0200 diff --git a/debian/patches/fix_negative_framebuffers_indices.patch b/debian/patches/fix_negative_framebuffers_indices.patch new file mode 100644 index 0000000..2401087 --- /dev/null +++ b/debian/patches/fix_negative_framebuffers_indices.patch @@ -0,0 +1,108 @@ +Description: Fix negative frame_buffer indices +Origin: upstream, https://github.com/mupen64plus/mupen64plus-video-glide64mk2/commit/129ab881be8dd43e262d02dbe8b391c982a02800 +Author: Richard Goedeken<[email protected]> + +--- +diff --git a/src/Glide64/rdp.cpp b/src/Glide64/rdp.cpp +index 0393225079afe2a4f5dcf4d0f2ef15012af79dea..579a7858e9126c3b0c59830ac2332a337d26c53e 100644 +--- a/src/Glide64/rdp.cpp ++++ b/src/Glide64/rdp.cpp +@@ -489,7 +489,7 @@ static void CopyFrameBuffer (GrBuffer_t buffer = GR_BUFFER_BACKBUFFER) + wxUint32 stride = info.strideInBytes>>1; + + int read_alpha = settings.frame_buffer & fb_read_alpha; +- if ((settings.hacks&hack_PMario) && rdp.frame_buffers[rdp.ci_count-1].status != ci_aux) ++ if ((settings.hacks&hack_PMario) && rdp.ci_count > 0 && rdp.frame_buffers[rdp.ci_count-1].status != ci_aux) + read_alpha = FALSE; + int x_start = 0, y_start = 0, x_end = width, y_end = height; + if (settings.hacks&hack_BAR) +@@ -1002,7 +1002,7 @@ static void rdp_texrect() + return; + } + +- if ((settings.ucode == ucode_PerfectDark) && (rdp.frame_buffers[rdp.ci_count-1].status == ci_zcopy)) ++ if ((settings.ucode == ucode_PerfectDark) && rdp.ci_count > 0 && (rdp.frame_buffers[rdp.ci_count-1].status == ci_zcopy)) + { + pd_zcopy (); + LRDP("Depth buffer copied.\n"); +@@ -1109,7 +1109,7 @@ static void rdp_texrect() + if ((settings.ucode == ucode_PerfectDark) && (rdp.maincimg[1].addr != rdp.maincimg[0].addr) && (rdp.timg.addr >= rdp.maincimg[1].addr) && (rdp.timg.addr < (rdp.maincimg[1].addr+rdp.ci_width*rdp.ci_height*rdp.ci_size))) + { + if (fb_emulation_enabled) +- if (rdp.frame_buffers[rdp.ci_count-1].status == ci_copy_self) ++ if (rdp.ci_count > 0 && rdp.frame_buffers[rdp.ci_count-1].status == ci_copy_self) + { + //FRDP("Wrong Texrect. texaddr: %08lx, cimg: %08lx, cimg_end: %08lx\n", rdp.timg.addr, rdp.maincimg[1], rdp.maincimg[1]+rdp.ci_width*rdp.ci_height*rdp.ci_size); + LRDP("Wrong Texrect.\n"); +@@ -2309,7 +2309,7 @@ static void rdp_fillrect() + return; + } + int pd_multiplayer = (settings.ucode == ucode_PerfectDark) && (rdp.cycle_mode == 3) && (rdp.fill_color == 0xFFFCFFFC); +- if ((rdp.cimg == rdp.zimg) || (fb_emulation_enabled && rdp.frame_buffers[rdp.ci_count-1].status == ci_zimg) || pd_multiplayer) ++ if ((rdp.cimg == rdp.zimg) || (fb_emulation_enabled && rdp.ci_count > 0 && rdp.frame_buffers[rdp.ci_count-1].status == ci_zimg) || pd_multiplayer) + { + LRDP("Fillrect - cleared the depth buffer\n"); + if (fullscreen) +@@ -2415,7 +2415,7 @@ static void rdp_fillrect() + { + wxUint32 color = rdp.fill_color; + +- if ((settings.hacks&hack_PMario) && rdp.frame_buffers[rdp.ci_count-1].status == ci_aux) ++ if ((settings.hacks&hack_PMario) && rdp.ci_count > 0 && rdp.frame_buffers[rdp.ci_count-1].status == ci_aux) + { + //background of auxiliary frame buffers must have zero alpha. + //make it black, set 0 alpha to plack pixels on frame buffer read +@@ -2628,7 +2628,7 @@ static void rdp_settextureimage() + rdp.s2dex_tex_loaded = TRUE; + rdp.update |= UPDATE_TEXTURE; + +- if (rdp.frame_buffers[rdp.ci_count-1].status == ci_copy_self && (rdp.timg.addr >= rdp.cimg) && (rdp.timg.addr < rdp.ci_end)) ++ if (rdp.ci_count > 0 && rdp.frame_buffers[rdp.ci_count-1].status == ci_copy_self && (rdp.timg.addr >= rdp.cimg) && (rdp.timg.addr < rdp.ci_end)) + { + if (!rdp.fb_drawn) + { +@@ -2975,7 +2975,7 @@ static void rdp_setcolorimage() + rdp.ocimg = rdp.cimg; + rdp.cimg = segoffset(rdp.cmd1) & BMASK; + rdp.ci_width = (rdp.cmd0 & 0xFFF) + 1; +- if (fb_emulation_enabled) ++ if (fb_emulation_enabled && rdp.ci_count > 0) + rdp.ci_height = rdp.frame_buffers[rdp.ci_count-1].height; + else if (rdp.ci_width == 32) + rdp.ci_height = 32; +@@ -2997,7 +2997,7 @@ static void rdp_setcolorimage() + { + if (!rdp.cur_image) + { +- if (fb_hwfbe_enabled && rdp.ci_width <= 64) ++ if (fb_hwfbe_enabled && rdp.ci_width <= 64 && rdp.ci_count > 0) + OpenTextureBuffer(rdp.frame_buffers[rdp.ci_count - 1]); + else if (format > 2) + rdp.skip_drawing = TRUE; +@@ -3030,7 +3030,7 @@ static void rdp_setcolorimage() + SwapOK = FALSE; + if (fb_hwfbe_enabled) + { +- if (rdp.copy_ci_index && (rdp.frame_buffers[rdp.ci_count-1].status != ci_zimg)) ++ if (rdp.copy_ci_index && rdp.ci_count > 0 && (rdp.frame_buffers[rdp.ci_count-1].status != ci_zimg)) + { + int idx = (rdp.frame_buffers[rdp.ci_count].status == ci_aux_copy) ? rdp.main_ci_index : rdp.copy_ci_index; + FRDP("attempt open tex buffer. status: %s, addr: %08lx\n", CIStatus[rdp.frame_buffers[idx].status], rdp.frame_buffers[idx].addr); +@@ -3433,7 +3433,7 @@ void DetectFrameBufferUsage () + if (rdp.black_ci_index > 0 && rdp.black_ci_index < rdp.copy_ci_index) + rdp.frame_buffers[rdp.black_ci_index].status = ci_main; + +- if (rdp.frame_buffers[rdp.ci_count-1].status == ci_unknown) ++ if (rdp.ci_count > 0 && rdp.frame_buffers[rdp.ci_count-1].status == ci_unknown) + { + if (rdp.ci_count > 1) + rdp.frame_buffers[rdp.ci_count-1].status = ci_aux; +@@ -3441,7 +3441,7 @@ void DetectFrameBufferUsage () + rdp.frame_buffers[rdp.ci_count-1].status = ci_main; + } + +- if ((rdp.frame_buffers[rdp.ci_count-1].status == ci_aux) && ++ if (rdp.ci_count > 0 && (rdp.frame_buffers[rdp.ci_count-1].status == ci_aux) && + (rdp.frame_buffers[rdp.main_ci_index].width < 320) && + (rdp.frame_buffers[rdp.ci_count-1].width > rdp.frame_buffers[rdp.main_ci_index].width)) + { diff --git a/debian/patches/series b/debian/patches/series index 9bd37d9..c3d06bd 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1 +1,2 @@ revert_forced_linux_flto_jobserver.patch +fix_negative_framebuffers_indices.patch -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/mupen64plus-video-glide64mk2.git _______________________________________________ Pkg-games-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-games-commits

