Skip to content

Commit 3ae9514

Browse files
committed
Invalidate memory allocated for framebuffer
Ensure we're clearing uncached memory
1 parent d4d990c commit 3ae9514

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

libogc/system.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1489,7 +1489,13 @@ bool SYS_IsDMAAddress(const void *addr,u32 align)
14891489

14901490
void* SYS_AllocateFramebuffer(GXRModeObj *rmode)
14911491
{
1492-
return memalign(32, VIDEO_GetFrameBufferSize(rmode));
1492+
void *fb;
1493+
u32 size;
1494+
1495+
size = VIDEO_GetFrameBufferSize(rmode);
1496+
fb = memalign(PPC_CACHE_ALIGNMENT,size);
1497+
if(fb) DCInvalidateRange(fb,size);
1498+
return fb;
14931499
}
14941500

14951501
u16 SYS_GetFontEncoding(void)

libogc/video.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3081,7 +3081,11 @@ u32 VIDEO_GetFrameBufferSize(const GXRModeObj *rmode)
30813081

30823082
void VIDEO_ClearFrameBuffer(const GXRModeObj *rmode,void *fb,u32 color)
30833083
{
3084-
__VIClearFramebuffer(fb, VIDEO_GetFrameBufferSize(rmode), color);
3084+
u32 size;
3085+
3086+
size = VIDEO_GetFrameBufferSize(rmode);
3087+
fb = (void*)MEM_VIRTUAL_TO_PHYSICAL(fb);
3088+
__VIClearFramebuffer(MEM_PHYSICAL_TO_K1(fb),size,color);
30853089
}
30863090

30873091
u32 VIDEO_HaveComponentCable(void)

0 commit comments

Comments
 (0)