mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-23 06:09:50 -06:00
Further tiny XFB speedup: baked the bias constants into the R tables, and switched to aligned writes, and made sure efb_buffer is aligned.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@890 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
@ -19,6 +19,7 @@
|
||||
// Preliminary non-working code.
|
||||
|
||||
#include "Globals.h"
|
||||
#include "MemoryUtil.h"
|
||||
#include "GLInit.h"
|
||||
#include "Render.h"
|
||||
#include "TextureMngr.h"
|
||||
@ -53,9 +54,22 @@ void XFB_Init()
|
||||
glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, s_xfbRenderBuffer);
|
||||
glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_RGBA, nBackbufferWidth, nBackbufferHeight);
|
||||
|
||||
efb_buffer = new u8[nBackbufferWidth * nBackbufferHeight * 4];
|
||||
// Ensure efb_buffer is aligned.
|
||||
efb_buffer = (u8 *)AllocateMemoryPages(nBackbufferWidth * nBackbufferHeight * 4);
|
||||
}
|
||||
|
||||
void XFB_Shutdown()
|
||||
{
|
||||
glDeleteFramebuffersEXT(1, &s_xfbFrameBuffer);
|
||||
|
||||
glDeleteTextures(1, &xfb_texture);
|
||||
xfb_texture = 0;
|
||||
delete [] xfb_buffer;
|
||||
xfb_buffer = 0;
|
||||
FreeMemoryPages(efb_buffer, nBackbufferWidth * nBackbufferHeight * 4);
|
||||
}
|
||||
|
||||
|
||||
void XFB_Write(u8 *xfb_in_ram, const TRectangle& sourceRc, u32 dstWd, u32 dstHt, float yScale)
|
||||
{
|
||||
Renderer::SetRenderMode(Renderer::RM_Normal);
|
||||
@ -160,13 +174,3 @@ void XFB_Draw(u8 *xfb_in_ram, u32 width, u32 height, s32 yOffset)
|
||||
Renderer::RestoreGLState();
|
||||
GL_REPORT_ERRORD();
|
||||
}
|
||||
|
||||
void XFB_Shutdown()
|
||||
{
|
||||
glDeleteFramebuffersEXT(1, &s_xfbFrameBuffer);
|
||||
|
||||
glDeleteTextures(1, &xfb_texture);
|
||||
xfb_texture = 0;
|
||||
delete [] xfb_buffer;
|
||||
xfb_buffer = 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user